2013年1月16日水曜日

東京ruby会議10行って来ました

千葉じゃねーか!!!!


あけましておめでとうございますm(_ _)m
1月の13日、14日に東京Ruby会議10へ行って来ました。
会社からチケットをいただけたのでラッキー!一般のチケットはすぐ売り切れてしまったようなので感謝感謝です。
2F会場の様子
BGMは終始東方アレンジw


Ruby系のイベントへ行くのはこれが初めてで楽しみでした。
せっかくなのでブログに感想等を。

1日目 晴れ
・趣味とRubyと私
仕事ではPerlという生井智司さんのお話を聞きました。
仕事の傍ら別の言語を使って遊ぶ(勉強する)ことはなかなか時間の取れない社会人にとって簡単ではないと思うので今年社会人となる僕としては興味深いお話でした。モチベーションをどう保つのか等…。

まず、必要だと思ったものを作る。FDD(不満駆動開発!)
これができないと死んじゃう><くらいに思い込んで進めるといいらしいですw
また自宅では会社で使っている言語は使わないといったルールを決めるということもよさそうだな、と思いました。
そしてモチベーションを上げていくため何をするか。
地域のコミュニティに参加、ネットでつぶやく。
これによりRuby友だちができる!勉強会の企画ができる!モチベーションアップ!以下ループ
と言った感じでした。やっぱり誰かと何かするっていうのが1番なんだな。楽しいのが1番!

・プログラミング未経験なんて怖くない!
どんなふうに勉強していくかといったお話。
1真似する
既存のコードから作りたいものに近いものを探す。そのコードが何をしているか調べる。
2形から入る
意味がよくわからなくても形から入る(テストを先に書くといいらしい…等)
わかる瞬間がそのうち来る。やり方に慣れる。
3途中経過を見せる
早い段階で見せる。こまめに見せる。

やっぱり実際にコードを見る、やってみるっていうのが1番ですよね。
途中経過を見せるというのもいいなと思いました。
絵文字が飛び交うPullRequestで爆笑

・日本酒評価サイトとxDD
お酒は最高ですね!
河野さんのいろんなDriven Developmentのお話です。
ADD:アルコールDriven Development
BDD:ビールDriven Development
WDD:ワインDriven Development
NDD:生ハムDriven Development
生ハムは大盛り上がりでしたw
そしていつの間にかいい話にw
CDD:コミュニティDriven Development
自分の知らないことを知っている人が必ずいる。もしコミュニティがなくても自分で作る。1人だと大変だけど1人でも仲間を見つければ継続していける。
やはりコミュニティは重要なファクターであることを再確認。なければ作ればいいじゃない!


ほかにも個性的な発表がたくさんありました。
フリスクのケースで違和感なく脈拍を計りそれとなくCapsLock点滅させることで上司に緊張していることをアピールする等会場がもりあがる発表ばかりでした。


2日目 雨・雪
・How to change the world
Rubyのパパのまつもとゆきひろさんのお話です。お子さんが成人式ということでSkype越しの発表でした。そういえばRubyも20歳ですね。
心に直接語りかけられました。
Rubyが成功した理由、世界を変えた理由です。
1.タイミング
10年後当たり前になるオブジェクト指向を当時の段階で取り入れた。当時スクリプト言語にオブジェクト指向はやり過ぎだとの声もあったようです。先見性ですね…。
2.モチベーション
20年こつこつ続けてきたこと。小さな世界から変えていく。

何にモチベーションを持つかは制御できない。自分が面白いと思ったことに対してモチベーションを見出す。
世界を変える鍵。テクノロジー、オープンソース、コラボレーション。
過程を楽しむ。未来は予測できないので賭ける。ただしリスクは分散する。小さく賭け、たびたび賭ける。小さく賭けることでもし賭けに負けても素早く撤退できる。
といった言葉が印象的でした。
ハッピーになろう!

・ブログのススメ
前島真一さんのブログをもっと書こうと言った話でした。
ブログを書くと考えが整理される、コメントをもらえる、ぼっちを回避できる。
モチベーションをどう保つか。途中でも公開してしまうことで継続していける。途中なのが嫌ならそれ用のブログを作ってしまう。GoogleAnalysisを導入しiPhoneのホームにその結果を見れるようにする。

