A Day in the Life

WSL 環境で sharp のインストールが失敗する

地味にハマった…。WSL2 環境の Linux で yarn add sharp すると、sharp を自前でビルドし始めて、

"/usr/include/vips/vips8:35:10: fatal error: glib-object.h:"

で死ぬ。しかしながら libvips 関係のパッケージやら、/usr/include/glib-2.0/glib-object.h やらは存在するし、あれやこれや試行錯誤するも直らず。

よくよくその他のエラーメッセージを見ると、

sharp: Installation error: ENOENT: no such file or directory, mkdir 'C:\Users\hotch\AppData\Roaming/npm-cache'

でまず死んで、その後自前ビルドを始めようとしている。そもそもなんで WSL の Linux なのに Windows の PATH 参照してるの、と env を見ると、APPDATA の環境変数がそのまま wsl に渡っていて、この中に含まれているようだった。

sharp のコードではインストール時のキャッシュを作るコードにenv.APPDATAが含まれていて、そのため変なパスを参照してしまっている。

APPDATA をnodejs の評価で偽になる空文字列をセットして実行すると、キャッシュからビルド済みの Linux のバイナリが使われ、上手くインストールが終了した。

APPDATA='' yarn add sharp

自前ビルドするときの問題は直ってないのだけど、まぁ sharp は使えるようになったので良しとする。

2021年4月17日


今日の昼も昨日に続き、また辛ラーメンインド屋台風やきそばを作る。実は昨晩もサッポロ一番塩ラーメンでインド屋台風焼きそばを作ったのであった。一度ハマると何度も作ってしまうのだよなぁ。

夜は星の王子さまニューヨークへ行く、を観る。先日2を観て、初代のストーリーをほぼ忘れていて観たくなったのだ。いやー2より断然面白いね。


機械学習学習日記 - 75日目

そういえば類似文章を推論する古典的な tf-idf を scikit-learn で書いたことがなかったな、と唐突に思いたち書いてみる。

日本語を抽出するトークナイザは mecab を叩いている fugashi (これはsklearnじゃないけど) を、tf-idf を求めるには TfidfVectorizer を、類似文章を求めるにはcosine_similarityを使ってあっさりと書けた。

このブログのテキストが400字以上書かれた記事データを使うと、それなりに良い類似記事推薦ができる感じ。ただ当然ながら、最近の記事は普通の機械学習の話題が入ってしまい、1記事に対してのコンテキストがごちゃごちゃなのでそのへんの結果は良くない。しかたなし。

撮影機材E-M1 Mark III/OLYMPUS M.12-100mm F4.0

WSL環境でスリープ復帰時に時刻がずれる問題を Windows 側から修正する

久しぶりに WSL2 環境で開発をしていると時刻がずれていることに気づく。以前は起こっていなかった、スリープ復帰時に WSL 側の時計がずれる問題が発生してしまうようになってしまったようだ。

古くからある問題で、昨日の Insider Preview のLinuxカーネルで修正済みなのでWindows 10 21H1 では直りそうだけど、現状問題が起きたままだ。

Linux 側で hwclock --hctosys で直るのだけど、いちいちコマンドを叩くのが面倒だし、WSL2 側での定期実行、たとえば cron.d を動かすのはいがいと厄介。なので、Windows 側で wsl 側を叩く以下のようなバッチファイルを用意して、それを Windows のタスクスケジューラで実行する。

wsl.exe -u root --exec /usr/sbin/hwclock --hctosys

スリープ復帰時にコマンド実行するタスクスケジューラはググるといくつか出てくるので割愛する。これで問題なくなった。と、ここまで書いた所で、ちょうどissues のコメントに同様のことを一行でやる方法が

schtasks /Create /TN wsl-clock /TR "wsl.exe -u root sh -c hwclock -s" /SC ONEVENT /EC System /MO "*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (EventID=107 or EventID=507)]]" /F

なるほど、schtasks でタスクスケジューラに登録できるのね。というわけで、このコマンドで簡単にスリープ復帰の時刻ズレ問題を修正できるのであった。

2021年4月16日

最近、今日 ヤバイ奴に会ったという、主にインドの屋台を色々紹介するYouTubeを見ていて、懐かしみとともにコレ系の飯が食べたくなり、また昨日食べた鍋のシメラーメンた美味しかったので、インド屋台風ラーメンを昼食に作る。

大きいフライパンに大量に油を入れ、卵を揚げ、刻んだキャベツやネギを入れる。キムチと水を追加し、いろいろな調味料を入れる。マサラ、コリアンダー、クミン、チリパウダー、鶏ガラスープの元、オイスターソース、コチュジャン、塩、輪切り唐辛子、にんにく。ゆだった所で、バリバリに砕いた辛ラーメンを入れひと煮立ちしたら、辛ラーメンの粉を入れ、麺が柔らかくまで炒める(煮る?)。

出来上がりの見た目は置いておいて、食べ物の味はかなり辛くて美味しい。何でも調味料を入れるととりあえずコクや深みが出る、はカレーのよう。トマトなんか入れても美味しそう。また作りたい。

