babie steps

作業療法記録

ruby

Earthquakeで:plugin_install時にgithubネームに数字が含まれているときまずいのを直した(初めてのpull-request)

新しい13" MacBook Pro(Retina 2013 late)の環境構築しないといけないので軽く。 例えば ⚡ :plugin_install https://gist.github.com/no6v/946219 するとgithubネームの6の方が引っかかって https://gist.github.com/maddox/6 をインストールしそうになるっ…

upstart, pty-keeper, reptyr, socat - ターミナルアプリをリモートサーバでデーモン化する方法(Earthquakeをサーバで実行するようにした)

試行錯誤で6日かかったンゴ……普通に嵌ってしんどかった……。1 release/dayが途絶えて残念なり……。一応、毎日勤勉に取り組んでたんですけどねぇ。でも最後はかなりシンプルになって良かった。似たような方法でターミナルアプリは全て同じ方法でデーモン化して…

event_chain - Earthquakeのユーザーストリームで流れてくるイベントに応じて任意のコマンドを実行できるプラグインを作った

チョリ〜〜〜〜ッス!ブログ記事は遅れてるけど一応1日1リリース継続中。 先日のfav_machineは、①favイベントだけに反応し、②画像を保存するだけ、だったのですが、①は全てのイベントに、②は任意のコマンド(勝手プラグインコマンドも含む)に対応して、汎用性…

save_image - 指定したツイートの画像を保存するEarthquakeプラグインを書いた

チョリーッス!昨日はブログ書かなかったけど挫折したんじゃないよ!マジで。先日のfav_machineを2つに分けたから同時に公開したかったのだ。マジでマジで。 fav_machineはふぁぼったツイートの画像を自動で保存するだけで、コマンドは作らなかったので必ず…

update_profile - Twitterのユーザー情報を更新するEarthquakeプラグインをアップデートした

いやー、ギリギリ間に合った〜。いやー、数分ぐらい間に合ってないけど記事のURLと日付は見かけ上間に合った〜。ん?いやいや、さっきまで寝てて急遽10分で以前のプラグインの修正でお茶を濁したとかそういうわけじゃないですよ?やだなー、2日前の今後の予…

lists - Twitterのリストを表示するEarthquakeプラグインを書いた

1日1リリース、4日目〜。三日坊主にはならんかったな。良かった。 えー、昨日はコマンドライン書くかもって言ってたけど、Earthquake関連をまとめて終わらせちゃおうと思って、やっぱこれにしました。記事はまとまってた方が探しやすいしね。リストは:recent…

update_profile - Twitterユーザー情報を更新するEarthquakeプラグインを書いた

Updated update_profile - Twitterのユーザー情報を更新するEarthquakeプラグインをアップデートしたをお読みください! 今日で1日1リリース、3日目! 寝込んでて9:30から作業始めたんですけど間に合いました! 予告通り、Earthquakeプラグインを作りました…

fav_machine - favしたツイートの画像を保存するEarthquakeプラグインを書いた

Updated このプラグインをsave_imageとevent_chainに分割して、もっと汎用的にしました。使ってる人いないと思うけど、いればそちらをオススメします。 はい、予告どおりEarthquakeプラグインでございます。 はい、名前はアレです、おっさんなので。このプラ…

auto_restart - Earthquakeをメモリ解放のために一定時間で再起動するプラグインを書いた

あの日見たソフトウェアの能力を僕はまだ知らない。(名前は知ってた) 皆さん、Twitterクライアントは何をお使いでしょうか?私は最近Earthquakeというターミナルで動くクライアントを使い始めたところです。いや、数年前からあったんですけど、あの大地震の…

rvm で Ruby 1.9.2 p180 をインストールして移行した

$ rvm update --head $ rvm reload $ rvm package install readline openssl zlib iconv $ rvm install 1.9.2-p180 -C --with-openssl-dir=$rvm_path/usr --with-readline-dir=$rvm_path/usr --with-zlib-dir=$rvm_path/usr --with-iconv-dir=$rvm_path/usr …

Ruby on Rails Tutorial の続き文字列折り返しメソッドが大変よろしくないので修正した

Ruby on Rails Tutorial Learn Rails by Example は大変よろしい教材で重宝しているのだが、Chapter 11 User microposts の 11.5 Exercises 設問 8 に付記されたコード: Listing 11.42. A helper to wrap long words. が大変よろしくない。app/helpers/micr…

Ruby の end 等を自動的に補完する Vim プラグインを導入した

※ 追記したので最後まで読んでね。「Ruby の end を自動的に入力する Vim スクリプト改め autoend.vim - ursmの日記」に従い、Ruby の end を自動補完する plugin を導入した。コードを見て分かるとおり、Vim の Ruby 拡張を使って書いてあるために、vim-rub…

Rubyのエンコード指定マジックコメントを##で挿入できるようにした

Vim エディターのスクリプトの作成: 第 2 回 ユーザー定義関数 を読みながら見よう見まねで書いてみた。ujihisa さんのコメントを受けてちょっと修正。~/.vim/ftplugin/ruby.vim function! MagicComment() return "# -*- coding: utf-8 -*-\<CR>" endfunction in</cr>…

Rails3 対応 MongoDB ORM、Mongoid 詳解―アップグレード

Mongoid のバージョンをアップグレードする時のリファレンスとしてご利用下さい。 2.0.0.BETA.16 + へのアップグレード このバージョンは、MongoDB 1.6.0 を必要とします。 2.0.0.BETA.15 + へのアップグレード もし JSON のシリアライズに include_root_in_…

