<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Aerialarts &#187; PC</title>
	<atom:link href="http://aerial.st/categories/pc/feed" rel="self" type="application/rss+xml" />
	<link>http://aerial.st</link>
	<description></description>
	<lastBuildDate>Thu, 22 Jul 2010 13:00:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/categories/pc/feed" />
		<item>
		<title>MeCabをrubyから使ってみる</title>
		<link>http://aerial.st/archive/2010/07/22/mecab-ruby</link>
		<comments>http://aerial.st/archive/2010/07/22/mecab-ruby#comments</comments>
		<pubDate>Wed, 21 Jul 2010 22:06:46 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[mecab]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=715</guid>
		<description><![CDATA[インストール まずMacPortsで本体と辞書を入れて読み込む辞書を設定する。 $ sudo port install mecab $ sudo port install mecab-ipadic-utf8 $ sudo vi /opt/local/etc/mecabrc # 編集内容は下記を参照 mecabrcは次のように書き換える。 dicdir = /opt/local/lib/mecab/dic/ipadic-utf8 次にrubyバインディングのmecab-rubyをインストールする。 ソースを SourceForge から落としてきて展開し、そのディレクトリで以下を実行。 $ ruby extract.rb $ vi Makefile # 編集内容は下記を参照 $ make $ ruby test.rb # これでエラーが出なければ問題無し $ sudo make install Makefileは次のように/opt/local/libを読むように修正を加える。 LIBS = -lstdc++ -ldl -lobjc -L/usr/local/lib -L/opt/local/lib -lmecab 参考： [...]]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/07/22/mecab-ruby/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/07/22/mecab-ruby" />
	</item>
		<item>
		<title>モジュールでnamed_scopeを追加</title>
		<link>http://aerial.st/archive/2010/07/07/named_scope_from_module</link>
		<comments>http://aerial.st/archive/2010/07/07/named_scope_from_module#comments</comments>
		<pubDate>Tue, 06 Jul 2010 15:38:38 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=710</guid>
		<description><![CDATA[モデルの機能ごとにモジュールにまとめてあとからまとめてincludeしたいというときに、どうせならその機能のために用意したちょっと複雑なnamed_scopeも同じように外に出してしまいたい。 そんな場合にはincludedとclass_evalを使う。 class Message < ActiveRecord::Base include Extensions::Search end module Extensions module Search def self.included(mod) mod.class_eval do named_scope :name_like, lambda { &#124;arg&#124; { :conditions => ["name LIKE ?", "%%arg%%"] }} end end end end > Message.name_like("ob").first.name #=> "Bob" named_scopeも結局はクラスメソッド。この方法はnamed_scope以外にも利用できる。]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/07/07/named_scope_from_module/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/07/07/named_scope_from_module" />
	</item>
		<item>
		<title>テスト用oauth_callback</title>
		<link>http://aerial.st/archive/2010/06/19/oauth-callback-for-test</link>
		<comments>http://aerial.st/archive/2010/06/19/oauth-callback-for-test#comments</comments>
		<pubDate>Sat, 19 Jun 2010 06:42:10 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=708</guid>
		<description><![CDATA[oauth gem(0.4.0)のoauth_callbackでちょっとはまったのでメモ。 /rubyを参考に、Twitterに登録しているコールバックURLとは別にテスト用のURL（が使いたかったので、いろいろ試してみた結果、次で動いた。 test_callback = "http://example.org/login" request_token = consumer.get_request_token(:oauth_callback => test_callback) aurhorize_url = request_token.authorize_url(:oauth_callback => test_callback) なんで両方で指定しなければならないのかは謎。]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/06/19/oauth-callback-for-test/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/06/19/oauth-callback-for-test" />
	</item>
		<item>
		<title>iPhoneアプリ申請のチュートリアルまとめ</title>
		<link>http://aerial.st/archive/2010/06/19/tutorials-for-iphone-dev-cente</link>
		<comments>http://aerial.st/archive/2010/06/19/tutorials-for-iphone-dev-cente#comments</comments>
		<pubDate>Sat, 19 Jun 2010 05:51:08 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=702</guid>
		<description><![CDATA[iPhoneアプリを開発する際にiPhone Dev Centerでやる作業がこまごまとして面倒くさいので、そのときに参考にしたサイトをまとめておく。 テスト端末の登録 アプリを実機で動かす を参照。 このときProvisioning Portalで作成したAppIDは申請フローの際に使い回す。 審査の申請フロー 全体の流れは 【iPhone】App Store申請用アプリをビルドする を参照するとよい。 審査をするアプリを作る際のDistributionというConfigurationの作り方は 目指せ！iPhoneアプリ開発エキスパート 第10回　App Storeでアプリを開 を参照。 申請の際、スクリーンショットの追加方法がちょっと分かりづらい。 Choose Fileボタンでファイルを追加していき、Upload Filesボタンで一気にアップロードする。 このとき優先度の低いものから追加していく。つまり一番最後に追加した画像がPrimary Screenshotとして扱われる。 iAd、Game Centerまわりの影響で、ここ1ヶ月ぐらいで申請フローがちょっと変更されたらしい。iAdは使用しないならEnable欄は操作せずにContinueして良し、Game Centerも利用しないならNoでContinueすれば良し。]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/06/19/tutorials-for-iphone-dev-cente/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/06/19/tutorials-for-iphone-dev-cente" />
	</item>
		<item>
		<title>コマンドラインからWEBrickを起動</title>
		<link>http://aerial.st/archive/2010/06/10/webrick-starter</link>
		<comments>http://aerial.st/archive/2010/06/10/webrick-starter#comments</comments>
		<pubDate>Thu, 10 Jun 2010 10:20:23 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=699</guid>
		<description><![CDATA[一時的に任意のディレクトリをHTTPサーバに公開したくなったので、WEBrickを起動するスクリプトを組んでみた。既存のものがある気がしなくはないけど、OptionParserの勉強という意味も含めて。 #!/usr/bin/env ruby require 'optparse' require 'webrick' include WEBrick # WEBrickを起動する際のオプションのデフォルト値 WebrickOptions = { :Port => 8000, :DocumentRoot => Dir::pwd, } OptionParser.new do &#124;opt&#124; # パース方法を設定する # オプションが指定されていた場合にブロックが評価される opt.on('-p', '--Port N', Integer) { &#124;v&#124; WebrickOptions[:Port] = v } opt.on('-d', '--DocumentRoot PATH') { &#124;v&#124; WebrickOptions[:DocumentRoot] = v } # 実際にパースを行う opt.parse!(ARGV) end # WEBrickを起動する s = [...]]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/06/10/webrick-starter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/06/10/webrick-starter" />
	</item>
		<item>
		<title>（挫折）NSPreferredMailCharset on Snow Leopard</title>
		<link>http://aerial.st/archive/2010/06/02/nspreferredmailcharset-on-snow-leopard-faile</link>
		<comments>http://aerial.st/archive/2010/06/02/nspreferredmailcharset-on-snow-leopard-faile#comments</comments>
		<pubDate>Wed, 02 Jun 2010 05:30:59 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[ソフトウェア]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mail.app]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=697</guid>
		<description><![CDATA[NSPreferredMailCharset on LeopardをSnow Leopardに対応させようとしたけど、ちょっと挫折した。 やったことをとりあえずメモっておく： method_impをmethod_(set&#124;get)Implementationに書き換える Info.plistのSupportedPluginCompatibilityUUIDsに、Mail.appとMessage.frameworkのInfo.plistに書かれているPluginCompatibilityUUIDsを列挙する ビルド対象のアーキテクチャを32bit/64bit対応のUniversalに設定する Console.appを見ながら作業したのでここまでは合ってるはずなんだけど、ここで&#8221;Domain=NSCocoaErrorDomain Code=3588&#8243;が出た。どっかでエラーが出てるんだけど、今すぐにはちょっとわからない。]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/06/02/nspreferredmailcharset-on-snow-leopard-faile/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/06/02/nspreferredmailcharset-on-snow-leopard-faile" />
	</item>
		<item>
		<title>名前空間付き定数対応のObject.cost_set</title>
		<link>http://aerial.st/archive/2010/05/20/object-nested-const-set</link>
		<comments>http://aerial.st/archive/2010/05/20/object-nested-const-set#comments</comments>
		<pubDate>Thu, 20 May 2010 01:26:45 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=692</guid>
		<description><![CDATA[Object.const_getをハックした話 を参考に、Object.const_setもモジュールによる名前空間付き定数に対応させてみた。車輪の再発明をした気がしなくはないけど、そこは気にしない。 class Object def self.nested_const_get(name) stack = (name.is_a?(Array)) ? name : name.split("::") klass = Object while const = stack.shift klass = klass.const_get(const) end return klass end def self.nested_const_set(args = {}) args.each do &#124;name, value&#124; stack = (name.is_a?(Array)) ? name : name.to_s.split("::") last_const = stack.pop klass = nested_const_get(stack) klass.const_set(last_const, value) end end end 使い方は、 Object.nested_const_set("Foo::Bar" [...]]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/05/20/object-nested-const-set/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/05/20/object-nested-const-set" />
	</item>
		<item>
		<title>非同期処理にはWorkling</title>
		<link>http://aerial.st/archive/2010/03/28/workling-isfor-asynchronous-actions</link>
		<comments>http://aerial.st/archive/2010/03/28/workling-isfor-asynchronous-actions#comments</comments>
		<pubDate>Sun, 28 Mar 2010 11:01:01 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[asynchronous]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[workling]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=686</guid>
		<description><![CDATA[Ajaxで非同期に処理をキックして、一定間隔でその進捗を確認して…というのを書く必要があったのでBackgrounDRbを試してみたら、どうも使いにくかった。理由としては、 MetaWorkerのサブクラスでワーカを実装したのに、MiddleMan.workerで呼び出したときにはRailsWorkerProxyにすり替わっている キューイングはしないのに、キューイングのためのテーブルを作らないとエラーが出る 名前が好きじゃない 引数のハッシュに:workerが妙に出て来て冗長 RSpecでテストしづらい（できなくはない） APIがよくわからない 後半はなんだか個人的な理由だけど、とにかく調べるのに疲れたわりに、あまり実り多い感じではなかった。 で、その代わりに見つけたのがWorkling。これは非同期に処理を呼び出すためのプラグイン。サンプルは、githubのREADMEの通りなので特に書かない。 キューイングサーバが必要ならばStarlingと組み合わせる。これはTwitterでの利用実績もあるらしい。 ただ注意する必要があるのは、進捗を保存しておくサンプルでWorkling::Return::Store::MemoryReturnStoreが利用されてるけど、これはそのプロセス内でのみ有効という点（ただのハッシュに値を保存してるだけ）。なので、バックグランドで進行中のところをAjaxで見に行く場合などにはその値にはアクセスできない。別途memcacheなどに値を保存しておく必要がある。 もしかしたらWorkling::Return::Store::StarlingReturnStoreを使えばいいのかもしれないけど、Starlingはキューイングのサーバだしなぁと詳しく把握しきれていなかったので、とりあえずmemcacheに直でアクセスするものを自分で追加した。 追記1 調べてみたところ、StarlingReturnStoreはキューと関係なくただ単にmemcacheをラップしてるだけ（より正確には、StarlingReturnStoreはWorkling::Clients::MemcacheQueueClientをラップしていて、こいつはMemCacheを使ってconfig/workling.ymlで設定されたmemcacheサーバと接続してデータのやりとりをしてる）。 なのでStarlingReturnStoreを使うのが手軽で、接続先memcacheサーバの設定をworkling.ymlに外出しできるので絶対的に便利。]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/03/28/workling-isfor-asynchronous-actions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/03/28/workling-isfor-asynchronous-actions" />
	</item>
		<item>
		<title>Cassandraによるデータモデル構築のための資料</title>
		<link>http://aerial.st/archive/2010/03/22/pointers-to-materials-on-cassandra-data-mode</link>
		<comments>http://aerial.st/archive/2010/03/22/pointers-to-materials-on-cassandra-data-mode#comments</comments>
		<pubDate>Mon, 22 Mar 2010 13:30:52 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[cassandra]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=681</guid>
		<description><![CDATA[Adventures with Cassandra Distributed Databaseに、del.icio.usのデータモデルをCassandraで構築するとしたらどうやるんだろう？という場合のダイアグラムが載っている。 GitHubにはそれを実現するためのconf/storage-conf.xmlも載っているので、とても参考になる。 ちなみにこのブログはとあるメーリングリストの投稿を追っていったら発見した。 スキーマレスといえども、Keyspace（MySQLでのデータベースみたいなものらしい）とColumnFamilyだけはconf/storage-conf.xmlに設定しなきゃならないようだ。 データの検索に関してはCassandraで登録しているカラムデータの検索方法(Cassandra:inverted indexの翻訳)が参考になるかもしれない。 まだ把握しきれていないけど、検索用のデータを別途用意するのがいいらしい。転置インデックスとか？ 行指向だって最近知ったのに、列指向ってなんなんだろうなぁ…。]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/03/22/pointers-to-materials-on-cassandra-data-mode/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/03/22/pointers-to-materials-on-cassandra-data-mode" />
	</item>
		<item>
		<title>CassandraをSnow Leopardで動かす</title>
		<link>http://aerial.st/archive/2010/03/18/install-cassandra-onsnow-leopard</link>
		<comments>http://aerial.st/archive/2010/03/18/install-cassandra-onsnow-leopard#comments</comments>
		<pubDate>Thu, 18 Mar 2010 14:48:47 +0000</pubDate>
		<dc:creator>ikm</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://aerial.st/?p=666</guid>
		<description><![CDATA[CassandraをSnow Leopardで動かす方法。 Javaの設定 ~/.zshrcに次の記述を追加する。 export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$JAVA_HOME/bin:$PATH Cassandraのインストール まずディレクトリを掘る。 1つはログ用ディレクトリ。 mkdir -p /var/log/cassandra touch /var/log/cassandra/system.log chown -R `whoami` /var/log/cassandra 2つ目はデータ用ディレクトリ。デフォルトらしい。 mkdir -p /var/lib/cassandra chown -R `whoami` /var/lib/cassandra 今回はコンパイル済みバイナリを落としてそれを使う。 tar xf apache-cassandra-0.5.1-bin.tar.gz mv apache-cassandra-0.5.1-bin /usr/local ln -s /usr/local/apache-cassandra-0.5.1-bin /usr/local/cassandra サーバを立ち上げる。 /usr/local/cassandra/bin/cassandra デフォルトではシングルモードで動作し、8888番ポートを使用する。 詳細な設定はconf/storage-conf.xmlに記述する。 クライアントはbin/cassandra-cliを使用する。 /usr/local/cassandra/bin/cassandra-cli -host localhost -port 8888 /usr/local/cassandra/bin/cassandra-cli -host localhost -port 9160 対話形式で起動し、helpコマンドでヘルプを見ることができる。 [...]]]></description>
		<wfw:commentRss>http://aerial.st/archive/2010/03/18/install-cassandra-onsnow-leopard/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aerial.st/archive/2010/03/18/install-cassandra-onsnow-leopard" />
	</item>
	</channel>
</rss>
