アカリク主催の学生のためのアプリ開発コンテストの最終選考プレゼンに参加してきました。

集合写真

Read more


はじめに

COJTのエントリーの締め切りが今月の20日らしいので、 COJTのソフトウェアコースを受講しようと考えている人へ向けて何か書いてみようと思います。

Read more


Yahoo Inter Hack U 2013 という開発イベントに参加してきました。

「カメラで商品検索」という画像によって商品の横断検索ができるiOSアプリを開発しました。

Read more


10/25に大五郎botがTwitter上で凍結されました。

Read more


いろんな言語で Trick or Treat してみました。

Java

if(!treat) trick();

C#

if(!Treat) Trick();

Python

if not treat:
    self.trick();

Ruby

trick unless treat?

結論: Ruby が一番シンプル

Read more


ImmutableList gem とは

Immutable な LinkedList を Ruby で使うためのライブラリです。

C-Extension なので、Rubyで実装したものに比べて動作が高速です。

Ruby の Array は 配列で実装されているため、 長いリストでの先頭への要素を追加(cons)や連結(append)が とても遅いという問題を解決しようと思って作りました。

用途としては、Rubyで再帰を使って関数型言語風にプログラムを組むことを想定しています。

Immutable List Gem (KLab ALM版) from Sho Hosoda

導入方法

RubyGems で公開したので、次のようにターミナルで入力するだけで導入できます。

$ gem install immutable_list

Read more


はじめに

先日、immutable_list というgemを公開したのですが、 思っていたよりも簡単に rubygems.org に登録することができて感動しました。

gemを作るには、色々な方法があるようですが、最近だとBundler を使う方法が一番シンプルで良さそうです。

RubyGems に gem を登録するためには、gitのリモートリポジトリが必要ですが、ここでは GitHub を利用します。

あと、よく質問されるのですが、RubyGems に登録するために審査は一切ありません。

Tips: gemの命名方法

本題とはズレますが、gemの命名にはルールがあるので軽く紹介します。

gemname には、小文字のアルファベット、数字、ハイフン、アンダースコア、ドットが使用可能のようです。

ハイフンとアンダースコアは次のように使い分けることが推奨されています。

  • - (ハイフン) : パスの区切り
  • _ (アンダースコア) : 単語の区切り

Read more


RailsをPassengerを使ってVPSで動かすまでにハマったことなどをメモします。 自分用のメモ程度の記事なので、あくまで参考程度にお願いします。 Railsのサーバ環境を作るのは難しいというイメージがありましたが、結果的には Passenger の指示通りにやればなんとかなりました。 Passenger をインストールする。 古い情報らしいですが、Passenger のインストールについては、このページが参考になる。 $ gem install passenger $ passenger-install-apache2-module 上を実行すると、必要なパッケージが足りてないというエラーがでるので、パッケージ管理システムなどを使ってインストールする。 インストールが成功すると、LoadModule などの設定やvirtualhostの設定のサンプルが表示されるので、メモしておく。 LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.14 PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby <VirtualHost *:80> ServerName www.yourhost.com # !!! Be sure to point DocumentRoot to ‘public’! DocumentRoot /somewhere/public <Directory /somewhere/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost> VPSのAレコードの設定をして、サブドメインを使えるようにする。 DTI のServerman@VPSのUbicNameでドメインを取っている場合、負荷分散設定というのでDNSレコードを設定できる。 Railsのプロジェクトをサーバの適当な場所に配置する。

Read more


今日は、近状報告ということで、今週の出来事を振り返ってみます。

Read more


Octopressの記事の生成が遅い

Octopressを使ってから一年以上が経ちました。

記事の数に比例して、rake generate がアホみたいに遅くなって、耐えられないレベルになってきました。

今日は、rake isolaterake integrate を使うことでOctopressの記事の生成を高速化するテクニックを紹介します。

Read more