CC56 (pending)

CC56: 567収束までに達成したい56リスト(もう収束したかも)

コミティア137に申し込みました

f:id:hyper-pigeon:20210703225315p:plain

9/20 (月) に開催されるコミティア137に申し込みました。 ↑はサークルカットです。

今回は 2,000サークルしか当選されないらしいので、高確率で落ちると思います。 しかし、現状56項目のうちの「漫画 3 冊発行する」が現状1つも終わっていないので、どちらに転ぼうが描くしかないですね。間に合うのか…?

題材は前からやっていた、「機械学習コンペ漫画」の続きになります。 COMITIA126 (2018/11) で1冊目、C95(2018/12) で2冊目を出した本なので、3冊目になります。
(正直1と2をリメイクしたい気持ちがある)

今後のイベントを見越し、余るのを前提で50冊刷る予定です。 ちなみに、関東圏のコミティアの頒布数の中央値自体が20冊程度†なので、絶対に余ります。
(ちなみに、関西圏になると頒布数の中央値が13冊程度まで下がるらしいです。ソースはTwitter)

また、"戦場"の感覚を取り戻すために、来週開催されるAtmaCupにも参加申し込みしておきました。 リアルコンペも漫画もどちらとも全力で挑もうと思います。

おそらく当選発表とかは来月あたりになると思うので、結果はそれまでお待ち下さい。 今までサポートしていただいた方には、無料で本を配布しようと思います。


COMITIA の公式アフターレポートでだいたい毎回この数字です。

便秘と痔を同時に対処できるソリューションがあった

f:id:hyper-pigeon:20210702084130p:plain

ケツ論を先に書いておくと、「酸化マグネシウム」です。

概要

こういう系統の話題は、書き手の恥とかプライドとかに関わるので公言する人が少ない気がします。 しかし、こういった話題をする人が少ないと、解決策が出回りにくくなり全体の損失につながるので負の連鎖が起こりがちです。 なので、僕がブログで書いて、同じ悩みを抱える人を助けられればと思いました。 医師ではないので、医学的な側面での保証はできませんが、誰かの解決の糸口になればと思います。

本題に入ります。 便秘も痔もどっちもQoLを激減させる最悪なアレです。 さらに話題にもネタにもしにくい。 実際、肛門科とかも行くのめんどくさいし、行ったら行ったで待たされるしでかなり厄介です。(月イチはめんどくさすぎる)

いままで、市販で買えてサクッとこれらの症状に対処できる薬をずっと探していました。 「ボラギノール」「浣腸」「食物繊維」「ビオフェルミン」なんかが代表的でしょうか。 しかし、痔の人ならわかると思うんですが、ボラギノールは永続ダメージに対して微量の回復で対処している感じで、慢性的になるとダメージが回復量を上回ってイマイチ効いてきません。そして市販だと高い(医師に処方されると7割安くなる)。 浣腸はまぁ便利なのですが、うまく機能しないときがあったり、運用がやや面倒です。 また、食物繊維のサプリやビオフェルミンはイマイチ決定打に欠ける感じがあります。

そこで、以前肛門科にかかったときにかなり効果を感じた薬があったなぁ…という感じで「酸化マグネシウム」を探したら、普通に販売されていたので、買って服用してみたところ、数日でかなり良好になりました。(Amazonで買えます)

酸化マグネシウム (MgO) とは…

このブログでマグネシウムを話題にするのは3回目になると思います。 やはりマグネシウムが最強の金属なのですね。ざっくり解説すると、酸化マグネシウムは人間の体内にはほとんど吸収されず、そのまま大腸に到達します。 到達した酸化マグネシウムは、腸から水分を集め、結果的に便秘を解消します。

痔持ち(特に切れ痔)の場合、おそらくボラギノール系統と併用すると効果が上がると思います。

注意書き

記事を書くにあたり、内容を調べ直したりして気づいたことがあるので書いておきます。

まず、そもそも便秘にも要因が複数あるらしい(とくに女性)ので、その便秘に対し酸化マグネシウムが本当に効果があるかはわかりません。 やはり1回はちゃんと医師にかかって診断を受けたほうがいいです。 肛門科の先生はこういうことに特化しているので、まったく知らないような知識を持っています。 僕の場合は既に数回受け、同じ薬(酸化マグネシウム)を処方され、それが効くと分かっていてさらに受診の時間が噛み合わなかったりしたので、間に合わせで買った形です。やはり理想は月1でちゃんと受診することだと思います。(それができれば苦労しない)

