あれか?これか?

プログラミングのこととかを書いたりするかもしれない。

就活も終わったので高専生活での色覚異常の影響を振り返ってみる

先日就活が終わった。こう考えると高専生活もあっという間に終わりそうだなぁ…
ちょうどいいので前々から書きたかった色覚異常について書こうと思う。

筆者のステータス

高専、電気電子工学科所属 5年生で就職の道を選ぶ

症状について

まず、私は先天赤緑色覚異常である。いわゆる2型2色覚である。
眼科の先生曰く「重くもないけど軽くもないね」とのこと。
症状が軽い人だったら、三色ある目の錐体(赤、緑、青)のうち、一部の錐体の機能が弱い程度らしいが、私の場合、緑の錐体が働いていないらしい。

よく全色盲(世界がモノクロに見える目)と勘違いされるかもしれないが、世間一般の大体の色は見える(はず)。とにかく一部の色の見分けがつきづらいのである。

f:id:winzu44:20210425084943j:plain
ネットでよく見る奴 私の場合 上真ん中は12、左下は17、下真ん中は70、あとは何も見えない

私の場合、信号の赤と黄色、マリオカートの赤甲羅と緑甲羅なんかをよく人に説明するときに使う。
信号は暗いところだと特につらい。赤甲羅緑甲羅は幼少期、GBAで遊んでた時見分けづらいなぁって思ってた。

症状発覚について

色覚異常が分かったのは高専に入学してすぐ、健康診断で判明した。
検査の時、本でいろいろ見せられて数字を答えさせられるが、ほとんど「わかんないっすねぇ…」としか言えなかったのを覚えている。
ただ、ネットで上の画像とか見たことあったので、「あっやっぱりかぁ」ぐらいにしか思ってなかった。

高専生活での色覚異常との付き合い

www.amazon.co.jp

色覚異常が判明した一年生の時、読書感想文をこの本で書いた。
そしたらなんか表彰してもらい、読書カードをもらった。この読書カードでPythonの入門書を買った。
なので実質色覚異常のお陰でプログラミングを始められたのかもしれない。



色覚異常でつらかったこともあった。
それは抵抗のカラーコードである。

f:id:winzu44:20210425091912j:plain
電気科入ったらとりあえず覚えさせられるやつ

こっちの身としては読み方は分かっても色が分からないのでどうしようもない。
テスター使えばいいじゃん、って言われるかもしれんないが
テ ス タ ー を 作 る た め に 抵 抗 を 使 う ん だ よ
うちの高専では、テスターのキットを作成する授業があったのだが、その時は非常に苦労した。
頑張って抵抗とにらめっこして大体推定する、といった作業は本当につらかった。
母親にこのことを相談して「あっそ」で返されたときは泣きたくなった。



後は授業で使うパワポもたまに見づらいことがあった。
よく基本は黒文字で書いて、強調するところは赤文字で書く、といったプレゼンが多いが、大体黒に見える。
パソコンの画面上だったら、比較的マシなのだが、授業で使うプレゼンは大体プロジェクターを使う。
このプロジェクターを使われると見づらさが加速する。
プレゼンで強調したいところは太文字にするとか、下線を引くとかにして欲しいものだ…

f:id:winzu44:20210425093128p:plain
一瞬見ただけじゃどの文字をミスしたのか全く分からない…

タイピングゲームでは、正しく打てた文字は黒文字、間違ったものは赤文字といった形式が多く取られるが、私にとってこれは非常に見づらい。
近づいて目を凝らせばだいぶわかるが、普段のモニターとの距離では全く分からない。



これは電気科限定の悩みかもしれないが、オシロスコープの波形の見分けがつかない、といったこともあった。

f:id:winzu44:20210425093638j:plain
いわゆるディジタルオシロスコープ

この波形は四つぐらい同時に表示することができるのだが、水色とピンクの波形を同時に出されたらどっちがどっちかわからない。
まぁ四つ同時に表示する場面なんてそうないので、見分けやすい色の波形を使えばいいのだが。

