こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

今日のBoxen

思いつきで MacBook Air を再セットアップすることに。 ちょうどよいので、可能な限り Boxen を使ってセットアップを進めてみる。 Xcode Xcode はあらかじめインストールしておく必要があるので、App Store 経由でインストール。 Command Line Tools が必要…

自分がEmacsを選んだ理由

とある先達とペアプロをした時に見せつけられた『矩形編集』。驚愕です。ガクブルです。なんですか、この変態は。 という感じでそこから自分も変態の仲間入りをしたわけです。 その後、他にも変なことが出来ると言うことを知り、現在に至るまで結局 Emacs を…

一年目に覚えた事(番外編):一日八時間

大事な事を書き忘れてた。 『楽をするために苦労する』と同じくらい自分の根幹になっているのが、『一日八時間労働』。とにかく、定時にさっさと帰ります。 一日に八時間しか使えないという制約の下、何をどこまでやれるのか、いかに無駄を省いて作業効率を…

働き出して一年目に覚えた事

せっかくだし、もうちょっと思い出話を続けてみる。 自分が一年目の頃に、何を覚えたかなと言う話。きれいにまとめる自信はないので、思い出したことをつらつらと。 基本的に、とある一人の先輩エンジニアからの教えが大きい。 覚えなかった事、まえおき 覚…

あと一ヶ月

今月いっぱい働いて。 来月いっぱい給料シーフして。 7月から自宅警備をがんばる。 そんな輝かしい灰色の未来が私を待ってます。 シーフに転職してから動き出しても間に合う、か…な? 細かいことはこんな所に書きませんが、そんな感じの今日この頃です。

ブログ遍歴

昔を振り返ったついでに。 ブログやらwikiやら、思いつきで乗り換えて古いのを放り投げジャーマンしてきてはや幾歳。 http://blog.koshigoe.jp/ http://wiki.koshigoe.jp/ http://hiki.koshigoe.jp/ http://w.koshigoe.jp/study/ http://d.hatena.ne.jp/kosh…

一年目のノート

今の会社に入社した一年目の頃に使っていた大学ノートが見つかった。1冊30枚の薄いノートで1年分12冊。月1冊のペースで消費していたらしい。 一冊目の頭はこんな事が書かれている。 楽をするためにがんばる 作業時間を計る 情報を共有する 中途採用で入社し…

記憶に残っている技術書(1.2)

エッセイとか技術書って言っていいんかな? Joel Spolsky Joel さんの本も一時期はしかのごとく読んでいた。懐かしい。個室がもらえる会社にあこがれた。 Joel on Software作者: Joel Spolsky,青木靖出版社/メーカー: オーム社発売日: 2005/12メディア: 単行…

記憶に残ってる技術書(1.1)

