0

設定ファイルの読み込みにHashie::Mash使ってる

最近こうやってる


inits/config.rb

require 'yaml'
require 'hashie'

module MyApp
Config = Hashie::Mash.new YAML.load File.open(File.expand_path "../config.yml", File.dirname(__FILE__)).read
end

1つ上の階層のconfig.ymlを読んでHashie::Mashにしてから、モジュール直下の定数に入れておく

こんな階層の深い設定ファイルの場合でも、
MyApp::Config.twitter.user で “shokai”が取得できたり、
MyApp::Config.ignore.wordsで無視する単語リストが配列で取得できたりする。

twitter:
user: "shokai"

skype:
chat: "#shokaishokai/$564697b405245f4f"

words:
- "shokai.org"
- "橋本商会"
- "github.com/shokai"
- "shokai.github"

ignore:
users:
- bot
- shokai_twit
- shokai_bot
- shokai_log
- end_0606_shokai
- kirakira
- rurourafale
- YADAYOOOOOO
- aine0120
- K_T_Hotel_Annex
- sho1nco
- koyoshokai
words:
- shokai_bot
- shopping.yahoo
- キラキラ商会
- kirakira
- ビリケン商会

0

Ruby初級入門という勉強会やりました

まず全員Ruby2.0.0をインストールさせつつ、俺がRubyの色々なことを紹介したり、ライブコーディングした。

今日の資料です

Rubyそこそこ使ったことある人と全く使ったこと無い人が半々だった。
使ったことある人は前半がためになったとのこと。
ない人は後半のArrayやHashにsortやuniqやreverseなどをチェーンしていったり、mixやmaxやfindなど痒い所に手がとどくの良かったようだ。


スライドを前日からtwitterで公開していたら、@shigeyas先生からgem紹介にpryとawesome_printがあったほうがいいのでは、というツッコミがあって追加した。

「gemの使い方を調べる」のところでpryとawesome_printを使って色々調べるのも追加した。

教育体験のせいで1時間以上のスライドでも3時間ぐらいあれば作れるようになってしまった。


実演

最後にぶっこ抜き実演をやった。ぶっこぬきはクロール・HTML解析・DBに貯めて・通知するという総合芸術で、しかも日常的に使うから不満もすぐたまって改良欲求が高くなる。
自分で愛用できるツールを作って運用メンテしていくことがプログラミング学習の早道だと思うので、ぶっこ抜きをテーマにした。


教えていた人の中にデータマイニングが好きな奴がいたので、アニメスタッフデータベースというすごいwikiから制作スタッフが名をたくさん取ってくるクローラを書いた。お腹がすいたので完成せず終了して麺の月に行った。

役職名と名前が取得できるところまでは作った。あとは協調フィルタリングとかで便利なレコメンドwebサービス作れると思う。

ソース

0

他人のGitHubのissue一覧を見れるようにした

ソース
https://github.com/shokai/github-cmd


これの続き
橋本商会 » githubの自分のリポジトリのissue一覧を見るツール
橋本商会 » githubのissue見るコマンドにissue番号だした

他人やorganizationのリポジトリのissue一覧を見れるようにした。
ちょっかいかけたい人や就職したい組織に対して、issueにpull requestして存在感をアピールするのに有効だと思う。

実行時引数に複数の名前を入れられるので

% github-issues shokai masuilab masui --all
で自分と研究室と先生のissueが全部まとめて日付順で見れる。

1

Raspberry PiのSDカードをコピーする

Raspberry Piはアプリケーションを動かしている時はスペックに不満は無いんだけど、セットアップに時間がかかる。
CPUが遅いからraspbianをインストールして色々セットアップが済むまで6時間以上はかかる。

そこで、よく使うものをあらかじめインストールしつつ、ssh鍵やhistoryなどは削除したものをイメージファイルにしておくことにした。
イメージファイルになっていれば何枚でも別のSDカードに複製できる。


ここに置いた

http://masuilab.org/~sho/furnicomp/README.md
http://masuilab.org/~sho/furnicomp/raspi/


必要なもの

4GBのSDカード、MacかLinux


SDカードからイメージに書き出し


SDカードのデバイス名をチェック
mount
df

イメージに書き出し
diskutil umountDisk /dev/rdisk1
sudo dd if=/dev/rdisk1 of=20130710-furnipi.dmg bs=1m
diskutil eject /dev/disk1
4GBのdmgファイルができる。
元になるSDカードのサイズでイメージのファイルサイズが決まるので、4GBのSDカードを使うようにしている。


gzに固めるとかなり小さくなる。1GB前後になった
tar -zcvf 20130710-furnipi.tar.gz 20130710-furnipi.dmg


日付を付けて http://masuilab.org/~sho/furnicomp/raspi/ にアップロードした

イメージからSDカードへ書き込む


unzip
tar -zxvf 20130710-furnipi.tar.gz


書き込む
diskutil umountDisk /dev/rdisk1
sudo dd if=20130710-furnipi.dmg of=/dev/rdisk1 bs=1m
diskutil eject /dev/disk1


起動


普通にRaspberry Piにさせば起動できる。
ログインはデフォルトのpi:raspberry

4GB以上のSDカードを使っている場合は、raspi-configでパーティションを拡張すれば全領域が使える。
sudo raspi-config
sudo reboot

0

clip2htmlescape直した

>や<をHTMLに貼れるように&gt;や&lt;に変換するやつ、バグがあったので直した。環境変数がそのまま展開されたりしてた。

これはMac用のアプリで、起動するとクリップボード内のデータをHTML escapeしてすぐ終了します。ランチャーとかドックとかに入れておくとblogにコード貼り付ける時にすぐ変換できて便利。
https://github.com/shokai/clip2htmlescape-mac