【076】乗換 1.0.0登場

このコミットが含まれているのは:
守矢諏訪子 2023-06-22 22:59:47 +09:00
コミット 8d685e68af
13個のファイルの変更117行の追加129行の削除

バイナリ
ass/Screenshot_20230622_224604.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 431 KiB

バイナリ
ass/Screenshot_20230622_224729.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 239 KiB

バイナリ
ass/Screenshot_20230622_224917.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 350 KiB

ファイルの表示

@ -3,13 +3,52 @@
<id>gemini://technicalsuwako.moe</id>
<title>テクニカル諏訪子</title>
<updated>2023-06-18T00:00:00Z</updated>
<updated>2023-06-22T00:00:00Z</updated>
<author><name>テクニカル諏訪子</name></author>
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
<entry>
<id>blog/norikae-100.gmi</id>
<author><name>凛</name></author>
<title type="html">【076】乗換 1.0.0登場</title>
<published>2023-06-22T00:00:00Z</published>
<category term="jp"></category>
<category term="blog"></category>
<category term="ソフト開発"></category>
<category term=""></category>
<category term="乗換"></category>
<link href="gemini://technicalsuwako.moe/blog/norikae-100.gmi" rel="alternate"></link>
<content type="html">
&lt;h2 id=&#34;heading&#34;&gt;乗換って何?&lt;/h2&gt;
&lt;p&gt;乗換はCLIでの路線情報を確認ツールです。&lt;br /&gt;
Yahooでスパイウェアが多すぎるため、CLI用のフロントエンドを作りました。&lt;/p&gt;
&lt;h2 id=&#34;heading-1&#34;&gt;ソースコード&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://gitler.moe/suwako/norikae&#34;&gt;Gitler&lt;/a&gt;/
&lt;a href=&#34;https://codeberg.org/TechnicalSuwako/norikae&#34;&gt;Codeberg&lt;/a&gt;/
&lt;a href=&#34;https://notabug.org/TechnicalSuwako/norikae&#34;&gt;Notabug&lt;/a&gt;/
&lt;a href=&#34;https://git.disroot.org/TechnicalSuwako/norikae&#34;&gt;Disroot&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;heading-2&#34;&gt;スクリーンショット&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/Screenshot_20230622_224604.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
&lt;img src=&#34;https://ass.technicalsuwako.moe/Screenshot_20230622_224729.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
&lt;img src=&#34;https://ass.technicalsuwako.moe/Screenshot_20230622_224917.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;以上&lt;/p&gt;
</content>
</entry>
<entry>
<id>blog/neko-sampo.gmi</id>
<author><name>凛</name></author>
@ -284,130 +323,5 @@ Pixivで、割のイラストはNSFWですので、検閲として扱いま
</content>
</entry>
<entry>
<id>blog/diff-zig-rust.gmi</id>
<author><name>凛</name></author>
<title type="html">【プログラミング】RustとZigの違い</title>
<published>2023-05-24T21:00:00Z</published>
<category term="jp"></category>
<category term="blog"></category>
<category term="Zig"></category>
<category term="Rust"></category>
<category term="システム開発"></category>
<link href="gemini://technicalsuwako.moe/blog/diff-zig-rust.gmi" rel="alternate"></link>
<content type="html">
&lt;h2 id=&#34;zig&#34;&gt;Zigとは?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://ziglang.org/ja/&#34;&gt;Zig&lt;/a&gt;は、隠れた制御フローや隠れたメモリ割り当て、プリプロセッサやマクロがないシステムプログラミング用言語です。&lt;br /&gt;
アセンブリ言語よりも読みやすく、C言語よりも細かい制御が可能なため、アセンブリ言語よりは高水準でありながらC言語よりは低水準な言語と言えます。&lt;br /&gt;
エラーを修正するまでエディタを終了することを防ぐので、C言語より安全だと言えます。&lt;br /&gt;
新世代のC言語になり得るポテンシャルが非常に高いと思います。&lt;br /&gt;
新しい言語ながら、特に日本人と中国人の開発者に人気があります。&lt;br /&gt;
また、日本発の派生言語である&lt;a href=&#34;https://web.archive.org/web/20220201164721/https://zen-lang.org/ja-JP/community/&#34;&gt;Zen言語&lt;/a&gt;もありますが、&lt;a href=&#34;https://www.gnu.org/proprietary/proprietary.ja.html&#34;&gt;プロプライエタリ・ソフトウェア&lt;/a&gt;であるため、特に推奨はできません。&lt;/p&gt;
&lt;h2 id=&#34;rust&#34;&gt;Rustとは?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.rust-lang.org/ja/&#34;&gt;Rust&lt;/a&gt;は、メモリ安全性とスレッド安全性を保証するシステムプログラミング用の言語です。&lt;br /&gt;
Rustではメモリ安全性とスレッド安全性が重要なポイントとなっています。&lt;br /&gt;
Linux Kernel 6.1以降ではカーネルにRustコンパイラが含まれています。&lt;br /&gt;
低水準言語でありながら、Rustは非常に高水準な言語であるPythonで作られているようです。&lt;br /&gt;
比較すると、Zigが新世代のC言語に、Rustが新世代のC++言語になろうとしていると言えます。&lt;br /&gt;
Rustは、特に&lt;a href=&#34;https://archive.is/IF1yS&#34;&gt;LGBTというテロリスト&lt;/a&gt;が多くの欧米で大人気です。&lt;/p&gt;
&lt;h2 id=&#34;rust-1&#34;&gt;Rustのメリット&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;安定して動作するソフトウェアを作りやすい&lt;/li&gt;
&lt;li&gt;豊富なコミュニティと充実したサポート(&lt;a href=&#34;https://youtube.owacon.moe/watch?v=DsBaC3_S-As&#34;&gt;いっぱいおっぱい、僕元気♪&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;海外で働くフリーランサーにとって、仕事が多い&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rust-2&#34;&gt;Rustのデメリット&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BSD(特にOpenBSDとNetBSD)に対応していない&lt;/li&gt;
&lt;li&gt;全ての機能性が従属ソフトとして扱われる&lt;/li&gt;
&lt;li&gt;コンパイルが非常に遅い&lt;/li&gt;
&lt;li&gt;バイナリサイズが大きい(Go言語のバイナリも大きいが、それは高水準言語である為理解出来る)&lt;/li&gt;
&lt;li&gt;奇妙なライブラリでリンクされている(Zigのデメリットの後で説明する)&lt;/li&gt;
&lt;li&gt;大きな変化が速すぎる&lt;/li&gt;
&lt;li&gt;大きな変更が頻繁に行われる&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.rust-lang.org/ja/policies/code-of-conduct&#34;&gt;行動規範が存在する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.rust-lang.org/ja/policies&#34;&gt;法律に関する問題が多い&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;zig-1&#34;&gt;Zigのメリット&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;書きやすい&lt;/li&gt;
&lt;li&gt;テスト機能が付いている&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/blog/c-lib-in-zig-use/&#34;&gt;CとC++のライブラリを利用出来る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ZigコンパイラはC言語やC++言語のコードもコンパイル出来る&lt;/li&gt;
&lt;li&gt;エラーを保存しながら報告する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;zig-2&#34;&gt;Zigのデメリット&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;実験段階のソフト&lt;/li&gt;
&lt;li&gt;利用者が少ない為、サポートも少ない&lt;/li&gt;
&lt;li&gt;リンターが強制される&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/ziglang/zig/master/.github/CODE_OF_CONDUCT.md&#34;&gt;行動規範が存在する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rust-vs-zig&#34;&gt;Rustのバイナリ VS Zigのバイナリ&lt;/h2&gt;
&lt;p&gt;一緒にやりましょう!!&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;mkdir -p ~/tmp/&lt;span style=&#34;color:#666&#34;&gt;{&lt;/span&gt;rust,zig&lt;span style=&#34;color:#666&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/tmp/rust
cargo init
cargo build
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ../zig
zig init-exe
zig build
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;zig-3&#34;&gt;まずはZigのバイナリを確認します&lt;/h3&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# ./zig-out/bin/zig&lt;/span&gt;
All your codebase are belong to us.
Run &lt;span style=&#34;color:#b44&#34;&gt;`&lt;/span&gt;zig build &lt;span style=&#34;color:#a2f&#34;&gt;test&lt;/span&gt;&lt;span style=&#34;color:#b44&#34;&gt;`&lt;/span&gt; to run the tests.
&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# ls -thal ./zig-out/bin/zig&lt;/span&gt;
-rwxr-xr-x &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt; suwako suwako 962K 5月 &lt;span style=&#34;color:#666&#34;&gt;24&lt;/span&gt; 20:36 ./zig-out/bin/zig
&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# file ./zig-out/bin/zig&lt;/span&gt;
./zig-out/bin/zig: ELF 64-bit LSB executable, x86-64, version &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;SYSV&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;, statically linked, with debug_info, not stripped
&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# ldd ./zig-out/bin/zig&lt;/span&gt;
動的実行ファイルではありません
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;静的バイナリ(バイナリだけを別のコンピュータにコピーすれば、実行できる)でありながら、サイズはわずか962キビバイトです。&lt;br /&gt;
しかし、まだデバッグ情報が含まれています。&lt;br /&gt;
それを削除すると、サイズはどうなるでしょう?&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# strip ./zig-out/bin/zig &amp;amp;&amp;amp; ls -thal ./zig-out/bin/zig&lt;/span&gt;
-rwxr-xr-x &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt; suwako suwako 374K 5月 &lt;span style=&#34;color:#666&#34;&gt;24&lt;/span&gt; 20:42 ./zig-out/bin/zig
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;驚くほど小さいですね!&lt;/p&gt;
&lt;h3 id=&#34;rust-3&#34;&gt;次はRustのバイナリ&lt;/h3&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# ls -thal ./target/debug/rust&lt;/span&gt;
-rwxr-xr-x &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt; suwako suwako 9.5M 5月 &lt;span style=&#34;color:#666&#34;&gt;24&lt;/span&gt; 20:16 ./target/debug/rust
&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# file ./target/debug/rust&lt;/span&gt;
./target/debug/rust: ELF 64-bit LSB pie executable, x86-64, version &lt;span style=&#34;color:#666&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;SYSV&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID&lt;span style=&#34;color:#666&#34;&gt;[&lt;/span&gt;sha1&lt;span style=&#34;color:#666&#34;&gt;]=&lt;/span&gt;4fd652bc3852eda0ef3d5281c51ef947e4ecb740, &lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;for&lt;/span&gt; GNU/Linux 4.4.0, with debug_info, not stripped
&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# ldd ./target/debug/rust&lt;/span&gt;
linux-vdso.so.1 &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;0x00007ffefa4f9000&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;
libgcc_s.so.1 &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&amp;gt; /usr/lib/libgcc_s.so.1 &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;0x00007fade07fd000&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;
libc.so.6 &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&amp;gt; /usr/lib/libc.so.6 &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;0x00007fade0616000&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;
/lib64/ld-linux-x86-64.so.2 &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&amp;gt; /usr/lib64/ld-linux-x86-64.so.2 &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;0x00007fade08a4000&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;なぜlibcとlibgccを含めるのでしょうか?&lt;br /&gt;
そして、「linux-vdso」とは何でしょうか?&lt;br /&gt;
先に「奇妙な依存ソフトウェア」と述べた時、これを指していました。&lt;br /&gt;
また、なぜ「Hello, World!」だけを出力するソフトウェアが9.5メビバイトも必要なのでしょう?&lt;br /&gt;
Zigのバイナリは静的であることを覚えていますか?&lt;br /&gt;
Rustは動的であるため、さらに奇妙に感じます。&lt;/p&gt;
&lt;p&gt;デバッグ情報を削除すると…&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;# strip ./target/debug/rust &amp;amp;&amp;amp; ls -thal ./target/debug/rust&lt;/span&gt;
-rwxr-xr-x &lt;span style=&#34;color:#666&#34;&gt;2&lt;/span&gt; suwako suwako 319K 5月 &lt;span style=&#34;color:#666&#34;&gt;24&lt;/span&gt; 20:50 ./target/debug/rust
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;結果はそこまで悪くありませんね。&lt;br /&gt;
しかし、バイナリは動的なので、他のコンピュータにコピーした場合、ライブラリが異なるフォルダに入っていたり、存在しない場合、実行できません(例えば、ArtixでコンパイルしたものがDevuanで実行できない可能性がある)。&lt;/p&gt;
&lt;p&gt;以上&lt;/p&gt;
</content>
</entry>
</feed>

ファイルの表示

@ -2,6 +2,7 @@
# 記事一覧
=> /blog/norikae-100.gmi 2023年06月22日 【076】乗換 1.0.0登場
=> /blog/neko-sampo.gmi 2023年06月18日 【ペット】猫との散歩をトレーニング方法
=> /blog/rofi-youtube-100.gmi 2023年06月10日 【】rofi-youtube 1.0.0登場
=> /blog/openbsd-gemini-server.gmi 2023年06月06日 【デジタル自主】OpenBSDでGeminiサーバーの設置方法

24
gemini/blog/norikae-100.gmi ノーマルファイル
ファイルの表示

@ -0,0 +1,24 @@
=> /blog.gmi ブログ一覧へ
#【076】乗換 1.0.0登場
投稿日2023-06-22
## 乗換って何?
乗換はCLIでの路線情報を確認ツールです。
Yahooでスパイウェアが多すぎるため、CLI用のフロントエンドを作りました。
## ソースコード
=> https://gitler.moe/suwako/norikae Gitler
=> https://codeberg.org/TechnicalSuwako/norikae Codeberg
=> https://notabug.org/TechnicalSuwako/norikae Notabug
=> https://git.disroot.org/TechnicalSuwako/norikae Disroot
## スクリーンショット
=> /static/Screenshot_20230622_224604.png
=> /static/Screenshot_20230622_224729.png
=> /static/Screenshot_20230622_224917.png
以上

ファイルの表示

@ -57,7 +57,7 @@
=> https://gitler.moe/suwako/sync-web ソースコード
今のホームページは静的HTMLとCSS(又はGMI)のみページですので、手動でどこでもに公開するのは大変ですので、こちらのスクリプトで自動で複数サーバーにすべてのファイルをアップロードしたり、HTML、CSS、RSS、及びTWTXTファイルの中にあるURLを変更します。
例えば、Torサーバーにアップする前、「https://ass.technicalsuwako.moe」は「http://ass.6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion」に編集して、I2Pサーバーの場合は「http://ass.technicalsuwako.i2p」となります。
例えば、Torサーバーにアップする前、「/static」は「http://ass.6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion」に編集して、I2Pサーバーの場合は「http://ass.technicalsuwako.i2p」となります。
そうして、Tildeは共有フォルダーを使うから、すべての「/」は「/~technicalsuwako/」に編集されるのは必要となります。
-------------------
@ -117,7 +117,7 @@ GitlinはGotHubのフォークです。
-------------------
## rofiを用いてYouTubeの動画を検索し再生する為のソフトです。(rofi-youtube)
## rofiを用いてYouTubeの動画を検索し再生する為のソフト(rofi-youtube)
* 言語: Go 1.20
* 開発期間: 2023年6月
@ -125,3 +125,15 @@ GitlinはGotHubのフォークです。
=> /static/rofiyt1.gif
=> /static/rofiyt2.gif
-------------------
## CLIでの路線情報を確認ツール(乗換)
* 言語: Go 1.20
* 開発期間: 2023年6月
=> https://gitler.moe/suwako/norikae ソースコード: Git
=> /static/Screenshot_20230622_224604.png
=> /static/Screenshot_20230622_224729.png
=> /static/Screenshot_20230622_224917.png

バイナリ
gemini/static/Screenshot_20230622_224604.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 431 KiB

バイナリ
gemini/static/Screenshot_20230622_224729.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 239 KiB

バイナリ
gemini/static/Screenshot_20230622_224917.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 350 KiB

ファイルの表示

@ -3,6 +3,7 @@
# avatar = gemini://076.moe/static/suwako.jpg
# description = テクニカル諏訪子様のtwtxtフィード
# link = ホームページ gemini://technicalsuwako.moe
2023-06-22T00:00:00Z09:00 【076】乗換 1.0.0登場 - gemini://technicalsuwako.moe/blog/blog/norikae-100.gmi
2023-06-18T00:00:00Z09:00 【ペット】猫との散歩をトレーニング方法 - gemini://technicalsuwako.moe/blog/blog/neko-sampo.gmi
2023-06-10T00:00:00Z09:00 【】rofi-youtube 1.0.0登場 - gemini://technicalsuwako.moe/blog/blog/rofi-youtube-100.gmi
2023-06-06T00:00:00Z09:00 【デジタル自主】OpenBSDでGeminiサーバーを設置方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-gemini-server.gmi

24
src/blog/norikae-100/index.md ノーマルファイル
ファイルの表示

@ -0,0 +1,24 @@
title: 【076】乗換 1.0.0登場
author: 凛
date: 2023-06-22
tags: jp,blog,ソフト開発,,乗換
----
## 乗換って何?
乗換はCLIでの路線情報を確認ツールです。\
Yahooでスパイウェアが多すぎるため、CLI用のフロントエンドを作りました。
## ソースコード
[Gitler](https://gitler.moe/suwako/norikae)/
[Codeberg](https://codeberg.org/TechnicalSuwako/norikae)/
[Notabug](https://notabug.org/TechnicalSuwako/norikae)/
[Disroot](https://git.disroot.org/TechnicalSuwako/norikae)
## スクリーンショット
![](https://ass.technicalsuwako.moe/Screenshot_20230622_224604.png)\
![](https://ass.technicalsuwako.moe/Screenshot_20230622_224729.png)\
![](https://ass.technicalsuwako.moe/Screenshot_20230622_224917.png)
以上

ファイルの表示

@ -113,7 +113,7 @@ GitlinはGotHubのフォークです。
---
## rofiを用いてYouTubeの動画を検索し再生する為のソフトです。(rofi-youtube)
## rofiを用いてYouTubeの動画を検索し再生する為のソフト(rofi-youtube)
* 言語: Go 1.20
* 開発期間: 2023年6月
@ -121,3 +121,15 @@ GitlinはGotHubのフォークです。
![](https://ass.technicalsuwako.moe/rofiyt1.gif)\
![](https://ass.technicalsuwako.moe/rofiyt2.gif)
---
## CLIでの路線情報を確認ツール(乗換)
* 言語: Go 1.20
* 開発期間: 2023年6月
* ソースコード: [Git](https://gitler.moe/suwako/norikae)
![](https://ass.technicalsuwako.moe/Screenshot_20230622_224604.png)\
![](https://ass.technicalsuwako.moe/Screenshot_20230622_224729.png)\
![](https://ass.technicalsuwako.moe/Screenshot_20230622_224917.png)