| @料理/食事

すき焼き

ばあちゃんからもらった上等の牛肉があったのでカセットコンロを買ってきてすき焼きした。鍋がないので鉄のフライパンでやったけどちゃんと文明開化の味がした。

すき焼き、最初に長ネギを斜めに切ったやつを焼いて香りづけしてから肉を投入して軽く焼き、酒、砂糖、醤油を入れてから白菜とか春菊とかを投入したら幸福が実現するという知見が得られた。

| @技術/プログラミング

九州新幹線

関わっているサイトの Rails のバージョンが 3.2.20 から 4.1.8 に上がった。自分は割と傍観していて他の人が主にバージョンアップしてたんだけど、いくつかはまりポイントがあって自分も Pull Request 送ったりしたのでやったことを書いときます。

1. session に注意

Rails 4 から Flash メッセージ(ログインしましたとか)を格納する session のオブジェクトが普通の Hash になってる。 Rails 3 ではこれは FlashHash とかいうやつ。

Rails 3 から Rails 4 へのアップグレードで一旦 Rails 4 を出してやっぱりやめて Rails 3 に戻したりとか、ロードバランサーに Rails 3 と Rails 4 で動くサーバーを混ぜてリクエスト捌いたりするとまずいことになる。

Rails 4 のサーバーで session 出来た人が次にリクエストしたときに Rails 3 に当たるとログイン後とかに session に残っているメッセージを消そうとする処理とかで NoMethodError が発生して落ちてしまう。しかもたちが悪いことに Rack 層で死んでしまったりするから皆さんよく使ってると思われる ExceptionNotification とかで気づくことが出来ない。これはつらい。

対処法としては Hash クラスをオープンしてモンキーパッチするというのがある。こういうの。

↑のだと #alert とか #notice が呼ばれたときにエラーになるので自分は以下のようにした。

# NOTE Rails 4 と Rails 3 を混ぜて使うと Hash#sweep が見つからなくてエラーに
# なるようなのでモンキーパッチします。
# 参照: http://jasonneylon.wordpress.com/2014/08/27/rails-4-flashhash-upgrade-gotcha/

class Hash
  def now
    Rails.logger.warn "Stubbing now during upgrade"
    {}
  end

  def keep
    # stub keep for upgrade purposes
    Rails.logger.warn "Stubbing keep during upgrade"
  end

  def sweep
    # stub sweep for upgrade purposes
    Rails.logger.warn "Stubbing sweep during upgrade"
  end

  def alert
    Rails.logger.warn "Stubbing alert during upgrade"
    self[:alert]
  end

  def notice
    Rails.logger.warn "Stubbing notice during upgrade"
    self[:notice]
  end
end

ただこれもパーフェクトではなくて、何もしないように上書きしているだけなのでログイン後のメッセージとか削除後のメッセージが消せなくなったりする。それでも 500 エラーになるよりかはましなのでどうしても Rails 3 と Rails 4 を混ぜて投入したいみたいときなんかは有効。

2. 絵文字に注意

Rails 3 の頃は ActiveRecord が絵文字を DB に保存することが基本的になかった。ユーザーが POST してきたフォームの中に絵文字が含まれてたら絵文字のところでテキストをぶった切って DB に保存するような挙動だった。しかし Rails 4 からは ActiveRecord は絵文字を素通りさせるようになってしまったので困ったことになる。

絵文字を DB に保存するためには、 MySQL の場合は DB のテキストエンコーディングを utf8mb4 というやつにしてないといけない。ただの utf8 だと保存時に Mysql2::Error: Incorrect string value というエラーが出て DB に保存できない。emojimmy のような gem を使えば utf8mb4 でない DB でも使えるけど、 stores_emoji_characters :column_name を忘れずにモデルに定義しないといけない。たとえば購入時に購入した製品のスナップショットを注文テーブルに取るような DB 設計だと、製品テーブルのカラムは stores_emoji_characters してたとしても注文テーブルのカラムを stores_emoji_characters し忘れていて死亡、というような悲劇が起こり得る。

