<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on iffalse-true devlog</title><link>https://iffalse-true.pages.dev/post/</link><description>Recent content in Posts on iffalse-true devlog</description><generator>Hugo -- gohugo.io</generator><language>ja-JP</language><lastBuildDate>Mon, 17 Jul 2023 15:02:00 +0900</lastBuildDate><atom:link href="https://iffalse-true.pages.dev/post/index.xml" rel="self" type="application/rss+xml"/><item><title>DockerでHomebridgeを動かす</title><link>https://iffalse-true.pages.dev/post/raspberrypi_memo_003/</link><pubDate>Mon, 17 Jul 2023 15:02:00 +0900</pubDate><guid>https://iffalse-true.pages.dev/post/raspberrypi_memo_003/</guid><description>&lt;h2 id="はじめに"&gt;はじめに
&lt;/h2&gt;&lt;p&gt;Raspberrypi 4B 8GBのリソースが余りまくっているので、Homebridgeを動かしてSwitctBotHubMiniと連携させつつ、moOdeやVolumioも簡易操作できるようにしたい。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;ざっくり説明するとHomebridgeは、HomeKitに対応していないデバイスをプラグインなどで対応化させ、スイッチなどによる操作で制御できるようにするものです。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="1-dockerインストール"&gt;1. Dockerインストール
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -sSL https://get.docker.com &lt;span class="p"&gt;|&lt;/span&gt; sh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;現在のユーザ（管理者）をDockerグループに追加&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo usermod -aG docker &lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;docker-composeをインストールして再起動する&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt -y install docker-compose
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo reboot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="2-homebridge用のディレクトリを作り設定ファイルを作成する"&gt;2. Homebridge用のディレクトリを作り、設定ファイルを作成する
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir ~/homebridge
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/homebridge&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;docker-compose.ymlを作成&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi docker-compose.yml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;div class="code-block-filename"&gt;docker-compose.yml&lt;/div&gt;
 
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-docker-compose.yml" data-lang="docker-compose.yml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;homebridge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;oznu/homebridge:latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;always&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;network_mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;host&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;PGID=1000&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;PUID=1000&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;HOMEBRIDGE_CONFIG_UI=1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;HOMEBRIDGE_CONFIG_UI_PORT=8581&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;TZ=Asia/Tokyo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./homebridge:/homebridge&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;logging&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;json-file&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;max-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;10mb&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;max-file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;&amp;#34;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;config.jsonを作成&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi homebridge/config.json&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;div class="code-block-filename"&gt;homebridge/config.json&lt;/div&gt;
 
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-homebridge/config.json" data-lang="homebridge/config.json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;bridge&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Homebridge pi&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;username&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0E:ED:B2:22:76:15&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;port&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;51826&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;pin&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;123-45-678&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;#8桁のpin番号、iPhoneなどから扱う番号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;bind&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;eth0&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;#LANケーブル使用時&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;wlan0&amp;#34;&lt;/span&gt; &lt;span class="err"&gt;#Wi-Fi使用時&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;platforms&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Config&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;port&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8581&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;platform&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;config&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SwitchBot&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;credentials&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;スイッチボット用トークン貼り付け&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;secret&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;スイッチボットシークレットコード貼り付け&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;notice&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Keep your Token &amp;amp; Secret a secret!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;_bridge&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;username&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0E:24:BD:FE:C1:43&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;port&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;56709&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;platform&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;SwitchBot&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;accessories&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;accessory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;CMD&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Volumio&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;on_cmd&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;curl volumio.local/api/v1/commands/?cmd=play&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;off_cmd&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;curl volumio.local/api/v1/commands/?cmd=pause&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;_bridge&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;username&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0E:82:E6:B0:F4:1E&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;port&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;38019&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;accessory&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;CMD&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;moOde&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;on_cmd&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;curl http://moode.local/command/?cmd=play&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;off_cmd&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;curl http://moode.local/command/?cmd=pause&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;_bridge&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;username&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0E:82:E6:B0:F4:1F&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;port&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;38020&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;スイッチボット用トークンなどについてはググってくださいバージョンによって徐々にやり方が変わったりしているため……。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Homebridge起動&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker-compose up -d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="3-homebridge画面"&gt;3. Homebridge画面
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ホスト名.local:8581　でPCからアクセスする&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;うちの環境の場合moOdeをいれてホスト名をmoodeにしてあるのでhttp://moode.local:8581となる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;最初にユーザ名、パスワードを設定する&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ログインし直し、プラグインを入れる&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Homebridge SwitchBot&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Homebridge Cmd&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;メイン画面にHomebridgeターミナルを表示させておくと、Node.jsのバージョンアップとかが簡単に行えて便利&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-filename"&gt;Homebridge上ターミナル&lt;/div&gt;
 
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hb-service update-node&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="まとめ"&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;img alt="Homebridge" class="gallery-image" data-flex-basis="491px" data-flex-grow="204" height="917" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://iffalse-true.pages.dev/post/raspberrypi_memo_003/homebridge.png" srcset="https://iffalse-true.pages.dev/post/raspberrypi_memo_003/homebridge_hu_3aa637fa66c9597c.png 800w, https://iffalse-true.pages.dev/post/raspberrypi_memo_003/homebridge_hu_ae5cf232a20ab13a.png 1600w, https://iffalse-true.pages.dev/post/raspberrypi_memo_003/homebridge.png 1877w" width="1877"&gt;&lt;/p&gt;
&lt;p&gt;これで簡単な操作はHomebridge画面のアクセサリやiPhoneなどのホームアプリから可能になりました。&lt;/p&gt;
&lt;p&gt;なにかおかしいと思ったら端末をリブート、プラグイン系・Node.jsのアップデートをしてリブートすると大抵は直ります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;del&gt;それにしても今のテーマだと何のコードか、何のファイルかがわかりにくい……。変えよかな。&lt;/del&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2026/05/24: 変えてある程度カスタマイズしました。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ラズパイで音楽</title><link>https://iffalse-true.pages.dev/post/raspberrypi_memo_002/</link><pubDate>Wed, 12 Jul 2023 17:42:23 +0900</pubDate><guid>https://iffalse-true.pages.dev/post/raspberrypi_memo_002/</guid><description>&lt;h2 id="volumio編記憶曖昧"&gt;Volumio編（記憶曖昧）
&lt;/h2&gt;&lt;h3 id="前提"&gt;前提
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;RaspberryPiを4つ所持&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;4B 8GB（遊び用）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;4B 8GB（moOde用）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Zero WH（Volumio用）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Zero2 W（遊び用, New）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;3つのDACを所持（基本部分は同じ）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;NFJ PCM5102A DAC (hifiberry-dac扱い)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bit Trade One ADRSZDAC(PCM5122A) + ADRPM1801C (hifiberry-dacplus扱い)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pimoroni AUDIO DAC SHIM (LINE-OUT)【PIM542】 (hifiberry-dac扱い)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;今回はサクッと&lt;strong&gt;Raspberrypi Zero WH&lt;/strong&gt;と&lt;strong&gt;Pimoroni AUDIO DAC SHIM&lt;/strong&gt;の組み合わせで使用&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;サブ用途です&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="イメージファイルのdl"&gt;イメージファイルのDL
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="link" href="https://volumio.com/en/get-started/"
 
 target="_blank" rel="noopener"
 &gt;Get Started | Volumio&lt;/a&gt;から&lt;a class="link" href="https://volumio.com/en/get-started/#pi"
 
 target="_blank" rel="noopener"
 &gt;Raspberry Pi&lt;/a&gt;用をDL&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;RELEASE DATE:&lt;/strong&gt; 25-06-2023&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VERSION:&lt;/strong&gt; 3.512&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Raspberry pi Imager (1.7.5)にてSDカードに書き込む&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="起動その後一気に"&gt;起動～その後一気に
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;SDカードをRaspberrypiZeroに挿入し、DACも取付けて起動&lt;/li&gt;
&lt;li&gt;しばらく待ってスマホ（iPhone）のWi-Fi設定を開く&lt;/li&gt;
&lt;li&gt;SSID:Volumioが出てきたら一旦しばし待つ&lt;/li&gt;
&lt;li&gt;再度SSID:Volumio {79EB}みたいなVolumio + MACアドレスの一部？っぽいSSIDを選択&lt;/li&gt;
&lt;li&gt;割愛するが、次へ次へと進み、DACをONにし、HiFiBerry DACを選択&lt;/li&gt;
&lt;li&gt;無線LANのSSIDを選択し、パスフレーズを入力し進む&lt;/li&gt;
&lt;li&gt;設定をすべて完了し、しばらくするとWiFiが無線LANの方を掴む&lt;/li&gt;
&lt;li&gt;これでLAN内でvolumio(ホスト名).localにてアクセスできる&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="寄り道"&gt;寄り道
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;無線ルータのDHCPを利用するが、無線ルータにてラズパイのMACアドレスでIPを固定化すると初期化時とかに楽になる&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bonjour入ってない環境とかだとIP指定になる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pcやスマホからアクセス"&gt;PCやスマホからアクセス
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;電源投入から約3分で使用できるようになる（Zeroは遅い）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;プレイバックオプションにて、ミキサータイプを&lt;strong&gt;ソフトウェア&lt;/strong&gt;に&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;起動時の既定の音量を&lt;strong&gt;30&lt;/strong&gt;程度に（耳やスピーカーがイカレないために）&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="source情報源"&gt;Source（情報源）
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;普通はNASを指定するが、あくまでもサブ用途（入眠用）なのでSDカード内に曲データを入れたい&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[ネットワーク] - [Volumio(ホスト名)] - [Internal Storage] （¥¥VOLUMIO¥Internal Storage¥）にMP3やらFLACやらのデータを好きに入れる&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="豆知識"&gt;豆知識
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;プラグインでタッチパネル表示させてみたが、Zero WHだと重すぎて耐えきれなかった&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;volumio(ホスト名).local/devにアクセスし、SSHを有効にできるがユーザ情報を変更するとプラグインのインストールなどでコケるので注意&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ユーザ名: volumio&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;パスワード: volumio&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;moOdeより、ラジオのジャンルの幅というか好みはVolumioのほうが好き&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どちらもurlが分かれば追加できるのでぶっちゃけどうでもいい&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PCM5122AなDACを使用する際はhifiberry-dacplusにし、&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;alsamixer&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;        &lt;kbd&gt;F6&lt;/kbd&gt;キーを押して [DAC]を選択&lt;/p&gt;
&lt;p&gt;        上下キーでフィルターを変更可能&lt;/p&gt;
&lt;p&gt;        変更を反映させるには&lt;kbd&gt;Esc&lt;/kbd&gt;キーで戻り&lt;/p&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/usr/sbin/alsactl store
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo reboot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="moode編記憶曖昧"&gt;moOde編（記憶曖昧）
&lt;/h2&gt;&lt;h3 id="前提-1"&gt;前提
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;RaspberryPi 4B 8GBに導入します&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="イメージファイルのdl-1"&gt;イメージファイルのDL
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class="link" href="https://moodeaudio.org/#download"
 
 target="_blank" rel="noopener"
 &gt;moodeaudio.org&lt;/a&gt;から&lt;a class="link" href="https://github.com/moode-player/moode/releases/download/r833prod/image_2023-06-08-moode-r833-arm64-lite.zip"
 
 target="_blank" rel="noopener"
 &gt;moOde 8.3.3 (64-bit)&lt;/a&gt;をDL&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Raspberry pi Imager (1.7.5)にて下記をカスタマイズしてSDカードに書き込む&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ホスト名&lt;/li&gt;
