<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.2">Jekyll</generator><link href="https://default.cf/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://default.cf/blog/" rel="alternate" type="text/html" /><updated>2022-12-31T22:27:13+09:00</updated><id>https://default.cf/blog/feed.xml</id><title type="html">default.cf/blog</title><subtitle>ヲタクな話を書きます。</subtitle><entry><title type="html">さよなら、2022年</title><link href="https://default.cf/blog/2022/12/31/goodbye-2022/" rel="alternate" type="text/html" title="さよなら、2022年" /><published>2022-12-31T00:00:00+09:00</published><updated>2022-12-31T00:00:00+09:00</updated><id>https://default.cf/blog/2022/12/31/goodbye-2022</id><content type="html" xml:base="https://default.cf/blog/2022/12/31/goodbye-2022/">&lt;p&gt;今年も今年で、色々生活が変わった1年だった。&lt;/p&gt;

&lt;p&gt;まず、10月に転職した。今月で丁度試用期間が終わるので明らかにするが、サイボウズ株式会社の生産性向上チームにジョインした。
モブプログラミングで業務を進める他、空いている時間に自分に足りていない知識、社内特有のツールなどへの理解をしてきた。
来年はバリバリ業務を進めつつ、インプットと外部への発信なども積極的にやっていきたい…2022年はこのブログも全然書いてなかったし…&lt;/p&gt;

&lt;h2 id=&quot;本&quot;&gt;本&lt;/h2&gt;
&lt;p&gt;（リストアップ中…）&lt;/p&gt;

&lt;h2 id=&quot;ガジェット類&quot;&gt;ガジェット類&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;マザボ&lt;/li&gt;
  &lt;li&gt;RTX3090&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;グラボを大幅にアップグレードした。これで &lt;a href=&quot;https://xn--pckjp4dudxftf.xn--tckwe/&quot;&gt;ゴーストクラブ.コム&lt;/a&gt; の負荷に耐えられるようになった。最高。
そう、この1年はVRにドハマりし続けた1年だった。丁度去年 &lt;a href=&quot;https://default.cf/blog/2021/12/26/oculus-quest-2/&quot;&gt;こんなブログ記事&lt;/a&gt; を書いていたが、VR の中で友達ができたよ…！毎晩 HMD 付けて酒を飲んで友達とお喋りしているよ…！
でもドハマりしすぎて、リアルでも VR でも友達の人にリアル蔑ろにしすぎって言われたので、2023年はバランスを考えるよ。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;さてこれからアバターを仕上げて、VR の中で友達と新年を迎えるんだ…！
来年もよろしくお願いします。&lt;/p&gt;

&lt;p&gt;なお、本文章は走り書きのようなもので、サイレントに修正する予定なので悪しからず。&lt;/p&gt;</content><author><name></name></author><category term="tweet" /><summary type="html">今年も今年で、色々生活が変わった1年だった。</summary></entry><entry><title type="html">このブログにコメント欄を追加したよ</title><link href="https://default.cf/blog/2022/01/18/add-comment-field/" rel="alternate" type="text/html" title="このブログにコメント欄を追加したよ" /><published>2022-01-18T00:00:00+09:00</published><updated>2022-01-18T00:00:00+09:00</updated><id>https://default.cf/blog/2022/01/18/add-comment-field</id><content type="html" xml:base="https://default.cf/blog/2022/01/18/add-comment-field/">&lt;p&gt;JavaScript ってやつでコメント欄増やした。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;このブログは今まで WEB 1.0 みたいなサイト運用をしてきたけど、
ここに来てコメント欄を増やしてみた。WEB 2.0 の到来である（笑）&lt;/p&gt;

&lt;p&gt;「&lt;a href=&quot;https://utteranc.es/&quot;&gt;utterances 🔮&lt;/a&gt;」というサービスを使って実現している。&lt;/p&gt;

&lt;p&gt;データがどこに書き込まれるかというと、なんと指定した GitHub のリポジトリに Issue として書き込まれる。賢い。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/defaultcf/blog/issues&quot;&gt;https://github.com/defaultcf/blog/issues&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;これで双方向なウェブサイトになるんじゃないかな？
誰かがマサカリを投げてくれるかもしれないので、私はより一層気を引き締めてブログをやっていきます。&lt;/p&gt;</content><author><name></name></author><category term="tweet" /><summary type="html">JavaScript ってやつでコメント欄増やした。</summary></entry><entry><title type="html">さようなら、2021年</title><link href="https://default.cf/blog/2021/12/31/goodbye-2021/" rel="alternate" type="text/html" title="さようなら、2021年" /><published>2021-12-31T00:00:00+09:00</published><updated>2021-12-31T00:00:00+09:00</updated><id>https://default.cf/blog/2021/12/31/goodbye-2021</id><content type="html" xml:base="https://default.cf/blog/2021/12/31/goodbye-2021/">&lt;p&gt;今年は色々生活が変わった1年だった。&lt;/p&gt;

&lt;p&gt;まず、東京の企業に就職した。北海道から東京への引っ越しがあった。
その後、COVID-19 の感染者急増もあったので、家に引きこもりながらリモートで働いていた。&lt;/p&gt;

