youtuberはじめました

はじめに

COVID-19禍の影響か、知人、友人がけっこうyoutuberをやるようになっていた*1のと、それらコンテンツが面白かったことより、自分も真似してみようと思ってyoutuberになってみました。それについての話を少々します。

www.youtube.com

コンテンツはコンピュータ技術について、とくにわたしの専門であるLinuxカーネルや、それより少し下のハードウェアに近いレイヤについてのものが中心です。しかもそれらを巨大なソースコードを見たりせずに、なるべく平易に解説するのが目的です。

始めた動機

なぜLinuxカーネルなどを選んだかというと、わたしがこのネタを好きなことと、世の中の人に知ってもらいたいという思いがあるからです。実はこの思いは以前から書籍や雑誌連載(Software Design)、このブログ上の記事などで何年もにわたって実践してきていました。

その過程で思ったのは、「文書以外にも伝える方法はあるんじゃないか」ということです。上記書籍などの反応では「実際にやっているところが見たい」などの声が多数ありました。ソースコードを公開していても、文書の中で「みなさんもやってみてください」と書いても、やっぱり自分でやってみるのは面倒くさいものだというのは理解できます。

もう一点、知人から、「わたしの息子はわからないことがあるとググるんじゃなくてyoutubeで検索して解説動画を見るところが入り口」という話を聞いたのも大きなきっかけでした。私の初心者向けコンテンツのメインターゲットになるであろう若い世代には実は書籍よりも動画のほうが響くのかもしれないな、と、この話を聞いて思いました。

上記のような考えをもとに、とりあえずやってみよう、うまくいかなかったらやめればいいや、という気持ちではじめた、というわけです。

反響と改善点

はじめてみたところ数日でチャンネル登録者数が1000人を超えるなど、予想をはるかに上回る反応がありました。評価も高評価の割合95%程度と高く、かつ、コメントもおおむね好意的なものが多かったです。新しい動画を公開するごとに順調に再生回数は減っていますが、それでも、どれも数百回見られる程度には需要があるようなので、しばらくは続けてみるつもりです。

最初のほうは動画の長さが20分くらいあったのですが、友人から「長いと最初から見てもらえない、途中で切られるリスクが高いよ」という助言をもらったのをきっかけに、最近のものは10分程度にしています。これ以外にも一度に詰め込みすぎないようにする、普通に生きていたら出会わないであろう知識を小ネタとして、遊びとして混ぜる、などの工夫をしています。今後も改善を続ける予定です。

それ以外にいま寄せられている改善要望で一番多いのが音に関するものです。たとえば音質がそれほど良くないとか、音が小さいとか、あるいは回によって音の大小が違うとか。これについては、今すぐがんばって改善する気はないのですが、そのうちやるかもしれません。

収益化について

前節において述べた通り、非常に反響が大きかったことより、収益化の最低条件であるチャンネル登録者数1000人と直近12ヶ月の総再生時間4000時間のうち、前者はすでにクリアしています。後者についても現在開始一週間、動画の数5つで600時間を超えているため、夢物語ではないところまで来ています。主目的を見失わないのを第一にしつつ、見る人も有益な情報が得られて、かつ、配信者も楽しくお金を稼げる、となることを願っています。

おわりに

趣味として楽しく、あわよくばお金が稼げると嬉しいな~、というくらいで飽きないようにゆるゆると続けていけたらなと思います。ご意見ご要望などありましたら、このエントリへのコメントでもtwitterでも動画へのコメントでも、なんでもいいのでお伝えください。

*1:ウィルス騒動のはるか前からやっていた人もいますけど

DeepLは2020年5月4日現在、日本から課金できない

DeepLをいたく気に入ったので課金しようとしたらアカウント作成中にエラー発生。よくわかんなかったのでサポートに問い合わせたら「税制上の理由で日本からはまだ課金できない。でも、できるようにいま頑張ってるよ(意訳)」とのこと。

以下サポートから届いたメールの抜粋。

Unfortunately, due to tax reasons, it is currently only possible to book DeepL Pro within the European Union, United Kingdom, Switzerland the United States and Canada. We are working hard to make it possible to order DeepL Pro in Japan soon.

