Lokkathonに参加しました

ハッカソンって、1回も行ったことないんだよな。あと、お世話になっているフィヨルドさんのオフィスにおじゃましたいな。といった気持ちから、Lokkathonに参加しました。

CMSへの興味としては、

  • WordPress で個人でサイトを1個制作したことがあるけれど、会社でいじっているサービスのPHPコードの方がよほど簡単><
  • 私もみんなみたいに、「読みやすいデザインのブログ」に移行したいな、Lokkaでやってみようか

というところです。

初オフィス。椅子が全部アーロンチェア!コーヒーサーバが利用できてありがたい。適宜くつろぐ感じも含めて、大学の研究室の雰囲気をちょっと思い出した。当初はLokkaを予習してのぞむはずが、ノー準備で、MBAだけ持参(悲)。

私が今日やったこと

MacへのLokkaインストールと、HerokuへのLokkaデプロイ。

Lokkaの公式GithubのREADMEのとおりにやれば、即終わります!Herokuのアカウント登録が済んでいる人なら、10分くらいで動かせると思う!
https://github.com/komagata/lokka


なのですが・・・私はちょこちょこつまずきました。。。無理なときは oba 先生に教えて頂きました。obaさんありがとうございます。

トラブルシューティングメモ

MacにLokkaをインストール

rbenv を使うのが久しぶりすぎて、手間取った(<Lokka関係無い)。

公式手順の下記に入る前に、
http://lokka.org/getting-started

$ gem install bundler
$ git clone git://github.com/komagata/lokka.git
$ cd lokka
$ bundle install --without=production:postgresql:mysql
$ bundle exec rake db:setup
$ bundle exec rackup

私の環境だと、まず lokka ディレクトリで

rbenv local 1.9.3-p327

をする(バージョンはこれじゃなくても良いのだけど)、という手順を踏まないと、エラーになるのだった(グローバルのRubyは私はあまり環境を作っていない)。

HerokuにLokkaをデプロイ

Macで動いたLokkaをローカルのgitにコミットして、それをHerokuに置きにいきます。

今日時点だと、公式ドキュメントより公式GithubのREADMEの方が情報が最新の内容となっていました。

$ git clone git://github.com/komagata/lokka.git
$ cd lokka
$ heroku create
$ git push heroku master
$ heroku addons:add heroku-postgresql:dev
$ heroku pg:info | head -n1 | awk '{print $2}' | xargs heroku pg:promote
$ heroku rake db:setup
$ heroku open

herokuの機能が一部把握できていない。後ほど確認しておこう。


今後ちょっとずつ使ってみて、ブログ移行するか、コードを読んでみたいと思います。

フィヨルドの皆様、お世話になりました!

参考リンク

学習週:入門本9章カート、10章チェックアウト / Asset Pipeline

今週は学習週だったのですが、今日しか学習ができず。

RailsによるアジャイルWebアプリケーション開発

9章「Ajaxベースのカートの作成」
10章「チェックアウト」

クラスメソッドとインスタンスメソッドの違いをど忘れしていて、30分ほどはまりました。

class Hoge 
    def myMethodA
    end
end

[×] Hoge.myMethodA()

  • これはクラスメソッド定義
class Hoge
    def self.myMethodB
    end
end

[○] Hoge.myMethodB()
PHP以外あまり知らないので、 self. でそんな違いが出るなんて驚きでした。

  • るりま公式ガイド
  • Rubyでは「個々のクラスも"Class"クラスのオブジェクト(インスタンス)である」という理解が重要らしい。
    • JavaScript は、すべてはオブジェクトであり prototype を継承している、という予備知識があったので、それとのアナロジーでなんとなく理解できるけど・・・。文法はもう一度復習しないとだな。

Asset Pipeline の解説記事を読んだ

とりあえず何ができるのかまでは分かった。PHP版でAsseticというライブラリがあり、使ったことが無く気にはなっている。

CoffeeScript入門

HelloWorldしたら、暗号のレベルからは脱しました。
http://tech.kayac.com/archive/coffeescript-tutorial.html#coffee_helloworld
来週は作業週なので、タスクを入れた、怖話のJS微修正をやってみたいと思います。

BEAR.Sunday meetup #1 参加しました

もう数日経ってしまいました・・・。BEAR.Sunday meetup #1 参加しました。@koriymさんありがとうございました。参加された方、お疲れさまでした。お世話になりました。@brtriverさん、会場提供をご手配頂き、感謝です。

スライドが後日上がるそうなので、meetup内容については記述しません。

雰囲気はこちらにまとめられています。
http://togetter.com/li/457554
NEKOGETさんのブログにも。
http://pneskin2.nekoget.com/press/?p=1093

超個人的な感想だけ、メモしたいと思います。

meetup 自体について

  • 次回がもしあったらやろうかな、と思ったこと(私は純粋な参加者というよりはスタッフ寄りなので)
    • 録音(動画の機材は持っていないけれど、レコーダーなら持っているし、もしくはiphoneでも録音なら綺麗にできる)
    • 告知(前職の知り合いに拡散希望を出す)
  • 個人的要望
    • 懇親会的な時間、もしくは自習タイムが、もう少しあっても良いかも?
    • 時間について:私の場合は、5時間を超えると、早退させて頂く形になってしまうと思います。人それぞれ、生活パターンや感覚が違うところと思います。
  • 雑感
    • ゲストのリチャードさんグラハムさんは、私から見ると、凄すぎて遠〜い世界のお方です。それなのに、私たち普通の参加者に対しても、オープンで優しかったのでした・・・感謝いたします。
    • コード書こう、英語勉強しよう、と思った<できるかなー。。。

