Zinnia hacks tomorrow. (2020/11)

2020/11/03 (Tue)

_ 先週金曜くらいから夜はかなり寒くなっており、そろそろ上着がないと きついかな (結局着てない) という感じになっている。 気付いたらもう11月なのだ

_ 妻の派遣先でもようやくテレワークが始まりそうらしい。テレワークが始まるまでの 動きの鈍さを見ていると平和だなーと思えてしまうところだが、まあ 始まるのであれば喜ばしいことだ。なにしろ自身が感染する可能性に加えて、 感染源になる可能性も大きく減らすことができるのだからな

_ で専用のPCを自宅に置いてそれを使って作業するらしい。 Amazon WorkSpacesを使うらしい。そして自宅の環境側にとくに求める要件は ないようだが、一方でこちらとしては そんな物騒なものをLAN内に入れたくない。

_ もともと事務所に入れてあるRTX1100は、ゲスト用にLAN3のネットワークを 設定してあるのでそっちに収容すればいいか〜 もう何年も来客を受け入れる体制に なってないからな


= 漏水?

_ 19時過ぎにフロから出てきた後、 台所に謎の水飛沫が散乱していることに気付いた。 勢いよく水を出して飛び散ってしまったかしら? 酔っぱらっているわけでもないのに?と釈然としない気分だった。 そしていろいろ拭きとって数時間後に見てみたら再度水飛沫だらけに… 上を見てみると、換気扇から水滴がなかなかの頻度で落ちていた。 ふむふむ… 見なかったことにしたい


2020/11/04 (Wed)


= 漏水

_ 昨日より垂れる量が増えているようだ。両手鍋ではちょっと心配だったので 先日買った折り畳みバケツにしておいたところ 寝て起きたら半分くらい溜まっていた。確かこいつの容積は9Lだったと思うので……どのくらい溜まったんだ? (割り算くらいできんのか)

_ さすがに見なかったことにはできないので大家さんに連絡した。 わかりました調べておきます、と言われて会話は終了。大家さんは 1Fにいるので、3Fから1Fにエレベータで降りて、呼出して、会話して、 よろしくおねがいしますとエレベータに戻ってきたときには、まだカゴの中の電気が ついていた。こいつは1分経過すると自動消灯するので、つまり呼出しから 会話終了まで1分足らずだったということに

_ 換気扇から垂れてくるものの他に、壁を伝っているものもあるようでレンジ台にも 水溜まりができていた。バケツで水を受けるときにも飛沫が飛んだりして 恐いので電気製品のコンセントは抜いて、壁面の電源+アースとるところに 養生テープを貼って封印した。


= 最近のKotlin

_ 落し穴的なものにはひと通り落ちたので (落ちたのか) だいぶ戸惑いが少なくなってきた。 ただ戻り値の型を書き忘れるというのは今でもよくやってしまう。 そのくらい型推論できんのか、と思ってしまうが理由があるのだろう。

_ Scope functionsも目がだいぶ慣れてきた。 ドキュメントの説明を読むよりも、 実装を見た方が早い気がする。

public inline fun <T, R> T.let(f: (T) -> R): R = f(this)
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()
public inline fun <T, R> T.run(f: T.() -> R): R = f()
public inline fun <T> T.apply(f: T.() -> Unit): T { f(); return this }
public inline fun <T> T.also(block: (T) -> Unit): T { block(this); return this }
これ見れば何が引数で渡されてくるか、何が返るのか、が一目瞭然だ。 Function literals with receiverのところを 多少は知っておかないとthisがどうなっているのか見えづらいところがあるけど、 使われ方と、この実装を見ればだいたい分かるだろう

_ Scope functionsの存在や、IDEAで出てくる各種提案を見る限りでは 一時的な変数をできる限り減らしたいというイデオロギーを感じる。 私の経験的にもスコープはできる限り狭く、 そして余計な変数は少なくしたいという欲求は強いのでよい習慣だと思う。

_ ?.let みたいなイディオムを考えると、 Kotlinでは、null参照がある可能性を考慮しないプログラミングを 防ぎたいという動機があるだけで、nullそのものをなくしたいとは 考えていないのだろう。実際ドキュメントの中にあるようにtakeIfなどは フィルタにひっかからなければnullが返ってくるわけだし、 撲滅するべきはnull参照ではなくNullPointerExceptionのほうだ、という 話なのだろうと理解している。

_ でそのscope functionは、イディオム的なもの、 たとえば先程の ?.let 、ローカルスコープを作るための run {}、 ログ吐いたりするための also 、など以外は だいたいletで済ませてしまっていいような気がする。 あんまりスコープ関数だらけにしてしまうと 隠れたコンテキストが分かりづらくてobfuscationぽく感じられてしまう。 書いているほうは気持いいのかもしれないが…



= 漏水

_ 日中上の階で何か電動工具を動かしている音がしていたので、 何らかの対応をしているのかな? 水滴の勢いは16時過ぎまでほとんど変わらず、 それ以降いきなり頻度が減った。やった…か? (フラグ) あらためて様子を見てみたら昨日の夜と同程度という感じだ。 今日の日中みたいな頻度で降られたら一晩で バケツ一杯分くらいいってしまいそうなのでよかった。

_ しかし垂れている場所を考えるとへたにバケツで受けるよりそのまま流し台で 受けてしまってもよいような気がしてきた。この流し台は縁の部分が少し せり上がっているので、水滴が弾けないような工夫さえできれば床に流れ落ちることはない。

_ それにしても何が垂れてるんだ? (今更) バケツに溜まった水を見ると 黄色味がかかっており、ケミカルというのか、錆なのか、 そういった感じの匂いがする。昨日から9Lのバケツ一杯分は 受けとめているので…つまりどのくらいなんだ? (しつこい) それだけのものが溜まったまま少しずつ流れているというのは 考えづらいので、常に水源から少しずつ流れているという方が現実味があるだろう。

_ あるだろう (キリッ) はいいとして、いつおさまるんだろ… 台所がほとんど 使えない状態になっていてとても不便だ


_ 今日はえらい寒くなった。単に上着を羽織るだけではちょっと不足で、 コートが欲しくなる寒さだった。もう真冬だなあ〜と思ったが気温は11度までしか 下がっていないらしい。室温は21.1度


2020/11/06 (Fri)

_ 2日2晩続いた漏水は、今朝になってようやくおさまったようだ。 昨日はなかなか大家さんがつかまらず、ようやくつかまえて実際に漏れている 様子を見てもらい、最終的には「上の階の水栓を締めた」ことにより 解決したらしい。水栓を締める? ということは開けたらまた漏れるということかな? ともやもやするが、賃借りしている身としては 家主が解決したと判断している以上は証拠保全以外にできることはないので あと数日様子見をして漏水がもうないようならいろいろ避難していたものを 元に戻して生活することになるかな〜と思う。


= 最近のAndroid

_ configureBlockingをfalseにしたDatagramChannelであっても NetworkOnMainThreadExceptionが出てくるというのがよくわからない。 この状態でもUIスレッドをブロックする可能性があるのだろうか?

_ android.os.NetworkOnMainThreadException and non blocking sockets - Stack Overflow で 同じようなことを言っている人がいた。しかしもう何年も前の話だ。


= 最近のYouTube

_ 広告再生時にGood/Badのボタンがたまに出てくるようになった。 常に出てくるわけではないようだし、Badを押したところでそれが出なくなるという 動きをしているわけでもない?ように見える。 もしそうなってくれれば、 以前書いた、これだけはもう見せないでくれ という希望が満たされてよいと思うのだが…しかしちょっと気に入らないという 程度で常にBadを選んでしまっていると、最終的には Badを選ばなかった少数のCMが繰り返し出てくる…なんてことになるのだろうか。 我々はArchonstormという 悲惨な前例を学んでいるのでそれは避けたいと思うのだった。

_ とはいえ楽天関係のCMと、 あとここ1〜2ヶ月よく出てくるなんとか不動産開発のCMが不快でしょうがないので 積極的にBadを押すようにしている。 あのCMは、大声を出す、台詞に割込む、私の愛している「新世界より」を exploitしている、エキセントリックなキャラが多い、 といった要素に加えて、中心人物? の話している内容が 本気で聞きとれない。早口というわけではないんだけど、 強弱がおかしいのか、活舌の問題なのか、もう何十回も見せられているのに 何を言っているのか分からない、という状態なのも不快に思う 原因のひとつになっている。あまり細かい描写をして記憶を定着させてしまっては 元も子もないのではっきりとは書かないが…


= Archonstorm

_ noticeを見る限りではNetHackの次のバージョン (3.7) では Archonstormはもう起きない?か、起きづらくなっているみたい。


_ 部屋が寒い。といっても室温は22度ちょっとなので決して低いわけではない… はずなのだが、上着を羽織るだけでは手先や足が冷えてしまいけっこう辛い。 手が冷えるとキータイプもしづらく、そして関節炎にもよろしくない。

_ とはいえ、もうしばらくは厚着+αでどうにかしてゆける季節だろう… 手はカイロを使って暖めるか? まあ湯たんぽでもいいか


2020/11/09 (Mon)

_ 入眠に失敗してしまった。過去何度も記述した、寝入りにいきなり目が覚めてしまい それっきりさっぱり眠れなくなってしまうやつ。今回は 20分くらい寝た後、唐突に目が覚めてしまい、それっきり眠れなくなった。 押しても引いても眠れないのであきらめて起きた。