&lt;p&gt;稀に30分歩いて秋葉原まで行き、同人誌を漁るなどして気分転換をしていた。
感染状況が収まり始めると、東京の友人たちと肉を食べる会をやった。&lt;/p&gt;

&lt;p&gt;仕事はフロントエンドからバックエンド、インフラに至るまでを担当しており、とにかくがむしゃらにやってきたつもり。
入社して最初のクォーターで、最も成長したということで賞を頂戴することができた。
来年も頑張る。&lt;/p&gt;

&lt;h2 id=&quot;本&quot;&gt;本&lt;/h2&gt;
&lt;p&gt;今までは大学図書館などで本を読めていた。
就職して会社に本があまり無いので、自分で買うようになった。&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ハッカーと画家&lt;/li&gt;
  &lt;li&gt;情熱プログラマー&lt;/li&gt;
  &lt;li&gt;自在化身体論&lt;/li&gt;
  &lt;li&gt;Team Geek&lt;/li&gt;
  &lt;li&gt;UNIXという考え方&lt;/li&gt;
  &lt;li&gt;人月の神話&lt;/li&gt;
  &lt;li&gt;ユニコーン企業のひみつ&lt;/li&gt;
  &lt;li&gt;岩田さん 岩田聡はこんなことを話していた。&lt;/li&gt;
  &lt;li&gt;WEB+DB Press Vol. 122 ~ 125&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;などなど。&lt;/p&gt;

&lt;p&gt;うち半分くらいは既に大学時代に読んだものだけど、めちゃめちゃ影響を受けていたので改めて自分で買って読み直した。
Teem Geek は IT 企業に勤める人みんな読むべき。&lt;/p&gt;

&lt;h2 id=&quot;ガジェット類&quot;&gt;ガジェット類&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Ryzen 5600X&lt;/li&gt;
  &lt;li&gt;B550 Steel Legend&lt;/li&gt;
  &lt;li&gt;DDR4-3200 8GB x 2&lt;/li&gt;
  &lt;li&gt;Oculus Quest 2
    &lt;ul&gt;
      &lt;li&gt;Elite Strap&lt;/li&gt;
      &lt;li&gt;Quest Link Cable&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6年以上使ってきた CPU 、マザーボード、メモリを更新した。めちゃめちゃサクサクになったので、3,4年はこれで良さそう。グラボは替えようかな。&lt;/p&gt;

&lt;p&gt;そして自分にとって初めての HMD、Oculus Quest 2 を買った。&lt;a href=&quot;https://default.cf/blog/2021/12/26/oculus-quest-2/&quot;&gt;詳しくは既にブログに書いている&lt;/a&gt;。最高。&lt;/p&gt;

&lt;p&gt;来年はもっと環境を良くして、VR をもっと楽しみたい。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;とりま年末に書けるのはここまで。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://dic.nicovideo.jp/a/%E5%91%A8%E5%A4%AE%E3%82%B5%E3%83%B3%E3%82%B4&quot;&gt;みなさま〜（天下無双）&lt;/a&gt;、来年もよろしくお願いします。&lt;/p&gt;</content><author><name></name></author><category term="tweet" /><summary type="html">今年は色々生活が変わった1年だった。</summary></entry><entry><title type="html">Oculus Quest 2 を買って VRChat にハマっている</title><link href="https://default.cf/blog/2021/12/26/oculus-quest-2/" rel="alternate" type="text/html" title="Oculus Quest 2 を買って VRChat にハマっている" /><published>2021-12-26T00:00:00+09:00</published><updated>2021-12-26T00:00:00+09:00</updated><id>https://default.cf/blog/2021/12/26/oculus-quest-2</id><content type="html" xml:base="https://default.cf/blog/2021/12/26/oculus-quest-2/">&lt;p&gt;体験しないと、きっとこの良さは分からない。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/blog/assets/img/2021-12-26-oculus-quest-2/wolf-rest-and-sleep.png&quot; alt=&quot;wolf-rest-and-sleep&quot; /&gt;&lt;/p&gt;

&lt;p&gt;ワールド『&lt;a href=&quot;https://vrchat.com/home/world/wrld_fac11e5f-1c73-4436-8936-a70b80961c5a&quot;&gt;Rest and Sleep 寝る&lt;/a&gt;』にて、私の VR での姿。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;2021年後半は、VR の話題が尽きなかったように思う。&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Facebook, inc は Meta, inc（Meta Platforms, inc）という名に変わって、VR 関連に力を入れることを宣言した。
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://about.fb.com/ja/news/2021/10/facebok-company-is-now-meta/&quot;&gt;https://about.fb.com/ja/news/2021/10/facebok-company-is-now-meta/&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;ANYCOLOR 株式会社はユメノグラフィアの終了を発表した…
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://note.com/yume_note1205/n/nb2f04ec86d10&quot;&gt;https://note.com/yume_note1205/n/nb2f04ec86d10&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;やっぱまだまだ HMD が普及してないからかな…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;今年も Vket が開催された。
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://winter2021.vket.com/&quot;&gt;https://winter2021.vket.com/&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;SANRIO Virtual Fes が開催され、多くの話題を呼んだ。
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://v-fes.sanrio.co.jp/&quot;&gt;https://v-fes.sanrio.co.jp/&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;特に SANRIO Virtual Fes は、開催後の各種記事を読んで、行かなかったことを後悔した。
“AMOKA が遂に大きな舞台に立った”、”キヌのライブに度肝を抜かれた”、”バーチャル四天王らのパフォーマンスが凄かった”、”初音ミクとキノピオピーのコラボがヤバかった”、”地下5階のクラブがヤバかった”、などなど。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://vr-lifemagazine.com/sanrio-virtual-fes-in-sanrio-puroland-report/&quot;&gt;https://vr-lifemagazine.com/sanrio-virtual-fes-in-sanrio-puroland-report/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;気になりすぎていろんな記事を漁ったが、やはり実際に体験してみないと分からないことが多すぎた。&lt;/p&gt;

