今週末の土曜日はXP祭り2008です。
ついカッとなってLTに申し込みました。
資料を作る時間がなくて後悔している。(笑)
今年はLT充実、カナダでのAgile2008レポート充実です。
参加無料で参加申し込みまだ受け付けるみたいなので、
興味のある方はぜひ!
会場でお会いしましょう!
]]>久々に晴れたのでここぞとばかりに洗濯です。
今日の空は濃淡差が強く、雲も白くてもくもくしてたので
新海誠描写的な空でした。
ということで、
昨日もらったAjax本ですが、
私は永久積ん読にしてしまいそうなので読みたい方にさしあげます。
ご連絡くださいー。
手渡しできない場合は送料を戴きます。
QuickSilver like Firefox controller
Understanding AjaxQuickSilver like Firefox controller
今年は中野ZEROで1000人規模のイベント。
ラリーウォールの基調講演開始時には既に大入り満員といった感じでした。
感想、後半少ないのは体力切れです。(^^;)
■基調講演:Larry Wall
Perl5とかPerl6を P5,P6って書くのね。
発音は「ぷぉふぁいぶ」に聞こえる。profile?と最初思った。
英語は非常に簡易に話してくれたけど、
つかめたのは半分くらいかなー。
日本語の単語も交えて話してくれました。
内容は正規表現の話がメイン。P5->P6の変更を説明。
途中でプレゼンのデザインが崩れてたときに
"my TAKAHSHI's broken."的なことを言ったと思うのだけど、
高橋メソッドプレゼン資料のことをTAKAHASHIっていうのかな。
すごいな。
■パネルセッション:LLで未来を発明する
・100年後の言語は?
100年前→歯車を組み合わせたような計算機が小型化されたころ。
Lamda式は1930年代の論文にあって、電子計算機より歴史が古い。
車の運転みたいに簡単な教習を受けたら誰でも安全に使えるようになってるのでは。
+とか-とか、当たり前になった数学記号は残るんじゃないか。
↑1600年代くらいにできた比較的新しい概念
・100年後まで何してます?
Perl. : ラリーウォール
Ruby. :まつもとゆきひろ
会場爆笑。
・関数型言語のいいところは?
ラリ−:関数型言語は機能を盗むのがうまいからなー。
すみい:C++へのLamdaの浸食とかあるから、
関数型も命令型もオブジェクト指向型言語も似たようなものだなーと。
関数型言語は頭イイ人が多いのでそういう人と出会えるという間接的なメリットはあるね。
・ひげぽん:分かりづらいエラーメッセージなどでユーザーの時間を奪ってないか?と不安になるが、他の方は?
Matz:その通りだと思う。私はlazzyなんで、ユーザーから
「奪われてる!」って声を聞いて直すんだけど。(笑)
Lally:言語設計者は大統領のように振る舞わないとだね。謙虚にね。
まとめ:よしおかさん質問挙手早かった。w
■LLでアート
・Proce55ing
グラフィカルな描画をLLで。
LLの正しい使い方って感じがしました。いいかんじ。
ハオハオ:各要素同士の好き嫌いを設定して絵を描く
rubyCocoa+CoreAnimation+QuartzComposerとか楽しそう。
デモとライブコーディングが非常に楽しかった。
LLすごい。
・Max
QuartzComposerみたいにGUIコーディングする環境が多いのね。
そーいうコードは読みづらい欠点があると思うのだけど、
なんかうまい解決方法はあるのかなー。
■プロゴルファー浜地
ゴルフ場経営で有名なshinhさんと
初めてのRubyのyuguiさんがそろって登壇という
私の中の2大巨頭が夢の競演。
・doukaku.org
短さだけでなく、
それぞれの言語でおもしろさなどの価値を認めてあげるコロシアム。
ゴルフは人生を豊かにします。w
会場からの質問に対する壇上のみなさんのやりとりが面白すぎだったので、
パネルセッション形式でぜひやってほしかった。wwwww
■竹迫アワー
LLFutureのLLは実はLowLevelの略でした。
まさかLLVMの説明が聞けるとは。すばらしい。
もっと詳しく聞きたかったなぁ。
■抽選会、閉会式、その後
・ボールとったよ!ajaxの英語の本もらった。
・Larry Wall : (日本語で)「今日、若くなりました。」
・ドラ娘さんをみかけたのでお話した。
「今年は様子見だったのですが、来年はチャイナドレスで出ます!」
という言質をとった。w 来年と言わず次回のXP祭りでぜひ。
・突発高専オフ開催
]]>macのwindowには3つボタンがあって、
赤がウィンドウを隠す、黄が最小化。
緑は最大化っぽいのですが、
どちらかというとwindowをほどよい大きさにしてくれる機能です。
私は普段macBookに外部ディスプレイをつないで使ってるので、
画面解像度がかわることが多いのですが、
そのときに緑ボタンは便利です。
でも、このキーボードショートカットが無い。
調べたところ、ホントにないっぽい。
さらに調べたら、この機能は「拡大/縮小」というらしい。
ウィンドウメニューにあった!
そうと分かればシステム環境設定から設定です。# 画像参照
「キーボードとマウス」の「キーボードショートカット」を開いて、
アプリケーション・キーボードショートカット→全アプリケーション
を選択して+ボタンで新規項目を作ります。
そして「拡大/縮小」と入力して好きなショートカットキーをいれればOK。
おお、できたー!めでたしめでたし。
・・・とはいかないのでした。
だいたいのアプリはそれでいいのですが、
メニューに「拡大/縮小」がないやつが困るのです。
CarbonEmacsとか。
そこでAppleScriptでこのボタンを押すイベントを送るコードが
リンクのページにありましたので使ってみます。
スクリプトエディタを開いてコードを入力して実行。
実行したら
「システム環境設定」「ユニバーサルアクセス」「補助装置にアクセスできるようにする」
がONじゃないとダメだと言われた。
このスクリプト素晴らしいなぁ。
ONにすると想定通りの動き!!ヽ(´▽`)ノ
あとはこれを保存して、
QuickSilverのキーボードショートカットで呼び出すようにして完了。
快適なMac生活がまた1つ実現しました。(^^)
参加してきました。
前回とはうってかわってiPhone開発してる人が多数派。
懇親会はiPhoneの話もたくさん聞けて、
読書会も懇親会もめちゃめちゃ勉強になりました。
以下、私的メモです。
最後にプロジェクタに映してみんなで復習する機会をもらいまして、
間違いを指摘してもらえるというラッキーイベントも。
それでもまだ素人なので間違いに気づいた方はご指摘頂けるとうれしいです。
---
■4章p.78〜
・Nilはnilと違う。Nilはクラスオブジェクト専用。でもほとんど使わんね。
・クラスオブジェクトはいつできるの?
→普通にコードを書くならプログラム起動時に全部あると思っていい。
ダイナミックにロードするのは違うんじゃないかな。
・self:自分のクラスのクラスオブジェクト
・super:親クラスのクラスオブジェクト
・static指定子
・・static以外:大域的にアクセス可能
・・static指定子:実装ファイル内だけで参照可能
・クラスオブジェクトの初期化(プログラム開始時に既に存在してるんだけどどうする?)
→NSObjectのinitializeで行う
・initializeメソッドは複数回呼んでも大丈夫にすべき
→子孫クラスでinitializeが実装されてない場合は複数回呼ばれるので
・イニシャライザの返す型はid型にしておくこと(インスタンスオブジェクトの話)
・Classはクラスオブジェクトの型。
Class hoge;
・classはレシーバクラスオブジェクトのインスタンスオブジェクトを得るメソッド(ややこしい・・・)
[instanceObj class];
■5章
・メモリ管理方式は2種類
・・カウンタ管理方式(MacOSX全般,iPhone)
・・ガベージコレクション(10.5〜)
・deallocはコードから呼んじゃダメ
→retain,releaseつかってね
・releaseは参照カウンタを1減らすだけ
・オブジェクト終了処理はdeallocに実装する
・・deallocの最後に[super dealloc];を呼ばないとダメ(自動で呼ばれない)
・ObjCオブジェクトはローカル変数のようにhogeclass hoge; とは書けない。alloc使え。
・autorelease
id pool = [[NSApplicationPool alloc]init];←自動解放プールオブジェクトを生成
ここでアハハウフフする
[pool release]; ←ここで解放される
・自動解放プールは複数生成できる。直近のものが使われる。
・自動解放プールにはautorelease呼んじゃダメ
・自動解放プールはGUIアプリだとイベントループで自動に作ってくれるので自分で作らなくていい。
→でも、CUIアプリだとないので注意。自作してね。
・メソッド内でautoreleaseして返す→受けた側でretainという技。オーナーが移動する。
・setterでの注意
・・ダメな例(myValueオブジェクトとobjオブジェクトが同じだとdeallocされちゃう)
- (void) setter:(id) obj
{
[myValue release];
myValue = [obj retain];
}
→良い例
- (void) setter:(id) obj
{
[obj retain];
[myValue release];
myValue = obj;
}
・autoreleaseされて返されるinitializeがあるよ
・・-(id)initWithUTF8String:(...)
・・+(id)stringWithUTF8String(...) ←autoreleaseプールに入ってオブジェクトをもらえる
↑コンビニエンスコンストラクタといいます
・解放されたオブジェクトにメッセージを送った場合の動作は不定
・ADC 2124 メモリ情報をコンソールに出したりとかいうテクニックが紹介されている
http://developer.apple.com/technotes/tn2004/tn2124.html
--- 広告 ---
www.date2.jp
デートスポットの口コミサイト
------