いまはスマートフォンの時代で、ユーザーが入力してくるフィールドには必ず絵文字が含まれると思っておいた方がいい。スマートフォンをメインで使ってる人たちは開発者が想定しないようなフィールド(名前の敬称とか)に平気で絵文字を使ってくる。下手すりゃ住所や名前にも絵文字を入れて送ってくるかも知れない。アスキー文字しか受け付けないようなフィールドは JavaScript やサーバーサイドでバリデーション行ってると思うけど、マルチバイト文字列を受け付けるフィールドの場合はせいぜい長さくらいしかチェックしてないと思う。チェックを入れて絵文字を弾くことも可能だけど、スマートフォンの時代の流れに反しているしユーザーを失うことになりそう。これから新規でサービスを作ってデータベースに MySQL を使う場合はエンコーディングは utf8mb4 にしておいた方がいい。

他にも script/rails が bin/rails に変わってること忘れてて rails runner なバッチ処理が動いてなかったとか、 paranoia.gem の Rails 4 対応バージョンで物理削除のときに呼び出すメソッド名が変わっててはまったとかいろいろあったけど大きなところは上の session と絵文字だった。開発環境で使ってるときには気がつかず本番に出すまで気がつきにくいという意味で非常にやっかいな現象だと思う。

これから Rails 4 に上げる皆さんは頑張ってください。応援しています。

| @ブログ

セルフホストの個人のウェブログでも Twitter カード出てるサイトあることに気がついて個人でもできるぽかったのでやってみた。メジャーサイト感出る。

Twitter Card

Lokka 用のプラグイン作っといた。

| @Mac/iPhone

MacBook の内蔵キーボードを有効にしたり無効にしたりするやつ、よく使うけど毎回 Terminal でコマンドうつの面倒くさいので Alfred の Workflow にした。

Alfred の Workflow でシェルコマンド実行できるけど sudo しないといけないのは実行できない。調べたら AppleScript 経由だと実行できることが分かった。

こんな感じ

do script “実行したいシェルスクリプト” with administrator privileges

MacBook の内蔵キーボードの有効無効の切り替えは以下のような感じになる。

on alfred_script(q)
  set script_to_run to "sudo kext" & q & " /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext"
  do shell script script_to_run with administrator privileges
end alfred_script

これ打つと認証プロンプト出るのでそこでパスワード入力すればよい。便利。

追記

workflow にして公開しといたので使ってみたい人いたら使ってください。

| @雑談

2014年、つらいこといろいろあったけど、肉体的に一番つらかったのは痔ろうの再発だった。精神的なつらみもつらいといえばつらいけど、肉体的なつらみは肌身にしみて感覚となって残るのでなかなか記憶が薄れない。

2012年に痔ろうになった(そのときの様子)。一旦治ったと思ってたんだけど完治してなくて、2013年の8月に病院に行ったら治ってないからもういっぺん手術した方がいいと言われた。仕事が忙しい&病院の予約がいっぱいでなかなか手術しに行けず、年が明けた2014年の1月に手術しに行った。

痔ろうの治療といえばケツの穴と痔ろうの穴にゴム紐を通すシートン法が定石なんだけど、再手術ではそれはやらずに済んだ。しかし過去の手術痕があるところを切開して排膿するという痛いやつで、また生理用ナプキンをつけて暮らす日々が始まった。

ちょうどその頃、息子殿を託児所に預けることがあったんだけど、見事にウイルスかなんかをもらってきて嘔吐・発熱した。小さい子どもはしゃべれないので何の前触れもなくいきなりゲロ吐いたりするから、もろにゲロを全身で受け止めたりしてた。そしたら当然のごとく自分と嫁さんにもうつった。

親二人への感染は時差があった。子どもは治ってけろっとしてるのに俺と嫁さんだけ38℃以上の熱が出て激しい下痢に見舞われた。