途中でもうpするというのはよさそうですね。とにかく継続することが重要ですからね…。Twitterが流行り始めた時期とブログの更新が滞る時期が一致していておもしろかったです。鳥に吸い取られている…。
GoogleAnalysisアプリも初めて知りました。やる気うpに繋がりそう。
何かするときはやっぱりモチベーションとみんなと関わるっていうのが重要なんですね。

ブログを書くとみんなが幸せになれる!


ほかにはmRubyで柔軟なルータを作ったり勉強会の運営の話、ベトナムでRailsエンジニアの育成や採用の話等々…。
濃い内容でした。
2日目が雪で閉会してしまったのが残念でした…。
雪の中ランチ



・感想
思った以上に楽しかったです。適度なゆるさがあって居心地が良かったです。休憩室はみんな寝そべってるし…。
掲示板がカオス。

全体を通してコミュニティ(勉強会等)の話が多かったですね。会場でもバッヂ交換イベントやアンチぼっちランチ等誰かと関わりになれるような気遣いがされていて印象的でした。私ももちろんぼっち飯は嫌なので参加しました。
TwitterのIDを交換し合いました。また勉強会等でお会いできると思います。貴重な出会いでした。
Rubyはコミュニティが多いイメージでしたがほんとうに多いんですね。
ランチの時に、こういった勉強会では話せばみんな仲良くなれるのにあんまりそういう機会がない。Ruby関連のイベントはそこがすごいといった話を聞いて印象的でした。

テザリングは必須です!Twitterの実況が楽しすぎますw
Facebookは1度も聞かれませんでした…。Rubyistはツイッターのほうが好きなんでしょうかね?
初日ツイートまとめ
二日目ツイートまとめ

今年の目標にコミュニティへ積極的に参加することを付け加えようと思いました。
頑張ります!

2012年10月21日日曜日

MacOSX Lionでrbenv


研究室のRubyに明るい先輩がrvmよりrbenvだぜみたいな話をしていたらしく、気になったので入れてみました( ・`ω・´)

そもそも何が良いの?


公式に書いてあるように
It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
ということらしいですね。
Rubyのバージョン切り替えに特化しててシンプルで使いやすいしUNIXの伝統にのっとってるからこっち使おうぜってことでしょう(たぶん)。
その分rvmより機能は少ないんだろうけどそもそもrvmでバージョン切り替え以外の機能使ったことない自分にとってはrbenvの方がいいですね。

インストール


homebrewで簡単に入るのでhomebrew入ってなければ先に入れます。Xcodeないと使えないのでXcode入ってなければ先に入れます。

$brew update
$brew install rbenv
$brew install ruby-build

rbenvにはRubyのビルド機能も無いので(さすがシンプル指向)ruby-buildってやつでビルドするようですね。

設定&ルビーインストール


$vim .bash_profile
でeval "$(rbenv init -)"と追記します。
$source .bash_profile
読み込みます。

$rbenv install -l
これを実行するとインストールできるRubyが一覧で表示されます。
$rbenv instrall 1.9.3-p194
Rubyインストール完了

$rbenv global 1.9.3-p194
使うRubyのセットをします。
$rbenv versions
インストールされたRubyと使用中のRubyが表示されます。

そんな感じ。

あ、あと注意なのがrailsみたいにコマンドが付いてくるgem入れた時は
$rbenv rehash
してあげないとだめなようです。以下rbenv -h参照
Rehash rbenv shims (run this after installing binaries)


2012年10月12日金曜日

Mac mini Mid 2011 メモリ交換

最近メインウエポンのMac miniさん上で仮想マシン動かしつつブラウザ眺めて試行錯誤ってやってるとメモリがモリモリ減って不快だったので新しいメモリ買っちゃいました。

仮想マシン起動しながら他のアプリも動かすならやっぱり16Gが快適ですね。8Gだと少し不安。

メモリはUMAXのこれを買いました。安いですね。これより500円ほど安いのもありました。

メモリ交換は簡単なのですが1スロット認識せず焦りました…
単純に刺さりが甘かっただけなのですぐ解決しましたが…。

手前のメモリスロットは横からではなく、思ったより縦にメモリを差し込むのがコツだと思います。ザクっと奥まで入ります。

認識!☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ

次はメモリテスト!
Remberというのを使ってみました。
メモリーサイズは全領域、テスト回数は1回で実行します。1回でもだいぶ時間かかります。

テスト完了!(∩´∀`)∩ワーイ


