タグ

ブックマーク / faultier.blog.jp (14)

  • ライブドア第五回テクニカル・セミナーで発表してきた : As Sloth As Possible

    「スマートフォンについて何か喋ってよ」というかなり大雑把なネタ振りをされたので、第五回ライブドア・テクニカルセミナーでこんな感じの話をしてきました。 140字で分かるfaultierの発表: 「iOSとAndroidは違うものだって認識しよう」「両方やってみたらどっちかが圧倒的に作り易いわけじゃなかった」「お前これやりたかっただけだろ http://bit.ly/e429B1」 #ldtech あとで動画や資料は公開されるはずですが、大変申し訳ないことにテンパりまくって見るに耐えない感じになっちゃってると思うので、一応何を言いたかったのかを補足しておきます。 iOSとAndroidは違うものだという話 開発環境の違いについてはまぁいいとして、例えばアプリの設計思想。iOSでは「まずアプリケーションという大きなプログラムがあって、その中で画面を表示したり通信したりしてる」って感じの構成になっ

    ライブドア第五回テクニカル・セミナーで発表してきた : As Sloth As Possible
  • RubyエンジニアのためのObjective-C Blocks入門 - As Sloth As Possible

    書こう書こうと思ってたけど忘れてたのを、PerlエンジニアのためのObjective-C Blocks入門を見て思い出した。すいませんタイトルは便乗です。 試しに書いてみる Blocksってのが何者なのかはさっきの記事なりAppleのドキュメントなりを見てもらえばいいと思うんですが、まぁウケが良さそうなので付けたタイトルにのっとってRubyと比較してみる。 f = lambda {|x| puts "#{x}のこと以外は何も考えられない" } f.call("うどん") void (^f)(id) = ^(id x) { NSLog(@"世界の全てを敵に回しても、僕は%@の味方だ", x); }; f(@"うどん"); なんだ、そっくりじゃない。似てる似てる。 上がRuby版、下がObjC版。下は普通引数にはNSString*とかを使うと思うけど、まぁRuby版と挙動を合わせるためにidに

    RubyエンジニアのためのObjective-C Blocks入門 - As Sloth As Possible
  • Text::MicroTemplateで遊ぶ : As Sloth As Possible

    こないだ言ってたPlackアプリのサンプルでは、出来るだけ普段使ってない構成にしようと目論んでて、そのために例えばテンプレートエンジンにはText::MicroTemplateを使ってみたりしている。 Text::MicroTemplateはシンプルで軽くてなかなか良かった。ちなみにこんな感じで使う。 use Text::MicroTemplate qw(:all); my $html = render_mt('Hello, <?= $_[0] ?>', 'faultier')->as_string; でもファイルから読みたいよねーそれ実装しなきゃなのかなーとか思ってたらちゃんとText::MicroTemplate::Fileってのがあって、こっちを使えばキャッシュも使ってくれるしラッパーの機能とかもあるしで素敵だ。 ?# hello.mt Hello, <?= $_[0] ?> use

    Text::MicroTemplateで遊ぶ : As Sloth As Possible
    clouder
    clouder 2009/12/21
  • gihyo.jpで記事を書きました : As Sloth As Possible

    表題通りですが、Ruby Freaks Loungeで記事を書かせていただきました。 Ruby Freaks Lounge:第23回 Rackとは何か Rackってそもそも何なの、何でそんなの出来たの、みたいな話を簡単に。んー?誰だー、普段はこんなこととかあんなこととかばっかやってる癖に何真面目な記事書いてんだとか言った奴はー。先生怒らないから出て来なさいー。 RackってRailsだとかSinatraだとかに比べるとマニアックな部類(知名度がというよりは使い道が、ね)だと思うんだけど、予想外に反応が良くて嬉しい。技評の方は「Perl界隈でPSGIも盛り上がってるし、今そういう話題はタイミングが良かったのかも」と言ってたけど、当にそうだなー。しれっとPSGIに触れたのはまたお前はRubyのことばっかで少しはPerlの勉強しろよ言われないため僕がPerl大好きだからですよ。ホント。ウソジャ

    gihyo.jpで記事を書きました : As Sloth As Possible
    clouder
    clouder 2009/10/27
    GJ
  • OCUnitの実行結果が可愛くない : As Sloth As Possible

    なんでもターミナルで完結させたい病 最近Objective-Cをお仕事で書いてたりするんだけど、試行錯誤しながらじゃなくてある程度量書くようになってくるとXcodeじゃかったる過ぎるので、ObjC対応済みのctagsをインストールしたりxcodebuildをよしなに叩いてくれるRakefile書いたりしてvimで作業する環境を整えた。もちろんiPhoneシミュレータを起動したりリファレンス読んだりするのでXcodeは開きっぱなしなんだけど、それでも書くのをvimでやれるようになったら大分楽になった。 書くのは楽になったけど、そうなると今度は動作の検証もいちいちシミュレータ起動してあれこれ操作してってのが馬鹿馬鹿しくなってくる。そもそもテストも書かないでアプリ開発とか泣けてくる。幸いiPhoneSDKでもOCUnitが使えるので、ライブラリとして切り出せる部分を別プロジェクトに切り出した上で

    OCUnitの実行結果が可愛くない : As Sloth As Possible
  • 電気羊の夢を見たい : As Sloth As Possible

    この間から「イヴの時間」にハマっている。 映像が綺麗とか音楽が好きとかナギさんのウインクとか諸々全部ツボに入ったので勢いでDVD全部買ってしまってああ俺もうドリ系でいいやとか思い始めてるんだけどそれはひとまず置いといて、このテーマ。もの凄く精巧なアンドロイド、「当店内では人間とロボットとロボットを区別しません」という「イヴの時間のルール」、何度も流れる倫理委員会の公共広告、そして「ドリ系」こと"Android Holic"。「人間」と「人間でないもの」が共存する世界においての、互いの関係。 劇中でも象徴的に出てくる、アシモフのロボット工学三原則とかブレードランナーを持ち出すまでもなく、SFでは何度も語られてるテーマだ。そう言えば昔哲学書か何かでも読んだことがある気がする。その辺は別にあんまり詳しいわけでもないので、さぶかるちゃん辺りで誰か取り上げてくれたりしないかなーとか、適当に呟いてみる

    電気羊の夢を見たい : As Sloth As Possible
    clouder
    clouder 2009/09/02
    おもしろい
  • HTTP::Engineのミドルウェアを作ってみる : As Sloth As Possible

    先週末からこっちうどん屋をいじって遊んでたのだけど、HTTP::EngineにはHTTP::Engine::Middlewareというミドルウェアを作る仕組みもあるので、せっかくなのでUdonMap(Rack::URLMapもどき)をミドルウェアで実装してみた。 gist: 117012 - GitHub 前回の記事のときと構成が変わってるけど気にしない方向で。あとで前の記事直しとこう前の記事も補足した。Udon::Middleware::URLMapがミドルウェアで、server-middleware.plがミドルウェア版UdonMapを使って書き直したもの。 ミドルウェア自体は簡単に作れた。use HTTP::Engine::MiddlewareするとMooseの初期化処理をしたりミドルウェア用のメソッドを生やしたりしてくれるので、HTTP::Engineをnewするときに指定したハン

    HTTP::Engineのミドルウェアを作ってみる : As Sloth As Possible
    clouder
    clouder 2009/05/28
  • PassengerでRackアプリを動かす : As Sloth As Possible

    昨日のネタではRackで簡単なアプリを作ってそれを複数立ち上げたThinで動かしつつ、表のApacheからmod_proxy_balancerで適当にプロキシしてやるって構成にした。Railsとかでもよくやるので慣れてるし、扱い易いので好きな構成だ。 ただ、今回の遊びでちょっとやってみたかったけことがある。何かというと、Passengerの導入。mod_railsとかmod_rackとか呼ばれてるアレ。スタンドアロンのサーバではなくてApacheやnginxに組み込んで使うタイプで、パフォーマンスもそれなりに良いし使い易いという話を聞いてたので気になってはいた。でもRails使わなくなってからなかなか試してみる機会がなかったので、この際ついでだ、とやってみることにした。 設定は簡単 インストールについてはPassengerのページでも見てもらうとします。別に何のことはない、gemからインス

    PassengerでRackアプリを動かす : As Sloth As Possible
    clouder
    clouder 2009/05/12
  • MacRubyとRubyCocoaの微妙な違い (1) : As Sloth As Possible

    MacRubyでBaconを調理する準備ができたので、早速Bacon焼くぜー超焼くぜー、と書き始めたんだけど、その前にRubyCocoaMacRubyの違いを比べてみたくなった。のでちょっと脱線。 # Namake.framework内にあるSloth.h #import @interface Sloth : NSObject { NSString *name; } - (NSString *)name; - (void)setName:(NSString *)aName; @end $ cat mrb_bacon.rb # coding: utf-8 require 'bacon' framework 'build/Release/Namake.framework' describe Sloth do before do @obj = Sloth.alloc.init end it '

    MacRubyとRubyCocoaの微妙な違い (1) : As Sloth As Possible
  • MacRubyとRubyCocoaの微妙な違い (2) : As Sloth As Possible

    MacRubyRubyCocoaの微妙な違い (1)の続き。 フレームワークの読み込み まず最初に違うのは、framework。これはRubyCocoaで書くと多分こんな感じ。 require 'osx/cocoa' def framework(name) OSX.require_framework name rescue bundle = OSX::NSBundle.bundleWithPath(name) bundle.load end MacRubyのframeworkは名前じゃなくてパスを渡してやるとそのFrameworkを読み込んでくれるけど、OSX::require_frameworkは名前しか受け付けない、つまりパス上にあるFrameworkしか探さない。ので、任意のパスにあるFrameworkを動的に読み込みたいときは、NSBundleのクラスメソッドを使ってバンドルのオ

    MacRubyとRubyCocoaの微妙な違い (2) : As Sloth As Possible
  • MacRubyとRubyCocoaの微妙な違い (3) : As Sloth As Possible

    MacRubyRubyCocoaの微妙な違い (1)とMacRubyRubyCocoaの微妙な違い (2)の続き。 クラスをいじってみる またまた抜粋 # MacRubyit 'Objective-Cのクラスを書き換えられること' do lambda { eval 'class Sloth; def name; "nisefaultier"; end; end' }.should.not.raise obj = Sloth.alloc.init obj.name.should.be.eql "nisefaultier" # @obj.name.should.be.eql "nisefaultier" end # RubyCocoait 'Objective-Cのクラスを書き換えられること' do lambda { eval 'class Sloth; def name; "ni

    MacRubyとRubyCocoaの微妙な違い (3) : As Sloth As Possible
  • @IT自分戦略研究所の記事と「ハチロク世代」の話 : As Sloth As Possible

    こないだ取材を受けた「「ハチロク世代」がIT業界を変える日 − @IT自分戦略研究所」という記事が先週末から公開されました。このブログから記事を見に行く人より、記事からこのブログに来る人のがずっと多いのと、あんまりこういうの慣れてないので照れちゃうから書かなくていいかな、と思ったのだけど、一応一言二言言っておきたいことがあるので書いておく。 「世代論」とか「IT業界」とか、どうでもいいのよね割と と言っても、記事の中でも色々言ったし、UKSTUDIOのブログを読んでもらえば言いたいことはほとんど言ってくれちゃってるので、付け足すこともそんなにない。なんというか、俺を含め件の記事に出てるメンツは「力こぶモリモリ作って"時代を変えるぞ、おー!"って叫んでる」空気ではないんだよね。良くも悪くも比較的ヌルい。少なくとも俺は好きなことやってたらこうなっちゃった、っていうのが近い。 こういう特集に載っ

    @IT自分戦略研究所の記事と「ハチロク世代」の話 : As Sloth As Possible
  • LLVMを勉強中 : As Sloth As Possible

    ここ数日、LLVMについて少し勉強している。そもそもなんでLLVMを触り始めたかというと、Twitter上で「今コンパイル欲求に駆られている」と(割と何も考えずに)つぶやいたところ、 「じゃあDTコンパイルしようぜ」 srd! でもあれコンパイラとは名ばかりでぶっちゃけ文字列をRubyコードにtranslateしてるだけだったりするね 「DTパーサを改良してLLVMにブリッジして、クロスプラットフォーム環境で高速に動作するDT処理系にするといいよ」 何その無駄に敷居高いお仕事!誰得!でもなんか面白そう! というやりとりがあって、じゃあ当に誰が得するのかわからないけど面白そうだからLLVMをバックエンドで使ってesotericがサポートしてるコードからバイナリを生成するコンパイラ作ろうぜ、という流れになったから。実にLLVMの無駄遣いですね。この記事ブクマするときは「LLVMの無駄遣い」っ

    LLVMを勉強中 : As Sloth As Possible
    clouder
    clouder 2009/03/10
    LLVMのLLってLightweight LanguageだとおもってたYO
  • プログラミング言語「DT」 : As Sloth As Possible

    最近「Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~」を読んで、ついカッとなって言語処理系を作ってみた。それも、チューリング完全な、物の(ry まぁ、Whitespaceのトークンを置き換えただけだけど。 一応、上記のに習って、ソースコードをWhitespaceの命令セットを持つ中間言語にコンパイルしてVMで実行する形にしてみた。あとはパースする部分を適当に置き換えたコンパイラを作ればそれっぽいのが簡単に作れる。んで、いくつかネタ言語を作ってみたんだけど、その中でも一番しょーもないのがDT。DTでは次のようなソースを実行することができます。("Hi!\n"を出力する) 「○○くんて、もしかして童貞?」 「どどど童貞ちゃうわっ!どど童貞ちゃうわっ!どどど…童貞ちゃうわっ!」 「えー。その慌てっぷりが余計怪しなぁw」 「…どどどどど童貞ちゃうわっ!童貞ちゃう

    プログラミング言語「DT」 : As Sloth As Possible
  • 1