2010-12-03

新型 MacBook Air のベンチマーク

@kawataso 協力のもと、とあるxcodeプロジェクトのビルド時間を、いくつかのMacで計測してみました。

結果は次の通り:
  • 新型 MacBook Air (CPU:1.4GHz Intel Core 2 Duo/RAM:2GB/SSD) 
    • →36秒
  • 旧型 MacBook (CPU:2.0GHz Intel Core 2 Duo/RAM:8GB/HDD) 
    • →24秒
  • MacBook Pro (CPU:2.4GHz Intel Core i5/RAM:8GB/HDD) 
    • →15秒

2010-11-25

iPhoneアプリ開発: UINavigationBar のタイトル部分にタッチイベント追加

UINavigationBar のタイトル部分にタッチイベントを追加する方法です。
ナビゲーションバーのタイトル部分をタッチすると、右図のようにその箇所が白くハイライトし、イベントに紐づいたメソッドが呼び出されるようになります。

2010-11-06

Firefox 3.6+Flash(SWFObject 2.2)+Java Applet(Java 1.6.0_21 以降) 環境でページリロード時に不具合

Flash コンテンツ(埋め込みに SWFObject 利用) + Java Applet コンテンツのある Web ページを Firefox で閲覧する際に発生する不具合について、確認した現象と解決した方法をメモしておきます。

2010-10-27

iPhoneアプリ開発: 同じ UITableViewCell 上で Delete ボタンとプラスボタンを表示

UITableViewCellをフリックすると表示されるDeleteボタン(右図参照)と、セルの左端に表示される緑色のプラスボタン( UITableViewCellEditingStyleInsert のスタイル:下図参照)を、同じセル上で表示させる方法です(同時に表示させるわけではありません)。

2010-10-24

ホリエモン×ひろゆき 語りつくした本音の12時間 「なんかヘンだよね・・・」

ホリエモン×ひろゆき 語りつくした本音の12時間 「なんかヘンだよね・・・」
堀江 貴文, 西村 博之 / 集英社 / 売り上げランキング: 2194
おすすめ度の平均: 3.5
4 ホリエモン interviewed by ひろゆき
4 馬鹿な僕
4 分かりやすく面白い!ハイレベルな雑談
4 この二人らしい本
5 素直なんでしょう、この人たち。
posted with amazlet at 2010.10.24
という本を読みました。

拝金

拝金
堀江 貴文 / 徳間書店 / 売り上げランキング: 496
おすすめ度の平均: 4.0
2 無料で読めばいいと思うよ
4 本棚に残る本ではないが、読んでいる間はワクワクした
4 覗いてみませんか?あなたの知らない、ヒルズの世界
4 面白い
5 率直に面白かった。
posted with amazlet at 2010.10.24
という本を読みました。
(ちなみに表紙カバーイラストは、「ブラックジャックによろしく」で有名な佐藤秀峰さんによるものです)

2010-09-30

Macbook ( MB466J/A, 13-inch, Alminum, Late 2008 ) のメモリを 8GB に交換

現在使用中の Macbook ( MB466J/A, 13-inch, Alminum, Late 2008 ) のメモリを 8GB(4GBx2) のメモリに交換しました。
その際に収集した情報をまとめておきます。

iPhoneアプリ開発: 外部ライブラリ追加時のpathの設定方法

プロジェクトに外部のライブラリ追加した場合など、プロジェクトのグループとファイルツリーにヘッダファイルとライブラリファイルをドラッグアンドドロップするだけでなく、検索パスを追加する必要があります。

検索パスを追加する方法は次の通りです。

iPhoneアプリ開発: 開発環境として新たに複数のMacやiPhoneを追加する

iPhoneアプリをチーム開発するとき、テスト環境を用意するとき、あるいは故障交換するとき、開発環境として複数のMacやiPhone/iPod touch/iPadデバイスを扱うことが必要な場合があります。
開発環境として新たなMacやデバイスを追加する方法についてメモしておきます。

2010-09-12

First, Ten (日本語訳)

少し古いですが、個人的メモとしてセス・ゴーディン( Seth Godin )氏のブログ記事を意訳しておきます。

ちなみにセス・ゴーディン氏とは:
  • 口コミを最大活用したコンシューママーケティング「バイラルマーケティング」という手法を提唱
  • Yahoo! Inc.の元副社長(ダイレクトマーケティング管轄)
  • TEDに登壇
-------

First, Ten

この2つの言葉に、新しいマーケティングの秘訣がある。

まず10人を見つける。あなたを信頼する/尊敬する/必要とする/聞き入る10人だ。

2010-09-11