学校の教科書として使った記憶が強い。面白かったけどちゃんと読めてないから、ちゃんと読もうと思ったまま全然読めてない。 コンピュータの構成と設計 第4版(上) ハードウエアとソフトウエアのインタフェース (Computer Organization and Design: The Har…

記憶に残ってる技術書(1)

特に目的も無く、記憶に残ってる本について書いてみる。他に思い出したらまた書くかも。 オブジェクト指向の本 2007年に購入した『デザインパターンとともに学ぶオブジェクト指向のこころ』は、内容はあまり覚えてないけど自分の中でプチ革命が起きたという…

rubykaigi 2013

完全に失念してた。 http://rubykaigi.org/2013 ぱんぴーな自分は Super EarlyBird(¥20,000)、EarllyBird(¥27,800)、Regular(¥35,000)のどれかなわけですが、Super EarlyBird は 3/28 にとっくに締め切られてたわけです。 EarllyBird も 4/27 期限と間近…

Rails 4でRSpecしたらデータベースがロールバックされなくなった件

急に発症して大分悩んだわけですが、どうやらフィクスチャの teardown 処理のあたりに変化があった模様。 以下、Rails 4 のコードから抜粋。 module ActiveRecord module TestFixtures extend ActiveSupport::Concern def before_setup setup_fixtures super…

ActiveSupport::Inflector::Inflections#acronym が期待通りで無い件

Ruby 2.0.0p0 Rails 4.0.0.beta1 ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'OAuth' end ネームスペースがつくと期待通りの変換をしてくれない模様。 'OAuth'.underscore # => 'oauth' 'oauth'.camelize # => 'OAuth' 'Auth:…

シムシティ

6月にmac版が発売とのこと。 http://www.simcity.com/ja_JP/blog/article/simcity-mac-release-date-jp ちょうど長期バカンスに入るタイミングだし、スーファミ以来のシムシティをやってみようかしらん。 問題は、夏が終わる頃にちゃんと社会復帰が出来るの…

最後の勉強会担当

つつがなく、いつもどおりに、ぐだぐだですよ。 SQLアンチパターンを読みながら閉包テーブルを写経してきた、という話をしました。 https://bitbucket.org/koshigoe/study-closure-table 結果、タスクがひとつ増えそうです。負債を片付けていけと…。

Mac OSX に Spider for MySQL をインストールしようとして挫折した記録

Mac OSX に Spider for MySQL をインストールしてみ様として出来なかった記録。 Perl MySQL::Sandbox Spider for MySQL Perl環境 http://perlbrew.pl/ $ curl -kL http://install.perlbrew.pl | bash $ source "$HOME/perl5/perlbrew/etc/bashrc" $ perlbrew…

db-charmer で sharding (0)

ど頭から躓いたので取り急ぎでメモ。 https://github.com/kovyrin 以下、README のサンプル。 production: blah: adapter: mysql username: blah host: blah.local database: blah foo: adapter: mysql username: foo host: foo.local database: foo 以下、t…

Emacs 離れ

24 にしてからか、Helm を使う様になってからか、無視できないくらいに Emacs が重く感じるので。ひとまず、Sublime Text 3 を使ってみているわけですが、いけそうな気がしつつも微妙なところもちらほらと。 SourceTree.app も良い感じだけど、慣れてる分か …

ActiveSupport で実装されてるメソッドを眺めた part 2

おまけ。 ActiveSupport::Inflector#acronym 略語の定義。 [1] 1.9.3-p327(main)> ActiveSupport::Inflector.inflections do |inflect| [1] 1.9.3-p327(main)* puts 'uri'.camelize [1] 1.9.3-p327(main)* inflect.acronym 'URI' [1] 1.9.3-p327(main)* puts…

ActiveSupport で実装されてるメソッドを眺めた

かなり見落としてる。core_ext ら辺からいくつか。 Range#overlaps? 範囲が重なっているか。 (001): >> (1..3).overlaps?(0..1) => true (002): >> (1..3).overlaps?(1..3) => true (003): >> (1..3).overlaps?(3..4) => true (004): >> (1..3).overlaps?(4.…

SQLアンチパターン

読んだ。SQLアンチパターン作者: Bill Karwin,和田卓人(監訳),和田省二(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 5人 クリック: 636回この商品を含むブログ (13件) を見る自分は O'Reilly の Ebook Store …

Railsアプリの例外処理をRackミドルウェアで

コントローラ内で発生する例外であれば、rescue_from などを利用した例外処理を行える。 一方、データベースサーバに障害が起きた場合などはコントローラの外側で例外が処理され、コントローラの rescue_from で宣言した例外処理は使われない。 今回は、アプ…

開発環境をちょっとだけ整備

年末からちょこちょこと整備しているのでつらつらと。 helm.el https://github.com/emacs-helm anything.el は最早時代遅れらしいので、helm.el に乗り換えてみました。anything.el で凝った事をしていなかった事もあり、特に躓くことも無くすんなりと移行成…

Android エミュレータと格闘中

Intel HAXM SDK Manager からインストール出来るイメージが遅すぎて使える気がしなかったので、Intel のイメージを使うために HAXM をインストール。 http://software.intel.com/en-us/android http://software.intel.com/en-us/articles/intel-hardware-acc…

QUnit + QUnit-TAP + PhantomJS

そろそろ真面目に JavaScript を書くことになりそうなので、テストの準備をし始めたところです。まずは QUnit を使う準備。Mocha が気になりつつ、周囲の経験的に QUnit が有力くさいので。 $ mkdir qunit-sample $ cd qunit-sample $ mkdir test $ mkdir -p…

『めんどうくさいWebセキュリティ』読んだ

ちょっと前に読了。めんどうくさいWebセキュリティ作者: Michal Zalewski,上野宣,新丈径出版社/メーカー: 翔泳社発売日: 2012/06/19メディア: 単行本(ソフトカバー)購入: 8人 クリック: 84回この商品を含むブログ (4件) を見る一般的な行儀作法を身につけ…

Ruby でメソッドのオーバーライドを禁止する話

http://www.rubyist.net/~nobu/t/20051118.html#p01 http://d.hatena.ne.jp/iwadon/20051117/1132236662 http://ruby.11.n6.nabble.com/ruby-dev-37956-proposal-Module-method-adding-td3532363.html 大分昔に書かれたやつを参考に写経。 method_added を活…

MySQL の ALTER TABLE でメモリ使用量が微増していく理由が分からない

MySQL のメモリ消費について理解できてない件。Full Text Parser Plugin Collection の mecab プラグインを使って mecab_normalization を KC に設定していると、ADD FULTEXT with parser mecab した時に数百MB単位で増加していく問題に遭遇したのがきっかけ…

YAPC::Asia Tokyo 2012 9/28

Perl でコードを書くことはありませんが、何かのイベントに参加したいと思ったときに目に付いたのが YAPC::Asia でした。疲れた。席を探すのが嫌というのと、3Fへの行き方がよく分からなくて、ずっとホールの同じ席に座ってました。ぽっつりと。明るい雰囲気…

『プログラマのためのサバイバルマニュアル』読んだ

軽く目を通した程度。プログラマのためのサバイバルマニュアル作者: Josh Carter,長尾高弘出版社/メーカー: オライリージャパン発売日: 2012/08/22メディア: 単行本(ソフトカバー)購入: 2人 クリック: 48回この商品を含むブログ (9件) を見る主に、チーム…

dbmの"HASH: Out of overflow pages. Increase page size"を解決する方法が分からない

OSXでRubyのdbmを使った時に遭遇。 require 'dbm' db = DBM.open('hoge', 0666, DBM::NEWDB) 1000000.times do |n| p n db[n.to_s] = 'a' * 1024 end 41838回目で例外発生。 HASH: Out of overflow pages. Increase page size DBMError: dbm_store failed fr…

Rubyを使って機種依存文字を強引に特定してみる

IconvのIconv::IllegalSequence例外を使って書いてみた。 現実的な入力に対して、どの程度の時間を要するのか分かってないまま実装。

「プログラマのための文字コード技術入門」で勉強中(6)

一通り目を通した。プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ…

「プログラマのための文字コード技術入門」で勉強中(5)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る 電…

「プログラマのための文字コード技術入門」で勉強中(4)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る コ…

「プログラマのための文字コード技術入門」で勉強中(3)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る 文…

「プログラマのための文字コード技術入門」で勉強中(2)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る AS…

「プログラマのための文字コード技術入門」で勉強中(1)

いわゆる「文字コード」について余りにも無知なので、今更ではあるけれどちゃんと勉強しておこうと思い「プログラマのための文字コード技術入門」で入門してみた。プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作…

JavaScriptにも対応したボットをRubyで書く

CapybaraとPoltergeistとPhantomJSを使えば、割と簡単にできそうな感じがする。 https://github.com/jnicklas/capybara https://github.com/jonleighton/poltergeist http://phantomjs.org/ 簡単なJavaScriptを実行した結果のHTMLに対して操作できるという所…

電話番号を電気通信番号指定状況に従って分割してみる

総務省のサイトにある「電気通信番号指定状況」のページを参考に。 http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html 既に誰かが書いている気がしますが、いまいちよく分からずに息抜きがてら自分で書いてみたのが以下。…

重い腰を上げてテストにかかる時間の短縮を試みる

とあるプロジェクトの通しテストについて、MRIとREEで設定を変えて時間を計ってみた。 その後、parallel_tests を試してみた。 .rbenv-vars RUBY_HEAP_MIN_SLOTS=1000000 RUBY_HEAP_SLOTS_INCREMENT=1000000 RUBY_HEAP_SLOTS_GROWTH_FACTOR=1 RUBY_GC_MALLOC…

New Relic がどうやってメトリクスを集めているのか気になったのでちょっと調べてみた

Passenger の場合について簡単に調査。PhusionPassenger.on_event(:starting_worker_process) で、NewRelic::Agent.after_fork を実行している。 NewRelic::Agent.after_fork は、Thread.new してワーカースレッドを作っている。という事で、Passenger のワ…

Homebrew の patches で圧縮ファイルを指定する場合

patch の流れはざっくりと以下の様な感じ。 curl で %03d-homebrew.diff という名前で保存する 圧縮されているか判別して適切な拡張子を付け足す(mv する) 圧縮されている場合は展開する %03d-homebrew.diff という名前のファイルを patch する 圧縮ファイル…

Mechanize で fetch した HTML を任意のウェブブラウザに表示させる簡単な方法を知りたい

Ruby の Mechanize を使って書いたプログラムの途中経過を簡単に目視点検する方法を知りたい。以下は、Mechanize::HTTP::Agent#fetch の後処理として無理矢理実装したもの。HTML をローカルファイルに書き出して、それをウェブブラウザに読み込ませるという…

Mechanize で Cookie を手動でセットする

Mechanize::Cookie.new のパラメータ指定でミスっていたので自戒のメモ。 require 'rubygems' require 'mechanize' require 'logger' agent = Mechanize.new do |agent| agent.log = Logger.new($stdout) end [ 'http://www.google.com', 'http://www.google…

Phusion Passenger Enterprise

https://www.phusionpassenger.com/enterprise とても気になる。英語読めない。 Rolling Restarts Unicorn とかは、既存プロセスと新規プロセスで2倍のメモリが必要な実装になっている。 一方、Phusion Passenger Enterprise では、一つずつ置き換えていく方…

OSX 用のドキュメントブラウザ Dash

App Store を眺めていたら、Dash というドキュメントブラウザがある事を知りました。 http://kapeli.com/dash/ マシンのメモリに大分余裕が出来たこともあり、ダウンロードして使ってみることにしました。なんとなく良さそうな印象ですが、用意されているド…

rubyのYAMLによるシリアライズについて

全く中身を把握していなかった事に気づかされたので、少しだけ調べてみました。以下は Object#to_yaml のソース。 # yaml/rubytypes.rb class Object yaml_as "tag:ruby.yaml.org,2002:object" def to_yaml_style; end def to_yaml_properties; instance_var…

『Mobageを支える技術』を読んだ

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)作者: DeNA出版社/メーカー: 技術評論社発売日: 2012/06/13メディア: 単行本(ソフトカバー)購入: 29人 クリック: 607回この商品を含むブログを見る購入してから大分時間が経ちましたが…

Mechanize(2.5.1) のエンコーディング周りに関するメモ

Mechanize#get などによって取得されたリソースは、Mechanize::Page のインスタンスとして返される。その際の Mechanize::Page の初期化プロセスの中で、取得したリソースの文字エンコーディングを推定している。 エンコーディング候補 以下で得られるエンコ…