2024/12/30(月)後出しジャンケンでDeepLearningを予測してたぜ

生物系の学部卒なので小脳の登上線維というものを知っていた。
たくさん試行してうまくいったものは良い試行として採用する、うまくいかなかったものは悪い試行として非採用にする、というDeepLearningがやっている事と似た仕組み。
人工知能ってこれを模したら割と根っこの部分から知能と言えるものを作れるんだろうな、とぼんやり思っていた。当時はそんなハードウェア性能はなかった。
これを数十万並列で動かしたらひらめきとか人格とかも持てるんじゃね?と思っている。

コンピュータの侵入防御システムはVDJジャンクションによる抗体の作成を模したら根っこから免疫と呼べるものを作れるんだろうな、と思っているけどデータ量と走査のための計算資源が今の時代でもとんでもないものになりそう。VDJジャンクションは抗体を乱数生成器でじゃんじゃん生成して自己免疫を起こすものを破棄する、という仕組みなので抗体の種類はめっちゃ大量にある。
そのうち作れるようになるかもしれないけど、作れたとしてもコストと重要性が釣り合わなそうな気がする。

2024/12/28(土)おじさんがGoを学ぶ4

一応ざっくりは終えた。

インフラ周りの小道具や宣言型のIaCが多かったのでちゃんと書いてみる経験になった。
テストコードや関数やクラス(?)の構成を考えるとか。

メモリ周りってCに比べてちゃんと考えてないんだけど、これはいいのか?
取り合えず大きなデータはコピーしたくないからポインタで持ち回っておくか、くらいで確保と開放とか気を使ってない。

あんまり気にしなくていのかな。ただ、GCに任せるからには参照しているポインタ変数の寿命は気にしないといけない。これはgoに限らずGCに全任せする言語全般の話か。


テストコードを分離してちゃんと書いたのはほぼ初めて。
外部連携こそテストしたいんだけど、それには連携側にDry-run機能がないとしんどい。
テストコードを書く書かないに限らず業務でも出てくる話。

2024/12/24(火)インターナショナルスパムメール

AWSで管理しているドメインの管理者宛てメールをSES receivingでS3に溜めている。届いた通知は受け取れるんだけど中身は見えない。

golangの試作でこれをSlackに投げるプログラムを書いてみた。転送するだけの方が簡単な上に読みやすい形でSlackも処理してくれるんだけど、Slackの無料プランだと個人のDMには表示できるけどチャンネルでは使えない。net/mailで中身をバラしてそれっぽくSlackのBlockKitで組み立ててみた。

税金の還付を受けられますよ、というオランダのメールがほとんどだった。どこの国にもある詐欺なんだなあ。

2024/12/13(金)おじさんがGoを学ぶ3

Rustに片足程度入門した事があるけど、GoはRustより好きかも。

Rustは厳しい。厳しさにC#と似た感じがある。 Goはゆるい。

Goも書きっぷりに差が出る言語ではある。なのでベストプラクティスというか、マナー的なものを学ぶ姿勢が大事そう。動けば正義、という姿勢だといくらでも汚く書ける。

RustはC++やJavaの先にあるものという感じ。 GoはC++ではない方向に進化したCという感じ。※個人の感想です

2024/12/06(金)おじさんがGoを学ぶ2

インターフェース

シグネチャが合致していれば明示的に宣言や定義がなくてもいい。シグネチャは返り値や引数の型の事。これが一致していればシグネチャが合致する、という。

意図があるなら明示したほうが良いよね。明示せずにたまたま同じデータ構造だから突っ込め!みたいなのはどうなの。合成した結果このインタフェースに合致したから使える、とか怖い。

インターフェースを受け取り構造体を返す は良い哲学だと思う。そらそうだ、とも言えるけど明文化する事は大事。ロー出しハイ受けみたいなものか。

X11のクラスのselfをマクロで隠してるような感じ?と思っていたらほんとにそんな感じ?かと思ったけどそれもいまいち違うかな。クラスというものはないと考えたほうが良さそう。