がたがた震えながら車を運転して夜中に市の急患センターに行き点滴をしてもらった。点滴してる間もお腹は痛いのでトイレに行きたくなる。点滴台を抱えて急患センターのベッドとトイレを行き来するような状態だった。自分は具合悪くないのに夜中に急患センターにつれてこられ両親がそろって注射針刺されて点滴されてるの見て子どもはパニック状態に陥って泣く。さらにケツは切開したままの状態で膿や血が出続けている。自宅では用を足した後はポータブルウォシュレット的なやつでケツを洗ってたんだけど急患センターのトイレはウォシュレットなくて泣く泣くトイレットペーパーでおしりを拭いてた。これはやばいのではと思っていたけど案の定やばかった。

胃腸炎が治り出社した日、会社から帰ってきたらケツから血が止まらないことに気がついた。生理用ナプキンでは吸収し切れてなくて、パンツが血まみれになっていた。トイレに入ってトイレットペーパー当てると一瞬で真っ赤になった。これはやばいと思って夜だったけど病院の院長の携帯に電話して事情を説明した。急遽見てもらえることになったので半ケツを浮かせた状態で車に乗って病院に行った。

パンツとズボンは血まみれで穿いて帰れなかったので病院の手術着をもらってノーパン状態で帰宅した。車なかったら異様な格好で地下鉄に乗車する羽目になるところだった。

こうして思い返しても急患センターに行ったときやケツから血が止まらなかったときは阿鼻叫喚の地獄絵図状態だったと思う。自分的にはかなりつらいのに世間的には大して重傷じゃないというのもつらい。

痔ろう、最近はオモコロとかデイリーポータルゼットとかで馬鹿がかかる愉快な病気みたいな扱いで紹介されてるけどマジでなるとつらいので世の中の人はもっと痔ろうへの理解を深めるべきだと思う。

電車ががらがらに空いてるのに座らず立ってる人を見かけたら好奇の目で見たりせず事情を斟酌してやって下さい。

僕からは以上です。


この記事は今年つらかった事 Advent Calendar 2014 13 日目の記事でした。来週は tktym2t さんです。

| @料理/食事

この記事はTKG Advent Calendar 2014 11 日目の記事です。昨日は you_sakai さんでした。


たまごかけご飯、子どもの頃から好きだったけど、家族の中で大人は母親しか食べなかった。ばあちゃんは顔をしかめてた。

たまごかけご飯

ばあちゃんが顔をしかめるので、たまごかけご飯ははしたない食べ方なのかと思ってたけど、むかしはたまご高級品だったみたいだし、たまごかけご飯にして食べる習慣があるのはむしろ金持ちな気がする、と最近思いはじめた。

たまごかけご飯

実際、母親の実家は金持ちで、母が嫁いだ先の我が家は裕福ではなかったっぽい。ばあちゃんが顔をしかめてたのははしたないからではなくたまごをそういう風にぞんざいな感じで食べることへの違和感があったからかもしれない。


他の人のたまごかけご飯アドベントカレンダー見てたらみんな白米少なめだけど自分は馬鹿だからいっぱいご飯盛ってしまう。たまごが足りなくて味が薄くなり醤油をいっぱいかけてしまって結局醤油かけご飯みたいになってしまう。

たまごかけご飯

醤油は大分県日田の原次郎左右衛門の「あやめ」という銘柄を使っている。九州風の甘い醤油だけど減塩で上品な味だと思う。おいしい。

はやく少なめのご飯でたまごかけご飯できるようになりたい。


この記事はTKG Advent Calendar 2014 11 日目の記事でした。明日はhalfliteさんです。

| @散財

5月末に家を建てて半年ほど住んで得られた知見を共有します。

2014-05 清貧会館 / Holy poverty Insutitute May, 2014

家を建てた理由

子どもが生まれた

最初は賃貸で引っ越そうとしてた

  • 子育てには車が必要だから
    • 西松屋(車でしか行けないような所にしかない)に行きたかった
    • おむつやミルク缶やベビーカーは車じゃないと運べない
  • 駐車場の安い郊外に引っ越して車買おうとしてた(当時住んでた所は駐車場代高かった)
    • 結局引越費用高くてやめた(40万くらいした)

中古マンションでも探すことにした

  • 中古マンション探すけど良いのは高かった
    中古なのに新築分譲時より高いのとかある