就職への影響は?

色覚異常と診断されて、一番心配するであることであろう。
結果から言うと「影響はある」(電気系の場合は特に)
まず真っ先に弾かれるのは、印刷業界。求人票を見たらわかるが、大体入社前に色覚検査をやられる。
電気科へ印刷業界の求人は結構来るが、これで弾かれてしまうのは悲しい。
他に影響があったのは、配線作業を伴うような仕事
高専本科卒はよく保守点検の職種に配属されるが、これも注意したほうがいいと思う。
じゃあどこだったら大丈夫なのか。個人的にはプログラム書くようなところだったら大丈夫だと思う。
コーディングするときエディタが見づらかったら自分で変えればいいし、色で判断することはそんなにないと思う。
marketplace.visualstudio.com
vscodeにはこんな便利なthemeもある。

もちろん、これは企業によるので求人票だったり、直接確認したほうがいいだろう。
入社してから苦労する、ということは避けたいし。

色覚異常はただの個性

最後に、私はこう思ってる。
運動が苦手な人もいれば、勉強も苦手な人もいる。
だったら色が苦手な人がいても何もおかしくないだろう。
最近はカラーユニバーサルデザインが整ってきてて、困ることも少なくなってきた。
ゲームなんかも色覚サポートが実装されることが多くなってきた。

ただ、自分は色が苦手、ということは知っておいたほうがいい。
知っておけば、「もしかしたらこれは赤と緑で分けられているかもしれない」「ここは赤文字で強調されているのだろう」といった判断ができるようになるからだ。

私の幸運だったことは、高専一年生という比較的早い段階で症状が発覚したことだった。
今は小学校、中学校で色覚検査をやらなかったりするらしいし。(私の場合もそうだった。)
就職なんかに影響が出るのだから早いうちに検査させたほうがいいと思うが…。

とにかくこの「個性」とはうまく付き合おう、という話。

弐寺とBMSで精神崩壊してカウンセリング通いまでになった話

筆者のスペック

弐寺皆伝(CBで初取得)、BMS発狂十段

f:id:winzu44:20210306205906j:plain
今作(BISTROVER)も何とか皆伝 相変わらず皿がゴミである

音ゲーとの出会い

確か始めたのは小学六年生のころ、ポップンを始めたのがきっかけだった。
小学生のころから音MADをずっと聞いていて、音ゲー曲にあこがれのようなものを持っていた。(当時はEvansとか流行ってたね)
なのでポップンを始めてもいなかったのにサントラだけ買っていたりした。初めて買ったのはサニパのサントラだったかな。(リメンバーリメンバーは名曲。中学生のころ登校前に絶対聞いていた気がする。)

弐寺との出会い

弐寺を始めたきっかけはポップンが開いていなかった時の暇つぶしとして」だった。
当時(SPADA)のころは消費税がまだ5%で100パセリで四曲できるってコスパいいじゃん!って思ってた。
ちなみに経歴としては

中学1年生 十段(PEN) → 中学2年生 十段(COP) → 中学3年生 十段(SINO)

いや、中学の間ずっと饅頭*1かよ。
なおSINOの途中で受験のため半年程度できない時期があった。

f:id:winzu44:20210306210504j:plain
手元のある最古のリザルト 確か高専受かった後ぐらいのはず

悪魔の力(BMSとDAOコン)と出会う

高専に受かった記念でDAOコンを買った。これが精神崩壊へのきっかけだったのかもしれない。
BMS自体は中学生のころからやっていた。当時はノートパソコンでシコシコやっていた。
ちなみにお気に入りはfragile crystal
名曲です。
www.nicovideo.jp

高専に入学すると同時に、DAOコンを手に入れた私はそれは文字通り猿のようにBMSをしていた。
多分高専1年生のころが一番やっていたと思う。