&lt;p&gt;大盛況だったことは間違いないようなので、きっとまたこういうイベントはやるだろう。
その時にまたこういう後悔をしたくない。&lt;/p&gt;

&lt;p&gt;そう思い、Oculus Quest 2 を買った。ついでに PCVR をやりたかったので CPU を替え、その過程でマザーボードもメモリも替えた。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;とりあえず VRChat をやっている。
2017年くらいに少し遊んだアカウントがあったので、それでログインしている。 &lt;a href=&quot;https://docs.vrchat.com/docs/vrchat-safety-and-trust-system&quot;&gt;トラストランク&lt;/a&gt; はまだ「Visitor」だった。&lt;/p&gt;

&lt;p&gt;「VRChatワールド探検部」というグループの方々が &lt;a href=&quot;https://adventar.org/calendars/6950&quot;&gt;Advent Calendar&lt;/a&gt; でいろんなワールドを紹介しているのを見つけて、それを参考にワールドを巡ったりしている。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://sites.google.com/view/shaderfes&quot;&gt;Shader Fes 2021&lt;/a&gt; という、シェーダーをめちゃめちゃ活用した展示物がめちゃめちゃ展示されてるワールドも楽しんでいる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/blog/assets/img/2021-12-26-oculus-quest-2/groupphoto-at-shaderfes.png&quot; alt=&quot;groupphoto-at-shaderfes&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;色々遊んでいると、トラストランクが「New user」になった。&lt;/p&gt;

&lt;p&gt;早速 booth で可愛らしい3Dモデルを探した。めちゃめちゃある。
その中で一番ピンと来た子を選んだ。名を大神ルゥと言う。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://booth.pm/ja/items/1845778&quot;&gt;https://booth.pm/ja/items/1845778&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;可愛い。&lt;/p&gt;

&lt;p&gt;しかし購入した後に気付いたのだが、このモデルは VRC SDK v3 に対応していない（2021年12月26日現在）。
README 通りにアップロードしようとすると、エラーが表示される。&lt;/p&gt;

&lt;p&gt;今は非推奨の SDK v2 を使うのもアリではあるが、せっかくなので自分でv3用に修正して、無事アップロードできた。&lt;/p&gt;

&lt;p&gt;参考: &lt;a href=&quot;https://kurotorimkdocs.gitlab.io/kurotorimemo/010-VR/010_VRChat/Avatars3.0/ToAvatars3/&quot;&gt;https://kurotorimkdocs.gitlab.io/kurotorimemo/010-VR/010_VRChat/Avatars3.0/ToAvatars3/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/blog/assets/img/2021-12-26-oculus-quest-2/surprised-wolf.png&quot; alt=&quot;wolf-with-hamburger&quot; /&gt;&lt;/p&gt;

&lt;p&gt;可愛い！&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/blog/assets/img/2021-12-26-oculus-quest-2/wolf-with-hamburger.png&quot; alt=&quot;wolf-with-hamburger&quot; /&gt;&lt;/p&gt;

&lt;p&gt;可愛い！！
（なんか可愛いので、びっくりしてる顔ばかり撮ってしまう）&lt;/p&gt;

&lt;p&gt;ライセンス的に改造が許可されているので、髪と胸の揺れを調整したり、表情の微修正をしたり。
しかし、久々に Unity 触った。 &lt;a href=&quot;https://scrapbox.io/defaultcf/Unity%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92git%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B&quot;&gt;なんとか Git 管理して、いつでも特定のコミットに戻れるようにしている。&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今後は、Blender も扱えるようになりたいし、ワールドを作ったりしてみたい。
やりたいことだらけで、睡眠時間が削れるのが悩みどころ。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;こう美少女として VRChat で遊んでいると、かつて自分が VTuber にドハマりして最初の頃に書いた呟きを思い出す。まぁありふれた考えだが。&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;VTuberの良さとは、その人の外見・生まれ・性別・年齢など、あらゆる属性を排除した状態で配信を行うことができるという点にある（声すらボイチェンで変えられる）。
https://scrapbox.io/defaultcf/VTuber&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;遂に自分も VR で他の誰かになれる日が来たのだと思うと胸アツだ。
今はリアルで知り合った者同士で遊んでいるが、近々 VRChat で知り合って遊ぶという経験をしてみたいものである。&lt;/p&gt;