iPhoneアプリ開発: g++-4.2 failed with exit code 1

ビルド失敗時に、次のエラーメッセージが出力された場合の対処方法のメモ。
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

2010-08-20

Mac で帯域制御

Mac 上で帯域制御(トラフィックシェイピング / Traffic Shaping )する方法です。

ターミナル上で、次のコマンドを実行します。
この例では、ローカルの80番ポートから外向きのトラフィックを100kbpsに絞っています。

2010-07-25

標準出力を分岐して同時に複数のコマンドの標準入力にパイプする

標準出力を分岐して同時に複数のコマンドの標準入力にパイプする方法です。
次の例では、command1の標準出力を複数のストリームに分けて、それぞれcommand2の標準入力とcommand3の標準入力に渡しています。

iPhoneアプリ開発: iPhone 4と3GSと3GやiPod touchの世代を判別する

iPhone 4と3GSと3GやiPod touchの世代を判別する方法です。

iPhone 3Gと3GSやiPod touchの世代を判別する方法 - 24/7 twenty-four seven のソースコードを参考に、iPhone4 用に更新して、
必要なヘッダファイルを追加して、
deprecatedなメソッド( NSString の stringWithCString メソッド)を修正した
だけのコードです。

Blogger ( blogspot.com ) のエントリー Title / URL を JavaScript や HTML タグ属性に渡す

Blogger ( blogspot.com ) のエントリーページ、または複数エントリー表示ページ内の各エントリー表示領域内で、エントリーごとのタイトルや URL を取得し、 JavaScript コードや HTML タグ属性に適切に渡す方法です。

2010-07-11

Tokyo-Jogging for iPhone を作りました

Tokyo-Jogging のための iPhone コントローラアプリを作りました。

Tokyo-Jogging とは?

Tokyo-Jogging というのは、友人の @ryo_katsuma が 2008 年に作ったもので、 Wii リモコン( wiimote )やバランス Wii ボードの各種ボタン・センサーを利用して Google Streat View 画面内を操作することで、バーチャルジョギングを楽しむことができます。 GizmodoCrunchGear など海外メディアでも取り上げられています。すごい。

2010-07-01

Xcode の SCM 機能を使って SVN ( Subversion ) 管理

Xcode プロジェクトのファイル一式を、なるべく Xcode の SCM 機能の GUI を使って、バージョン管理システム SVN (Subversion) で管理する方法です。
世の中では、より新しいバージョン管理システムである Git に移行しつつありますが( iPhone デベロッパーズ クックブックで有名なエリカ様も...)、空気を読まずに SVN を取り上げます。

目次は次の通り。
  1. Xcode プロジェクトを SVN リポジトリに初コミットする
  2. コミット済の Xcode プロジェクトをチェックアウトする
  3. SVN と連携した1タスクあたりのワークフロー

2010-06-25

iPhoneアプリ開発: Xcodeプロジェクトを共有するときに不要なファイル

Xcode プロジェクトを丸ごと他人と共有するときに不要なファイル、
SVN や Git などでバージョン管理する際に ignore 対象となるファイルは次のとおり:
  • <xcode project directory>\build\
    • (ビルド生成物)
  • <xcode project directory>\<project name>.xcodeproj\<user name>.mode1v3
    • (ユーザ固有の設定ファイル)
  • <xcode project directory>\<project name>.xcodeproj\<user name>.pbxuser
    • (ユーザ固有の設定ファイル)

関連ページ:Xcode の SCM 機能を使って SVN ( Subversion ) 管理 | 情熱とスキルと市場

2010-06-24

ThinkPad T43のCPUファンを交換してFAN ERRORから復活

4、5年前くらいに購入して、今でも現役で利用しているThinkPad T43 (2668-J3J)が、「FAN ERROR」で起動しなくなってしまいました。CPUファンの交換でなおりましたが、その際のメモを残しておきます。
T43のCPUファンの問題はネットでは割とポピュラーらしいです。実は私のT43のCPUファン交換は2度目で、単純計算で2年に1度のペースで交換していることになります。確かに他のノートPCに比べて、CPUファンについては貧弱かもしれません。

以下、CPUファンの購入、及び交換の詳細です。

iPhoneアプリ開発: [[NSHost currentHost] addresses]の戻り値がiPhone SDK 4とiPhone SDK 3.1.3で異なる

iPhone SDK(iPhone OS/iOS)を3.1.3から4に更新したところ、iPhone実機におけるPrivate APIの[[NSHost currentHost] addresses]の戻り値が変更されていました。