_ 眠れないのに無理にフトンに入っていても仕方ないが、 押したり引いたりする以外に工夫の余地があるのであれば それは知りたいところだが…

_ 二日二晩の漏水に晒された台所の掃除。飛散した水滴に含まれる謎成分によって あちこちがこなこなしてしまった。こなこなしてしまったままでは不潔なので ひと通り全部洗った。ついでにもともと汚れていたところも掃除して、 わりとすっきりした。


= アメリカ大統領選挙

_ 投票というイベントを信頼性が高い状態で完遂させることが決して 簡単ではないとはいえ、毎回のように集計に対して不正を疑うような 話が出てくるのは不思議な感じがする。COVID-19の対応を見ていても、 普段からよく目にする「州によっていろいろ異なる」みたいな表現を見ても、 アメリカって自国内の問題について 国全体で足並を揃えて何かをするというのが実はとてもむずかしい 形になっているのかしら?という疑念を覚えてしまう。他国との問題などは ベクトルを合わせやすいんだろうけど… みたいな勘繰り


= DNAウイルス

_ DNAウイルスはDNAに遺伝情報が入っているので増殖中に発生したコピーミスは DNAのコピーの仕組によって修正されてしまう→ RNAウイルスと比べて 変異の可能性がとても低い、という話なのか。天然痘が根絶に 成功した理由として、DNAウイルスだった、というのも大きいらしい。


= サンストリート亀戸

_ 何かのニュースでサンストリートの跡地に別の商業施設ができる? といったことが 書いてあって、えっサンストリートってもうないの? と驚いた。 とくに思い入れがあるわけではないが、流しの頃に亀戸のウィークリーマンションを 利用していたので、駅前の施設といえばここだった。たしかTSUTAYAなどを 利用した記憶がある。

_ で、驚いたのは驚いたのだけど、なんだか以前にも同じようにえっもう無いの? みたいな驚きを覚えたような気がしている。最近物忘れが激しいので 自分の記憶があまり信じられなくなってきた。ただ思い出せないだけでなく、 偽記憶を作り出しているのではないかという疑念も


= duolingo english test

_ 今読んでいる本で紹介されていた。TOEFLやIELTSはiBTといっても会場に 赴かなければいけない (ここのところその制限は緩和されつつある? された? ようだけど) のに対して、 このテストは環境さえ整えれば自宅で受けることができるらしい。

_ duolingoというのは、 言語学習プラットフォームらしい。CEOのひとはReCAPTCHAを発明した人らしい。


= 少佐@Neetpia-新作企画中 on Twitter: "先日話したプログラマでもできるUI素材の作成方法についてまとめました!原色赤緑MSゴシックのHPバーもちょっとの工夫でおしゃれなHPバーになります。是非とも参考してみてください! https://t.co/uFmBIUhmLf" / Twitter

_ ああーこれは勉強になる。アーケードゲームなどでよく見掛ける スタイリッシュなUIに近付けるために手をつける内容がとても 分かりやすく図示されている。これを見ればすぐにでも自分で作れるぜーということは ないんだろうけど、要素ごとに分解して段階的に改良している様子を見ることが できたというのは大変によいと思った。


= Reading Ruler

_ O'Reilly Online Learningで本を読んでいると、やはり視線の移動が うまくいかないときがあって読むスピードをなかなか上げることができない。 無理矢理速く読もうとすると単に視線をすべらせているだけで中身が 全然入ってこない、など。 Kindleなら読み上げ機能と併用することでかなり改善できるのだが…

_ そして紙の本ならReading Rulerを使うとだいぶ改善される。ただ 紙の本の場合はRulerを這わせるのはわりとめんどう。なにしろ本は 厚みがあるしページを180度見開きにすることができないので、 その状態でRulerを当てたまま滑らせるというのはけっこう大変。

_ O'Reillyのやつはブラウザで読むだけなので、なんか アドオン的なものでReading Rulerぽいことできないかな…と探してみたところ、 Rulerそのものではないが BeeLine Readerというのが ちょっと興味深いと思った。余計な部分を見せなくする他に、 本文を黒→青→赤→黒→ とグラデーションさせることで 視線の移動を補助するらしい。

_ Rulerぽいやつは、単にRulerを置けますというだけで、 位置調整やらスクロールやらは結局手でやらないといかんというものが 多く、せっかくPCなのにもうちょっと工夫の余地はないもんかと 思ってしまうのと、あとなぜか謎の権限を求めてきたり、他のアプリの 説明文をそのままコピーしていたりと怪しいものが多かった。

_ KindleのReaderにもRuler機能がついている的な記事をいくつか見つけた。 ただいずれもiOS版のアプリの話しかしておらず、Fireでできるのかどうか不明。 Fireは数ヶ月単位で自宅内行方不明になっていたものを先日ようやく発見した (すぐ近くの棚の中にふつうに入っていた…) のだけど、なんか 本が読めない。本を開こうとすると真っ白な画面のままだんまりだ。 また何か機嫌を損ねているのだろうか?


= 脳外科辞典

_ MediaWikiで作られた脳外科関係の用語集らしい。 書いているのは研究者や臨床の先生たちで、 対象となる読者は同業の方々というよりはむしろ一般の人々らしい。 ただ記事の改訂はあまり頻繁ではないようで、ページによっては DSM-IVの内容のままだったりするようだ。

_ 念慮と妄想ってどう違うんだろう?と検索している最中に発見した。 念慮はidea、妄想はdelusionの和訳らしい。


= 木工パテ

_ 折畳み机の足を押さえる部品を留めるための木ネジがひとつ外れてしまった。 机を開いた状態で上からの力がかかると、間接的にそれらのネジに力が かかるようになっており、その力に負けて木から外れてしまったらしい。 なので木工パテを買った。

_ このパテは乾くと木ねじを打ったり、ドリルで穴を開けたりできるくらい しっかり固まるそうなので、本来は穴の周辺を綺麗にした上で このパテで完全に埋めた後、再度木ねじを通す… というのが正しい修理方法なのだと思う。しかし私は横着なので 開いた穴にパテをつっこみつつ、外れた木ねじにもパテを塗った上で 押しこみ、溢れたパテを拭きとるという手抜きをしてしまった。これで きちんと効果を発揮してくれればよいのだが


_ 結局4時前まで眠気がまったく訪れず、しかし眠らないわけにもいかないので横になった。


= 築地 (場外)

_ 妻に誘われ行ってきた。築地は初めてだった。睡眠不足と寒さなどがあり 食欲があまりなかったが、卵焼き、生カキ、海鮮丼、などを食べた。 海のものは普段あまり喰わないので新鮮なものは久しぶりだった。

_ 帰りは走ってみた。八丁堀→茅場町→水天宮…を通って、隅田川を渡って 両国経由というルートで、7kmちょっとを1時間ぴったりのゆっくりペースだった。 しかし普段走っているルートよりも起伏が多く足に負担も多かったようで 両足の脛がわりと痛くなった。


= アジャンタ

_ 妻が以前行っていた会社の近所だったとかで昔はよく食べていたらしい。 弁当を買ってきてくれたので初めて食べた。かなり辛いがおいしかった。


2020/11/10 (Tue)

_ 寒さがさらに進行しているようで日中も15度前後までしか上がらず、 室温も、起きてすぐは20度を切るくらい、日中も22度くらいまでしか上がっていない。 なのでエアコンつけるほどではないが上着だけでは少し寒い。なので 湯たんぽを導入してみた。指を暖めたりできてよい。

_ タオルを巻いた湯たんぽを薄手の上着の懐にしのばせてみる。 湯たんぽは600mlの小さいやつなので、さほど重くないし身動きに不便はない。 ただそれなりの温度なので何時間も装着していると低温やけどが心配だ。

_ まあいろいろ工夫すればもうしばらくは暖房なしでやってゆけるかもしれない。 米沢にいた頃は室内のものが凍るくらいの温度の中暮らしていたわけなので それを考えると今の寒さへの耐性のなさは同一人物であることを疑わせるに 十分だけど、Web日記で著者が途中で変わっているとしたらかなりのミステリだろう。 それはそれとして、つまり寒さに対する忍耐力を一生分使い果たしてしまったのだろう。 今でも当時の冬の辛さを思い出すのは苦痛を伴うし、晩夏〜秋の変化を 感じるようなイベント (つまり寒くなったということでしょうね) を 目のあたりにすると、長く苦しい冬の圧倒的な気配に絶望を覚えることになり、 しかしもうここは米沢ではないし部屋には暖房があるのだ、 と悪夢から目覚めたような気分になるのだ。


2020/11/11 (Wed)

_ 今日も寒い。時計はBRAVIAのすぐそばに置いているので、 それに内蔵されている温度計はBRAVIAがついているかそうでないかで 2度くらい変わる。寝起きや外出後などはもちろんBRAVIAは消えたままの状態なので、 その状態が実際の室温に近いのかな。今日は18度〜19度台で、 昨日までよりさらに寒くなったようだ。


= 最近のKotlin

_ IntelliJ IDEAでコンソールアプリ (JVM) をつくったものに対して、 gradlew run でIDEAを起動しなくてもそのアプリを実行したい… と思ったまま ずっとやりかたが分からないままだった。 それまではIDEAの実行画面に表示されている コマンドライン (とても長い) をコピーして使っていたのだが、updateがあるたびに 動かなくなるので困っていた。

