There's an echo in my head

日々のメモ。

2013-01-01から1年間の記事一覧

森見登美彦「ペンギン・ハイウェイ」を読み終えた

(あとで書く)

ActiveRecordのserializeはYAML以外の読み書きにも使える

serialize-rails gemでJSONをDBに格納するという記事を書いたけど、わざわざgemを使わなくても第2引数に渡すオブジェクトがloadとdumpを実装していれば十分だった。ちなみにActiveRecord 3.2で確認。 たとえばURLをURIのオブジェクトとして扱いたい場合。 # …

MySQL 5.5から使えるようになったRANGE COLUMNSによるパーティショニング

それまでDATEやDATETIMEによるパーティショニングではTO_DAYS()関数を使って数値に変換する必要があったけど、MySQL 5.5からはRANGE COLUMNSを使うことによって日付や時刻をそのまま書けるようになった。 DATETIMEだとこんな感じ。DATEも同様。 /* パーティ…

sortと<=>

2列ソートをやろうとしたんだけど、ここらへんのことをすっかり覚えてなかったので復習。 a <=> bはa > bなら1を、a < bなら-1を返す。一致すれば0。bに対してaが大きいかどうかを返してて、aが主人公っぽいイメージ(レシーバだから当然か)。 p 1 <=> 2 #=…

Unicodeブロック/スクリプトを使うと日本語の正規表現に便利

Oniguruma(CRuby 1.9系組み込み)とOnigumo(CRuby 2.0系組み込み)で利用できるUnicodeブロックおよびUnicodeスクリプトを使うと、日本語(というか多バイトの文字列)に対する正規表現が手軽に書ける。 例えば\p{N}は全角半角にかかわらずアラビア数字に…

スマートフォンでの絵文字のコードマッピングはこんな感じ?

はてなブログでテーブルが書けなくてqiitaに移した

Lua/Corona SDKのAPIで調べたこと

配列っぽいテーブルに要素を追加する local t = {} table.insert(t, 1) table.insert(t, "a") http://lua-users.org/wiki/TablesTutorial ファイルを読み込んで1行ずつ処理する local path = system.pathForFile("foo.txt") local f = io.open(path, "r") fo…

RSpecのbeforeブロックで現在テスト中のexampleのソースを取得する

describe "foo" do before do puts example.description end it "bar" do # some test end end specのファイルパスと行番号が表示される。 example at .spec/foo_spec.rb:5 Getting the full RSpec test name from within a before(:each) blockを見ると、Ex…

vagrant + chef 勉強会に行ってきた。

内容については意識高いのコメントやチャット、togetterなどを参照。 普段参加している勉強会とは違ってインフラの人が多くてちょっと新鮮だった(SIerの中の人とか多かったのかな?)。 最近Vagrant+ChefをCapistranoのデプロイのテスト環境として使おうと…

コマンドラインツールの~/.hogercのテストはrubygemsが参考になる

rails-erdに~/.erdconfigという設定ファイルを作ろうとしたときにrubygemsのGem::ConfigFileの実装とテストが参考になった。 lib/gem/config_file.rb test/rubygems/test_config.rb 特に参考になったのはテスト用の設定ファイルの準備。 テストしたいときに…

TCPServerを相手にスレッドを使ったテスト

ok_gntpdというTCPServerをつかったサーバを相手にしたテストを書いた時のメモ。 テストしたい内容としては サーバを立ちあげて、 特定の文字列を送信したときに 特定の文字列を受信する ということ。規模的に結合テストというほどのものではないけど、サー…

java-ja.dddに行ってきた

グリーさんで開かれたjava-ja.dddに行ってきた。 JavaはAndroidアプリを作るときにちょっと触った程度しか経験がないし、エンタープライズな開発も経験がないけど面白かった。ドメイン駆動設計の本はほとんど読まずに積読になっているので今度読もう。 各種…

ランダムに落ちるspecの修正で便利だったRSpecの2つの設定

最近開発していて便利だったのでメモっておく。 一つはorder。spec_helperが生成された直後は"random"に設定されていて、このときspecの実行順序が毎回ランダムに変わる。 ランダムに実行することで実行順序に依存して落ちるspecを見つけることができる(そ…

Vagrant + chef-soloでgitを入れてみる

Vagrant 入門 - Mac 上に仮想マシンを簡単に用意するでVagrantを入れたら色々やってみたいよねということで、chef-soloと連携してgitを入れてみる。 まずはVagrantfileのあるディレクトリに移動して、cookbooksディレクトリを作成しておく。 cd (Vagrantfile…

大江戸Ruby会議03に行ってきた #odrk03

前日に遅くまで起きていたのもあって、開場に入ったのが3時頃だった。以下、気になったことのメモとか。 Keynote、再生中にxで左右を切り替える @a_matsudaさん 海外に出て行くとき、コミュニティとかアジャイル開発とか、抽象的な話はできない。できるのは…

vagrant+chefでchefのレシピを適用するときにログを出力する

Vagrantfileで次のように記述する。 Vagrant.configure("2") do |config| config.vm.provision :chef_solo do |chef| chef.log_level = :debug end end

Enumerable#cycleで無限に循環するイテレータを作る

周期の異なるループを混ぜ込むのに便利。 iterator = ("a".."z").cycle 1.upto(100) do |i| puts "#{i}: #{iterator.next}" end

ネコハッカソンに行ってきた #willcat

ネコワーキングで開かれたネコハッカソンに行ってきた。 開場での様子は#willcatや写真の豊富な@bekkou68さんの記事などをご参照のこと。開催に至った流れもおなじく@bekkou68さんのまとめ記事をご参照のこと。「猫を愛でて給料もらえる仕事はないかなぁ」と…

SinatraでJbuilderを使う

RABLのDSLわからんヽ(Д´)ノ((object`ってなに…)) ってなってるので、tilt-jbuilderをforkしてSinatraで動くようにした。 sinatra-integrationというブランチを切ったので、Gemfileに次のように記載するとSinatraでもJbuilderが使えるようになる。 # Gemfile g…

`bundle install --path vendor/bundle`したgemの入れなおし

いつのまにかbundle install GEMNAMEができなくなっていたので。 gem install GEMNAME -i vendor/bundle/ruby/1.9.1 ruby 2.0だとvendor/bundle/ruby/2.0.0になるみたい。 追記 できるのはbundle update GEMNAMEだった。

MySQL 5.6.10を入れなおした

Homebrewの公式のFormulaが出たので、独自のFormulaで入れたものを削除して入れなおした。 launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist brew update brew uninstall mysql brew install mysql --enable-memcached ln -sfv /usr/loca…

ok_gntpdというgemのバージョン0.0.5をリリースしました

しました。 ok_gntpd (0.0.5): is.gd/Pk8Yl2 An GNTPd which always return "OK".— RubyGemsさん (@rubygems) 2013年2月24日 リポジトリはgithub:a2ikm/ok_gntpdです。 これはGrowl Notification Transportation Protocol 1.0にしたがってOKを返すだけのサー…

rspecの初期化手順

とりあえずspecを回したいよね、というとき。 $ vim Gemfile $ bundle install $ rbenv rehash $ rspec --init $ vim spec/spec_helper $ vim Rakefile Gemfile gem "rspec" spec/spec_helper 冒頭に以下を追記して、$LOAD_PATHの追加(この場合はlib/)と適…

shibuya.rbでLTしてきた

shibuya.rbでLTしてきた。人生初LTで、スライドを使って話すのも数年ぶり。時間ははかってないけど、どれぐらいだったんだろう。 話した内容 経緯 ここ2年ほどRuby/Rails 技術的には面白い ただそればかりも飽きるから違うことをやってみたい ってことで仕事…

勉強用にAWS EC2のインスタンスを立ててドメインも割り振った

aws

AWS EC2のmicroが750hours/monthなら1年間無料なので、AWSなどの勉強用にととりあえずインスタンスを立ててみた。 Elastic IPで固定IPもとって、ドメインもnocci.beを取得して割り振った*1。 まだなにをやるかは全く決めてないけど、capistranoとかそこらへ…

cURLのCA証明書

cURLのサイトにはmozilla製品に含まれるCA証明書が置いてある。 SSLを使うのに適当な証明書がなければこれを使えばいい。Homebrewでもインストールできる。 $ brew install curl-ca-bundle /usr/local/opt/curl-ca-bundle/share/ca-bundle.crtにインストール…

ruby-2.0.0-rc2を入れた(サクッと)

@satococoa先生により、前回よりだいぶスッキリした方法でインストールできた。 環境は引き続きOSX 10.8.2。 $ RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline`" rbenv install 2.0.0-rc2 D…

ruby-2.0.0-rc2を入れた(いったん)

環境はOS X 10.8.2 Mountain Lion。 とりあえずrc1と同じ手順。 $ cd ~/.rbenv/plugins/ruby-build $ git pull origin master $ CONFIGURE_OPTS="--enable-shared --with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline`…

capistranoでゴニョゴニョしたのでメモ

capistranoのレシピ 同じnamespace内のタスクなら、タスク名を書けばそれがそのまま呼べるtask :foo do; bar; end 別のnamespaceなら<namespace>.<task>という感じで、ドットで繋げればOK http://stackoverflow.com/questions/7021523/how-can-i-trigger-a-capistrano-task-fr</task></namespace>…

perlでMakefile.PLを実行するのに必要そうなモジュール

Text::LTSVにpull req.を投げた際にperl Makefile.PLして躓いたのでメモ。 Module::Install Can't locate inc/Module/Install.pm in @INC (you may need to install the inc::Module::Install module) というようなエラーが出たら、$ cpanm Module::Install …

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。