見出し画像

「写経」で学ぶRust日記:その1

お疲れ様です。Y研究員です。「写経」をしながら「プログラミングRust第2版」を読んでいます。今日は第一回目です。Rustのイメージキャラが蟹なので、しばらくは蟹画像で行きたいと思います。さっそく美味しそうな写真を見つけたので使ってみました。


環境構築もしてみた

「写経」をする前に開発環境もつくりました。ゴテゴテしたIDEが苦手なので、Vimに最低限の静的解析ツールなどを設定しました(rust.vim)。

「写経」して少し変えてみるをやった

第2章です。Mandelbrotを描いてPNGに保存するサンプルプログラムを「写経」しました。GitHubにMandelbrotだけ別なレポジトリがありました。最初のブランチはシングルスレッドです。本には載ってない何パターンかの並行処理で書かれたブランチもありました。

白黒のMandelbrot。フラクタルはいつ見ても美しいです。

まずはシングルスレッドを「写経」して、次の段階「少し変えてみる」をやりました。改造したのは主に3点です。

  • 画像名やサイズなどのデフォルト値を設定

  • u8の乱数でグレースケール画像を作成して保存

  • 画像を保存する関数を拡張して、RGBのu8乱数画像を保存

デジタルの乱数画像。画面からの距離を変えてみると何かが見えて、、、きません。

改造はChatGPT-4に頼った

簡単な改造でしたが見当もつかないので、LLMに頼りました。ただし、無条件に頼むと今の状態から離れすぎるので、そこは気をつけました。今動いている部分を与えつつ、どのように変えるのか指示しました。例えば画像を保存する関数をRGBに対応させる、などです。

分かったこと

型の変換はintoやfrom、imageクレートはバージョンが新しいとColorTypeがExtendedになっているなどが分かりました。まだまだ先は長そうです。次回は並列プログラミングをしてみます。生成する画像サイズが4Kにもなると完了までに時間がかかりました。そのあたりが早くなると良いと思います。

そういえば蟹の旬は冬ですね。冬までにはRustがなんとか書けるようになっていれば良いかなと思いました。それではまた。

参考にしたサイトなど


いいなと思ったら応援しよう!

KY研究所@CoderDojo横浜港北ニュータウンやってます
無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。