_ さすがに不便なのであらためて調べてみると、 どうやらapplicationというプラグインがあり それを使えば簡単に出来ることが分かった。ほんの数行で済む話を 月単位で放置してしまっていたのか


= 体調の話

_ 今年はCOVID-19への警戒から感染症に対する自覚が強化されたおかげか、 カゼらしいカゼをひいていない。そのかわり肌あれがひどい。 手はガサガサだし、アトピーもあちこちで悪化している。 手のガサガサ具合は、とくに出先でこまめにアルコールを使うからだろう。 グリセリンとかを配合しているものもあり、手荒れを多少は緩和しようと しているのかもしれないが限度があるのだろう


= Symbolic execution

_ shinhさんのメモを 見て、へーそういうのがあるのかーというか、 恥ずかしながらそもそもSymbolic executionというものを知らなかった。

_ いくつかスライドやホワイトペーパーを読んで勉強。 .NETの世界だとPexというのがあるらしい。


= 車輪が落ち葉で空転、列車が上り坂走行できず11キロ逆走 JR奥羽線 : 鉄ヲタちゃんねる

_ 板谷峠あたりだろうなあと予想しながら開いたらやはりそうだった。 赤岩〜板谷間らしい。


= ローカルのリポジトリをどっかに上げる話

_ ローカルで開発を進めていって、少し形になってきたら GitHubなりに上げてゆく、というときにとるべき手順はどんな感じなんだろ? ということがよくわかっていなかった。 新しいプロジェクトを作りたての状態で、README.mdも作らなければ --set-upstream でupstreamを設定してからpushすればよい。

_ GitLabだと存在しないプロジェクトを指定してpushすると privateなプロジェクトを作ってくれるという機能がある らしい。 他に乗り換えるときなどはimport/exportを使えばissuesなども おひっこしできるんだろう。 gitコマンドにはmirrorオプションというのがあるのでそれを使う方法もあるんだろう。 私はローカルの履歴を完全に複製したいという欲求はないので 今のところそれを使うつもりはないが…


= Azure DevOps

_ 単にGit repositoryの公開先として見た場合は大袈裟だけど (Azure DevOps Reposしか使わないし)、 MSDNのSubscriberは追加費用なしで使えるので開発フローをきちんと これに合わせるつもりで取り入れるのもよいかもしれない。


= Gitのスケーリング(と、その背景) | POSTD

_ Microsoftはオープンソース化したものをけっこうGitHubに公開しているが、 社内の開発はあいかわらずSource Depotなのかな? と疑問に思い あちこちまわっている最中に見付けた記事。


2020/11/12 (Thu)

_ ようやく妻が今日からテレワーク開始になったらしい。

_ Amazon WorkSpacesがうまくつながらないとかで様子を見る。 Amazon WorkSpaces の IP アドレスとポートの要件 - Amazon WorkSpacesを読んで、 えっこんなにポート開けないといけないの?と戦々兢々としたが、 Remote Desktopがつながる程度のポートの開き具合であればよかったようで、 とくにフィルタ変えなくてもつながったらしい。


= Ghost of Tsushima

_ 桜ころみんさんの プレイ動画 (再生リスト) を 追い掛けて、先月見終えた。これはすごい作品だった。 ただ映像が綺麗で白黒映画時代の剣戟を指向したアクションゲームという 第一印象は大きく裏切られた。 圧倒的に美しい映像に加え、登場人物達の思いや苦悩、衝突などを描き切っており、 一方的な視点の押しつけでない細かな描写が本当にすごい。 これが海外メーカーによって (もちろん日本スタッフの協力もあったのだろうけど) 作り上げられてしまうというのは大変な驚きだ。

_ 以下ねたばれにならないように記述しているつもりだが、気になる人は スキップをおすすめする

_ 起こったことや、自身の選択に対して強く感情を動かされているプレイヤーが とても多かった。ここまで強い反応を起こさせるのは、 やはりその臨場感によるのだろう。 私はそれらを間接的に見ているだけとはいえ、 長大な時代劇映画を見た後のような充実感があった。

_ 自分でプレイしてないのに実況動画を見て楽しんだ気になることに対する 後ろめたさというのは以前ほどなくなったような気がするが、 それでも自分でやっていないことによる臨場感の違いというのは大きいようで、 しかも編集して整理されたものを見ている状態と、実際に長時間プレイしている 本人の感覚は当然違うだろう。自身が名付けた馬に対する感情移入などで それを強く感じた。それとやはり、多くのプレイヤーが「誉アレルギー」に近い 状態になっているのを感じる。 何をもって統治するのか、という部分や、志村の言うところの、民が恐れる、という 感覚は非常によく分かるのだけど (実際、民衆との関係が危うくなる瀬戸際のような 描写は複数見られた)、 それは視聴者として一歩引いているからこそできる見方なのかもしれない。 苦悩の末、自らの意思で侍らしい戦い方を捨てたプレイヤーと、 それを見ているだけの私という違いがあるのだろう。

_ なお音声は日本語、字幕を英語、という組み合わせでやっている人もいて、 英語での表現にいろいろ興味深いものがあったのでいくつか記録しておく。


= PlayStation5

_ 今日発売なのかな? PS5の実況動画が出始めた。 家にはFullHDより高解像度の映像を映し出す環境がないのもあり、 いまひとつその変化の大きさが分からないのだが…

_ と思ったが、 ころみんさんの スパイダーマン新作のプレイ動画を見てたら、 やっぱりものすごい綺麗だな… なお桜ころみんさんは「ころな」さんが改名した新しい名前だ。 改名の顛末は名前を変えます。その理由とこれからのこと - YouTubeで語っているが… なんともやるせない話だ。


= ゲームを見ているだけの話

_ 昔からゲームは自分でやるより他の人のやつを見ていることの方が多かったような 気がする。兄や友達がゲームをしているところを見ている方が長かった。 自分がやるより、うまい人の様子を見ている方が楽しかったからな


2020/11/13 (Fri)

_ COVID-19は再流行がはじまっており、今度は東京都だけでなく各地で 100人/日を超える感染者が出ているようだ。


= モニタつきスマートスピーカー

_ COVID-19の流行以後、両親が買物に出るのも気をつかうようになり 通販の依存度を増やしたいらしいのだが、なにしろPCやスマホ、タブレットなどを 表面的にしか使ったことがない人達なので (最終確認メッセージ「本当にこれでよいですか」を、こちら側が本人かどうか 疑っていると理解してそこで止めてしまうような感じで、 それが何を意味するのかを考えずにほいほい押してしまうよりはよっぽど よいものの、それが何を意味するかを最終的に理解できていないので不信感のみが 凝縮されているような感じ)、自然と操作説明を求められることになる。が、 電話越しではわからんので結局何も進まないということになりがちだ。

_ これまでは欲しいものがあれば言ってくれればこちらから注文して送る…という ことにしていたのだが、やはり気を遣うようで自力でなんとかしたいという気持に なっているらしい。 COVID-19の流行を考えると万が一にも我々から両親に感染させてしまっては 取り返しのつかないことが起こるので、わからんと言われるたびに赴いていって 操作説明をする…というわけにもいかない。

_ なのでモニターつきのスマートスピーカーを導入して、テレビ電話がわりに使えば 通話料の節約にもなるし、操作説明もできるし、いろいろよいのではないかという 考えに至りつつある。一度は設置するために赴かなければいけないが、 それ以後はテレビ電話で解決できる範囲であればその場で解決できることになる。

_ そう思いながらその手の商品を調べてみた。AmazonはEcho Showというのを 出しているようだ。GoogleはNest Hubというのがそれにあたるらしい。 AppleのスマートスピーカーはHomePodというらしいのだが、モニターつきモデルが あるわけではないようだ。実家にはiPadがあるので それと連動させればよいのかもしれない… が、それなら最初からiPadでどうにか 頑張ればよいとも言えるし、そもそも操作説明はそのiPadの操作であることが ほとんどなので、ふたつのことを同時にさせるのはむずかしいだろう。 LINEも出しているようだが私自身がLINEを使っていないので選択肢から外した。

_ いずれかのものを実家に置いていったとして、同じものを こちらに入れる気はないので、こちら側はPCなどで応対できるものが必要だ。 となるとそれぞれの機械がどのように通話を実現しているのかを理解する必要がある。

_ Echo Showは、そもそもamazonのアカウントを持っている人同士でしか ビデオ通話ができないらしい。で、かけるのはAlexaアプリで可能なようだ。 となるとスマホかFireということになるか。PC用のアプリがあったかどうかは 覚えていない。 一方的にビデオ通話が開始できるAmazon Echo Showが実家ホットラインに最適によると、 「呼びかける」という機能があるらしい。 うちの両親は家電の電源を入れっぱなしにするという発想がない (テレビも毎回主電源から切ってしまう… 故障の元だからやめたほうがよいと 何度も言っているんだが聞く耳を持たない) ので、 おそらく何かこの手の機械を置いても普段は電源を切っているか、 何か布でも被せて隠しておくだろう。なので事前に別の手段 (電話とか) で ビデオ通話をはじめる旨を双方同意してきて、こちらから呼びかけることが できれば操作らしい操作もないままビデオ通話が開始できそう。 Echo Show 5のテレビ電話の5つのかけ方とつながり方(Amazonアカウントが同じ場合と異なる場合) | たんてったんブログは、 呼びかけとビデオ通話の挙動についてとても詳しく書かれている。 事前の検討をするためにはとてもありがたい。 Amazon.co.jp ヘルプ: その他のプラットフォームのAlexaによると、 Windowsアプリもあるらしい。

