ホームページのデザインを更新した. # 以前使っていた cayman-hugo-theme はそれなりに気に入っていたものの、 2023-01-03 にアーカイブされた。 それ以降、新しいデザインにするために色々と試行錯誤したものの、なかなかしっくりくるデザインが見つからなかった。 Astro を試したり、Zola も試したりもしたものの、最終的には Hugo に戻ってきた。 で、Hugo のテーマの中で、Blowfish を採用することにした。 とあるサイトで使っているテーマであり、色々な設定項目もあるので、まあ良いかなと思って使ってみると、それなりに良いかなと言う感じ。 カード状にブログ記事やプロダクトを表示できるのも良い。
次にやりたいこと # Hugo mod を使って、このサイトをモジュール化したい。 これで、各プロダクトからも同じテーマを使えるようになる。 partial の一部を書き換えたりもしているし、、テーマのアップデートがあったときに、各プロダクトのサイトに反映させやすくなる。 プロダクトのリリースにより、自動的にプロダクトの日付を更新するようにしたい。 GitHub Actions でこのサイトを更新しているなら、プロダクトのリリース時に、そのプロダクトのページの日付を更新するようにしたい。
Getting ways of the version defined in pom.xml Constant Property Package Module What the case in the use of native-image? Result of Measurements Summary References Getting ways of the version defined in pom.xml # Java 17が出たことだし,いい加減に Java のモジュールシステムを本格的に使いだそうとしている. 最近のJavaの自作ツールは一応モジュール対応にしたつもり(pochi,vhcなど).
で,ビルドツールは Maven を使うことが多いのだけど,pom.xml で設定したバージョン情報をアプリケーションからどんな情報で取得できるかを確認してみた.
次の4つの方法に分類できる.
Constant: 自分でバージョンの文字列をString型リテラルとしてソースコードに書き込む. Property: src/main/resourcesにプロパティファイルとしてバージョン情報を置いておく. Package: MANIFEST.MFに書かれている Implementation-VersionやSpecification-Versionのいずれかを利用する. Module: ModuleDescriptorのversionメソッドから利用する. それぞれの分類を独断と偏見で4段階で評価してみた(1が良くて,4が悪い).
とあるユーティリティプログラムを作成しようと思ったものの,どのような言語で作成しようかと悩み中. 希望としては,ワンバイナリが生成可能,ジェネリクスあり,ストリーム処理,あたりが扱えると嬉しい. また,クロスコンパイルしたいし,書きやすい(EtoW; Easy to Write)言語であると嬉しい.
で,まとめてみた.
Language One Binary Generics Stream Cross Compile EtoW Java GraalVM OK OK Hard OK Go OK 1.17- No OK OK Rust OK? OK ??? OK? No Node.js ??? ??? OK N/A OK Python ??? OK? ??? ??? OK Kotlin OK? OK OK OK ??? Java は GraalVM を使うとバイナリを作成できるけど,面倒. GraalVM を使ってもクロスコンパイルは難しいんじゃないかな. GitHub Actions などを使えばクロスコンパイルはできそうだけど,面倒だなぁ.
Go は概ね良いのだけど,ストリーム処理が行えないのが悩みどころ. ジェネリクスも出たばかりであまり書き慣れていない. 例外処理はなくてもいいや.
Rust も良いのだけど,コンパイルを通すのに一苦労な点で,簡単なユーティリティを書くのにはそぐわない気がする.
Node.js,Python はよく知らない.
ちょっと調べてみると Kotlin がネイティブコードを生成できるらしい Kotlin も結局は Java バイトコードに変換するはずだから, GraalVM と何が違うのかはよく分からないし,これまでに書いたことないけど,書いてみようかな.
ホームページのデザインを更新した. # ふと思い立って,ホームページのデザインを更新してみた. 作成したプロダクトのデザインは cayman-hugo-theme に統一していたので,個人ページも同じテーマを採用してみた.
雑感 # 以前使っていたHugo Swiftに対して思っていた要望が解消されたかな?
トップのサイン波のアニメーションを変えたい. -> なくなった. ハンバーガーメニューが気に入らない. -> なくなった.
ホームページのデザインを更新した. # ふと思い立って,ホームページのデザインを更新してみた. 今までは,hugo-cards を使っていたのをHugo Swift を使うことにした.
欲しかった要件 # config.tomlにごちゃごちゃと書かない. dataでの記述は最小限に. shortcodesにあまり依存しない. この要件はあくまで好みである.
困ったこと # Hugo などの静的サイトジェネレータでコメント投稿をサポートするために,Staticmanがリリースされている. Hugo SwiftはこのStaticmanを標準でサポートしている. しかし,設定方法にあるように設定して,コメントを投稿しても,500 Internal Server Errorになる. どうも,https://staticman3.herokuapp.com/v3/entry/github/tamada/tamada.github.io/master/comments に投稿しても,Staticman の中から GitHub へのリクエスト URL でリポジトリの情報が失われているっぽい. 設定項目は飛ばしていないつもりだけど,なぜだろう...
Hugo のレイアウトのコツ # いくつかのサイトを Hugo で構築して,レイアウトのコツのようなものがわかった.