Lipsで書くと、こんな感じ。
カッコの数があっているのか心配になる。
Prologで書くとこんな感じ。
分かりやすい。ステキ☆
Haskellで書いてみる。
やっぱりこのあたりはHaskellが一番きれいかも。分かりやすいし。
Javaで書いてみる。
この程度のことでも色々書かなくちゃ行けない辺りが面倒。
2011年10月28日金曜日
2011年10月27日木曜日
Objective-C... メモリ管理
処理 | iOSのフレームワーク | Mac OS Xのフレームワーク |
---|---|---|
データ処理 | Foundation | Foundation |
グラフィック処理 ユーザインタフェース処理 | UIKit | AppKit |
マルチメディア処理 | AV Foundation, Media Player | AppKitの一部、QTKitなど |
オブジェクトの生成と削除
オブジェクトはRetain Countが0になった時に削除される。オブジェクトの作成時には、Retain Countは1で初期化されている。
<普通のオブジェクト>
通常のオブジェクトは、メソッド終了時に自動的に破棄される。
イベントの発生によりメソッドが実行される場合、メソッド実行の直前にAutorelease Poolが作られ、メソッドが実行されている間に作成されたオブジェクトの管理を行う。メソッドが終了する直前にAutorelease Poolは削除されるが、その中で管理されていたオブジェクトに対して一斉にreleaseメソッドが送られる。これによりRetain Countが0になるため、オブジェクトは削除され、メモリが解放される。
<明示的に管理する場合>
retainをオブジェクトに対して実行すると、保持カウントが+1される。
この場合は、Autorelease Poolで管理されていても、Autorelease Pool削除時のreleaseにより保持カウントが0にならないので、オブジェクトは削除されない。
イベント処理が終了した後でも使用したいオブジェクトに対しては、retainを呼び出しておく。
この場合は、オブジェクトが不要になった時点で明示的にreleaseを送り、保持カウントを減らす必要がある。
< Autorelease Poolで管理されないオブジェクト >
- alloc, newという文字列を名前の先頭にもつメソッド
- copyという文字列を名前に含むメソッド
- 明示的にreleaseする
- autoreleaseメッセージを送っておく(AutoreleasePoolの管理に入る)
< allocの注意 >
allocでオブジェクトを作る時は、initから始まる初期化メソッドを呼び出すことが必要。
オブジェクトの生成(メモリの確保)は行うが、初期化を行わないため。
2011年10月5日水曜日
Linuxキーマップの設定
ThinkPadのキー配列がUSな関係で、キーマップの設定が必要になることがある。
VMWare上のCentOSでキーマップが違ったので直した。
よく忘れるのでメモ。
RedHat系:ファイルは/etc/sysconfig/keyboard
JPの場合
debian
JPの場合
VMWare上のCentOSでキーマップが違ったので直した。
よく忘れるのでメモ。
JPの場合
KEYBOARDTYPE="pc" KEYTABLE="jp106"USの場合
KEYBOARDTYPE="pc" KEYTABLE="us"
JPの場合
# cp /usr/share/keymap/i386/qwerty/jp106.kmap.gz /etc/console/boottime.kmap.gzUSの場合
# cp /usr/share/keymap/i386/qwerty/us.kmap.gz /etc/console/boottime.kmap.gz
2011年9月11日日曜日
ハンダ付け勉強会
OSSコンソーシアム 組込み部会女子部 組込み女子半田ゴテ勉強会 様による(第3回)「メイドさんハンダ付け勉強会」というイベントに参加しました(正式名称がこんなに長かったとは)。
Arduinoを使った「ラブメーター」を作ろうということで(どういうお題だ)。知り合いのおっさんから「参加者が少ないから来て」と言われたので参加。
実際にハンダ付けしたものは、シンプルなもの....でも色々とトラブルがあってちゃんと動かず皆で苦悩するという謎の状況に陥った(間違えた抵抗が配られたというオチ)。
で。本題の方はたいしたことではなく。参加者がすごかった。
まず、本物のメイドさん。会場に入ったら「お帰りなさいませ」と言われてビビる。
本物のメイドさんをこんなに間近に見たのは初めて(なんと席が隣だった)。確かに可愛い....メイドカフェとか流行る訳だわ。
この後に行った別の宴会では、彼女の写真をおっさんにみせびらかして羨ましがられた。へへへ。
そしてコスプレの方々。
左は、昨日の講師さま
コスプレしていない私の方がおかしいのか?という気分にさせられる
そして、メイドさんにデレデレするおっさん多数。秋葉原らしい勉強会でした。
Arduinoを使った「ラブメーター」を作ろうということで(どういうお題だ)。知り合いのおっさんから「参加者が少ないから来て」と言われたので参加。
実際にハンダ付けしたものは、シンプルなもの....でも色々とトラブルがあってちゃんと動かず皆で苦悩するという謎の状況に陥った(間違えた抵抗が配られたというオチ)。
で。本題の方はたいしたことではなく。参加者がすごかった。
まず、本物のメイドさん。会場に入ったら「お帰りなさいませ」と言われてビビる。
本物のメイドさんをこんなに間近に見たのは初めて(なんと席が隣だった)。確かに可愛い....メイドカフェとか流行る訳だわ。
この後に行った別の宴会では、彼女の写真をおっさんにみせびらかして羨ましがられた。へへへ。
そしてコスプレの方々。
左は、昨日の講師さま
コスプレしていない私の方がおかしいのか?という気分にさせられる
そして、メイドさんにデレデレするおっさん多数。秋葉原らしい勉強会でした。
2011年8月29日月曜日
OCJ-P
バウチャーを買って、早くも1年。期限切れしてしまうということで、焦ってOCJ-Pを受験してきました。
対策は黒本(教科書と問題集両方)のみ。
黒本と殆ど同じ問題が何問か出題されて、ちょっと驚きました。全体的には黒本よりも簡単な問題が多かったです。
問題運があったのか、あまり難しい問題も無く。10年くらい前に「引っ掛け問題が多い」という噂を聞いていたので、警戒していたのですがそういうことも無く。割と素直な問題が多かった印象。
・コレクションはそれぞれの特徴と代表的なメソッドは覚えた方が良い
・スレッドは排他制御(synchronizedあたり)
・javac/javaコマンドのオプションもちゃんと出た
最初はサンプル問題から始まり、ほいほいと解いていると知らない間に本試験になっていました。「ここから本番ですよ〜」ともっと主張して欲しい...
正解率は93%で合格。60問なので4問くらい間違えたのか...多分、コレクションのあたりかなぁと思う。
黒本は、正誤表もあるけど「え?これおかしくない?」という解説や解答例があり、ちょっと悩ましい。
ところで、Bloggerって読者がつくシステムなんですね。知りませんでした。
こんな放置気味のブログにも読者がついていると....申し訳ないっ
対策は黒本(教科書と問題集両方)のみ。
黒本と殆ど同じ問題が何問か出題されて、ちょっと驚きました。全体的には黒本よりも簡単な問題が多かったです。
問題運があったのか、あまり難しい問題も無く。10年くらい前に「引っ掛け問題が多い」という噂を聞いていたので、警戒していたのですがそういうことも無く。割と素直な問題が多かった印象。
・コレクションはそれぞれの特徴と代表的なメソッドは覚えた方が良い
・スレッドは排他制御(synchronizedあたり)
・javac/javaコマンドのオプションもちゃんと出た
最初はサンプル問題から始まり、ほいほいと解いていると知らない間に本試験になっていました。「ここから本番ですよ〜」ともっと主張して欲しい...
正解率は93%で合格。60問なので4問くらい間違えたのか...多分、コレクションのあたりかなぁと思う。
黒本は、正誤表もあるけど「え?これおかしくない?」という解説や解答例があり、ちょっと悩ましい。
ところで、Bloggerって読者がつくシステムなんですね。知りませんでした。
こんな放置気味のブログにも読者がついていると....申し訳ないっ
2011年7月17日日曜日
Ruby会議
繁忙期につくばとかでやってるから、ずっと行けなかったRuby会議に初参加。
今年で最後なので、最初で最後。
「最近、こんなに英語聞くこと無かった!」と目を回しそうなくらい、英語を聞いている。
時々、頭がフリーズしている。通訳が出るので、なんとかなっているが。
クックパッドや図書館システム、クリティカルシステムの話が、興味深かった。
ライブラリとかGC周りもオモシロいんだけど、実際にRubyを使って開発している人たちの工夫はなかなかまとめて聞けないし。Solrが流行っているのかしらん?
今日もテスト関連の話を聞いて、「データの種類ごとにテストのやり方を変える」とか「そーかー、思いつかなかったよ」と目から鱗。
仕事でRubyを使う機会が無いので(研修でRailsをたまに教える程度)、今回仕入れた情報をいかに活用するかが問題だ。
そろそろフリー生活にピリオドを打ち、就職したいと思っているので今回の「求人中です」というプレゼンには激しく心を動かされる。でも...研修で教えているだけで、開発で使ったこと無いからなぁ。むぅ。
技術評論社をはじめ、色々な人の素早いレポートに驚愕する毎日。今日は、みんな懇親会かな?
明日はRuby会議最終日&railstokyo。楽しみ。
追記:
「アンチ・ボッチ」活動のおかげで、二日連続で初対面な人たちと楽しくご飯を食べれたことに、感謝。
今年で最後なので、最初で最後。
「最近、こんなに英語聞くこと無かった!」と目を回しそうなくらい、英語を聞いている。
時々、頭がフリーズしている。通訳が出るので、なんとかなっているが。
クックパッドや図書館システム、クリティカルシステムの話が、興味深かった。
ライブラリとかGC周りもオモシロいんだけど、実際にRubyを使って開発している人たちの工夫はなかなかまとめて聞けないし。Solrが流行っているのかしらん?
今日もテスト関連の話を聞いて、「データの種類ごとにテストのやり方を変える」とか「そーかー、思いつかなかったよ」と目から鱗。
仕事でRubyを使う機会が無いので(研修でRailsをたまに教える程度)、今回仕入れた情報をいかに活用するかが問題だ。
そろそろフリー生活にピリオドを打ち、就職したいと思っているので今回の「求人中です」というプレゼンには激しく心を動かされる。でも...研修で教えているだけで、開発で使ったこと無いからなぁ。むぅ。
技術評論社をはじめ、色々な人の素早いレポートに驚愕する毎日。今日は、みんな懇親会かな?
明日はRuby会議最終日&railstokyo。楽しみ。
追記:
「アンチ・ボッチ」活動のおかげで、二日連続で初対面な人たちと楽しくご飯を食べれたことに、感謝。
2011年1月24日月曜日
xmlTextReaderReadでコケた
日本語を含んだXMLの場合は特に、なのかもしれないが。
xmlTextReaderRead()を読んでいると、エラーが発生して途中で終わってしまうことがある。
戻り値が1なら成功、0なら終わり、それ以外はエラー発生でちゃんと処理することが大切。
うっかり忘れていて、ハマった...
日本語の文字列(文字数制限付き)をXMLに書き出す時に、文字の途中でぶっちぎれてしまったのが原因のようす。書き出す時は良いけど、そのデータを読み出す時に「エンコーディングエラー」と言われた。エンコーディングエラーというよりは、日本語文字列が途中で化けているのが原因だった。
C言語で日本語を含む文字列の操作は難しい....文字列処理関数が、基本的に「バイト」単位だからなぁ。英数字と日本語が混在している場合で「120文字以下に切り詰める」ってどうやれば良いんだろう?
xmlTextReaderRead()を読んでいると、エラーが発生して途中で終わってしまうことがある。
戻り値が1なら成功、0なら終わり、それ以外はエラー発生でちゃんと処理することが大切。
うっかり忘れていて、ハマった...
日本語の文字列(文字数制限付き)をXMLに書き出す時に、文字の途中でぶっちぎれてしまったのが原因のようす。書き出す時は良いけど、そのデータを読み出す時に「エンコーディングエラー」と言われた。エンコーディングエラーというよりは、日本語文字列が途中で化けているのが原因だった。
C言語で日本語を含む文字列の操作は難しい....文字列処理関数が、基本的に「バイト」単位だからなぁ。英数字と日本語が混在している場合で「120文字以下に切り詰める」ってどうやれば良いんだろう?
登録:
投稿 (Atom)