エラーはありませんでした!
ひとまず安心…。

この調子でたまった下書きもがんがん修正してブログりたいですね。

2012年6月21日木曜日

djangoの開発用ページをローカル以外から表示

(#^ω^)デスクトップ版わざわざ使わないと確認できないなんてありえん
と思って探したらありました。よかったよかった

$ python manage.py runserver 0.0.0.0:8000

です。
参考
http://d.hatena.ne.jp/hir_kaz/20061116/1163662123

2012年6月18日月曜日

USBメモリにChromium OS

やってみました
思ったより簡単です!
でもすごい時間かかります


最初に

Ubuntu server 10.04 64bitをVMwareで起動
仮想ディスクは20Gじゃ足らなかったので50G用意した(でも40あれば平気な気がする)
アップデートとか適当にしてください

必要なもの入れる

$ sudo aptitude install -y git-core gitk git-gui subversion curl
$ git clone https://git.chromium.org/chromium/tools/depot_tools.git
$ vim .bashrc
追記 PATH="$PATH":~/depot_tools
$ source .bashrc

ソース入れてビルドする

$ mkdir chromiumos
$ cd chromiumos
$ repo init -u https://git.chromium.org/chromiumos/manifest.git
$ repo sync
名前とかメールアドレス聞かれるけど全部デフォルトでイエスマン

$ cros_sdk -- ./build_packages --board=x86-generic
$ cros_sdk -- ./build_image --board=x86-generic

イメージをusbにコピー

$ cros_sdk -- ./image_to_usb.sh --board=x86-generic
USBメモリ差したあと実行すると自動的に認識してくれる!素晴らしい

おまけ:イメージをvmファイルに

$ cros_sdk -- ./image_to_vm.sh --board=x86-generic
chromiumos_qemu_image.binとかいうファイルできたけどよくわかりません

起動

USB差して再起動してうまくいけばおしまい
言語とキーボード設定してグーグルのアカウントでログイン!



参考
http://www.chromium.org/chromium-os/quick-start-guide


パス無しでssh接続

正直いちいち入力とかめんどくさいです。

サーバー側
$ ssh-keygen -t rsa #キーペア生成
$ cat id_rsa.pub >> $HOME/.ssh/authorized_keys
$ chmod 600 $HOME/.ssh/authorized_keys 

クライアント側
$ scp  foo@hoge.hoge:~/.ssh/id_rsa $HOME/.ssh/
$ mv $HOME/.ssh/id_rsa ~/.ssh/keyname
$ ssh  -i $HOME/.ssh/keyname -l foo hoge.hoge


参考
http://hgotoh.jp/wiki/doku.php/documents/other/other-004

Ubuntu12.04 64bit Rails

あれ。。Railsバージョンは。。忘れた。。
あとで調べますん


インストール後Tutorialやろうとしたらエラー連発したので。。


・$ rails new [appname]

言われたとおり
$ sudo gem install sqlite3 -v '1.3.1'
しても
checking for sqlite3.h... no が含まれるエラー出る
$ sudo apt-get install libsqlite3-dev
であらためて
$ sudo gem install sqlite3 -v '1.3.1' 
でおk
 
・$ rails server
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
やらなんやらのエラー
$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:chris-lea/node.js $ sudo apt-get update $ sudo apt-get install nodejs
でおk
 
・$ rake db:migrate
undefined method `reference' for #<ActiveRecord::ConnectionAdapters::TableDefinition:~~~
db/migrate/~~~_create_comments.rb の
t.reference → t.references
でおk


Tutorial
http://guides.rubyonrails.org/getting_started.html