&lt;p&gt;VRChat でお会いしましょう ;)&lt;/p&gt;</content><author><name></name></author><category term="VR" /><summary type="html">体験しないと、きっとこの良さは分からない。</summary></entry><entry><title type="html">log4j の脆弱性は SELinux で防げるか？</title><link href="https://default.cf/blog/2021/12/11/selinux-01/" rel="alternate" type="text/html" title="log4j の脆弱性は SELinux で防げるか？" /><published>2021-12-11T00:00:00+09:00</published><updated>2021-12-11T00:00:00+09:00</updated><id>https://default.cf/blog/2021/12/11/selinux-01</id><content type="html" xml:base="https://default.cf/blog/2021/12/11/selinux-01/">&lt;p&gt;こんにちは！
この記事は、GIG Advent Calendar の11日目の記事です。遅れてすみません！&lt;/p&gt;

&lt;p&gt;log4j の脆弱性の件で各所大変なことになっていますね…
幸い私はその対応に終われることはありませんでしたが…&lt;/p&gt;

&lt;p&gt;私が稀に嗜んでいる Minecraft でも、バージョン16以下であれば log4j の脆弱性を抱えているらしいです。
会社ではインフラエンジニアをやっているので、如何に脆弱性による被害を抑えられるかが気になります。&lt;/p&gt;

&lt;p&gt;そこでこの記事では log4j と、インフラエンジニア（1年目）から見た脆弱性による被害を最小限に抑える方法について考えます。
1年目なので。。。色々大目に見てください。。。
もし間違いがあったら、是非記事にプルリクを送っていただければと思います。&lt;/p&gt;

&lt;h1 id=&quot;log4j&quot;&gt;log4j&lt;/h1&gt;
&lt;p&gt;log4j は、Java のロギングのライブラリらしいです。
今回知ったのですが、このライブラリはいろんなプロダクトに含まれているのですね…&lt;/p&gt;

&lt;p&gt;https://logging.apache.org/log4j/2.x/&lt;/p&gt;

&lt;h1 id=&quot;攻撃&quot;&gt;攻撃&lt;/h1&gt;
&lt;p&gt;様々な機能を備えており、その中でも Lookup という変数を使える機能が問題のようです。
試しにプライベートネットワーク上に Minecraft サーバを立てて、攻撃できる環境を色々用意してみた結果、確かに実行できそうでした。
手法について詳しく書いたら警察のご厄介になるかも分からないので、これ以上書きません。防ぐ方法を考えるのがメインですし、ね。&lt;/p&gt;

&lt;p&gt;https://www.jpcert.or.jp/at/2021/at210050.html&lt;/p&gt;

&lt;h1 id=&quot;対応策&quot;&gt;対応策&lt;/h1&gt;
&lt;p&gt;AWS WAF のマネージドルールに、今回の脆弱性を対象とした攻撃を防ぐルールが追加されたようです。
https://dev.classmethod.jp/articles/aws-waf-new-rule-log4jrce/&lt;/p&gt;

&lt;p&gt;また SELinux を使って、ターゲットのプロセスがあらかじめ指定したディレクトリ外を読み書きするのを防いだり、
指定したプロセス以外を起動するのを防いだり、外部の LDAP サーバとの通信を防いだりできるんじゃないかなと思っています。&lt;/p&gt;

&lt;p&gt;ただし、ポリシーは正しく書かなければ意味が無いですし、SELinux は最後の砦みたいなところがあるので
これに頼りきりにならずに、そもそも log4j の設定を見直したりして脆弱性を塞ぐ努力をするのが最優先でしょう。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;すみません、今回の記事はここまでです。&lt;/p&gt;

&lt;p&gt;攻撃できる環境を用意するだけで土日を使い果たしました…LDAP がよく分からず、LDAP の勉強から始めてました…
SELinux で攻撃の影響を抑えられるような設定とか調べて、また記事書きます、きっと。&lt;/p&gt;</content><author><name></name></author><category term="tech" /><category term="selinux" /><summary type="html">こんにちは！ この記事は、GIG Advent Calendar の11日目の記事です。遅れてすみません！</summary></entry><entry><title type="html">Jekyll で 他の Jekyll から情報を取得する</title><link href="https://default.cf/blog/2021/10/24/jekyll-fetch-other-jekyll/" rel="alternate" type="text/html" title="Jekyll で 他の Jekyll から情報を取得する" /><published>2021-10-24T00:00:00+09:00</published><updated>2021-10-24T00:00:00+09:00</updated><id>https://default.cf/blog/2021/10/24/jekyll-fetch-other-jekyll</id><content type="html" xml:base="https://default.cf/blog/2021/10/24/jekyll-fetch-other-jekyll/">&lt;p&gt;需要が無いかもしれない技術メモ。&lt;/p&gt;

&lt;p&gt;Jekyll で作っている2つのサイトがある。&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://default.cf/&quot;&gt;default.cf&lt;/a&gt; ←ポートフォリオサイト&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://default.cf/blog/&quot;&gt;default.cf/blog&lt;/a&gt; ←ブログ&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;同じドメインでホストしているが、これらは別々のリポジトリで GitHub Pages を使ってビルドされている。そのため、静的ビルド時にリポジトリを跨いで情報を取得・反映するには一手間要る。JavaScript で fetch, parse, render は、SEO の観点からしないものとする。&lt;/p&gt;