&lt;li&gt;ユーザ名&lt;/li&gt;
&lt;li&gt;ユーザパスワード&lt;/li&gt;
&lt;li&gt;SSID&lt;/li&gt;
&lt;li&gt;SSIDパスフレーズ&lt;/li&gt;
&lt;li&gt;Wi-Fi使用国&lt;/li&gt;
&lt;li&gt;タイムゾーン&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="起動その後一気に-1"&gt;起動～その後一気に
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;SDカードをRaspberrypi 4Bに挿入し、DACも取付けて起動&lt;/li&gt;
&lt;li&gt;ローカル内のPC、スマホからアクセスして詳細設定を行う&lt;/li&gt;
&lt;li&gt;PCM5122AなDACはhifiberry-dacplusを選び、フィルターもそのまま選べる&lt;/li&gt;
&lt;li&gt;こちらもプレイバックオプションにて、ミキサータイプを&lt;strong&gt;ソフトウェア&lt;/strong&gt;に&lt;/li&gt;
&lt;li&gt;音量を&lt;strong&gt;30&lt;/strong&gt;程度に（耳やスピーカーがイカレないために）&lt;/li&gt;
&lt;li&gt;音源はNASを指定したいが、メンテナンス中というかリプレース予定のため、USB To SSDでしのぐ事に…&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="豆知識-1"&gt;豆知識
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;DACのポテンシャルを簡単に引き出したいならmoOde、UIの簡単さを優先するならVolumioといった感じ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ちなみに私はPi4B + NFJ PCM5102A DAC + moOdeのナチュラルフラット感が好みだったが、ディスプレイ（飾り）のこだわりでBit Trade One ADRSZDAC(PCM5122A) + ADRPM1801C　を使用する事に決定&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="くっそてきとな完成図"&gt;くっそてきと～な完成図
&lt;/h3&gt;&lt;p&gt;&lt;img alt="Pi4B + moOde audio player" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://iffalse-true.pages.dev/post/raspberrypi_memo_002/Raspberrypi000.png" srcset="https://iffalse-true.pages.dev/post/raspberrypi_memo_002/Raspberrypi000_hu_97753f71cfcf4b31.png 800w, https://iffalse-true.pages.dev/post/raspberrypi_memo_002/Raspberrypi000_hu_2d2a9cd7ac361bf.png 1600w, https://iffalse-true.pages.dev/post/raspberrypi_memo_002/Raspberrypi000.png 2048w" width="2048"&gt;&lt;/p&gt;
&lt;p&gt;汚い写真で申し訳ない&lt;/p&gt;</description></item><item><title>初期設定など</title><link>https://iffalse-true.pages.dev/post/raspberrypi_memo_001/</link><pubDate>Wed, 12 Jul 2023 13:23:52 +0900</pubDate><guid>https://iffalse-true.pages.dev/post/raspberrypi_memo_001/</guid><description>&lt;h2 id="はじめに"&gt;はじめに
&lt;/h2&gt;&lt;p&gt;この記事ではローカル環境で遊んでいるRaspberryPi等に施した設定などのログを残しておきます。&lt;/p&gt;
&lt;p&gt;主に自分用です。&lt;/p&gt;
&lt;p&gt;バックアップはとっているものの、いざというときに思い出せるように記録しておきます。&lt;/p&gt;
&lt;h2 id="初期設定"&gt;初期設定
&lt;/h2&gt;&lt;h3 id="vim関連を整える"&gt;Vim関連を整える
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;update, upgrade, remove vim-tiny, install vim-gtk fonts&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;OSのバージョンや種類によっては不要かもしれないが一応&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt -y upgrade
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt -y dist-upgrade
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt remove -y --purge vim-common vim-tiny
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install -y vim-gtk fcitx-mozc fonts-ipaexfont fonts-droid-fallback&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="etcvimvimrc-に好みの設定を追記"&gt;/etc/vim/vimrc に好みの設定を追記
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo vi /etc/vim/vimrc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;div class="code-block-filename"&gt;/etc/vim/vimrc&lt;/div&gt;
 
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-/etc/vim/vimrc" data-lang="/etc/vim/vimrc"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;syntax&lt;/span&gt; &lt;span class="nx"&gt;on&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;autoindent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;expandtab&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;clipboard&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;unnamedplus&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;background&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;dark&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="クリップボードが使えるようになっているか確認"&gt;クリップボードが使えるようになっているか確認
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi --version &lt;span class="p"&gt;|&lt;/span&gt; grep clipboard&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="いったんキレイキレイする"&gt;いったんキレイキレイする
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt -y autoremove &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt -y autoclean&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="hdmi関連"&gt;HDMI関連
&lt;/h2&gt;&lt;h3 id="tvに繋いでひとまず使用する場合"&gt;TVに繋いでひとまず使用する場合
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;ホットプラグの有効化とHDMIグループをTV向けの最低限の設定に置換&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sed -i.bak -e &lt;span class="s1"&gt;&amp;#39;s/#hdmi_force_hotplug=1/hdmi_force_hotplug=1/g&amp;#39;&lt;/span&gt; -e &lt;span class="s1"&gt;&amp;#39;s/#hdmi_group=1/hdmi_group=0/g&amp;#39;&lt;/span&gt; /boot/config.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="pcモニタraspberrypi対応モニタ7inc等を使用する場合"&gt;PCモニタ、RaspberryPi対応モニタ(7inc等)を使用する場合
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;置換はせず、環境に合った設定を模索する&lt;/li&gt;
&lt;li&gt;参照：&lt;a class="link" href="https://www.raspberrypi.com/documentation/computers/config_txt.html#hdmi_group"
 
 target="_blank" rel="noopener"
 &gt;Raspberry Pi Documentation - The config.txt file&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo vi /boot/config.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
 &lt;div class="code-block-filename"&gt;/boot/config.txt&lt;/div&gt;
 
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-/boot/config.txt" data-lang="/boot/config.txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 例16:9
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdmi_group=2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdmi_mode=14 or 16 or 85
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hdmi_drive=2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;#display_hdmi_rotate=3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="再起動してみて確認"&gt;再起動してみて確認
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo reboot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Markdown Syntax Guide</title><link>https://iffalse-true.pages.dev/post/markdown-syntax-guide/</link><pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate><guid>https://iffalse-true.pages.dev/post/markdown-syntax-guide/</guid><description>&lt;p&gt;This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.&lt;/p&gt;
&lt;h2 id="headings"&gt;Headings
&lt;/h2&gt;&lt;p&gt;The following HTML &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;—&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; elements represent six levels of section headings. &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; is the highest section level while &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; is the lowest.&lt;/p&gt;
&lt;h1 id="h1"&gt;H1
&lt;/h1&gt;&lt;h2 id="h2"&gt;H2
&lt;/h2&gt;&lt;h3 id="h3"&gt;H3
&lt;/h3&gt;&lt;h4 id="h4"&gt;H4
&lt;/h4&gt;&lt;h5 id="h5"&gt;H5
&lt;/h5&gt;&lt;h6 id="h6"&gt;H6
&lt;/h6&gt;&lt;h2 id="paragraph"&gt;Paragraph
&lt;/h2&gt;&lt;p&gt;Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.&lt;/p&gt;
&lt;p&gt;Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.&lt;/p&gt;
&lt;h2 id="blockquotes"&gt;Blockquotes
&lt;/h2&gt;&lt;p&gt;The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a &lt;code&gt;footer&lt;/code&gt; or &lt;code&gt;cite&lt;/code&gt; element, and optionally with in-line changes such as annotations and abbreviations.&lt;/p&gt;
&lt;h3 id="blockquote-without-attribution"&gt;Blockquote without attribution
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Tiam, ad mint andaepu dandae nostion secatur sequo quae.
&lt;strong&gt;Note&lt;/strong&gt; that you can use &lt;em&gt;Markdown syntax&lt;/em&gt; within a blockquote.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="blockquote-with-attribution"&gt;Blockquote with attribution
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Don&amp;rsquo;t communicate by sharing memory, share memory by communicating.&lt;br&gt;
— &lt;cite&gt;Rob Pike&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="tables"&gt;Tables
&lt;/h2&gt;&lt;p&gt;Tables aren&amp;rsquo;t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Name&lt;/th&gt;
 &lt;th&gt;Age&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Bob&lt;/td&gt;
 &lt;td&gt;27&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Alice&lt;/td&gt;
 &lt;td&gt;23&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="inline-markdown-within-tables"&gt;Inline Markdown within tables
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Italics&lt;/th&gt;
 &lt;th&gt;Bold&lt;/th&gt;
 &lt;th&gt;Code&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;em&gt;italics&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;bold&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;A&lt;/th&gt;
 &lt;th&gt;B&lt;/th&gt;
 &lt;th&gt;C&lt;/th&gt;
 &lt;th&gt;D&lt;/th&gt;
 &lt;th&gt;E&lt;/th&gt;
 &lt;th&gt;F&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit.&lt;/td&gt;
 &lt;td&gt;Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex.&lt;/td&gt;
 &lt;td&gt;Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus&lt;/td&gt;
 &lt;td&gt;Proin sit amet velit nec enim imperdiet vehicula.&lt;/td&gt;
 &lt;td&gt;Ut bibendum vestibulum quam, eu egestas turpis gravida nec&lt;/td&gt;
 &lt;td&gt;Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="code-blocks"&gt;Code Blocks
