【076】乗換 1.0.2登場
このコミットが含まれているのは:
コミット
c11348d500
189
gemini/blog.atom
189
gemini/blog.atom
|
@ -3,13 +3,56 @@
|
||||||
<id>gemini://technicalsuwako.moe</id>
|
<id>gemini://technicalsuwako.moe</id>
|
||||||
<title>テクニカル諏訪子</title>
|
<title>テクニカル諏訪子</title>
|
||||||
|
|
||||||
<updated>2023-10-23T00:00:00Z</updated>
|
<updated>2023-10-23T16:00:00Z</updated>
|
||||||
|
|
||||||
<author><name>テクニカル諏訪子</name></author>
|
<author><name>テクニカル諏訪子</name></author>
|
||||||
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<id>blog/norikae-102.gmi</id>
|
||||||
|
<author><name>凛</name></author>
|
||||||
|
<title type="html">【076】乗換 1.0.2登場</title>
|
||||||
|
<published>2023-10-23T16:00:00Z</published>
|
||||||
|
|
||||||
|
<category term="jp"></category>
|
||||||
|
|
||||||
|
<category term="blog"></category>
|
||||||
|
|
||||||
|
<category term="ソフト開発"></category>
|
||||||
|
|
||||||
|
<category term="076"></category>
|
||||||
|
|
||||||
|
<category term="乗換"></category>
|
||||||
|
|
||||||
|
<link href="gemini://technicalsuwako.moe/blog/norikae-102.gmi" rel="alternate"></link>
|
||||||
|
<content type="html">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="heading">乗換って何?</h2>
|
||||||
|
<p>乗換はCLIでの路線情報を確認ツールです。<br />
|
||||||
|
Yahooでスパイウェアが多すぎるため、CLI用のフロントエンドを作りました。</p>
|
||||||
|
<h2 id="heading-1">変更</h2>
|
||||||
|
<ul>
|
||||||
|
<li>ヤフー社はHTMLをちょっと更新されたから、乗換を修正する事が必要となった</li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="heading-2">ソースコード</h2>
|
||||||
|
<p><a href="https://gitler.moe/suwako/norikae">Gitler</a><br />
|
||||||
|
<a href="https://codeberg.org/TechnicalSuwako/norikae">Codeberg</a><br />
|
||||||
|
<a href="https://notabug.org/TechnicalSuwako/norikae">Notabug</a><br />
|
||||||
|
<a href="https://git.disroot.org/TechnicalSuwako/norikae">Disroot</a></p>
|
||||||
|
<h2 id="heading-3">ダウンロード</h2>
|
||||||
|
<p><a href="https://gitler.moe/suwako/norikae/releases">リリースページ</a><br />
|
||||||
|
<a href="https://076.moe/repo/src/norikae">ソースコード</a><br />
|
||||||
|
<a href="https://076.moe/repo/bin/norikae">バイナリー</a></p>
|
||||||
|
<p>以上</p>
|
||||||
|
|
||||||
|
|
||||||
|
</content>
|
||||||
|
</entry>
|
||||||
|
|
||||||
<entry>
|
<entry>
|
||||||
<id>blog/spliti-112.gmi</id>
|
<id>blog/spliti-112.gmi</id>
|
||||||
<author><name>凛</name></author>
|
<author><name>凛</name></author>
|
||||||
|
@ -417,149 +460,5 @@ doas apk add urloli
|
||||||
</content>
|
</content>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
||||||
<entry>
|
|
||||||
<id>blog/zig-gengo-1.gmi</id>
|
|
||||||
<author><name>凛</name></author>
|
|
||||||
<title type="html">【Zig言語】第1部~基本的な紹介・セットアップ・「こんにちは、世界」</title>
|
|
||||||
<published>2023-08-01T00:00:00Z</published>
|
|
||||||
|
|
||||||
<category term="blog"></category>
|
|
||||||
|
|
||||||
<category term="jp"></category>
|
|
||||||
|
|
||||||
<category term="プログラミング"></category>
|
|
||||||
|
|
||||||
<category term="zig"></category>
|
|
||||||
|
|
||||||
<category term="システム開発"></category>
|
|
||||||
|
|
||||||
<link href="gemini://technicalsuwako.moe/blog/zig-gengo-1.gmi" rel="alternate"></link>
|
|
||||||
<content type="html">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="zig">Zig言語シリーズ</h2>
|
|
||||||
<p>このブログでは様々なプログラミング言語の使い方を紹介します。<br />
|
|
||||||
主にZig、PHP、Go言語、C言語について解説し、更にはFLTK、Raylib、OpenGL等も取り上げます。</p>
|
|
||||||
<h2 id="zig-1">Zig言語とは?</h2>
|
|
||||||
<p>Zigは非常に新しい言語です。<br />
|
|
||||||
Goが新しい形のPHP、Carbonが新しいC++、Kotlinが新しいJava、TypeScriptが新しいJavascript、Swiftが新しいObjective-Cのように、Zigは新しい形のC言語と考える事が出来ます。<br />
|
|
||||||
初めて見ると、Zig言語は難しそうに見えますが、約1週間使ってみれば、そう難しくは感じなくなります。<br />
|
|
||||||
現在、最新バージョンは0.10.1ですが、今週中には0.11.0のリリースが予定されています。<br />
|
|
||||||
このシリーズではそのバージョンを使用します。</p>
|
|
||||||
<h2 id="czig">C言語とZig言語の違いは?</h2>
|
|
||||||
<p>C言語は16ビットの世代で作られましたが、Zigは64ビットの世代で作られたため、Zigの方がモダンな言語といえます。<br />
|
|
||||||
Zig言語は、Rustのような安全性とGo言語のようなシンプルさを持っています。<br />
|
|
||||||
コードの違いを以下で示します:</p>
|
|
||||||
<h3 id="c">C</h3>
|
|
||||||
<pre><code lang=""><span style="color:#080">#include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
|
|
||||||
</span><span style="color:#080"></span>
|
|
||||||
<span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">tuika</span> (<span style="color:#0b0;font-weight:bold">int</span> a, <span style="color:#0b0;font-weight:bold">int</span> b) {
|
|
||||||
<span style="color:#a2f;font-weight:bold">return</span> a <span style="color:#666">+</span> b;
|
|
||||||
}
|
|
||||||
|
|
||||||
<span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">main</span> () {
|
|
||||||
<span style="color:#0b0;font-weight:bold">int</span> a <span style="color:#666">=</span> <span style="color:#666">1</span>;
|
|
||||||
<span style="color:#0b0;font-weight:bold">int</span> b <span style="color:#666">=</span> <span style="color:#666">2</span>;
|
|
||||||
printf(<span style="color:#b44">&#34;%d</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, tuika(a, b));
|
|
||||||
|
|
||||||
<span style="color:#a2f;font-weight:bold">return</span> <span style="color:#666">0</span>;
|
|
||||||
}
|
|
||||||
</code></pre><h3 id="zig-2">Zig</h3>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">fn</span><span style="color:#bbb"> </span>tuika(a<span style="color:#666">:</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span>,<span style="color:#bbb"> </span>b<span style="color:#666">:</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span>)<span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span><span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">return</span><span style="color:#bbb"> </span>a<span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span>b;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span>}<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">pub</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">fn</span><span style="color:#bbb"> </span>main()<span style="color:#bbb"> </span><span style="color:#666">!</span><span style="color:#0b0;font-weight:bold">void</span><span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>a<span style="color:#666">:</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span><span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">1</span>;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>b<span style="color:#666">:</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span><span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">2</span>;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>std.debug.print(<span style="color:#b44">&#34;{d}</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>,<span style="color:#bbb"> </span>.{tuika(a,<span style="color:#bbb"> </span>b)});<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span>}<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>よく見ると、スタイルは殆ど同じです。<br />
|
|
||||||
ただし、main関数の戻り値はintではなくvoidになります。<br />
|
|
||||||
そして、Zigではintが一つの型ではなく、様々なサイズ(u8~u128、i8~i128)があります。<br />
|
|
||||||
また、C言語で「型名 変数名 = 値」や「戻り値の型名 関数名 (パラメータ)」と表現するところを、Zig言語では「変更可否 変数名: 型名 = 値」や「公開・非公開 fn 関数名(パラメータ) 戻り値の型名」と表現します。</p>
|
|
||||||
<h2 id="heading">セットアップ</h2>
|
|
||||||
<p>バージョン0.11.0がリリースされれば、パッケージマネージャからインストール出来る様になると思います。<br />
|
|
||||||
そうでない場合は、以下のコマンドを実行してください。<br />
|
|
||||||
まず、LLVM16以上が必要です。<br />
|
|
||||||
それをインストールしたら、Zigをコンパイルする方法は:</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f">cd</span> zig-*
|
|
||||||
mkdir build
|
|
||||||
<span style="color:#a2f">cd</span> build
|
|
||||||
cmake .. -DZIG_STATIC_LLVM<span style="color:#666">=</span>ON -DCMAKE_PREFIX_PATH<span style="color:#666">=</span>/usr
|
|
||||||
make install -DPREFIX<span style="color:#666">=</span>/usr
|
|
||||||
</code></pre><p>注意:あたしはCRUXでしかコンパイル出来ませんでした。<br />
|
|
||||||
Artix、OpenBSD、FreeBSDでは失敗しました。<br />
|
|
||||||
Devuanは確認していません。</p>
|
|
||||||
<p>インストール後、新しいフォルダを作り、新しいプロジェクトを作成しましょう:</p>
|
|
||||||
<pre><code lang="">mkdir hello
|
|
||||||
<span style="color:#a2f">cd</span> hello
|
|
||||||
zig init-exe
|
|
||||||
</code></pre><p>現在のファイルは以下の様になります:</p>
|
|
||||||
<pre><code lang="">.
|
|
||||||
├── build.zig
|
|
||||||
└── src
|
|
||||||
└── main.zig
|
|
||||||
</code></pre><p>そのまま<code lang="">zig build run</code>を実行すると:</p>
|
|
||||||
<pre><code lang=""># zig build run
|
|
||||||
All your codebase are belong to us.
|
|
||||||
Run `zig build test` to run the tests.
|
|
||||||
</code></pre><h2 id="heading-1">「こんにちは、世界!」</h2>
|
|
||||||
<p>build.zigについては次の記事で紹介します。<br />
|
|
||||||
まず、src/main.zigを開き、全て削除し、以下のコードを書いて下さい。</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std.io<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>io;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">pub</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">fn</span><span style="color:#bbb"> </span>main()<span style="color:#bbb"> </span><span style="color:#666">!</span><span style="color:#0b0;font-weight:bold">void</span><span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>stdout_file<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>io.getStdOut().writer();<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">var</span><span style="color:#bbb"> </span>bw<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>io.bufferedWriter(stdout_file);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>stdout<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>bw.writer();<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">try</span><span style="color:#bbb"> </span>stdout.print(<span style="color:#b44">&#34;こんにちは、世界!</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>,<span style="color:#bbb"> </span>.{});<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">try</span><span style="color:#bbb"> </span>bw.flush();<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span>}<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>保存すると、以下のエラーが表示されます:</p>
|
|
||||||
<pre><code lang=""> 1 main.zig|2 col 10| : error: expected &#39;;&#39; after declaration
|
|
||||||
</code></pre><p>はい、エラーがあると、それを修正するまでテキストエディターを閉じる事が出来ません。<br />
|
|
||||||
エラーを直しましょう!</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>io<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>std.io;<span style="color:#bbb"> </span><span style="color:#080;font-style:italic">// ioとstd.ioを交換しましょう。
|
|
||||||
</span></code></pre><h3 id="heading-2">ビルドと実行すると</h3>
|
|
||||||
<pre><code lang=""># zig build run
|
|
||||||
こんにちは、世界!
|
|
||||||
</code></pre><h3 id="heading-3">コードの解説</h3>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>これにより、Zigの公式標準ライブラリを使用出来る様になります。</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>io<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>std.io;<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>これにより、ioコマンドをより簡単に実行出来る様になります。<br />
|
|
||||||
例えば、「std.io.getStdOut().writer();」を「io.getStdOut().writer();」に短縮出来ます。<br />
|
|
||||||
勿論、「const writer = std.io.getStdOut().writer();」と書く事も可能ですが、一度しか実行しないならばそれはもったいないです。</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">pub</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">fn</span><span style="color:#bbb"> </span>main()<span style="color:#bbb"> </span><span style="color:#666">!</span><span style="color:#0b0;font-weight:bold">void</span><span style="color:#bbb"> </span>{}<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>pubは公開を意味し、fnは関数を意味します。<br />
|
|
||||||
JavaやC#を使った経験があれば、「public function」の様な物です。<br />
|
|
||||||
興味深い部分は「!void」です。<br />
|
|
||||||
この「!」は「anyerror」と同じ意味を持ちます。<br />
|
|
||||||
「void」だけであれば、戻り値の型はいつでもvoidですが、「!void」の場合は「エラーがあれば、そのエラーを返し、なければvoidになる」という意味になります。<br />
|
|
||||||
とても便利だわー!!</p>
|
|
||||||
<pre><code lang=""><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">try</span><span style="color:#bbb"> </span>stdout.print(<span style="color:#b44">&#34;こんにちは、世界!</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>,<span style="color:#bbb"> </span>.{});<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>最後に、この「try」は「このコマンドがメモリ上で安全であれば、実行してください」という意味を持ちます。<br />
|
|
||||||
また、この「.{}」は常に必要です。<br />
|
|
||||||
値を使う場合は、それを「.{}」の中に入れましょう。<br />
|
|
||||||
例えば:</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>age<span style="color:#666">:</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span><span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">20</span>;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>name<span style="color:#666">:</span><span style="color:#bbb"> </span>[]<span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">u8</span><span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#b44">&#34;田中&#34;</span>;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">try</span><span style="color:#bbb"> </span>stdout.print(<span style="color:#b44">&#34;{s}さん、{d}歳になったら、大人ですよ。</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>,<span style="color:#bbb"> </span>.{<span style="color:#bbb"> </span>name,<span style="color:#bbb"> </span>age<span style="color:#bbb"> </span>});<span style="color:#bbb">
|
|
||||||
</span></code></pre><pre><code lang="">田中さん、20歳になったら、大人ですよ。
|
|
||||||
</code></pre><p>生成されるバイナリはzig-out/binフォルダに格納されます。</p>
|
|
||||||
<p>続く</p>
|
|
||||||
|
|
||||||
|
|
||||||
</content>
|
|
||||||
</entry>
|
|
||||||
|
|
||||||
|
|
||||||
</feed>
|
</feed>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
# 記事一覧
|
# 記事一覧
|
||||||
|
|
||||||
|
=> /blog/norikae-102.gmi 2023年10月23日 【076】乗換 1.0.2登場
|
||||||
=> /blog/spliti-112.gmi 2023年10月23日 【オワコンテック】spliti 1.1.2登場
|
=> /blog/spliti-112.gmi 2023年10月23日 【オワコンテック】spliti 1.1.2登場
|
||||||
=> /blog/postmarketos-make-repository.gmi 2023年10月15日 【PostmarketOS】自分のレポジトリを作り方
|
=> /blog/postmarketos-make-repository.gmi 2023年10月15日 【PostmarketOS】自分のレポジトリを作り方
|
||||||
=> /blog/spliti-111.gmi 2023年09月09日 【オワコンテック】spliti 1.1.1登場
|
=> /blog/spliti-111.gmi 2023年09月09日 【オワコンテック】spliti 1.1.1登場
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
=> /blog.gmi ブログ一覧へ
|
||||||
|
|
||||||
|
#【076】乗換 1.0.2登場
|
||||||
|
投稿日:2023-10-23
|
||||||
|
|
||||||
|
## 乗換って何?
|
||||||
|
乗換はCLIでの路線情報を確認ツールです。
|
||||||
|
Yahooでスパイウェアが多すぎるため、CLI用のフロントエンドを作りました。
|
||||||
|
|
||||||
|
## 変更
|
||||||
|
* ヤフー社はHTMLをちょっと更新されたから、乗換を修正する事が必要となった
|
||||||
|
|
||||||
|
## ソースコード
|
||||||
|
=> 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
|
||||||
|
|
||||||
|
## ダウンロード
|
||||||
|
=> https://gitler.moe/suwako/norikae/releases リリースページ
|
||||||
|
=> https://076.moe/repo/src/norikae ソースコード
|
||||||
|
=> https://076.moe/repo/bin/norikae バイナリー
|
||||||
|
|
||||||
|
以上
|
|
@ -3,6 +3,7 @@
|
||||||
# avatar = gemini://076.moe/static/suwako.jpg
|
# avatar = gemini://076.moe/static/suwako.jpg
|
||||||
# description = テクニカル諏訪子様のtwtxtフィード
|
# description = テクニカル諏訪子様のtwtxtフィード
|
||||||
# link = ホームページ gemini://technicalsuwako.moe
|
# link = ホームページ gemini://technicalsuwako.moe
|
||||||
|
2023-10-23T16:00:00Z09:00 【076】乗換 1.0.2登場 - gemini://technicalsuwako.moe/blog/blog/norikae-102.gmi
|
||||||
2023-10-23T00:00:00Z09:00 【オワコンテック】spliti 1.1.2登場 - gemini://technicalsuwako.moe/blog/blog/spliti-112.gmi
|
2023-10-23T00:00:00Z09:00 【オワコンテック】spliti 1.1.2登場 - gemini://technicalsuwako.moe/blog/blog/spliti-112.gmi
|
||||||
2023-10-15T00:00:00Z09:00 【PostmarketOS】自分のレポジトリを作り方 - gemini://technicalsuwako.moe/blog/blog/postmarketos-make-repository.gmi
|
2023-10-15T00:00:00Z09:00 【PostmarketOS】自分のレポジトリを作り方 - gemini://technicalsuwako.moe/blog/blog/postmarketos-make-repository.gmi
|
||||||
2023-09-09T00:00:00Z09:00 【オワコンテック】spliti 1.1.1登場 - gemini://technicalsuwako.moe/blog/blog/spliti-111.gmi
|
2023-09-09T00:00:00Z09:00 【オワコンテック】spliti 1.1.1登場 - gemini://technicalsuwako.moe/blog/blog/spliti-111.gmi
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
title: 【076】乗換 1.0.2登場
|
||||||
|
author: 凛
|
||||||
|
date: 2023-10-23 16:00
|
||||||
|
tags: jp,blog,ソフト開発,076,乗換
|
||||||
|
----
|
||||||
|
## 乗換って何?
|
||||||
|
乗換はCLIでの路線情報を確認ツールです。\
|
||||||
|
Yahooでスパイウェアが多すぎるため、CLI用のフロントエンドを作りました。
|
||||||
|
|
||||||
|
## 変更
|
||||||
|
* ヤフー社はHTMLをちょっと更新されたから、乗換を修正する事が必要となった
|
||||||
|
|
||||||
|
## ソースコード
|
||||||
|
[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://gitler.moe/suwako/norikae/releases)\
|
||||||
|
[ソースコード](https://076.moe/repo/src/norikae)\
|
||||||
|
[バイナリー](https://076.moe/repo/bin/norikae)
|
||||||
|
|
||||||
|
以上
|
読み込み中…
新しいイシューから参照