○○がホゲホゲな件
ふがふがであるところの○○がホゲでふががホゲホゲのふがで○
よって○○である。
classの記述を簡潔に書けるようにする
Codifyでclassを記述する時の方法が以下の様な感じで、metatableを意識しないで書けるのがとても良かったので実装してみた。
Vec3 = class() function Vec3:init(x,y,z) self.x,self.y,self.z = x,y,z print("vec3:init",x,y,z) end function Vec3:dump() print("vec3:dump",self.x,self.y,self.z) end function Vec3:set3(x,y,z) self.x,self.y,self.z = x,y,z print("vec3:set3",self.x,self.y,self.z) end Vec4 = class(Vec3) function Vec4:init(x,y,z,w) self.x,self.y,self.z,self.w = x,y,z,w print("vec4:init",x,y,z,w) end function Vec4:dump() print("vec4:dump",self.x,self.y,self.z,self.w) end local v4_1 = Vec4(3,2,1,0) local v3_1 = Vec3(4,5,6) local v4_2 = Vec4(0,1,1,0) local v3_2 = Vec3(7,8,9) v4_1:set3(2,2,2) v4_1:dump() v4_2:dump() v3_1:dump() v3_2:dump()
__callを使えば出来そうって所までは直ぐに気がついたけど、__callの第一引数に呼び出した際のテーブルも一緒に渡されて来るのが分からなくて微妙にハマった。
Luaのマニュアル読んでもそんな事一ミリも書かれてないし。。。
可変引数でググッたらselect文を使えば良いよと書いてあったのでそうしてみた。
select(x,...)
x番目以降の可変引数が戻り値で返せるらしい。
以前のバージョンだと配列としてアクセスする方法があったような気がするんだけど無くなってしまったのか。
実装してみたら意外とシンプルに収まった。
function class(parent) local base = { } local mt = { __call = function(...) local mt = setmetatable({},{__index=base}) mt.init(mt,select(2,...)) return mt end } if (parent) then mt.__index = parent end return setmetatable(base,mt) end
iPad上でProce55ingの様に書けるLua環境Codify
http://twolivesleft.com/Codea/
Proce55ingのAPIを意識して作られている上に、エディターやカラーピッカーまで付いててすごい。
コード補完も便利で、ちょっとしたプロトタイピングには最高の環境じゃなかろうか。
ただし、アプリの制限でファイルの入出力が出来ないので画像ファイルセットを新しく用意するとかが出来ない。
せめて外部へのプロジェクトファイルの入出力があるだけでも良いんだけど、現状だと自分一人で満足する事しかできないのが残念だ。
ダァシェリェス
ブレインファック系の言語はそろそろゲップが出そうな感じだけども、たまにはやってみようかと思ったが入力が思いの外めんどくさいので中間言語(ってほどでも無いが)にしてみた。
syelies=<<EOS inc incd*H inc incd*e inc incd*l inc incd*l inc incd*o inc incd* inc incd*W inc incd*o inc incd*r inc incd*l inc incd*d inc incd*! do dec wh inc do put inc wh EOS dic={ "incd"=>"ダァ", #buf[ptr] += 1 "decd"=>"ダア", #buf[ptr] -= 1 "inc"=>"シェリ", #ptr += 1 "dec"=>"シエリ", #ptr -= 1 "put"=>"イェス", #print chr(buf[ptr]) "get"=>"イエス", #input ord(buf[ptr]) …ただしこれはWeb版のため無効 "do"=>"!", #do{ "wh"=>",", #}while(buf[ptr]!=0) } syelies.each_line {|ln| v = ln.chomp.scan(/(\w+)(\*?)(.?)/)[0] op = dic[v[0]] if op t = 1 t = v[2][0] if v[2]!="" t.times {print op} end }
ダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァ!シエリ,シェリ!イェスシェリ,
メタ言語で記述するとまるで面白くもなんとも無くなってしまうのが微妙。。。
11インチ
twitterのゆるい感じが良くてmixiもhatenaも更新がめんどくさくなり大分放置してた。
今後もほぼ放置だろうなw
そんな感じで物欲センサーMAXになったので思わずMacBookAir 11インチを買った。
11インチで一番良いのを頼む。
晴れて憧れのマカーになれました。プギャー!
今年に入ってからのアップル率やばい。AppleTV欲しい。
キーバインドがいきなりUnix仕様になってて戸惑うけど他は思ったよりWindowsに似てるのでなんとか使えてる感じ。
ことえりがなんとなくキモイのでGoogleIMEにした。
ブラウザもChromeにして、ホームページをiGoogleにしたのでブックマークとか移さなくても大体問題ない感じ。
シンクライアント良いね。
FlashとSilverLightも入れたのでShowTimeし放題。
XCodeも入れたしこれで念願のiPhoneアプリの開発が出来る。
他になんか入れたほうが良いよ?とかいうのがあれば是非教えてください。
メモ
二本指を上下にスライドでスクロール
三本指を左右にスライドで「進む」「戻る」
四本指を上下にスライドでエクスポーズ
久保さんへ
101 : 翻訳家(東京都):2010/08/16(月) 16:39:44.10 id:ysDSAXrc0
A「オマエはBLEACHよりおもしろい漫画が描けるんだな?描けないのに批判するな!」
B「漫画描いてみたよ、ほら」
A「なんだこれ、糞つまんねー」
B「ちょっと待て、俺の漫画を批判するのは俺よりおもしろい漫画を描いてからだ」
A「描いたぞ」
B「どっちがおもしろいか第三者に聞いてみないとな」
A「よし、Cに聞いてみよう」
B「ちょっと待て、それはCがおもしろい漫画を描いてからだ」