2010年5月30日日曜日

[Command] ポートを開いているプロセスを表示

Macでポートを開いているプロセスを表示をするためのコマンド

"例 9090ポートを開いているプロセスを表示"
lsof -i 9090






Apple Care iPhone版

iPhone版のApple Careに入っているのですが,iPhoneの場合は入っておいた方がいいと思います.

というのは,バッテリーの減りが早くなったら交換(新品w),USBケーブルに亀裂が入ったら,交換.
非常にお得です.

でも,あくまでも普通に使っていて,上のような問題が発生したら保証されますので,ご注意を.





iPad発売

いよいよiPadが発売されました.

僕も購入!っと言いたいところですが,購入どころか予約もしていませんでした.

理由としては,金銭面ですが,よくよく考えてみるとSoftbank2年契約にすれば,よかったなぁって反省しています.

6月に行なわれるWWDCの発表を見て,購入するかどうか再検討します.

購入するとしたら,iPad 3G.

あの高性能な機能を持ち出さないのは,もったいない!

2010年5月20日木曜日

Twitter

Twitter公式クライアント,Twitterが公開されました.
以前までTweetie2と呼ばれる有料アプリでしたが,Twitterが買収したため,名前を変更し,無料で公開されています.
人気があり,公式にもなったソフトウェアであるため,非常に使いやすいアプリです.





Twitter
 iTunes Store(Japan)

2010年5月18日火曜日

iPhoneプログラミングUIKit詳解リファレンス

UIKitの本を購入.



すごく丁寧に書かれているので,これは大事にしたい本の1つです.




2010年5月17日月曜日

[Objective-C] 詳解 Objective-C 2.0 リファレンスカウンタ 不明なところ

先日,萩原さんの詳解 Objective-C 2.0 リファレンスカウンタのプログラムを実行してみたら,出力結果が予想と異なるものであったので,現在も困っています.

困っているのは,以下のコードです.
#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;
}


コンパイル  gcc -framework Foundation reference.m
環境 os 10.6.2

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


obj にreleaseメッセージを3回送ったあとに,参照カウンタを見ようとしたらエラーになるはずですが,参照カウンタが1と表示されてしまいます.
何故なんでしょうか.



2010年5月16日日曜日

Macネタ増やします!

最近,役に立つようなMacネタをほとんど書いていない.
別にネタがないわけではなく,会社が忙しいこともあって,書けませんでした.

これからは,以前の「りんごの種」ようにもっとガツガツ書いていこうと思いますので,よろしくお願いします.

ガンダムカフェへ行ってきた

ゴールデンウィークにガンダムカフェへ行ってきました.

東京へ引っ越してから何度か秋葉原へ行く機会があったのですが,いつも混んでいたので,なかなか行けなかったのですが,遂にいってきました.
夜メニューも一応確認しようと思ったので,夜に行ってみました.土日の昼間よりは空いていたので,めちゃくちゃは並びませんでした(本当は並ぶのは,すごい嫌い).

写真は撮影しませんでしたが,トイレがちょっと凄かったかな.



ガンダムカフェ http://g-cafe.jp/

SafariとTab

SafariでWebページを開き,Tabキーで操作していると,チェックボックスやラジオボタンが操作できないことがある.
今日はこれの改善方法について説明する.

方法は非常に簡単.
Safariの「環境設定」を開き,「詳細」を選択する.
その中にある「Tab キーを押したときにWebページ上の各項目を強調表示」にチェックをする.

そうするとTab キーを使って,チェックボックス等に移動でき,操作ができる.



[Command] nohup

nohupというコマンド.


ログアウトした後もコマンドを実行し続ける

参考 - IT Pro Linuxコマンド集

[Command] rlwarp

任意のプログラムをreadline対応させるコマンド.

CUIでプログラムを起動する場合に便利なので,入れておくとよいでしょう.

macportだったら,以下のコマンドで入れることができます.
port search rlwrap


例えば,Gaucheを起動する際は,rlwrapをコマンドの前に付ければいいです.

$ rlwrap gosh


2010年5月15日土曜日

[CCNA] CCNAの本

CCNAを勉強する人におすすめの問題集.



がんばってください!

問題と解説がしっかりとしており,実際の試験で出題されるような問題もあります.この本がすらすら解けるなら実際の試験もいい結果が得られるのではないのでしょうか.

[Objective-C] どう書く?org IPv4アドレスのマスクの変換 をやってみた.

どう書く?org IPv4アドレスのマスクの変換 をObjective-C でやってみました.
コードを公開しますけど,いじめないでくださいね.


#import <Foundation/Foundation.h>