変更点まとめ:
  • IPv4アドレスとともにIPv6アドレスも返すようになった
  • WiFiオン時は、今までのようにIPv4グローバルアドレスは返さず、IPv6グローバルアドレスを返すようになった

以下、試したことの詳細です。

2010-06-17

iPhoneアプリ開発: The Debugger has exited due to signal 10 (SIGBUS).

アプリデバッグ中に、デバッガコンソール上に次のようなメッセージを残してアプリが落ちてしまうことがあります。




プログラムはシグナルを受信しました:“0”。

The Debugger has exited due to signal 10 (SIGBUS).The Debugger has exited due to signal 10 (SIGBUS).

2010-06-16

iPhoneアプリ開発: private methodの書き方

プライベートなメソッドの書き方。

下記のように、.hファイルではなく、.mファイル内冒頭に、@interface ディレクティブと @end ディレクティブで挟む形で記載します。

2010-06-14

iPhoneアプリ開発: NSArrayを任意の比較方法でソート

NSArray の中身を任意の比較方法でソートする方法。

まず、配列要素となるクラスを作成し、仕込みを入れます。

2010-06-07

iPhoneアプリ開発: Expected specifier-qualifier-list before ... error

ビルド時に、
Expected specifier-qualifier-list before xxx error
なエラーが発生した場合の対処方法です。
※「xxx」には実際のコード内の文字列が入ります

2010-06-01

MacBookの画面を外部ディスプレイだけに表示しつつ、内蔵キーボード・トラックパッドを利用する

MacBookの画面を外部ディスプレイだけに表示しつつ、内蔵キーボード・トラックパッドを利用する方法。

まず用語の説明から。
MacBookの外部ディスプレイ出力には、公式には次の3通りのモードがあるようです。

2010-05-28

iPhoneアプリ開発: UNIX時間、エポックからのミリ秒の取得

タイムスタンプなどの用途に、

UNIX 時間( UNIX エポック[=1970年1月1日0時0分0秒]からの経過秒数)のミリ秒版
( = UNIX エポックを起点としたシステム時間(システム時刻)をミリ秒で表現した値)

を取得する方法です。

例えば Java では System.currentTimeMillis() といったメソッドでさくっと取得できるのですが、Objective-C ではいくつか注意点があります:

2010-05-24

小さなチーム、大きな仕事—37シグナルズ成功の法則

小さなチーム、大きな仕事―37シグナルズ成功の法則 (ハヤカワ新書juice)
ジェイソン フリード, デイヴィッド・ハイネマイヤー ハンソン / 早川書房 / 売り上げランキング: 1125
おすすめ度の平均: 4.0
5 目的と手段のボタンの掛け違いに気がつきます
4 シンプルイズベスト
5 スモールビジネスを成功に導く良書
3 斬新でシンプルで、会社の作り方、仕事の進め方が提案されている。
5 純粋にに普通に突き詰めた、シンプルな解かと。
posted with amazlet at 2010.07.17

という本の備忘録。

37シグナルズ社の経験をベースに、小さい規模でシンプルに利益をあげていくソフトウェアビジネスについて述べられている。

37シグナルズ社とは:

2010-05-18

iPhoneアプリ開発: CGImageRefを回転する

CGImageRefをアフィン変換で回転させる方法。
ググったらいい感じのコードが見つかったのですが、今作成に関わっているアプリのソースコード(たぶん座標系が普通と違います。90度回転してそう)に単純にコピペしてみたら微妙に上手くいきませんでした。

コピー元:How can I modify this code, which rotates a CGImage, not to crop the image on rotate? - Stack Overflow

とりあえず次のように修正したら、思い通りに動いたのでメモ。

2010-04-14

iPhoneアプリ開発: objective-cでのqueueやstack

iPhoneアプリ内で、データ構造としてqueueを利用したい場合、それそのものなクラス(例えばJavaにおけるjava.util.Queueの実装クラス)は存在しないようです。ただ、Cocoa FoundationフレームワークのNSMutableArrayを利用すると、容易に実装できます。

2010-04-07

iPhoneアプリ開発: 同時に録音再生するアプリで、オーディオ出力をiPhone端末下部のスピーカに切り替える

VoIPアプリのように、マイク入力とスピーカー出力を同時に処理する必要がある場合、下記コードの(1)のように、AudioSessionCategoryをkAudioSessionCategory_PlayAndRecordに設定します。

関連する設定をもう一つ。

2010-04-05

iPhoneアプリ開発: アプリの名前に関する設定項目まとめ

iPhoneアプリのビルドからリリースまでの間に、アプリの名前に関する設定項目がいくつも登場します。
表示箇所と、それに対応する設定項目をまとめておきます。