npm run huequica:dev

なんか長めのはなしとか

八雲はる( @huequica )は先進党( @senshintou )にジョインしました

twitter.com

かくかくしかじかで, 先進党という政党にジョインすることになりました.
もしかしたらGitHubの公開Reposに手を入れたりするかもしれません.

先進党 is なに

先進的なIT技術(ブロックチェーン技術など)を用いて日本の行政の最適化, ひいてはITリテラシー面の本格的な社会的教育の実現を掲げる新しいタイプの政党です.

詳細は先進党HPとかGitHubをご確認ください.

ジョインのきっかけ

先進党の存在はTwitterで流れを追う程度には知っていたのですが, 公式アカウントから何故か話を頂いてそのままジョインを決めました.

もともと自分は親族から逆テクハラ(これわからん、やっといてみたいなやつ)みたいなもんを受けてきて成長してきました.

これについて, そもそもの話義務教育の教育カリキュラムに現代生活に必要なレベルのITリテラシーが盛り込まれてないことにも問題を感じており, そこを改善しようとする政党であるならば私にも活動(ないしは従事)する意義は十分にあるだろうと判断し加入した次第です.

現職との兼ね合いになるので死ぬほど忙しくなる可能性が高いですが, まあなんとかなるでしょう

というところのご報告でした. それでは

♪ Yuri(DDLC)っぽい体を受けて 全て(の社会性)を捨てて #学生LT に出る男

f:id:Yuri_chr:20200509162630p:plain
誰だよ

はるか昔

それはそれは大昔大正3年頃のおはなし カスタムキャストがリリースされた日

モデルをいじいじしながら

これ似てない??似てる(脳死)

と人形をYuriに似せる改造遊びをしていたが, 作ったモデルを使う機会もなくiPhoneのストレージにほったらかしにしていた

時は流れ

LT大会したいね〜〜

と言っていたらコロ助が直撃してどうしようもなくなり, そんな状況なのでバーチャル学生LTが再起.

student-lt.connpass.com

ちょうど話したいネタが発生したこともあり, バーチャル美少女受肉不審アカウント として参加を決意したのだった

映像を渡す方法

当然ながらKeynoteの映像をStreamするホストに渡さなければならない.

映像をホストに渡す際に使用できるサービスとしてホスト側からはDiscordかZoomを提示される

その上で今回はある程度使い慣れたZoomを使用することにした(この判断は事実良かった)

さて, ここからが本題に入る

電脳世界に受肉するには何が要るのか

今回は使うモデルをカスタムキャストで既に作成済なので, MaciPhoneを利用してOBSに体を構築させた

以下に手順を示す

  1. iPhoneMacに繋ぐ
  2. QuickTimePlayerを起動し, 新規録(Command+Option+n)からiPhoneのスクリーンをMacミラーリングする
  3. OBSでQTPのウィンドウをキャプチャし, クロマキーでGBを抜いて出す

正常にできればこのようになる

また, このタイミングで負荷試験として受肉した上でBMS配信を行った.

www.youtube.com

この配信にて「設定間違えなければ特に問題なさそう」という結論に至り次のステップに進むことにした

OBSの映像をZoomに渡す

現時点ではOBSに体をレンダリングさせただけで, このままではホストに映像を渡せない

Zoomに映像を渡すにはOBSの映像をWebカメラとして出力してZoom側で拾えるようにすればよい, ということになる

しかしOBSの映像をWebカメラとして流すプラグインWindows用のみリリースされており, Macで使うにはOBS本体とプラグイン両方をソースビルドする必要があった.

Zoomに認識させるまでの手順は以下に示されているので参照されたし

qiita.com

ちなみに上記のエントリ内で

ターミナルからXcodeをインストールして(自分はインストールされてた),Zoomを落とした上で,Terminalで以下.
$ codesign --remove-signature /Applications/zoom.us.app/

とあるが「Discordに置き換えたらできるだろうか」と思い試してみたがダメだった.
他の方法を探すしかなさそう

ちなみにここまで漕ぎ着けたのが半日前のこと

Keynote

speakerdeck.com

補佐事項

もし今後カスタムキャストを使ってバ美肉しようとする人がいるなら, 必ず縦置きが可能なスマホ三脚を使うこと ここをしくじったりケチると大変セットアップが辛くなる

また, バーチャルLT会は会場(外野)のリアクションが見えないので多少不安を感じたが喋ってたらどうでもよくなったのでいつもどおり尻込みする必要はないかなあという感想

まとめ

