先週は今の職場になってからかつてないほど忙しく、まさかの一週間更新なし。 前職でも後半はあまりなかった納期に迫られるタイプの案件なので、こう、精神に来るものがありますな。
ということで先週からのまとめ的な。
golangではreflectを使ってメタプログラミングする
スクリプト言語的にstructのフィールド名を変数なんかで動的に変更して取り出すのにはどうしたら良いんだろう、と調べていてreflectの存在(とそういう手法をメタプログラミングと称すること)を知る。
import "reflect" type Hoge struct { IntValue int StringValue string Fuga } type Fuga struct { BoolValue bool } func main () { h := Hoge{123, "hogehoge", Fuga{ true }} // reflect化 r := reflect.ValueOf(h) // 値の取り出し i := i.FieldByName("IntValue").interface().(int) s := s.FieldByName("StringValue").Interface().(string) // 埋め込みはreflect.Indirectを使う f := reflect.Indirect(r).FieldByName("Fuga") b := f.FieldByName("BoolValue").interface().(bool) }
値はinterface()を噛まして明示的に指定してやる必要がある。スプリクト言語歴の方が長い身からするとちょっとまどろっこしいが、そこまで面倒ではない。
GAE/GoからSlackへの大量投稿はTaskqueueを用いて
そんなこんなで案件としてはSlackへ投稿するものだったんだけど、GAEだといわゆるWebアプリケーションとしての体裁を取らねばならないので、量によってはタイムアウトするようなforループでぐーるぐる的なのはあまりよろしくはない。特に今回のSlackなんかではAPIにRate Limitがあるわけで。
そこでGAEではtaskqueueを用いる。
こっちはコードは割愛するけど、予めdurationを1/sにしておいて、Valuesとして投稿するチャンネルIDとメッセージをキューとして投げ、それを順に投稿させる感じに組んだ。
この辺はそのうち技術ブログにでも書きたい。
Kokoonヘッドホン速攻で壊れた・・・
Kokoonヘッドホン何日か気に入って使ってたんだけど、気づいたら電源が入らなくなってた。
充電はどうも普通にできそうだし、有線でつなぐ分には普通に聞こえる。軽く分解してみた感じではスイッチの物理的な接触不良とかではなさそう。
問い合わせ&海外発送も辛いし諦めるしかないかなあ・・・
Bose QC35 Ⅱ買った
で、それでヤケになったというわけではないけど、ノイズキャンセリングとして定評ある製品を一回は使っておこうと思い切ったQC35買ってみた。
Bose QuietComfort 35 wireless headphones II ワイヤレスノイズキャンセリングヘッドホン Amazon Alexa搭載 ブラック
- 出版社/メーカー: BOSE(ボーズ)
- 発売日: 2017/11/27
- メディア: エレクトロニクス
- この商品を含むブログを見る
これまでもいくつかノイズキャンセリングな製品は手にしてたんだけど、これはスイッチを入れた瞬間ちょっと感動するレベルだった。
あまりにも自然で「あれ、何が消えた・・・?」と思って外して、空気清浄機の音だったことに気づく感じ。
あと、2台同時に接続できるのが地味に嬉しい。マルチペアリングの機器は珍しくないけど、あれらは接続元の方で切断の操作をするのが煩わしいんだよね。その点でQC35だとPCとスマホを両方同時に接続できて、音が鳴ってる方に勝手に切り替えてくれるのでめっちゃ楽。
Soundcore Liberty Air買った
音響機器買いすぎじゃね感あるけど、ポイント溜まってたし前々から興味があったLiberty Air買ってみた。
これまでさんざんAirPodsを耳うどんと揶揄してたんでなんだけど、黒なら髪が耳にかかる長さなんでそこまで違和感ない、はず。
Lite以上にケースが小さいというか薄くて、ポケットに入れて運用するのには良さそう。電極の収まりも良さそうなんで充電しそびれる事故も減りそう。
形状的にはこれまでの製品のような爪が無いのでこれからの汗ばむ季節に落とさないかちょっと心配。
一番の売りはアンテナ性能だと思うんで、一週間通勤で使って試してみたい。
ケムリクサ良かった
やっぱりどうしてもビジュアルがチープだったり、キャラクターにキッズアニメ的な癖があったりで序盤に引きは弱かったんだけど、「謎」で物語を引っ張る感じは今作でも健在。
けもフレ2降板騒動もあったので半ば判官びいきな目線もあったのだけど、そういうのを差し引いても最終盤の畳み掛けにはぐっと来た!
けもフレ同様にここまで楽しんだ以上はお金を落としておくのが大人としての礼儀だろうということで円盤ポチった。
【メーカー特典あり】ケムリクサ 1巻[上巻] (ブックレット付) [Blu-ray]
- 出版社/メーカー: movic co.,LTD.(PLC)(D)
- 発売日: 2019/03/29
- メディア: Blu-ray
- この商品を含むブログを見る
人気らしくブックレット付きのほうは4月後半までお預けなのが歯がゆい。
Sekiro進捗
やっと落ち着いたのでSekiroちょっと進めて、過去編はお蝶、現代編は鬼形部まで。
SEKIRO: SHADOWS DIE TWICE - PS4
- 出版社/メーカー: フロム・ソフトウェア
- 発売日: 2019/03/22
- メディア: Video Game
- この商品を含むブログを見る
あれほどヤバイと思ってた重蔵は丁寧に雑魚掃除してNPCを囮にすれば案外ゴリ押しできた。
侍大将の方も真面目に弾くよりも安全な距離をとりつつ旋風切りで地道に削ればなんとかなってしまった。
お蝶はつらそうだけど、鬼形部の方は何回か挑めばなんとかなりそうな匂い。