廃棄施設

何かの進捗やら何やらで埋まっていく……予定地

お気に入りのChrome系ブラウザ拡張機能

cistLTサークルのアドベントカレンダー、21日目の記事です。

なんだか1日ずれている気がしないでもないですが、

24時間以内なら誤差ですよね!

adventar.org

 

この記事では、Chromium向けの拡張機能について

簡単にまとめていきたいと思います。

技術系からずれましたが、おもしろそうなものがあったので。

具体的な内容は、以下のとおりです。

 

uBlock Origin

chrome.google.com

 

あらゆる広告やコンテンツから、私たちの時間と目を守ってくれる、

ネットサーフィンには欠かせない拡張機能の一つです。

起動すればデフォルトでも相当数の広告がブロックできますが、

この他にも要素ブロック機能も利用できるため、

「このサイトのこの部分苦手なんだよな……」

「重宝しているニュースサイトだけどコメント欄が……」

といった状況に対しても、大いに活躍してくれます。

 

ただ、欠点として、そのサイトの重要な機能までも

ブロックしてしまう可能性があるという点が挙げられます。

そういう場合には uBlock Origin のアイコンをクリックして、

一旦機能をオフにしましょう。

ありがたいことにオンオフは一瞬でできるので、

この拡張機能は入れておいて損はないと思います。

というか煩わしい広告がなくなるだけだし、実質爆アド。

 

Video Speed Controller

chrome.google.com

 

如何に画面の向こうの世界が鈍重でも、これを使えば大丈夫。

そんな感じの安心感ある拡張機能です。

もっと具体的にいえば、

「動画の再生速度を最小0.07倍/最大16倍にできる」ツールです。

元々、速度変更機能が備わっていない動画に対しても

利用できるので、思わぬところで役立ったりします。

特に、授業動画や解説動画などを見る人には絶大な効果を発揮しそうです。

 

Weblioポップアップ英和辞典

chrome.google.com

 

リンク先を見てもらったほうが早いと思います。

とにかく、英語記事を読む機会の多い人や、

英語の学習に専念している人たちにとっては

かなり便利な拡張機能だと思います。

というか、わざわざ単語を検索する手間が省けるので気が楽です。

 

あと、Twitterで唐突に流れてきた英文ツイートを読むのにも便利です。

自動翻訳が役立たないこともあるので……

 

Decreased Productivity

chrome.google.com

 

これを適用したサイトからは画像が消失する系の拡張機能です。

画像情報に煩わされなくて済むので、調べものの種類によっては

非常にありがたいものになる かもしれません。

試しに Twitter に適用してみると、こんな感じになります。

Decreased Productivityを適用したTwitter画面

下のDark Readerと併用すると、また違った感覚になります。

 

Dark Reader

chrome.google.com

 

そのままの意味です。

コンソール画面を見ているときと似たような感覚になります。

上のDecreased Productivityを併用すると、よりそれっぽくなります。

 これもTwitterに適用してみましょう。

Decreased ProductivityとDark Readerを適用したTwitter画面

 

 

今回はこんなところです。

 

 

追記:

もっと良い組み合わせがあった!!!

chrome.google.com

Decreased Productivityじゃなくて、

これをDark Readerの静的モードと併用するのが一番快適かも。

 

C言語(Linux環境)でキーボード入力をリアタイでやりたい!!!

タイトル通りです(学習が進むたびに随時追記)。

 

 

というわけで、

今日からスーパーハカー : [C]キーボードの入力を取得する - getch(),getchar() (livedoor.jp)

【C言語】kbhit・_kbhit関数について (hotnews8.net)

を見てみる。

 

kbhit関数!conio.h!!Windows!!!

無理ですね。

 

ということなので、

【C言語】Linuxでのkbhit関数(キーイベントの取得) (hotnews8.net)

を読んでみる。

 

termios, tcgetattr, STDIN_FILENO, c_lflag, ICANON, tcsetattr, etc...

ち、知識がなさすぎてわけわからん……。

ので、様々な文書を参考に脳みそを作っていこう。

 

 

疑問1:termiosって何さ?

 参考文献:Linux のシリアル通信において termios 構造体で設定可能なパラメータをまとめる (C/C++) - siar (hatenablog.com)

 