&lt;p&gt;今回は、ポートフォリオサイト上にブログのリンクを表示したい。
色々考えた末、jekyll-feed で生成される feed.xml を、何らかの方法でポートフォリオの &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_data/feed.json&lt;/code&gt; に置くことができれば良いとなった。&lt;/p&gt;

&lt;p&gt;技術的には次の挑戦が必要だった。&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;XML ファイルを JSON ファイルに変換する&lt;/li&gt;
  &lt;li&gt;ポートフォリオサイトの GitHub Actions で XML ファイルの取得、JSON ファイルへの変換、コミット&lt;/li&gt;
  &lt;li&gt;ブログを書いて master にプッシュしたら、ポートフォリオサイトの action が発火され更新される&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;順に説明する。&lt;/p&gt;

&lt;h2 id=&quot;xml-ファイルを-json-ファイルに変換する&quot;&gt;XML ファイルを JSON ファイルに変換する&lt;/h2&gt;

&lt;p&gt;xml2json を使って変換することにした。
詳しくは Scrapbox に書いた。&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://scrapbox.io/defaultcf/xml2json&quot;&gt;scrapbox.io/defaultcf/xml2json&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scrapbox.io/defaultcf/XML_Schema&quot;&gt;scrapbox.io/defaultcf/XML_Schema&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;XML Schema を頑張って書いて、変換できることを確認した。
ただ一箇所、XML 側を修正しないとどうしても変換できないところがあって、そこは処理前に sed で置換することにした。&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'s/xmlns=/xmlns:atom=/'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;ポートフォリオサイトの-github-actions-で-xml-ファイルの取得json-ファイルへの変換コミット&quot;&gt;ポートフォリオサイトの GitHub Actions で XML ファイルの取得、JSON ファイルへの変換、コミット&lt;/h2&gt;
&lt;p&gt;試行錯誤して最終的にこうなった。&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.github/workflows/create-blog-links.yml&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Create blog links&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;workflow_dispatch&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;fetch-and-create&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;runs-on&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install -y libxml-compile-perl libjson-xs-perl&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;actions/checkout@v2&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;|&lt;/span&gt;
          &lt;span class=&quot;s&quot;&gt;curl https://default.cf/blog/feed.xml \&lt;/span&gt;
            &lt;span class=&quot;s&quot;&gt;| sed -e 's/xmlns=/xmlns:atom=/' \&lt;/span&gt;
            &lt;span class=&quot;s&quot;&gt;| xml2json -x - -s feed.xsd \&lt;/span&gt;
            &lt;span class=&quot;s&quot;&gt;&amp;gt; _data/feed.json&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;EndBug/add-and-commit@v7&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;Update&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s&quot;&gt;feed.json'&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;committer_name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;GitHub Actions&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;committer_email&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;41898282+github-actions[bot]@users.noreply.github.com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;uses を使って checkout と commit は簡単に済ませられる。GitHub Marketplace 様様だ。&lt;/p&gt;

&lt;p&gt;手動で workflow を実行して、feed 取得・JSON に変換・コミットが為されることを確認する。&lt;/p&gt;

&lt;h2 id=&quot;ブログを書いて-master-にプッシュしたらポートフォリオサイトの-action-が発火され更新される&quot;&gt;ブログを書いて master にプッシュしたら、ポートフォリオサイトの action が発火され更新される&lt;/h2&gt;
&lt;p&gt;GitHub REST API を叩いて、他の workflow を発火することができるらしい。
ブログ側の action をこのように書いた。&lt;del&gt;これでいけるはず…&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;GITHUB_TOKEN の部分は、secrets.GITHUB_TOKEN を使うと失敗する。
&lt;a href=&quot;https://docs.github.com/en/actions/security-guides/encrypted-secrets#using-encrypted-secrets-in-a-workflow&quot;&gt;https://docs.github.com/en/actions/security-guides/encrypted-secrets#using-encrypted-secrets-in-a-workflow&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;you can use the secrets context to access secrets you’ve created in your repository&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;secrets.GITHUB_TOKEN&lt;/code&gt; は、そのアクション1回限りで有効で、且つそのリポジトリにだけ機能するアクセス権限が与えられる。
つまり、他のリポジトリの workflow を発火できない。&lt;/p&gt;

