nuhackというハッカソンイベントに参加してきました。経緯やどんな感じのイベントだったかは一番下のリンクから辿っていただければわかると思います。

所感

至れり尽くせり。

ピクシブさんからの会場&フリードリンク&フリーお菓子の提供。欧文印刷さんからのお弁当&-gramPad&お土産の提供。好きなもの作ってるだけなのにこんなに良くしてもらうとか素敵すぎました。毎週やりたい。

お土産

-gramPad

スマホのプロトタイピングをするのに適したNuBoardです。

何を作ったか

@9dさんと一緒にStamPPPという学習サービスを作りました。

勢い余ってドメインを取得して公開しています。ただ、今のところ未完成なので使用感をつかむくらいしかできません。内容的には次のようなもの。

Twitterアカウントでログインして課題の種類を選ぶ

スクリーンショット 2014-07-20 22.02.06

用意されているチュートリアルをやる

スクリーンショット 2014-07-20 22.03.29 1

できたらハンコをポンと押す

スクリーンショット 2014-07-20 22.03.09 1

以上です。あとは、自分の進捗を他の人に見せられるようする予定。

StamPPPの今後

チュートリアルの内容がまだゼロなので、これを充実させていかないと意味がないサービスです。チュートリアルは、初学者の人向けに参考になるURLを示すような形を想定しています(今のRailsのチュートリアルはデモ用に適当に作ったやつなので真に受けないようお願いします><)。

Hack Designが、内容的に近いサービスなんじゃないかと。

せっかくここまで作ったので「リリースしました!」と言えるくらいまでは完成度を高めようと思います。RubyとRailsならチュートリアルを作れますが、他のジャンルは難しいので、誰か面白そうだと思った方に協力をお願いしたいです。開発はGithub上で行っているので、ここでIssueを作るか @netwillnet までメンションいただければ反応します。よろしくお願いします。

合わせて読みたい

ブログを書こう · Issue #10 · satococoa/p4d-hackathon-3rd

みなさんはどうしていますか。個人的には、ローカルの開発環境であればグローバルにインストールしちゃっても問題ない気がしてきています。

bundle install で nokogiri のインストールに失敗して、そこからやったことのメモです。

とりあえず libxml2 と libxslt 入れる。

brew install libxml2 libxslt

これでもダメだったのでNokogiriのドキュメントを見ると、「libiconv をソースから入れろ」とのこと。言われたとおりにする。

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install

さらに bundler で nokogiri をビルドする時のオプションを、次のようにして設定。

bundle config build.nokogiri --with-xml2-include=`brew --prefix libxml2`/include/libxml2 --with-xml2-lib=`brew --prefix libxml2`/lib --with-xslt-dir=`brew --prefix libxslt` --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

すると ~/.bundle/config に次のように書かれる。

---
BUNDLE_BUILD__NOKOGIRI: "--with-xml2-include=/usr/local/opt/libxml2/include/libxml2 --with-xml2-lib=/usr/local/opt/libxml2/lib --with-xslt-dir=/usr/local/opt/libxslt --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib"

この状態でbundle installすると無事インストールできた。

参考

Rails で assets 関連のライブラリを使う際、数年前までは有志が作った gem を利用する(例: twitter-bootstrap-rails など)のが主流でした。しかしそれだと、gem の作者がボトルネックになってしまい、ライブラリのバージョンがなかなか上がらなかったりします。そんな中、node.js を利用したパッケージ管理システムBower、Bowerをバックエンドに使ったRails Assetsが出てきて状況は一気に変わったのでした。

僕も最近はRails Assetsを使っています。ただ、SassでBootstrapを利用する場合においては、Rails Assetsを利用せず、bootstrap-sassという、Bootstrap 公式の gem を利用するのをオススメします(lessの場合どうするのかは調べてません><)。

Rails Assets 経由でインストールしたCSSファイルは、scssで、変数が展開されたものが配置されます。そのため、変数をオーバライドして Bootstrap をカスタマイズすることができません。gem の方は、展開前のscssなので変数のオーバライドができます。

Bootstrap のデザインをそのまま使うのであればどちらでもよいですが、少しでも編集するのであれば gem のほうが編集しやすいです。

gem search rails

とかすると、部分一致で検索されて結果がたくさんでます。完全一致したgemの情報のみ欲しいときは次のようにします。

gem search ^rails$

しかし毎回^$を打つのはだるいですね…。そこで簡単なシェルスクリプトを書いてみました。-dは詳細情報を取得するオプションです。

結果

gem search -d ^rails$

*** REMOTE GEMS ***

rails (4.1.2)
    Author: David Heinemeier Hansson
    Homepage: http://www.rubyonrails.org

    Full-stack web application framework.

あとは -a オプションをつけると、公開されている全てのバージョンを表示できます。ただ通常より1〜2秒位レスポンスが遅くなる気がするので、別のシェルスクリプトにするのが良さそうです。

結果

gem search -da ^rails$

*** REMOTE GEMS ***

rails (4.1.2, 4.1.1, 4.1.0, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 4.0.2, 4.0.1, 4.0.0, 3.2.18, 3.2.17, 3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.12, 3.1.11, 3.1.10, 3.1.9, 3.1.8, 3.1.7, 3.1.6, 3.1.5, 3.1.4, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.20, 3.0.19, 3.0.18, 3.0.17, 3.0.16, 3.0.15, 3.0.14, 3.0.13, 3.0.12, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4, 0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)
    Author: David Heinemeier Hansson
    Homepage: http://www.rubyonrails.org

    Full-stack web application framework.

gem info みたいに gem のサブコマンドを定義する gem を作る方法もあります。ただそれだと gem install とスペルが途中までかぶり、gem i hogeでgemのインストールができなくなってあまり嬉しくないため今回は見送りました。