&lt;/h2&gt;&lt;h3 id="code-block-with-backticks"&gt;Code block with backticks
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;&amp;lt;!doctype html&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt; &lt;span class="na"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;en&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;meta&lt;/span&gt; &lt;span class="na"&gt;charset&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Example HTML5 Document&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Test&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="code-block-indented-with-four-spaces"&gt;Code block indented with four spaces
&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
&amp;lt;head&amp;gt;
 &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;
 &amp;lt;title&amp;gt;Example HTML5 Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;p&amp;gt;Test&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="diff-code-block"&gt;Diff code block
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-diff" data-lang="diff"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[dependencies.bevy]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git = &amp;#34;https://github.com/bevyengine/bevy&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rev = &amp;#34;11f52b8c72fc3a568e8bb4a4cd1f3eb025ac2e13&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gd"&gt;- features = [&amp;#34;dynamic&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gi"&gt;+ features = [&amp;#34;jpeg&amp;#34;, &amp;#34;dynamic&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="one-line-code-block"&gt;One line code block
&lt;/h3&gt;&lt;div&gt;
 &lt;div class="code-block-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;A paragraph&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="list-types"&gt;List Types
&lt;/h2&gt;&lt;h3 id="ordered-list"&gt;Ordered List
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;First item&lt;/li&gt;
&lt;li&gt;Second item&lt;/li&gt;
&lt;li&gt;Third item&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="unordered-list"&gt;Unordered List
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;List item&lt;/li&gt;
&lt;li&gt;Another item&lt;/li&gt;
&lt;li&gt;And another item&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="nested-list"&gt;Nested list
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Fruit
&lt;ul&gt;
&lt;li&gt;Apple&lt;/li&gt;
&lt;li&gt;Orange&lt;/li&gt;
&lt;li&gt;Banana&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dairy
&lt;ul&gt;
&lt;li&gt;Milk&lt;/li&gt;
&lt;li&gt;Cheese&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="other-elements--abbr-sub-sup-kbd-mark"&gt;Other Elements — abbr, sub, sup, kbd, mark
&lt;/h2&gt;&lt;p&gt;&lt;abbr title="Graphics Interchange Format"&gt;GIF&lt;/abbr&gt; is a bitmap image format.&lt;/p&gt;
&lt;p&gt;H&lt;sub&gt;2&lt;/sub&gt;O&lt;/p&gt;
&lt;p&gt;X&lt;sup&gt;n&lt;/sup&gt; + Y&lt;sup&gt;n&lt;/sup&gt; = Z&lt;sup&gt;n&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Press &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;ALT&lt;/kbd&gt; + &lt;kbd&gt;Delete&lt;/kbd&gt; to end the session.&lt;/p&gt;
&lt;p&gt;Most &lt;mark&gt;salamanders&lt;/mark&gt; are nocturnal, and hunt for insects, worms, and other small creatures.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;The above quote is excerpted from Rob Pike&amp;rsquo;s &lt;a class="link" href="https://www.youtube.com/watch?v=PAAkCSZUG1c"
 
 target="_blank" rel="noopener"
 &gt;talk&lt;/a&gt; during Gopherfest, November 18, 2015.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>