2008-10-03 [長年日記]
_ [C++] クラス名取得
C++でクラス名を取得する場合のメモ。()の章番号はC++規格書JIS X 3014。
C++ではRTTIで実行時の型情報が取得可能。
規格上 type_info::name() の 返却値は
『処理系定義のNTBS』
という定義だけ。(18.5.1)なんで処理系依存。
__func__ は C99 拡張なので C++ では使用できず、
独自拡張として用いることが出来るだけ。
(__FUNCTION__ がVC++独自拡張機能)
C++であらかじめ定義されたマクロ名は (16.8) に書いてある。
__LINE__
__FILE__
__DATE__
__TIME__
__STDC__
__cplusplus
g++なら __PRETTY_FUNCTION__ で ClassXXX::FuncXXX(int,int) を取得可能。
2008-10-04 [長年日記]
_ [kosen] 高専カンファレンス in 東京 第2回
ミラクル・リナックスさんに会場を借りられたので、
東京での第2回が開催できそうです。ML社++;
各分野で活躍する高専生の話を聞きたい!の会です。
今回は"The Nature Style"をテーマとして、
「各自が得意の専門分野についての話を持ち寄り、
他分野の人たちとその面白さを共有する集まり」を目指します。
IT系が多くなってしまうとは思うのですが、
札幌高専の方にデザインの話をしてもらったり、
ML社社長の児玉さんにもお話をしてもらう予定です。
発表者募集を開始しましたので、
「私の得意分野を話したい!」
という方はぜひご応募ください。
また、実行委員を手伝ってくれる方いましたらぜひ。
みんなで少しずつ分担して雑務をこなせるといいなーと思ってます。
2008-10-07 [長年日記]
_ ノーベル物理学賞
ノーベル物理学賞は日本人が独占しましたね。
日本人ぽい名前なのにUSAってあるのはなんでだ?
と思ったら米国籍なんだそうです。
物理学賞で3人が日本人って初めてなんじゃないかな。
でも素粒子はわからので解説はできません。(^^;)
明日は化学賞、ちょっとは分かる内容だといいなぁ。
2008-10-08 [長年日記]
_ [science] ノーベル化学賞
今年のノーベル化学賞は
"for the discovery and development of the green fluorescent protein, GFP"
ということで「緑に蛍光する蛋白質の発見と開発」へ授与されました。
こちらも日本人の方(今は米国籍)が1人絡んでますね。
asahi.comほど詳しくは書けないですが、
公式ページにある解説資料の背景のとこだけ読んだので超要約。
---
20世紀はバイオテクノロジーが革命的に進歩した世紀でした。
21世紀を迎え、
"Aequorea victoria"というクラゲから発見された
GFP(green fluorescent protein:緑に蛍光する蛋白質)
とその一族蛋白質は、
実験のための強力なツール開発の礎になっています。
GFPは生きていて増殖し続ける細胞の現象を、
時間的、空間的にモニターすることができます。
遺伝子の発現、蛋白質の局在化とダイナミクス(動き)、
蛋白質間の相互作用、細胞分裂、染色体の複製と組成、
細胞間の転送経路( intracellular transport pathways でなんか意味ある単語ぽいね)などなど。
加えて、GFPによるモニターの空間解像度は回折による方法よりも高いのです。
さらにさらに、細胞内部のpH値、Ca2+濃度などの測定装置として
GFP系の蛋白質がつかわれているのです!
---
なるほど、ちょっと分かった気になれました。
最後に、"Aequorea victoria"のイメージ検索を。
きれいだな〜。
2008-10-11 [長年日記]
_ [QC] QuartzComposerBook
「少年少女オデッセイ」などで有名な未来派図画工作さんのQC本がついに出ました!
装丁もデザインも美しいです。
内容はQCの入門から実践までを実例を挙げて解説してます。
QCの使い方を教えてくれるだけでなく、
「こうするとそれっぽい」というデザイン上のノウハウも教えてくれます。
例えば下から見上げるような構図にすると大きさを感じる、とか、
ランダムをうまく使うと自然に見えるとか。
サンプルファイルがDLできるので見て頂けると分かるのですが、
どれもサンプルとは思えないクオリティの高さ。
三葉虫のアニメーションはなめらかでびっくりしました。
プラグラマでデザインのノウハウを知りたい人、
デザイナでQCのプログラミングをしてみたい人、
どちらの方にもオススメの一冊です。
要望としては、QC全パッチのリファレンスを
誰かまとめて出してもらえるとうれしいですね。
ADCにそのものずばりはないと思うので。
2008-10-12 [長年日記]
_ [book] インストラクショナルデザイン
tmaedaさんにオススメされたこの1冊、
今年読んだ本の中で5本の指に入るヒットでした。
あと15年早く読んでおきたかった。(笑)
この本は「教え方」の教科書。
インストラクションとは
「何らかの行動を引き出すための仕掛け」。
「教えた後、相手がそれをできるようになる、もしくはその到達方法が分かる」
簡単に言うと↑ってことかなと。
教え方のうまい人はたぶんこの本に書いていることを無意識でやってる。
それがちゃんと文書化されて順を追って確認できるのがいい。
・何を教えるのかはっきりさせる
・学びにコミットする
「学び手が学ばないときは、教え手は教え手側に工夫の余地を探して改善する」
「ただし、学び手が学ぶかどうかの100%の責任を教え手におしつけるのではない」
「学び手はいつも正しい。個人攻撃ではなくて改善の余地を考える。」
・成功の基準をはっきりさせる
習熟確認テストを先に作るテスト駆動もいい。
・見せてやらせて確認させる
私も「見せて」が大事だと思ってるけど、
振り返るとそれにあてはまらない教え方をしてた先生も多かったなと。
・スモールステップ
正答を示し、すでにできている行動から指導を始めて、
分からないことは何かをはっきりさせる。
などなど、ここには書ききれない知識が満載なので、
興味を持った方はぜひ本を手にとってみてください。
「教える」こともフィードバックが大切で、
そのフィードバックを得る、活かすためにどうするか、
評価基準を作って学び手の習熟度を測る、、、とか。
普段の仕事と同じことですね。
教師や教える仕事、文を書く仕事をしている人はもちろん、
あらゆる人々、例えば学生さんにもオススメです。
学び手になることがない人はほとんどいないと思うので。
2008-10-18 [長年日記]
_ ObjectiveC2.0読書会第5回
参加してきたので私的メモをこちらにもメモメモ。
あとで読みかえそう。
考えながら読みながらメモったので品質はイマイチです。
今回はChapter8-10,AppendixB。
コーディング規約に慣れるのは時間かかりそう。
---
■Chapter8
NSData:バイナリなデータを扱う時に使う。Cのunsigned char[] とかに相当。なにものかわからなくても大きなデータを格納するのに使う。最適化がうまくできてるらしい。
不変なクラス:マルチスレッドのときにリエントラントに扱えるというメリットもある。不変なクラスを扱っているときはロックをかけなくてよいらしい。
■Chapter9
カテゴリ:あるクラスの一部分を実現するモジュール。クラスの実装を複数の場所に書くときなどに使う。カテゴリにはインスタンス変数は宣言できない。カテゴリのメソッド実装には「クラス名+カテゴリ名.m/h」を使うのが普通。
プライベートメソッド:誤って上書きしないようにするために、Appleの推奨は接頭語をつけること。(付録B)
クラスエクステンション:メソッド実装忘れを防ぐための仕組み
既存クラスへカテゴリを追加できる。新しいインスタンス変数は追加できないが、メソッドは追加できる。
継承とカテゴリの使い分け
継承:インスタンス変数を追加できる。superのメソッドも呼べる。
カテゴリ:新規メソッドだけ追加すればいいので楽。既存メソッドを上書きできる。が、注意して使うべき。
■Chapter10
抽象クラス:インスタンスを生成せず、サブクラスのインターフェースを宣言するするもの。ただし、普通のクラスと区別する言語上の特別な仕組みは無い。
クラスクラスタ:パブリッククラス(看板となる名前を持ってるクラス。NSStringとかNSSetとか。)を使っていると、実は内部では違うクラスのインスタンスが作って使われていて、よきにはからっていてくれる仕組み。NSStringとか、Foundationフレームワークでもよく使われている。
NSStringとかのサブクラスをダイレクトに作るとこの仕組みがあるのではまることがある。カテゴリの方が楽だなーと。
■AppendixB コーディングの指針
"Coding Guidelines for Cocoa"
綴りのルール:
- 2つめの単語から先頭文字を大文字にする(ラクダ)
接頭語:
- NS:Foundation, Applicationフレームワーク
- CF: CoreFoudation
- IB: Interface Builder
- CI :Core Image
- Web:WebKit
- _:Apple予約接頭語
名前に使う単語:
- 省略は避けよう
- 迷ったらCocoaAPIをまねる
- 複数オブジェクト返すときは複数形にしてあげると親切
プロトコル名にはingを付ける
カテゴリ名
「クラス名+カテゴリ名.m」
メソッド名:
値をとる場合はgetつけない
get始まりの場合、メモリをコピーしてそこに書き込んだ結果を得るメソッド
真偽値はis始まり
同じ機能の場合は親クラスと同じメソッド名にしておくとポリモフィズムが使えて便利
- 例外名:末尾にExceptionを付ける
- エラー名:末尾にErrorを付ける
- これから起きる:Will+動詞原型
- 起きた:Did+動詞原型
- 〜してもよいか?:Shoud+動詞原型
- グローバルユニーク名:URLの逆順
-- 例) com.apple.iPhoto
■Chapter11 プロトコル
プロトコル:メソッド宣言の集合、ダックタイピングに便利そう。
プロトコルに適合している:あるプロトコルを採用し、メソッドを全て実装している
@interface クラス名 : スーパークラス名 <プロトコル名>
プロトコルに適合している
id <S> obj;
conformsToProtocolメソッドでオブジェクトがプロトコルに適合しているか分かる。
非形式プロトコル:カテゴリの宣言だけで実装無し→実装がなくてもコンパイル可能、メッセージ送信時に実行時エラー。デリゲートでよく使われるらしい。
オプション付きのプロトコル(@required, @optional)が ObjC2.0 から使えるようになったので、そっちを使ってもいい。
2008-10-19 [長年日記]
_ [kosen] 「高専カンファレンス2008 Winter in 東京」をミラクル・リナックスが支援
ということで、ML社児玉さんのご支援によりプレスリリースがでました!
「〜若い技術者の育成や交流を促進し、日本のエンジニア力強化を支援〜」
というサブタイトルが秀逸。
世界がぶわっと広がってどわっと視界が開けた感じがします。(?)
前日に準備委員会があったのですが、そこからの流れを追うと、、、
10/15夜 @ML社 準備委員会 参加者募集方法決定
10/16
AM 1:00 参加者募集開始
AM 9:00 参加希望者10名くらい
PM 2:00 プレスリリース
PM 6:00 参加希望者25名くらい
PM 10:00 参加希望者35名くらい
さすがにやばいと気づきキャンセル待ちの準備
PM 11:50 参加希望者45人突破、定員満席
ということで24時間かからずに満席になってしまった。
満席になることは予想してたけど、このスピードが完全に想定外。
潜在的な高専カンファレンスの需要の高さがわかりました。
これなら200人規模の会場でも開催できますが、
あまり大人数でやるよりも50人規模の開催を短い間隔で続けた方がいいかも。
会場で一体感を感じるのは50人規模くらいが限界かなぁと感じてます。
次回開催してくれる人を大大大募集中です。(^^)
翌日にはITMediaの西尾さんがプレスリリースをとりあげてくださいました。
たぶん、webニュースに自分の名前が出たのは初めて。
わざわざ前回の発表を調べてリンクまではってくださいました。
# 試しに本名でぐぐってみるとこの日記にはたどり着けない。
# この日記はアルファベット表記では本名出してるけど、
# 漢字では書かないようにしてたのがうまく働いてるらしい。
# でも、もう本名で検索してここにこれるようにした方がいいかもなぁ。
発表に関してはこれだけの人をもう1回集めましょう、
といっても難しいんじゃないかという豪華メンバ。
ustreamでも配信予定なので、
全国のみなさんに参加していただけるとうれしいです。
2008-10-26 [長年日記]
_ [ruby] RubyKaigiSapporo01でLTタイマー
sappororubykaigi01
第1回regionalRubyKaigiに参加しに札幌へ。
前回高専カンファレンスで使ったタイマーをIRCコメント対応して、
会場で「いける?」とtmaedaさんから打診をいただいたので
とびいりでタイマー運用させてもらまいました。
文字化けバグとかまだ改良したいところは多々あるんですが、
好評でいろんな方にほめていただき、
自分が作ったものでみんなが喜んでくれるという
エンジニアとしてこの上ない体験を味わうことができて幸せでした。
謝辞として、以下の方々へ感謝を。
QC本の未来派図画工作さん、(この本がないと作るのかなりきつかった)
時計の部分の実装をインスパイやさせてもらったamanyoさん、
RSS入力のアイデアを作った咳さん、
今回は直接は使わなかったんですがmootohさんにも質問させてもらいました。
2次会の飛び入りLTでも話した資料と、
少し前のバージョンですがデモ動画をのせておきます。
さて、本編はというと、発表がかなりすごい。
artonさん:windowsでrubyをどう使うかそしてarton節炸裂
hsbtさん:tdiary 1st author への道
咳さん:dRubyとスパルタ教育と初版買えます.4times
角谷さん:レガシーなコードとのつきあい方〜tdiaryのtはtestのt〜
という東京でもめったに聞けない豪華発表陣。
LTではt_wadaさんの「カバレッジはテストを絞るためにある」な発表が
私とみんなの琴線にふれる素晴らしい内容。
私は角谷さんの発表がぐっときました。
レガシーコードにどう挑むかの実例を、
あれしかない時間の中に凝集してかつ分かりやすくリズム良く話せるというのは、
ものすごい技術です。
RubySapporoのみなさんは日頃から大変お世話になっていますが、
今回もおもてなししていただきありがとうございました。
札幌でこれだけのイベントができるのは本当にすごいです。
感動にひたってしまいました。
エンジニア冥利につきる3日間でした。
これからスープカレー食べて帰ります。(^^ゞ
2008-10-27 [長年日記]
_ kitaca
札幌版Suicaのkitacaが10/25〜サービス開始ということで、
早速手に入れてきました。
札幌愛好家としてしばらくは見せびらかしまくります。(^^ゞ
無記名のものは自動券売機で購入できて、
2000円で500円がデポジット、残り1500円がチャージされる。
キャラクタはエゾモモンガかな?かわいい。
札幌-新千歳空港間で切符を買わなくて済むのは便利なので、
次回行ったときの分もチャージしてきた。
でも聞いたらそのうちSuicaも使えるようになるらしい。
あれ、じゃあ次回はSuicaがあればOK? (^^;)
しかも、東京きて羽田空港でSuica使おうと財布かざしたら
「2枚入ってるがな!」と怒られた。(笑)
インフラは同じなんだね。
2008-10-28 [長年日記]
_ [book] われら高専パワー全開
こんな高専生の血を沸き立たせるタイトルの本があったのか!
全国の高専卒業生が自分のキャリアを語り、
現役生に向けたアドバイスを送るという内容。
ものづくり、IT、宇宙、材料、科学、教育、環境、建築・・・と分野は多岐に渡る。
自分で企業した社長さんや大学の教授、有名な商品に携わった人などなど豪華。
ポケモンのデザイナーさんも高専出身なのか。オセロの世界大会優勝者なんて方も。
12月の高専カンファレンスにきてくださるjig.jpの福野さんも書いてますね。
おもしろいのは商船高専の方々の話。
5年生のときに1年間世界を航海するのだそうだ。
そのときの先生の言葉がぐっときた。
「君たちは自分の力で太平洋を横断したのだ。」
高専関係者のみなさん、
この本を読んで熱い想いを補給してみてはいかがでしょう。
高専関係以外の方にもぜひ読んでもらいたい1冊です。
2008-10-29 [長年日記]
_ 第1回ビアバッシュ研究会
高専カンファレンスの懇親会はビアバッシュにしよう!
という流れで児玉さんから
「ピザ注文のプロフェッショナル」として紹介されたミラクル・リナックス吉岡さん。
macchaさんがそのノウハウを聞き出すべく
第1回ビアバッシュ研究会がおいしい牡蠣を食べながら開催することに。
私も参加させてもらいました。
吉岡さんの90回に渡るカーネル読書会運営ノウハウをいろいろと聞けました。
特に参考になったのは
「他の人から何を言われても、自分に後ろめたいことがなければぶれない。
そのために様々な準備をしておくべき。」
この言葉。これは心に留めておくべき。
勉強会勉強会の話も出て、
高専カンファレンスとしても他のコミュニティのみなさんに
提供できるノウハウやツールがあればぜひ今後発信したいと決意した。
開催のコストがもっと下がって、いろんな勉強会がもっと増えれば
「日本始まりすぎどうしちゃったの!!」by 吉岡さん
な流れはさらに加速するはず。
他にもいろんなノウハウを伝授してくれるとともに、
若い面々に熱い想いを伝えてくれた吉岡さんに感謝!
場を作ってくれたmacchaさんにも深く感謝!
2008-10-30 [長年日記]
_ DSiとWEP
前にNintendoDSはWEPという無線LANセキュリティの方式を使っていて、
それは攻撃が存在するので危険ですよ、という日記を書きました。
その後DSiが発表になり、
こちらはWPA2対応ということで楽しみに待っていたのですが・・・
「従来のDS用ソフトは、従来のセキュリティレベルですが、
DSi専用に作られた新たなソフト群では、
セキュリティレベルの高い方式を使えるようになりました。 」
えー、今までのやつはDSiで遊んでもWEPなのね。。。しょんぼり。
ってことはDSが提供しているAPIを叩いているわけじゃなくて、
各ゲームがそれぞれ無線LANの暗号化をしているのかな。。。
メリットもなくなっちゃったので、DSi買うのはしばらく凍結しようと思います。
_ やまさき [__func__って、確かマクロじゃなくって使うのに注意が必要とかでしたっけ? 関数名だけを高速に綺麗に取り出せると..]
_ いが [>やまさきさん んー、C99は使ったことないんでわかんないっす。 使ってバッドノウハウなどあったら教えてください。]