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の機能が一部把握できていない。後ほど確認しておこう。
今後ちょっとずつ使ってみて、ブログ移行するか、コードを読んでみたいと思います。
フィヨルドの皆様、お世話になりました!
参考リンク
- Authorであるkomagataさんのブログ http://docs.komagata.org/tags/lokka/
- Lokkaプラグイン作ってみた http://bugcloud.com/?p=998
- LokkaのLT http://docs.komagata.org/4876
- How to contribute: Issuesにあるものや気に入らない点を修正する/PullRequestを送る、1行ルール(1行でもマージされたらコミッター)。
学習週:入門本9章カート、10章チェックアウト / Asset Pipeline
今週は学習週だったのですが、今日しか学習ができず。
「RailsによるアジャイルWebアプリケーション開発」
9章「Ajaxベースのカートの作成」
- button_to ヘルパーはForm のHTML生成
- form_remote_tag は古くて、Rails2までなことに気づく
- rails-3 移行のスライド http://www.slideshare.net/GreggPollack/rails-3-beautiful-code-3219240
- HTML data-属性、unobtrusive Javascript の流れで仕様変更されたとのこと
- けちらずにこの本の最新版を入手することにしました
- page変数はJSジェネレータのインスタンス(サーバ上でJS作成ができるRailsのクラス)
10章「チェックアウト」
クラスメソッドとインスタンスメソッドの違いをど忘れしていて、30分ほどはまりました。
- これはインスタンスメソッド定義
class Hoge def myMethodA end end
[×] Hoge.myMethodA()
- これはクラスメソッド定義
class Hoge def self.myMethodB end end
[○] Hoge.myMethodB()
PHP以外あまり知らないので、 self. でそんな違いが出るなんて驚きでした。
- るりま公式ガイド
- http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fdef.html#class_method
- さらっとした記述、これははまるw
- http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2fdef.html#class_method
- Rubyでは「個々のクラスも"Class"クラスのオブジェクト(インスタンス)である」という理解が重要らしい。
- JavaScript は、すべてはオブジェクトであり prototype を継承している、という予備知識があったので、それとのアナロジーでなんとなく理解できるけど・・・。文法はもう一度復習しないとだな。
Asset Pipeline の解説記事を読んだ
- 公式ドキュメント http://guides.rubyonrails.org/asset_pipeline.html
- 丁寧な解説 http://it.sifr.me/ruby-on-rails-asset-pipeline/
- CDNへのリンクはどうするの?と思ったけど、↓を見ると、設定だけすれば、自動リンクしてくれるよう。
とりあえず何ができるのかまでは分かった。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 自体について
- 次回がもしあったらやろうかな、と思ったこと(私は純粋な参加者というよりはスタッフ寄りなので)
- 個人的要望
- 懇親会的な時間、もしくは自習タイムが、もう少しあっても良いかも?
- 時間について:私の場合は、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中級向け)。
- 「Testable Javascript – テストしやすいJavaScriptとテストについて」
- 「jQuery to Backbone – アーキテクチャを意識したJavaScript入門」
Frontrend vol.4 の紹介記事はこちら。
セミナー、行ってきました。本当は上記のほかにも2セッションあり、そちらも素晴らしい内容だったのですけれど、私の体力の都合で(昼寝しすぎて遅刻・・・><)この2つに絞ってメモします。
関連リンク:
https://twitter.com/frontrend_ca
から抜粋させて頂きます。
Testable Javascript
- Kent Beck氏のユニットテストに関するStackoverflowでの回答
- Rebecca MurpheyのFull Frontal 2012のスライド
- リファクタリングのデモ用アプリ「Q.O.F」のレポジトリ
- JavaScriptのテストツール情報
- 単体テスト
- いろいろなモノがあって一長一短だから、まずは好きなモノを使ってテストを書いてみよう
- http://mitsuruog.github.com/jasmine/
- http://qunitjs.com/
- http://visionmedia.github.com/mocha/
- http://phantomjs.org/
- 統合テスト
- テストで学ぶJavaScript
Backbone
思いつくままの雑多な感想メモ:
- こういう勉強会に行った時に必ず思うこと。1. みんな若い。2. そしてよく勉強している。ということ。こういう人たちが5年後もっと力をつけてくるんだな〜、というプレッシャを感じます(正しい事実認識)。今日も、会場の8割は私より年下な感じ。質疑応答の質問のレベルもけっこう高いと感じました。あと、CAさんって凄い・・・と思いました。
- 過去のスライドがどうして見られないのだろう?と今まで疑問だったのだけれど、セミナーから帰る時に判明。セミナーに実際に行って、アンケートに回答した人だけが、スライドのURLを教えてもらえるのだった・・・!公開してくれたら嬉しいな。もしくは、有料でファイル購入させて頂けたら。
- 印象に残った質疑応答(メモを取らなかったから、言い回しは全然違ったと思うけれど、だいたい内容は合っているハズ)。
- Q. 現場でテストを導入しようとなった時に、知識や興味の無い人もいる中で、どうやって普及していけば良いの?
- A. テストの実効性、メリットを実感してもらうには、「実際に手を動かしてやってみてもらう」のが良いと思う。チームでやるのでも良いし。テストを書けるようになってもらうためにも。
- javascript-koans。
- 会社でCI環境構築を今ちょうどやっているので、それにヘッドレスのJSテストは入れたいなと思った。
- Underscore.js というか、JSのテンプレートのコードを初めて見た。ケースによってはとても使い勝手が良さそう。いつか実務で使ってみたいモノ Backbone/Underscore/LAB.js
作業週:続・開発環境の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知識が無くてもできる改善系が無いか、今週は怖話を使いながら見てみたいと思います。