閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

特にオチのない妄想(台風一過の過ごし方とか)

台風の翌日とか、もう電車や線路の状況関係無く問答無用で終日運休にしてしまって良いのではないかと短絡的には考えてしまうけど、医療関係者とか真に移動手段が必要な人もいるわけで、動かせるなら動かすべきだよなとも思う*1。そういう人には優先的に車を配車できる仕組みを用意するということもできるだろうか?

Suicaマイナンバーカードをくっつけて、マイナンバーに職業情報なども入れ込んでしまい、非常時に解説通れる人間を制限してしまったらどうか、みたいなディストピアみたいなことを考えてしまったりもする(中国はそのうちやりそう)。

「不要不急な外出は控えて」と言われたときにその通りにできれば済む話ではあるんでしょうけどね。

*1:ここで医療関係者が真っ先に出てくるのは自分が患者属性だからで、他にも公務員とか色々あるでしょう

ジム通い

hwada.hatenablog.com

はてなに振り返りませんか、と言われたけれど、特に変わったことはなく。一応続いてはいます。ジムに行くと言うより、風呂に行っているような感じですが……(家ではシャワーのみなので、勝手にメンテされる浴槽はありがたい)。

どうも上半身は骨が浮いているのにお腹のあたりに贅肉があり、もっとバランス取らないとなという感じ。ちょうど今やっているダンベル何キロ持てる?が結構実践的で参考にしています。来年はもうちょっと進捗があれば。

コレステロール値などもあまり変化ないしなー。中性脂肪は直近の計測でギリギリ正常値となったけど、何が寄与しているのか微妙な感じ。がっつり食べるとすぐ上がるのはわかりやすいのだけど。

f:id:wata_d:20190910205532p:plain

夏休み

hwada.hatenablog.com

今日から9連休。去年と同じ。

暑いし台風きてるし通院もあるので何もするつもりがないけれど、FE 風花雪月が面白い上ボリュームがあるので(まだ1部)これだけで潰せそう。

岩田さん

岩田さんのほぼ日の対談とかを定期的に読み返しています。特にこの辺は何度読んでもすごいなーと感心してしまう。

www.1101.com

「自分がやるのが一番早い」みたいな発想はプログラマあるあるだと思いますが、そこからじゃあ会社の経営も自分がやろうというのは飛躍だと思うんですよね。「プログラムがうまく動かないのは書いた自分の責任だけど、人とのコミュニケーションがうまくいかないのもそれと同じで自分の伝え方が悪いのだろうと考える」とか、なかなかそうは考えられないですよという感じで。「なんでそんなこともわからないの」って言っちゃうでしょ(そうでもない?)。

この辺でよく出てくる「面談」がIT業界でちょっと前に流行った「1on1」のはしりでもありますね。

あと、この辺のエピソードとか凄みがあります。

【岩田 聡氏 追悼企画】岩田さんは最後の最後まで“問題解決”に取り組んだエンジニアだった。「ゲーマーはもっと経営者を目指すべき!」特別編 - 4Gamer.net

主にほぼ日内で語られていた話になると思いますが、これをまとめた書籍が出ると言うことで、これも買って改めて読みたいと思います。すでに紙の本は発売されていますが、思ったより早く、というか明日には電子版(Kindle)も出る予定らしいので日付が変わるのを待っているところ(まだAmazonでも予約はできないみたい?)。

岩田さん - ほぼ日刊イトイ新聞
"岩田聡さんのコンテンツ。 - ほぼ日刊イトイ新聞"

岩田さん 岩田聡はこんなことを話していた。

岩田さん 岩田聡はこんなことを話していた。

可変長引数をとる関数に配列を渡したい(PHP/JavaScript)

PHPで:

<?php
$data = [1, 2, 3, 4, 5];
pack("l*", $data);
#=> 20byteのバイナリがほしいのに、4byteしか取れない
?>

なんてことをやってしまった。pack関数の第二引数は可変長配列ですが、配列を渡すとその配列オブジェクトのバイナリが返ってきてしまいます。C言語でprintfに配列を渡すようなことは普通しないと思いますが、なんとなくPHPはうまくやるんじゃないかと思ってしまったんですよね…。

<?php
$data = [1, 2, 3, 4, 5];
pack("l*", ...$data);
?>

今回のようなケースでは上記のように書けば期待通りの動きになります。

PHPの "..." は名前付いてないんでしょうか。検索してもよくわかりませんでした。マニュアルには"...トークン"と書いてあるけど口頭ではなんと発言するんだろう。

JavaScriptではスプレッド構文と呼ぶみたいですね。同じような使い方をします。Math.max関数なんかが可変長引数を取り、

Math.max(1, 2, 3); // => 3

などと書けますが、配列を渡すとうまくいかず、スプレッド構文を使う必要があります。

Math.max([1, 2, 3]); // => NaN
Math.max(...[1, 2, 3]); // => 3

思い返すとC#でも似たようなやらかしをしたなぁ。DataTableを使っているときに、行を追加するメソッドが可変長引数を取るので行の要素を配列で突っ込んだら最初の列に配列オブジェクトが表示されるというやつ。

var dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");

dt.Rows.Add(1, 2); // OK
dt.Rows.Add(new int[] { 1, 2 }); // NG

このメソッドはobject[]を取るので

dt.Rows.Add(new object[] { 1, 2 });
// とか、
var array = new int[] { 1, 2 };
dt.Rows.Add(array.OfType<object>().ToArray());

みたいに書けば動くには動くんですが…。まぁ、素直にRow作ってから列を設定する方が良さそうですね。

ミニストップのフローズンフルーツがよい

文字通り凍らせたフルーツで、いちごとかみかんとかを凍らせてハロハロに入れたりしたもので、最近バリエーションが増えている印象。2019年の夏は牛乳にいちごを入れていちごミルクとか、炭酸水に氷代わりにみかんを入れたものがリリースされています。

www.ministop.co.jp

果物を凍らせると消費期限はどれくらい延びるんだろう? よく知らないけど、フードロス削減にも繋がりそうなイメージ。個人的にはタピオカよりこういうのが流行ってほしいです。