_ Google Nest Hubとのビデオ通話は Duoというサービスを使うようだ。 Hangoutではないらしい。というかHangoutはChatとMeetに分かれて 今後はなくなるらしい… DuoはChromeからも使えるようなので、こちらの環境としては一番融通がききそうだ。 父親はAndroidのスマホを使っているので、ただの通話であればそちらを 使ってもよいわけだし、同じように使えるというメリットは大きいかもしれない。 ただGoogleのアカウントの他に、Duoのアカウントが必要…?と読めたんだが、 今でもそうなのだろうか?私がDuoのサイトにアクセスしてみたところ、 とくに登録を求められることもなくAndroidの中に入っている連絡先がいくつか 出てきた。

_ スピーカー内のアプリの出来についてはあまりよくわからない。記事の多さや 露出度を考えるとEchoの方が利用者が多いような印象を受ける。 まあ最上位機種じゃなければすさまじく高いわけでもないので、ひとまず どちらかを買って設置してしまうのがよいかもしれない。 ただここに来て感染者が再度増えてきてしまっているので、この時期に 帰省するのがよいのかどうかは考えものだ。

_ LTE-Wifiルータ的なものといっしょに送りつけて、完全無人でやることも できないか…と考えたんだが、いずれも何らかのアカウントと連動しなければ いけないようなのでそれも難しいかもしれない。リモート初期設定みたいなものが できればよいのだが…さすがに難しいか

_ Echo Showは5インチ、8インチ、10インチがある。 Nest Hubは7インチと10インチらしい。7〜8インチだと画面が少し小さくて 物足りないかもしれないが、10インチだと最上位モデルになるようなので スピーカーの質が上がったりなんだりでかなり高くなる。 別にこれで動画を見るわけでもないし、単に画面がでかいだけの 安いモデルがあればいいんだが、そういうものは見当たらないようだ。 まあNest Hubの7インチか、Echo Showの8インチのどちらかかなあ (なお前者の方が5000円弱くらい安い)…


= 初期設定をよい感じでやる話

_ そういえばGoogle Home (現Nest) は設置するとスマホがそいつを発見して 無線の設定やら何やらをいろいろ勝手にやってくれていたような気がする。 Echoも似たような感じだったような… なのでうまくやれば うまく行くのだろうか? (意味不明)


= 最近のKotlin

_ Kotlinは参照型におけるnull参照とか、クラスの継承とかをデフォルトでは 許可せず、使いたいときにはそれを明示する必要があるというアプローチが多くて それ自体は好ましいと思うんだけど、一方でメソッドやプロパティがデフォルトで publicになるというのは一貫性に欠けるように感じられてしまう。デフォルトで 非公開で、公開したければpublicにする、ということで不本意なexportを防ぐことが できると思うんが、そのような動きは好まなかったということなのだろうか? とはいえIDEAとかAndroid Studioはこれprivateにできません?的な 提案をしょっちゅうしてくるので、結局デフォルトがprivateでよかったような 気がしてならない。


2020/11/14 (Sat)

_ 週末に1回会社に出とかないといかんのだが寝坊したので明日にする。 先日から再度通勤に公共交通機関使っちゃだめなフェーズに入ってしまったので 歩くか妻に車で送ってもらうか…ということになる。歩くと80分だからなー そして寝坊してからさあ80分歩いて会社に行くか…という気にはならないので 家で仕事したり他のことをしながら暮らすことにした。 SmartestHomeも普通に使えるようになってしまい進歩が止まってしまっているので そのあたりもなんとかしたい


= リモコンその後

_ SmartestHomeがひとまず動くようになったのが10/27で、 それ以来もともとついていたリモコンは片付けたままだが特に問題なく 運用できている。せいぜい、ちょっとBRAVIAのHDMI経由の音量を増減したいんだが そのための信号を学習させるのを忘れておりUIも実装できないなあーという程度で、 面倒くさがらずにやれば済むことをやっていないだけだ

_ ということでデータの取得だけしておいた。 あともともとのリモコンが不要になったとしても、 本当に全く使わないままだと劣化が心配だ。とくにテレビのリモコンは 放置するとすぐにベタベタしてしまうという印象がある。

_ それにしてもこの仕組がきちんと軌道に乗ってくれると家電を選ぶときの 基準もいろいろ変わるかもしれない。 おもちゃみたいなリモコンであっても学習させればSmartestHomeの 配下に入れることができるわけなので、アンプとかUSB切替器みたいなものも リモコンつきを探しておけばよかった… と今更にように思う。

_ SmartestHomeはWebアプリなので、家の中で動いているPCやスマホなどで それぞれ出しておけば全部がリモコンとして動いてくれるのでよい。 逆にブラウザ経由でないと操作できないので、朝起きてすぐにいろいろ操作する、とか、 夜中に操作しなければいけないことがあったときに、物理的なリモコンよりは 手数が増えるのでちょっと不便と言えないこともない。 ただこのあたりは工夫次第かなという気もする。単一の機能を持つ物理的なボタン、 たとえば枕元に置いたボタンで照明だけは操作できるようにするとか、 NFCかざさせるとか、で回避可能かもしれない。 あとはシーケンスの実装もできているので、 起きた! というときに一連の操作をする、なども可能だろう。

_ あと「押しっぱなし」が実装できていない。 音量の増減などのときは押しっぱなしがないとだめかもしれない。 ただ音量の増減自体をほとんどしないので (アンプとミキサをいじればいいので) 今のところまったく困っていない。技術的なねたとしては実装しておきたいところだが



= 最近のF#

_ あまり触っていない。F#関連の動画をラジオがわりに流している程度。

_ F# Code I Love - Don Syme - YouTubeは、 F#の設計者らしく成熟したもので、F#の便利な機能と、 使いすぎはよくないので節度をもってね、というバランス感覚がよく出ていて 勉強になる。

_ F# as a Better Python - Phillip Carter - NDC Oslo 2020 - YouTubeは、 本当に映像をちらちら見る程度で流していたのだが、 後半なんでこのひとはVS CodeでJupyterみたいな感じのことをしているんだろう? と気になった。Pythonのextensionでipynbを開けるのは知っていたが、 F#やC#のコードをいろいろ混ぜながらやっているこれは何…? どうやら.NET Interactive Notebooks - Visual Studio Marketplaceこれらしい。 現時点ではVisual Studio Code Insiders というプレビューバージョンでしか 動かないようだ。


2020/11/16 (Mon)


= こんにちわ

_ 今日は更新しよう、更新しようと思って2ヶ月くらい経過してしまった。 推敲を要するエントリが残ってしまうとどうしても更新が先延ばしになりがちだ… といいつつどのエントリが推敲を要するものなのかをすでに忘れているので 単に更新を忘れているだけなのかもしれない。歳はとりたくないもんだ

_ 今回の更新は9/11からです。 ポッキーの日ですね (2ヶ月後です)


= モニタつきスマートスピーカー つづき

_ 実物を見てその場で買おうかと思いいくつかのお店をまわってみた。 ヤマダ電機はスマートスピーカーの売場がなくなっていた。 ヨドバシで実物を見ることができた。 ただPC売場ではなくオーディオ関係の売場に移動していた。 ひょっとしたらヤマダ電機も場所が変わっただけなのかもしれない。 ともあれ、やはり7インチだとちょっと小さいな。 テレビ電話みたいな発想で見てみると10インチでもちょっと物足りないサイズだ。 しかしまあ7インチでも見づらいというほどではなさそうなので買って帰るか… と思ったら15000円を超える値段がついている。 あれこんなに高かったっけ? とその場で検索してみたところ9900円で売っている お店が多く、そしてヨドバシでも9900円で買えそうな雰囲気だった。なぞだ

_ あとやはりApple製品の売場面積が大きくとられていた。 HomePodのでかいのが実際に音楽を流しながら展示されていたのだけど、 かなりよい音のように聞こえた。おそらく他のスマートスピーカーでも 上位機種はこのくらいの音がするんだろう。 自宅の音環境をスマートスピーカーに依存したいという気持があまりないので、 すごいなとは思うが…それ以上の進展はないだろう

_ ともあれNest Hubを通販で買うか…と思ったら、 同価格で型番が違うものが2つ…?あるみたい。どうもひとつは古いモデルのようだ。 もうひとつは新しいのかもしれないがこれ最新なのだろうか?と気になって サイトを 見に行ったところ、とくに型番らしい記述がない… そしてそういったことを 眺めている最中に、Maxじゃない7インチの方はカメラがついていないことに 気付いた。えっそうなの?だめじゃないか。 しかしMaxは3倍くらいの値段だからなあ… 搭載されているものを考えると 決して高いものではないと思うんだけど、それらの機能はほとんど使わないと 思うので、ただテレビ電話のためだけに買うのはさすがに勿体ない。