しかしながら、午後は唐辛子取りすぎた感じの少々体調悪目に。もうちょっと辛ラーメンの粉は少なくて良かった。


夕方、散髪に行く。約1.5ヶ月ぶり。


chrome の規定の検索エンジンを duckduckgo へ変えてみる。duckduckgo、何が良いかって、プログラミング用語で検索すると(標準では英語検索ということも有るが)オフィシャルのドキュメントがヒットすること。

google.co.jpでの検索は雨後の筍のようなプログラミングまとめサイトにより、前フリだけ長いサイトがやたらと引っかかってしまうのだよなぁ。しばらくduckduckgoを使ってみよう。


機械学習学習日記 - 74日目

AppleのOSS ML Toolkitである、Turi Createを見る。汎用的な機械学習タスク(含むニューラルネットワーク)はあらかと揃っていて、また pandas DataFrameから Turi Create でデータを扱う形式に変換できるので使いやすい。どれも iOS で動く Core ML のモデルに変換できるようなのだけど、それを使わなくても利用しやすいインターフェイスが提供されていて、とりあえずなんかやる、という時に学習コスト低く始められそう。ドキュメントに含まれてるMachine learning essentialsも必要最低限の説明で良いのでは。

One-Shot Object Detectionは、いわゆるMRでのマーカを使ったアプリに適してるし、Activity ClassifierはwatchOS等に適してるしで、iOS 向けの汎用機能も実装されてある。

撮影機材E-M1 Mark III/LEICA DG SUMMILUX 25/F1.4 II

2021年4月15日

PCを持って近くの公園へ。テザリングで作業する予定が、普通に横浜市のフリーWiFiが使えてびっくりする。平日昼間、ということもあったのかもしれないが、下り30Mbpsぐらい出て普通に作業できる速度。30分で一度切断されてしまうのは面倒くさいが、それでも十分ありがたい。ただ、ちょっと風があり肌寒く、1時間ほどで戻る。

家で再び作業をWindowsでやり始めると、vscodeのキーボードショートカットが異なってミスしまくって困る。macOS と Win を両方使うと困る一番の問題がコレだ。vscodeのvimキーバインドをやめて、その影響を直接受けている。


夕方釣りがしたくなって、近場の釣りポイントへ。近くの海釣り施設ではそこそこ釣れるようになってきたようで、そろそろこの辺でも釣れるのではないか、と行くも1.5時間で0匹で残念。1-2匹釣れてたいともちらほら居たので、釣れることは釣れるようで悔しい。


昼食に食べた、昨晩の残りの海鮮チゲ鍋の残り汁で作ったラーメン、というより乾麺が溶けすぎておじやぽいもの、が出汁が出てめちゃくちゃ美味しかった。鍋の残り汁では今まで一番のうまさじゃないか。


機械学習学習日記 - 73日目

いわゆる正解データや目的関数未定義のデータを分析するに当たり、教師なし学習に興味が出てきた。教師なし学習というと次元削減、主成分分析、オートエンコーダー(をなんとなく)ぐらいしか知らないので。

オライリー本のPythonではじめる教師なし学習――機械学習の可能性を広げるラベルなしデータの利用は良さそうなのだけど、ePubが無くてPDF版だけなのだよなぁ。なんでオライリー本は最近の本でも ePub あり無しがあるのだろう。著作元の考え方なのか、組版できない問題なのか。

撮影機材α7C/SMC Takumar 50mm F1.4

2021年4月14日

妻が試作していたプリン。


そういえば緊急事態宣言があけて、マンション共用のジムが使えるようになったんだ、と早速使ってみる。サイクリングマシーンで20分走るだけで汗だくになり、運動不足を感じた。最近は朝のジョギングや fit boxing もしなくなって、朝起き後のストレッチだけ、という運動不足具合。習慣化は3ヶ月ぐらいは続くのだけど、その後は他の習慣を入れるとそちらにウェイトが取られてしまいやらなくなってしまい気味。

毎日コンスタントに運動したいけど、共用ジムは予約制で週1コマだけ(コロナ禍のためいろいりと間をとっている)なので、毎日運動するのが難しいのだよなぁ。自分の場合、運動したくなるタイミングが(早朝以外は)バラバラだしね。

サイクリングマシンを初めて使ったのだけど、ランニングより膝に負荷かからないし運動しやすい。またちょうどよい位置にスマートフォンやタブレットを置けて良い感じ。動画を見ているとわりと20分があっという間に過ぎる。


機械学習学習日記 - 72日目

機械学習のための特徴量エンジニアリング、を読みすすめる。

撮影機材E-M1 Mark II/OLYMPUS M.45mm F1.8

2021年4月13日

久しぶりにインスタのリールを開くと、ぼーっと見てしまい一時間ぐらい時間が溶けた。リアルタイムで推薦アルゴリズムが変わる様が面白く、たとえばスケートのリールを最後まで見ると、スケート動画推薦が多くなったり。


機械学習学習日記 - 71日目