起床→身支度→BMS→学校→帰宅→夕食、入浴→BMS→就寝

といった感じであった。
ともあれBMS猿になっていたため、着実に鍵盤力はついていった。
それで中伝も取り、あとは皆伝を目指すのみ、というところまではすんなりいった。

皿ができない悪夢、灼熱で落とされる毎日

察しの良い方は気づいているかもしれないが、皆伝には一人問題児(僕からして)がいた。
そう、灼熱である。
着実に鍵盤力はついているのに皿力が崩壊していたため、皆伝は灼熱で落とされる一方であった。
BMS発狂八段まで取得、本家も当時のハード地力Sが全部埋まっていたレベルであった。
穴冥はBP70程度だし、卑弥呼はノマゲもついている。なのに灼熱一曲のために受からなかった。

ここらへんで精神的にやられてきた。
灼熱で落ちるたびに自分の髪を引きちぎったり、顔をビンタしていた。いわゆる自傷行為に近いことをしていた。
今思えばゲーセンでこんなことしてるのやばいでしょ。もし見ていて不快になった方がいたら大変申し訳ない。
当時のゲーセンには弐寺が二階に設置されていたので、灼熱で落ちるたびに飛び降りようかと思った。
とにかく自分を追い込んでいた。

皆伝取得、だが終わらない苦しみ

高専2年生のころ、CBのころやっと皆伝をとることができた。

f:id:winzu44:20210306214148j:plain
クリアレートからわかる灼熱のだめっぷり というか卑弥呼と冥今よりうまくて笑う

だがこのゲームは皆伝をとってからが本番、皆伝まではチュートリアル、と呼ばれるほどの修羅の道である。
いわゆる全白を目指して地力を上げていった。BMSもずっとやっていた。
ただ、成長に限界を感じていたころ、また自分を追い込み始めた。
アゴ*2が少しでもうまく押せなかったら台パン、顔を殴る、髪を引き抜く。
あまりにもイライラしすぎてモニターを割ってしまった。

f:id:winzu44:20210306213738j:plain
当時は段ボールにモニターを置いて立ち環境にしていた

毎日泣きながらBMSをやっていた。
少しでもうまく押せなかったらだめ。なぜ昨日できたことが今日はできないんだ。
そんな考えでずっと鍵盤を叩いていた。
毎日やらないと地力が落ちるかもしれない。地力を落としたら取り返すのに時間がかかる。
そんな強迫的な考えでプレイしていた。
当時は楽しくなかったと思う。いいリザルトが出ても次の日にはできなくなっているのではないか、そういう恐怖に襲われていた。
親から何度もやめろと言われた。でもやめたら地力が下がるからやめられなかった。

あまりのおかしさにカウンセリング行に

毎日奇声を発しながらBMSをやっていたため、さすがに親が心配してカウンセリングに連れていかれた。
毎日机の下で泣きながら髪をむしってるようなことしてたらそうなるわ。

ただ、正直カウンセリングを受けて得られたものはそんなになかったと思う。
記憶にあるのは担当の先生に
「うーん、自閉症じゃない?(笑)」
みたいに言われたことだけだ。
そういわれたらなんなあほくさくなって通うのをやめた。
後ついでにこのころ弐寺BMSも離れるようになった。

現在

今はもう弐寺BMSもあまりやらなくなった。
せいぜい弐寺を月に二回ぐらいするだけになった。
今はAPEXしてVRゲーやってプログラム書くようになった。

もし弐寺BMS、それに限らず音ゲーで苦しい思いをしている人がいたら言いたいのは
何かほかに夢中になれるものを作ったほうがいい
ということである。ありきたりすぎるが。音ゲーがうまくなることだけが人生じゃない。
苦しい思いをしてまで音ゲーをやるのは、音ゲー以外に自信のあるものがないということだと思う。
だからいろいろなものに手を出してみたほうがいい。
何か一つのものだけを心のよりどころにすると、それが崩れた時苦しむことになる。
音ゲーから完全に離れられなくても、そこから派生して何かを始めるといい。
僕は弐寺のリザルトを自動で管理しようと思って、Pythonと画像認識で遊んでいたりしていた。
そこからプログラミング面白いなーってなったりした。
とにかく、プレイすることだけにとらわれてはいけないと思う。