_ Echo Showは5/8/10いずれもカメラつきのようだ。そしてEcho Show 10 の第三世代は 近日発売らしい…Echo Show 8 の入荷は12月、5は在庫あり… となると、すぐに導入できるのはEcho Show 5 か、Nest Hub Max の いずれかということに…



= Kotlin's scope functions in C# - DEV

_ Kotlinのscope functionsを触った後、 C#の ?. を見て、?. があるなら letくらいは欲しいところだな… 拡張メソッド使えばできる気がするが… と思いながら探してみたら見つけたサイト。 letとalsoを実装している。thisをどうにかするのはC#では無理なので applyはできないだろう。letだけでも十分な気がするけど


= Kotlinアンチパターン

_ 勉強になる。とくにapplyに絡む部分は普通に恐いなあと思った。


2020/11/18 (Wed)

_ 月末からのブラックフライデーでNest Hubとかが 安くなります〜というメールが来た。Nest Hub Maxは4000円くらい安くなるらしい。 うーむ今買うのはいろんな点でよろしくないような気がしてきた。 しかし来週には設置したいので待っていたら間に合わないのだ。


= 煮出し

_ 普段飲んでいるルイボスティはドラッグストアで買った3gずつ小分けにされた ティーバッグを使っている。これがまた、同じ商品を安定して入手することが むずかしいのだ。いきなり別商品になったり、100包に増量! といいつつ中身が1.5gに なっていて、もともと52包入っていたものを買っていたのでトータルで 減ってるじゃないか、というようなものもあり、小分けにされたものを 買うのは損ではないかという気がしてきた。もともと紅茶や ワイルドストロベリーなどは葉っぱで買っているので、ルイボスティもそうしようかな… と思って探してみたらあまり取り扱っているお店が多くない。

_ いくつか扱っているお店を見つけたのでそこの説明を見てみると、 ティーポットにお湯入れて…というやりかたの他に「煮出し」ができるということが 書かれてあった。もともとルイボスティは抽出に時間がかかるので 煮出しをするもんだという理解をしており、最近はティーパック的に使えて 便利だなあ〜などと思っていたもんだが、そういえば麦茶やコーン茶を除いて 煮出しという工程を踏んでお茶を作ったことがなかったのでよくよく読んでみると、 茶葉の成分を効率よく抽出できるので、大量に素早く お茶を作るにはよいやりかたらしい。今は3gのティーパックで600mlくらいの ルイボスティを作っているが、煮出しにすれば1lを超える分量もいけるかもしれない。 そう考えると普段の飲みかたが出枯らしになる前に捨てている勿体ないやりかたのように 思えてくるから不思議だ。


= .NET 5

_ そういえば出たらしい。Xamarinの統合は見送られたようだ。


= 文字にグラデーションをつける話

_ 先日見たBeeLine Readerみたいな見た目の グラデーションを、CSSいじることでつくれないだろうか。 もちろん色の変化をspanで埋めこんでいって…とやればできるんだろうけど、 HTMLが馬鹿でかくなるだろう

_ グラデーションのついた文字を作るというのは、 linear-gradientというのを活用するとできるらしい。 こいつが背景色に使えるので、文字色を透過にした上で使う… というやりかたになるらしい。 試しにそのようなグラデーションを本文に適用してみたところ、 たしかにグラデーションはしてくれるんだが、水平方向のグラデーションの具合は x座標が同じであれば同じになるので、視線の移動の助けになる… ということにはならないな。

_ あらためてBeeLine Readerのグラデーション具合を見てみると、色の変化はけっこう 緩やかで、数行にわたって黒→赤→青→と変わっているようだ。これを シミュレートするにはやはりHTMLを直接いじらないとだめだろうか

_ …グラデーションを水平方向にやっていたが、これを斜めにすることで多少は それっぽく見えるのかもしれない。ちょっとやってみるか

_ 斜めにしてみた。 本物とはかなり違うけど、視線の移動をスムーズにするという点では わりとよい気がする。 Javascriptでスタイルを編集させるようなコードを書いてみた:

(function (sheet, gradient) {
  sheet.insertRule(`p { background: linear-gradient(${gradient}); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}`, sheet.cssRules.length)
})(document.styleSheets[document.styleSheets.length - 1], "30deg, black, blue, red, green")
あとはこれをbookmarkletにでも…と思うのだが、私は幼少の頃より ブックマークを使うという習慣がないので (スマホでちょっと使っている程度) ブックマークバーも表示していない。まあボタンひとつで実行できる手軽さは 捨てがたいので、ブックマークバーを有効にしてみた。

_ ↑の設定だと背景が暗いZHTみたいなページに適用するとかえって 見づらくなってしまうので、ダークモード用のものも用意してみた。 しかしこの設定だと段落が変わるたびにグラデーションしなおしになるので、 ZHTみたいに段落が短かくて多いページだと繰り返し構造がまる見えで あんまりよろしくない。O'Reilly のページはかなりよい感じ… なのだが、 うまく働かないページがけっこうある。具体的には文字がまったく見えない。 どうやら個別にpのスタイルを設定しているとそっちが優先されてしまうようだ。 文字が見えなくなってしまうページは本文のpにbackground: transparent が 設定されていた。私のコードは、一番最後のスタイルシートの、一番最後のルールに 追加しているので、これが最優先されるはず…というつもりだったのだが、 うまくいっていないみたい。今後の改善が必要だ

_ 根本的な問題として、行が変わるタイミングで色が大きく変わってしまうというのが あるが、これはlinear-gradientだけではどうにもならんだろう。 読んでいる最中に視線があっちこっちに飛ばないようにするために 色が変わっているのだから、スムーズに読み続けるためには、次の行の先頭の色は 前の行の最後の色と合っていないといけないはずだが、まあ現状でも 行の途中での視線移動はかなり抑えられていると感じられるのでよしとする。


= 油揚げ・豆腐

_ 近所のだいにんぐ龍仙山というお店で 月に2〜3回は妻と食事をするのが楽しみになっており、 どれ食べてもおいしいしお店の感じもとてもよい。 そしてそこの油揚げと豆腐が驚くほどおいしかった。お店の方に伺うと、 区内にある豆腐屋さんから仕入れたものらしく、 おおまかな場所を教えてもらっていろいろ買って食べてみたところ、 やはりどれもすばらしくおいしいものだった。 ゆばと豆腐の店 豆源郷 ~東京都墨田区~tougenkyo toufuというお店らしい。 油揚げももちろんおいしいし、厚揚げも、湯葉も、豆腐もどれも大変おいしい。 なので週末の散歩で通りかかるたびに購入して楽しんでいる。 商品紹介のページにもある通り、油揚げや厚揚げは 油抜きしなくても問題ないし、トースターでじっくり焼き上げるととてもおいしい。

_ こんなすごいお店が15年も前からあったとは… そして豆腐は曜日限定のものが いくつかあるらしい。



= スマホやノートなど

_ ASUS Zenfone Max M1 は2018年12月に買った ので、こちらはそろそろ2年だ。大きな不満はないし特に壊れているところもない。 Androidが8までしか上がらなかったというのが残念かな〜というくらいだろうか。 まあAPI Levelが24超えていれば使いたいものが使えないと泣く機会はほとんど ないし、それより新しいのが必要なら会社のXperiaがあるし… ということで 急いで買い替えなければいけない理由はあまりない。

_ dynabookは5年前。 何度も落としたり酷い扱いをしてしまっているが今でも元気に動いている。 SSDをいれかえて、Ubuntuを1から入れなおしてから、操作不能になって 電源切るしかないというような固まりかたは数回しか経験していない。 それまでは数日に1回くらいのペースだったので改善してなによりだ。 VAIOは7年半前だけど こちらも元気に事務所用PCとして活躍している。

_ どちらも元気だけど、もう5年以上経過しているのだから いつ壊れてもおかしくない… とはいえ当時かなり背伸びして当時にしては 高いスペックのものを買ったので、今でも同程度のものを買おうとすれば それなりに値が張るだろう。一方で私のノートPCの使いかたも 少しずつ変化しており、もう少しスペックを落としたマシンでもいい気がしている。 新しいPCでUbuntuがまともに動かない…とかあっても困るし。

_ そうそうWin10とWSL2があるのでメイン環境をそっちに移行できるか… という 逡巡は今でもありつつ、仕事で使っている最中に遭遇する、 理解のむずかしいエラーやら挙動やらを見る限りではまだメイン環境として 使うのは厳しいかなという感じがする。


= イーロン・マスク氏、新型コロナ検査を1日4回したところ陰性と陽性が2回ずつ。「非常にいい加減」だと | スラド

_ RT-PCRでも感度が7割切るくらいらしいし、 それよりも感度が低い抗原検査ならそんなもんだろう、それにしても 「非常にいい加減」なんてそんな言い方するかね…というのが第一印象だったが、 extremely bogusと言っていたので もっとひどかった。 こういうこと言うからこの人の言動は害にしか感じられないんだろう

_ (2020/12/15追記) この人が嫌いすぎておかしなことを書いてしまった。 感度が7割切っていても特異度はほとんど100%に近いらしい (作業時のミスなどもあり100%にはならないらしい) ので、「そんなもん」が 正しいのはこの人が陽性だったときの話であって、当時〜その後の動きを見る限り この人は感染していないのだから extremely bogusかどうかはともかく 扱いがいい加減なのかしらという気は確かにする。


2020/11/19 (Thu)

