Rubyで日本のサマータイムを調べてみた

東京オリンピックのためにサマータイムを入れるとかそんなアホな話があったんで、改めてwikipediaを見てたところ、1948年 - 1951年に日本にもサマータイムがあったらしい。

夏時間 - Wikipedia

へーあったんだーと思ってRubyの挙動はどうなっているのかを見てみた。

[48] pry(main)> Date.new(1951, 9, 1).upto(Date.new(1951, 9, 10)){|d| puts "#{d.to_time} -> #{d.to_time.zone}"}
1951-09-01 00:00:00 +1000 -> JDT
1951-09-02 00:00:00 +1000 -> JDT
1951-09-03 00:00:00 +1000 -> JDT
1951-09-04 00:00:00 +1000 -> JDT
1951-09-05 00:00:00 +1000 -> JDT
1951-09-06 00:00:00 +1000 -> JDT
1951-09-07 00:00:00 +1000 -> JDT
1951-09-08 00:00:00 +1000 -> JDT
1951-09-09 00:00:00 +0900 -> JST
1951-09-10 00:00:00 +0900 -> JST


[62] pry(main)> Time.new(1951, 9, 8)
=> 1951-09-08 00:00:00 +1000
[63] pry(main)> Time.new(1951, 9, 8).dst?
=> true

確かにある。Time#dst?true になる。もう少し細かく見ていく。

23時になるとJSTに戻る。サマータイムが終わるときには1時間戻さなきゃいけないからか。

[71] pry(main)> Time.new(1951, 9, 8, 22)
=> 1951-09-08 22:00:00 +1000
[72] pry(main)> Time.new(1951, 9, 8, 23)
=> 1951-09-08 23:00:00 +0900

22時に2時間を足すと23時になってタイムゾーンは戻ってる

[110] pry(main)> Time.new(1951, 9, 8, 22, 59) + (60 * 60 * 1)
=> 1951-09-08 23:59:00 +1000
[111] pry(main)> Time.new(1951, 9, 8, 22, 59) + 60 * 60 * 2
=> 1951-09-08 23:59:00 +0900
[112] pry(main)> Time.new(1951, 9, 8, 22, 59) + 60 * 60 * 3
=> 1951-09-09 00:59:00 +0900

とりあえずいろいろとめんどくさいことはわかった。システム改修だ〜五輪特需だ〜とはしゃいでるクソ営業さん以外は特にメリットないですな

西日本応援プロジェクト 真夏の大LT大会! に参加してきた

techplay.jp

はてな ブログに書くまでがイベントですよ。ということなので書いてみる。実家が九州なので今回の大雨の影響は少なからずあり、東京にいながらできることはなんだろうということで参加してみた。

元来、募金というのが非常に嫌いな人種なので大人になってからはあまりしたことがないが、こういうゆるい感じでできるというのは非常にいいなーと思った。登壇してる方、内容もいろいろとすごくて、インターネットの思い出というお題というこもとあり、笑ってたこともあれば、「あー」「へー」と言ってたこともあるし、非常に多岐にわたっていた。

個人的にはあの徳丸先生と「俺がRailsだ!」の名言を残した kamipo さんを見れたのが非常によかった。藤本さんのインターネットの話はまぁ見に覚えがありすぎて直視できない。笑ってたけど、自分は自分のを掘り返す勇気はない

ということで、主催のそーだいさん、941さんの実行力に最大の賛辞と感謝を送りつつこのブログをしめる。ありがとうございました!!

戦利品

Angular MokuMoku Night #1 に参加してきた

ngjapan.connpass.com

仕事でAngularを触る時間が徐々に減ってるので集中して触るために申し込んだ。

最初の目的

ずっと自分が勉強用に使っているWebのTODOでいじってた

成果物(WIP)

github.com

良かった点

  • 2時間ぐらい集中していじれた

反省点

  • せっかく質問する相手がいるのでもう少しいろいろ準備したほうがよかった
  • 仕事用のコードいじってもよかった

HTML5 APP CONFERENCE 2018に参加してきた

会社がスポンサーしてくれたので感謝

html5app-conf.connpass.com

普段はiOS/AndroidからWebViewを呼び出す程度でしか使ってないが、やっぱりPWAとかその辺の知識は無視できないので情報仕入れてみようと。いやはや、おじさんとしては基調講演楽しかった。

一番最後に聞いた「HTML5 アプリにおけるパフォーマンスの基礎知識」というのが一番楽しくて、自分がパフォーマンスチューニングとかそのへんが好きだからかもしれないが。

正直すぐに手を出せないのが非常に悔しいんだけど、Webエンジニアである以上は常に情報はウォッチしておきたい

PO祭り2018 Summerに参加した

まとめてくださってるのでこちら togetter.com

最後まで参加できなかったのでもったいなかった。自分はプロジェクトのリーダーであってもプロダクトのオーナーではないし、うち自体にPOと呼ばれる職種の人はいないので、必然的に企画職の人と会話するときの考え方やチームビルディングのネタにしている

自分が自然にやっていることが正しいのか/間違っているのか、浅いのか/深いのかを確認する場としては非常に良かった。まだまだ自分は浅い部分というか、点でやってる部分があって継続的な線になっていなかった。

お気持ち

あと、話してる内容が自動で文字起こしされている精度が徐々に上がっているような気がした。最終的にどのぐらいの精度だったんだろうか

vim の cpsm built with version of Python not supported by Vim の原因がわかった

家のMaccpsm built with version of Python not supported by Vim のエラーが出てたけどようやくわかった。

前提

brew 経由でvim, Pythonを入れてる。それとは別にpyenvでPython2をいれてる

原因

brew経由で入れたPythonのデフォルトが3になったので、pyenvで入れているバージョンと互換性がなかった。

なんでわかった?

cpsm/cpsm.vim at 8a4a0a05162762b857b656d51b59a5bf01850877 · nixprime/cpsm · GitHub  のエラーステータスが1となっていた。その少し上に 1: cpsm module built with incompatible version of Python らしい。 で、/usr/local/bin/vim --version で見てみると、python3がONになっていて、python2がOFFになっていた。

解決策

brew install vim --with-python@2 でpython2をONにしてから、cpsmをONにした

技術的負債の代替語でサービス負債という単語を考えてみた

きっかけはエンジニア内で技術的負債というのをesaにまとめてたときに、これをどうやってやっていけるのかなと思ってた。チームで仕事をしている以上、エンジニアだけではどうにもできない部分は確実にある。

もちろん他職種に丁寧に伝えるということは非常に大切なんだけど、まず「技術」というところで心理的ハードルを下げたかった。「技術」という単語が出るとどうしても「エンジニアだけのお仕事」という感じになってしまう。その時は他施策より優先度が下がることが多い気がする。

少なくとも自分がやりたい技術的負債の返却はサービスのためになるはずなので、サービス負債の返却という単語に置き換えてみようと思う。もちろんサービスを運用する上で、「望まざる状態でそうなってしまった」ものを「サービス負債」という括りにいれて言ってもいいと思う。結果的に運用が楽になってみんながハッピーになればいい。特に攻めの施策ばかりやっていて、守りが薄くなってるところはいいのではないだろうか。