Pandas、CPUの利用率を見る限り並列処理をしておらず、1行ごとに副作用がない処理など(いわゆるmapとか)いい感じで並列化してくれよ、と思ってソリューション探すとあるじゃんswifter。Series に対しての処理は500倍ぐらい速くなる。というか並列処理関係なく pandas の処理が遅すぎて問題…。DataFrameでは遅くなくSeriesに対してだけ遅い問題が起きるので、Pandas の実装上なにか問題がありそうな気もする。

そして swifter、import すると pandas に .swifter というインターフェイスが生えるのだけど、pandas.api.extensions.register_series_accessor みたいなオフィシャルAPIがあるのね。こういう自由なインターフェイス拡張、なんか懐かしい感じだ。

撮影機材E-M1 Mark III/LEICA DG SUMMILUX 25/F1.4 II

2021年4月12日

妻が何かのプロフィール用の写真がほしい、というので撮影する。人物撮影は慣れておらず、ただ数はたくさん撮ったので気にいる写真があればよいのだけど。

夕方、ちょっとした検査でクリニックへ。その後、クレープを食べたり夕食を食べたり。夕食は久しぶりのAFURI。高いけど美味しい、時々食べたくなる味。


機械学習学習日記 - 70日目

オライリーの機械学習のための特徴量エンジニアリング――その原理とPythonによる実践を読み出す。データ探索からの特徴量作成その手法、というテーマにまとまってるものの、これ系の機械学習全般の本はそれなりに読んできたので、だいたいかぶっているのでお腹いっぱい気味。理解が薄いから復習にはなるのだけど。

別に文献を読んでいて、2010年ぐらいの機械学習全般の話で、ニューラルネットワークの話の内容ではニューラルネットワークという言葉は出てこずにMLPを説明していた。時代を感じる。

撮影機材α7C/Voigtlander NOKTON Vintage Line 50mm F1.5 Aspherical II VM SC

2021年4月11日

ソメイヨシノの実。ソメイヨシノは接ぎ木で増やしている品種で、ソメイヨシノ同士の交配では実はならず、何らかの別品種の受粉らしい。たしかに近くに寒桜や八重桜などもそこそこあるからなぁ。


最近妻とゲームやってなかったなぁ、とOvercookedのSwitch版が75%オフだったので購入。プレイ人数が多ければ多いほど楽しい、作業分担パーティ系ワイワイゲームだ。ステージによって分担戦略を変える必要があり、初見は難しくても二度目は対策してやれる。2人でもまぁまぁのスコアでクリアできるけど、もっと多人数でやりたいなー。

また、唐突に iPad で半熟英雄を購入しプレイしだす。SFC版、好きでだいぶ遊んでいたなぁ、懐かしい。ギャグも音楽(すぎやまこういち)も好きだったし、色んな所にランダム要素が入っていて一筋縄ではいかないゲームバランス、戦力の要のエッグモンスターも、コマンドを選んでみないと何が起こるか分からないハラハラ・ドキドキ感。懐かしさ補正も多分にあると思うが、今遊んでも面白い。


機械学習学習日記 - 69日目

書籍、Kaggleで勝つデータ分析の技術、を読み終える。前半はテーブルデータに対する機械学習アプローチ全般、後半はパラメータチューニング関係、至るところにKaggleでのTipsがのっていて、読み物としても面白かった。後半は流し読みしてしまったが、実際にパラメータチューニングする際にはだいぶ役に立ちそう。

撮影機材α7C/7artisans 50mm F1.1

2021年4月10日

グレビレア(たぶん)の花、珍しい。ゼンマイみたいにまるまっていてかわいい。


朝散歩に行き、帰ってきてきて二度寝して、午後近くの公園で本、というか漫画を読む。休日だからゆっくりするぞー、とダラッとした日。

読んだ漫画は、板垣巴留の新刊ボタボタとBEAST COMPLEX 2、安野モヨコの監督不行届。ボタボタは設定がうわーという感じ(鼻血が出るといった物理的なところよりも精神的な所が)で気持ち悪い面白さ。

監督不行届はプロフェッショナルに庵野監督が出た際に購入(その時、監督不行届がAmazonコミック部門一位になって、みんな考えることは同じなのだなぁ)したもの。巻末の用語集を流し読みしてると、丹波哲郎の文字が。

高校の時、吹奏楽部の部室に「たんば」、というボードゲームがあって、部活の仲間と時々やっていたことを唐突に思い出すも、鳥になって光化学スモッグで死んだ、ということしかほぼ覚えておらず、他はうろおぼえ。ネット上の感想1,感想2を読んで、そうそうカルマが溜まって転生して、死後の世界に行くとスコアが逆転するようなゲームだった(俗世で徳を積むと俗物とみなされ、裏面では地獄から始まる)なぁ、と懐かしさに少々浸る。


機械学習学習日記 - 68日目

書籍、Kaggleで勝つデータ分析の技術、をちょっと読みすすめる。

以前読んだ、ジェームズ・クリアー式 複利で伸びる1つの習慣には、めんどくさくなって習慣化が定着しなくならないように、2分でも良いからやる、ということが一節に書いてあって、まぁちょっとしたことでも良いから継続していきたい所存。

撮影機材α7C/XR RIKENON 50mm F2