肛門科って調べると意外と多いんですよね。 結構待たされるかもしれませんが、初診でも保険適用で2,000円くらいでざっと診てもらえるので、この辺の違和感を感じたらカジュアルに行っていと思います。

おわりに

人間の内臓、基本的に超絶スペックを誇るが、大腸に関してはもうちょい現代風にアップデートしてほしい。

hyper-pigeon.hatenablog.com

Just Focus を使おう

f:id:hyper-pigeon:20210701183640p:plain

1行で解説

Just Focus」とは、ポモドーロ・テクニック†をサポートするためのmac用アプリケーションです。無料。

ポモドーロ・テクニック: 作業を行うときの進行テクの一つで、基本的には 作業25分 + 休憩5分 をセットとして反復して作業を行うことで、全体の作業効率を高められると言われています。(意識高い系?の人が使ってるイメージがある)

概要

最近、自宅で仕事をする方も増え、自宅内で仕事 / 休憩 / 自分の時間がごちゃごちゃになってしまい、

  • 「こんなはずでは…」
  • 「リモートワークは自制心で乗り切れる…はずだった」

みたいな悩みが、たぶん少しは皆様の中にあるのではないか…と思います。

そしてTwitterなどを見ると、皆色々な方法で作業への取り組みを工夫されているように見えます。その中でも特に有名なのが、ポモドーロ・テクニックです。

今回紹介する Just Focus は、このポモドーロ・テクニックと非常に相性が良いアプリケーションであり、使いやすさに反してあまり知名度が高くないような気がしたので、ここに知見を共有します。

Just Focus のいいところ

4つ挙げます。

  1. 無料なので簡単に試せる
  2. macのメニューバーに存在してくれるので、見やすい
  3. かゆいところに手が届く
  4. 軽量でシンプル

(1) 無料なので簡単に試せる
個人的には、こういった作業効率改善系のアプリケーションは色々な種類を試し、その中でもっとも自分にあったものを長く使うスタイルが安定していて気に入っています。その過程で有料・無料問わず妥協せずガンガンインストールして確かめるので、お金がかかります。Just Focus は、無料なので簡単に試せますし、気に入ったらそのまま使えるのでかなりお財布に優しいです

(2) macのメニューバーに存在してくれるので、見やすい
スマホで起動するタイプのものや、アナログでのポモドーロ実践は、視線・対象が外れてしまうため、時間を確認するときに集中力が大幅に食い取られてしまう可能性があります。その点、macのバーに常在してくれると、作業中にちらっと確認できて便利です。スマホのタイマーでポモドーロしようとするとうっかりTwitter開いておしまいになる(人間は別のものごとに数秒気を取られると集中が切れる†と言われているらしいので、それを防げるのはかなり嬉しいです)

†ソースを忘れた

(3) かゆいところに手が届く
たとえば以下のような機能です。

  • PC立ち上げ時に自動起動(存在を忘れたことを忘れにくい)
  • 終了タイミングで作業画面シャットアウト
  • 時間調整による作業・休憩時間のバランシング
  • UI の作り込みが丁寧で使いやすい

実際にこれらを満たしてくれるポモドーロ系アプリって探すとなかなかないんですよね。特にUI。

(4) 軽量でシンプル
パフォーマンスを正確に測ったわけではないのですが、アクティビティモニタ等で上に上がってくることは見たことがないですし、アプリ本体も 16MB と非常に軽いです。

主機能・使い方

簡単すぎて使い方とかとくに説明する必要なさそうなんですが、様式美で書いておきます。

f:id:hyper-pigeon:20210701185842p:plain

Apple Store からインストールが終わったら、macのメニューバーの時計マークを押して、「Start Pomodoro」を押して開始するだけです。

細かい設定は、「Preferences」から行えます。

f:id:hyper-pigeon:20210701191043p:plain

ロング休憩って言い方なんか語感的にミスったかもしれない。

作業履歴

f:id:hyper-pigeon:20210701193523g:plain

こんな感じに、その日どれだけ作業したかあとから確認することもできます。

おわりに

100%のフル集中力を8時間連続で行使できるのは、一握りの人間のうちのさらに一握りの人間か、タスクがよっぽど噛み合っているか、自分の調子が非常によいときくらいだと思っています。 コンディションに影響されず、できるだけ安定した作業効率を出せるように環境を整えられると嬉しいですね。

