2019年2月12日

Japan Journal of HOGE(検索避けの伏せ字)という雑誌からの勧誘が鬱陶しい。 調べてみると、Japanese Journal of HOGEという(おそらく)まともな雑誌があり、それとの混同を狙っているものらしい。 この雑誌の出版社を見てみると、「Japan Journal of HOGE」の他に「British XXX」や「American XXX」はては「Europian XXX」もあり、 怪しさ大爆発。しかも「High Quality Publication」を謳っているのに、ウェブに誤字脱字があるのも痛い。 複数の雑誌を束ねている出版社なのに、受付と投稿先のアドレスが一つしかない。こんなにわかりやすいPredetory Journalは久しぶりに見た。

最近、プログラムを組もうとするときに「二時間の障壁」を感じることが多い。プログラムを組むとき、「あそこ組んで、テストして、これが通ったら次にこれ組んで・・・」ってだいたいの 想定終了時間を考えると思う。もちろんすべてうまく行った場合の想定で、往々にして想定の二倍近く時間がかかったりするがそこはおいておく。 このとき、想定時間が二時間を超えると、腰が重くなる。いま、連続した二時間のコーディング時間をなかなか取れないからだ。 普段、スパコンを使っていない人が、スパコンが必要となる計算量を無意識に却下するように、二時間以上かかりそうなプログラムを無意識に却下しようとしているんだ。 これはいろいろ悲しい。

clang-formatで、一行が長すぎるときの改行を無効にした。.clang-formatに

ColumnLimit: 0

を追加。数独の入力だけで81桁いくから、改行リミットがあると変なところで改行が入ってやりづらくて仕方ない。

かなりわかりにくいバグに苦しんだので覚書。 数独で、ユニット内の一択を探し、その一択について数字を埋めるコードをがあった。 それを、ビット演算を駆使して、複数の一択を同時に探すコードを書いた。 しかし、ビット演算版は、解が一意なはずの問題を食わせたのに複数の解を返すようになってしまった。 原因は、再帰をすると、同じユニットに同じ数字の一択が複数できる場合があるため。 これが発生したら「invalidな枝である」として再帰を切らないといけない。 元のコードは、一つ数字を決めるごとにreturnしていたため、毎回ビットマスクを作り直していた。 しかし、新しいコードはあるビットマスクから、複数の候補を同時に抽出しており、かつ その際にvalidity checkをしていなかったため、 「同じユニット(例えば同じ行)の別の場所に同じ数字を入れる」ということをしてしまっていた。 うーん、これはわからん・・・。