If you wish to keep updated with the news from our company (including when it will be possible to book DeepL Pro from outside of the EU), you can visit our Blog (https://www.deepl.com/blog.html) or follow our social media pages on Facebook and on Twitter.

はやく課金したい。

30分で論文流し読みシリーズ 9「Cntr: Lightweight OS Containers」

www.usenix.org

  • 実際の所要時間

    • 1時間
  • 課題

    • コンテナの実行において、コンテナイメージサイズを最小化しつつ、稀にしか使わないデバッガなどのその他ツールも使いたい
    • アプリもその他ツールもすべて入ったイメージは無駄に大きすぎる
    • アプリが通常使わないその他ツールをイメージから削除してしまうと、いざというときにその他機能が使えない、使うとしてもコンテナに外からツールを流し込まなくてはいけないので面倒
    • コンテナイメージのベースイメージを小さくする*1のはlibcの入れ替えなどによる互換性の問題が避けられない
  • 解決方法概要 -コンテナイメージをslimイメージとfatイメージの二種類に分ける

     - slimイメージ: アプリ実行に必要なものだけが入っている
     - fatイメージ: その他ツールが入っている。slimイメージにその他ツールを足した拡張版、というわけではない。コンテンツはなんでもいい。CNTRはfatイメージを使わずホスト環境を直接使う方法もあるが、説明は割愛
    
    • これ以降slimイメージから作られたコンテナをslimコンテナ、fatイメージから作られたコンテナをfatコンテナと記載
    • アプリの実行にはslimイメージを使う。その他ツールが使いたくなったらアプリのコンテナにfatイメージから作ったコンテナをアタッチ(詳細は後述)
    • 上記環境からはユーザはslimコンテナ、およびfatコンテナの両方にアクセス可能。つまりfatコンテナ内のデバッガを使ってslimコンテナ内のアプリをデバッグ、といったことができる
  • 解決方法詳細

    1. ユーザがCNTRを呼び出す。このときCNTRにslimコンテナの名前*2とfatイメージをパラメタとして指定する
    2. コンテナの名前をもとに、カーネルから動作中のコンテナのnamespaceや環境変数、cgroupsの一覧といったコンテナのコンテキストを得る
      • コンテナ名をもとにコンテキストを得る方法はコンテナランタイム依存なので、CNTRがランタイムごとにこの処理を実装する必要がある
    3. fatイメージを使ってコンテナを立ち上げて、CNTRFSサーバ(後述)を動かす
    4. 前述のコンテナのコンテキストをもとに、アプリのコンテナ上にネストしたnamespaceを作る
      • CNTRFSというCNTR専用ファイルシステムをマウントする。このCNTRFSはユーザからのファイルアクセスをslimコンテナおよびfatコンテナにforwardするproxyとなる
      • このときにユーザが指定したfatコンテナをパラメタとして渡す。これによってCNTRFSからのファイルアクセスフォワード先が、ユーザの指定したfatコンテナになる。フォワードにおいてはCNTRFSクライアントとサーバが連携
    5. 上記namespaceの中にCNTRのユーザがアクセスできる環境(ここではCNTR環境と呼ぶ)を用意して、その上で動作するシェルをユーザに提供する
    6. ユーザがファイルシステムにアクセスすると、CNTRFSは次のように実際のアクセス先を分ける
      • "/var/lib/cntr"以下にアクセスするとslimコンテナのデータにアクセス
      • "/proc"や"/sys"以下はslimコンテナのものを直接見せる
      • それ以外の場所へのアクセスするはfatコンテナのデータにアクセス
  • 効果

    • xfstestsをほとんどパスするほどの高い互換性がある
    • コンテナ実装に依存する部分が少ないこともあって、DockerやLXC,systemd-spawnなどの有名どころのコンテナランタイムで使える
    • Dockerhub上の有名どころのコンテナイメージのサイズを平均で2/3程度に小さくできる
    • 性能オーバーヘッドは少ない
  • 感想

    • かっこいい。言われてみるとなるほどだけど、うまくやるなあと思った
    • たくさんfatコンテナを付けると面白そう
    • Kubernetesephemeral containerをほうふつとさせる。なにか関係があるんだろうか。

*1:たとえばUbuntuからAlpineなど

*2:コンテナランタイムが個々のコンテナを識別するもの

swapは無効化されぬ、何度でも蘇るさ!

めも

Rookのintegration testを動かそうとしたら、テスト用のK8sクラスタを作るスクリプトにおいて、K8sクラスタが立ち上がらない、および、「kubeletはswaponだと動かないよ」というエラーメッセージが出ていることがわかった。しかし上記スクリプトクラスタ構築前にswapoff -aを実行していた。どういうことかと思って調査すると、たとえswapoff -aしていてもsystemdが定期的にシステムに存在するswap領域の状態を監視しており、無効になっていた場合は再度有効にしているらしいことがわかった。というわけで次のようなパッチで解決。

github.com

寝室からスマホを追放した話

以前から寝る前にスマホをぼさーっと見るのをやめたいなと思ってたんですが、寝室にそもそもスマホを置かないという方法でそれを達成しました。その結果、今朝はえらく頭がすっきりしていて、なんだか睡眠の質が改善したような気がします。たった一日なので因果関係はまだわかりませんが、寝る前にディスプレイを見るのはよくないとかいうし、しばらく続けてみようかと思います。

寝室にスマホを置かないというのは別に珍しい方法ではなくて、スマホを見ないと死ぬというほどスマホ中毒というわけでもないんですが、ここに至るまでにはけっこう時間がかかりました。その理由は、「スマホはなくてもいいけど目覚ましアラームは欲しいなあ、でもかっこいい目覚まし時計はなかなか見当たらないなあ、でも気合い入れて探すのもめんどくさいなあ」、という完全なる怠け根性から来るものでした。で、そんなときに前から気になっていたGoogle Nest Miniを買ってみてアラーム機能を使ってみたら、幸いにも「ああ、これでいいや」と思えました。昨晩からスマホはアラームをすべて解除して書斎の机の上にほったらかしにしています。

store.google.com

ところでGoogle Nest Miniで音楽を流してみると、どんどんYoutube Music Premium(ないしYoutube Premium)を契約する気がわいてきます。ああ怖い。

Ergo Proxyを見た

https://amzn.to/3aZpFC9

ストーリーは難しくて何言ってるのか最初は全然わからなかったものの…といいたいところですが結局最後まで全く理解できないまま終わりました。しかし世界観、とくに主人公のデザインがすばらしかったです。最初から最後まで映像の綺麗さと格好いい雰囲気を楽しんでいました。こういう楽しみかたをしたアニメは初めてかもしれない。

同僚に「Lainが好きならErgo Proxyはきっと気に入るとおもう」と言われて見始めたやつなんですが、なんと見始めたのが去年の二月末。一年以上かけて見ていたことになります。アニメを見る精神力がなくなっていますね。

長期証券投資の方法の一つを紹介

10年以上証券投資をしてきて今の方法にたどり着いた自分なりの投資方法を書きます。おそらくは少なからない人が推測している「株をやる」とは大きく違っていると思います。もう一点、タイトルについて「株式取引じゃないの?」と思われるかもしれませんが、株式だけではなく投資信託も買ってるので両方を含む証券投資としています。

文書化するのはめんどくさいので列挙で。

  • 目的
    • 60歳になったころから悠々自適に暮らせるようになること
    • 自分のはじき出した適正株価の計算(後述)が妥当かどうかを確かめたいという趣味。あともちろん資産も増やしたい。
  • 投資の原資
    • 生活費やとっさの入院など、まぁまぁの確率で入り用になりそうな金額を決めて、それだけは現金で持つ。それ以外は全て証券投資の原資。
  • 買うもの
    • 世界の株価インデックスと連動するインデックスファンドと呼ばれる投資信託ないしETFと呼ばれる上場投資信託を定額買い続ける。なぜインデックスと連動するかというと市場平均を上回るパフォーマンスを出すのは困難という説を信じているから。このへんは敗者のゲームという本に詳しい。
    • 日本株で暴落が起きるなり市場全体が割安になったときに次の条件を満たす株があればインデックスファンドを買った後に残る原資を使って買う*1
  • 個別株を買う基準
    • まずはPERやPBRなどの指標に基づいて適当にフィルタリングする。全部調べてなんかいられない
    • 数年にわたって順調に利益を出している会社、今後も出せそうな会社を選ぶ。このへんは勘。
    • 手元ではじき出した適正株価より現在価格が半額以下なものを選ぶ。適正価格をはじき出す方法についてはDCF法の考え方を使う。このとき証券分析をはじめとする現在企業が持っている資産の価値も考慮する。適正価格の半額以下とする理由は、どうせ計算結果は正確ではないので*2安全を考えてこうしている。物を作るときの安全率と同じ考え方。
  • その他の考え方
    • 底値で買おうということは考えない。無理*3。これは「頭と尻尾はくれてやれ」という言葉もある。あくまで買いたい株を探しているそのときに割安かどうかが問題。
    • 買った後はよほどのことがなければ資産の増減は確認しない。株価というものはそもそもフラフラ変動するものなので日々の変化を気にしてもしょうがない*4。また、60歳あたりまでに資産が増えていればいいので途中経過はどうでもいい。むしろ途中で暴落してくれれば買い増せるチャンスが増えるので好ましい*5
    • 海外株は買わない。株価そのものの変動と為替レートの変動を考えると予測が極めて困難と判断しているため
    • チャートや板は一切見ない。上記の考え方に基づくと見る理由が無い
  • 短期投資をしない理由
    • コロケーションをはじめとするなかばインチキな大技を使える巨人たちに負け続けるのはわかっているので納得がいかないから
    • なるべく精度が高そうな数値ベースで判断したいという性格とは相いれないから
    • なんとなくストレスがたまりそう。長期投資をしている場合に対して日々の株価が気になってしまいそう

こんなところです。

*1:上記インデックスを買う理由と矛盾するようだが、こちらは半ば趣味なので気にしない

*2:もし正確なら世界一の大金持ちになれる

*3:そんなのができたら世界一の大金持ちになれる

*4:たとえば一週間のうちに倍や半分になるのは当然

*5:さすがに60歳のころに減っていたら泣くと思うけど