個人的な応用用途としては、疲労が尾を引いてる日に、作業15分-休憩15分という休憩多めのポモドーロをセッティングしたりします。こういう感じで低めに設定していると、何サイクル目かに気力が復活することがあるのでオススメです。

こういうタイプの便利アプリ、他にも心当たりあったら教えて下さい!便利なので!

CC56 後半戦、開始

お久しぶりです。約120日ぶりのCC56ブログ更新になります。

久々の肩慣らしに、

  1. この間ブログをサボって何をしていたのか?
  2. 本当に56項目をクリアする気があるのか?
  3. ワクチンが出回ったけど収束の定義は?

について書いていきます。


(1) まず最初に、

Q: この間ブログをサボって何をしていたのか?

A: お金を稼いでいました。

なぜならこのブログにフルコミットすると、持ち金が減る一方で、いずれ貯金がなくなってしまうからです。特に、ドローン作成・富士山登頂・LiDAR、あたりがわかりやすくハイコストで、1つこなすために10万〜20万単位でお金が必要なため、お金を貯める時期が必要だなぁと初期の方から考えてはいました。

ですが、奨学金が通ったこともあり、おそらくここからはノンストップで突っ走れると判断したため、CC56 再開に至った感じです。


(2) 次の話題に行きます。

Q: 本当に56項目をクリアする気があるのか?

A: ありま…s…す!

別にクリアしなくても逮捕されるわけではないので、実際クリアなんてしなくてもいいのかもしれません。 ですが、個人的に譲れない点が2つあります。

1つ目は、欲しい物リストから物を頂いてしまったこと。 これは物を貰った「対価」をエンターテインメントとして払うという意味もありますが、どちらかというと序盤にものすごい量の品を頂いたので、「期待に応える」という意味合いが強いです。 そして僕は期待に答えられない自分が嫌いなので、おそらく最後までやると思います。

2つ目は、自分自身のこころの問題です。 そもそも56項目なんていうものは僕が勝手に定義して、これくらいならギリギリできるだろ、という塩梅で作ったものです。それに対して折れたら、今後自分が決めた目標に向かえなくなる気がするので、最後までやります。

失敗したら、最初のルール通り、過去の恥ずかしい話をYouTubeで暴露します。

無限にあるのでオススメです。元カノと別れたあとにサークル内の殆どの人間にバラされた特殊性癖の話とかが例です。もう生き恥で人生が構築されているので5時間じゃ足りないかもしれないです。


(3) 最後に、

Q: ワクチンが出回ったけど収束の定義は?

A: 2021/12月末にします。

今までもあえて話題にしないようにしてきたのですが、これは非常に難しい話ですよね。 ワクチンが普及するのと全人類が免疫を得るのでは話が違いますし、免疫を得られてもインフルのように変異し続け撲滅できない可能性があります。もしくは、WHOが勝手に人類勝利宣言するかもしれませんし、まったく未来が見えません。なので、個人的にこのままワクチンが普及して対策が進んだら1日の感染者数はそこそこ激減するであろう半年後くらいに適当に期限を設けることにします。キリもいいので。そこでCC56は終わります。


久々の投稿で、経緯を全く知らないTwitterのフォロワーさんとかもいると思うので、そういう方のために発端のまとめ記事を貼っておきます。

hyper-pigeon.hatenablog.com

また、お金稼ぎをしている間に、色々と融通が聞きそうなスキルも得られたので、少し時間をかけてCC56自体もアップデートしていこうと思います。

f:id:hyper-pigeon:20210623081953p:plain

思い出したのですが、そういえば PC版からこのページを見ると「リンク」のところに質問箱があったりします。 なにか疑問があれば気軽に聞いてください。

MakefileでDocker+LaTeX環境を使いやすくする【日本語・英語対応】

f:id:hyper-pigeon:20210223172137j:plain

イントロ

論文を使うとき何のツールを使っていますか?

大半の方はOverleafを使っていると予想しています。 なぜなら、Overleafの著者共有機能や、ブラウザで書ける利便性が圧倒的だからです。(他にもっと強いツールが出ていたら教えて下さい。)

一方で、Docker+LaTexで環境を作る場合のメリットは、「Overleafより軽い」「Gitで管理しやすい」等が挙げられます(もちろん、Overleaf単体 / Overleaf+Gitでのバージョン管理機能はあります)。また、最近Overleafは使っていないので分かりませんが、アップロード周りがちょっとめんどくさかった気がします。

