2013年9月20日金曜日

Ruby2.0.0 & rails4 & Postgres on Herokuの環境づくり

Rails4をHerokuで動かす環境を整えた覚え書き。Postgresを使った一番スタンダードな仕様(のつもり)。


Ruby Mine
IntelliJに慣れつつある僕はRubyMineを使いたい。VimのKeybinding使えるし、デバッグしやすいし、安定しているし、良い!




Ruby on Rails
Homebrewとgemで適当にインストールした。超簡単なので覚え書きもしません。

RVM
その後、RVMでバージョン使い分けようとしたら少しはまった。たぶんHomebrewのと干渉したんだと思う。
https://rvm.io/

こんなエラーが出てしまった。
/Users/ippei/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError)

You have to install development tools first.


以下をしてruby2.0.0とsqlite3をインストールし直したら直った。
rvm get head
rvm --force install 2.0.0
gem install bundle
gem install sqlite3

Postgres

Postgresはここを見ながら設定。Macでの設定はPostgres.appを使うと一瞬で済む。
https://devcenter.heroku.com/articles/heroku-postgresql

と思いきや何故かSocketのI/Oの場所がpgライブラリが見に行く場所と違ってエラーになるっぽいので、無理矢理以下のlinkを作って解決。

lrwxr-xr-x  1 root  wheel  4 Sep 10 09:14 /var/pgsql_socket -> /tmp

後はPostgresにアプリケーション名でユーザを作りつつ。
$ createuser -U ippei -P $user_name
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
rakeでDBを作る。
#rake db:create


Heroku


とりあえず、Herokuのインストラクションをみながら設定。すでにsqliteでひな形を作ってしまっていたので少しつまづいた。Herokuは基本Postgresぽいです。

以下のツールベルトというのがコマンドラインツール。いろいろ便利。
https://toolbelt.heroku.com/

上記の設定を済ませた上でHerokuのレポジトリにpushすれば動くはず。

Reference
https://devcenter.heroku.com/articles/rails4-getting-started
https://devcenter.heroku.com/articles/heroku-postgresql

2013年9月16日月曜日

非常勤講師@早稲田大学 - モバイルプログラミング

先週のJava(という名のScala)の授業に引き続き、今週はモバイルプログラミングというテーマで、Smart Phone向けのWeb Applicationを作るという授業を一週間行ってきました。今週は生徒が10名以上と多く一人一人のコードを細かく見る事ができなかったため、前回よりは講義形式に近い形で授業を進めました。本当は前回と同じようにGitHubのアカウントを作らせてpull requestで課題提出とか、作ったアプリをHerokuで公開して提出くらいまでしたかったですが、さすがに生徒数が多くそこまで手が回りませんでした。

でも授業の出来としては上々で、生徒全員が毎日出席してくれましたし、プログラミングの経験が乏しかった生徒達も最後の課題ではjQueryとTwitter Bootstrapを使ってレスポンシブなUIを作ったり、Google Chartsでグラフを作って利までできるようになりました。やはり皆さん若くて覚えが早いからかw、僕の期待よりは遥かに早いスピートで吸収してくれました。

今回のクラスでは「ドットインストール」をかなり活用しました。動画で学べる初心者向けのプログラミングサイトです。ドットインストールの動画を見せて、僕がライブコーディングをしてみて、生徒に実際に試してもらうというステップで進めてみました。やっぱり僕が空いた時間でちょこちょこ作った雑な資料なんかを使うより、より質の高い資料を生徒に会わせて上手く作った方が上手く教えられるという事が実感できました。これまでは教科書を使って授業という形が主でしたが、今後は授業によっては「Coursera」とかの外部の質の高い講義ごと利用しちゃったりした方が質の高い教育ができるんじゃないかななんて思ったりしました。そうすれば講師が個々の生徒のフォローに使える時間も増えそうですしね。

前回と同じように授業で使ったスライドとコードはSlideShareとGitHubで公開しています。また資料や生徒の課題はWebで公開してあります。

GitHub: https://github.com/peisan/WasedaMobileProgrammingClass
URL: http://mpwaseda.herokuapp.com/

2013年9月7日土曜日

非常勤講師@早稲田大学 - Java Programing上級

今週は夏期集中講義の非常勤講師として早稲田大学でJavaの授業を行なってきました。Javaといいつつ実は殆どをScalaで進めてしまったのですが。「Java Programing 上級」という授業だったのですが、やはり学生さんということで経験が浅く、準備した資料をアドホックに変更しながら初心者向けの授業にしました。

大学の先生達と同じ事をしていては面白くないので、IntelliJ、Github、Homebrewなどを導入して実際に僕がグリーで行っていた開発環境に近いような形で授業を進めてきました。最後の課題では素因数分解のプログラムを書いて貰ったりしたのですが、終了時にはPull Requestで提出してもらいました。

開発環境のセットアップに思った以上に時間がかかったりなど反省すべき点も多々ありましたが、生徒も楽しんで積極的に授業に参加してくれましたし、何よりどんどん吸収して上達していく生徒を見ているのが僕も楽しかったです。

ちなみに授業で使ったプログラムはgithubで公開、スライドはSlide Shareで公開しています。

github - https://github.com/peisan/WasedaAdvancedJavaClass

2013年9月5日木曜日

グリーで覚えた&忘れた単語リスト

GREEに入って覚えた言葉と忘れそうになった言葉をなんとなく羅列してみた。まぁ、何を学んで何を忘れていったのか何となく想像できますね。今度もう少し丁寧に整理してみようかな。

覚えた

  • CDN
  • LVS
  • Web Storage
  • App Cache
  • CSRF
  • SPOF
  • UX
  • DAU
  • MAU
  • UU
  • ささる
  • くばる
  • デグレる
  • 上長
  • リア充
  • ネト充
  • スイーツ()
  • ボトラー
  • 懐古虫
  • イカ娘
  • まどマギ
  • プギャー
  • モヒカン
  • マサカリ
  • ラブライブ
  • Homebrew
  • git-flow
  • Coffee Script
  • Tyepe Script
  • Zepto
  • node.js
  • PHP
  • Ethna
  • Shading
  • Master / Slave
  • play framework
  • finagle
  • sbt
  • Redis
  • DDD
  • Monad
  • Scrum

忘れそう

  • Bloomberg Tickers (jb/js/jl/...) 
  • Reconciliation
  • Tweak
  • PNL
  • Delta
  • FUTEQ
  • PVBP
  • Interpolation
  • fix / float leg
  • xccy
  • basis swap (e.g. 3m / 6m)
  • fixing risk
  • LIBOR / TIBOR / EURIBOR
  • Spring Framework
  • RMI
  • RMDS
  • dbunit