2010年9月26日日曜日

iOS 4.2 iPadで3G回線を利用する方法

iOS 4.2 iPadをインストールすると「PDP認証に失敗しました」と表示されて3G回線が利用できなくなる.通常はiTunesに接続をして同期を行えば改善されるのだが,Beta OSだとダメのようです.
せっかくの3G回線が使えなくなってしまうのは非常にもったいないので、調べて見たところ解決方法がありました.

(以下の内容を行い,何らかの問題が発生しても当方は責任を一切責任を負いません).
以下のサイトでAPNプロファイルを作成します.

http://www.unlockit.co.nz/

1. サイトにアクセスしたらContinueを選択
2. Custom APNを選択
3.
APN: sbm
Username: data
Password: softbank
を入力.
(Carrierは入力しなくても大丈夫です)
4. CreateProfileを選択してプロファイルをインストールします
5. インストール後,3G回線が接続できない場合は再起動をすると接続ができます

ということで3G接続ができるiPadを持って,外で朝ごはんを食べながらこの記事を書いています.





2010年9月20日月曜日

[Command] rsync

 更新されたファイルのみバックアップをするツールとしてrsyncがありますが,Mac版のrsyncには-Eというオプションがある.これは,リソースフォークスもコピーするオプションなので,覚えておくといい.

2010年9月16日木曜日

MacPorts 1.9.1

MacPortsがいつの間にか1.9.1になっていたので,アップデート.

MacPortsを使っている人は以下のコマンドで更新できます.
sudo port selfupdate


アップデートされたパッケージを更新
sudo port upgrade outdated 

2010年9月4日土曜日

[Objective-C] リファレンスカウンタとの戦い

以前かいたObjective-Cのリファレンスカウンタについて,再び考える.

[Objective-C] 詳解 Objective-C 2.0 リファレンスカウンタ 不明なところ - トウヨウリンゴ
http://newringo.blogspot.com/2010/05/objective-c-objective-c-20.html

コードはこちら.

#import <Foundation/Foundation.h>
#import <stdio.h>

int main(void)
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
  NSObject *obj = [[NSObject alloc] init];
  printf("init: %d\n",[obj retainCount]);
  [obj retain];
  printf("retain: %d\n",[obj retainCount]);
  [obj retain];
  printf("retain: %d\n",[obj retainCount]);

  [obj release];
  printf("release: %d\n",[obj retainCount]);
  [obj release];
  printf("release: %d\n",[obj retainCount]);
  [obj release];
  /* 実行するとエラーになるはずなのだが・・・ */
  printf("release: %d\n",[obj retainCount]); 

  [pool drain];

  return 0;
}

そして,今日わかったのは,詳解 Objective-C 2.0と同じ結果を得るためには,以下のコンパイルをすればよい.

gcc -framework Foundation -m32 reference.m

結果
init: 1
retain: 2
retain: 3
release: 2
release: 1
objc[2758]: FREED(id): message retainCount sent to freed object=0x103f60
Illegal instruction

ただ,このオプションで本通りになるというのは,なっとくいかない.

-m32のオプションなしの場合

結果
init: 1
retain: 2
retain: 3
release: 2
release: 1
release: 1

64bit用では,同様の結果が得られないのは,なぜか.
さっぱりだ.

2010年9月1日水曜日

プロセスを起動しているユーザとプロセス数の確認

プロセスを起動しているユーザとプロセス数の確認をするため,以下のものをかいてみた.

$ ps ax | awk '{ print $1 }' | sort -n | uniq -c | awk '{ print $2,$1}'

psコマンドでプロセス確認,awkで1列目だけを取り出し,ソート.
そのあと,重複行を削除し(重複回数を表示),awkで重複回数とユーザ名を交換して表示する.