IDEAを2019.2にアップグレードしたところ、以下の問題に遭遇した。input)が不具合として上がっていたが修正されそうな気配がなくて途方にくれていたところ、こんなワークアラウンドがあることをTwitter上で発見したので試してみた。Runtimeが原因とのことなので、これを古いバージョンにすればよいらしい。JDKで指定したところ問題が起きなくなった。comment2019-07-20xargsでファイルの内容をコマンドの引数として渡すLinuxdates.txt2019-01-012019-02-012019-03-01みたいなファイルがあった時に、このファイルの行をxargsコマンド経由で任意のコマンドの引数として渡す方法。7701以下は2018年モデルのGeekBenchのスコア。comment2019-07-012019年6月の振り返りReview2019年がもう半分が過ぎてしまった。2019アウトプット6月は頑張ってブログを書いた。それなりの分量の記事を書こうとすると週に1個が限界な気がするので、良いペースだと思う。journal睡眠1日6時間以上寝る、ということを今年の目標にしている。ヘルスケアアプリによると6月は平均6時間13分だった。毎日6時間以上の睡眠ができているわけではないので、これは今後の課題である。業務で必要なものを身につけるこれは以下の3つに絞る。これ以外は必要になったら勉強する。GogRPCSQLを復習するGoについては、Go言語による並行処理という本を読んでいるけどとてもわかりやすくてよい。6.0に下方修正する。勉強は相変わらずできていない。電車の中の隙間時間でなるべくやるのが良いのだろうけど、Goの本を読んだりするほうが楽しいのでそっちをやってしまっている。アルゴリズム特に進捗なしまとめ6月は仕事がかなり落ち着いてきたのでプライベートの勉強がかなり捗った。来月もこれぐらいのペースで頑張って行きたい。comment2019-06-17GoのcontextによるキャンセルやタイムアウトGoこれはなに?Go言語におけるcontextパッケージを使ったキャンセルやタイムアウトについて説明する。この記事を読むと以下について詳しくなれるはず...!context.WithCancelcontext.WithTimeoutcontext.Donecontext.Errとはいいつつも、かなり自分向けのまとめではあるし既出のトピックなので以下の記事を読むともっとわかりやすいはず。channelを使ってキャンセルを行うコードを書いてみる。これはGo言語による並行処理のP.137に記載されていたサンプルプログラムを少し修正したものである。localeの関数をキャンセルしたい、ということである。world!が出力されるかもしれない)。world!実行の流れとしては以下のようになっている(この図もGo言語による並行処理から引用)。printFarewellのgoroutineが終了したので、main関数は処理を抜ける。}}()上のように修正して再度プログラムを実行すると、以下のように出力される。canceledcanceledがprintGreetingのerrorとして返ってきた。channelがすでにcloseされたため、selectのこのcaseに処理が来たということである。...}このようにprintGreetingやprintFarewellをchannelをcloseすることでキャンセルを実現することができた。それでは次に、contextパッケージを使ったキャンセルのやり方を見てみよう。channelの例をcontextを使って実装し直してみよう。channelの実装と比べた場合のポイントとしては以下である。これによって末端のlocaleまでctxを引き回しているこのプログラムを実行してみると、以下のような出力になりcontextを使ってキャンセルが実装できたことが確認できた。これがcontextパッケージの大きな機能の一つである。canceledctx.Doneはcontextがキャンセルされるまでブロックされる受信専用のchannelを返す。context.WithTimeoutを使うことでそのような実装が簡単にできる。genGreetingでcontext.WithTimeoutで1秒後にタイムアウトするようにして新しい子のcontextを生成する。するmain関数のprintGreetingを呼び出すgoroutineで、printGreetingが失敗したら他の関数呼び出しをキャンセルするためにcancelを呼び出すこのプログラムの実行結果は以下のようになる。canceledまとめcontextを使うことでキャンセルやタイムアウトが簡単に実装できることを説明した。この内容については以下のGo言語による並行処理にすべて書かれているし、よりgoroutineや並行処理について知りたい場合はこの本を読んでみることを強くオススメする。