あたしが今の職を手にしているのは学生LTの人たちのおかげと言っても過言ではないため今後もコロナの影響に負けずに活動していってほしいし, 私もそれを応援していきたい.
というか多くは出せないけどSponsoredさせてくれ頼む

Chromebook(CloudReady)を開発機としてお使いの方々へ: アップデートは控えたほうがいい(2020/05/02 Sat Init)

tl;dr

  • 現状のDev Channel v81はVM周りにでかいバグが混入している可能性が高い
  • いつ改善されるかも不明
  • 現状として通常通り扱えるバージョンは v80.3
  • アプデしてしまった場合、Linuxコンテナが起動するならバックアップを早急に取る
    • 起動しない場合はもう諦めてアップデートによる改善を待つのが吉

なにがあった?

現在のChromiumOSのDev Channels Latest Release( v81.1.0 を指す)にて,Linuxが動かないバグが存在する.
厳密には Linuxコンテナ(Debianなど)を動かすためのVMの動作に関わるバグ が入っていると見ている

ちなみにCloudReady(汎用ChromiumOSディストリビューション)のコミュニティではすでに報告が上がっている neverware.zendesk.com

どういうこと?

ChromiumOSにおけるLinuxの動作はVM上のコンテナによる仮想領域を通しての起動なのだが
そのあたりのコンポーネント郡(VMなど)を crostini と呼称している.

今回問題になっているのはLinuxコンポーネント郡をインストールする際にデフォルトで装備されている termina というVMコンポーネント.
以下に実際の操作を示す

[Pro Tip] Use 'Open as Window' or 'Fullscreen' to prevent Ctrl-W from closing your terminal!
[Pro Tip] See [crosh] for more information.

Loading extra module: /usr/share/crosh/extra.d/30-neverware.sh
Loading extra module: /usr/share/crosh/dev.d/50-crosh.sh
Welcome to crosh, the Chrome OS developer shell.

If you got here by mistake, don't panic!  Just close this tab and carry on.

Type 'help' for a list of commands.

If you want to customize the look/behavior, you can use the options page.
Load it by using the Ctrl+Shift+P keyboard shortcut.

crosh> 

これはDev channelにしている場合のみ出てくるcroshというやつで,crostiniをいじいじするときに使用するインターフェース
こいつでVMの状況を見てみる

crosh> vsh termina
[ERROR:vsh.cc(101)] Failed to get VM info for termina
crosh> 

vsh termina で本来であれば入れるはずだが入れない.
これは単純にVMが起動していない際に表示されるエラーメッセージであるとのこと. Source
ではVMを起動しに行く

crosh> vmc start termina
Error: routine at frontends/vmc.rs:151 `vm_start(vm_name,user_id_hash,features)` failed: bad VM status: `VM_STATUS_FAILURE`: Failed to disable SMT
crosh> 

さて本来ならVMbashに入れるはずだがエラーが出てしまった
vmc list を見る限りはtermina は起動している?ぽいが… またこのエラーについてreddit(r/crostini)で検索する限り見つからないので
おそらくバグであるという認識で間違いないと思われる

なので焦ってvmc destroy terminaなどするものではないと考える
(俺はもうさっきやっちまった. おしめえだ)

対策(と呼べるものではない)

起動しない場合

  • 諦めてv80.1をDLしてインストールし直す
  • コンテナ状態そのままでアップデートを待つ

進展があった場合はこの記事で追記する

そういえば言うのを忘れていたあれこれ

随分と前に誰かにおすすめされてはてなのアカウントを作って以来特に使うことがなくずっとほったらかしになっていたアカウントですが、自分でブログっぽい(huequica.xyzのこと)ものを運用するのもしんどくなってきたのでこっちに変えようか迷っています。

でも今までの書いたエントリのパース元mdは持っているか怪しいのであったらなんかします。

ということでどうも。やくもです。Yuri_chr ってIDいいでしょ〜〜

それはそうと、この記事ではTwitterでいうとちょっと恥ずかしい感じのアレコレを書いてます。主に直近の出来事についてです。

大きく変化すること

要約

  • 名古屋工学院専門なんちゃらのホゲ学科を卒業しました
  • 株式会社アルタに新卒の正社員として入社することになりました

1つ目: 卒業できた話

かれこれ専門に4年通ってました。長い。 最初2年くらいはあんまり中身のない生活だった気がします。 その後2年間でRubyに出会ってプログラム書くようになって、現在に至ります。 あっという間でしたね

ちなみに高校時代に専門を選んだときのことを後悔しているのはあるっちゃあります。 でも多分大学行ってたとしても2年間は無駄にしていた気はしないでもない。いやプログラム触る人間になっていなかったかも。

  • 複数名のリアルの友達
  • Twitterとか勉強会に居るエンジニアの人達
  • AWSとかを扱う会社に行った、とあるOB(個人名は避ける)
  • NKCUGの人たち