やめたくても地力が落ちるのが怖くてやめられない、という考えは絶対にやめたほうがいい。
僕はそれで精神をかなりすり減らしてしまった。
ちなみに自傷行為に走るようであったら完全にアウトだと思う。
早急にカウンセリングとか誰かに相談したほうがいい。

音ゲーは楽しいけど、うまく付き合おうという話。

*1:万年十段のこと。今は中伝あるからあんまり言わないかも

*2:発狂BMSAir GODのこと

Jetson Nanoにpyxelをインストールするときの ”fatal error: filesystem: No such file or directory #include <filesystem>”を解決する

最近買ったJetson Nanoで2Dゲームでも作ってみようかと思い、見つけたのがpyxelであった。
github.com
メインPCのUbuntu環境ではサクッとインストールできたが、Jetson上では少し手間取ったのでメモ。

結論:gccとg++のバージョンを上げればいい(バージョン9以降?)

結論から言うとこうなる。ソースからビルドする必要があるがこのとき

fatal error: filesystem: No such file or directory
 #include 

などと言われてMakeが通らなかった。
とりあえずgccとg++のバージョンを確認してみる

$ gcc --version
gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0

とのことでこのバージョンではfilesystemが実装されていないようであった。(詳しくは分からないが…)
新しいバージョンのgccとg++をインストールする。

$ sudo apt-get install gcc-9
$ sudo apt-get install g++-9

デフォルトで読み込まれるバージョンを変更する

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
 
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

これでgcc --versionコマンドを実行してバージョンが上がっていたらOK。
あとは手順にしたがってMakeすれば良い。

ちなみにgccとg++のバージョンを8にしていたときは

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

といったエラーを吐かれてpip install が通らなかった。
そこでgccとg++のバージョンを9にしてMakeし直し、pip installを行ったら成功した。

PCを新調したらUbuntuのイーサネットが使えなくなった話

昨年12月、CPUをRyzen5 3600からcore i-7 10700KFにし、それに伴ってPC を新調した。
その時、メインで使っているwindows10はクリーンインストールし直したが、SATASSDに入っていたUbuntuはそのままにしておいた。(いわゆるデュアルブート環境であった。)
そして久しぶりにUbuntuを使おうと思いBIOSから起動したところ、タイトルのようにLANケーブルでネットワークに接続することができなくなった。

環境

MB Z490 MPG Gaming Plus
Ubuntu 20.04.1



どのイーサネットドライバーを使えばいいか確認する

とりあえず使っているマザボのページを見てどのドライバーかを確認する。
https://jp.msi.com/Motherboard/support/MPG-Z490-GAMING-PLUS#down-driver&Win10%2064
今回はRealtekのドライバーであったが、マザボによってはIntelのドライバーだったりするかもしれないのでそこは要確認である。



ドライバーをダウンロードする

Realtek PCIe FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - リアルテック
今回の場合はこちらからダウンロードした。
選んだのは 2.5G Ethernet LINUX driver r8125 for kernel up to 5.6 (よくわからなかったので一番新しいので)
サブ機であるノートpcでダウンロードしUSBメモリに入れた。



ドライバーをインストールする

ダウンロードしたファイルをUbuntu上で解凍し、そのディレクトリまで移動する。
その上で以下のようにコマンドを実行する

~/デスクトップ/r8125-9.005.01$ sudo ./autorun.sh 

詳細な方法は同梱されているテキストファイルに書いてある。
これで自動的にドライバーが適用され、イーサネットが使えるようになる。

