ほぼ雑記的メモ
引越す前から知ってはたけど、まあなんとかなるべぇと思ってたがこれが予想外に一歳児持ちにはしんどいんですよね。 特に極悪なのが都営浅草線側から乗って秋葉原方面。階段を登った後に一度ちょっと降り、また登るという状況。 駅についてからホームまでが長い長い。
こりゃなんとかならないものかと思案したところ思いつきました。
両国駅まで歩けばいいんじゃね?と。
両国駅はエレベータ完備。しかもエレベータは国技館側ということでメッチャ近いんですよね。 実際歩いてみたら10分ほどしかかからなかったし。 これは暫くお世話になりそうな予感。
ちなみに浅草橋へのエレベータ設置計画は始まったようで、近いうちに出来るのではないかと思われます。 西口側だから我が家から遠いけどね。
JR東日本、浅草橋駅のバリアフリー化計画を発表…西口にエレベーター整備 http://response.jp/article/2013/06/07/199572.html
人生9度目(親の引っ越しもいれたら12回目)の引っ越しが無事引越し完了
雪が降るかと思われたけど、そういうこともなく無事終えた
児童館に子供を連れてって遊んでるときにズボンの後ろポッケに入れてて変な圧がかかったのか、購入後2日目にして早くも液晶パネルが逝きました。
最初はタッチパネルがまったく操作不能になり、しかも画面全体をタッチしまくってるように認識してるらしく、ロック画面で緊急電話をひたすら高速タップでかけようとしている状態。シャットダウンもままならない状態だったわけですが、本体をぐいっと反らせてたりしたらタッチできるようになりました。そこで急いで初期化してシャットダウン。これで修理に出せる。直前に撮った子供の動画も消えたけどな・・・oh!no
で本日LGに電話したところ液晶パネルの破損はやはり保証の対象外で自腹。修理費は大体2万、期間は一ヶ月だってさ。トホホ。
というわけで、IIJのSIMを引っこ抜き先ほど宅急便でサポセンまで送り出しました。SIMの使い道が暫くまったくないのだが・・まぁWi2の使用権もあるしいっか・・
追記)
LGに修理で送ったあと電話があり、この故障内容であれば無償交換可能とな。よかったよかった。
ある地域の時刻を取得するというのは結構厄介な問題だなぁと思う事案に出会ったのでメモを書いておきます。
前の日というのは今日が1日だと面倒なんですよね。30だったり31だったり29だったり28だったりするんで。そこでついつい以下のようなコードを書いてしまったりすると。
now = Time.new.local now = now - 3600 * 24 #24hour puts now.strftime("%Y-%m-%d"))
だけどこれは問題があるんですよね。具体的にはロンドンで(タイムゾーンは英国夏時間)、今が 2012-10-28 23:30:00 ならば誤動作をします。ちょっと書き直して次のように実行してみれば分かると思うのですが
ENV['TZ'] = 'Europe/London' now = Time.local(2012,10,28,23,30,0) puts now.strftime("%Y-%m-%d") yesterday = now - 3600 * 24 #24hour puts yesterday.strftime("%Y-%m-%d")
なんと24時間前も10月28日です。
結論から先に言うとサマータイムを勘案してないからです。日本みたいに常にUTCから9時間進んでいる国にいると実感がないけれど、イギリスでは2012年は10/28の深夜1時に夏時間から冬時間い切り替わっています。よって10/28だけは1日が25時間あるわけです。よって、24時間引いても同じ日になってしまう時間があるわけです。
これは面倒でもうるう年を考慮して1引くのが早いようで
今更感がありますが、資源ずっと貯めてたから北方海域や西方にあまりまともに出撃してなかったので。
これで編成クエを進めることができる。久しぶりのニューフェイス(除くまるゆ)
Controller中で他のcontrollerと actionを叩いてその結果を得ることが出来たら便利だと思いませんか?例えば HogeControllerと MogeCotrollerがあって、Hoge#fooが呼ばれたときに Moge#barが呼ばれたときと同じ結果を出したいとか。 これは Moge.new.barとかやってもうまくいきませんが、次のようにすると出来ます。
MyApp::Application.routes.call('REQUEST_METHOD' => 'GET', 'rack.input' => '', 'SCRIPT_NAME' => '', 'PATH_INFO' => path)[2].body
これでpathで示される場所に存在するcontrollerとアクションが起動し、その結果が文字列で帰ってきます。多分Rails3.1以上はこれでいいはず。ただし、これだとsessionやらcookieが渡されないので、それをも利用したい場合は次のように書けばよいでしょう。
options = request.env.dup options = options.select {|k| k == "HTTP_COOKIE" or k == "rack.session" } options = options.dup.merge('REQUEST_METHOD' => 'GET', 'rack.input' => '', 'SCRIPT_NAME' => '', 'PATH_INFO' => path) MyApp::Application.routes.call(options)[2].body
これでrotes.rbを書き換えずに、特定のpathと controller#actionが紐づいているように見えます。
「そんなやり方は邪道」とか「これはMVCモデルじゃねぇよ」とかいう声が聞こえてきそうですが、現実的にはMVCと綺麗に分離できることなんて稀だし、現実的には色々な要求があちこちからあるのでMVCが邪魔になることってあるんですよね。知ってて損は無いと思いますよ。
最近IPアドレスで国や地域を識別するサイトが多いわけですが、弊社のIPはGoogle的には香港と判断されていることが判明。これHK$で買うことが出来て出荷も日本にしてくれるのかしら?と思ってボタンを押して先に進んでみたところ、配送先がHongKong Island、Kowloon, New territoriesしかなかった。ダメじゃん
で、パケットのログみるとIPv6でつながってるんだよなー。IPv6で飛ばないようにいじれば直るのかもしれないけど、IPv6って国や地域単位ででっかいスコープで割り振ってるんじゃなかったけ?これはクレームを付けたいところなんですが、どこからつければいいのかすら分からない。困ったもんだ。
大雪の中citibankからワンタイムパスワードのトークンが来ました。ボタンは沢山あるけれど、結局必要なのは右下の電源ボタンだけみたいですね。これ押したらワンタイムパスワードが表示されると。他は冗長。その点JNBはパスワードが表示されるだけのシンプルなものでよかったなぁ。
セキュリティとか言い始めるとこういうシステムが有効なんだろうけど持ち運ぶものが増えて利便性は下がりますよね。もっともcitibank自体アカウントを作ったのはいいけれど、ネットのインターフェイスが使いにくく結局殆ど使ってないので(当初予定していた外貨預金や投信も結局使ってないし)、このトークンも箱入り娘としてどこかに保管される運命になりそう。そういう意味では邪魔にならない代物ですが。
両国郵便局は墨田区(両国駅のあるところ)に無いことに気がつきました。
区境マニアとして気がつくのが遅すぎた感。
京橋郵便局が京橋に無いくらいアツイですね。これは。
ちなみに両国郵便局は隅田川の右岸、両国橋の近くに存在します。ここは中央区。なお両国という住所は存在しないので、両国橋のたもとという点では間違ってないですね。駅的には両国より浅草橋のほうが遥かに近いです。
# freebsd upgrade -r 10.0-RELEASE
あとはメッセージにしたがう。
iconvとgettextまわり。/usr/ports/UPDATEING参照。
AFFECTS: 10-CURRENT users with any port depending on converters/libiconv AUTHOR: madpilot@FreeBSD.org 10-CURRENT after r254273 (committed on August 13, 2013) has an implementation of iconv enabled by default in libc. Due to this change some major overhauling of the ports tree has been necessary to move the ports to using that implementation. People using pkgng binary packages should have little problems, "pkg upgrade" will update all software to not depend on libiconv anymore, once updated packages are available. Please make sure to perform a "pkg autoremove" after that and check that libiconv is correctly removed by it. If you are using ports the update requires some manual intervention. The following procedure should be followed: # pkg query %ro libiconv >ports_to_update # pkg delete -f libiconv # cat ports_to_update | xargs portmaster or: # pkg query %ro libiconv >ports_to_update # pkg delete -f libiconv # cat ports_to_update | xargs portupgrade -f
10-CURRENTではiconvがlibcでサポートされているので、iconvを利用しているports/packageのリビルドが必要。converter/iconvが残っているとportsのリビルドに失敗する
その後gettextも以下の手順で更新する必要がある。先にgettextを削除しておかないと、
20130316: AFFECTS: users of converters/libiconv and devel/gettext AUTHOR: bapt@FreeBSD.org libiconv now handles the lib/charset.alias file instead of devel/gettext. If you are using pkgng 'and' upgrading from source with portupgrade or portmaster, first delete gettext, upgrade libiconv, then reinstall gettext. This will break sudo, so you *must* do this in a root shell (sudo -i) if you use sudo. # pkg delete -f devel/gettext # portmaster converters/libiconv devel/gettext or # pkg delete -f devel/gettext # portupgrade converters/libiconv devel/gettext
しかしこれをやってしまうと今度はglib20がビルドできなくなってしまう。理由は前述。今のところ libiconvが無いとビルドできないのがgimpくらいであるので、gimp使わないならlibiconvは完全削除でいいような気もするが・・