Microsoft Arc Keyboard英語版を手に入れましたが、Google日本語入力でちょっと苦戦。
US配列として認識させる
下記の通りでOK。
Windows 7 で英語キーボードを使って日本語を入力する - バイナリアンを目指して
Alt + Spaceで入力切替
下記の素晴らしいアプリで解決。
今までMacと行ったり来たりする時に配列違いでちょいウザだったんですがこれでスッキリしました。
Microsoft Arc Keyboard英語版を手に入れましたが、Google日本語入力でちょっと苦戦。
下記の通りでOK。
Windows 7 で英語キーボードを使って日本語を入力する - バイナリアンを目指して
下記の素晴らしいアプリで解決。
今までMacと行ったり来たりする時に配列違いでちょいウザだったんですがこれでスッキリしました。
家のWindows PC用に「無線でUS配列のテンキーの無いキーボード」が欲しいと思ったんですが、これが意外と無い。
結論から言うとMicrosoft Arc KeyboardをAmazon.comから買った。
Amazon.comでしか買えないので個人輸入・転送サービスのスピアネットという転送サービスを使った。
転送サービスとは、要はアメリカ国内どっかの住所が割り当てられて、そこを郵送先として普通にAmazon.comで物を買う。そうすると転送サービスからメールが来るので日本の住所に手数料を払って更に郵送してもらうというもの。
上記のサイトでは手数料は$9ぐらい。サービスの使い方は相当にわかり辛いし、サイトは怪しいので一般の方にはお勧めできませんが、一回買ってみればやり方がわかるので今後もちょくちょく使ってみるつもりです。
20%ぐらい「買ったものが届かず、金だけ取られても仕方ないか」という気持ちで使えばなかなか便利だと思います。
$ rails c
>> Story.last.previous
=> #<Story id: 1, title: "パンドラ(禁后)", body: "私の故郷に伝わっていた「禁后」というものにまつわる話です。\nどう読むのかは最後までわかりませんでしたが...", view: 0, user_id: 1, created_at: "2011-11-25 08:48:33", updated_at: "2011-11-25 08:48:33", comments_count: 0, scares_count: 0>
バグ報告からふとActiveRecordで使えるpreviousメソッドってどこからきてるんだろう?と思ってgemsをgrepしてみるも見当たらず。
┐(´ー`)┌「これだからメタプログラミングってやつは・・・」.
なんですと!よし、場所を探り当ててやる!
>> Story.last.method(:previous).source_location
=> ["/Users/komagata/code/kowabana-jp/app/models/story.rb", 38]
( ゚д゚)
(つд⊂)ゴシゴシ
# app/models/story.rb:
class Story < ActiveRecord::Base
def previous
Story.where('id < ?', id).order('id').limit(1).last
end
end
(((((((( ;゚Д゚)))))))
自分で普通にmodelに定義してた。
因みに複数人開発で他人が実装したとかではなく、紛れも無く俺が実装したメソッドである。おまけにテストも書いてある。
何故このような自体が発生したのか。それはメソッド名が自然過ぎたか、俺がアルツハイマーか、もしくはその両方である。
Lokkaはまだgemになってません。(gem branch開発者絶賛募集中!)
なので最新版にアップデートするにはlokkaのリポジトリからpullしてこなきゃいけない。(一応新しいバージョンリリース時にtag打ってるのでmasterよりはtagからの方が安全かも?)
僕のこのブログもdocs-komagata-orgというリポジトリ名でgithub, herokuにアップしてます。そういう場合はlokkaというremoteリポジトリ名で本家を追加しておくと楽です。
~/code/docs-komagata-org[master]% cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = git@github.com:komagata/docs-komagata-org.git
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "lokka"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:komagata/lokka.git
[remote "heroku"]
url = git@heroku.com:docs-komagata-org.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[branch "master"]
remote = origin
merge = refs/heads/master
こんな感じ。最新版に追従したいなという時にgit pull lokka master
すると追いつけるし、自分のテーマいじってただけのハズがいつの間にか本体いじってた時は本体にpushできる。herokuにアップしたい場合はgit push heroku master
。
最新版にしたらいきなり動かないという場合は、DBスキーマに変更があった場合が多いので、下記をすると動くかもしれません。
$ bundle exec rake db:migrate
日本の祝日が分かるgem、holiday_jp 0.3.1をリリースしました。
単純なgemなんですが、何故か@pwimさんが高速化してくれたり、@kakutaniさんがリファクタリングしてくれたりで、gemを介して遊んでるみたいな感じです。
今回はjewelerオワコンってことでbundlerにしたり、travis-ciしたり、rubygems-test対応したりしました。
僕も他のgemで新しいツールを使う前の実験台として使ったりしています。:-)
rubygems-testって面白いですね。僕はperl使ってた時に、「cpanの自動テストうっっっz」とか思ってましたが、良い物ですね。すいません。
特にrubygems-testをユーザーがインストールをしてるとプラットフォーム毎にテストが通ったかどうかを自動でhttp://test.rubygems.org/にアップしてくれるのがイカス。
holiday_jpに幸あれ、rubygems-testに幸あれ。
Railsアプリで画像添付メール経由で画像を受け取りたい。(ガラケーとか)
/etc/aliases:
foo: "| cat $1 > /tmp/foo"
これだとファイルのownerがnobodyとかになっちゃうので.forwardを使う。
/home/unk/.forward:
"| cat $1 > /tmp/foo"
Railsでメールを受け取りたい。railsをCLIから呼び出すにはrails runnerを使う。しかし、railsコマンドはRAILS_ROOT外ではrails new用の動きをするので困る。
しかし、その為にあるのかも知れないscript/rails
を使えばOK。
rvm経由で呼び出すと相当長くなる。
"| BUNDLE_GEMFILE=/var/www/foo/current/Gemfile /home/unk/.rvm/bin/rvm ruby-1.9.2p290@foo exec bundle exec /var/www/foo/current/script/rails runner 'PictureMailer.receive(STDIN.read)' -e production"
しかしまだ画像ファイルが600で作成されるという問題が残る。下記の様にchmodするようにしてもいいけど、umaskを変更する方がいいかも。
mod_passenger利用時の注意点 - komagata
"| umask 0022; BUNDLE_GEMFILE=/var/www/foo/current/Gemfile /home/unk/.rvm/bin/rvm ruby-1.9.2p290@foo exec bundle exec /var/www/foo/current/script/rails runner 'PictureMailer.receive(STDIN.read)' -e production"
umaskは子プロセスに引き継がれるのでPaperclip経由で出来るファイルもこれで644になる。
私「会社の経理業務で源泉徴収とやらで半年に一度税務署に行って金を払わないといけないんだ。面倒だ。」
O氏「それ本当に必要なの?フィッシング詐欺にあってるんじゃないの?リアルの。」
私「いやでも、渋谷区税務署のおばちゃんが、こんなちっちゃい紙くれるし・・・えぇ!?あれ、あのおばちゃんが勝手に紙作って払った金はポケットに・・・?」
O氏「そうそう。そもそもそれって何に金払ってるの?何税?」
私「知らない。よくわからないけど言われるがままに払ってる。所得税?」
O氏「げんせんちょうしゅうって何?」
私「源の泉から徴収だから動詞だな。税金の名前じゃないな。所得税って何?所得に税金がかかるってこと?いや、税って何?まてよ・・・」
私「国がサービスを提供する代わりに国民がお金を払う。それが税か。サービス要らないからお金払いませんって言ったら、北斗の拳みたいな世界になるってこと?」
O氏「え、そこから? そうでしょ。個人でやるより集団でやった方が効率的で強いからでしょ。」
私「そっかOK。所得税は何か収入を得た時にそこから国に金を取られるのか。」
O氏「法人税ってのもあるじゃん?」
私「そうだね。法人税って何?法人は人じゃない会社を法的に人とみなすってことでしょ?なんで個人からも金取ってるのに集団からも取るの?あ、だから法的に集団を人にするのか。」
私「会社はcompanyでしょ?大航海時代に一人の資金で船を出すのは余りにリスクが高いので集団で出し合ってリスクと利益を分配するという・・・」
O氏「そうそう」
私「何でcompanyから金取るの?船が他国に襲われた時、国が守ってくれるとか?」
O氏「わかんない。でも取られるよね。問題はそのおばちゃんに払ってるのは何なのかってことだ。年金とか住民税もあるじゃん?」
私「そうだね。年金と住民税はうちは個人で払ってるから違うな。」
O氏「ってことは・・・」
私・O氏「所得税!!??」
私「所得税だったぁ〜www あ〜あのおばちゃんに半年毎に払ってるの所得税だったのか〜〜〜」
O氏「よかったじゃん。フィッシング詐欺じゃなくて。」
私「良かったァ〜、すいません、ハイボールください!」
# hello.rb:
require 'rubygems'
require 'sinatra/base'
class Hello < Sinatra::Base
get '/' do
'hello'
end
end
Hello.run! if __FILE__ == $0
$ ruby hello.rb
Sinatra::Baseと違ってSinatra::Applicationは便利な初期化をかなり色々やってくれるので1ファイルで書く時はやっぱり普通のがオススメ。