_ 昨日の夕方あたりに、なんだか身体がだるく熱っぽいと感じるようになった。 実際に発熱はしておらず36度前半。

_ そして寝て起きたら身体のだるさと、発熱したときに感じる倦怠感が悪化していた。 検温したところ36度後半。私は平熱が低目で、 日頃は35度台なのでちょっと高めかなと思う。それに身体に感じるこの感覚は まさに何かに感染したときのあれだ。

_ 発熱・倦怠感・頭痛以外に自覚症状はなく、腹も壊していないし 鼻水もまったく出ていないし、喉も痛くない。セキは… 咽せるようなセキが日頃から出ているけどとくに頻度が上がった感じもない。 市販の薬と休養だけでどうにかなればいいのだが。

_ 冷えたら余計体調崩しそうだな…と着脹れをしてみたところなんか暑い。 どうやら今日はかなり暖かいようで、最高気温が25度超えているらしい。 夏日じゃないか


_ 打ち合わせ数本こなして定時で抜ける。 体温は37.4度まで上がっている。それ以外の症状に変化はない。 鼻もまったく問題なく通っているし、喉の痛みもないし、腹も痛くない。

_ いずれにしても今日はひきこもって安静にしておこう… 朝からクロワッサンとサプリしか摂取していない。食欲があまりないが、 薬を飲みたいのでソバでも作って食べることにする。


= 最近のぺんてる筆

_ 文字が擦れてきた。あれ、思ったよりインクもたない? まだA4のコピー用紙換算で 数枚しか書いてないのだが…どうやら軸の部分をブシューとやってインクを 送らないといけないらしいと後に気付く。万年筆みたいにインク部分が 自動的に送られてくるものだとばかり思っていた。そしてインクの送りかた次第で 濃淡がかなり出るので、一方では楽しくもあり、一方では書き味が一定せずに やりづらさを感じる。このあたりは慣れもあるのだろう。

_ 目に入ったり耳に入った文字を 郵便物の裏紙や、裏じゃない表の部分、封筒などに書いてゆく… というよくわからない行為を続けている。 最初はひょろひょろだった線も扱いに慣れてきたせいか安定してきて、 その上で強弱がつけられるようになった。とにかく適当な紙に脈絡のない文字列を 書き入れて、もう書けるところがなくなったら次の紙を探して…と繰り返しているので、 隙間なく文字列が埋まっている様子は耳無し芳一の身体を思い出させるものがある。 書いているのはありがたいお経などではなく、やれ証明書やら、 約定やら、新株予約権やら、日本工業規格やらと大変に脈絡がない。 なおJISは今は日本工業規格ではなく 日本産業規格という名前に変わったらしい。 ロゴも縦長の一筆書きのやつではなくなったようだ。知らなんだ

_ 郵便物に使われている紙はつるつるしているものが多いので、書いていて楽しい。


= Kotlin

_ InputStreamReaderにはreadLineがない?readLinesしかない?ようで、 これはストリーミングAPIでもないただの配列を返すメソッドなので使いにくい。

_ 一方java.nio.file.Files.lines というやつはストリーミングAPIで行単位の 読み出しができるものらしい。なのでこちらにしようかな…と思ったが use がきかない。

import java.nio.file.Files
import java.nio.file.Paths
Files.lines(Paths.get("""c:\local\ahya.txt""")).use {
     it.forEach { line -> println(line) }
 }