int main(void){

int prefixNumber = 0;
int i,j,temp;

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSString *addressString = [NSString string];

//NSString *subnetString = @"255.255.255.0";
NSString *subnetString = @"255.255.255.240";
//NSString *subnetString = @"128.0.0.0";
//NSString *subnetString = @"255.248.0.0";

NSArray *subnetStringItems = [subnetString componentsSeparatedByString:@"."];

for(i = 0; i < 4; i++){
temp = [[subnetStringItems objectAtIndex:i] intValue];
for(j=0;j<8;j++){
prefixNumber += (temp & 1);
temp >>= 1;
}
}
NSLog(@"prefixNumber=%d",prefixNumber);

for(i = 0; i < 4; i++){
if(prefixNumber >= 8){
addressString = [addressString stringByAppendingString: @"255"];
prefixNumber = prefixNumber - 8;
}else if(prefixNumber > 0){
temp = 0;
temp = 255 - ((1 << (8-prefixNumber)) - 1);
addressString = [addressString stringByAppendingString: [ NSString stringWithFormat : @"%d", temp ]];
prefixNumber = 0;
}else{
addressString = [addressString stringByAppendingString: @"0"];
}

if(i<3){
addressString = [addressString stringByAppendingString: @"."];
}

}
NSLog(@"addressString=%@",addressString);

[pool drain];

return 0;
}


どう書く?org IPv4アドレスのマスクの変換
http://ja.doukaku.org/253/nested/

2010年5月9日日曜日

Twitter API プログラミング

Twitterのクライアントを作りたいと思っている人にぴったりそうな本.
本屋で見つけて,欲しいと思った.



Oauthについてきちんと書かれているので,よさそうですね.

最近,大学院時代の研究成果を使って,Twitterのタイムライン管理をどうにかしようと思っているのですが,Oauthについては知らないので,本で簡単に勉強できるのは非常にうれしいことです.

お金がないので,これも来月購入しようかな.


ガベージコレクションのアルゴリズムと実装

本屋へ行ったら,こんな本を見つけた.
ガベージコレクションのアルゴリズムと実装



これは欲しい!
さまざまなGCの実装方法について書かれているようなので,GCにお世話になっている僕には非常に気になる本です.

でもお金がないorz
来月購入しようかな.

2010年5月5日水曜日

[Haskell] おすすめHaskell本

Haskell本もだいぶ充実してきました.

個人的には,この2つの本がおすすめ.



オライリーのは翻訳される前に購入したので,つらい本になってしまいましたが,英語の勉強と思えば・・・.
内容はすばらしいです.


[Haskell] GHCとMacPorts

もう,ずいぶん前にGHCが10.6版MacPortsでも,インストール可能になりました.
みなさんもどんどんインストールしちゃいましょう.

sudo port install ghc


[Objective-C] UIKitの本

UIKitについて学びたいと思っていたら,このような本が出ていました.



先日,本屋で少し内容をみたら,とてもすばらしい内容でした.
その日は手持ちがなかったので,後日購入したいと思います.

[追記] 購入しました.
Interface Builderを用いずにUIを開発するスタイルで書かれており,どのようにしたらこのUIが記述できるのかがハッキリしてとてもいいです.
この中に書かれているサンプルはどれも実際に利用できそうなものばかりで,非常に勉強になります.

UIKitを学びたい人にお勧めです!

[Java] Javaを勉強してみる

GWに何も頭を使わないのはよくありませんので,Javaを勉強してみることにしました.
ちょこっと触ったことはあるので,せっかくなのでしっかりした本で勉強してみることにします.



この本を注文してみたのですが,分厚いですね.
なんか少しやる気でてきました.


Javaに関することが,1章1章丁寧に記述されており,これほど無駄がない本は珍しいのではないのでしょうか.サンプルが少ないので,手を動かしながら勉強したい人には少し向かないかもしれませんが,しっかりとJavaを学ぶにはお勧めだと思います.

私もこれで,しっかりと学びたいと思います!

2010年5月4日火曜日

Xperiaをさわってきた

Xperiaを秋葉原のヨドバシカメラで触ってきました.

個人的な感想としては,なかなかいい感じです.
操作反応はよく,またすっきりとしたデザインでした.
マルチタッチがないので,それが残念です.
また,コピーペーストが少し難しいかも.
コピーペーストはiPhoneに慣れすぎたかもしれませんけどね.

iPhoneも競争相手ができていいのではないかなと思います.




いまさらながら,MDR-NC600Dのレビュー

MDR-NC600Dを購入したのですが,レビューを書いていないことに気がついたので,書いてみます.
以前までは,Bose on-ear headphonesを使っていたのですが,新しい音が欲しくなってきたので,今回はSonyの音を選んでみました.



お店でも実感したのですが,ちょっと本体が大きいので,なかなか持ち歩くことが難しいですが,音は最高です!
とても優しい感じで,さすがSonyだと思いました.
ノイズキャンセリングはしっかりしており,僕のように外付けHDの音が気になる人に最適です.
ちょっとうれしいのは,電源の供給方法が,電源ケーブル,内蔵電池,外部電池と3タイプ用意されているところ.
これは,持ち出す際には意外に重宝します.

気になるのは,音源と接続しないで利用する場合,「シャー」という音が聞こえる点.接続なしでも,利用できるとうれしいんですけどね.
あと,本体のつや出しは,傷がついたら気になりそうだからマット調のほうがよかったです.



しばらくはいいけど,もしこれに飽きたら次はどうしたらいいんでしょうねw