&lt;p&gt;ここでのトークンは、personal access token を使うことにした。
repo 全てと、workflow にチェックを入れた。&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.github/workflows/kick-portfolio.yml&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Kick portfolio&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;branches&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;master&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;post-api&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;runs-on&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;octokit/request-action@v2.x&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;owner&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;defaultcf&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;repo&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;defaultcf.github.io&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;workflow_id&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;create-blog-link.yml&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;master&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;${{ secrets.KICK_WORKFLOW_TOKEN }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;p&gt;以上。&lt;del&gt;さて、この記事を push したら、workflow がまわるかな…？&lt;/del&gt;
&lt;del&gt;結果が出たら、この記事を更新する。&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;GITHUB_TOKEN の部分で引っかかっていた。Personal access token に変更し、再度 push すると、ブログ側の action が動いて、ポートフォリオサイト側の action を発火し、ポートフォリオサイトが更新された！&lt;/p&gt;

&lt;p&gt;普段、業務で Bitbucket pipeline を使っているので、GitHub Actions は久々だったが、やっぱ GitHub Actions も良いな…フックが充実している。&lt;/p&gt;</content><author><name></name></author><category term="tech" /><category term="jekyll" /><summary type="html">需要が無いかもしれない技術メモ。</summary></entry><entry><title type="html">鈴原るるの卒業にあたって、あるオタクの呟き</title><link href="https://default.cf/blog/2021/07/01/lulu-suzuhara/" rel="alternate" type="text/html" title="鈴原るるの卒業にあたって、あるオタクの呟き" /><published>2021-07-01T01:00:00+09:00</published><updated>2021-07-01T01:00:00+09:00</updated><id>https://default.cf/blog/2021/07/01/lulu-suzuhara</id><content type="html" xml:base="https://default.cf/blog/2021/07/01/lulu-suzuhara/">&lt;p&gt;鈴原るるが、2021年6月30日に卒業する。
以下、ただのオタクの自分語り。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;鈴原を知ったのは、2020年1月頃、ニコ生で深夜やっていた、 Virtual To Live の最終公演の一部再放送。鈴原はほかの VTuber と共に「林檎もぎれビーム!」を歌っていた。完璧なアイドルステップを踏む鈴原が非常に気になったのを覚えている。&lt;/p&gt;

&lt;p&gt;その頃には鈴原がデビューして1年近く経っており、既に大量のアーカイブ動画があったが、気になって最初の方からずっと観ていった。作業しながら観、深夜眠れない時に観…&lt;/p&gt;

&lt;p&gt;そこからにじさんじの他の VTuber の配信を観るようになり、やがて VTuber 全体に対して深い関心を持つようになった。
それでも、鈴原の配信はほぼ欠かさず観ていた。
レトロゲーでも、イマドキのゲームでも、本当に楽しそうに遊んでいる。非常に脳筋なところがあるので、片っ端から手段を試す。そして全く諦めない。その姿が本当に好き。
雑談配信も好き。「こんなお酒飲んでる」というのを、鈴原らしい絵で示してくれるのが個人的にめちゃめちゃ好き。深夜の語り弾きが好き。
鈴原とその父、姉とのコラボ配信はなかなか革新的だったように思う。&lt;/p&gt;

&lt;p&gt;他のライバーとのコラボ、3D配信、ラジオなどなど、多方面に活躍する鈴原が好き。&lt;/p&gt;

&lt;p&gt;そうした鈴原が起点となって、自分もいろんなことを好きになることができた。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;そんな鈴原るるが、今日を以って VTuber を辞める。
“推しは推せる時に推せ” という言葉の重みを、身を以って知った。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/blog/assets/img/suzuhara-membership.png&quot; alt=&quot;suzuhara membership&quot; /&gt;&lt;/p&gt;

&lt;p&gt;メンバーシップ、1年3ヶ月20日目。もっと早くから出会えたら良かった。&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/-d8NPJ8ShfI?rel=0&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;最後の配信では、同時視聴者数18万人を超え、それでもほぼいつもと変わらない口調で思い出を語っていた。本当にメンタルが強い。
これが最後の配信とは思えないし、思いたくない。
過去の衣装お披露目から始まり、さいねママによる未公開デザインのお披露目が行われた。
本当にかわいらしい、まさに鈴原にぴったりの衣装ばかりだった。
それは今後の配信で使われたかもしれないもので、いつか3D配信での衣装になるかもしれないものだった。そんな未来が来たらどれほど良かったことか。&lt;/p&gt;

&lt;p&gt;引退理由を明かしてくれた。深くここでは書かないが、一ファンとして本当にやるせなく、悔しく思う。
それでも、鈴原は VTuber が好きで、他のライバーが好きで、ファンが好きだと言ってくれた。
鈴原は自身の配信に自信を持てなかったというが、徐々に自分自身のことが好きになっていったと言うし、幸せだったと言う。ファンとしてもそれは本当に嬉しく、こちらも本当に幸せだった。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;そうして、7月1日0時を少し過ぎ、彼女は配信を終えた。最後まで鈴原るるたっぷりだった。
今後、ことあるごとに鈴原を思い出すんだろうな…そして徐々に思い出す頻度は少なくなっていくんだろうけど、でも絶対に忘れない。&lt;/p&gt;

&lt;p&gt;本当に多くの幸せをありがとう。&lt;/p&gt;

&lt;p&gt;ただただ、彼女の今後の人生、健康で幸多いことを願う。&lt;/p&gt;</content><author><name></name></author><category term="tweet" /><summary type="html">鈴原るるが、2021年6月30日に卒業する。 以下、ただのオタクの自分語り。</summary></entry><entry><title type="html">Hi defaultcf, bye i544c</title><link href="https://default.cf/blog/2021/04/24/change-user-name/" rel="alternate" type="text/html" title="Hi defaultcf, bye i544c" /><published>2021-04-24T21:52:00+09:00</published><updated>2021-04-24T21:52:00+09:00</updated><id>https://default.cf/blog/2021/04/24/change-user-name</id><content type="html" xml:base="https://default.cf/blog/2021/04/24/change-user-name/">&lt;p&gt;色々あって、ユーザ名を変更する運びとなりました。&lt;/p&gt;

&lt;h2 id=&quot;引っ越し&quot;&gt;引っ越し&lt;/h2&gt;

&lt;p&gt;働くために、東京に引っ越しました。
COVID-19 によるパンデミックの最中ですが、他に選択肢がありませんでした。&lt;/p&gt;

&lt;p&gt;歩いて30分ほどで秋葉原に行けるところで、なかなか良いです。&lt;/p&gt;

&lt;h2 id=&quot;就職&quot;&gt;就職&lt;/h2&gt;

&lt;p&gt;ご縁があって東京のベンチャー企業で働いています。
インフラエンジニアとしてサーバの保守や CI/CD の整備の他、バックエンドやフロントエンドのコードを修正することもあり、今までやってきたことを活かすことができています。&lt;/p&gt;

&lt;p&gt;知見が貯まってきたら、外部に発信していきたいなと考えています。&lt;/p&gt;

&lt;h2 id=&quot;ユーザ名変更&quot;&gt;ユーザ名変更&lt;/h2&gt;

&lt;p&gt;大学時代は &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Isaac&lt;/code&gt; や &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;i544c&lt;/code&gt; などと名乗っていました。実は高校の頃から使っていたユーザ名で、なんと9年近くも使っていました。
ただ、Twitter などで既に他のユーザが &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;i544c&lt;/code&gt; を使用しているなど、各種サービスでユーザ名を統一できておらず、モヤモヤしていました。&lt;/p&gt;

&lt;p&gt;そんな中、たまたま &lt;a href=&quot;https://freenom.com/&quot;&gt;Freenom&lt;/a&gt; で &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;default.cf&lt;/code&gt; というドメインが取れることに気付きました。ユーザ名を &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;defaultcf&lt;/code&gt; にすれば（本来の意味で）ユニークそうだし、社会人になるしで、この度改名することとしました。&lt;/p&gt;

&lt;p&gt;ポートフォリオも一新しました。 &lt;a href=&quot;https://default.cf/&quot;&gt;https://default.cf/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;i544c.me を default.cf にリダイレクトし、 blog.i544c.me を default.cf/blog 下にリダイレクトするようにしました。同じ GitHub Pages のコンテンツなのにブログだけサブドメインで運用していて気持ち悪かったので、変更する良い機会でした。&lt;/p&gt;

&lt;h3 id=&quot;freenom&quot;&gt;Freenom&lt;/h3&gt;

&lt;p&gt;…このブログを書いている今になって、 Freenom の無料ドメインの規約が気になっています。
ドメインの所有者ではなく、あくまでユーザで、 Freenom によって取り消されるかも分からない。ネット上ではドメインが使えなくなったという話がちらほら…&lt;/p&gt;

&lt;p&gt;金を払うべきでした…
既に無料ドメインで取ってしまったので、1年経ったらそれ以降は有料で使おうと思います。&lt;/p&gt;</content><author><name></name></author><category term="tweet" /><summary type="html">色々あって、ユーザ名を変更する運びとなりました。</summary></entry><entry><title type="html">さようなら、2020年</title><link href="https://default.cf/blog/2020/12/31/goodbye-2020/" rel="alternate" type="text/html" title="さようなら、2020年" /><published>2020-12-31T20:52:00+09:00</published><updated>2020-12-31T20:52:00+09:00</updated><id>https://default.cf/blog/2020/12/31/goodbye-2020</id><content type="html" xml:base="https://default.cf/blog/2020/12/31/goodbye-2020/">&lt;p&gt;2020年は酷かった。&lt;/p&gt;

&lt;p&gt;まず、COVID-19によるパンデミックが、ずっと世間に暗い影を落としていた。
私の就活もあった。難なく進むかな、などと軽く考えていたら、散々な結果が続いた。
そして、VTuber文化に救われた。&lt;/p&gt;

&lt;h2 id=&quot;就活&quot;&gt;就活&lt;/h2&gt;
&lt;p&gt;色んな会社を受けたが、落ち続けた。自分のせいなのか、COVID-19のせいなのか分からず、陰鬱とした日々だった。
それでも社会人になることを諦められず、細々と就活を続けた結果、なんとかベンチャー企業から内定を頂戴した。&lt;/p&gt;

&lt;p&gt;今はこれ以上書く気になれない。&lt;/p&gt;

&lt;h2 id=&quot;vtuber&quot;&gt;VTuber&lt;/h2&gt;
&lt;p&gt;VTuberの存在自体2018年から知っていたが、2020年3月あたりからドハマりした。
特にホロライブ3,4期生にハマって、わための歌、あさココを毎朝見ていた。
VTuberという存在についての思考も楽しく、よく考察記事を漁ってもいた。&lt;/p&gt;

&lt;p&gt;適当にまとめたページを書いたりもした…
&lt;a href=&quot;https://scrapbox.io/i544c/VTuber&quot;&gt;i544c/VTuber&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;プログラミング&quot;&gt;プログラミング&lt;/h2&gt;
&lt;p&gt;今までスクリプト言語を中心に書いてきたが、2020年は型の便利さを改めて学んだ。TypeScriptを書いたり、Elixirを学んだりした。
VTuberに寄与できたらと、幾つか簡単なものを作ったりもした。&lt;/p&gt;

&lt;h4 id=&quot;vgif&quot;&gt;vGIF&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/i544c/vgif&quot;&gt;github.com/i544c/vgif&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VTuberのAnimated GIFを共有できる、ウェブアプリケーション。
Rails製。デプロイはHerokuにして、画像のホストはS3にした。&lt;/p&gt;

&lt;h4 id=&quot;youtube-sticky-live-chat&quot;&gt;YouTube Sticky Live Chat&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://greasyfork.org/ja/scripts/402617-youtube-sticky-live-chat&quot;&gt;greasyfork.org/ja/scripts/402617-youtube-sticky-live-chat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;YouTubeのライブチャットで、放送主かモデレータのコメントを一番上に固定して表示する、UserScript。
（その後、YouTubeは公式に投稿主のコメントをトップに固定できる機能をリリースした）&lt;/p&gt;

&lt;h4 id=&quot;nico-excluder&quot;&gt;Nico Excluder&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://greasyfork.org/ja/scripts/405548-nico-excluder&quot;&gt;greasyfork.org/ja/scripts/405548-nico-excluder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ニコニコ動画のランキングページから、指定したユーザの投稿した動画を非表示にする、UserScript。
珍しくちゃんとクラス使って綺麗に書いたなぁ…&lt;/p&gt;

&lt;h4 id=&quot;大神ミオ通知bot&quot;&gt;大神ミオ通知bot&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/mio_bot&quot;&gt;twitter.com/mio_bot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;年の瀬に大神ミオちゃんのTwitterアカウントが凍結してしまった。大神ミオちゃんはYouTubeのライブで、公開を2年ほど先に指定した枠を立てて、そこのライブチャットでファンたちと対話している。
しかし、ライブチャットでは過去のコメントが流れてしまって、大神ミオちゃんの発言が遡れない。&lt;/p&gt;

&lt;p&gt;なので、ライブチャットを監視して、大神ミオちゃんの発言が来たらTwitterで呟くbotを作った。
今度、技術記事を書こうかなと思っている。&lt;/p&gt;

&lt;h4 id=&quot;f-corps&quot;&gt;f○○○ corps&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/i544c/1ae779e494cdc0cf5d2f95a1b01be278&quot;&gt;i544c/fuck_corps.user.js&lt;/a&gt;
私を落とした企業の名称を「クソ企業」に置換する、ユーザスクリプト。これで大体のウェブページで、不快な名称を目にすることがなくなる（SPAなど動的にウェブページを書き換えているサイトでは機能しない）。&lt;/p&gt;

&lt;h2 id=&quot;おわり&quot;&gt;おわり&lt;/h2&gt;
&lt;p&gt;2020年は酷かった。でも、VTuberに救われた。
来年はさっさと卒業し、東京に引っ越して、ソフトウェアエンジニアとして生きる予定。&lt;/p&gt;</content><author><name></name></author><category term="tweet" /><summary type="html">2020年は酷かった。</summary></entry><entry><title type="html">Hello Gemini</title><link href="https://default.cf/blog/2020/08/31/gemini/" rel="alternate" type="text/html" title="Hello Gemini" /><published>2020-08-31T16:52:00+09:00</published><updated>2020-08-31T16:52:00+09:00</updated><id>https://default.cf/blog/2020/08/31/gemini</id><content type="html" xml:base="https://default.cf/blog/2020/08/31/gemini/">&lt;p&gt;Geminiというものに出会った。
双子座という意味のそれではなく、昨今の複雑化したウェブを憂いて作り出された、シンプルなインターネットプロトコルを指す。&lt;/p&gt;

&lt;p&gt;https://gemini.circumlunar.space/&lt;/p&gt;

&lt;p&gt;Geminiはウェブと似ているようで違う。TLSによる通信しか許されず、セキュアだ。&lt;/p&gt;

&lt;p&gt;またGeminiには、クライアントで装飾するためのCSSも無く、またクライアントでインタラクティブなことができるJavaScriptも無い。
やり取りするのはただのテキストファイルで、それはMarkdownに似たシンプルな書式だ。&lt;/p&gt;

&lt;p&gt;インラインでの画像埋め込みすら出来ず、本当に文字だけを伝えられる。
古い古いウェブを体感させてくれるようで、なんだかセンチメンタルな気分になる。（その時代には生まれていないのだが）&lt;/p&gt;

&lt;p&gt;試しに自分もGeminiでの配信を始めてみた。
https://gemini.circumlunar.space/clients.html にあるクライアントを使うことで閲覧できる。&lt;/p&gt;

&lt;p&gt;gemini://gemini.i544c.me&lt;/p&gt;

&lt;p&gt;とりあえず、感情が昂ぶった時にそこで吐き出している。
今までこのブログに書いてきたヲタクな話を、これからはこのGeminiで配信していこうと思う。&lt;/p&gt;</content><author><name></name></author><category term="gemini" /><summary type="html">Geminiというものに出会った。 双子座という意味のそれではなく、昨今の複雑化したウェブを憂いて作り出された、シンプルなインターネットプロトコルを指す。</summary></entry></feed>