Skip to content

Posts

Goのconst

EOTとかbyteのスライスをconstで定義しようとしてできなかった。 const EOT = []byte{0x00, 0xFF, 0x2F, 0x00} $ go run cmd/mdmml/main.go # github.com/umemak/mdmml ./mdmml.go:10:7: const initializer []byte{...} is not a constant The Go Programming Language Specification - The Go Programming Language 文字列リテラルが許されるならbyteスライスも許されてもよいではないかと思ったけれど、ダメらしい。 varで我慢する。

バグ取り

MDMMLのループバグ、デバッグが面倒だったのでループの展開だけ前処理に分けることにした。 これだと文字列の状態でテストできるので、16進数より見やすい。 たぶん直ったと思う。

VOICEVOX

Docker Desktopもインストールしたので、最近話題のVOICEVOX | 無料で使える中品質なテキスト読み上げソフトウェアを試してみた。 $ docker run -it --rm -p 50021:50021 hiroshiba/voicevox_engine:cpu-ubuntu20.04-latest 最初、GoとDockerでつくる音声合成CLIのページを参考にしてバージョン指定してたけど、latestにしたら使えるキャラクターが増えた。つい最近追加さ Read more

Rancher Desktop

Inspironクリーンインストールした後、Dockerのセットアップしてなかったの忘れていて、せっかくなのでRancher Desktopを試してみることにした。 公式ページからWindows用のインストーラーをダウンロードして実行。 起動時に聞かれるContainer Runtimeはdockerdを選 Read more

バグ発見

ループと休符の組み合わせで、休符が消える現象が起きてる気がする。 後から実装したところはちょっと入り組んでしまっているね。。

Rust学習

The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版、途中飛ばして12章やってたけれど、やっぱり最初からやったほうが良い気がしてきた。 そして、最初のページに すべてのプロジェクトの Cargo.toml に edition=“2018” とあることを前提にしています。 との注意書きがあるのに今更ながら気づいた。 昨日エラーが出ると言っていたのは、edition = " Read more

dynとは?

リファクタリングしてモジュール性とエラー処理を向上させる - The Rust Programming Language 日本語版 を写経していて、コンパイルエラーに遭遇した。 $ cargo run Compiling mdmml_rust v0.1.0 (mdmml_rust) error[E0782]: trait objects must include the `dyn` keyword --> src/main.rs:21:41 | 21 | fn run(config: Config)-> Result<(), Box<Error>> { | ^^^^^ | help: add `dyn` keyword before this trait | 21 - fn run(config: Config)-> Result<(), Box<Error>> { 21 + fn run(config: Config)-> Result<(), Box<dyn Error>> { | For more information about this error, try `rustc --explain E0782`. error: could not compile `mdmml_rust` due to previous error 修正方法も提示してくれて親切。 で、 Read more

VS CodeのRust用設定

コードフォーマッターが欲しいと思って、プラグインを入れたけれど動かない。 Couldn't start client Rust Language Server --- Rustup not available. Install from https://www.rustup.rs/ どうやらツールが足りないようなので、追加でインストールした。 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh $ source $HOME/.cargo/env $ rustup --version rustup 1.24.3 (ce5817a94 2021-05-31) info: This is the version for the rustup toolchain manager, not the rustc compiler. info: The currently active `rustc` version is `rustc 1.59.0 (9d1b2106e 2022-02-23)` それでもエラーが解消しなかったので、OSごと再起動した Read more

モジュール化

リファクタリングしてモジュール性とエラー処理を向上させる - The Rust Programming Language 日本語版 を読みながら。 ちょっと分量多いけど、この第12章をひととおりなぞれば、Rustを「完全に理解」できる気がする。

ファイルを読み込む

以下ドキュメントを参考にしたら、引数で指定したファイルを読み込むのは簡単にできた。 コマンドライン引数を受け付ける - The Rust Programming Language 日本語版 ファイルを読み込む - The Rust Programming Language 日本語版 次は読み込んだテキストをパースしていくのだけれど、goの時のようにパッケージとして分けたい。