<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>FrontPage on 高橋優作の独り言</title>
    <link>https://wiki.yut4k.com/</link>
    <description>Recent content in FrontPage on 高橋優作の独り言</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <atom:link href="https://wiki.yut4k.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>1章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust01/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust01/</guid>
      <description>&lt;h1 id=&#34;1章はじめに&#34;&gt;1章　はじめに&lt;a class=&#34;anchor&#34; href=&#34;#1%e7%ab%a0%e3%81%af%e3%81%98%e3%82%81%e3%81%ab&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;1章で扱う内容はこちら&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Rustをインストールする&lt;/li&gt;&#xA;&lt;li&gt;Hello Worldを実行する&lt;/li&gt;&#xA;&lt;li&gt;Cargoを使えるようにする&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;11-インストール&#34;&gt;1.1. インストール&lt;a class=&#34;anchor&#34; href=&#34;#11-%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;どの環境でやってもらっても問題ないが，ここではLinux(Ubuntu)にダウンロードする方法を示します．(以降，頭の&amp;quot;$&amp;ldquo;プロンプトなので直接打たない)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ curl --proto &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;=https&amp;#39;&lt;/span&gt; --tlsv1.2 https://sh.rustup.rs -sSf | sh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インストール後，rustcが無事入っているかを確認しておくこと．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ rustc --version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;12-hello-world&#34;&gt;1.2. Hello World!&lt;a class=&#34;anchor&#34; href=&#34;#12-hello-world&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;まずは，作業するディレクトリを作成します．ホームディレクトリに&lt;strong&gt;projects&lt;/strong&gt;ディレクトリを作成し，そのなかに&lt;strong&gt;hello_world&lt;/strong&gt;ディレクトリを作成します．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir ~/projects&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd ~/projects&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir hello_world&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd hello_world&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;main.rsというファイル名にしてソースファイルを作成します．Rustのファイルは.rsという拡張子で管理されています．どうやら，ファイル名を2単語以上使うなら，&amp;rdquo;_&amp;ldquo;で区切るのが習慣らしい・・．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// 世界よ，こんにちは&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Hello, world!&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;コンパイル&#34;&gt;コンパイル&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;ファイルを保存したら，コンパイルをします．コンパイル方法は以下の通りです．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ rustc main.rs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ ./main&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Hello, world!&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;rustプログラムの解剖&#34;&gt;Rustプログラムの解剖&lt;a class=&#34;anchor&#34; href=&#34;#rust%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%ae%e8%a7%a3%e5%89%96&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;fn main() {}は実行されると最初に走るコードです．mainというのは特別な予約語となっているのです．また，println!はRustのマクロを呼び出しています．&amp;rdquo;!&amp;ldquo;を入れないと関数呼び出し扱いになるため，その違いに注意が必要です．Rustコードのほとんどは，行末に&amp;rdquo;;&amp;ldquo;をつけます&lt;/p&gt;&#xA;&lt;h2 id=&#34;13-hello-cargo&#34;&gt;1.3. Hello, Cargo!&lt;a class=&#34;anchor&#34; href=&#34;#13-hello-cargo&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;CargoはRustにおけるビルドシステム，パッケージマネージャです．これを使うとライブラリのダウンロードやコードのビルドをまとめて扱ってくれるため非常に便利です．今後，基本的にはCargoを用いて勉強をしていきます．ちなみに，本サイトの通りにRustをインストールしていたらCargoも勝手に入っています．&lt;/p&gt;&#xA;&lt;h3 id=&#34;cargoでプロジェクト作成&#34;&gt;Cargoでプロジェクト作成&lt;a class=&#34;anchor&#34; href=&#34;#cargo%e3%81%a7%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e4%bd%9c%e6%88%90&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;作業ディレクトリで以下を実行すると，Cargoを使って新しいプロジェクトを作成できます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cargo new hello_cargo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd hello_cargo&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;作成したCargoは基本的に以下のような構造になっていると思います．ここで，Cargo.tomlファイルを開いてみてください．開いてみると，[package]と[dependencies]という二つのヘッダがついています．前者はセクションヘッダで，ここに情報を追加していく中で他のセクションも追加していくことになります．後者はプロジェクトの依存を列挙するためのセクションです．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hello_cargo/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── Cargo.toml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;└── src/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    └── main.rs&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[package]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hello_cargo&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;version &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0.1.0&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;edition &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2021&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# See more keys and their definitions at https:&lt;span style=&#34;color:#75715e&#34;&gt;//doc.rust-lang.org/cargo/reference/manifest.html&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[dependencies]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cargo.tomlのなかみ&lt;/p&gt;</description>
    </item>
    <item>
      <title>エコタウンがすごかった話</title>
      <link>https://wiki.yut4k.com/docs/blog/hima01/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/blog/hima01/</guid>
      <description>&lt;h1 id=&#34;エコタウンがすごかった話2026-04-18&#34;&gt;エコタウンがすごかった話(2026-04-18)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a8%e3%82%b3%e3%82%bf%e3%82%a6%e3%83%b3%e3%81%8c%e3%81%99%e3%81%94%e3%81%8b%e3%81%a3%e3%81%9f%e8%a9%b12026-04-18&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;ういす&#34;&gt;ういす&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%86%e3%81%84%e3%81%99&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　八王子にあるエコタウンに行ってきた．京王八王子駅から徒歩15分くらいだった．&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;ハードオフ八王子大和田店：&lt;a href=&#34;https://www.hardoff.co.jp/shop/detail/?p=201028&#34;&gt;https://www.hardoff.co.jp/shop/detail/?p=201028&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;　一番時間を使ったのがHobbyOFF館．1階は自転車・パーツがずらっと並んでおり，まずココで時間を費やしてしまう(メインの目的じゃないのに・・・)．今回はビビッときたパーツがなかったので何も買わなかったのだが，自転車好きの人なら一度は行ってみると思わぬ出会いがあるかもしれない．&lt;br&gt;&#xA;　2階はぬいぐるみ，トレカ(?)が多く置いてあったが，スロット実機が多く置かれており驚いた．ハーデス・絆・番長3となかなかに魅力的な台が売られていた．普通に一台買おうかなとも思ったが，家スロは3日で飽きると確信しているので，スルー．&lt;br&gt;&#xA;　3,4階はフィギュアや雑貨系が多くあった．いくつか買ったものがあるので，紹介しようと思う．&lt;/p&gt;&#xA;&lt;h3 id=&#34;クロムのアミーボ&#34;&gt;クロムのアミーボ&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%af%e3%83%ad%e3%83%a0%e3%81%ae%e3%82%a2%e3%83%9f%e3%83%bc%e3%83%9c&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;セリカのアミーボは少し前に買った．なぜクロムを正面にして写真を撮らなかったのかは謎である．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/hima01/IMG_4705.jpeg&#34; alt=&#34;クロム&#34;&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;マヤフィギュア&#34;&gt;マヤフィギュア&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%9e%e3%83%a4%e3%83%95%e3%82%a3%e3%82%ae%e3%83%a5%e3%82%a2&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;中古価格500円で買った．エヴァンゲリオンはやはりパイロットやエヴァシリーズのフィギュアが多いので，マヤのフィギュアは個人的に嬉しい．他にもマヤのあったら教えてほしいくらい．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/hima01/IMG_4704.jpeg&#34; alt=&#34;マヤ&#34;&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;サイファーとエアリス&#34;&gt;サイファーとエアリス&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%b5%e3%82%a4%e3%83%95%e3%82%a1%e3%83%bc%e3%81%a8%e3%82%a8%e3%82%a2%e3%83%aa%e3%82%b9&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;コレをもともと持っていた人はいつどこで買ったのだろうか．実はキマリもいたのだが，それは知人に譲った．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/hima01/IMG_4703.jpeg&#34; alt=&#34;サイファーとエアリス&#34;&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>学部時代の研究</title>
      <link>https://wiki.yut4k.com/docs/research/b4/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/research/b4/</guid>
      <description>&lt;h1 id=&#34;学部時代の研究&#34;&gt;学部時代の研究&lt;a class=&#34;anchor&#34; href=&#34;#%e5%ad%a6%e9%83%a8%e6%99%82%e4%bb%a3%e3%81%ae%e7%a0%94%e7%a9%b6&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;概要&#34;&gt;概要&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　学部時代に行っていた研究について紹介する．UAVネットワークの構築について扱い，UAVの配置問題や最適化を研究した．UAVネットワークとは，無人飛行機(UAV：Unmanned Aerial Vehicle)を複数台同時に飛行させて，各UAVがクライアントである地上ユーザに無線通信を提供するものである．図1にUAVネットワークの概略を示す．通信を行う際は，クライアントノードの上空にUAVがホバリングする間に通信を確立させ，データを収集する．また，ある基地局に向けて収集したデータを集約させる場合，UAV同士がマルチホップにデータを転送し合うことが可能となる．&lt;br&gt;&#xA;　本モデルはインフラ整備が整っていない環境や災害地域での利用を想定している．基地局が故障した際や，そもそも基地局が整備されていない地域では，地上ユーザは遅延の少ない安定した通信を行うことが難しい．そこでUAVネットワークを構築することで，一時的に通信を確立させて安定した通信環境を利用することが可能となる．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/b4/UAVnetwork.png&#34; alt=&#34;UAVnetwork&#34;&gt;&#xA;    &lt;p class=&#34;caption&#34;&gt;図1 UAVネットワーク&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;　図2に実際にやるとこんな感じというイメージを示す．実験ではRaspberryPiを搭載したUAVを飛行させて，クライアントと通信を行った．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/b4/yobijikkenn2.png&#34; alt=&#34;yobijikkenn2&#34;&gt;&#xA;    &lt;p class=&#34;caption&#34;&gt;図2 イメージ&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;衛星通信とは違う&#34;&gt;衛星通信とは違う？&lt;a class=&#34;anchor&#34; href=&#34;#%e8%a1%9b%e6%98%9f%e9%80%9a%e4%bf%a1%e3%81%a8%e3%81%af%e9%81%95%e3%81%86&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　近年，Starlinkのような衛星通信を用いることでクライアントは通信を行うことができる技術がある．現在では多数の衛星が地球の周囲をまわっており，地球上の多くのエリアで通信環境を簡単に設立することが可能となる．日本においても，現在ではほとんどの地域で利用することができる．しかし，地上に専用の基地局を設置しなければならず，設置場所も上空が開けている場所でなければならない．基地局を設置することが難しい地域では，衛星通信の利用は難しい場合がある．そこで，UAVネットワークを用いることで衛星通信がもつ難点を解消することができる．UAVは地上から数十メートル上空を飛行し，地上ユーザ端末に直接通信を提供する．また，UAVは高度な移動制御が可能であるため，通信しづらい地上ユーザ端末に対しても，無線通信を提供することが可能である．&lt;/p&gt;&#xA;&lt;h2 id=&#34;研究の課題&#34;&gt;研究の課題&lt;a class=&#34;anchor&#34; href=&#34;#%e7%a0%94%e7%a9%b6%e3%81%ae%e8%aa%b2%e9%a1%8c&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　これまでの研究では，UAVは高品質な通信を提供できるものとしてUAV配置などが提案されてきた．しかし，利用を想定する地域において，常に高品質の通信を提供できる保証はない．むしろ，通信品質が劣悪になる環境である可能性も考えられる．UAVが地上ユーザに対して通信を試みた結果，データ収集を失敗する可能性を考えなければならない．本研究では，通信劣悪環境下と良好環境が混在する地域を想定し，短時間で可能な限りのデータ収集を行えるような UAV配置に関して検討する．&lt;/p&gt;&#xA;&lt;h2 id=&#34;業績&#34;&gt;業績&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a5%ad%e7%b8%be&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;高橋優作，平田孝志，鎌村星平，“UAVネットワークにおける通信劣悪環境下での最適配置問題に関する検討，”電子情報通信学会技術研究報告, NS2025-311, pp.530-535, 2026年3月.&lt;/li&gt;&#xA;&lt;li&gt;高橋　優作，“UAVネットワークにおける通信劣悪環境下での最適配置問題に関する検討，”成蹊大学2025年度卒業論文&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>2章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust02/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust02/</guid>
      <description>&lt;h1 id=&#34;2章数当てゲームのプログラミング&#34;&gt;2章　数当てゲームのプログラミング&lt;a class=&#34;anchor&#34; href=&#34;#2%e7%ab%a0%e6%95%b0%e5%bd%93%e3%81%a6%e3%82%b2%e3%83%bc%e3%83%a0%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;2章で扱う内容はこちら&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;数当てゲームの実装からRustについて知っていく&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;新規プロジェクトの立ち上げ&#34;&gt;新規プロジェクトの立ち上げ&lt;a class=&#34;anchor&#34; href=&#34;#%e6%96%b0%e8%a6%8f%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e7%ab%8b%e3%81%a1%e4%b8%8a%e3%81%92&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;まずは，新規プロジェクトの立ち上げをします．できたらCargo runもしてみましょう．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cargo new guessing_game&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd guessing_game&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;予想を処理する&#34;&gt;予想を処理する&lt;a class=&#34;anchor&#34; href=&#34;#%e4%ba%88%e6%83%b3%e3%82%92%e5%87%a6%e7%90%86%e3%81%99%e3%82%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;標準入力の実装をしてみましょう．src/main.rsのなかみをまずは以下のように書きます．&amp;ldquo;use std::io&amp;quot;を宣言することで標準入出力に関するライブラリをインポートできます．変数に値を格納するには，&amp;ldquo;let&amp;quot;を使います．Rustでは変数はデフォルトで不変(immutable)なので，一度変数宣言をしたら変更はできません．C++でいうconstのことですかね．しかし，&amp;ldquo;mut&amp;quot;をつけることで変数を可変(mutable)にできます．変数guessはString型のインスタンスを返します．&amp;rdquo;::&amp;ldquo;構文はnewがStringの関連関数であることを示します．関連関数はある型に対して実装される関数のことです． &lt;br&gt;&#xA;&amp;ldquo;.read_line(&amp;amp;mut guess)&amp;ldquo;は標準入力を受け取るメソッドです．&amp;rdquo;&amp;amp;&amp;ldquo;は参照であり，これもmutで可変にしておく必要があります．&amp;ldquo;read_line&amp;quot;メソッドはResult値も返します．これは，エラー処理に関する列挙型の値で，&amp;quot;.expect&amp;quot;で例外処理をしているのはこのためです．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; std::io;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Guess the number!&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Please input your guess.&amp;#34;&lt;/span&gt;); &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;mut&lt;/span&gt; guess &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; String::new();  &lt;span style=&#34;color:#75715e&#34;&gt;// 変数に値を格納する&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    io::stdin()     &lt;span style=&#34;color:#75715e&#34;&gt;// ユーザの入力を受け取る&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        .read_line(&lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;mut&lt;/span&gt; guess)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        .expect(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Failed to read line&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;You guessed: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{guess}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;println!()中には&amp;rdquo;{}&amp;ldquo;に変数名を入れることで値を呼び出すことができます．式の評価結果を表示するときは空の&amp;rdquo;{}&amp;ldquo;を置き，式をカンマ区切りでリストにして続けます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;x = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{x}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;y+2 = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{ y+2 }&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);  &lt;span style=&#34;color:#75715e&#34;&gt;// &amp;lt;- コレはエラーが出る&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;y+2 = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, y&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここまでで，実行してみましょう．&lt;/p&gt;</description>
    </item>
    <item>
      <title>FEエコーズ感想</title>
      <link>https://wiki.yut4k.com/docs/blog/hima02/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/blog/hima02/</guid>
      <description>&lt;h1 id=&#34;feエコーズ感想ネタバレ注意&#34;&gt;FEエコーズ感想(ネタバレ注意)&lt;a class=&#34;anchor&#34; href=&#34;#fe%e3%82%a8%e3%82%b3%e3%83%bc%e3%82%ba%e6%84%9f%e6%83%b3%e3%83%8d%e3%82%bf%e3%83%90%e3%83%ac%e6%b3%a8%e6%84%8f&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;ファイアーエムブレムエコーズを沖縄学会へ向かう道中でプレイし，クリアしたため感想を述べる．&lt;/p&gt;&#xA;&lt;div class=&#34;info-table&#34;&gt;&#xA;&lt;h2 id=&#34;作品情報&#34;&gt;作品情報&lt;a class=&#34;anchor&#34; href=&#34;#%e4%bd%9c%e5%93%81%e6%83%85%e5%a0%b1&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;項目&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;タイトル&lt;/td&gt;&#xA;          &lt;td&gt;Fire Emblem Echoes: Shadows of Valentia&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;日本語タイトル&lt;/td&gt;&#xA;          &lt;td&gt;ファイアーエムブレム Echoes もうひとりの英雄王&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;対応機種&lt;/td&gt;&#xA;          &lt;td&gt;Nintendo 3DS&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;開発&lt;/td&gt;&#xA;          &lt;td&gt;Intelligent Systems&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;発売&lt;/td&gt;&#xA;          &lt;td&gt;Nintendo&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;info-image&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/hima02/jaket.jpg&#34; alt=&#34;ジャケット写&#34;&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;1992年にファミコンで発売された『Fire Emblem 外伝』のリメイク作品．シリーズ15作品目にあたる．シリーズの中でも異色とされる原作の要素を引き継ぎつつ，フルボイス化や3D表現など現代向けに再構築されている．シリーズ初のフルボイス収録が搭載されている他，ミラの歯車によるターン巻き戻し機能も兼ね備わっている．2人の主人公（アルム／セリカ）による並行ストーリーとなっており，双方からの視点を楽しむことができる．&lt;/p&gt;&#xA;&lt;h2 id=&#34;ストーリーについて&#34;&gt;ストーリーについて&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%b9%e3%83%88%e3%83%bc%e3%83%aa%e3%83%bc%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　アルムとセリカがお互いの目的のもと戦う構図はかなり好印象だった．ストーリーの中盤で二人が再開を果たしたときは感動したと思ったが，考えの相異で仲違いが起きてしまう．どうももどかしい感じで話が進んでいくが，最後はハッピーエンドだったので大満足である．ただ，ジュダの倒し方は結局今でもわからない．あいつは倒す術あるのですか？ &lt;br&gt;&#xA;　クリア後のストーリが他作品にはない要素であった．結局，そこまではできていないのだが，忘れたころにまたやりたいと思う．&#xA;　&lt;/p&gt;&#xA;&lt;h2 id=&#34;システム面について&#34;&gt;システム面について&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%9d%a2%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　FEをプレイするとき，1周目はハードでプレイするというポリシーがある．ルナティックをいきなりやってしまうと，クリアした後に2周目をやる動機がなくなってしまうからだ．なので，今回もハードでプレイ開始．しかし，後から知ったのだがFEエコーズはルナティックは存在しないようで，若干後悔している． &lt;br&gt;&#xA;　本作はステータスの扱いやクラスチェンジなど多くの要素が他作品とは異なる．まず，杖や魔法の消費は回数ではなく，HP消費により使用可能となっている．このシステムは正直好き．そして，キャラによって習得する魔法が違っているため，同じ魔法職でもレスキューを覚えたり，ワープを覚えたりとさまざま．武器には消費回数はなく，壊れるという概念は存在しない．町の一部に鍛冶屋があり，そこで武器は鍛えるか進化(?)させることができる．鍛えることで威力が上がったり重量が軽くなったりする．また，鍛えた星の数によって進化先が増えることは割と終盤で気づいた． &lt;br&gt;&#xA;　ステータスは力と魔力はATKに統合されているところが他作品とは異なる点だ．また，井戸で特定のステータスを強化させることができるため，へたれているユニットをカバーしたり，エースユニットを作れたりと方針はさまざまである．&lt;/p&gt;&#xA;&lt;h2 id=&#34;さいごに&#34;&gt;さいごに&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%95%e3%81%84%e3%81%94%e3%81%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;神作品です．全員買ってプレイしてください．&lt;/p&gt;</description>
    </item>
    <item>
      <title>修士での研究</title>
      <link>https://wiki.yut4k.com/docs/research/master/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/research/master/</guid>
      <description>&lt;h1 id=&#34;修士での研究&#34;&gt;修士での研究&lt;a class=&#34;anchor&#34; href=&#34;#%e4%bf%ae%e5%a3%ab%e3%81%a7%e3%81%ae%e7%a0%94%e7%a9%b6&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;概要&#34;&gt;概要&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;まだM1なので模索中．&lt;/p&gt;</description>
    </item>
    <item>
      <title>3章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust03/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust03/</guid>
      <description>&lt;h1 id=&#34;3章一般的なプログラミングの概念&#34;&gt;3章　一般的なプログラミングの概念&lt;a class=&#34;anchor&#34; href=&#34;#3%e7%ab%a0%e4%b8%80%e8%88%ac%e7%9a%84%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e3%81%ae%e6%a6%82%e5%bf%b5&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;3章で扱う内容はこちら&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;変数&lt;/li&gt;&#xA;&lt;li&gt;基本的な型&lt;/li&gt;&#xA;&lt;li&gt;関数&lt;/li&gt;&#xA;&lt;li&gt;コメント&lt;/li&gt;&#xA;&lt;li&gt;制御フロー&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;31-変数と可変性&#34;&gt;3.1 変数と可変性&lt;a class=&#34;anchor&#34; href=&#34;#31-%e5%a4%89%e6%95%b0%e3%81%a8%e5%8f%af%e5%a4%89%e6%80%a7&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;変数は標準では不変(immutable)です．変数の中身を自由に変更できることは便利ですが，セキュリティ面を考えるとバグの原因になったり，悪用されたりする可能性があります．C++だと&amp;quot;const&amp;quot;をつけることで不変変数を実現できますが，Rustではいちいち不変であることを宣言する必要がありません．明示的に可変にする方法もありますので，それらについてみていきます．まずは新規プロジェクトを立ち上げます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cargo new variables&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;main.rsの中身を以下のようにします．ちなみに，このままだとコンパイルエラーとなりますが一旦&amp;hellip;．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;The value of x is: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{x}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);     &lt;span style=&#34;color:#75715e&#34;&gt;// xの値は{x}です&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;The value of x is: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{x}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実際にコンパイルしてみると以下のようなエラーが返ってきます．xは不変の値にも関わらず再び代入しようとしているため，エラーが出ています．もし，xに代入したい値があるならば，変数宣言時に&amp;quot;mut&amp;quot;をつけることで可変にできます．感覚的には，エラーやバグ発生時はmutがついている変数を追えば良いという感じです．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cargo run&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Compiling variables v0.1.0 &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;file:///projects/variables&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;error&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;E0384&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;: cannot assign twice to immutable variable &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; --&amp;gt; src/main.rs:4:5&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; |     let x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 5;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  |         - first assignment to &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;x&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; |     println!&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;The value of x is: {x}&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; |     x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 6;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  |     ^^^^^ cannot assign twice to immutable variable&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;help: consider making this binding mutable&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; |     let mut x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; 5;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  |         +++&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;For more information about this error, try &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;rustc --explain E0384&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;error: could not compile &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;variables&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;bin &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;variables&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; due to &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; previous error&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;では，コードを改善します．&lt;/p&gt;</description>
    </item>
    <item>
      <title>かみむら牧場</title>
      <link>https://wiki.yut4k.com/docs/blog/hima03/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/blog/hima03/</guid>
      <description>&lt;h1 id=&#34;かみむら牧場のかみは神な件2026-05-14&#34;&gt;かみむら牧場の&amp;quot;かみ&amp;quot;は&amp;quot;神&amp;quot;な件(2026-05-14)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%8b%e3%81%bf%e3%82%80%e3%82%89%e7%89%a7%e5%a0%b4%e3%81%ae%e3%81%8b%e3%81%bf%e3%81%af%e7%a5%9e%e3%81%aa%e4%bb%b62026-05-14&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;　近年，焼肉の食べ放題を提供する店舗が注目されている．多くの人が知っているのが&amp;quot;牛角&amp;quot;や&amp;quot;焼肉きんぐ&amp;quot;ではないだろうか．それぞれ全国チェーン展開されており，店舗数も伸び続けている．焼肉が食べ放題というのはかなり魅力的であるが，なかでも私が絶賛しているのが&amp;quot;かみむら牧場&amp;quot;である．店舗数はかなり少なく，公式サイトの情報だと全国で11店舗展開されている．知らない人も多いと思うので，今回はこの店舗について紹介しようと思う．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/hima03/kamimura_logo.png&#34; alt=&#34;かみむらロゴ&#34;&gt;&#xA;    &lt;p class=&#34;caption&#34;&gt;公式サイトより引用&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://kamimura-bbq.com/&#34;&gt;かみむら牧場公式ホームぺージ： https://kamimura-bbq.com/&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;かみむら牧場について&#34;&gt;かみむら牧場について&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%8b%e3%81%bf%e3%82%80%e3%82%89%e7%89%a7%e5%a0%b4%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　焼肉の食べ飲み放題のお店．食べ放題にはいくつかのコースがあり，以下にコースの概略を示す．私はジャストミートコースをいつも選択している．下から二番目のコースなので，メニュー量が少ないのではと思う人もいるかもしれないが，ジャストミートで十分すぎるくらいであると思う．ジャストミートのメニュー表のPDFファイルが公式サイトにあったので，以下に置いておく． &lt;br&gt;&#xA;　唯一の欠点が，牛タン塩を食べられないことだ．一つ上のかみむら牧場コースを選ぶと牛タン塩が追加されるので，一度はそちらのコースも体験せねばと思っている．しかし，豚タン塩，にんにくタンがあるので，正直十分である．&lt;/p&gt;&#xA;&lt;div class=&#34;center-fig&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/hima03/kamimura01.png&#34; alt=&#34;メニュー概要&#34;&gt;&#xA;    &lt;p class=&#34;caption&#34;&gt;公式サイトより引用&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://kamimura-bbq.com/prd/wordpress/wp-content/uploads/2025/12/202511_kamimura_GM_web_PDF_justmeet_01.pdf&#34;&gt;&lt;strong&gt;ジャストミートのメニュー&lt;/strong&gt;: https://kamimura-bbq.com/prd/wordpress/wp-content/uploads/2025/12/202511_kamimura_GM_web_PDF_justmeet_01.pdf&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;　商品はタッチパネルで注文する形になっていて，数分すると特急レーンで運ばれてくる．また，サラダバーやアイスクリームバーが別でおいてあり，そちらも利用することができる．&lt;/p&gt;&#xA;&lt;h2 id=&#34;さいごに&#34;&gt;さいごに&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%95%e3%81%84%e3%81%94%e3%81%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　2026年4月から職場が一時的に蒲田になったことで，かみむら牧場の存在を知った．アルコールも食べ物も充実していて最高．ぜひ一度は行ってみると新たな知見を得られると思う．&lt;/p&gt;&#xA;&lt;h2 id=&#34;独り言&#34;&gt;独り言&lt;a class=&#34;anchor&#34; href=&#34;#%e7%8b%ac%e3%82%8a%e8%a8%80&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;自分が行ったときに写真をとってこようと思う．お楽しみに．&lt;/p&gt;</description>
    </item>
    <item>
      <title>自由研究</title>
      <link>https://wiki.yut4k.com/docs/research/rof/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/research/rof/</guid>
      <description>&lt;h1 id=&#34;自由研究&#34;&gt;自由研究&lt;a class=&#34;anchor&#34; href=&#34;#%e8%87%aa%e7%94%b1%e7%a0%94%e7%a9%b6&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;概要&#34;&gt;概要&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a6%82%e8%a6%81&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;メインの研究の予備実験を行うために勉強したものや，単純に趣味で勉強したことについて紹介する．&lt;/p&gt;&#xA;&lt;h2 id=&#34;snmpを用いたトラヒック量取得実験&#34;&gt;SNMPを用いたトラヒック量取得実験&lt;a class=&#34;anchor&#34; href=&#34;#snmp%e3%82%92%e7%94%a8%e3%81%84%e3%81%9f%e3%83%88%e3%83%a9%e3%83%92%e3%83%83%e3%82%af%e9%87%8f%e5%8f%96%e5%be%97%e5%ae%9f%e9%a8%93&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　UAVとクライアント間で実際に通信を行っていることを実証するための予備実験を行った際に勉強したものである．SNMP(Simple Network Management Protocol)はネットワーク機器やハードウェア機器の管理をするためのプロトコルである．機器情報を取得したり，トラヒック量を取得することができるため，予備実験の中で用いた．&lt;br&gt;&#xA;　OIDやMIBといったとっつきにくい内容も出てくるが，古典的なプロトコルとして勉強してみると面白かった．&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://wiki.yut4k.com/file/snmp%e5%8b%89%e5%bc%b7%e8%b3%87%e6%96%99.pdf&#34;&gt;&lt;strong&gt;当時作成した勉強資料&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;エスケープシーケンス&#34;&gt;エスケープシーケンス&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a8%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%97%e3%82%b7%e3%83%bc%e3%82%b1%e3%83%b3%e3%82%b9&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　エスケープシーケンスは特殊文字を表現するために使われる．資料ではC++を用いているが，pythonとかでも使えるはず．&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://wiki.yut4k.com/file/%e3%82%a8%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%97%e3%82%b7%e3%83%bc%e3%82%b1%e3%83%b3%e3%82%b9_cheatsheet.pdf&#34;&gt;&lt;strong&gt;エスケープシーケンス_cheatsheet.pdf&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;pythonの勉強&#34;&gt;pythonの勉強&lt;a class=&#34;anchor&#34; href=&#34;#python%e3%81%ae%e5%8b%89%e5%bc%b7&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;避けては通れないpythonに関する勉強．&lt;/p&gt;&#xA;&lt;h3 id=&#34;内包表記&#34;&gt;内包表記&lt;a class=&#34;anchor&#34; href=&#34;#%e5%86%85%e5%8c%85%e8%a1%a8%e8%a8%98&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;pythonの醍醐味は複数行のfor文をはじめとするコードを簡潔に表現できるようになるものである．使いこなせると大きな武器となるが，なかなかに難しいスキルである．リストや辞書の宣言，簡易的な処理は全部1行で書けてしまう．素晴らしい．&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://wiki.yut4k.com/file/py_%e5%86%85%e5%8c%85%e8%a1%a8%e8%a8%98.pdf&#34;&gt;&lt;strong&gt;当時作成した勉強資料&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;ゲーム理論&#34;&gt;ゲーム理論&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%b2%e3%83%bc%e3%83%a0%e7%90%86%e8%ab%96&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;修士での研究に絡めたいと思い勉強中．．．&lt;/p&gt;</description>
    </item>
    <item>
      <title>4章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust04/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust04/</guid>
      <description>&lt;h1 id=&#34;4章所有権&#34;&gt;4章　所有権&lt;a class=&#34;anchor&#34; href=&#34;#4%e7%ab%a0%e6%89%80%e6%9c%89%e6%a8%a9&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;4章はRust特有の機能である所有権についてです．C++なんかは明示的にメモリを確保したり，開放したりする必要があります．Rustでは，所有権という概念を導入し，メモリ管理を行っています．&lt;/p&gt;&#xA;&lt;h2 id=&#34;41-所有権とは&#34;&gt;4.1 所有権とは&lt;a class=&#34;anchor&#34; href=&#34;#41-%e6%89%80%e6%9c%89%e6%a8%a9%e3%81%a8%e3%81%af&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;所有権のルール&#34;&gt;所有権のルール&lt;a class=&#34;anchor&#34; href=&#34;#%e6%89%80%e6%9c%89%e6%a8%a9%e3%81%ae%e3%83%ab%e3%83%bc%e3%83%ab&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;以下の3つのルールを覚えます．&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;各値には所有者が存在する&lt;/li&gt;&#xA;&lt;li&gt;いかなる時も所有者は一人である&lt;/li&gt;&#xA;&lt;li&gt;所有者がスコープ外に出た時，その値は失われる&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;変数スコープ&#34;&gt;変数スコープ&lt;a class=&#34;anchor&#34; href=&#34;#%e5%a4%89%e6%95%b0%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%97&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;スコープを知っている人は，その内容で把握していてもらって大丈夫です．知らない人のために説明すると，当該要素が有効である範囲を示しています．例えば，main()のなかで宣言された変数はmainのなかで有効です．また，波かっこで囲まれた内部に変数宣言をしたら，その波かっこ内でのみ有効になります．コード例を示しておきます．この場合，変数yをスコープ外で標準出力しようとしているため，エラーになります．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; y&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;s=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;,s);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;y=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;,y); &lt;span style=&#34;color:#75715e&#34;&gt;// E: cannot find value `y` in this scope&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;string型&#34;&gt;String型&lt;a class=&#34;anchor&#34; href=&#34;#string%e5%9e%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;文字列リテラルはプログラムにハードコードされます．つまり，不変値です．そこで，String型を用いるとヒープにメモリを確保するためサイズが不明なテキストも保持することができます．以下のように用います．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; f &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;// コレがいわゆる文字列リテラル&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;mut&lt;/span&gt; s &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; String::from(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    s.push_str(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;, world!&amp;#34;&lt;/span&gt;); &lt;span style=&#34;color:#75715e&#34;&gt;// push_str() appends a literal to a String&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{s}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;); &lt;span style=&#34;color:#75715e&#34;&gt;// this will print `hello, world!`&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;メモリと確保&#34;&gt;メモリと確保&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%a1%e3%83%a2%e3%83%aa%e3%81%a8%e7%a2%ba%e4%bf%9d&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;文字列リテラルは先ほども言った通り不変の値です．String型は実行時にメモリが確保されます．そして，実行が終わる(Stringを使用し終わる)をアロケータはメモリを返還します．C++とかだとrelease()とかでメモリ解放を行いますが，Rustはガベージコレクタ付き言語ですから，勝手にやってくれます．スコープを抜ける際にRustは自動的にdrop関数を呼び出します．&lt;/p&gt;&#xA;&lt;h3 id=&#34;データ移動による作用&#34;&gt;データ移動による作用&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%87%e3%83%bc%e3%82%bf%e7%a7%bb%e5%8b%95%e3%81%ab%e3%82%88%e3%82%8b%e4%bd%9c%e7%94%a8&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h3 id=&#34;クローンとデータ値の作用&#34;&gt;クローンとデータ・値の作用&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%af%e3%83%ad%e3%83%bc%e3%83%b3%e3%81%a8%e3%83%87%e3%83%bc%e3%82%bf%e5%80%a4%e3%81%ae%e4%bd%9c%e7%94%a8&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;String型のヒープデータのdeep copyが必要な場合，cloneメソッドを使います．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; s1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; String::from(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; s2 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; s1.clone();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;s1 = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;, s2 = &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, s1, s2);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;スタックのみのデータ&#34;&gt;スタックのみのデータ&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e3%81%ae%e3%81%bf%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;まずは以下のコードを実行してみてください．xの値がyにムーブされていないことが分かったと思います．スタック上に保持されるデータはムーブする必要性がないとコンパイラは判断します．&lt;/p&gt;</description>
    </item>
    <item>
      <title>シンプルモードおじさん</title>
      <link>https://wiki.yut4k.com/docs/blog/hima04/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/blog/hima04/</guid>
      <description>&lt;h1 id=&#34;エヴァシリーズはシンプルモード一択な件について&#34;&gt;エヴァシリーズはシンプルモード一択な件について&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a8%e3%83%b4%e3%82%a1%e3%82%b7%e3%83%aa%e3%83%bc%e3%82%ba%e3%81%af%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%83%a2%e3%83%bc%e3%83%89%e4%b8%80%e6%8a%9e%e3%81%aa%e4%bb%b6%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;最近，Pエヴァ15の稼働貢献が終了したという噂を聞いた．自分もトップクラスに好きな台なので，今回は打感について備忘録的な感じで残しておく．続きを読む前に注意点．シンプルモードのことしか知らないため，ノーマル信者は今日をもってシンプル派に鞍替えするか，ブラウザバック推奨．&lt;/p&gt;&#xA;&lt;h2 id=&#34;簡単にスペックの復習&#34;&gt;簡単にスペックの復習&lt;a class=&#34;anchor&#34; href=&#34;#%e7%b0%a1%e5%8d%98%e3%81%ab%e3%82%b9%e3%83%9a%e3%83%83%e3%82%af%e3%81%ae%e5%be%a9%e7%bf%92&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;眠くなったので今日はここまで，また暇なときに続きを書きます．orz&lt;/p&gt;</description>
    </item>
    <item>
      <title>基本情報技術者試験</title>
      <link>https://wiki.yut4k.com/docs/research/kihonjouho/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/research/kihonjouho/</guid>
      <description>&lt;h1 id=&#34;基本情報技術者試験を受けたのでその感想等&#34;&gt;基本情報技術者試験を受けたのでその感想等&lt;a class=&#34;anchor&#34; href=&#34;#%e5%9f%ba%e6%9c%ac%e6%83%85%e5%a0%b1%e6%8a%80%e8%a1%93%e8%80%85%e8%a9%a6%e9%a8%93%e3%82%92%e5%8f%97%e3%81%91%e3%81%9f%e3%81%ae%e3%81%a7%e3%81%9d%e3%81%ae%e6%84%9f%e6%83%b3%e7%ad%89&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;M1になって「まだとってなかったんかい」とツッコまれそうですが，やっととりました．去年の夏くらいからちょいちょい勉強していましたが，ガッツリ試験勉強をしたのは直近1か月くらいです．就活のためにってわけではないですが，理工学部出身であるならば流石にとっておきたいですよね．&lt;/p&gt;&#xA;&lt;h2 id=&#34;個人的に感じたコツ的な話&#34;&gt;個人的に感じたコツ的な話&lt;a class=&#34;anchor&#34; href=&#34;#%e5%80%8b%e4%ba%ba%e7%9a%84%e3%81%ab%e6%84%9f%e3%81%98%e3%81%9f%e3%82%b3%e3%83%84%e7%9a%84%e3%81%aa%e8%a9%b1&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;直接出た問題を話すと規約違反になるため，自分がどんな感じで勉強したかを記しておきます．一冊だけ参考書を買って，それを無限に読みました．&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4815638217?tag=maftracking553842-22&amp;amp;linkCode=ure&amp;amp;creative=6339&#34;&gt;いちばんやさしい 基本情報技術者&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://www.fe-siken.com/fekakomon.php&#34;&gt;基本情報技術者試験過去問道場&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;あとは，読んでいるだけだとインプットオンリーなので，道場でひたすらアウトプットをしました．道場は過去10年分くらいを解いておけば問題ないと思います．シラバス改定で出題傾向や問われ方が変わっているので，あまりにも昔の過去問は参考にしにくいです． &lt;br&gt;&#xA;正直な話，学部4年間で基本情報をとけるくらいの知識は講義で得ていたので，テクノロジ系は割とアドバンテージがありました．そのため，全くの別業界の人がいきなり勉強しようとすると自分よりは時間がかかると思います．ただ，基本情報ではそこまで深い内容は聞かれないので，参考書を忠実にやってもらえればできると思います． &lt;br&gt;&#xA;ストラテジ系とマネジメント系では，聞いたことない用語を問われることが増えているそうです．すべての用語を網羅することは不可能なので，これも例によって参考書に忠実になってもらって，できることをすればいいです．用語に対してもカンが鍛えられるので，なんかこういう意味っぽいなというカンを身に着けておくといいと思います．&lt;/p&gt;&#xA;&lt;h2 id=&#34;勉強資料を公開します&#34;&gt;勉強資料を公開します&lt;a class=&#34;anchor&#34; href=&#34;#%e5%8b%89%e5%bc%b7%e8%b3%87%e6%96%99%e3%82%92%e5%85%ac%e9%96%8b%e3%81%97%e3%81%be%e3%81%99&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;用語をまとめた勉強資料を置いておきます．以下，注意事項です．&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;すべての範囲を網羅しているわけではない&lt;/li&gt;&#xA;&lt;li&gt;著者自身が分かっていればいいノリで作ったので，身内ネタがあります(許して)&lt;/li&gt;&#xA;&lt;li&gt;PDFファイルにはパスワードを付けています．図表に著作権がある関係で，ブロードキャストに自由閲覧できてしまうと問題発生の可能性があるためです．パスワードは著者にお問い合わせください．&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://wiki.yut4k.com/file/%e5%9f%ba%e6%9c%ac%e6%83%85%e5%a0%b1%e6%8a%80%e8%a1%93%e8%80%85%e8%a9%a6%e9%a8%93%e3%81%ae%e7%8b%ac%e3%82%8a%e8%a8%80_pw%e4%bb%98.pdf&#34;&gt;&lt;strong&gt;当時作成した勉強資料&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>5章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust05/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust05/</guid>
      <description>&lt;h1 id=&#34;5章構造体&#34;&gt;5章　構造体&lt;a class=&#34;anchor&#34; href=&#34;#5%e7%ab%a0%e6%a7%8b%e9%80%a0%e4%bd%93&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;51-構造体を定義しインスタンス化する&#34;&gt;5.1 構造体を定義し，インスタンス化する&lt;a class=&#34;anchor&#34; href=&#34;#51-%e6%a7%8b%e9%80%a0%e4%bd%93%e3%82%92%e5%ae%9a%e7%be%a9%e3%81%97%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e5%8c%96%e3%81%99%e3%82%8b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;構造体の定義は，structキーワードを用いて名前を付けます．波かっこ内にデータの名前と型を指定し，変数を作成します．例えば，ユーザアカウントに関する情報を保持する構造体を作成してみましょう．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;User&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    active: &lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    username: String,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    email: String,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sign_in_count: &lt;span style=&#34;color:#66d9ef&#34;&gt;u64&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;構造体を定義したら，使っていきましょう．インスタンスを生成しますが，構造体名を記述し，キーと値を指定します．ちなむと，順番は見ていません．先ほどのUserを使ってインスタンスを生成すると以下のように書けます．また，構造体から特定の値を得るには，ドット記法で指定します．その例も含めてどうぞ．ただし，一部の値を変更するには可変状態でなければなりません．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; user1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; User {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        active: &lt;span style=&#34;color:#a6e22e&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        username: String::from(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;someusername123&amp;#34;&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        email: String::from(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;someone@example.com&amp;#34;&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        sign_in_count: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    };&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// let mut user1{...};の状態ならばOK&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;user1.email &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; String::from(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;anotheremail@example.com&amp;#34;&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;与えられたemailとusernameでUserインスタンスを生成する関数build_userを示します．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;build_user&lt;/span&gt;(email: String, username: String) -&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;User&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    User {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        active: &lt;span style=&#34;color:#a6e22e&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        username: &lt;span style=&#34;color:#a6e22e&#34;&gt;username&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        email: &lt;span style=&#34;color:#a6e22e&#34;&gt;email&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        sign_in_count: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;フィールド初期化省略記法を使う&#34;&gt;フィールド初期化省略記法を使う&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%88%9d%e6%9c%9f%e5%8c%96%e7%9c%81%e7%95%a5%e8%a8%98%e6%b3%95%e3%82%92%e4%bd%bf%e3%81%86&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;先ほどのコードは，emailとusernameというフィールド名と変数を繰り返さなければならず，ちょっち面倒です．そこで，以下のように書くこともできます．email: emailと書く必要はなくて，emailだけで済みます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;build_user&lt;/span&gt;(email: String, username: String) -&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;User&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    User {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        active: &lt;span style=&#34;color:#a6e22e&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        username,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        email,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        sign_in_count: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;構造体更新記法で他のインスタンスからインスタンスを生成する&#34;&gt;構造体更新記法で他のインスタンスからインスタンスを生成する&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a7%8b%e9%80%a0%e4%bd%93%e6%9b%b4%e6%96%b0%e8%a8%98%e6%b3%95%e3%81%a7%e4%bb%96%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e3%81%8b%e3%82%89%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%83%b3%e3%82%b9%e3%82%92%e7%94%9f%e6%88%90%e3%81%99%e3%82%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;新しいインスタンスを生成するとき，一部の値を変えて既存インスタンスから更新する形で行うことができます．まずは，user1の値を使用し，user2としてUserインスタンスを生成します．emailだけ値を更新しています．&lt;/p&gt;</description>
    </item>
    <item>
      <title>6章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust06/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust06/</guid>
      <description>&lt;h1 id=&#34;6章-enumとパターンマッチング&#34;&gt;6章 Enumとパターンマッチング&lt;a class=&#34;anchor&#34; href=&#34;#6%e7%ab%a0-enum%e3%81%a8%e3%83%91%e3%82%bf%e3%83%bc%e3%83%b3%e3%83%9e%e3%83%83%e3%83%81%e3%83%b3%e3%82%b0&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>7章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust07/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust07/</guid>
      <description>&lt;h1 id=&#34;7章-パッケージクレートモジュール&#34;&gt;7章 パッケージ，クレート，モジュール&lt;a class=&#34;anchor&#34; href=&#34;#7%e7%ab%a0-%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%af%e3%83%ac%e3%83%bc%e3%83%88%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>8章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust08/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust08/</guid>
      <description>&lt;h1 id=&#34;8章一般的なコレクション&#34;&gt;8章　一般的なコレクション&lt;a class=&#34;anchor&#34; href=&#34;#8%e7%ab%a0%e4%b8%80%e8%88%ac%e7%9a%84%e3%81%aa%e3%82%b3%e3%83%ac%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>9章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust09/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust09/</guid>
      <description>&lt;h1 id=&#34;9章エラー処理&#34;&gt;9章　エラー処理&lt;a class=&#34;anchor&#34; href=&#34;#9%e7%ab%a0%e3%82%a8%e3%83%a9%e3%83%bc%e5%87%a6%e7%90%86&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;91-panicで回避不能なエラー&#34;&gt;9.1 panic!で回避不能なエラー&lt;a class=&#34;anchor&#34; href=&#34;#91-panic%e3%81%a7%e5%9b%9e%e9%81%bf%e4%b8%8d%e8%83%bd%e3%81%aa%e3%82%a8%e3%83%a9%e3%83%bc&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;プログラム中で悪いことが起き，どうしようもないときにpanic!マクロがあります．実際にパニックを起こす方法は二つあり，&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;パニックを引き起こす操作を行う(配列の要素外にアクセスするなど)&lt;/li&gt;&#xA;&lt;li&gt;明示的にpanic!マクロを呼び出す &lt;br&gt;&#xA;があります． &lt;br&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;デフォルトでは，パニックが失敗メッセージを出力し，巻き戻し，スタックを片付け，終了します．パニック発生時は発生源を特定するために，環境変数を介してスタックに表示するように指定することもできます．&lt;/p&gt;&#xA;&lt;h3 id=&#34;パニックに対してスタックを巻き戻すかabortするか&#34;&gt;パニックに対してスタックを巻き戻すかAbortするか&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%91%e3%83%8b%e3%83%83%e3%82%af%e3%81%ab%e5%af%be%e3%81%97%e3%81%a6%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e3%82%92%e5%b7%bb%e3%81%8d%e6%88%bb%e3%81%99%e3%81%8babort%e3%81%99%e3%82%8b%e3%81%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;デフォルトでは先述の通り，パニック発生時にスタックを巻き戻して，関数データを片付けてから終了します．しかし，即座に中止して片付けることもなく終了させることもできます．この場合，OSがメモリを解放しなければならないです．Cargo.tomlファイル[profile.release]欄に以下のように書いておけば，パニック時に巻き戻しから中止するように切り替えられます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;profile&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;release&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;panic&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;abort&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;簡単なプログラムでぱにくってみる&#34;&gt;簡単なプログラムでぱにくってみる&lt;a class=&#34;anchor&#34; href=&#34;#%e7%b0%a1%e5%8d%98%e3%81%aa%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%a7%e3%81%b1%e3%81%ab%e3%81%8f%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;以下のプログラムでpanic!を呼び出してみましょう．実行してみると以下のような出力を確認してください．最後の2行がエラーメッセージです．1行目にパニックメッセージと発生源を表示しています．例でいうと2行目5文字目であることを示唆しており，自分はその個所を見に行きます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;panic!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;crash and burn&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;andorssi@Jre:~/rusting/panic01$ cargo run&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Compiling panic01 v0.1.0 &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;/home/andorssi/rusting/panic01&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Finished &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;dev&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt; profile &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;unoptimized + debuginfo&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; target&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; in 0.49s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     Running &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;target/debug/panic01&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;thread &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;main&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;5935&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; panicked at src/main.rs:2:5:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;crash and burn&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;note: run with &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;RUST_BACKTRACE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;1&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt; environment variable to display a backtrace&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;関数のバックトレースを用いて問題の発生源を見つけることができます．これについてはこの後すぐ．&lt;/p&gt;&#xA;&lt;h3 id=&#34;panicバックトレース&#34;&gt;panic!バックトレース&lt;a class=&#34;anchor&#34; href=&#34;#panic%e3%83%90%e3%83%83%e3%82%af%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b9&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;配列の無効な添え字を指定している例を見てみます．要素数が3のベクタに対し，100番目の要素にアクセスしようとしています．C言語では，この動作は未定義です．バッファオーバーリード(要素に対応するメモリ上の箇所にあるナニカを返してしまう)を引き起こす可能性があり，セキュリティの脆弱性に直結します． &lt;br&gt;&#xA;Rustでは，このようなことが起きると実行を中止し，継続を拒みます．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; v &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;vec!&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    v[&lt;span style=&#34;color:#ae81ff&#34;&gt;99&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;andorssi@Jre:~/rusting/panic01$ cargo run&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Compiling panic01 v0.1.0 &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;/home/andorssi/rusting/panic01&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Finished &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;dev&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt; profile &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;unoptimized + debuginfo&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; target&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; in 0.12s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     Running &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;target/debug/panic01&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;thread &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;main&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;9756&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; panicked at src/main.rs:10:6:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;index out of bounds: the len is &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; but the index is &lt;span style=&#34;color:#ae81ff&#34;&gt;99&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;note: run with &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;RUST_BACKTRACE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;1&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt; environment variable to display a backtrace&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;index out of bouns: &amp;hellip; はエラーの原因を示しており，その下のnote:に注釈が書かれています．ここでは，RUST_BACKTRACE環境変数をセットしており，バックトレースを得られることが分かります．バックトレースは現時点までに呼び出された全関数の一覧です．ポイントは，先頭からスタートして自分のファイルを見つけるまで読んでいきます．そこが問題発生源です．そこから下は自分のコードを呼び出しているコードです．バックトレースを出力するには注釈行にもあるようにRUST_BACKTRACE=X(Xは0以外)をセットします．&lt;/p&gt;</description>
    </item>
    <item>
      <title>10章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust10/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust10/</guid>
      <description>&lt;h1 id=&#34;10章-ジェネリック型トレイトライフタイム&#34;&gt;10章 ジェネリック型，トレイト，ライフタイム&lt;a class=&#34;anchor&#34; href=&#34;#10%e7%ab%a0-%e3%82%b8%e3%82%a7%e3%83%8d%e3%83%aa%e3%83%83%e3%82%af%e5%9e%8b%e3%83%88%e3%83%ac%e3%82%a4%e3%83%88%e3%83%a9%e3%82%a4%e3%83%95%e3%82%bf%e3%82%a4%e3%83%a0&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>11章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust11/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust11/</guid>
      <description>&lt;h1 id=&#34;11章-自動テスト&#34;&gt;11章 自動テスト&lt;a class=&#34;anchor&#34; href=&#34;#11%e7%ab%a0-%e8%87%aa%e5%8b%95%e3%83%86%e3%82%b9%e3%83%88&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>12章</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust12/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust12/</guid>
      <description>&lt;h1 id=&#34;12章-ioコマンドライン&#34;&gt;12章 I/Oコマンドライン&lt;a class=&#34;anchor&#34; href=&#34;#12%e7%ab%a0-io%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>Resultについて</title>
      <link>https://wiki.yut4k.com/docs/rust_study/rust_result/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/rust_study/rust_result/</guid>
      <description>&lt;h1 id=&#34;result型についての補足&#34;&gt;Result型についての補足&lt;a class=&#34;anchor&#34; href=&#34;#result%e5%9e%8b%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e8%a3%9c%e8%b6%b3&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;9章でガッツリ出てくるResult型についての補足です．重複している内容もありますが，理解の踏み台となればうれしいです．&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-result型とは&#34;&gt;1. Result型とは&lt;a class=&#34;anchor&#34; href=&#34;#1-result%e5%9e%8b%e3%81%a8%e3%81%af&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Rust標準ライブラリに用意されているOption型の列挙子です．処理の成否を判定するもので，何らかの処理が成功したらOk,失敗したらErrを返すことが慣例となっています．Resultの定義は以下の通りです．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;enum&lt;/span&gt; Result&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;T, E&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Ok(T),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Err(E),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;成否を表現すること自体はbool型を管理してチェックしても不都合はないですが，成功時，失敗時それぞれにおける処理を付随して書くことができます．また，Result型を用いることはエラー処理を強制させることにもつながっています．Result型を指定すると，戻り値の指定をさぼったときにコンパイラに怒られます．例外処置をしていなくても通してしまう言語と比較するとその辺の安全性は高いものとなっています．&lt;/p&gt;&#xA;&lt;h2 id=&#34;2-resultを使ってみる&#34;&gt;2. Resultを使ってみる&lt;a class=&#34;anchor&#34; href=&#34;#2-result%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;一番ポピュラーな表現はmatch式を使って処理する方法です(?)．以下のコード例を見てみましょう．File::openはResult型を返すライブラリです．厳密にいうと，Result&amp;lt;File, std::io::Error&amp;gt;となっています．ファイルオープンが成功した場合と失敗した場合で処理を別々に実装しています．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-rust&#34; data-lang=&#34;rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; std::fs::File;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; File::open(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hello.txt&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;match&lt;/span&gt; result {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        Ok(file) &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ファイルを開けました&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        Err(error) &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ファイルを開けません: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{:?}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, error);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実行結果は以下のようになっています．今，プロジェクトカーゴ内にhello.txtが存在していないので，resultにはErr列挙子が返されます．Err内はio::Errorなので，その中身がprintされているというわけですね．&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;andorssi@Jre:~/rusting/hello_cargo$ cargo run&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   Compiling hello_cargo v0.1.0 &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;/home/andorssi/rusting/hello_cargo&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Finished &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;dev&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt; profile &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;unoptimized + debuginfo&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; target&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; in 1.02s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     Running &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;target/debug/hello_cargo&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ファイルを開けません: Os &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; code: 2, kind: NotFound, message: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;No such file or directory&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;3-unwrapとexpectを用いて記述を省略する&#34;&gt;3. unwrapとexpectを用いて記述を省略する&lt;a class=&#34;anchor&#34; href=&#34;#3-unwrap%e3%81%a8expect%e3%82%92%e7%94%a8%e3%81%84%e3%81%a6%e8%a8%98%e8%bf%b0%e3%82%92%e7%9c%81%e7%95%a5%e3%81%99%e3%82%8b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;毎回match式を用いてエラーハンドリングを行ってももちろん良いのですが，面倒なときはメソッドを用いましょう．まずは，unwrapメソッドです．unwrapメソッドを使うと，成功したらOkを返し，失敗したらErrを返すという処理を担います．コード例を見ましょう．先ほどのファイルオープンはなんと1行で表現できてしまいます．&lt;/p&gt;</description>
    </item>
    <item>
      <title>FDの調整</title>
      <link>https://wiki.yut4k.com/docs/bicycle/fd_adjust/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/bicycle/fd_adjust/</guid>
      <description>&lt;h1 id=&#34;fdインナー交調整について&#34;&gt;FDインナー交・調整について&lt;a class=&#34;anchor&#34; href=&#34;#fd%e3%82%a4%e3%83%b3%e3%83%8a%e3%83%bc%e4%ba%a4%e8%aa%bf%e6%95%b4%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;ココでは，FD(フロントディレイラー)のワイヤーを交換したときの調整方法についてまとめる．基本的にはフロントダブルのロードバイクを想定しているが，フロントトリプルのクロスバイクについても後述するつもり．&lt;/p&gt;&#xA;&lt;h2 id=&#34;ざっくり手順フロントダブル&#34;&gt;ざっくり手順(フロントダブル)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%96%e3%81%a3%e3%81%8f%e3%82%8a%e6%89%8b%e9%a0%86%e3%83%95%e3%83%ad%e3%83%b3%e3%83%88%e3%83%80%e3%83%96%e3%83%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;(0. インナーワイヤーをガイドに沿って通してFDにかしめるところまで行ったものとする)&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;インナー側ボルトをしめる(内側プレートが内側チェーンリングに乗るくらい&amp;hellip;？)&lt;/li&gt;&#xA;&lt;li&gt;ワイヤーを引っ張りながらかしめる(引っ張りすぎて張りが強くなってしまう可能性もあるが，いったん&amp;hellip;)&lt;/li&gt;&#xA;&lt;li&gt;インナー側ボルトをゆるめる(&lt;strong&gt;RDは一番ロー&lt;/strong&gt;にいれておき，チェーンがFD内側プレートこ擦らない程度まで)&lt;/li&gt;&#xA;&lt;li&gt;アウターに変速してみる&#xA;&lt;ol&gt;&#xA;&lt;li&gt;そもそも張りがゆるすぎてあがらないなら，もういっかいやり直す&lt;/li&gt;&#xA;&lt;li&gt;ワイヤーの張りは&lt;strong&gt;トリムの可動具合&lt;/strong&gt;で確認する&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;アウターの可動域はRD側をハイ側にした時にすらないように&lt;/li&gt;&#xA;&lt;li&gt;STIレバーをさらにアウター側に入れようとしたときに，FDが動く場合はワイヤーがゆるい&lt;br&gt;&#xA;-&amp;gt; アジャスターで調整してみる(インナーに落としてから回すとやりやすい)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;ざっくり手順フロントトリプル&#34;&gt;ざっくり手順(フロントトリプル)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%96%e3%81%a3%e3%81%8f%e3%82%8a%e6%89%8b%e9%a0%86%e3%83%95%e3%83%ad%e3%83%b3%e3%83%88%e3%83%88%e3%83%aa%e3%83%97%e3%83%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;インナーローで可動域確認&lt;/li&gt;&#xA;&lt;li&gt;RDは最ハイにしておく&lt;/li&gt;&#xA;&lt;li&gt;FD真ん中にしてワイヤー張り具合確認&#xA;&lt;ol&gt;&#xA;&lt;li&gt;外プレートにあたるなら，緩すぎ&lt;/li&gt;&#xA;&lt;li&gt;内プレートにあたるなら，張りすぎ&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;アウターハイで可動域確認&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;フロントダブルに比べると難易度は低いという印象である．&lt;/p&gt;&#xA;&lt;h2 id=&#34;メモ程度のまとめ発展途上&#34;&gt;メモ程度のまとめ(発展途上)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%a1%e3%83%a2%e7%a8%8b%e5%ba%a6%e3%81%ae%e3%81%be%e3%81%a8%e3%82%81%e7%99%ba%e5%b1%95%e9%80%94%e4%b8%8a&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;STIレバー側のワイヤーを確認する．タイコがしっかりハマっているか，ワイヤーがガイド上に沿っているか．&lt;/li&gt;&#xA;&lt;li&gt;FDによってワイヤーのかしめ方が特殊な場合がある(最初に確認しておく)．&lt;/li&gt;&#xA;&lt;li&gt;ワイヤーの貼り具合はトリムの動きで確認．&lt;/li&gt;&#xA;&lt;li&gt;アウター側でさらにSTIレバーでワイヤーを張ろうとしたときにFDが動かないこと(動くようなら張りが弱い)．&lt;/li&gt;&#xA;&lt;li&gt;ボルトをいじったときにFD可動域が変わらないときはワイヤーが張りすぎの可能性．&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>アクセスログ管理</title>
      <link>https://wiki.yut4k.com/docs/secret/access-log/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/secret/access-log/</guid>
      <description>&lt;h1 id=&#34;アクセスログ管理&#34;&gt;アクセスログ管理&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%83%ad%e3%82%b0%e7%ae%a1%e7%90%86&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.yut4k.com/docs/secret/&#34;&gt;秘密に戻る&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;さらなる秘密を知るためのパスワード&#34;&gt;さらなる秘密を知るためのパスワード&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%95%e3%82%89%e3%81%aa%e3%82%8b%e7%a7%98%e5%af%86%e3%82%92%e7%9f%a5%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&#xA;  &lt;label&gt;入力せよ&lt;/label&gt;&lt;br&gt;&#xA;  &lt;input type=&#34;password&#34; id=&#34;password&#34; required&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;button id=&#34;reload-logs&#34;&gt;ログを更新&lt;/button&gt;&lt;/p&gt;&#xA;&lt;p id=&#34;access-count&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;アクセス数グラフ&#34;&gt;アクセス数グラフ&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e6%95%b0%e3%82%b0%e3%83%a9%e3%83%95&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;canvas id=&#34;daily-access-chart&#34; width=&#34;800&#34; height=&#34;300&#34;&gt;&lt;/canvas&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;アクセスページランキング&#34;&gt;アクセスページランキング&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%a9%e3%83%b3%e3%82%ad%e3%83%b3%e3%82%b0&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table border=&#34;1&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th&gt;順位&lt;/th&gt;&#xA;      &lt;th&gt;ページ&lt;/th&gt;&#xA;      &lt;th&gt;アクセス数&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody id=&#34;page-ranking-body&#34;&gt;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;ログ一覧&#34;&gt;ログ一覧&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%ad%e3%82%b0%e4%b8%80%e8%a6%a7&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table border=&#34;1&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th&gt;日時&lt;/th&gt;&#xA;      &lt;th&gt;ページ&lt;/th&gt;&#xA;      &lt;th&gt;操作&lt;/th&gt;&#xA;      &lt;th&gt;IP&lt;/th&gt;&#xA;      &lt;th&gt;国&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody id=&#34;access-log-body&#34;&gt;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;script&gt;&#xA;const passwordInput =&#xA;  document.getElementById(&#34;password&#34;);&#xA;&#xA;async function loadAccessLogs() {&#xA;  const logBody =&#xA;    document.getElementById(&#34;access-log-body&#34;);&#xA;&#xA;  const count =&#xA;    document.getElementById(&#34;access-count&#34;);&#xA;&#xA;  logBody.innerHTML =&#xA;    &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;読み込み中...&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;&#xA;  const formData =&#xA;    new FormData();&#xA;&#xA;  formData.append(&#xA;    &#34;password&#34;,&#xA;    passwordInput.value&#xA;  );&#xA;&#xA;  try {&#xA;    const response =&#xA;      await fetch(&#34;/list-access-logs&#34;, {&#xA;        method: &#34;POST&#34;,&#xA;        body: formData,&#xA;      });&#xA;&#xA;    if (!response.ok) {&#xA;      const text =&#xA;        await response.text();&#xA;&#xA;      logBody.innerHTML =&#xA;        &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;ログ取得失敗: &#39; +&#xA;        text +&#xA;        &#39;&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;&#xA;      return;&#xA;    }&#xA;&#xA;    const result = await response.json();&#xA;    renderDailyChart(result.logs);&#xA;    renderPageRanking(result.logs);&#xA;&#xA;    count.textContent =&#xA;      &#34;総アクセスログ数: &#34; +&#xA;      result.total;&#xA;&#xA;    if (result.logs.length === 0) {&#xA;      logBody.innerHTML =&#xA;        &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;ログはありません．&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;      return;&#xA;    }&#xA;&#xA;    logBody.innerHTML = &#34;&#34;;&#xA;&#xA;    for (const log of result.logs) {&#xA;      const tr =&#xA;        document.createElement(&#34;tr&#34;);&#xA;&#xA;      const tdTime =&#xA;        document.createElement(&#34;td&#34;);&#xA;      tdTime.textContent =&#xA;        new Date(log.time)&#xA;          .toLocaleString(&#34;ja-JP&#34;);&#xA;&#xA;      const tdPath =&#xA;        document.createElement(&#34;td&#34;);&#xA;      tdPath.textContent =&#xA;        log.path;&#xA;&#xA;      const tdAction =&#xA;        document.createElement(&#34;td&#34;);&#xA;      tdAction.textContent =&#xA;        log.action;&#xA;&#xA;      const tdIp =&#xA;        document.createElement(&#34;td&#34;);&#xA;      tdIp.textContent =&#xA;        log.ip;&#xA;&#xA;      const tdCountry =&#xA;        document.createElement(&#34;td&#34;);&#xA;      tdCountry.textContent =&#xA;        log.country;&#xA;&#xA;      tr.appendChild(tdTime);&#xA;      tr.appendChild(tdPath);&#xA;      tr.appendChild(tdAction);&#xA;      tr.appendChild(tdIp);&#xA;      tr.appendChild(tdCountry);&#xA;&#xA;      logBody.appendChild(tr);&#xA;    }&#xA;  } catch (error) {&#xA;    logBody.innerHTML =&#xA;      &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;通信エラー: &#39; +&#xA;      error.message +&#xA;      &#39;&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;  }&#xA;}&#xA;&#xA;function renderDailyChart(logs) {&#xA;  const counts = {};&#xA;&#xA;  for (const log of logs) {&#xA;    const date = new Date(log.time);&#xA;    const key = date.toLocaleDateString(&#34;ja-JP&#34;);&#xA;    counts[key] = (counts[key] || 0) + 1;&#xA;  }&#xA;&#xA;  const labels = Object.keys(counts).reverse();&#xA;  const values = labels.map((label) =&gt; counts[label]);&#xA;&#xA;  const canvas = document.getElementById(&#34;daily-access-chart&#34;);&#xA;  const ctx = canvas.getContext(&#34;2d&#34;);&#xA;&#xA;  ctx.clearRect(0, 0, canvas.width, canvas.height);&#xA;&#xA;  if (labels.length === 0) {&#xA;    ctx.fillText(&#34;データがありません&#34;, 20, 30);&#xA;    return;&#xA;  }&#xA;&#xA;  const padding = 40;&#xA;  const chartWidth = canvas.width - padding * 2;&#xA;  const chartHeight = canvas.height - padding * 2;&#xA;  const maxValue = Math.max(...values);&#xA;&#xA;  const barWidth = chartWidth / labels.length * 0.7;&#xA;  const gap = chartWidth / labels.length * 0.3;&#xA;&#xA;  ctx.beginPath();&#xA;  ctx.moveTo(padding, padding);&#xA;  ctx.lineTo(padding, canvas.height - padding);&#xA;  ctx.lineTo(canvas.width - padding, canvas.height - padding);&#xA;  ctx.stroke();&#xA;&#xA;  for (let i = 0; i &lt; labels.length; i++) {&#xA;    const barHeight = values[i] / maxValue * chartHeight;&#xA;    const x = padding + i * (barWidth + gap) + gap / 2;&#xA;    const y = canvas.height - padding - barHeight;&#xA;&#xA;    ctx.fillRect(x, y, barWidth, barHeight);&#xA;&#xA;    ctx.fillText(values[i], x, y - 5);&#xA;    ctx.save();&#xA;    ctx.translate(x, canvas.height - padding + 15);&#xA;    ctx.rotate(-Math.PI / 6);&#xA;    ctx.fillText(labels[i], 0, 0);&#xA;    ctx.restore();&#xA;  }&#xA;}&#xA;&#xA;function renderPageRanking(logs) {&#xA;  const counts = {};&#xA;&#xA;  for (const log of logs) {&#xA;    const path = log.path || &#34;/&#34;;&#xA;    counts[path] = (counts[path] || 0) + 1;&#xA;  }&#xA;&#xA;  const ranking = Object.entries(counts)&#xA;    .sort((a, b) =&gt; b[1] - a[1]);&#xA;&#xA;  const tbody = document.getElementById(&#34;page-ranking-body&#34;);&#xA;  tbody.innerHTML = &#34;&#34;;&#xA;&#xA;  if (ranking.length === 0) {&#xA;    tbody.innerHTML =&#xA;      &#39;&lt;tr&gt;&lt;td colspan=&#34;3&#34;&gt;データがありません．&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;    return;&#xA;  }&#xA;&#xA;  ranking.forEach(([path, count], index) =&gt; {&#xA;    const tr = document.createElement(&#34;tr&#34;);&#xA;&#xA;    const tdRank = document.createElement(&#34;td&#34;);&#xA;    tdRank.textContent = index + 1;&#xA;&#xA;    const tdPath = document.createElement(&#34;td&#34;);&#xA;    tdPath.textContent = path;&#xA;&#xA;    const tdCount = document.createElement(&#34;td&#34;);&#xA;    tdCount.textContent = count;&#xA;&#xA;    tr.appendChild(tdRank);&#xA;    tr.appendChild(tdPath);&#xA;    tr.appendChild(tdCount);&#xA;&#xA;    tbody.appendChild(tr);&#xA;  });&#xA;}&#xA;&#xA;document&#xA;  .getElementById(&#34;reload-logs&#34;)&#xA;  .addEventListener(&#34;click&#34;, loadAccessLogs);&#xA;&lt;/script&gt;</description>
    </item>
    <item>
      <title>このWikiについて</title>
      <link>https://wiki.yut4k.com/docs/basic/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/basic/about/</guid>
      <description>&lt;h1 id=&#34;このwikiについて&#34;&gt;このWikiについて&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%93%e3%81%aewiki%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;管理人が好き勝手やるWikiです．しばらくの間は手探り状態かと思いますが，気にしないでください．&lt;/p&gt;</description>
    </item>
    <item>
      <title>つぶやき投稿</title>
      <link>https://wiki.yut4k.com/docs/secret/post/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/secret/post/</guid>
      <description>&lt;h1 id=&#34;つぶやき投稿&#34;&gt;つぶやき投稿&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%a4%e3%81%b6%e3%82%84%e3%81%8d%e6%8a%95%e7%a8%bf&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.yut4k.com/docs/secret/&#34;&gt;秘密に戻る&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;ツイート権限を得るにはパスワードを入力してください&#34;&gt;ツイート権限を得るにはパスワードを入力してください&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%84%e3%82%a4%e3%83%bc%e3%83%88%e6%a8%a9%e9%99%90%e3%82%92%e5%be%97%e3%82%8b%e3%81%ab%e3%81%af%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89%e3%82%92%e5%85%a5%e5%8a%9b%e3%81%97%e3%81%a6%e3%81%8f%e3%81%a0%e3%81%95%e3%81%84&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&#xA;  &lt;label&gt;入力せよ&lt;/label&gt;&lt;br&gt;&#xA;  &lt;input type=&#34;password&#34; id=&#34;password&#34; required&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;  &lt;label&gt;本文&lt;/label&gt;&lt;br&gt;&#xA;  &lt;textarea id=&#34;message&#34; maxlength=&#34;280&#34; rows=&#34;5&#34; style=&#34;width: 100%;&#34;&gt;&lt;/textarea&gt;&#xA;&lt;/p&gt;&#xA;&lt;p id=&#34;char-count&#34;&gt;0 / 280&lt;/p&gt;&#xA;&lt;p&gt;&#xA;  &lt;label&gt;画像&lt;/label&gt;&lt;br&gt;&#xA;  &lt;input type=&#34;file&#34; id=&#34;image&#34; accept=&#34;image/*&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;button id=&#34;post-button&#34;&gt;投稿&lt;/button&gt;&lt;/p&gt;&#xA;&lt;p id=&#34;post-result&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;投稿一覧&#34;&gt;投稿一覧&lt;a class=&#34;anchor&#34; href=&#34;#%e6%8a%95%e7%a8%bf%e4%b8%80%e8%a6%a7&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;button id=&#34;reload-messages&#34;&gt;一覧を更新&lt;/button&gt;&lt;/p&gt;&#xA;&lt;div id=&#34;message-list&#34;&gt;&lt;/div&gt;&#xA;&lt;script&gt;&#xA;document.addEventListener(&#34;DOMContentLoaded&#34;, function () {&#xA;&#xA;  // 要素取得&#xA;  const passwordInput = document.getElementById(&#34;password&#34;);&#xA;  const messageInput = document.getElementById(&#34;message&#34;);&#xA;  const imageInput = document.getElementById(&#34;image&#34;);&#xA;  const postButton = document.getElementById(&#34;post-button&#34;);&#xA;  const postResult = document.getElementById(&#34;post-result&#34;);&#xA;  const charCount = document.getElementById(&#34;char-count&#34;);&#xA;  const messageList = document.getElementById(&#34;message-list&#34;);&#xA;  const reloadMessagesButton = document.getElementById(&#34;reload-messages&#34;);&#xA;&#xA;  // 存在確認&#xA;  if (&#xA;    !passwordInput ||&#xA;    !messageInput ||&#xA;    !imageInput ||&#xA;    !postButton ||&#xA;    !postResult ||&#xA;    !charCount ||&#xA;    !messageList ||&#xA;    !reloadMessagesButton&#xA;  ) {&#xA;    alert(&#34;必要なHTML要素が見つかりません&#34;);&#xA;    return;&#xA;  }&#xA;&#xA;  // 文字数&#xA;  messageInput.addEventListener(&#xA;    &#34;input&#34;,&#xA;    function () {&#xA;      charCount.textContent =&#xA;        messageInput.value.length +&#xA;        &#34; / 280&#34;;&#xA;    }&#xA;  );&#xA;&#xA;  // ===== 投稿 =====&#xA;&#xA;  postButton.addEventListener(&#xA;    &#34;click&#34;,&#xA;    async function () {&#xA;&#xA;      const formData =&#xA;        new FormData();&#xA;&#xA;      formData.append(&#xA;        &#34;password&#34;,&#xA;        passwordInput.value&#xA;      );&#xA;&#xA;      formData.append(&#xA;        &#34;text&#34;,&#xA;        messageInput.value&#xA;      );&#xA;&#xA;      if (&#xA;        imageInput.files.length &gt; 0&#xA;      ) {&#xA;        formData.append(&#xA;          &#34;image&#34;,&#xA;          imageInput.files[0]&#xA;        );&#xA;      }&#xA;&#xA;      postResult.textContent =&#xA;        &#34;投稿中...&#34;;&#xA;&#xA;      try {&#xA;&#xA;        const response =&#xA;          await fetch(&#xA;            &#34;/post-message&#34;,&#xA;            {&#xA;              method: &#34;POST&#34;,&#xA;              body: formData,&#xA;            }&#xA;          );&#xA;&#xA;        if (!response.ok) {&#xA;&#xA;          const text =&#xA;            await response.text();&#xA;&#xA;          postResult.textContent =&#xA;            &#34;投稿失敗: status=&#34; +&#xA;            response.status +&#xA;            &#34; / &#34; +&#xA;            text;&#xA;&#xA;          return;&#xA;        }&#xA;&#xA;        postResult.textContent =&#xA;          &#34;投稿しました。&#34;;&#xA;&#xA;        messageInput.value = &#34;&#34;;&#xA;&#xA;        imageInput.value = &#34;&#34;;&#xA;&#xA;        charCount.textContent =&#xA;          &#34;0 / 280&#34;;&#xA;&#xA;        await loadMessagesForAdmin();&#xA;&#xA;      } catch (error) {&#xA;&#xA;        postResult.textContent =&#xA;          &#34;通信エラー: &#34; +&#xA;          error.message;&#xA;      }&#xA;    }&#xA;  );&#xA;&#xA;  // ===== 一覧読み込み =====&#xA;&#xA;  async function loadMessagesForAdmin() {&#xA;&#xA;    messageList.textContent =&#xA;      &#34;読み込み中...&#34;;&#xA;&#xA;    try {&#xA;&#xA;      const response =&#xA;        await fetch(&#xA;          &#34;/list-message&#34;&#xA;        );&#xA;&#xA;      if (!response.ok) {&#xA;&#xA;        const text =&#xA;          await response.text();&#xA;&#xA;        messageList.textContent =&#xA;          &#34;読み込み失敗: status=&#34; +&#xA;          response.status +&#xA;          &#34; / &#34; +&#xA;          text;&#xA;&#xA;        return;&#xA;      }&#xA;&#xA;      const messages =&#xA;        await response.json();&#xA;&#xA;      if (&#xA;        !Array.isArray(messages)&#xA;      ) {&#xA;&#xA;        messageList.textContent =&#xA;          &#34;JSONが配列ではありません&#34;;&#xA;&#xA;        return;&#xA;      }&#xA;&#xA;      if (&#xA;        messages.length === 0&#xA;      ) {&#xA;&#xA;        messageList.textContent =&#xA;          &#34;投稿はありません。&#34;;&#xA;&#xA;        return;&#xA;      }&#xA;&#xA;      messageList.innerHTML = &#34;&#34;;&#xA;&#xA;      for (const msg of messages) {&#xA;&#xA;        const article =&#xA;          document.createElement(&#xA;            &#34;article&#34;&#xA;          );&#xA;&#xA;        article.style.border =&#xA;          &#34;1px solid #ccc&#34;;&#xA;&#xA;        article.style.borderRadius =&#xA;          &#34;8px&#34;;&#xA;&#xA;        article.style.padding =&#xA;          &#34;1rem&#34;;&#xA;&#xA;        article.style.marginBottom =&#xA;          &#34;1rem&#34;;&#xA;&#xA;        // 時刻&#xA;&#xA;        const time =&#xA;          document.createElement(&#xA;            &#34;p&#34;&#xA;          );&#xA;&#xA;        time.textContent =&#xA;          msg.createdAt&#xA;            ? new Date(&#xA;                msg.createdAt&#xA;              ).toLocaleString(&#xA;                &#34;ja-JP&#34;&#xA;              )&#xA;            : &#34;日時なし&#34;;&#xA;&#xA;        time.style.fontSize =&#xA;          &#34;0.9rem&#34;;&#xA;&#xA;        time.style.opacity =&#xA;          &#34;0.7&#34;;&#xA;&#xA;        article.appendChild(time);&#xA;&#xA;        // 本文&#xA;&#xA;        if (msg.text) {&#xA;&#xA;          const text =&#xA;            document.createElement(&#xA;              &#34;p&#34;&#xA;            );&#xA;&#xA;          text.textContent =&#xA;            msg.text;&#xA;&#xA;          text.style.whiteSpace =&#xA;            &#34;pre-wrap&#34;;&#xA;&#xA;          article.appendChild(text);&#xA;        }&#xA;&#xA;        // 画像&#xA;&#xA;        if (msg.imageUrl) {&#xA;&#xA;          const img =&#xA;            document.createElement(&#xA;              &#34;img&#34;&#xA;            );&#xA;&#xA;          img.src =&#xA;            msg.imageUrl;&#xA;&#xA;          img.alt =&#xA;            &#34;投稿画像&#34;;&#xA;&#xA;          img.style.maxWidth =&#xA;            &#34;240px&#34;;&#xA;&#xA;          img.style.display =&#xA;            &#34;block&#34;;&#xA;&#xA;          img.style.marginBottom =&#xA;            &#34;0.5rem&#34;;&#xA;&#xA;          img.style.borderRadius =&#xA;            &#34;8px&#34;;&#xA;&#xA;          article.appendChild(img);&#xA;        }&#xA;&#xA;        // 削除ボタン&#xA;&#xA;        const button =&#xA;          document.createElement(&#xA;            &#34;button&#34;&#xA;          );&#xA;&#xA;        button.textContent =&#xA;          &#34;削除&#34;;&#xA;&#xA;        button.addEventListener(&#xA;          &#34;click&#34;,&#xA;          function () {&#xA;            deleteMessage(&#xA;              msg.id&#xA;            );&#xA;          }&#xA;        );&#xA;&#xA;        article.appendChild(button);&#xA;&#xA;        messageList.appendChild(&#xA;          article&#xA;        );&#xA;      }&#xA;&#xA;    } catch (error) {&#xA;&#xA;      messageList.textContent =&#xA;        &#34;通信エラー: &#34; +&#xA;        error.message;&#xA;    }&#xA;  }&#xA;&#xA;  // ===== 削除 =====&#xA;&#xA;  async function deleteMessage(id) {&#xA;&#xA;    if (&#xA;      !confirm(&#xA;        &#34;この投稿を削除しますか？&#34;&#xA;      )&#xA;    ) {&#xA;      return;&#xA;    }&#xA;&#xA;    const formData =&#xA;      new FormData();&#xA;&#xA;    formData.append(&#xA;      &#34;password&#34;,&#xA;      passwordInput.value&#xA;    );&#xA;&#xA;    formData.append(&#xA;      &#34;id&#34;,&#xA;      id&#xA;    );&#xA;&#xA;    try {&#xA;&#xA;      const response =&#xA;        await fetch(&#xA;          &#34;/delete-message&#34;,&#xA;          {&#xA;            method: &#34;POST&#34;,&#xA;            body: formData,&#xA;          }&#xA;        );&#xA;&#xA;      if (!response.ok) {&#xA;&#xA;        const text =&#xA;          await response.text();&#xA;&#xA;        alert(&#xA;          &#34;削除失敗: &#34; + text&#xA;        );&#xA;&#xA;        return;&#xA;      }&#xA;&#xA;      alert(&#34;削除しました。&#34;);&#xA;&#xA;      await loadMessagesForAdmin();&#xA;&#xA;    } catch (error) {&#xA;&#xA;      alert(&#xA;        &#34;通信エラー: &#34; +&#xA;        error.message&#xA;      );&#xA;    }&#xA;  }&#xA;&#xA;  // ===== 更新ボタン =====&#xA;&#xA;  reloadMessagesButton.addEventListener(&#xA;    &#34;click&#34;,&#xA;    loadMessagesForAdmin&#xA;  );&#xA;&#xA;  // ===== 初回読み込み =====&#xA;&#xA;  loadMessagesForAdmin();&#xA;&#xA;});&#xA;&lt;/script&gt;</description>
    </item>
    <item>
      <title>なぜ人は自転車の空気を入れないのか</title>
      <link>https://wiki.yut4k.com/docs/bicycle/air/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/bicycle/air/</guid>
      <description>&lt;h1 id=&#34;なぜ人は自転車の空気を入れないのか&#34;&gt;なぜ人は自転車の空気を入れないのか&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%aa%e3%81%9c%e4%ba%ba%e3%81%af%e8%87%aa%e8%bb%a2%e8%bb%8a%e3%81%ae%e7%a9%ba%e6%b0%97%e3%82%92%e5%85%a5%e3%82%8c%e3%81%aa%e3%81%84%e3%81%ae%e3%81%8b&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;　一日のうちに多くの方が「自転車がパンクした」と修理にもちこまれる．体感では，パンク修理のうち8割強は空気圧不足によるものである．異物による刺さり傷というのはパンクのあるあるの一つであるが，正直原因としてはレアケースといっても過言ではない(雨の日の翌日を除く)．&lt;/p&gt;&#xA;&lt;h2 id=&#34;空気圧不足が引き起こすこと&#34;&gt;空気圧不足が引き起こすこと&lt;a class=&#34;anchor&#34; href=&#34;#%e7%a9%ba%e6%b0%97%e5%9c%a7%e4%b8%8d%e8%b6%b3%e3%81%8c%e5%bc%95%e3%81%8d%e8%b5%b7%e3%81%93%e3%81%99%e3%81%93%e3%81%a8&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　空気を入れないと何がダメなのかを理解していない人がおおいので，いくつか紹介しようと思う．書き出してみると以下のようなものが考えられる．&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;チューブ摩耗(バルブ折れ)&lt;/li&gt;&#xA;&lt;li&gt;タイヤの側面割れ&lt;/li&gt;&#xA;&lt;li&gt;スピード感の低下(重たい)&lt;/li&gt;&#xA;&lt;li&gt;ホイールへのダメージ&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;　空気圧が低い状態で自転車に乗ると，タイヤの内部でチューブがぐちゃぐちゃに折りたたまれてしまう．具体的には，バルブのみ固定されているためチューブがバルブに寄っていくのである．そうなると，バルブに負荷がかかり，バルブが折れたり，チューブが折りたたまれて変形，パンクを引き起こすのである． &lt;br&gt;&#xA;　自転車に乗っているとき，運転者と車体の重量を考えると地面にかかる力はなかなかに大きいものである．空気圧が低い状態で無理に乗るとタイヤが地面と接触するタイミングにつぶれてしまうのである．そうなると，タイヤの側面がぱっくり割れてしまう．&lt;/p&gt;&#xA;&lt;h2 id=&#34;さいごに&#34;&gt;さいごに&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%95%e3%81%84%e3%81%94%e3%81%ab&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;　多くの人に，空気は遅くても月に一回は入れてくださいと伝えている．数分だけ自分の自転車をメンテナンスする時間を月一でいいから作ってくださいと．適正な空気圧で自転車に乗っていれば，パンクなんてそうそうしないものだ．もちろん，タイヤもチューブもゴムで消耗品なので，いつか交換しなければならない．しかし，多くの人は本来の寿命を空気圧不足のせいで縮めてしまっているため，もったいないと思う．これを読んでいただいた方であれば，空気を入れようと思っていただけたのではないだろうか．&lt;/p&gt;&#xA;&lt;h2 id=&#34;よろしければこちらもどうぞ&#34;&gt;よろしければこちらもどうぞ&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%88%e3%82%8d%e3%81%97%e3%81%91%e3%82%8c%e3%81%b0%e3%81%93%e3%81%a1%e3%82%89%e3%82%82%e3%81%a9%e3%81%86%e3%81%9e&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;空気の入れ方講座 -&amp;gt; 準備中&lt;/p&gt;&#xA;&lt;h2 id=&#34;独り言&#34;&gt;独り言&lt;a class=&#34;anchor&#34; href=&#34;#%e7%8b%ac%e3%82%8a%e8%a8%80&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;イメージしやすいように図解を準備中です．しばらくお待ちください．orz&lt;/p&gt;</description>
    </item>
    <item>
      <title>ファイル置き場</title>
      <link>https://wiki.yut4k.com/docs/secret/files/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/secret/files/</guid>
      <description>&lt;h1 id=&#34;ファイル置き場&#34;&gt;ファイル置き場&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e7%bd%ae%e3%81%8d%e5%a0%b4&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.yut4k.com/docs/secret/&#34;&gt;秘密に戻る&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;さらなる秘密を知るためのパスワード&#34;&gt;さらなる秘密を知るためのパスワード&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%95%e3%82%89%e3%81%aa%e3%82%8b%e7%a7%98%e5%af%86%e3%82%92%e7%9f%a5%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e3%83%91%e3%82%b9%e3%83%af%e3%83%bc%e3%83%89&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;form id=&#34;upload-form&#34;&gt;&#xA;  &lt;p&gt;&#xA;    &lt;label&gt;入力せよ&lt;/label&gt;&lt;br&gt;&#xA;    &lt;input type=&#34;password&#34; name=&#34;password&#34; id=&#34;password&#34; required&gt;&#xA;  &lt;/p&gt;&#xA;&lt;h2 id=&#34;アップロード&#34;&gt;アップロード&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;アップロードは20MB以内 &lt;br&gt;&lt;/p&gt;&#xA;  &lt;p&gt;&#xA;    &lt;label&gt;ファイル&lt;/label&gt;&lt;br&gt;&#xA;    &lt;input type=&#34;file&#34; name=&#34;file&#34; required&gt;&#xA;  &lt;/p&gt;&#xA;  &lt;p&gt;&#xA;    &lt;button type=&#34;submit&#34;&gt;Upload&lt;/button&gt;&#xA;  &lt;/p&gt;&#xA;&lt;/form&gt;&#xA;&lt;p id=&#34;upload-message&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;アップロード済みファイル一覧ダウンロード&#34;&gt;アップロード済みファイル一覧(ダウンロード)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89%e6%b8%88%e3%81%bf%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e4%b8%80%e8%a6%a7%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;button id=&#34;reload-files&#34;&gt;一覧を更新&lt;/button&gt;&lt;/p&gt;&#xA;&lt;table id=&#34;file-table&#34; border=&#34;1&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th&gt;ファイル名&lt;/th&gt;&#xA;      &lt;th&gt;サイズ&lt;/th&gt;&#xA;      &lt;th&gt;アップロード日時&lt;/th&gt;&#xA;      &lt;th&gt;ダウンロード&lt;/th&gt;&#xA;      &lt;th&gt;削除&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody id=&#34;file-table-body&#34;&gt;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;script&gt;&#xA;const passwordInput = document.getElementById(&#34;password&#34;);&#xA;const uploadForm = document.getElementById(&#34;upload-form&#34;);&#xA;const uploadMessage = document.getElementById(&#34;upload-message&#34;);&#xA;const fileTableBody = document.getElementById(&#34;file-table-body&#34;);&#xA;&#xA;uploadForm.addEventListener(&#34;submit&#34;, async function (e) {&#xA;  e.preventDefault();&#xA;&#xA;  const formData = new FormData(uploadForm);&#xA;&#xA;  uploadMessage.textContent = &#34;アップロード中...&#34;;&#xA;&#xA;  try {&#xA;    const response = await fetch(&#34;/upload&#34;, {&#xA;      method: &#34;POST&#34;,&#xA;      body: formData,&#xA;    });&#xA;&#xA;    if (!response.ok) {&#xA;      const text = await response.text();&#xA;      uploadMessage.textContent = &#34;アップロード失敗: &#34; + text;&#xA;      alert(&#34;アップロード失敗: &#34; + text);&#xA;      return;&#xA;    }&#xA;&#xA;    uploadMessage.textContent = &#34;アップロード完了しました．&#34;;&#xA;    alert(&#34;アップロード完了しました．&#34;);&#xA;&#xA;    // パスワードは消さず，ファイル選択だけ消す&#xA;    uploadForm.querySelector(&#39;input[type=&#34;file&#34;]&#39;).value = &#34;&#34;;&#xA;&#xA;    await loadFiles();&#xA;&#xA;  } catch (error) {&#xA;    uploadMessage.textContent = &#34;通信エラーが発生しました: &#34; + error.message;&#xA;    alert(&#34;通信エラーが発生しました: &#34; + error.message);&#xA;  }&#xA;});&#xA;&#xA;async function loadFiles() {&#xA;  fileTableBody.innerHTML =&#xA;    &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;読み込み中...&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;&#xA;  const formData = new FormData();&#xA;  formData.append(&#34;password&#34;, passwordInput.value);&#xA;&#xA;  try {&#xA;    const response = await fetch(&#34;/list-files&#34;, {&#xA;      method: &#34;POST&#34;,&#xA;      body: formData,&#xA;    });&#xA;&#xA;    if (!response.ok) {&#xA;      const text = await response.text();&#xA;      fileTableBody.innerHTML =&#xA;        &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;一覧取得失敗: &#39; + text + &#39;&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;      return;&#xA;    }&#xA;&#xA;    const files = await response.json();&#xA;&#xA;    if (files.length === 0) {&#xA;      fileTableBody.innerHTML =&#xA;        &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;ファイルはありません．&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;      return;&#xA;    }&#xA;&#xA;    fileTableBody.innerHTML = &#34;&#34;;&#xA;&#xA;    for (const file of files) {&#xA;      const tr = document.createElement(&#34;tr&#34;);&#xA;&#xA;      const tdName = document.createElement(&#34;td&#34;);&#xA;      tdName.textContent = file.name;&#xA;&#xA;      const tdSize = document.createElement(&#34;td&#34;);&#xA;      tdSize.textContent = Math.round(file.size / 1024) + &#34; KB&#34;;&#xA;&#xA;      const tdDate = document.createElement(&#34;td&#34;);&#xA;      tdDate.textContent = new Date(file.uploaded).toLocaleString(&#34;ja-JP&#34;);&#xA;&#xA;      const tdDownload = document.createElement(&#34;td&#34;);&#xA;      const downloadButton = document.createElement(&#34;button&#34;);&#xA;      downloadButton.textContent = &#34;ダウンロード&#34;;&#xA;      downloadButton.addEventListener(&#34;click&#34;, function () {&#xA;        downloadFile(file.key, file.name);&#xA;      });&#xA;      tdDownload.appendChild(downloadButton);&#xA;&#xA;      const tdDelete = document.createElement(&#34;td&#34;);&#xA;      const deleteButton = document.createElement(&#34;button&#34;);&#xA;      deleteButton.textContent = &#34;削除&#34;;&#xA;      deleteButton.addEventListener(&#34;click&#34;, function () {&#xA;        deleteFile(file.key);&#xA;      });&#xA;      tdDelete.appendChild(deleteButton);&#xA;&#xA;      tr.appendChild(tdName);&#xA;      tr.appendChild(tdSize);&#xA;      tr.appendChild(tdDate);&#xA;      tr.appendChild(tdDownload);&#xA;      tr.appendChild(tdDelete);&#xA;&#xA;      fileTableBody.appendChild(tr);&#xA;    }&#xA;&#xA;  } catch (error) {&#xA;    fileTableBody.innerHTML =&#xA;      &#39;&lt;tr&gt;&lt;td colspan=&#34;5&#34;&gt;通信エラー: &#39; + error.message + &#39;&lt;/td&gt;&lt;/tr&gt;&#39;;&#xA;  }&#xA;}&#xA;&#xA;async function downloadFile(key, name) {&#xA;  const formData = new FormData();&#xA;  formData.append(&#34;password&#34;, passwordInput.value);&#xA;&#xA;  const response = await fetch(&#34;/download/&#34; + encodeURI(key), {&#xA;    method: &#34;POST&#34;,&#xA;    body: formData,&#xA;  });&#xA;&#xA;  if (!response.ok) {&#xA;    const text = await response.text();&#xA;    alert(&#34;ダウンロード失敗: &#34; + text);&#xA;    return;&#xA;  }&#xA;&#xA;  const blob = await response.blob();&#xA;  const url = URL.createObjectURL(blob);&#xA;&#xA;  const a = document.createElement(&#34;a&#34;);&#xA;  a.href = url;&#xA;  a.download = name;&#xA;  document.body.appendChild(a);&#xA;  a.click();&#xA;  a.remove();&#xA;&#xA;  URL.revokeObjectURL(url);&#xA;}&#xA;&#xA;async function deleteFile(key) {&#xA;  if (!confirm(&#34;削除しますか？&#34;)) {&#xA;    return;&#xA;  }&#xA;&#xA;  const formData = new FormData();&#xA;  formData.append(&#34;password&#34;, passwordInput.value);&#xA;&#xA;  const response = await fetch(&#34;/delete-file/&#34; + encodeURI(key), {&#xA;    method: &#34;POST&#34;,&#xA;    body: formData,&#xA;  });&#xA;&#xA;  if (!response.ok) {&#xA;    const text = await response.text();&#xA;    alert(&#34;削除失敗: &#34; + text);&#xA;    return;&#xA;  }&#xA;&#xA;  alert(&#34;削除しました．&#34;);&#xA;  await loadFiles();&#xA;}&#xA;&#xA;document&#xA;  .getElementById(&#34;reload-files&#34;)&#xA;  .addEventListener(&#34;click&#34;, loadFiles);&#xA;&#xA;&lt;/script&gt;</description>
    </item>
    <item>
      <title>新型ローラーブレーキのはなし</title>
      <link>https://wiki.yut4k.com/docs/bicycle/br-c6000-r/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/bicycle/br-c6000-r/</guid>
      <description>&lt;h1 id=&#34;新型ローラーブレーキのはなし&#34;&gt;新型ローラーブレーキのはなし&lt;a class=&#34;anchor&#34; href=&#34;#%e6%96%b0%e5%9e%8b%e3%83%ad%e3%83%bc%e3%83%a9%e3%83%bc%e3%83%96%e3%83%ac%e3%83%bc%e3%82%ad%e3%81%ae%e3%81%af%e3%81%aa%e3%81%97&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;送迎電動をはじめとする一部車体のローラーブレーキが新型のものになっていることが増えている．放熱フィンがついているので，ユーザからすると良いことなのかもしれないが，修理する側からすると慣れが必要であると感じた．&lt;br&gt;&#xA;後輪を外す際，ブレーキもはずさないとダメであるが，どうやってブレーキを外すのかが曲者である．感覚的には強化ハブのアレと同じ．&lt;/p&gt;&#xA;&lt;h2 id=&#34;ブレーキを外すコツ私感&#34;&gt;ブレーキを外すコツ(私感)&lt;a class=&#34;anchor&#34; href=&#34;#%e3%83%96%e3%83%ac%e3%83%bc%e3%82%ad%e3%82%92%e5%a4%96%e3%81%99%e3%82%b3%e3%83%84%e7%a7%81%e6%84%9f&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;一番だめなのは，下図②のナットをマイナス等でクイクイとつまむこと(普通に変形して詰む)&lt;/li&gt;&#xA;&lt;li&gt;①を先に外してからやるのがコツ&lt;/li&gt;&#xA;&lt;li&gt;また，左ブレーキレバーにアジャスターがついていることがあって，それをゆるめてワイヤーにゆとりをもたせると良い&lt;/li&gt;&#xA;&lt;li&gt;どうしてもワイヤーを上記手法ではずせないなら，ワイヤーを切ってしまって通しなおした方が早いし安全&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;info-image&#34;&gt;&#xA;    &lt;img src=&#34;https://wiki.yut4k.com/figure/BR-C6000-R/interM.png&#34; alt=&#34;ローラーブレーキ画像&#34;&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;戻すコツ&#34;&gt;戻すコツ&lt;a class=&#34;anchor&#34; href=&#34;#%e6%88%bb%e3%81%99%e3%82%b3%e3%83%84&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ブレーキとフレームの固定ナットは開放し，ローラーブレーキが動く状態でワイヤーをかけると良いらしい(先人の教え&amp;hellip;？)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;その他補足&#34;&gt;その他補足&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%9d%e3%81%ae%e4%bb%96%e8%a3%9c%e8%b6%b3&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;パーツによって，フィンがたわんでしまいシャンシャン音鳴りしてしまうことがある．これは，一度試乗して分かるというものよりは，数日乗ってブレーキをかけてみないと分からないらしい．あまりにもひどい場合は本体交換が必要．実例だと，グリスをさして応急処置をしたが，根本的な解決は先述した通りである． &lt;br&gt;&lt;/li&gt;&#xA;&lt;li&gt;ワイヤーの長さは強化ハブの長さをはかるあの工具を使う(?)&lt;/li&gt;&#xA;&lt;li&gt;一般的に初期点検やワイヤー交をしたときはアジャスターは使いたくないのだが，このブレーキが搭載されている場合は左ブレーキレバーのアジャスターは全開近く開放しておいた方が良いと思う．ブレーキを外すときにアジャスターを緩めれば外しやすくなるからだ．&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;参考資料&#34;&gt;参考資料&lt;a class=&#34;anchor&#34; href=&#34;#%e5%8f%82%e8%80%83%e8%b3%87%e6%96%99&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jpn.faq.panasonic.com/euf/assets/images/panasonic/answer_images/es/cycle/%E3%80%90%E6%8A%80%E8%A1%93%E7%9B%B8%E8%AB%87%E3%80%9122%E6%94%BE%E7%86%B1%E3%83%95%E3%82%A3%E3%83%B3%E4%BB%98%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%83%96%E3%83%AC%E3%83%BC%E3%82%AD%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%ABver1.0.pdf&#34;&gt;パナソニックメンテナンスマニュアル&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>自己紹介</title>
      <link>https://wiki.yut4k.com/docs/basic/myself/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/basic/myself/</guid>
      <description>&lt;h1 id=&#34;自己紹介&#34;&gt;自己紹介&lt;a class=&#34;anchor&#34; href=&#34;#%e8%87%aa%e5%b7%b1%e7%b4%b9%e4%bb%8b&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h3 id=&#34;高橋-優作yusaku-takahashi&#34;&gt;高橋 優作(Yusaku TAKAHASHI)&lt;a class=&#34;anchor&#34; href=&#34;#%e9%ab%98%e6%a9%8b-%e5%84%aa%e4%bd%9cyusaku-takahashi&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h2 id=&#34;略歴&#34;&gt;略歴&lt;a class=&#34;anchor&#34; href=&#34;#%e7%95%a5%e6%ad%b4&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;年&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2022年3月&lt;/td&gt;&#xA;          &lt;td&gt;桐蔭学園高等学校 卒業&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2022年4月&lt;/td&gt;&#xA;          &lt;td&gt;成蹊大学 理工学部 理工学科 コンピュータ科学専攻 入学&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2026年3月&lt;/td&gt;&#xA;          &lt;td&gt;成蹊大学 理工学部 理工学科 コンピュータ科学専攻 卒業&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2026年4月&lt;/td&gt;&#xA;          &lt;td&gt;成蹊大学大学院 理工学研究科 コンピュータ科学専攻 入学&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;職歴&#34;&gt;職歴&lt;a class=&#34;anchor&#34; href=&#34;#%e8%81%b7%e6%ad%b4&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;年&lt;/th&gt;&#xA;          &lt;th&gt;内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2022年4月&lt;/td&gt;&#xA;          &lt;td&gt;サイクルベースあさひ調布店 入社&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2026年4月~&lt;/td&gt;&#xA;          &lt;td&gt;サイクルベースあさひ南蒲田店 所属異動&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;2026年4月~&lt;/td&gt;&#xA;          &lt;td&gt;成蹊大学TAとして授業補助を行う&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;所属研究室&#34;&gt;所属研究室&lt;a class=&#34;anchor&#34; href=&#34;#%e6%89%80%e5%b1%9e%e7%a0%94%e7%a9%b6%e5%ae%a4&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;情報通信ネットワーク研究室(鎌村研)&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;a href=&#34;https://www.kamamu-lab.jp/&#34;&gt;研究室HP：https://www.kamamu-lab.jp/&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>質問・お問い合わせ</title>
      <link>https://wiki.yut4k.com/docs/basic/faq/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.yut4k.com/docs/basic/faq/</guid>
      <description>&lt;h1 id=&#34;質問お問い合わせ&#34;&gt;質問・お問い合わせ&lt;a class=&#34;anchor&#34; href=&#34;#%e8%b3%aa%e5%95%8f%e3%81%8a%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;よくあるご質問&#34;&gt;よくあるご質問&lt;a class=&#34;anchor&#34; href=&#34;#%e3%82%88%e3%81%8f%e3%81%82%e3%82%8b%e3%81%94%e8%b3%aa%e5%95%8f&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;このサイトは何ですか&#34;&gt;このサイトは何ですか？&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%93%e3%81%ae%e3%82%b5%e3%82%a4%e3%83%88%e3%81%af%e4%bd%95%e3%81%a7%e3%81%99%e3%81%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;-個人による研究・記録・ブログをまとめたサイトです．&lt;/p&gt;&#xA;&lt;h3 id=&#34;内容は自由に使えますか&#34;&gt;内容は自由に使えますか？&lt;a class=&#34;anchor&#34; href=&#34;#%e5%86%85%e5%ae%b9%e3%81%af%e8%87%aa%e7%94%b1%e3%81%ab%e4%bd%bf%e3%81%88%e3%81%be%e3%81%99%e3%81%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;-引用は出典を明記すれば可能です．転載は禁止とします．&lt;/p&gt;&#xA;&lt;h3 id=&#34;研究内容はどこまで公開されていますか&#34;&gt;研究内容はどこまで公開されていますか？&lt;a class=&#34;anchor&#34; href=&#34;#%e7%a0%94%e7%a9%b6%e5%86%85%e5%ae%b9%e3%81%af%e3%81%a9%e3%81%93%e3%81%be%e3%81%a7%e5%85%ac%e9%96%8b%e3%81%95%e3%82%8c%e3%81%a6%e3%81%84%e3%81%be%e3%81%99%e3%81%8b&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;-公開可能な範囲のみ掲載しています．&lt;/p&gt;&#xA;&lt;h2 id=&#34;お問い合わせ&#34;&gt;お問い合わせ&lt;a class=&#34;anchor&#34; href=&#34;#%e3%81%8a%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;何かご不明点・ご指摘があれば以下のメールアドレスまでご連絡ください． &lt;br&gt;&#xA;&lt;strong&gt;email: contact2andorssi?yut4k.com&lt;/strong&gt; &lt;br&gt;&#xA;(?部分を@に変更してください)&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