私がこの業界志したことに大きく影響を与えたのがこの4つの人々です。(一生の宝だと思います) なので特にNKCUGに出会うことがまず無いであろう大学通っていた世界線の先はエンジニアじゃなかったと思います

もっと言うと、高校時代のある親友がもっと大きく影響出しています。
彼はRubyの宣教師でした。今はLinuxのコンテナとか仮想化周りの実装(低レイヤーな領域)を研究しています。
もし彼の存在がなかったらRubyを触る選択はしなかったと思われるので、かつての布教活動は長い目で見れば成功しています。 もし本エントリを見ているのであれば、その節は本当にありがとうございました

2つ目: 新卒で入社する話

会社選びについてですが、「チーム開発とかの経験を積んでみたいな〜〜」とか「自分が避けがちな領域の知識がほしいな〜〜」という気持ちで選びました。 あと「気分的に気負いしない会社じゃないとやだ」「スーツとか着たくなさすぎる」というのが大きいです

チーム開発については主に開発フローや手法などを知りたいな〜と考えています。というか実践している。 現在はTDD(Test Driven Development)を試しで個人レベルで採用しています。 本当はCIとかで回せたらもっと効率良くなりそうですが、GitLabのランナーがまだ設置できていない状態です。なんとかしたい

自分が避けがちな領域についてはもうデータベースが一番存在が大きいんじゃないでしょうかね。あとインフラ。 特にデータベースはWebサービスに欠かせない存在なので、SQLのパフォーマンスも重要視したクエリが書ける人間になれたらな〜〜と思っています。


余談ですが、内定式で「60%くらいの出力で頑張る」と言いましたがこれは冗談でもなんでもなくマジです。
自分は運がいいのか悪いのか、鬱病とかいうコロ助なんかよりずっと怖い人間ぶっ壊す病気とかなり距離が近い人生を送ってきました。 なので自分は「頑張りすぎないし、生きる意味(目的)を見失わない人間」として生きていきたいなあというマインドで生きていくと決めています。
多分今の会社ではこれが崩れることはまずまずなさそうですが、今後もこれが失われることが無いような職場選びや生き方をしたいなあと考えています。

今作ってるものについて

直近のGitHubを見ていただいている方であればなんとなく見えるであろうこれらについてです。

  • huequica/Which_BMS
  • huequica/Which_BMS_API

huequica/which_bms - GitHub
huequica/which_bms_api - GitHub

これらは端的に言うとBMSの差分や本体(音源、同梱譜面)のホスト場所を簡単に教えてくれるようなアプリケーションを作るためのプロジェクトです。 アプリケーションの特色として以下のようなポイントを考えています。

  • クロスプラットフォーム(Electronを使うので)
  • WebベースのUI構築のため親しみやすい、また開発者もContributeしやすい
  • 無料配信(当然だが)

beatorajaというJavaBMSプレイヤー(クロスプラットフォーム音楽ゲーム)があり、こちらのおかげでMacの環境でも快適にBMSをプレイできています。 ですが周辺ツールが軒並みWindowsのみ対応のアプリケーションばかりで、まるでシカトされてしまっているのでなんとかしたい、という気持ちから始まったプロジェクトです。 exch-bms2/beatoraja - GitHub

ちなみにこれら2つのプロジェクトですがいずれ

  • which_bms/which_bms ← Application Repos
  • which_bms/APIAPI Repos

という感じでOrganizationを作り、個人名義のReposは凍結してFork Repos上で開発を続ける予定です。
になりました。(2020/04/06)

言語は主にTypeScriptを採用し、バックエンドコードの類は全てAPIに置いてアプリケーションにはAPIへのリクエスト、及びレスポンスのレンダリングのみの構成で考えています。
アプリケーションのフロントはReactを用い、がんばって型定義をしながら実装していけたらなあと考えています。
ちなみに必要そうなAPIエンドポイントの実装はだいたい終わりました。これからはアプリケーションに入ります。 気力持つかなあ…というのが心配ですが、BMSの導入が死ぬほど不便なのは自分が一番感じている所なのでストレス限界になったら頑張って作るだけです。 以上、最近作ってるものの話でした。

最後に

なんだか最近コロ助が非常に大きく影響力を伸ばしているので経済的に心配になっているところですが、それでも楽しく生きることを忘れないように立ち回りをしていきたいところです。 みんなもデマには気をつけてね。それから買い占めなんて馬鹿な真似はやめようね。