死ぬしかないそう思ったとき、撮影していた妻がおもむろに別室から別のリンゴを持ってきて私に手渡した。どれ、む、少し小さいな。うーん割れるのかといいながら、また握った。シナノスイートええーこんな簡単に割れんの?!?!?!?まあいいやとにかく大勝利!!!!大勝利だ!!!111私は上がりきったテンションでリンゴをかじる。リンゴが好きな妻は家に大量のストックを持っており、その中のひとつがシナノスイートという品種だそうだ。こちらは秋映よりも小ぶりで軽め、さっぱりとした味だ。して私は大勝利をおさめ、今ここに筆を執ったのである。...いや思ったよりサクッと割れたのでもう一回秋映に挑戦したのだが、こちらはどんなに頑張ってもダメだったので、妻に頼んで切り分けてもらい、家族で楽しく食べましたとさ。動画から音声を抜くのに使ったコマンドは次の通り。オプションが、オーディオについては何もしないという意味になる。akibae.mp4アドベントカレンダーは以上だ。今年は肉体に進捗なく、他に特筆することもまだなく、いよいよ不惑が近くなったが人格は特に成長せず、仕事でも進捗がなく、うーん...来年こそはいいことがありますように。08:39りんごチャレンジTweetもっと読むコメントを書く2019-11-01減量記録2019前回の減量は一年近くかけて、2018年の連休明けくらいまでかけて66~67kgくらいまで落としたのだけど、最後はたしか風邪を引いて、それを治すために終わりにしてそのままだった。そこから1年経ってまた75kgくらいまで戻ったので、また減量した。kuenishi.hatenadiary.jp今回の目標はあんまりはっきりとは決めていなかったけど、たしか6月に始めるつもりがダラダラ伸びて結局7月の始めに「ホラやるんでしょ」みたいな感じで妻に促されて始まった。なんでダラダラ始めなかったかというと、食事メニューがなかなか決まらなかったからだ。PuLPを使っていい感じに線形最適化されたメニューを組もうとしたのだけど、PFCだけをパラメータに食材を決めるとどうなるかというと、米とプロテイン粉末とMCTオイルだけの食事になってしまうのである。わたしはもうちょっと幸福に生きたいと思って、幸福度を最適化目標のひとつに入れようとしたり、もっと食物の選択肢を増やそうと食品成分表を持ってこようとしたりして回り道をしすぎていた。3回トレ中はマルトデキストリン+BCAA溶液を入れる仕事中に腹が減ったら適当にアーモンドorプロテイントレは週2~3回、重量落とさずにrep数少なめでみたいな感じにしていた。1ヶ月くらいは内臓中の消化物がはけていくのと、水分が抜けるので順調に減っていったのだけど、結局脂肪と筋肉はあんまり減っていなかったように思う。昼1個、3pmに1個、夜1杯に変更した。これが一番効いて8月9月1杯まででおよそ5kgほど減って、水分が抜けた朝一番なんかは70kgちょうどくらいまでになった。ところがここからまた停滞した。9月終わりから10月頭にかけてである。外食もほとんどしていなかったしウーンわからんとなっていた。トレーニングの内容も、満足度が低かったので少し内容を変えた。上半身とかをなんとなく広くやっていたのを、体幹系の種目に集中するようにした。二分割して、上半身と下半身を交互にこなすようにした。脚を重視して、最大重量を維持することよりも12〜15repできる重量をきっちりこなすようにして、翌日、翌々日に歩行困難に出るくらいになることを意識した。わたしの場合はバーベルスクワットは60~70kg程度だ。上半身のメニューでは大胸筋、僧帽筋のメニューを軸にした。あとはウォームアップにチンニングと、下半身強化のためのアブローラーをメニューの仕上げに入れることにした。これで体幹系の大きい筋肉のグリコーゲンを消費することを心がけたのである。腕や肩、膝より下はあまりやらず、体幹系のメニューをやって疲れる程度で満足するようにしておいた。微妙なタイミングで、右上7番の臼歯の再植手術をした。出血するし麻酔するし抗生物質は飲むしで、ようは静養が必要な状態になった。それに加えて、再植部分に雑菌が入らないようになるべく反対側の歯で噛むようにしなければならず、口内の衛生状態を保つために食後する歯を磨くことにした。オフィスでの食後の歯磨きは面倒なので、家で全部食事をとることにした。仕事中も間食はなし安静にするためにジムなしといった生活に切り替えたところ、さらに体重がおよそ-1kgくらいになった。トレーニングをしていないので筋肉も落ちただろうが、血糖値を上げずに食事回数を増やす(トータルの食事は増やさない)という常識ををうちやぶって、食事を一日になるべく固めるというのでもわたしくらいのレベルだと成果が出なくはなくてキープができるということが分かったのは収穫だった。いうわけで無事に今回の減量も終了。4ヶ月で5kgくらい今回実感したのは、カロリーを計算するよりも食事そのものをコントロールすることの方が重要だということ。以前ゴールドジム国立店でジャガー佐藤さんの「わたしはカロリーはあまり計算しないけど、ライスの量でカロリーをコントロールする」といった旨の話を聞いて「そんなもんかぁ〜」と思っていたのだが、今回はそれを強く納得できた。カロリーの書いてあるよくわからない既製品や外食よりも、自分で炊いた米の重さを量った方がいいということだ。毎日の変動要因をなるべく抑えて、観測と自分の感覚に耳を澄まして食事や生活にフィードバックしていくことが重要だということでもある。減量はもうひとつコツがあって、一日のうち一番体重の少ないタイミングで量るというのがあります。これは毎回「お、痩せたなぁ〜」とモチベーションを維持するのに役に立ちます。食後とか、水を飲んだあととか体重が増えているタイミングで量ると、分かっていても数字をみるとやっぱり少し凹みます。「分散システム」という言葉は大まかにいって複数のコンピュータが一つの系となって協調動作するようなシステムのことを指す。本書のお題はそのときにどういうパターンがあるかを解説するものだ。作者がKubernetesの開発者であることや、副題をみても、複数のコンピュータを使って大規模にスケールするサービスを設計するときに必要なテクニックを解説するものだ。単行本(ソフトカバー)この商品を含むブログを見るしかしながら、分散システムという言葉は狭義には「いつでも故障しうる」複数のコンピュータがひとつの系となって協調動作するシステムという強い条件がつく。その上で協調動作のなかでも最も難易度の高いコンセンサス(合意)という問題を解くことが、学問分野として長年研究されてきた。私もそのためのデザインパターンを記述したものだと期待してしまったのだが、そうではなかった。Consensus)は分散システムの中でもとても重要な問題で、これを上手く解かないと、Durability(永続性)のあるシステムを組むことができない。Durabilityのあるシステムとは、つまりデータを保存する能力をもったシステムやサービスのことを指す。これができていないと、例えばひとつのデータを保存したつもりが、読むときに各々のコンピュータが別の値を返してくることになる。本書では、第一部から、第二部の8章まではずっと準備運動のようなもので、Kubernetesでよくあるデザインパターンつまり、いかに上手くシステムを組むかのノウハウが伝授される。例題もほとんどがステートレスなものだったり、コンセンサスやDurabilityが必要ないものだ。9章だけはetcdを使った分散ロックの実装サンプルで、分散操作のプリミティブを組み合わせて別のプリミティブを組み合わせるという面白い問題だ。ロックを実装するサンプルになってしまっていて、実用的な場面について多くが語られているわけではない。それどころか、こう、わりとバッサリ切り捨てている。種類の実装方法があります。散コンセンサスアルゴリズムを実装する方法です。スワップ命令の上にロックを実装するようなものです。コースの課題としては興味深いですが、普通は実践するようなものではありません。etcdのclientv3にはよいExampleが入っている。ここだけは中途半端で、実用性という意味ではちょっと物足りないし、原理の解説については始めから諦めているし、どうしてこのような章があるのかちょっと分からなかった。Lockの問題点(Mandatoryにすることはできないので、コーナーケースを詰めきることはできない)を解説して、この上にリトライ機構を頑張って組んでアプリケーションのレベルで安全性を保証することを解説しないといけない。そこを乗り越えないと実用的にはならないので、ちょっと何というかメインディッシュを外された感じがする。ステート管理はすべてクラウドストレージとかマネージドDBMSでやるんだと割り切ればこういう話でいいのだろうし、本一冊の内容になるといえばなる。これまでの分散システムの解説本でそういうことが十分に解説されてきたか?といえばまあ疑問だが。第三部ではバッチとか、オンラインじゃない処理をスケールさせるときの代表的な手法が解説されている。たしかにWebサービスやふつうのITシステムを組む上で必要十分かもしれないけど、ここ2年ほど深層学習目的のHPCクラスタ上で分散計算をしている身では物足りない・・・。いうわけで、本書は分散システムの最も難しくて重要な問題に切り込んでおらず、でもシステムを組む上で頻出する簡単なパターンを網羅している。簡単なパターンばかりなのでわりとアドホックに作り込むことができるものばかりだ(ライブラリや基盤的なシステムとして外だしする必要がない)。タイトルの付け方がうまくて、もっとSpecificにつけるなら「分散アプリケーションデザインパターン」である。アプリケーションとは何だという話ではあるが、Kubernetes上でたくさんのコンテナを使ってサービスを構築・運用していきたい人には良書だと思う。私はそちらの方は疎いけど。箱根関所跡の見張り台から富士山を望む2018年も暮れになってアドベントカレンダーの季節になってきました。夜中に今年のことを少しずつ思い出しながらこれを書いています。一年間のアルバムをいろいろ見返したのですが、撮れ高としてはイマイチで、箱根にいったときのものくらいしかあまりよいものがありませんでした。箱根はIT健保の保養所があるので何回か予約合戦をして行っているのですが、いつ行ってもいいですね。いつも同じところを巡るのですが、子どもたちも毎年違う楽しみ方をしています。箱根駒ヶ岳から山頂の神社を望むさて2018年を振り返ると、これまでのように対外的に発表をしたりといったこともなく、目立つ活動は年々減っているような気がします。本当にいろいろな意味でよくないことなのですが、2019年、2020年に向けていろいろと仕込んでいるということにしておきましょう。昔のように、よくわからないプログラムを仕事でもないのに書き連ねて公開するということはなくなりました。長男がScratchにハマって日々よくわからないものを作っていて、たまに見せられるのですが本当によくわからなくて、「オッおおう」みたいな反応をするのを反省したいところです。長男は面白くて、大人と話すときは「俺Pythonやってるんだよねー」というのですが、家でずっとやっているのはScratchです。その影響を受けて次男もパソコンがほしいといいだして、Chromeで音声検索して目当ての電車やトーマスに行き着いたりするハックを日々実践しています。字が読めるくらいで、ろくに日本語も書けないしタイピングもできないのに、ですよ。長男はブラウザのタブを大量に開いてWikipediaのよくわからない項目を読みふけっていたかと思いきや、Scratchでよくわからないメロディーを鳴らしたりしています。YouTubeを見るのに我が家では30分制限/dayを課しているのですが、長男はその30分タイマーも最初Scratchで自作していました(後になんかWebサービスみつけてそっちを今は使っています)。現代のテクノロジーは人間をenforceするんだなあと感心しきりです。Switchでスプラトゥーンをプレイしています。さっきプロフィールを確認したらプレイ時間が720時間になっていたので、均等に期間をわりあてると今年は500時間ほどプレイしたことになります。今どきコンソールゲームで遊ぶなんてオッサンですね。オッサンは仕事ではMacをやめてLinux一筋で、プログラムは主にEmacsで書いてMakefileやsetup.pyを書いたりしています。21世紀も2/5近く経つのに20世紀なことばっかりです。扱う題材も流行りのディープラーニング...かと思いきや、結局MPIとか分散処理とかTCP/IPとかRPCとか、20世紀の頃からあったものばっかりです。ニューラルネットワークというやつもこの10年で急に登場したわけではなくて、古くて新しい技術がここ数年で急に実用化され始めたということなのですが。あいかわらずlsとかmakeとかsshとかやって、会社には電車で通勤して、土日は家でゴロゴロ...と、なにひとつ未来な感じがありませんね。インターネットで通販しまくっているというのはもしかしたら新世代かも。引っ越し通勤で思い出しましたが、子供部屋を用意して隔離^H^H勉強に集中させようとして家を探したのですが、当時住んでいた国立の近辺によい物件がなかったので、思い切って10年ほど住んだ国立を離れることにしました。会社の近くになって、子供部屋も用意できて、住宅ローンという名の生命保険も加入できて、まあそれなりに生活は改善されました(もちろん全てが改善というわけにはいきませんが、概ねポジティブです)。いろいろなPaperworkがあったのですがこれもひとつ人生の勉強になりました。これまで明に公言はしませんでしたが、国立はとてもよいところです。職場が中央線沿いなら、新宿以西なら、とてもよいところだと思います。たしかに中央線は脆弱で遅延などは多いですが、わたしのようにある程度時間に自由が利く職種ならそれも大きな問題になることは少ないです(なにかの事故で四谷トンネルの中で止まって、しかしお急ぎのあまり線路上で途中下車したお客様を探して安全確保のためにさらに待たされたときはさすがにちょっとムカッとしましたが)。国立は治安がよいです。駅前にパチンコ屋がありませんし、歩道を爆走する自転車が少ないです(ないとはいいません)。紀伊国屋スーパーや三浦屋など、国産食材を安心して調達できるスーパーが駅近くにありますし、各種私塾や習い事などの教育環境も整っています。一橋大学があって夜中でも学生がウロウロしているので、夜道が比較的安全(な気がする)。なかでもよかったのは、味にうるさい我が家がお気に入りで行きつけになっていた店が近所にいくつもあったところです。天ぷらやましたシエル・ドゥ・リヨンマナリッカどの店も、週末には国立まで電車で来た客で埋まるくらい人気があります。どこも飽きない味で、いっときはこの3店で三週間かけて週末の外食ローテンションをしていました。シエル・ドゥ・リヨンとマナリッカはランチもお手頃価格なので、地元のマダムたちが大挙して押し寄せて歓談しています。天ぷらやましたは、銀座レベルの本格和風天ぷらがまあまあ(といっても毎月行けるか?といわれると悩む)の価格で味わうことができます。銀座や都心までいっておいしい天ぷら屋を探さなくてもよかったので本当に楽だった。衣がきれいな色でサクッと軽いんですよね。シエル・ドゥ・リヨンは、ランチメニューもよいですが個人的にはデザートがおすすめです。バニラアイスは上等なバニラを粒が確認できるくらい大量に突っ込んでいてとにかく香りがよいです。ルバーブのソルベは東京ではあまりありませんが、雑草の茎とは思えないくらい上品な酸味が効いていてこれも好きです。夏はルバーブのソルベで冬はバニラアイスがいいです。他のデザートも味と盛りがよくてよいです。マナリッカは、なんか普通の民家なのに中に巨大なピザ窯があって薪が大量に積んであります。窯で薪で焼いたピザは生地がスモーキーに仕上がってパンチがあっていいんですよね。ピザはどれも原価率高そうな感じの素材を上手く使っていて、しかも定期的にメニューがアップデートされるので飽きずに毎月とか毎週行ける感じです。歯の根管治療を始めた二人子連れの引っ越しはやはり体力を使うものらしく、引っ越したら歯の根幹がそろそろ死にかけているという診断を受けました。歯に穴を開けて、根の先っぽまで中の組織をとっていって埋めるやつです。今通っている歯科医が非常に腕のよい人で安心しています。痛いかといわれたら最初の穴あけは痛かったんですが、穴あけたあと飲み会にいって日本酒飲んでるんだから世話ないよなという話です。そのあときっちり風邪でダウンしました。昨年のアドベントカレンダーの記事を書いた頃はちょうど減量真っ最中だったのですが、その後半年近く減量をダラダラとやってしまい、最終的には連休明けに風邪を引いてしまい、目標体重65kgまで届かずに終了となりました。減量2017-2018減量が終了した後は筋肥大しつつ増量していこうとしています。なんか目標あった方がトレーニングの方針決まるよねということで、ビッグ3で合計300目指してパワーに寄せたメニューにしています。いったところです(同日というわけではなく、ここ最近のそれぞれの最大値)。あとちょいなんですが、ここからがなかなか伸びない。コンスタントにこの数字を維持できるようになりたいところです。仕事で忙しいことを言い訳にしがちですが、まあ子持ちの社会人なんてそんなものかもしれません。食事については、最近は特に気を遣わずに自然にしています。近辺をウロウロしています。急に増え続けているわけではなくバランスしているので、このままよいコンディションで筋量を上げていきたいところです。新居になってスペースができたのでふるさと納税でチンニングスタンドを導入しました。PDTチンニングスタンドとPowerBlockがあるという環境なので、次はベンチが欲しくなります。うーん、スペースがない...ベンチとダンベルがあれば大抵のことはできるようになります。そこがスタートラインという気がしますが、きっとベンチを手に入れたらバーベルが欲しくなるのだろうと思って、なかなか難しいなと躊躇しています。ちなみに体重が増えたのでチンニングそのものはあまり伸びていません。ワイドでYができるようになったくらいかな。キーボード作りErgoDoxがあまりに大きくて職場の卓上を占拠して邪魔区さいので、Ergo42を組みました。その後ErgoDoxを職場の同僚に譲ったところ、もともとのユーザーも含めてチーム全員がErgoDox-ezを購入するという現象が発生し驚いています。PDTしかしながら、拡張のない4段では数字を入力するときにModifierが必要になり厳しかったのでIrisを作ろうとしましたがたくさん失敗しました。PDTたくさんの失敗を経た後、無事に完動品を複数実戦投入できました。PST特にこちらの2つ目は、翌日が在宅勤務予定なのにLinuxデスクトップ用のキーボードが家にひとつもない(ので、朝までに完成させなければならない)というプレッシャーもありながらよく完成までこぎつけました。転職してから1年以上になりますが、こうやってお仕事があるのは有り難いことで、比較的裁量がありながらもスタートアップの強いプレッシャーと期待感の下で仕事をすることができています。具体的には、社内で多く使われているDNNの学習プロセスを速く大きくするための技術開発とかインフラ開発がわたしの仕事になります。ベースの仕事定義ではなく、面白いこと、会社のためになることなら何でもやるといった、一見和風な企業文化のまま世界レベルの成果を出し続け...といっても当たり前のことを当たり前にやっているだけなんですが。その一環にChainerMNというソフトウェア(5.0からはChainer本体にマージされました)を開発、メンテナンスし続けるというものがあります。並列計算ということもあり、このソフトウェアは一見たいへん扱いが難しいところがありますが、それを簡単に使いやすくしつつ、より速く学習が終わるようになるためにいろいろなコードを書いては捨てたりマージできたり、といったことを繰り返しています。Pythonで深層学習なんてそれにしてもナウい響きですが、やってることはミドルウェアの開発とメンテナンスなので地味だったりします。地味ですが社内で多く使われているのでふつうにフィードバックがよく来ます。あと深層学習で分散計算、ImageNetだけでいえば世間的には解かれいているかのような気がしますが、まだまだ未知の部分も多くて毎日が忙しいです。あと現職で急に変わったことがひとつあります。前職までは私が最年少か、年齢でいって下から2番めというところばかりだったのですが、現職からはチーム内で私が最年長ということが多くなってきました。態度がデカいからなのか、それとも風格があるからなのかはわかりませんが、たまに若者たちに「上西さん、〜〜ってどうなんですか」などと最近ナウいアレやコレのことを聞かれたりします。その若者たちは大抵Ph.Dを持っていたりトップカンファレンスにバンバン論文通していたり、なんかすごいコード書いていたり、すごい外資経験していたり、なんとかのコンテストで世界優勝していたりするわけです。話していると滲み出てくる頭のよさ。いうすごい若者たちとうまく対等に付き合う方法は難し...いかと思ったのですが、なんのことはない、みんな人格者なのでそこそこ上手くやってこれたのでこれっぽっちも心配いらなかったのでした。Networksという会社は、老いも若きも対等に成功を目指すことができる、夢のある職場です。つきましてはみなさん、私と一緒にChainerを分散させる仕事をしませんか。先日発表したMN-Coreもちろんスコープにはいっていますよ。本当にやることが沢山ありすぎて呆然としているんですが、そういうバタバタして何もない環境でこそ燃えるという皆さんのご応募をお待ちしています。こちらの19日目の記事でした。01:07雑記Tweetもっと読むコメントを書く2018-11-13スプラトゥーンのガチマッチで勝つために気をつけていること反射神経とエイム力(=相手に狙いを当てる能力)はそう簡単に身につくものではない。野良で味方を当てる運ゲーとも言われるが、運は待つのではなく引き寄せるものだ。年齢を重ねてしまった今そういうものを後から得られることはないが、頭を使ってできることもあるので、そういうことを書き並べてみようと思う。ちなみにウデマエはまだXに達したことがない程度のエンジョイ勢です。Instagramヒーローローラーレプリカ、ちょっとテンションあがる。PDT多勢で挑むまず多勢で挑むこと。多勢がより有利になることを数理的に示したランチェスターの法則によれば、多勢が攻撃を集中した場合は単に人数比ではなく、その自乗に比例して相手の戦力を削っていくことができる。場合、こちらは一人も削られることはないということだ。場合は相手を一人でも削れたら戦術的にはすごいことなのだが、全体的にはメリットは薄いので引くに如かずということになる。味方のいる場所まで逃げる近距離系のスペシャルで一気に倒す相手の射線がかぶるように立つ(こちらから見て向こうが縦一列に並んでいるような位置取りをする)インクが塗れている場所や隘路に誘導して一人ずつ倒すなどを心がけよう。ブラスターやダイナモなど複数同時に倒せるブキもあるが、あちらの攻撃の手数は減らないのでやられるリスクの方が大きい。勝てるかどうかまず何よりもメインウェポンの基礎知識、相性とチョイスが重要。基本的に全部のブキを現場で使って試してみること、ネットで基本的な使い方やテクニックを覚えておくことをおすすめする。自分ができるかどうかは別にしても、上級者のプレイ動画を見ておくとよいだろう。自分の常用じゃなくても、ブキに対する理解は倒すときにも役立つ。そのためにも、まず各ブキの基本動作を習得しよう。おおまかにいって、それぞれ以下のようなものがある。前後左右にシャコシャコ動くことで相手のエイムを混乱させることができる。物陰から急に登場して対応する前に倒すことができたりする。