error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun <T : Closeable?, R> TypeVariable(T).use(block: (TypeVariable(T)) -> TypeVariable(R)): TypeVariable(R) defined in kotlin.io
Files.lines(Paths.get("""c:\local\ahya.txt""")).use {
                                                ^
Javaのtry-with-resourcesの話を眺めたときに、 java.io.Closableとjava.lang.AutoClosableがあるということはなんとなく 理解していたし、 useのドキュメントを読む限りでは AutoClosable? を受けてくれるように見えるのだが、 エラーメッセージを見るとClosable?しか受けてくれていない。 あれあれ? kotlin-stdlib-jdk7 に入っているように 見えるのでこれを使えばいいのかしら

_ ……kotlin.io に readLine というのが普通にあった。 でもこれはstdinしかだめのように見える。 File.readLines は Listだし… java.util.Scanner というのもあるらしい。 あらあら、つまりどれを使えばいいのだろう

_ ネットワークはjava.nioを使うようにしているし、ファイルIOも java.nioを使ったほうがいいような気がするが… そういえばDatagramChannelのときにuseで特に怒られなかったのは何故だろう? …ClosableとAutoClosableを両方実装しているからか。 前者はthrows java.io.IOExceptionで、後者は throws java.lang.Exception なので、 両方実装するにはthrows Exceptionにするほかない…ような気がするんだけど、 そうはなっていないらしい。 throws IOExceptionなのにAutoClosableをimplementしたことになる理屈がよくわからん

_ どうやら親クラスのthrowsで書いている例外か、 そのサブクラスしか投げられないという決まりらしい。 だから親でthrowsしておいて、子でthrowsしないというのもOKらしい。 そうなのか〜


2020/11/20 (Fri)

_ 22時前にさっさと寝たところ6時前に目が覚めてしまった。 体温は36度台に下がっているようだ。実際ダルさは少し緩和されたように思う。 鼻は、詰まったりだらだら流れるほどではないが、昨日よりはすこし悪くなったような。 あと昨日の夜にソバ食べようとしたときに蒸気でかなり咽せた。 気管支が過敏になっているようだ


_ 0.5回休みをとって8時過ぎから再度寝る。12時過ぎに目が覚めたときには 多少すっきりしており、体温も36度台のままだった。喉は、今は痛くないけど これから痛くなるかもしれないな…という気配を感じている。鼻も同様

_ 着替えてシャワー浴びて洗濯して…午後は打ち合わせを数本こなした。 定時1時間くらい前に眠気とだるさがピークを迎え、なんとか頑張って 資料読み込みなどをして定時を迎えた後にフトンに入って寝た。 そして21時過ぎに目が覚める。まだ眠れそうな気がしつつ腹も減ったので 食事して現在に至る。喉の痛み、鼻の調子などは横ばいだ。

_ それにしても今回は何が起こったのかしら…? 典型的な風邪っぽい 展開ではないような。しかし何かに感染したのは間違いないのだから、 いくらCOVID-19騒ぎで衛生意識が育まれたといってもそれだけで 感染症を完全に防ぐことができるわけではないということだろう。というか まだ取組に不足があるのかもしれない。いずれにしても新型コロナウイルスやら インフルエンザやらに感染しないということもないんだろう。よい教訓になった。 今感染しているのが新型コロナウイルスやらインフルエンザやらではないという 確証もないわけだが (二重否定だらけ)


= Google Nest Hub Max

_ 実はもう買って木曜には届いている。まだ開けてない。そして昨今の 体調を鑑みると帰省は中止にせざるを得ない。 ならブラックフライデ〜まで待てばよかったのではないの〜〜ばかああん


2020/11/21 (Sat)

_ 体調は、悪化はしてないように思うがかといってよくもなっていないようだ。 体温は36度後半。だるさと頭痛。 あとこれまで書き忘れていたが口内炎がそれなりにある。 自我を持ってゆかれそうな痛みはないが、両頬がむくんで腫れている感じがする。

_ 今日もわりと気温が高めのようで、室温は25度を超えている。昨日から なぜか風が強く吹いている。おかげで洗濯物が乾くのは早いが…

_ 数時間起きて活動しているとだるさと眠気が襲ってくるので まだまだ本調子ではないのだろう。

_ 食欲が復活してきたので少し味の濃いものが食べたくなり、 いつもなら送料が高いとか、このくらいなら買いに行ったほうが…などと 逡巡を繰り返した末に何も注文せずに別の手段で食事をすることが多い、 そんな高難度タスク「出前」を 完遂しココイチのカレーなどを喰ったところ、その後に住居スペースに来た 妻に報告もなしで出前をとるとはーと、尻肉をむしられる勢いで怒られた。 こちらがどれほどの覚悟で出前の発注まで辿りついたのか想像が及ばないから そのようなことを言えるのだろう。尻肉を失うと座るときに痛いので無視した。


2020/11/23 (Mon)

_ 数時間起きて数時間寝る…という生活を継続している。 起きている間はずっとだるくて眠い。 回復しきらんなあ〜


= 文字にグラデーションをかける話 つづき

_ 以前のつづき。 グラデーションのつけかたは分かったので、一定の範囲でspanで囲んでグラデーション、 とやればだいぶ本物に近くなるのではないだろうか? ということでやってみたところかなりよい感じになった。 sandbox/Scribbles/blr at master -no-orz-no-life/sandboxに上げた。 ひょっとして公開リポジトリにcommitするのは初めてかもしれない。

_ ブックマークレットに仕立てたりするために Closure Compilerというのが使えるようだ。

_ 現状の作りだと単語数ベースでグラデーションをかけるようにしており、 その単語の検出は単にスペースでsplitしているだけなので、日本語の文章の 場合はうまく動かない。また、背景が暗く文字が明るい場合にも うまく対応できていない。今のところ英文を読むときにしか使っていないので さほど困っていないが、もうちょっと汎用的な対応ができればなおよい


= Excel上で「ドラクエ3」を再現した勇者に「最大の変態」「控えめに言って天才」と称賛 一体どうやって? - ねとらぼ

_ タイトルだけ見たときの印象としては、 そりゃマクロ使えばどうにでもなるでしょう、だったのだがマクロ使わずに 実現しているらしい。それはすごい…


2020/11/24 (Tue)

_ 昨日まではいくらでも眠れる感じだったのだけど、昨晩は急に目が冴えてしまい 3時過ぎまで眠れなかった。復調してきた証拠なのかしら…と思ったのだが 今朝目が覚めたときのしんどさは格別で、目も霞むしふらふらするしで難儀した。 そして体温だが…高いどころかとても低い? もともとうまく計れない 耳で計測するタイプ (左右の耳で1〜2度結果が変わるので あしゅら男爵のような感じだ)とはいえ何度計り直しても35度より 高い計測値が出てこない。そして身体が冷えている感じがする。

_ 物を喰ったり暖かいものを飲んだりした結果多少ましになった気もするが、 それでもなんだか冴えない体調だ。


2020/11/25 (Wed)

_ 体温が低い。今日は久しぶりに雨が降っているようだ。 先週はかなり気温が高かったのに対し、今週に入ってだいぶ寒くなった。といっても 室温が20度を下回ることはないので、上旬の頃に比べればまだ気温は高めなのかもしれない


= Kotlin

_ mapにキーがあるかどうかチェックした後にその値を使おうとしても getはnullableが返ってくるので再度チェックが必要という話。 何度かここにも書いたことがあるが、mapはimmutableということではなくて、 単に書換え用のメソッドが存在しないreadonlyというのが正しいらしい。 このあたりはJavaとのinteroperabilityを確保するためにやむを得ないところ なのかもしれない…というのはよいとして、

val m = mapOf(1 to 2, 2 to 3)
 if(m.containsKey(1))
 {
     println(m[1] * 2)
 }
error: operator call corresponds to a dot-qualified call 'm[1].times(2)' which is not allowed on a nullable receiver 'm[1]'.
    println(m[1] * 2)
といったことになってしまうので、
 if(m.containsKey(1))
 {
     m[1]?.let { println(it*2)}
 }
などとする…のだけど、nullのときとそうでないときで動きを変える必要があるなら、 事前にcontainsKeyをするのは無駄に見えてしまう。

_ ?.let 以外に ?: run というイディオムがあって、null のときにだけ 動く式を指定するときに使うらしい。なのでこれを組み合わせたらどうか?

 m[1]?.let { println(it*2)} ?: run { println("naiyo") }
4
悪くない。ただletの戻り値がnullだとrunも動いてしまうという問題がある。 alsoを使えばよいらしい。
 m[1]?.also { println(it*2)} ?: run { println("naiyo") }
4res7: kotlin.Any = 2
ふむふむ… しかしなんかやりすぎ感がある。これなら、
 m[1].let {
     if(it != null){
         println(it*2)
     }
     else{
         println("naiyo")
     }
 }
4
こっちの方がましかもしれない。



= 最近のZFS

_ dynabookのUbuntuは20.04LTSにしてしまったので、ここでsendしたものを recvできるサーバが身近に存在しないままずっと放置している。つまり バックアップがとれていない状態なのでよろしくない

_ FreeNASは、先月ついに12.0-RELEASEがリリースされて名称も TrueNAS COREに変わった。 だいたい予定通りみたいだけどベースになるFreeBSDは12.0-STABLEらしいので まだZFSまわりはOpenZFSベースではないだろう。FreeBSDは13からOpenZFSベースに なるらしい。 TrueNAS COREに降りてくるのはかなり先になるだろう。

_ 初めてZFSを触ったのはOpenSolarisで、おそらく2009年とかそのあたりかしら。 ZFS固有の概念やコマンドライン等々に馴染むのが難しくてトラブルが起きるたびに 途方に暮れていた…というのは言いすぎだが、 いまいち使いこなせていない感じがしていた。 FreeNASを本格的に使うようにしたのは2016年くらいで、あれこれやっているうちに だんだんZFSにも慣れてきて、多少のトラブルなら自力でどうにかできるかなー という気になってきた。FreeNASを使いつづけてきたというのもそうだし、 UbuntuでZFS rootさせるためにいろいろいじったりしていたというのも 大きいかもしれない。

_ FreeBSDベースのTrueNAS COREの成長を待つことがむずかしくなってきたという 背景もあるし、この手のアプライアンスを入れてきた動機である、環境をなるべく 汚さずに再現性のある構築手段を講じる、今風?に言うとImmutable Infrastracture を実現するためにはDockerとかのコンテナ技術を応用したほうがいいような 気がしている。



= vEthernet (Default Switch) と DHCP

_ 以前の話のつづき。 ずっと放置していたがVMを自由自在にいじれないのが苦痛になってきたので あらためて調べてみた。でようやくWindows Firewallに阻まれていることに気付いた。 …………。

_ Windows FirewallはDomain/Private/Public ごとに設定できるわけだが Public Network の受信接続は「すべての接続をブロック」という設定にしていた。 これだとfirewallの設定とは無関係にincomingを すべてブロックしてくれるわけで、まあpublicのネットワークだし別に incomingなんて無効にしておいて悪いことはないだろ、ということでそういう 設定にしている。 (などと書くと自分の意思でそうしているような感じがするし、 実際自分の意思でそうしているような気もするがそんなことは綺麗に忘れていた)

_ で、EthernetとかWifiとかの設定のところで所属するネットワークを 変更できるのだけど、vEthernet関係のインターフェースについては とくにそれを変更できる画面がなく、 Public のネットワークにいることになってしまうらしい。 PowerShellで設定を変えることはできるらしい…のだけど、 vEthernet (Default Switch) は再起動すると作りなおしになって しまうようなので、ひょっとして変えたとしても再起動のたびに やらなきゃだめなのでは? ……??? 最終的にどうすればいいのかは 決められんが原因が分かってよかった/間抜けにも半年近く放置してしまい 情けない気分だ


= 地図 : 【閉店】餃子舗 龍王 - 入谷/餃子 [食べログ]

_ 日雇礼子のドヤ街暮らしチャンネルの、 過去動画で山谷に行くために南千住からアプローチしていて、 そういえば山谷とか吉原とか、入谷とかの位置関係がよくわからねえな、 と地図をいろいろ見直しながら、まだ米沢にいた頃はよく入谷の宿を 利用していたなーと唐突に思い出していろいろ懐しくなった。 あのラーメン屋さんまだあるのかしら? 当時の記述を頼りに検索してみたところ表題のお店を見つけた。 もう閉店しているそうだ。店内の様子が分かればもっとはっきり思い出すんだろうが、 見た目は記憶のものと近いような…気がする。

_ 横須賀出身の人間は東京に憧れるわけでもなく、 かといって身のまわりのことは市内でなんでもできるわけでもなく、 ナチュラルに馬鹿にしてくる横浜という結界に阻まれて都内に出ることも ほとんどない (以前も書いたが都内に地下鉄が走っていることすら知らなかった)… という生い立ちのまま山形に移動して、 いざ都内に出張ということになると土地勘がまったくないので 宿泊先を探す段になって目的地から近い・遠いということもまったく分からない。 Google Mapsみたいなインタラクティブな地図もなかったし、 地下鉄だと距離感もよくわからない。

_ 当時は、 上野広小路に新店ができるということでPOS設置のために出張していたようだ。 そして、入谷に宿泊して、わざわざ地下鉄を乗り継いで上野広小路まで 移動したんだろう。 入谷〜上野広小路は2kmそこそこしかないので、今の私ならわざわざあほみたいに 混んでいる日比谷線と銀座線を、わざわざ上野で乗り換えてまで使うなんてことは せず最初から歩くだろう。その程度の土地勘もなかったのだ。

_ 新店とはタピオカミルクティのお店だ。ここ1〜2年またブームが来ているようだが、 当時もちょっとしたブームだった。ジャスミンミルクティがおいしかった。


2020/11/26 (Thu)

_ カゼっぽい症状はほとんどなくなったのだけど、ひたすらだるい。 かといって横になると動悸がしたりでなかなかよくわからない体調だ。


= マルチポット

_ ヤカンの上部を切ったような形状の、側面に大きな把手のある鍋らしい。 住居スペースには両手鍋しかなかったのだが、 煮出しをする際にそれを使うと、表面積がでかすぎてかなり強く暖めないと いけないし、注ぎ口がないので注ぐときにも不便だ。 ということでマルチポットというやつを買ってみた。

_ 煮出しのときにはもちろん便利になったし、そもそも日頃両手鍋でやっている、 麺類をゆがく処理も、むしろこのマルチポットの方が少ないお湯でうまいこと 達成できているような気がする。レトルト食品の湯煎にもちょうどよい。 住居スペースでこれ以上の炊事をする予定はないので、 すっかり両手鍋の出番がなくなってしまった。

_ マルチポットというのは他にも炒めものや揚げものに使ったりもできるらしい。 ちょっとした調理ならこれで十分だな〜 以前なら雪平鍋がこういった鍋の ポジションにいたような気がする。


= NAS環境見直しの話

_ NASを構築するにあたり、ベースになるプラットフォーム部分はできるだけ 薄く軽く使い、必要なサービスなどはコンテナに押しやる…ということを 考えると、今度こそRancherOSの出番かしら?という気がしてきたので試した。

_ ZFSも使えるのだけど、 OpenZFSが0.7.13-1だったというのは誤算だった。 Ubuntu 20.04LTSのOpenZFSはすでに0.8.3まで上がっているので、0.7.13が決して 古いとまでは言えんが、新しいとも言えない状態であり、 結局普段デスクトップOSとして使っているUbuntuと比べて古い状態になっているという 点ではFreeNASと大差がない。RancherOSのパッケージ?の中でやっているのは一式を落としてきて ビルドしなおして…というものなので、自分で面倒みればそれまでなのかもしれないが

_ あとドキュメントの通りにやっても永続しない。 リブートするとまた各種ビルドからやりなおしだ。 これはいくらなんでも面倒すぎるだろう。 そのあたりを見直している人もいるようだけど → Evaneos/rancher-os-zfs-setup: RancherOS system service tailor-made for docker-machine and ZFS、 docker-machine用だと書いてあるなあ

_ ということでUbuntu 20.04LTSにしようかなという気持になってきた。ubuntu-desktop入れなければ パッケージだらけということもないだろうし、updateも楽ちんなのでよいだろう。 初期セットアップをできるだけ軽くすることができるなら、 ルートファイルシステムをZFS化する必要はない気がしつつ、でもboot environmentを ZFSで管理できるというメリットは捨てがたい気もする。 ZFSrootにこだわらなければインストーラがraid1も 含めて面倒を見てくれる気もするが、mdadmとかのコマンドをこの先の人生で 打ちたいという気がしないので、やっぱりZFSrootかな… 久しぶりにドキュメントを参考にして構築してみるか〜


_ mdadmコマンドはもう使わないと書いたばかりだが、 ZFSrootのmirrorやraidzをする場合にスワップ領域に対してmdadmをしなければいけなかった…


2020/11/27 (Fri)

_ やはり風邪っぽい症状はもうないのだけど、しんどさだけが残っている。 あとは頭痛か。血圧も高めなので動悸と頭痛はそっちが原因なのかもしれない。

_ もう運動などをして体調を戻すフェーズに入ったと考えていいのだろうか…???


= ZFS root (RAID1)

_ FreeNAS用に構築した資材を流用するので、boot environment用のディスクと pool用のディスクは分けておいて、それぞれmirrorをとる…という感じにする想定で 予行演習。

_ raidをやりながら構築…というのは先日の dynabookのときにもやったものの、あれは物理的なドライブが1こしかないので、 mirror/raidz向けに書かれている手順はほとんど実施していない。なので 今回が初めてだ。 ドキュメントではbpoolとrpoolは同じディスクに存在する前提で書かれている。 最近の手順では DISK という変数を元に コマンドをそのまま流し込んでもよい感じに書かれているんだけど、 ディスクやパーティションが変わるのでそのあたりは読みかえが必要だ。

_ で実際にmirrorで構築してみたのだが… これブート側のディスクアレイに障害が 発生した時に復旧がちょっと大変かもしれない。大変=いっぱいコマンド 打たなきゃいけないという程度で、可用性が損なわれたり、 二度と起動しなくなるわけではないのだけど、 とくにswapをミラーしているあたりや、grubまわりの運用に慣れていないと、 rpool側は無事なのだからブート環境は作り直し+bpoolインポートでいいや、 という感じになってしまうかもしれない。 その状態と、シングル構成でbpoolともども飛んでしまったときの違いが そんなにあるようには見えない。


_ 頭痛と動悸が継続しており、これはどうやら高血圧から来るようだ。 やはり運動を控えて食生活をそのままにするとこういう体調になってしまうと 理解したほうがよいのかもしれない


= Rancher

_ latestを入れてみたら2.5.2というバージョンだった。 以前とはちょっと様子が変わっている。以前は入れてすぐの段階では クラスタがない状態で、そこに既存のものを追加するか、 RKEを入れるなどしてゆくという流れだったと思うんだが、今回試した限りでは localというクラスタができていてetcdなども入った状態でスタートした。 localのクラスタはk3sで構築されているようだ。 2.5以前と以後で変わったらしい。 それもあってdockerに--privilegedオプションが必要になったらしい。

_ あと新しいUI (Cluster Explorer) ができたらしい。 従来のはCluster Manager という名前でそのまま使える。

_ そしてその構築が最後まで終わらない。流れているログを見る限りでは、 overlayfsを使いたいのに使えない、というような感じに見える。 私はZFSの上で構築しているのでこまる。


2020/11/28 (Sat)

_ 日中はよく晴れてあまり寒さが厳しくない。日が落ちるとかなり寒い。

_ 今日は歩いたり走ったりした。日中ずっと頭痛や動悸に悩まされるのでは 身体も休まらんのでいろいろ努力をしなければいけない

_ 室温18〜9度なら着脹れしていればさほど寒くはないのだけど、布のカバーが 十分でないところ、具体的には顔…は、まあいいとして(頭寒足熱だからね)、 手先と足先が冷えるのは困る。とくに足先の冷えがおさまらないまま 寝ようとすると冷たくて眠れないし、かといって湯たんぽにはまだ早い。


= サーモス ステンレスポット 1.5L TTB-1500 SBK

_ 煮出しをするようになったので1Lを超える量のお茶が一度に生成されるようになった。 でこれを入れておく容器がないので複数のコップに分けて入れたりしておくと すぐに冷めてしまい身体を冷やす原因となってしまう。 なので保温ポットを買った。これは3500円弱のもので、安物でもいいか…と 探してみたら2000円前後の価格のものがほとんどだったので、このくらいの 価格差ならサーモスにしようということになった。 さすがの保温性能で10時間くらい経過してもまだ熱いと感じられる温度帯にいる。 あんまり熱いものばかり飲むのもそれはそれで口の中や食道を痛めそうな 気もするが、コップに注いでちょっと放っておけばいい話なのであまり問題ない。 このポットは手をつっこんで洗えないこともないくらい口が広いのに これだけの保温性能をもっているのはたいしたもんだと思った。


= ゲルクッション

_ 水色の、ハニカム構造の、ゲルクッションを最近よく見掛ける。 3000円弱のを買ってみた。なるほど興味深い質感だな… 異次元の座り心地という 感じはしないし長時間座っていれば尻も痛くなるが、たしかに安物の座布団よりは クッション性能がよい感じがする。やたらと柔らかすぎず、かといって固くもなく ちょうどよい。


= シルク手袋

_ 手荒れがどんどんひどくなってくるので寝ているときの手袋を復活したいと 思ったのだが、薬局で数百円で買える綿の手袋は丈が足りない上に 袖口を絞るものがないせいか、寝ているうちに外れてしまっていることが多いし、 効果もいまひとつな感じがしたので、価格は5〜10倍になってしまうがシルクの 手袋を試してみるか〜ということで買ってみた。シルク製品は初めてなので シルクとしての物のよさがよくわからない。もっとツルツルしたもんだと 思っていたが意外とそうでもない。まあ程よい締めつけ具合で手首まで きちんとカバーしてくれるし、朝まで外れることもなくそしてスマホの操作も 多少不自由ではありつつも操作ができないというほどではないのでよいかもしれない。 まだ数日しか試していないけど、荒れはだいぶ改善されている。


2020/11/29 (Sun)

_ 久しぶりに出社。会社でないとアクセスできない資源などにアクセスしたり いろいろしようとしたのだが準備不足でいろいろ目論見通りに行かなかった。


= 保守的な暖房

_ 熟練者ほど見通しの悪いコードに対して保守的で あるのと同じように、 寒い土地で幼い頃から寒さに向き合ってきた人達ほど暖房の設定温度に対して 保守的だと思う。 米沢に10年ちょっと住んでいたときも、もちろん外は寒いけど屋内は むしろ暑いくらいにガンガン暖房をつけているところが多かった。 例外は自身の部屋くらいで、 当時はまあ耐えられると思っていたようで、 そしてになって その後遺症に苦しめられているので無茶は禁物だと思う。 そもそもいったん冷えた部屋を暖めるのは大変なので、 ずっと暖房つけっぱなしというのは理にかなっているのだろう。

_ でまあ今は着脹れしておけば手足を除いて特に寒さを感じないわけなので、 あとは手足さえどうにかすればよい… ということで会社に置いてあった 指ぬきの手袋を持って帰ってきた。これなら指サポーターともさほど干渉しないし キータイプの邪魔にならない。あとは足先だが、 もこもこのスリッパでも導入しようかなと思っている。今後暖房を入れるようになれば ここまでの厚着は必要ないのかもしれないが、身につけているもので 防寒が多少でもできていればあまり大袈裟に暖房をつけなくても大丈夫かもしれないしな


2020/11/30 (Mon)

_ もこもこのスリッパと小さな膝かけを買った。ニトリの防寒グッズ関連は かなり売れてしまっているようで在庫がないものが多かった。 「着る毛布」的なものが欲しかったんだが

_ 暖房に頼らない防寒のほかの問題は、いろんなことが億劫になるということだろう。 膝かけをすれば席を立つのが億劫になり、 手袋をすれば水仕事が億劫になるし、着膨れをすればトイレも億劫になってしまう。 強く暖房をきかせた状態で薄着で好きに暮らす方がいろいろいいような気もしつつ、 建物の中を隈なく暖めることはできないのだからその温度差によって いくないことが起こらないとも限らない。結露も心配だ。




Zinnia (zinnia@risky-safety.org)
Back