Rails3 対応 MongoDB ORM、Mongoid 詳解―エクステンション

FABRICATION Paul Eliott さんの Fabrication Gem は、オブジェクト生成ライブラリです。Mongoid を最初からサポートしており、テストの簡便のために、オブジェクトを生成する素敵な構文を提供しています。 Fabricator(:person) do title "Grand Poobah" add…

Rails3 対応 MongoDB ORM、Mongoid 詳解―インテグレーション

CARRIERWAVE ファイルアップロードを扱う Carrierwave は Mongoid をサポートしています。現在のところ、ファイルと S3 に格納することを指定できます。:mount_on オプションがアップローダークラスに定義されてない場合は、ファイル名が アップローダー名_f…

Rails3 対応 MongoDB ORM、Mongoid 詳解―Rakeタスク

Mongoid は Rails 3 環境で以下の Rake タスクを提供します。 db:create 依存関係のために存在します。実際には何もしません。 db:create_indexes モデルから全てのインデックス定義を読み取り、データベースにそれらを作成します。 db:drop システム用コレ…

Rails3 対応 MongoDB ORM、Mongoid 詳解―その他

Mongoid にはアプリケーションで使える、いくつかの役に立つ機能があります。 マスター/スレイブ サポート mongoid.yml でスレイブデータベースを設定しているなら、スレイブを有効化した読み取りクエリを、ラウンドロビンでスレイブデータベースを参照しま…

Rails3 対応 MongoDB ORM、Mongoid 詳解―インデックス

index マクロを使うことにより、ドキュメントにインデックスを定義することができます。:unique オプションをつけると、ユニークなインデックスを構築できます。オプションは必須ではありません。 class Person include Mongoid::Document field :ssn index …

Rails3 対応 MongoDB ORM、Mongoid 詳解―継承

Mongoid はドキュメントとエンベッドされたドキュメントの継承をサポートしています。以下のドメインモデルを考えてみます。 class Canvas include Mongoid::Document field :name embeds_many :shapes def render shapes.each { |shape| shape.render } end…

Rails3 対応 MongoDB ORM、Mongoid 詳解―バリデーション

Mongoid は、基本的なバリデーションを提供するために ActiveModel::Validations を含んでおり、さらに関連と一意性バリデーションに手を加えています。さらに詳しい情報は、ActiveModel::Validations のドキュメントを参照してください。 全てのバリデーシ…

Rails3 対応 MongoDB ORM、Mongoid 詳解―コールバック

Mongoid は以下のコールバックをサポートしています: before_create before_destroy before_save before_update before_validation after_create after_initialize after_destroy after_save after_update after_validation コールバックは、他のドキュメン…

Rails3 対応 MongoDB ORM、Mongoid 詳解―クエリ

Mongoid は、データベースのドキュメントの問い合わせに、2種類のスタイルをサポートします。最初のスタイルは、ActiveRecord風の、ファインダー/動的なファインダーの構文です。2つ目のスタイルは、Mongoid の Criteria API を使った推奨メソッドです。(…

Rails3 対応 MongoDB ORM、Mongoid 詳解―永続化

今回は、データベースへの Insert、Update、Delete です。 Mongoid は ActiveRecord スタイルのデータベースへの永続化メソッドをサポートしています。永続化戦略の項は、実際に実行されるデータベースクエリについて、注意して見てください。 作成 新しいド…

DHH の最新インタビュー紹介

bigthink.com というサイトに、7月22日に記録され、8月3日付けで公開された、DHH の現時点で最新と思われるインタビューがあります。ビデオの他、文章に書き起こしたものがありますので、英語の聞き取りが出来ない人も、読んで内容を把握することができます…

Rails3 対応 MongoDB ORM、Mongoid 詳解―関連

Mongoid::Document は、embeds_one, embeds_many, embedded_in といった、ActiveRecord スタイルの3つのマクロを通して、他のドキュメントに対して関連を設定することができます。関連を設定すると、1つのドキュメントが他のすべてのドキュメントのルートに…

Rails3 対応 MongoDB ORM、Mongoid 詳解―ドキュメント

インストールに引き続き、ドキュメントを解説します。 ドキュメントは Mongoid のコアオブジェクトであり、データベースに永続化したい全てのオブジェクトは、Mongoid::Document をインクルードしてください。MongoDB でのドキュメントは、BSON オブジェクト…

Rails3 対応 MongoDB ORM、Mongoid 詳解―インストール

まずは、インストールの解説です。 $ gem install mongoid --pre Rails3 対応の最新版は執筆時点で 2.0.0.beta.16 で、ベータ版なので、--pre オプションを使ってインストールします。2.0.0 リリースの際には、--pre を取って下さい。そして、mongo ドライバ…

Rails3 対応 MongoDB ORM、Mongoid 詳解―前説

つい先日 1.6.0 がリリースされ、MongoDB の時代がいよいよキタ!って感じです。MongoDB 自体のインストール・操作などは下記の記事を参考にしてください。 Mac OS X で MongoDB を動かす ハンズオンで分かる MongoDB チュートリアル この記事では、Rails3 …

Rails 3.0.0 って Ruby 1.9.1 対応してないの?(複数のバージョンのRubyを管理できるRVMの簡単な使い方)

してません(キリッ。Rails 3.0 は Ruby 1.8.7, 1.9.2 対応です。と、これだけではなんなんで、1台のPCに複数のRuby環境をインストールできる RVMの使い方を書きます。RVMでは今回説明する 1.9.2 以外にも、 jruby - JRuby rbx - rubinius ree - ruby Enterpris…