また、日本語で論文や資料を書かかざるを得ないタイミングがあったりします。そういうときに、Overleafを日本語対応しようとして、四苦八苦したことがある方もいると思います。これに対し、確実に動く日本語環境が爆速でセットアップできるのは便利だと思います。

個人的には、1人で論文をもくもくと書く場合、OverleafよりDocker+LaTeXでサーバーに設置し、VSCodeで書くほうが気楽に素早く書けると思っています。ある程度進んだら、Overleafにアップして、そこからはOverleafで作業するのも1つの手段だと思います。

要するに、時と場合によってOverleafとDocker+LaTeX環境を使い分けられれば、より楽に作業を進められるんじゃないかという話です。Overleafはなんだかんだいって便利。

本題

以下のMakefileでだいたいすべて完結します。(Dockerが入っていない場合は入れる必要があります。)

英語版の論文を書く場合、make en。日本語の論文を書く場合、make jp

それだけで完結するようにしています。

解説

既に Docker HUB に、LaTeX 環境をアップしてくれている方がいたので、それをpullして使わせてもらっています。コマンドが5つも並んでいるのは、Bibliographyを確実に更新するためです。(これを手動でやるとかなりめんどくさい)

日本語版と英語版で使用するコンテナが異なります。これは結果的に動いたという話であり、ちょっとLaTexがどうなっているかとかは分かりません。ごめんなさい。

日本語版の構築は、DockerでらくらくLaTeX環境構築 - Qiita を参考にさせて貰っています。

最後にある clean 作業は、LaTeXのコンパイルの過程で発生するログファイルや、途中経過ファイルであり、これも手作業で消したりするとめんどくさいので自動化しています。rmしてしまうと、ログも消してしまうので、一旦 progress_files というディレクトリに移動したあと、次のコンパイル時に上書きされるようにしています。

Makefileだけだとファイル構成がわかりにくいと思ったので、上記をまとめたものをGitHubにアップロードしておきました。個人的に作っているDockerの盆栽リポジトリです。

github.com

英語版はICCVフォーマットを使わせてもらっています。

不具合等ありましたらご連絡ください。

関連記事

blacktanktop.hatenablog.com

MakefileでDocker+Jupyter Notebookなどの機械学習環境をスマートに扱う

f:id:hyper-pigeon:20210214134341p:plain

先日機械学習界隈の方とDockerの話をした際、Makefileを使って機械学習環境の整備をしている人は実は少数派なんじゃないかと感じました。

機械学習で使うコマンドは引数が長く、とても覚えられるものじゃありません。暗記できていてもミスタイプしたり、tmux内とかだと折り返されて何書いてるかよくわからなくなりがち 。Ctrl+Rとかで検索かけようとしても大体はdocker...から始まるのでタイプ数多くなりがち。

Makefile は、Docker のコマンドをいい感じにまとめやすく、jupyter notebook に使う長ったらしいコマンド jupyter notebook --port 8888 --ip="0.0.0.0" --allow-root なども簡略化できます。そういうわけで、全体的な生産性の向上に繋がると信じています。

今回紹介する Makefile は Docker + Jupyter Notebook まわりを簡単に扱えるようにしたものです。

使い方

Makefileという名前のファイルをカレントディレクトリに置くことで、make コマンドが使えるようになります。 基本的にREADME.mdと同じルートに置いて運用します。

(Makefile のコードは次の見出しでコピペできるように置いておきます)

頻繁に使うコマンドは以下になります。

  • make br: build&run を一気に行う
    • make b: Docker イメージをビルド(docker build)
    • make r: コンテナを立ち上げ (docker run)
  • make c: コンテナに再接続。tmuxとかが切れたとき用
  • make clean: dockerの「Noneイメージ」と「稼働中のプロセス」を停止&削除
  • make jn: jupyter notebook立ち上げ
  • make tensorflow-GPU-test: tensorflowが動くかチェックする
  • make help: コマンドの確認

使い方は、make {コマンド} のように、各コマンドを make で実行するだけです。

helpは、以下の画像のようにコメントを表示してくれるので、どのコマンドが何をするのか忘れても安心できます。

f:id:hyper-pigeon:20210214130637p:plain

Makefileのコード

解説

基本的に、