それなら新築マンションでよいのでは、と思った

  • しかし新築マンションは業者が好きになれなかった
    • 偉そう
    • 息がくさい
    • すぐローンの審査申し込ませようとする
    • 考える時間を与えずハンコ押させようとする
  • 買いたいタイミングでよい物件が出回ってなかった
  • マンションは管理費や修繕積立金、駐車場代が重荷になりそうだった
    ローン完済しているのに駐車場代と修繕積立金と管理費合計で毎月4万とか払うの嫌だった
  • 子どもの実家がマンションになるのが想像できなかった
    自分が田舎育ちのため

中古の一戸建て考えるようになった

  • 中古の一戸建てのリノベーションを建築家に相談したら土地買って家建てるのとかかるお金あんまり変わらないと言われた
    土地買って家を新築することにした

土地を買う際に得られた知見

土地の申し込みは同時に何人かが申し込んでいる可能性がある

  • 早くローンの申し込み・審査を済ませないと他の人に買われてしまう可能性ある

基本的に不動産屋は信用できない

  • 腹黒い

よい土地を見つけたら建物を含めた総予算を出さないといけない

  • 土地を決めてからゆっくりプランを練るとかできない
    • 土地を買うときに家全体の総予算を決めていないといけない
      土地を買うタイミングで建設会社も決めてだいたいのプランを固めておく必要がある
    • いつか家を建てたいと思っている人は、「まだ土地もないし家のこと調べるにはまだ早い」などと考えずに具体的な予定はなくても建築雑誌とか本とか読んどいた方がいい
      自分は家を建ててから中村好文さんの本を何冊か読んでとても後悔した。

土地の選び方はとても重要

  • 土地は 土地を買ったことがある人に相談 してから買うのがよい
  • どこのメーカーで建てるかよりもどこにどんな土地を買うかが重要
    • 建物は住んでるうちに価値が減っていく
    • 土地は基本的に価値が落ちない 不動産資産 = 土地の値段 (家は無価値と考えた方がよい)

よい土地の条件

  • 土地のかたち
    • 正方形か長方形がよい
    • 三角や台形はだめ
  • 土地が面している道路の道幅
    • 広い道路に面していると土地が狭くても車出し入れしやすい。道幅 6m 以上の道路(車がすれ違える)がよい
    • 道幅が広いと日当たりがよくなる
  • 道路が公道に面しているか
    • 私道にしか面していない土地は家が建てられないことがある
  • 道路に何メートル接しているか
    • 長く面しているほどよい
  • 道路と土地に段差がないか
    • 隣地よりも土地が低いと日当たりが悪くなる
  • 日当たり、方角
    • 東南角地が一番日当たりよい

中心街まで何分とか駅から徒歩何分とかばかりに目が行きがちだけど、車の出し入れのしやすさが土地の価値になる。土地のかたちがいびつだったり、道路と変な角度で接していたり、接している長さが短かったり、接している道路の道幅が狭かったりすると車の出し入れがしにくい。また面している道路は公道であることが望ましい。接している道路が 私道や持ち分共有の私道だと権利関係が複雑で揉める ことがある(揉めた)。

住宅ローンを組む際に得られた知見

地銀か都銀かネット銀行か

  • 地銀の方が申し込みや審査は早い(対面でやりとり)
  • 金利はネット銀行の方が安い(対面でやりとりできないから多分時間はかかる)
  • 都銀は地銀より金利安いけどネット銀行よりは高く、審査は地銀の方が早い

変動金利か固定金利か

  • 繰り上げ返済をじゃんじゃんするつもりの人は変動金利がよい
  • 基本的に固定金利(フラット35)は変動で組めない(銀行の審査だめだった)人向け
  • バブルのときでも金利は4%くらいだったらしいので金利が10%とかになることは(日本国債が暴落しない限り)ない
  • 変動と固定ミックスでローン組める銀行もある

持ち金全部突っ込まない

  • 住宅ローン金利は異常に安い金利で金を借りられる制度なので、手持ちの資金を極限までつぎ込むより少し多めに借りて手持ち資金を残すのが賢い