学習週:入門Git

濱野さんのGit本を、Chapter.4「独りで使う」まで読みました。自分用メモ。

  • var -l で設定が見られる(configで設定)
  • init で .gitディレクトリができる
  • stage
    • git add . でディレクトリ以下全ファイルstage
    • git add -u バージョン管理下ファイルの全変更をstage
    • git add -A は、git add -u でstageされるファイル+ワークツリーにある .gitignore で無視されていないファイル
    • git reset は unstage
  • diff
    • git diff は、stageとワークツリーの変更を表示
    • git diff HEADは、HEADとワークツリーの変更を表示
    • git diff --cached は、HEADとインデックスの変更を表示
  • log
    • git log -N
    • git log ファイル名 でログ検索
  • revert
  • checkout インデックスに戻す

セクション4.9 歴史を書き換える

  • 間違えてコミット操作をしちゃったから戻す
    • git reset HEAD^
  • コミットした内容が間違っていたので後から直す
    • ログメッセージだけ直す
      • git commit --amend
  • git rebase -i

あとは、実際にGithubで普段使いしながら。。。

フロントエンド技術セミナー Frontend vol.4 に行った

気になっていたFrontrend。今回は「私のためにあるんじゃないか」と思うようなテーマ(JS中級向け)。

Frontrend vol.4 の紹介記事はこちら

セミナー、行ってきました。本当は上記のほかにも2セッションあり、そちらも素晴らしい内容だったのですけれど、私の体力の都合で(昼寝しすぎて遅刻・・・><)この2つに絞ってメモします。

関連リンク:

https://twitter.com/frontrend_ca
から抜粋させて頂きます。

Testable Javascript

思いつくままの雑多な感想メモ:

  • こういう勉強会に行った時に必ず思うこと。1. みんな若い。2. そしてよく勉強している。ということ。こういう人たちが5年後もっと力をつけてくるんだな〜、というプレッシャを感じます(正しい事実認識)。今日も、会場の8割は私より年下な感じ。質疑応答の質問のレベルもけっこう高いと感じました。あと、CAさんって凄い・・・と思いました。
  • 過去のスライドがどうして見られないのだろう?と今まで疑問だったのだけれど、セミナーから帰る時に判明。セミナーに実際に行って、アンケートに回答した人だけが、スライドのURLを教えてもらえるのだった・・・!公開してくれたら嬉しいな。もしくは、有料でファイル購入させて頂けたら。
  • 印象に残った質疑応答(メモを取らなかったから、言い回しは全然違ったと思うけれど、だいたい内容は合っているハズ)。
    • Q. 現場でテストを導入しようとなった時に、知識や興味の無い人もいる中で、どうやって普及していけば良いの?
    • A. テストの実効性、メリットを実感してもらうには、「実際に手を動かしてやってみてもらう」のが良いと思う。チームでやるのでも良いし。テストを書けるようになってもらうためにも。
  • 会社でCI環境構築を今ちょうどやっているので、それにヘッドレスのJSテストは入れたいなと思った。
  • Underscore.js というか、JSのテンプレートのコードを初めて見た。ケースによってはとても使い勝手が良さそう。いつか実務で使ってみたいモノ Backbone/Underscore/LAB.js

作業週:マイページ微修正

  • rakeが通らなくなった?とつまずきかけたのですが、Lingrで聞いたら解決方法を教えて頂けました。怖話開発者wikiの「環境構築FAQ」のページに解決手順を追記しました。
  • rails知識がなくてもできる微修正点を1箇所見つけたので、前回と同様にプルリクエストを送りました。まだプルリクエストの流れがうろ覚えなので、前回の自分のブログに手順が残してあって助かった。
  • 来週は学習週ターンなので、1. 積ん読になっていた濱野さんのGit本を読む、2. rails入門本のまだ読んでいないセクションのどれか(テストかな)3. Unicorn をやれたらいいな。でも1. だけで終わってしまう予感が。。。

作業週:続・開発環境のrakeを通す/フッタ微修正

昨日挫折した、「rakeでテストを通そうとするとエラーになる件」。Lingrでお尋ねして、私の最新の取り込み漏れであることが判明(汗。pullで最新を取り込む。

% git branch
* footer-parts-ranking
   master
% git pull origin master
※結果:いっぱい入ってきた>< git pull、やっていたつもりだったのだけどなー・・・。

bundle環境について

rbenv exec  exec rake タスク名

rbenv exec bundle exec rake タスク名

では、全く意味が違う!ということを認識。怖話開発は、「bundle環境化」での作業としてやる。現状だと、グローバルよりプロジェクトのrake の方が古いので、プロジェクトで使用しているバージョンで実行するのに bundle exec が必要。

PullRequest

TODO: 後でコチラを読み直す→ http://d.hatena.ne.jp/hnw/20110528
昨日push したブランチは古かったわけなので、いったん消す必要がある。git push --delete origin footer-parts-ranking 間違えてmasterを消したらどうしようという恐怖でドキドキする。何度も合ってるよな、と確認。
→ 消す必要なかったのでした。コメントありがとうございます。転記:

 1.ローカルのmasterを最新にする。
 $ git pull origin master
 2.footer-parts-rankingブランチにmasterをマージする
 $ git checkout footer-parts-ranking
 $ git merge master
 3.footer-parts-rankingをリモートリポジトリにpushする
 $ git push origin footer-parts-ranking

きれいな状態で、bundle exec rake などテストを通ったのを確認して、pushして、PullRequestを送りました。
こういう、rails知識が無くてもできる改善系が無いか、今週は怖話を使いながら見てみたいと思います。