termios はターミナルI/O用の Unix API です.

 termiosの姿が見えました。

 

ついでにUnix APIに関して、

システムコールを理解する | UNIX world (weblike.jp)

を読んだ。

 

 

疑問2:tcgetattrとは何ぞや

参考文献:if0604_60.pdf (cqpub.co.jp)tcgetattr() - 端末の属性の取得 (ibm.com)

 

謎が謎を呼ぶ状態になってしまったのでここちょっと長いです。

私と同じく基礎知識0からダンジョン攻略する人間へ、1プロトン程度でも役立てば幸いです。(まあ、検索で引っかからなさそうな感じもしますな)

 

まず、参考文献1個目。

リスト 1 に示すように,押下した文字が表示されないように,処理の前後で端末属性を変え,非カノニカル・モードにするため,termios 構造体を tcgetattr,tcsetattr 関数で操作

 わからん。

 

 まあ、端末属性って単語は一旦置いておいて、

なんにもわからん「非カノニカル・モード」をやっつけます。

Linuxで同期・カノニカルデータ受信 (fc2web.com)を見よ。

 

次に、参考文献2個目。

int tcgetattr(int fildes, struct termios *termptr);

なるほどね、わからん。

 

とりあえず、Operating Systems. Exercises. (u-aizu.ac.jp)によると、

fildesは「ファイルディスクリプタ」なるものだそうです。

ファイルディスクリプタ(ファイル記述子)とは - IT用語辞典 e-Words (e-words.jp)

 

*termptr は参考文献2-2にも書かれていたように、メモリ位置を指すらしい。

5 アドレス演算子(&)と間接演算子(*) (nagoya-u.ac.jp)によると、

& は変数が割り当てられているメモリのアドレスを得る演算子

 とのこと。

だから &oldt って書いてあったのか。

 

 

編集に使うURL先置き

プログラムの入出力 - C言語入門 (jpn.org)

tcsetattr() - 端末の属性の設定 (ibm.com)

 

アストロノーカ ── 宇宙と農業とマシンとAI

cistLTサークルのアドベントカレンダー、14日目の記事です。


 

先日、PSアーカイブスのゲームを一つ購入しました。

タイトルとカテゴリだけでもう大体全部これから書く内容を物語っている気がしないでもないけど、まあ、アストロノーカの話です。

アストロノーカの話をしつつ、遺伝的アルゴリズムに関することを雑多にメモ書きしていきます。

 

アストロノーカとは:宇宙一の野菜を作るために情熱を注ぐプレイヤーが、我らの野菜を狙う不届きもの「バブー」を蹴散らすため、トラップ攻防戦を繰り広げるゲーム。だと思います。たぶん。

 

そこで、実はこのバブーなる生物。プレイヤーのトラップに対抗するために、遺伝的アルゴリズムを取り入れているらしいのです。

 

バブーのリンク先の画像を見ましたか?かわいいのはこの外見だけ。

爆速で世代交代と学習を繰り返しやがって、我々が丹精込めて育てた野菜を根こそぎ喰らおうとする憎らしいヤツらですよ……!!!ちなみにアストロノーカは最短3日で野菜が完全に成長しきります。

常にトラップを購入して万全の状態にしようとすると、すぐ進化してトラップが効かなくなるし、すぐ自分の財布が軽くなる。次第に常勝不敗ならぬ常敗不勝に陥る可能性がドンと色濃くなってしまうのが何とも恐ろしい。AIってすごいのよ!

 

ちなみに当時のアストロノーカの製作者さんが、以下の記事(PDF)にてゲームへのAI技術の利用について述べています。昔のゲームなので当然記事自体も随分と古いのですが、こうして身近なものに対して応用されているのを知ると、俄然AIに対する興味がわいてきますね。

https://www.ai-gakkai.or.jp/whatsai/PDF/article-iapp-7.pdf

 

あと、先程の静岡理工科大学のページに、「遺伝的アルゴリズムのソース・コード(プログラム)の一例」ということで、遺伝的アルゴリズムによるナップザック問題解決プログラムなるものがC言語で記述されたものが載せられていました。

https://www.sist.ac.jp/~kanakubo/research/evolutionary_computing/ga_program.txt

 