上場企業に勤めてるときに組むと審査通りやすい

  • 前勤めてたブラック企業だと収入はちゃんとあったとしても審査通らなかったかもしれない(会社が無名だから)
  • 上場企業だと金利優遇とかがあったりする
    • 東証一部上場の会社だったらさらにもっと金利優遇されたりするのかもしれない

家を建てる際に得られた知見

  • 総予算から土地の値段と引っ越し代や家具代を引いた分しか家には当てられない
  • 家の建設費と別に外構工事費がかかる
    • 家に残り予算全額つぎ込むと工事現場みたいなどろどろの土地に暮らさないといけなくなる
  • 金に余裕があるなら建築家に設計してもらうといい
    • 建築家はいろいろ考えてる
    • 例えば二階のベランダと床に段差を作らないようにするのは木造建築では難しい。建築家だと何とかしてそういうのを実現してくれる。
    • 建築家入らないと住設メーカー(リクシルとか)のカタログハウスみたいになってしまって味気ない
    • 延べ床面積はそんなに広くないけど暮らしやすい間取りみたいなのを考えてくれる
    • 依頼主がよく分かってないニーズを、依頼主の家族構成、趣味、仕事内容をヒアリングすることで引き出してくれる
    • 建築家に頼まず地場の工務店に自分たちが注文したとおりの家を建ててもらったけど何となくしっくりこない
    • 無駄に空きスペースがある
    • 要望通りになってはいるが所詮素人の要望なのでプロに考えてもらった方が良かったのかもしれない

とは言え最近の家はよい

  • 断熱性高い
    • 床暖房もソーラー温熱システムもついてないが居間のエアコン稼働すると家中暖かくなる
    • 24時間換気システム(最近の家はつけないといけないらしい)のおかげで家中の空気が循環していて一部屋だけ寒いとかがない
    • 最近の家はペアガラスがデフォルトなので窓際にいても寒くない
    • 前の賃貸マンションは窓際が寒くて死にそうだった
  • 台所が広いのがよい
    • 料理する気になる
    • でかい冷蔵庫が買える

家を建てて後悔している・心配な点

2階建ては狭い

  • 延べ床面積 100m2 とかあってもマンションの 100m2 とは違う
    • 階段部分の面積も延べ床面積に含まれる
    • ワンフロアで 100m2 あるのと 50m2 が上下に連なっているのでは感覚的な広さが全然違う

手放しづらそう

  • 給料減って住宅ローン払えなくなったときすぐ売れないかもしれない
    • 中古の木造建築はなかなか売れない
    • マンションは比較的すぐ売れる
  • 売っても高く売れないかもしれない
    • 木造建築を売るときは無価値と考える必要がある
    • マンションはそこそこ古くても場所さえよければよい値段で売れる

台風や地震や空き巣が心配

  • マンションなら台風や地震には勝てそうだし、オートロックなので空き巣も一戸建てほどは心配しなくてよさそう。一戸建ては帰省や旅行をする度心配になる
  • 修繕積立金を徴収されない代わりに何かあったら自分で捻出しないといけない

固定資産税高い

  • 想定外だった

町内会

  • 町内会費高い
    町内会費高すぎて嫁さんは町内会脱退するとか言ってる(できるのか)
  • 町内会の清掃活動とかに出ないといけない
    めんどい

家を建てて(郊外に引っ越して)よかった点

  • アホみたいに高い駐車場代払わなくてよい
    • 立体駐車場じゃなくなったので好きなときに車出せる
  • 庭があるので夏はバーベキュー出来る
    • スーパーで買った激安ブラジル産鶏肉も炭火で焼くと涙が出るくらいうまい。生きててよかったと思える。
  • 郊外に引っ越したので驚くほど静か
    • 地域の祭りとかあったりして和む
    • 近所付き合い面倒だけど野菜もらえたりもして便利
    • 常にどぶっぽい臭いしてた都会の空気吸わなくてよくなった

いつかはかっこいい家を建てたいと思ってる人には上にも書いたけど建築家の中村好文さんの本をおすすめします。