Steam版のApexでFPS制限を解除する

OriginからSteam版に移行したところ、なぜか強制的に垂直同期のようになっていた。
解決方法は簡単で、Origin版でも使っていた起動設定を追加すればよい。

Steamのライブラリ→Apexにカーソルを合わせて右クリック→プロパティで画像の画面を開く。
f:id:winzu44:20201107163909p:plain

起動オプションを設定 をクリックし +fps_max 0 と入力。これでFPS制限が排除されるはずである。
f:id:winzu44:20201107163958p:plain

確認していないが、ほかの起動オプションも使えるかもしれない。

steamのアップデートで少し表示が変わったのでこちらでも。
やることは変わらずここに引数を入力すれば良い
f:id:winzu44:20210228004400p:plain

RealforceからFILCO Majestouch MINILA-R Convertibleに乗り換えた話

タイトルのまま。ちなみにこの記事もMajestouchのほうで書いている。
www.amazon.co.jp

買ったのは赤軸タイプ。色はグレー。ちなみにダイヤテック公式の方では、他のカラーもある。
Majestouch MINILA-R Convertibleのご紹介 | ダイヤテック株式会社
(正直ASAGIが好みだったが、その時赤軸は在庫がなかった。)

乗り換えた理由

Realforceが大きすぎる
テンキーレスの方ではなく、フルキーのほうを買ってしまったのもあるがとにかく大きすぎた。

f:id:winzu44:20201105212732j:plain
二つのキーボードを並べてみた こうしてみるとMajestouchの小ささが分かる


・ネイティブにFnキーと組み合わせることでカーソル移動ができる
Realforceを使っていたころも、AutoHotKeyを使ってカーソル移動をしていた。(無変換キーとIJKLキーでカーソル移動をするようにしていた。)ただ、ソフトウェア側で対応するよりもハードウェアからできる方がいいと思った。HHKBも考えたが、あちらはホームポジションから離さないといけないこともあり断念した。正直あっちの方がプロ感あって好きだった。特に無刻印タイプ。


・無接点静電容量方式に飽きた
地元のパソコン工房で赤軸のキーボードを試し打ちしたところ、なかなか気に入ったのもある。飽きたというよりかは無接点静電容量のタクタイル感が嫌になってきたというのもある。

良かったところ

・OSにとらわれずカーソル移動ができる
買った理由はほとんどこれな感じがするが最近はLinuxをよくいじるためAutoHotKeyが使えない。しかしこのキーボードなら、ソフトに関わらず、ホームポジションをキープしたままカーソル移動ができる。  …もしかしたらカーネルとかいじったらキーボードマクロってできるのですかね?ワタシリナックスワカラナイ…
というかホムポジのままカーソル移動できるのって最高に便利だからもっと増えてほしいのだが…。プログラムもりもり書く人なら絶対やるべきだと思う。…こんなこと言ってたらそろそろ自作キーボードに手を出してしまいそうだが。

・省スペース&ケーブルレス
パソコンが机の下にある都合上、ケーブルが机の上を這ってしまうのを回避できた。ちなみに接続はBluetooth。うちのパソコンにはそんな高級なものはついていなかったので、レシーバーを買った。

f:id:winzu44:20201105215048j:plain
とりあえずアマゾンで人気一位だったので買った

www.amazon.co.jp


特に問題なく接続できた。遅延等もそこまで気にならない。
Bluetoothキーボードなのでスマホタブレット等とも接続ができる。こんなギークなキーボード買う人はほとんどパソコンで作業する気がするが。