ただ、このシンプルなタイプの遺伝的アルゴリズムはいくつか問題点が存在ということで、これを改良したものがいろいろと研究・開発されているそうですね。ほへー。

 

 


 

<ガチめの余談>

そういえば大学図書室の学科選書だかなんだかのコーナーに、"The Art of Computer Programming(原著じゃなくて日本語訳)"というタイトルの、様々なアルゴリズムに関する解説書があったのを思い出した。

書く題材なんも考えてなかったのでいろいろ検索しながら勢いで書き上げたけど、ちょっとアルゴリズムとかAIとかについて学ぶのも楽しそうだなーと感じてきました。

 

7 《C言語:AAを動かす練習》

 

(しまった……昨日のぶんの更新を忘れていた……。1行でも1文字でも毎日更新することを心がけています)

 

さて、先日の記事に載せたとおり、今回はC言語アスキーアートを動かしてみた。

……といっても初心者オブ初心者なので、本当に単純なことしかやっていないのだが、メモ代わり(そして復習)としてここに書いておこう。

system() → stdlib.h

printf() → stdio.h

usleep() → unistd.h

以上の関数を使用した。

Linux(WSL)上での実行なので、systemで呼び出すのはclsではなくclean。

Windows環境ならwindows.hを利用してもよい。

 

次回メモ:

放置中だったバス時刻表プログラムを一先ず完成させる。

6《C言語:グラフィック作成の失敗》

とある本に、C言語でのグラフィック描画のためのプログラムが載っていた。

それを参考にして、手元のWindows環境でも作成できるか試してみた。

しかし、ここで問題が生じる。

そのプログラムはMS-DOS向けに作成されたものであり、そもそも随分と前のものなので今では使われないライブラリもフツーに使われていた。

それゆえ、C言語単体でのグラフィック作成計画は頓挫してしまった。

ただ、アスキーアートを連続で動かす程度のプログラムなら別にちゃんと書けそうなので、そちらで遊ぶことを一先ずの目標にする。

5 《第二種電気工事士:スイッチ編》

1-1

スイッチのまとめ。来年の上期試験受けたいんだけどいけるかな……?その前に受験することを忘れそうで怖い。

 

単極スイッチ

  埋込型、露出型が存在する。

  でも露出型は見かけたことないかも。

3路スイッチ

  2箇所でオンオフするときに使う。

  家の二階と一階を繋げる通路にある。

4路スイッチ

  3箇所以上でオンオフ時。

   例)3→3路×2、4路×1

     4→3路×2、4路×2 etc…f:id:ggggg_ggg_g:20201210134213j:image

 

位置表示灯内蔵スイッチ

  スイッチがオフだと光る。

確認表示灯内蔵スイッチ

  スイッチがオンだと光る。

 

リモコンスイッチ

  リモコンリレーを操作する。

  オン→赤、オフ→緑。

リモコンセレクタスイッチ

  複数のリモコンの集合体。

 

電磁開閉器用押しボタン

・確認表示灯付電磁開閉器用押しボタン

 

ペンダントスイッチ

  コードの端に取り付けられる。

コードスイッチ

  コードの中間に取り付けられる。

  別名:中間スイッチ、コタツにも有。

 

プルスイッチ

  引き紐を引いてオンオフ。

 

調光器

  照明の明るさを調節できるスイッチ。

  スライド式やダイヤル式が存在する。

 

フロートスイッチ

  液面に浮かべた浮きの上下により、

  液面の高さを検知するセンサー。

フロートレススイッチ

  液体に浸かった電極感に流れた電極で、

  液面の高さを検知するセンサー。

 

タイムスイッチ

  オンオフの時間を設定できるスイッチ。

自動点滅機

  暗くなると自動的に電灯オンにする。

  街路灯などに使われている。

 

4 《食事:今日の夕食》

・ご飯

・味噌汁

・ブリ

・野菜と肉の炒めもの

・たくあん

総じて旨かった。おわり。

 

追記:

これだけじゃ物足りなさすぎるのでもう一つ。

PSアーカイブアストロノーカを購入しました!!!そしてPSvitaにダウンロード。

まだプレイしていないからわからんけどめちゃくちゃ楽しみ。

あと、これを読んだ人はPSアーカイブLSDってゲームをダウンロード購入してみてほしい。そこそこおもしろいですよ。