My Brain is Open.

思いついたことを適当に列列と

引き継ぎ

そう言っていいのかどうか分からないけど、しばらくの間MongoDBとRuby on Railsで作っていたあるアプリケーション開発のお仕事は、諸事情により中断することになってしまい、僕自身も別の会社で仕事を始めることになっております。
元々の企画自体は引き継ぎをして開発をすることになった大手がいるようで、そちらへ行っていくつかおはなしをしてきました。

その仕事自体は引き継いだものの、このブログ上で色々書いたような経験や仕事の仕方の試行錯誤なんかは自分の中でとても良いものだったように思います。
これからもこのブログ自体でなにか発信出来ればと思いますし、MongoDBやRuby on Railsも個人の開発として続けていこうとは思っています。

以上、なんかすっきりした気持ちになったので書いてみました。

Carbon Emacs のカラーテーマ

Carbon Emacsにはcolor-theme.el が最初から入っているため、以下のコードを ~/.emacs.el などに書けば利用可能になる。

;; Color-Theme loading
(require 'color-theme)
(color-theme-initialize)
;; Select theme
(color-theme-clarity)

そんなわけで、デフォルトで使えるテーマ一覧を取り出してみた。
スクリーンショットがないと選びようがないけどね。

$ grep defun /Applications/Emacs.app/Contents/Resources/site-lisp/color-theme/themes/color-theme-library.el | cut -f 2 -d " "
color-theme-gnome
color-theme-blue-gnus
color-theme-dark-gnus
color-theme-blue-eshell
color-theme-salmon-font-lock
color-theme-dark-font-lock
color-theme-dark-info
color-theme-gnome2
color-theme-simple-1
color-theme-jonadabian
color-theme-ryerson
color-theme-wheat
color-theme-standard
color-theme-fischmeister
color-theme-sitaramv-solaris
color-theme-sitaramv-nt
color-theme-billw
color-theme-retro-green
color-theme-retro-orange
color-theme-subtle-hacker
color-theme-pok-wog
color-theme-pok-wob
color-theme-blue-sea
color-theme-rotor
color-theme-pierson
color-theme-xemacs
color-theme-jsc-light
color-theme-jsc-dark
color-theme-greiner
color-theme-jb-simple
color-theme-beige-diff
color-theme-standard-ediff
color-theme-beige-eshell
color-theme-goldenrod
color-theme-ramangalahy
color-theme-raspopovic
color-theme-taylor
color-theme-marquardt
color-theme-parus
color-theme-high-contrast
color-theme-infodoc
color-theme-classic
color-theme-scintilla
color-theme-gtk-ide
color-theme-midnight
color-theme-jedit-grey
color-theme-snow
color-theme-montz
color-theme-aalto-light
color-theme-aalto-dark
color-theme-blippblopp
color-theme-hober
color-theme-bharadwaj
color-theme-oswald
color-theme-salmon-diff
color-theme-robin-hood
color-theme-snowish
color-theme-dark-laptop
color-theme-taming-mr-arneson
color-theme-digital-ofs1
color-theme-mistyday
color-theme-marine
color-theme-blue-erc
color-theme-dark-erc
color-theme-subtle-blue
color-theme-dark-blue
color-theme-jonadabian-slate
color-theme-gray1
color-theme-word-perfect
color-theme-emacs-21
color-theme-jsc-light2
color-theme-ld-dark
color-theme-deep-blue
color-theme-kingsajz
color-theme-comidia
color-theme-katester
color-theme-arjen
color-theme-tty-dark
color-theme-aliceblue
color-theme-black-on-gray
color-theme-dark-blue2
color-theme-blue-mood
color-theme-euphoria
color-theme-resolve
color-theme-xp
color-theme-gray30
color-theme-dark-green
color-theme-whateveryouwant
color-theme-bharadwaj-slate
color-theme-lethe
color-theme-shaman
color-theme-emacs-nw
color-theme-late-night
color-theme-clarity
color-theme-andreas
color-theme-charcoal-black
color-theme-vim-colors
color-theme-calm-forest
color-theme-lawrence
color-theme-matrix
color-theme-feng-shui
color-theme-renegade

メソッド定義のカラクリ

Twitter APIのラッパーである"Rubytter"を使おうと思ってドキュメントを漁ってたんですが、
RubyGems.orgからリンクされているこちらのドキュメントにメソッドが足りない事に気づきました。
http://rubydoc.info/gems/rubytter/1.4.2/frames

じゃあ、ソース見るしかないね、と思って見に行ったら、なかなか面白い実装法。
https://github.com/jugyo/rubytter/blob/master/lib/rubytter.rb

  1. Rubyメソッド、TwitterAPIのパス、HTTPメソッドの3要素を組にして、並べた配列を定義する。
  2. Twitter APIのうち変数として格納する部分は "%s" (printfフォーマットみたいな?)で埋めておく。
  3. def - end のメソッド定義を文字列として作成し、evalで評価することでメソッドが定義される。
  4. %sの有無でパラメータが必要かどうか決定。

メソッドの一覧が見通せるからうまいなぁ、と思ったけど、
ドキュメントに残らないとか入力チェックが実装できないという意味ではちょっと難かも。

とても参考にはなりました。

pTeX on MacPorts

個人的に、大学1年の頃からTeX組版をやっていたため、未だに履歴書とかTeXで作成・保存・更新したりしています。

しかしこれまでTeXを触ってきた環境はWindows(またはLinux)であったため、
Macでの組版環境のインストールに関して今やっと調べているところです。

D&D pTeX などあるようですが、せっかくXcode+MacPortsもいれているので、portでいれてみることにしました。
参考にしているのは、こちら。

http://www.churadesign.com/2008/12/10/osx%E3%81%ABlatex%E7%92%B0%E5%A2%83emacsyatexlatextexshop%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%A6pdf%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%99%E3%82%8B

$ sudo port install pTeX +utf8 +motif +hiragino +otf +macosx

いれてみてわかったんですが、ちゃんと日本語新ドキュメントクラスのjsarticle.clsとか、プレゼン作成のbeamer.clsとか含まれてる。

便利だなぁ、これ。

Mongoid 2.0.0.rc.4への更新で早速ハマる

Mongoid の正式版リリースに向けて、rc.4まで出ていたのでインストールしてみた。
その他、Rails3.0.3 もあったりしたので、Gemfileに以下を記述して bundle update 実行。

gem 'rails', '3.0.3'
gem 'mongoid', '2.0.0.rc.4'

問題なく動くんだけど、一部association(参照)の部分でValidationError。

# app/models/parent.rb
references_one :partner

みたいな参照関係があると、こちらに関して自動的にValidationを行うらしい。
参考 : http://mongoid.org/docs/upgrading/
一応、ちゃんと参照してて parent.partner でオブジェクトは得られるのに、ValidationErrorが返ってくる謎仕様。
ひとまず上記ドキュメントにある :validate => false を指定して対応した。

うーん。どうなんだ、これ。

需要ある?

総務省が以下で公開している情報があるのですが、WordやPDFしかないのでデータとして探しづらい。
http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/shigai_list.html

そこで、自前でCSVに変換してみる。

といっても、ベースはPDFの方からテキスト部分をコピペしてスクリプトに乗っけて、
後は改行マッチの正規表現で分割していくだけ。

# -*- coding: utf-8 -*-
require "pp"

pp ary = DATA.read.scan(/([\d-]+) ([^E]*) (\d+) ([CDE]+)/m).map { |data|
  data[1] = data[1].delete("\n")
  data
}
File.open("shigai_list.csv", "w") do |f|
  ary.each { |d| f.puts d.join(',') }
end

__END__
1 北海道江別市、札幌市、北広島市、空知郡南幌町 11 CDE
2 北海道恵庭市、千歳市 123 DE
3 北海道夕張市(富野を除く。) 123 DE

誰得ですけどね。

Fakerモジュールが国際化対応

掲題のとおり、Fakerモジュールが0.9.0からI18Nに対応するようになったようですが、
default = "ja" になってたりすると、日本語の対応する文字列がないよ!って言われてテストが通らなくなっちゃう。

というわけで、以下の指定を$RAILS_ROOT/Gemfileにしてアップデート回避。

group :test do
  gem 'faker', '0.3.1'
end

つか、しばらく更新がなくて枯れてると思ったら、0.3.1 => 0.9.0 っていきなりですな。