・赤軸が気持ちいい
これはキーボードの感想というよりかは、キーの感想だが…。Realforce偏荷重と体感的な重さを比べると
Realforce30g(AとかQキー当たりの小指で押すキー)<= 赤軸 << Realforce45g(FとかJキー当たりの大体のキー)<<<<< Realforce55g(Enterキーとか)
といった感じ。偏荷重で一番軽いキーよりかは少し重いが、大体のキーよりかは軽い、といった感じ。最初の30分ぐらいは慣れずに苦戦したが、今では打っていて気持ちがいい押し心地である。
全体的に言えば軽くなったと思える。Realforceで少し重いかな、と思っている人にはいいかも。(全30g使っていてそういうこと言うのはちょっとよくわからないです。多分音声入力とか使った方が幸せになれると思う。)
ぼくはRealforceのタクタイル感が気に入らなかったので赤軸を買ったが、あちらからメカニカルキーボードに移行するときは茶軸のほうが無難かもしれない。(間違っても青軸はいけない。キーが重すぎて投げ出したくなります。)

気になったところ

マザボのUSBポートとは接続が不安定?
最初、Realforceをつないでいたポートに接続したところ動作しなかった。ケースのフロントにあるUSB3.0, 2.0とは接続できた。今はBluetoothで接続しているため関係ないが、とりあえずつなぐだけで動くようになっていて欲しかった。

・Insertいる?
完全に個人的な感想であるが、Insertキー(Fn+Jキー)はどう使っていいのかわからない。今まで無変換+IJKLでカーソル移動をしていたため、無意識のうちにFn+Jを打ってしまいそうになった。あとはFn+Iでスクショが撮られてしまう事故が多発した。
フルサイズのキーボードに合わせた配置なのだろうが、あまり需要のないキーはEnterやBSに割り当てできたらうれしかったのだが…。…もしかしてAutoHotKey使えば解決する?(本末転倒)

・大きさの合ったパームレストをつけないと不格好
このキーボードは相当高さがあるため、パームレストを使う方が快適にタイピングできる。ただ、サイズの合ったパームレストを使わないと、せっかくの小さいキーボードの意味を持たなくなってしまう。
というわけで急遽FILCO純正のものを購入。

f:id:winzu44:20201106202137j:plain
かなりシンプルなパッケージで届いた

www.amazon.co.jp
これのSサイズでちょうどいい。ウッドパームレストより手ごろな価格で良い。色も六色から選べるので、机やキーボードにあった色を選べる。ぱっと見でラベンダーがグレーに見えてしまって購入したのは内緒、今度色覚異常のことでも書こうかしら。

f:id:winzu44:20201106202140j:plain
下のパームレストiiyamaのもの Realforceと一緒に使っていた

総評

買って一週間経っていないが、今のところは買ってよかったと思う。Realforceを一年近く使っていて、すんなり移行できるか不安であったが、すぐ慣れた。
ホームポジションをキープしたまま、カーソル移動ができるのは非常に快適なのでおすすめしたい。
無線接続が、Bluetoothではなく専用のレシーバーがあったら最高だったのだが…。
ギークでコンパクトなキーボードを求めている人にはお勧めである。こちらのほうがHHKBより慣れやすいだろうし。(ガチガチにギークを目指すのならHHKB無刻印英語配列か自作キーボードをどうぞ。ぼくはまだいいです…。)

Darknetをmakeするときに発生した "error while loading shared libraries: libopencv_highgui.so.4.5: cannot open shared object file: No such file or directory"の解決方法

Darknetを用いてYOLOを動かそうと思い、発生したのがこのエラーである。
なお筆者はLinux歴一週間もないため予めご了承いただきたい。

環境

Ubuntu 20.04
AlexeyAB/darknet
github.com

前提

makeしたあと./darknetを用いて実行しようとするとタイトルのエラーが出る

目的のライブラリ自体が存在しているかどうか確かめる

find /usr | grep libopencv_highgui.so.4.5

自分の環境だとこのように出力された

/usr/local/lib/libopencv_highgui.so.4.5
/usr/local/lib/libopencv_highgui.so.4.5.0

これができていなければそもそもmake時にエラーを吐かれると思われる。

環境変数に追加する

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

追加後の実行結果

./darknet
usage: ./darknet <function>