COJTのエントリーの締め切りが今月の20日らしいので、 COJTのソフトウェアコースを受講しようと考えている人へ向けて何か書いてみようと思います。
「カメラで商品検索」という画像によって商品の横断検索ができるiOSアプリを開発しました。
大五郎Botが凍結されてくそウケるwwwwwwwwwwwwwwwwwwww pic.twitter.com/wsVWZim7OC
— がむ (@gam0022) October 25, 2013
Java
if(!treat) trick();
C#
if(!Treat) Trick();
Python
if not treat:
self.trick();
Ruby
trick unless treat?
結論: Ruby が一番シンプル
Immutable な LinkedList を Ruby で使うためのライブラリです。
C-Extension なので、Rubyで実装したものに比べて動作が高速です。
Ruby の Array
は 配列で実装されているため、
長いリストでの先頭への要素を追加(cons
)や連結(append
)が
とても遅いという問題を解決しようと思って作りました。
用途としては、Rubyで再帰を使って関数型言語風にプログラムを組むことを想定しています。
RubyGems で公開したので、次のようにターミナルで入力するだけで導入できます。
$ gem install immutable_list
先日、immutable_list というgemを公開したのですが、 思っていたよりも簡単に rubygems.org に登録することができて感動しました。
gemを作るには、色々な方法があるようですが、最近だとBundler を使う方法が一番シンプルで良さそうです。
RubyGems に gem を登録するためには、gitのリモートリポジトリが必要ですが、ここでは GitHub を利用します。
あと、よく質問されるのですが、RubyGems に登録するために審査は一切ありません。
本題とはズレますが、gemの命名にはルールがあるので軽く紹介します。
gemname には、小文字のアルファベット、数字、ハイフン、アンダースコア、ドットが使用可能のようです。
ハイフンとアンダースコアは次のように使い分けることが推奨されています。
Octopressを使ってから一年以上が経ちました。
記事の数に比例して、rake generate
がアホみたいに遅くなって、耐えられないレベルになってきました。
今日は、rake isolate
と rake integrate
を使うことでOctopressの記事の生成を高速化するテクニックを紹介します。