ポエム

プログラミングパラダイムとは制約をかけることだという見方

ふと感じたのだが、プログラミングパラダイムというのは、プログラムに制約をかけることなのではないか。 基本的に、現代で書かれるプログラムはどれも非常に長く複雑で、人間の脳みそに収まりきらない。実行パスをトレースできない規模のものはザラにあるし…

プログラミングに挫折していた頃のこと

読者諸兄は、雪が降り積もって行くその過程を眺めていたことがあるだろうか。 雪が降り積もる時、雪は初めから着実に蓄積してゆくのではなく、初めは地面に触れては融け、触れては融けを繰り返す。そうして無為に見える時を過ごした後、地面が十分に冷えた時…

記憶と夢とストリートビュー

技術記事ではない。 知人と、互いが昔住んでいた町をグーグルストリートビューで見ながら紹介するという遊びをした。ここを曲がると昔よく遊んだ公園があって、ここを曲がると帰り道で寄っていたお店が……。なくなっていた店もあったし、改装で様変わりした建…

メモリ上での配置に関して、多次元配列と構造体の配列の比較

最近少しアライメントのことを考えているが、古めの書籍だと多次元配列のメモリ配置の説明が必ずと言っていいほどされていて、メモリアクセスが律速になる場合(殆どのケースだ)には次元の順序に十分注意せよと書かれている。 キャッシュ効率のことなどを考…

コードの美しさについて

コードが綺麗とはどういうことか、の基準は人によって異なると思う。しかし例えば以下のような関数があまり綺麗ではないという気持ちは、共有できるのではないだろうか。 void func(int N, double*** v1, double*** v2, double** a, double** b, int* c, int…

現代のC++

C++17での機能追加について、ネット上では「項目一覧見ただけで読む気失せる」「入門不可能」「闇」「誰も使いこなせない」「絶対に使いたくない」などと盛り上がっている。 だが私は一概にはC++はどんどん初心者を見捨てているとは言えないと思っている。C+…

座標ベクトルと汎化について

私の書くプログラムでは、趣味でも仕事でも、低次元(大抵は2か3次元)でのベクトルを扱うことが多い。そうなると普通は座標ベクトルを意味する構造体を作って管理するだろう。

Rustを触っている

先週Rustを触っていた。まだ手に馴染んでいないので少し不自由さを感じるが、慣れるまでの辛抱だろう。実際は去年くらいに一度インストールしてチュートリアル程度は済ませていたのだが、説明を見て言われた通りのコードを書く以上のことはしていなかった。…

計算行為と物理の話

先日大学で開かれていたセミナーに出席していたのだが、非常にわかりやすく面白く、楽しい時間を過ごすことができた。そこで聞いた話から思い出したことがあった。

意味とニューラルネットワーク

まず初めに、私はその手の技術や学問分野の専門家ではないし、体系立った学習も行っていないことを告白しておく。つまり以下の文章は素人の妄想だ。 最近Google翻訳にニューラルネットが導入されたようで、いろいろな文章が翻訳にかけられては様々な人が意見…

本当は何を聴いているのか

電車に乗っているとき、たまに音楽を聴いていたりもする。 私の場合、普段聴く音楽はそうほいほい変わるものではない(CDを買う金銭的余裕がないというのが大きいのだが……)。もちろんプレイヤーの中に入っているのは既に何回聴いたかわからないようなものば…