コマンド:
  そのコマンドの実行内容

というのが繰り返されているだけです。

  • export は、変数の定義など
  • コマンドの後の「##」がhelpで出るコメントになる
  • コマンド先頭の「@」は、複数行の実行 (2021/06/23 修正)
    • ↑「@」をつけた行は標準出力を出しません
  • 「-@」はエラーが途中で出ても中断せず実行 (2021/06/23 修正)
    • 「-」をつけた行はエラーが出ても中断せずに次の行に移行します

くらいで、覚えれば使うのは簡単です。

Makefileの利点

  • どの環境でも安定して動く
  • メンテナンス性が高い
  • シェル的に書くことができ拡張性が高い。Makefile側から.shを叩くこともできる
  • コマンド入力時のタイプミスを減らせる
  • コマンドを忘れて検索する、ということが無くなるので時間効率が改善する
  • docker-composeを無理に使わなくても良くなる

補足

  • Jupyter Notebook しか使わないのであれば、Dockerfile の最終行を ENTRYPOINT ["jupyter", "notebook", "--port", "8888", "--ip=0.0.0.0", "--allow-root"] にしてしまっていいと思います
  • コマンドを調整すれば、Jupyter Labとかでももちろん使えます

流派(?)

これは自分で思いついた方法とかではなく、元はインターン先で takahi_i 先生から教えて頂きました(ありがとうございます)。 cookiecutter-docker-science を参考に自分用にコンパクトなMakefileを作った感じです。


(2021/06/23) Makefileの記法に勘違いがあったので、一部修正しました。すみませんでした。

Kaggle NotebookでGitHubのprivateリポジトリをcloneする方法 (ver.2)

記事を投稿後、あるごんさん(@ar90n)とかまろさん(@mlaass1)からアドバイスを頂いたので、対応してアップグレードしました。

結論

  • Kaggle Notebook のAdd-ons機能でシークレットな変数(秘密鍵、リポジトリ名など)を入力
  • 以下のセルでクローンを実行

gist75523f5de4a571cecf35b124aa319474

変数取得後のコードの流れは以下のとおり

  1. 重複防止の rm -rf (2回目以降をgit pullにしてもOKのはず)
  2. 秘密鍵をシークレットな変数から作成
  3. 権限の変更
  4. git clone。引数の core.sshCommand~/.ssh/config の役割をしている
  5. 秘密鍵の削除

セルに必要なシークレットな変数は、Notebook上部にあるAdd-onsからセットできます。

f:id:hyper-pigeon:20210123132352p:plain:w600
Notebook上部

f:id:hyper-pigeon:20210123132408p:plain:w300
add-ons

f:id:hyper-pigeon:20210123132446p:plain:w300
今回非公開にしたい4変数を入力する。画面下のコピペを使えばすぐ使えるが、今回はわかりやすさのために変数名を変更している

補足:

  • 秘密鍵の改行部分は\nに置き換えています。
  • 4変数について
    • gitrepo: GitHub上でのリポジトリ名
    • ssh_keyname: id_rsa_xxなどの秘密鍵の名前
    • ssh_keyval: 秘密鍵の鍵の中身(-----BEGIN RSA PRIVATE KEY-----から-----END RSA PRIVATE KEY-----まで)
    • uname_git: GitHubのID

(別解) HTTPリクエスト+アクセストークンを使用した方法

前者よりセキュアではないですが、シンプルな手段の一つとして利用価値があるのでこちらも残しておきます。

!git clone https://[USER_ID]:[PERSONAL_ACCESS_TOKEN]@github.com/[USER_ID]/[REPOSITORY_NAME].git

モチベーション

  • Kaggleのコンペ中のコードは気軽に公開・共有できない
  • KaggleのNotebookは(私の環境では)動作が重く、コード検索に数十秒かかってとても辛い
  • (私は)Notebookのグローバル変数をベタ書きできるほど脳のメモリが無い人間なので改善したかった
  • 外部でコード実行しやすくして、Notebookの無駄時間消費を抑えたい
  • Gitの草を生やして、やってます感を出したい
  • コードが(多分)リサイクルしやすくなる

だいたいこの6つです。

おわりに

  • にわかKaggleやりはじめ人間なので、もっといい方法がKaggler内で共有されているのかもしれません
  • 改善案があれば、コメント等いただけると嬉しいです

(追記)↑教えていただいた方々、本当にありがとうございます!