<?xml version="1.0" encoding="UTF-8"?>


<feed xmlns="http://www.w3.org/2005/Atom">
  <id>www.ruimo.com</id>
  <title>るいもの戯れ言</title>
  <link rel="alternate" type="text/html" href="https://www.ruimo.com"/>
  <link rel="self" type="application/atom+xml" href="https://www.ruimo.com/atom.xml"/>
  
    <updated>2025-04-30T07:04:44Z</updated>
  
  <author>
    <name>Uno Ruimo(Shisei Hanai)</name>
  </author>

   <logo>https://www.ruimo.com/logo.gif</logo>

   <subtitle>日々の戯れ言</subtitle>

  <rights>Uno Ruimo(Shisei Hanai)</rights>

  
    <entry>
      <title>blogをGitHub pagesに引越し</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1670"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1670</id>
      <updated>2025-04-30T07:04:44Z</updated>
      <published>2025-04-30T07:04:44Z</published>
      <content type="html">
        &lt;p&gt;blogを&lt;a href=&quot;https://ruimo.github.io/ruimo-blog/&quot;&gt;GitHub pages&lt;/a&gt;に引越しました。このサイトはそのうち消します。&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>自転車のシートポストが壊れた話</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1669"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1669</id>
      <updated>2025-04-29T05:04:06Z</updated>
      <published>2025-04-29T05:04:06Z</published>
      <content type="html">
        &lt;p&gt;自転車のサドルが走行中にいきなり外れた。サドルを止めるシートポストは、こんなタイプだったのだが、止めているボルトが破断していた。&lt;/p&gt;

&lt;img src=&quot;https://f.media-amazon.com/images/I/31a4K9XUvwL._AC_SL1200_.jpg&quot; width=&quot;100&quot;&gt;

&lt;p&gt;このボルトは、M11という日本だとあまり一般的ではないサイズなのだが、ほどなく見つかったのでボルト交換で良いかなと考えていたが、また破断のリスクがある。今回はたまたま低速走行中だったの脛をすりむくだけで済んだが、高速走行中だと下手すると致命傷になりかねない。そもそもそれなりに荷重がかかるボルト1本がSPOFになっているこの構造は設計ミスに等しいのではないか。&lt;/p&gt;

&lt;p&gt;調べてみると他にも色々なシートポストのタイプがあり、例えばこんな形式もあった。&lt;/p&gt;

&lt;img src=&quot;https://f.media-amazon.com/images/I/51OCdawaIfL._AC_SL1500_.jpg&quot; width=&quot;60&quot;&gt;

&lt;p&gt;&lt;a href=&quot;https://live-es.jp/contents/2354&quot;&gt;ここに紹介記事&lt;/a&gt;があるが、サドル側はこのポールをはめ込む感じの取り付けになる。荷重はポールに垂直にかかるだけで、ボルトには締め付けのトルクくらいしかかからない。万一ボルトが折れようが、いきなりサドルが外れることは無さそう。良く考えられた設計だ。&lt;/p&gt;

&lt;p&gt;というわけで交換してひと安心。&lt;/p&gt;



      </content>
    </entry>
  
    <entry>
      <title>AliExpressのawg28</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1668"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1668</id>
      <updated>2025-04-27T03:04:20Z</updated>
      <published>2025-04-27T03:04:20Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;https://ja.aliexpress.com/item/1005007278251470.html&quot;&gt;&lt;img src=&quot;https://ae-pic-a1.aliexpress-media.com/kf/Sf409b8e56b564bbb936f416394de77b52.jpg_220x220q75.jpg_.avif&quot;&gt;AliExpressのawg28&lt;/a&gt;が使いやすそうなので買ってみた。外形は1.1mmくらいあるのでawg28だけど太め。今見たらお値段上がっていたが、買った時は680円だった(10m巻きx6色)。&lt;/p&gt;

&lt;p&gt;普段使っていたのは、&lt;a href=&quot;https://akizukidenshi.com/catalog/g/g111640/&quot;&gt;秋月のイラックス&lt;/a&gt;で、こちらだと外形は0.8mmくらいなので結構違う。お値段は1m x 10色で350円。&lt;/p&gt;

&lt;p&gt;お値段が5倍くらい違う(しかもAliExpressは送料無料だった)ので、特に太さにこだわりが無い箇所ではAliExpressのを使おうかな。これ、特定の色だけ使い切った時に色別に補充できるのかなと思ったのだけど、一応&lt;a href=&quot;https://ja.aliexpress.com/item/1005004750475982.html&quot;&gt;バラのもの&lt;/a&gt;もあるようだ。ただし割高なので、補充はオヤイデの&lt;a href=&quot;https://shop.oyaide.com/products/etfe0-32mm10m.html&quot;&gt;ETFEのawg28&lt;/a&gt;あたりが良さそう。&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>PAM8403によるD級アンプ</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1667"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1667</id>
      <updated>2025-04-25T23:04:04Z</updated>
      <published>2025-04-25T23:04:04Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;https://amzn.to/42PhZ1J&quot;&gt;Amazonにある価格がバグっているD級アンプ&lt;/a&gt;&lt;/p&gt;
&lt;img width=&quot;320&quot; src=&quot;https://f.media-amazon.com/images/I/71YcnyVUZ2L._SL1500_.jpg&quot;&gt;

&lt;p&gt;2025/4月時点で価格は169円で送料無料。届くのに1か月くらいかかるのが難点か。&lt;/p&gt;

&lt;p&gt;家のCDは全部flacに吸い出してあって、それをラズパイで&lt;a href=&quot;https://www.musicpd.org/clients/mpc/&quot;&gt;mpc&lt;/a&gt;を使って聴いている(ncmpcというコマンドラインで使えるプレイヤーがある)。ただ、ラズパイ用DACの出力がLine outしかなくてヘッドホン出力がないので、このアンプを入れてみた。こういう安いアンプは昔は、ホワイトノイズとかハムがすごくて、まぁそれでも「この価格じゃ仕方ないよね」って納得してそのまま我慢して使うなり、自分で回路を改良したりしてだましだまし使ったものだけど、全く問題無かった。というかホワイトノイズ無さすぎて無音時に何も聞こえないから壊れているのかと思うほど。&lt;/p&gt;

&lt;p&gt;届くのに時間がかかるので、もしかしたら電源からのスイッチングノイズがあるかもと思って、コモンモードチョークを買っておいたのだけど全く不要だった。今のD級アンプって、インダクタすらないのね。どうやらスピーカをローパスフィルタ替わりにするらしい。すごい時代になったものだ。&lt;/p&gt;

&lt;p&gt;ただ、何かInputのシルク印刷がおかしくて&quot;B&quot;というのがあるけど、これは&quot;R&quot;の間違いだろう(だから安いのだろうか)。
&lt;br/&gt;
&lt;img width=400&quot; src=&quot;/getImage?id=1698&quot;&gt;
      </content>
    </entry>
  
    <entry>
      <title>オーディオスプリッタを作成</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1634"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1634</id>
      <updated>2025-03-16T06:03:09Z</updated>
      <published>2025-03-16T06:03:09Z</published>
      <content type="html">
        &lt;p&gt;今まで、&lt;a href=&quot;https://www.amazon.co.jp/dp/B07DXGV5PT&quot;&gt;Amazonで買ったこれ&lt;/a&gt;を使っていたのだけど、2回路では足りなくなったのと、入力別に音量調整したくなったので自作してみた。&lt;/p&gt;

&lt;a href=&quot;https://github.com/ruimo/ruimo-blog/wiki/%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA-%E3%82%B9%E3%83%97%E3%83%AA%E3%83%83%E3%82%BF&quot;&gt;オーディオスプリッタを作成&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>2024年に買ってみて割と良かったもの</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1602"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1602</id>
      <updated>2025-01-01T02:01:48Z</updated>
      <published>2025-01-01T02:01:48Z</published>
      <content type="html">
        &lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/40f7pkn'&gt;&lt;img src='https://m.media-amazon.com/images/I/61Hg+ar2Z5L._SX522_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/40f7pkn'&gt;&lt;p&gt;Weytoll 150W 電子負荷テスター 1.77 TFT カラー 4線式デジタル 高精度抵抗電圧電流計 調整可能な 定電流 電子負荷 (10A)&lt;/p&gt;&lt;/a&gt;&lt;p&gt;日本語だと「電子負荷」という謎用語なのだけど、要は定電流負荷。電池の寿命を見るのにテスタで電圧を測ってもインピーダンスが高いので分からないので、一定の負荷をかける必要がある。電子負荷を使うと消費電流を指定できて、その電流負荷でどのくらいの時間もったのかが分かる&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/40cVinY'&gt;&lt;img src='https://m.media-amazon.com/images/I/71aveiDh0rL._AC_SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/40cVinY'&gt;&lt;p&gt;Andonstar AD407 3D HDMI はんだ付けデジタル顕微鏡 プロメタルスタンド付き 4MP UHD 7インチ調整可能LCDスクリーン USBビデオ顕微鏡 電話修理SMT SMD DIY用&lt;/p&gt;&lt;/a&gt;&lt;p&gt;最近、老眼が進んできた上に表面実装の半田付けが増えてきたので購入してみた。昔この手のUSB顕微鏡を試しに買ったことがあるのだが、レンズの精度が悪いわノイズは多いわで散々だったので避けていた。最近この商品の紹介がYouTubeにあって良さそうだったので購入。SSOP(ピン間0.65mm)くらいでも余裕で良く見える。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/41VtWE0'&gt;&lt;img src='https://m.media-amazon.com/images/I/61xoPxPhWVL._AC_SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/41VtWE0'&gt;&lt;p&gt;MXBatt USB充電式 9V充電池 006P型 9V形 リチウムイオン 650mAh USB-Cケーブルス付き1.5H急速充電電池 800回充電可能 充電器不要 1本&lt;/p&gt;&lt;/a&gt;&lt;p&gt;この手の006P充電可能電池は、内部で昇圧しているので自己放電やノイズが問題になることが多いのだが、この電池は評判が良いので買ってみた。テスタで使ってみているが特に問題無いようだ。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/4fWs1Tj'&gt;&lt;img src='https://m.media-amazon.com/images/I/81jaXFDKkvL._SX522_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/4fWs1Tj'&gt;&lt;p&gt;KAIWEETS 検電器 12-1000V AC / 70-1000V AC感度調節 検電ドライバー ペン型 LED懐中電灯付き パーセント表示 通電チェッカー 非接触電圧検出&lt;/p&gt;&lt;/a&gt;&lt;p&gt;漏電を診断する機器。昔は検電ドライバというものがあって、中にネオン管と高抵抗が入っていて、人体を通して電流が流れてネオン管が光るというなんとも野蛮な仕組みだったが、今はこんな便利なものがあるのだ。先端はプラスチックになっていて絶縁されていて安心感がある。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/4iWqmQe'&gt;&lt;img src='https://m.media-amazon.com/images/I/71OlXTK+w5L._AC_SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/4iWqmQe'&gt;&lt;p&gt;SWIFT 双眼実体顕微鏡 立体顕微鏡 LED光源付 金属製 両眼ヘッド、広視野接眼レンズ10X付き、総合倍率：20倍、40倍、研究用、実験用、高倍率実体顕微鏡 PSE認証済 S304-LED&lt;/p&gt;&lt;/a&gt;&lt;p&gt;USB顕微鏡は良く見えるのだが、単眼なので距離感が掴めない。このためこれで半田付けはかなり難しい。そんなわけで実体顕微鏡を購入。これだと距離感が良く分かる。USB顕微鏡の方は半田付け結果の確認などに活用。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/4fBltJj'&gt;&lt;img src='https://m.media-amazon.com/images/I/71ac+OFHf3L._SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/4fBltJj'&gt;&lt;p&gt;【Amazonデバイス】Ring Battery Doorbell Plus (リング ドアベルプラス バッテリーモデル) | 上下左右150°のワイドなカメラ視野角、1536p HD+ビデオ、電源工事不要なスマホ対応ドアホン・インターホン&lt;/p&gt;&lt;/a&gt;&lt;p&gt;家のドアホンが故障。子機がたまに鳴らなくなってしまった。だいたいこの手のデバイスはバッテリがダメになるのでバッテリ交換で直ることが多いのだが、どうもそういう感じではない。子機だけ買おうとしたら4万越えになっててあきらめ。今回はAmazonのRingにしてみた。屋外カメラにGoogle Nest Camを使っているので、Googleで揃えた方が良いかもとも思ったけど、色々試す方が良いかなと。録画機能を使うには月額費用が必要で、その点ではGoogle Nest Camは無料でも3時間は保持してくれるので優れているかもしれない。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/41Y5Dpe'&gt;&lt;img src='https://m.media-amazon.com/images/I/41+26Q8D6sL._SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/41Y5Dpe'&gt;&lt;p&gt;Ring Chime Pro（リング チャイムプロ）&lt;/p&gt;&lt;/a&gt;&lt;p&gt;Ringの来客通知がスマホだけだと気付かないことがあるので追加。これはWifiの中継機能もあるのでその点も便利。家では3FにWifiのアクセスポイントがあり、1Fの玄関とはかなり離れているので、中継がないとかなりWifiの電波強度が低くなってしまう。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

      </content>
    </entry>
  
    <entry>
      <title>docker runで、failed to create shim task: OCI runtimeというエラー</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1570"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1570</id>
      <updated>2024-12-02T00:12:23Z</updated>
      <published>2024-12-02T00:12:23Z</published>
      <content type="html">
        &lt;p&gt;
自分が見ているサーバで今朝、以下のようなエラーがdocker runで発生するようになった。環境はUbuntu 22.04&lt;/p&gt;

&lt;code&gt;
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create fa
iled: runc create failed: unable to start container process: error during container init: error setting cgroup config for 
procHooks process: failed to call BPF_PROG_ATTACH (BPF_CGROUP_DEVICE, BPF_F_ALLOW_MULTI): attach program: invalid argument
&lt;/code&gt;

&lt;p&gt;1台はUbuntu 24.04にdo-release-upgradeしたら解決。&lt;/p&gt;
&lt;p&gt;もう1台は、24.04でも解決できず。/etc/docker/daemon.jsonを作成して以下の内容にしたところ解決した。&lt;/p&gt;

&lt;code&gt;
{
  &quot;exec-opts&quot;: [&quot;native.cgroupdriver=cgroupfs&quot;]
}
&lt;/code&gt;

      </content>
    </entry>
  
    <entry>
      <title>しゃべるテスターを作ってみた話</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1538"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1538</id>
      <updated>2024-08-14T08:08:23Z</updated>
      <published>2024-08-14T08:08:23Z</published>
      <content type="html">
        &lt;p&gt;テスタ棒で基板の上を調査している場合、テスタ棒を当てるのにかなり神経を使っている。なぜならICなどピッチが狭い時、一歩間違えれば隣のピンとショートしてしまうかもれないし、きっちり当てないと接触不良で正しい値が得られないからだ。しかしテスタ棒を当てた後、測定値を読み取るには、どうしても視線をテスタに向けなければならない、この時にツルっとテスタ棒の位置を狂わせてしまう事故が起きがちだ。&lt;/p&gt;

&lt;p&gt;そこで測定値をPCで読み上げるようにしてみた。うちにあるのはだいぶ昔に買ったM-6000Mというテスターで、RS-232Cで測定値を読み取ることができる。そして&lt;a href='https://voicevox.hiroshiba.jp'&gt;VOICEBOX&lt;/a&gt;という便利な読み上げソフトウェアがあるので、これらを組み合わせれば出来そう。このテスタを買った当時は、どうやら&lt;a href='https://github.com/ruimo/m6000m'&gt;Rubyでも同じようなアプリを作成していた&lt;/a&gt;ようだ(もう12年も前なのか)。今回はRustでゼロから書き直した。RS-232Cからのデータのデコードは&lt;a href='https://github.com/ruimo/es51986'&gt;ライブラリ&lt;/a&gt;として分離してある。&lt;/p&gt;

&lt;iframe width=&quot;1800&quot; height=&quot;1019&quot; src=&quot;https://www.youtube.com/embed/gl671_m4UQ4&quot; title=&quot;しゃべるテスターを作ってみた。&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;割と良いかも。&lt;a href='https://github.com/ruimo/m6000m-rs'&gt;詳細はこちら&lt;/a&gt;&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>半田ゴテとか電気ストーブの消し忘れ対策</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1507"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1507</id>
      <updated>2024-08-13T08:08:05Z</updated>
      <published>2024-08-13T08:08:05Z</published>
      <content type="html">
        &lt;a href='https://ruimo.github.io/auto_power_off/'&gt;半田ゴテとか電気ストーブの消し忘れ対策のための機器を作ってみた。&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>テプラSR3700Pの延命</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1506"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1506</id>
      <updated>2024-08-12T10:08:16Z</updated>
      <published>2024-08-12T10:08:16Z</published>
      <content type="html">
        &lt;p&gt;もともとテプラは筐体自体にキーボードが付いていて、そこで打ち込んだものが印刷できるというものだった(今もそういう機種は併売されている)。PCと比べると画面が小さくてキーボードもお世辞にも打ちやすいとはいえず、また出力される文字もギザギザとしたものだった。そんな中、PCから接続できるテプラが登場。うちにあるテプラは、&lt;a href='https://www.kingjim.co.jp/products/tepra/sr3700p.html'&gt;SR3700P&lt;/a&gt;というやつで、今見ると発売は2008年だそうだ。&lt;/p&gt;

&lt;p&gt;6mm幅のテープは部品を整理するのに丁度良く、便利に使っていたのだが、長いあいだ使ううちに色々と問題が出て来た。&lt;/p&gt;

&lt;h3&gt;プラスチックがベタベタに劣化してしまった。&lt;/h3&gt;

&lt;p&gt;この時代の製品は高級感を出すために、プラスチックにスエードのような感触を出す加工を良く使っていた。これは年月が経つとベタベタに劣化してしまう。機能的には問題無いものの使うたびに手がベトベトになるのはかなわない。Webで検索してみるとアルコールで拭けとか消しごむをかけろというのが見つかる。まずはアルコールで拭いてみたが全く拭きとれる感覚がない。消しごむというも効率が悪く範囲が広いと気が遠くなる。アルコールで拭いてみた感じだと、もっと脂溶性の物質のような感じなのでおそらく有機溶剤が良さそう。試しにCRC5-56を使ってみた。&lt;/p&gt;

&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;
  &lt;a href='https://amzn.to/3WG97sa'&gt;
    &lt;img src='https://m.media-amazon.com/images/I/61lXXWFLjHL._AC_SY879_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;
  &lt;/a&gt;
  &lt;div style='display: inline-block; vertical-align: top'&gt;
    &lt;a href='https://amzn.to/3WG97sa'&gt;
      &lt;p&gt;おなじみCRC-5-56&lt;/p&gt;
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;これがとても具合が良く、みるみるきれいになった。ただCRC5-56は浸透性が高いのでプラスチックを逆に痛める可能性があるため、良く拭いた後にシリコンスプレーを使って磨いておいた。&lt;/p&gt;

&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/46EoHsV'&gt;&lt;img src='https://m.media-amazon.com/images/I/61XydsoRnfL._AC_SY879_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/46EoHsV'&gt;&lt;p&gt;シリコンスプレー&lt;/p&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;1か月ほど経つが特に問題無いようだ。&lt;/p&gt;

&lt;h3&gt;Mac用のアプリが更新されなくってしまった。&lt;/h3&gt;

&lt;p&gt;古い製品なので仕方無いがmacOSの最新には対応してくれなくなってしまった。Windowsなら使えるので致命的ではないが、うちにあるWindowsは1万円で買った中古のRAM 4GB Windows Padなので今ひとつ使い勝手が悪い。そろそろ買いかえかもなと思って調べていたら今のテプラは色々と便利な機能があることが分かった。&lt;/p&gt;

&lt;p&gt;1つはハーフカット。ラベルを作ったあと面倒なのがシールを台紙から剥がす作業でこれがなかなかうまくいかずにイライラする。今のテプラにはハーフカッタが付いた機種があり、これを使うと楽に剥がせるらしい。&lt;/p&gt;

&lt;p&gt;もう1つはより幅の狭いテープのサポート。普段は6mmのテープで十分なのだが、たまに2行印刷したい、より狭い幅のテープがあったらなと感じる。今は4mmのテープがあることが分かった。また最新の機種は6mmのテープに2行の印字が可能なことが分かった。&lt;/p&gt;

&lt;p&gt;価格.comで調べるとハーフカッタサポートのテプラは&lt;a href='https://kakaku.com/kaden/label-writer/itemlist.aspx?pdf_se=3&amp;pdf_Spec003=1'&gt;このあたり&lt;/a&gt;のようだ。SR-R680 ならPCにも接続できるし、本体だけでも打ち込んで印字ができて便利そうだ。&lt;/p&gt;

&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3M6Mrfu'&gt;&lt;img src='https://m.media-amazon.com/images/I/51BcekkdDOL._AC_SX679_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3M6Mrfu'&gt;&lt;p&gt;キングジム ラベルライター 「テプラ」PRO SR-R680&lt;/p&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;興味あってカシオのネームランドも調べてみた。ハーフカッタ対応だと、&lt;a href='https://kakaku.com/kaden/label-writer/itemlist.aspx?pdf_se=2&amp;pdf_Spec003=1&amp;pdf_so=p1'&gt;こちらのリスト&lt;/a&gt;のようだ。KL-TM7だと随分と安いようだ。PCには接続できないが、筐体にキーボードがあった方がサポート切れの心配をしなくて良いのが逆に利点かもしれない。&lt;/p&gt;

&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3LZjkea'&gt;&lt;img src='https://m.media-amazon.com/images/I/71Z-BpbHDJL._AC_SX679_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3LZjkea'&gt;&lt;p&gt;カシオ ラベルライター ネームランドBIZ スタンダードモデル KL-M7 テープ付セット KL-TM7 (3.5mm-24mm幅)&lt;/p&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;しかしまだテプラ用のテープが残っているので、やはり捨てるのは惜しい。なんとか今のテプラを活用できないか調べてみた。まずハーフカットだが、こんなのがあることが分かった。&lt;/p&gt;

&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/46Q6t7J'&gt;&lt;img src='https://m.media-amazon.com/images/I/41hICZ3q3HL._AC_SX679_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-height:300px; max-width:300px;' &gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/46Q6t7J'&gt;&lt;p&gt;キングジム(Kingjim)KING JIM テプラハ-フカッタ- 金属 ホワイト RH24&lt;/p&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;試しに買ってみたが少々コツがいるものの、シール剥がしが楽になった。&lt;/p&gt;

&lt;p&gt;残りは6mmテープへの2行印字だが、アプリの方を調べてみてもそういう機能は無さそうだった。プリンタの解像度的には十分可能そうなのだが。しかしSR3700Pには任意のビットマップ印字機能があるので、あらかじめビットマップで印字内容を残しておけば良さそうだ。&lt;/p&gt;

&lt;p&gt;何か手軽な方法は無いかとClaude3さんに聞いてみたところ、ImageMagickを使えとのこと。&lt;/p&gt;

&lt;pre class='code'&gt;
$ convert -pointsize 64 -interline-spacing -5 -font ~/.fonts/HackGen_NF_v2.9.0/HackGen35ConsoleNF-Bold.ttf label:&quot;p日本語\npあいう&quot; output.png
&lt;/pre&gt;

&lt;p&gt;こんな感じで2行表示の文字列をフォント指定で描画した画像を生成できることが分かった。Mac版のアプリは少々出来が悪く、画像印字すると高さが減ってしまうのでWindows版の方が良さそうだ。&lt;/p&gt;

&lt;img src=&quot;/getImage?id=1665&quot;&gt;

&lt;p&gt;若干解像度が落ちるが、多分テプラのアプリの縮小のロジックのせいと思われる。テープ幅に合ったドット数のイメージを作ればもう少しきれいになりそう。&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>「関数型ドメインモデリング」</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1475"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1475</id>
      <updated>2024-07-05T06:07:44Z</updated>
      <published>2024-07-05T06:07:44Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;https://amzn.to/3RTDVnw&quot;&gt;関数型でドメインモデリング&lt;/a&gt;というお話。&lt;/p&gt;

&lt;p&gt;第2章「ドメインの理解」&lt;/p&gt;

&lt;p&gt;実際のドメインの理解について実例を示しながら解説している。ドメインエキスパートへのインタビュー、こんなに何でも知っているお客様はいないっすよとは思いつつ、まぁそれを言い出すとキリが無いので仕方無い。そして、いきなりER作り出すなよと釘を刺す。これは、おじいちゃんへの良いアドバイス。そしてクラス図もダメだからなと釘を刺す。今時もクラス図って生きているの？じゃどうやって実装に落としていくのかというと、テキストベースのメモに留めておけと。そしてドメインの理解が完全になってから実装に進むのだ。ただこのテキストベースのメモに出てくる型の記述って結局は(Javaで言うならAbstcatr Classを排してInterfaceだけを使った)クラス図じゃないのかなぁ。&lt;/p&gt;

&lt;p&gt;インタビューは更に進む。「数量は整数ですか浮動小数ですか？」に対しドメインエキスパートにプログラミングの専門用語使っちゃダメですよ。「数量は整数ですか小数ですか？」と聞きましょうと。それはそうなんだけど。分析系以外で浮動小数点数の利用は常識として無いだろうと思う。この手の書籍で気軽に浮動小数点数を持ち出す例を見かけるのだが、やめた方が良いと思う。そもそもこの著者って本当に実務でプログラミングしているの？という疑問が沸いてしまうので。&lt;/p&gt;

&lt;p&gt;制約条件、ライフサイクル(状態マシーン)を書き上げる。まぁそうですよね。&lt;/p&gt;

&lt;p&gt;完全に新規の場合は本書の通り「ドメインの理解」から始まるのだろうけど、そうでなければ通例は「システムの理解」的なものがあるのではないかな？特に外部システムとか。これはドメインエキスパートはあまり知らないので、お客さんのIT部門の人にも聞かないといけないし、ITの人も外部システムについては実は良く知らなかったりで大変なわけで、とはいえ「関数型」とは離れてしまうので省略されたのかもしれない。&lt;/p&gt;

&lt;p&gt;第3章「関数型アーキテクチャ」&lt;/p&gt;

&lt;p&gt;処理はイベントソーシングでキューイングする。このあたりはマイクロ・サービスのコレオグラフィと同じ考え方なのかな。&lt;/p&gt;

&lt;p&gt;これまでのようなサービスレイヤ、ドメイン、永続化層みたいなのは良くないよね。なぜなら横につながっているのである機能の修正のために他の機能への影響が出やすいからと。機能ごとに分離しましょう。ただ、それだたレイヤーが増えすぎて良くないからオニオンアーキテクチャにしましょう。I/Oは副作用なのでドメインには置かずに外側に置きましょうと。う〜んそれはまぁ分からないでもないけどドメインロジックで、ビジネスルールなどのチェックが必要だとI/O必要ないのかなぁ。そういうのは先に取得しておいて渡せってことかな。でもそうするとビジネスルールが複雑な場合って、最終的には不要なものも含めて必要になりそうな可能性のあるもの全てを先に読んでおけってことになるのかな。&lt;/p&gt;

&lt;p&gt;第1部はここまで。第2部は基本はF#の話。&lt;/p&gt;

&lt;p&gt;静的型の活用。値型(単純型)。不変条件。このあたりは別に「関数型」でなくてもImmutable指向のOO設計でも共通の話題かな。&lt;/p&gt;

&lt;p&gt;ワークフローはイベントをキューで流せと。Validationとかの粒度でイベントとして扱うとされているが、そんなレベルでやるの？ あとはフラグやめてステートマシンにしようね。このあたりは昔から変わらない。&lt;/p&gt;

&lt;p&gt;第3部もF#というか関数型の基本の話で始まる。&lt;/p&gt;

&lt;p&gt;エラー処理。F#ではResultを使う。まぁイベントをキューイングというアーキテクチャでは例外を使ってもご利益ないよね。そしてシリアライズの話。&lt;/p&gt;

&lt;p&gt;12章で永続化。ここで3章で抱いた疑問への回答が示される。&lt;/p&gt;

&lt;p&gt;まず、前の章の方ではかなり粒度の小さなレベルでイベントとキューイングで実装していくように読めたのだが(誤読か？)、実際はI/OがOKな層からドメインロジックを「呼び出し」て良く、ドメインロジック中で追加でデータが必要になったら一旦その旨を戻値でドメインロジックから返し、その戻値をもとにI/O層が追加でデータを取得してまたドメインロジックを呼ぶような造りで良いとのこと。まぁこれなら良くみる「サービスレイヤ」なのでそんなに異和感は無いよね。&lt;/p&gt;

&lt;p&gt;本書での主張は自分は、要件定義ですぐにER図とかクラス図などの実装詳細を書こうとするな、ドメインロジックからはI/Oを無くせ。あたりが本質かなと感じた。具体的なアプリケーションを題材にしているので、アプリケーションを実装している人には示唆に富んでいると思う。&lt;/p&gt;

&lt;p&gt;ただ盲従しない方が良いかなと。基本CRUDで画面を数100枚作るようなプロジェクトでこの手法はover killだと思うし、基幹業務で一旦作ったら5年、10年塩漬けというようなアプリケーションでもメリットを出しづらいだろう。&lt;/p&gt;

&lt;p&gt;なら一日に何度もデプロイするような戦略アプリケーションならどうか？ 少なくとも3-5年前の自分ならこういう設計(ドメインロジックからはI/Oを排する)に諸手を上げるかもしれない。ただし、これはトレードオフで、やはりドメインロジックからI/Oを排するために複雑になることは受容しなければならない。こういうのは一旦流行しても5年くらいするとPlain Oldなんとかみたいな揺り戻しが起きて「単にサービスレイヤで永続化層とやりとりするだけの単純なコードの方が実装ははるかに楽だよね？」みたいになりそうな予感もする。&lt;/p&gt;

&lt;p&gt;最近はRustでWebアプリケーションを実装してるが、結局永続化に関する部分はsqlxやSeaORMのようなライブラリで吸収できてしまうし、複雑なバリデーションはBuilderに入力をつっこんでbuild()メソッドで検証みたいな素朴な作りで十分で、あまり大層な仕組みの必要性を感じない。フレームワークもテスト支援機能が手厚く、DBありでも無理なくテストできる。もちろんその分、I/Oが入るとテストが遅くなるとか、単体テストはテストごとにPostgresのDB名にUUID入れたものを新規生成してぶつからないようにするなどの工夫が必要などデメリットもある。その分、ドメインからDB切り離して得意になっていたら、SQLがバグっていて痛い目にあったなんてことが起きないというメリットもある。結局はトレードオフなのだ。自分のようにDB苦手な人間はDBも巻き込んだテストを地道に回す方が安心できる。&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>「関数型デザイン」</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1474"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1474</id>
      <updated>2024-07-05T00:07:33Z</updated>
      <published>2024-07-05T00:07:33Z</published>
      <content type="html">
        &lt;p&gt;Bobおじさんによる関数型プログラミング言語の使い方の解説。「使い方」なので理論的な話は割愛とのこと。&lt;/p&gt;

&lt;a href=&quot;https://amzn.to/4cQ3huO&quot;&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81HBB2BvFVL._SL1500_.jpg&quot; width=300&gt;&lt;/a&gt;

&lt;p&gt;関数型については、ひところのブームが去って落ち着いた感がある。別にこれまでのOOなどのパラダイムを置き換えるようなものではないし、あくまでケースバイケースで採用すれば良い、人のコードを読む時に前提として知っておいた方が良いプログラミングの1技法くらいの位置付けだろう。そういう意味ではデザインパターンの1つくらいに考えた方が良さそうだ。&lt;/p&gt;

&lt;p&gt;正直対象読者をどう想定したのだろうかという点については、最初は大いに疑問だった。ガチ勢相手としては、この手の話は数年前に決着が着いた感があり出版が遅すぎる(翻訳が遅れただけかと思ったが原著も2023/9だった)。初心者向けとしたら、言語としてメインにClojure、場合によってJavaやC++も出すというあたり、初心者に読ませようという意図が感じられない。&lt;/p&gt;

&lt;p&gt;とすると本書は、特にモナドとか圏論など難しい概念に恐れをなして、これまで関数型を避けていたベテランが対象なのかもしれない。そういう観点で見ると、本書の構成は実に腑に落ちるし、それをこの時期に出すというのも絶妙である。対象となる方々には強くお勧めしたい。&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>ATtiny10を使ってみた。</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1442"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1442</id>
      <updated>2024-06-01T08:06:11Z</updated>
      <published>2024-06-01T08:06:11Z</published>
      <content type="html">
        &lt;a href='https://ruimo.github.io/attiny10-blink/'&gt;
ATtiny10を使ってみた。
&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>2023年に買ってみて割と良かったもの。</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1411"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1411</id>
      <updated>2023-12-31T01:12:34Z</updated>
      <published>2023-12-31T01:12:34Z</published>
      <content type="html">
        &lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3NMd8r4'&gt;&lt;img src='https://m.media-amazon.com/images/I/61FzznyAKbL._AC_SY879_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3NMd8r4'&gt;&lt;p&gt;腰枕&lt;/p&gt;&lt;/a&gt;&lt;p&gt;朝起きると腰が痛むようになったので、試しに購入。腰痛はほぼなくなったので効果はあるみたい。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/47dayS4'&gt;&lt;img src='https://m.media-amazon.com/images/I/51LDQA8YxGL._AC_SX522_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/47dayS4'&gt;&lt;p&gt;ENGINEER エンジニア ハンダ吸取器 SS-02&lt;/p&gt;&lt;/a&gt;&lt;p&gt;半田吸い取り器は基本は電動式のものを使うのだが、電動式のものはスイッチ入れてから使えるようになるまで、数分かかる。かといってずっと待機させておくとなると場所もとるしコテ先も焼けるしでわずらわしい。手動式のものは力が弱いのが難点なのだが、これを試しに買ってみたらかなり強い。片面基盤ならこれで十分。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/48jlxLc'&gt;&lt;img src='https://m.media-amazon.com/images/I/61C99QQ6ZaL._AC_SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/48jlxLc'&gt;&lt;p&gt;IKococater 安定化電源 直流安定化電源 0-30V 0-10A&lt;/p&gt;&lt;/a&gt;&lt;p&gt;デジタル回路の制作が主になって、安定化電源のお世話になることも減ったのでずっと持っていなかったのだが、久しぶりに必要になったので購入。子供の頃はまだスイッチング電源がなくて、10Aも取れるものは巨大で高価だったものだが、今はこんなにコンパクト、安価になった。この手の廉価なものは調整ツマミが可変抵抗で経年変化でガリって使い物にならなくなるのだが、驚いたことにロータリーエンコーダが使われていた。今のところ問題無し。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/48AwEyZ'&gt;&lt;img src='https://m.media-amazon.com/images/I/61uY-USWknL._AC_SY741_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/48AwEyZ'&gt;&lt;p&gt;ゼルダの伝説　ティアーズ オブ ザ キングダム -Switch&lt;/p&gt;&lt;/a&gt;&lt;p&gt;10年くらい前にゲームに物理演算の時代が来るみたいに言われていたと思うが、これほど早く実現するとは。本当に現実世界にあるかのように物体が転がったり壊れたりする。このため攻略の自由度も半端無く大きい。祠の難易度は前作より下がった感じがするけどより一般の層も対象とするための配慮なのだろう。5月の連休の頃に届いて、毎日少しずつやっているが、まだ遊べている。文句無しの名作。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3vsp8Ys'&gt;&lt;img src='https://m.media-amazon.com/images/I/71EnvWWyF3L._AC_SY879_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3vsp8Ys'&gt;&lt;p&gt;新輝合成 トンボ ユニード ゴミ箱 蓋を開けずにごみを捨てられる&lt;/p&gt;&lt;/a&gt;&lt;p&gt;猫がゴミ箱をいたずらするので試しに買ってみた。とても使いやすくて満足。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3NKR0xu'&gt;&lt;img src='https://m.media-amazon.com/images/I/61VjKQqXYeL._AC_SX679_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3NKR0xu'&gt;&lt;p&gt;MICHELIN(ミシュラン) COUNTRY ROCK BLK 26X1.75 26 X 1.75&lt;/p&gt;&lt;/a&gt;&lt;p&gt;自転車用のタイヤはパナレーサを使っていた。ところが別にコーナを攻めたりする乗り方をしているわけでもないのに、前回買ったものがサイドの摩耗が激しかったので、試しにこちらのものを買ってみた。今のところ快調なのでしばらくはミシュランを続けてみようと思う。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/41DNc6V'&gt;&lt;img src='https://m.media-amazon.com/images/I/61uBH+q5TrL._AC_SX569_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/41DNc6V'&gt;&lt;p&gt;WOVTE折りたたみ式 ルーペ 10倍&lt;/p&gt;&lt;/a&gt;&lt;p&gt;ルーペは幾つか買ってみたが、今はこれに落ち着いた。もう少し安い価格帯だと40倍などのものがあるが、正直20倍を越えるものは焦点距離が短か過ぎて使いにくい。10倍あたりが使いやすい。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3S1McGD'&gt;&lt;img src='https://m.media-amazon.com/images/I/61PpyfqMrVL._AC_SX522_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3S1McGD'&gt;&lt;p&gt;アイリスオーヤマ 電動空気入れ&lt;/p&gt;&lt;/a&gt;&lt;p&gt;自転車用の空気入れ。最初に買ったものは電池内蔵のタイプでそんなに悪くは無かったのだが、やはり2年ほど使うと電池の寿命で使えなくなった。次に買ったのは乾電池式のものだったが力不足でいまひとつ。3台目に買ったのがこれ。アイリスオーヤマは電動工具も扱っていて、電池は共通なので電池の寿命が来たら電池だけ交換すればOk。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3RYxZdt'&gt;&lt;img src='https://m.media-amazon.com/images/I/71Bj0kB5IHL._AC_SY450_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3RYxZdt'&gt;&lt;p&gt;【2023改良型】TEPNICAL 3in1 Magsafe充電器 Qi認証 ワイヤレス充電器 &lt;/p&gt;&lt;/a&gt;&lt;p&gt;Apple WatchとiPhoneを同時に充電できるスタンド。磁石が入っていてiPhone充電の時の位置合わせのストレスが無いのが良い。もう1台買ってリビングとデスクに置いている。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style='margin-bottom:1em;display: grid; grid-template-columns: 310px 1fr;'&gt;&lt;a href='https://amzn.to/3TKdenc'&gt;&lt;img src='https://m.media-amazon.com/images/I/51hD8mDnmkL._AC_SX679_.jpg' style='display:block;margin: 0 auto; width:auto; height:auto; max-width:300px; max-height:300px;'&gt;&lt;/a&gt;&lt;div style='display: inline-block; vertical-align: top'&gt;&lt;a href='https://amzn.to/3TKdenc'&gt;&lt;p&gt;kvmスイッチ hdmi 4K kvm スイッチ HDMI切替器 4ポート（PC4台用）&lt;/p&gt;&lt;/a&gt;&lt;p&gt;ずっと使っていたKVMスイッチ、1ポートダメになったのを騙し騙し使っていたが、いよいよ壊れたので新しいものを購入。良くあるKVMスイッチは四方八方にケーブルが出るようになっていてデスクの上がカオスになるので、リモコンが付いているものにした。おかげでデスクがすっきりした。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

      </content>
    </entry>
  
    <entry>
      <title>夏休みの自由研究はCH32V003でLチカ</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1378"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1378</id>
      <updated>2023-08-18T08:08:40Z</updated>
      <published>2023-08-18T08:08:40Z</published>
      <content type="html">
        &lt;a href=&quot;https://ruimo.github.io/ch32v003try/&quot;&gt;夏休みの自由研究は、CH32V003でLチカ&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>GWの自由研究</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1347"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1347</id>
      <updated>2023-05-04T06:05:06Z</updated>
      <published>2023-05-04T06:05:06Z</published>
      <content type="html">
        今回は&lt;a href=&quot;https://r8c-m1x0a.github.io/univ_tester/&quot;&gt;万能導通テスタ&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>家庭用のオーディオでの必要な出力</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1315"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1315</id>
      <updated>2023-01-07T02:01:20Z</updated>
      <published>2023-01-07T02:01:20Z</published>
      <content type="html">
        &lt;p style=&quot; font-weight:bold;&quot;&gt;この件、どうやら&lt;a href=&quot;https://www.ruimo.com/showArticle/1346&quot;&gt;最終段の切り替え機に原因があったようです&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;少し前にこのアンプを買ったのだが、&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.amazon.co.jp/dp/B072Z7FR4Y&quot;&gt;FX-AUDIO- FX202A/FX-36A PRO&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;少し大き目の音になると盛大にバリっというノイズが乗るのが気になっていた。カタログ値は48Wとあるが、これは4Ω負荷のようなので、うちの8Ωのスピーカだと24Wというところだろう。それでも24Wもあれば十分だと思っていた。&lt;/p&gt;

&lt;p&gt;というのも大昔にオーディオの記事で普通の家なら5Wも出せば近所迷惑な音量になると書かれていたのを読んで、それを特に検証もせずに(50年近くw)信じていたのだ。もちろん音量はスピーカの能率とアンプの出力の両方に依存するから、アンプ出力だけで判断はできないのだが、うちのスピーカはフルレンジの高能率のものなのだ。&lt;/p&gt;

&lt;p&gt;ただ、もしかするとアンプの故障の可能性もあるので、抵抗負荷で最大出力近辺での挙動を見てみることにした。大昔に作ったファンクションジェネレータを発掘して、8Ωのセメント抵抗負荷で1kHzの正弦波でアンプに負荷をかけてみた。&lt;/p&gt;

&lt;div&gt;&lt;img width=&quot;400px&quot; src=&quot;/getImage?id=1633&quot;&gt;&lt;/div&gt;

&lt;p&gt;オシロで見る限り、特に波形の乱れ無く20Vppまできれいに出ていたのでアンプは無罪のようだ。FX-AUDIOさん疑ってごめんなさい。&lt;/p&gt;

&lt;p&gt;つまりこれまでの自分の知識をアップデートせねばなるまい。20W程度の出力では少し音量が大きくなると力不足で、特にD級アンプだと定格を少しでも超えると盛大にノイズが乗るので、かなり余裕を見た方が良さそうだ。人間の耳は音量のスケールが対数なので、2倍程度では足りなさそうで、100Wくらいの出力の余裕は最低限必要そうだ。最近のアンプはどれも4Ω負荷が基準なので、そうするとチャンネルあたり200Wくらいは必要ということになる。探してみると、こんなのが見つかるが、&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B09ZQL3QDW&quot;&gt;Fosi Audio TB10D&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ちゃんと出力を得るには48V 10AのACアダプタを使えとのこと。それでも480Wだから、300W x 2出力には足りていないと思うけど、まぁオーディオ用途なら常にフル出力必要なわけじゃないから大丈夫という見立てなのだろう。とはいえ、探してみてもそんな化け物のようなACアダプタは存在しないので、現実的にはこの手の小型D級アンプだと厳しそうだ。&lt;/p&gt;

&lt;p&gt;昔のアンプで問題にならなかったのは、A級、B級アンプなら少々定格を超えても歪みが乗る程度で気にならなかったからなのだろう。&lt;/p&gt;

&lt;p style=&quot; font-weight:bold;&quot;&gt;くり返し: この件、どうやら&lt;a href=&quot;https://www.ruimo.com/showArticle/1346&quot;&gt;最終段の切り替え機に原因があったようです&lt;/a&gt;。&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>原因はアンプ切り替えの方だった模様。</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1346"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1346</id>
      <updated>2023-01-07T02:01:06Z</updated>
      <published>2023-01-07T02:01:06Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;https://www.ruimo.com/showArticle/1315&quot;&gt;前回の記事の件&lt;/a&gt;の続き。&lt;/p&gt;

&lt;p&gt;そういえば最終段にアンプ切り替え機が入っていたなと。&lt;/p&gt;

&lt;a href=&quot;https://www.amazon.co.jp/dp/B01M5CXPI0&quot;&gt;FX-AUDIO- PW-1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;普段はD級アンプでお手軽に済ませつつ、たまには真空管のアンプでも聴きたいので切り替え機を入れていたのだった。&lt;/p&gt;

&lt;p&gt;この切り替え機、スイッチに接触不良があり、一度交換してもらったけど、やっぱりダメ。仕方ないので改造してスイッチだけ取り替えたのだ。ただ、端子部分もかなりヤワな感じなので、もしかしてここが大出力になると接触不良になるのではと予想。そこでこの切り替え機を外してスピーカをダイレクトにアンプにつないでみた。&lt;/p&gt;

&lt;p&gt;結果、ノイズが無くなったので、どうも端子の接触不良のよう。ちょっとAmazonで探してみたけど、あまり良さそうな切り替え機が見当たらないので、ここも自作しないとダメかな。&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>冬休みの自由研究</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1283"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1283</id>
      <updated>2023-01-05T02:01:48Z</updated>
      <published>2023-01-05T02:01:48Z</published>
      <content type="html">
        &lt;p&gt;今回はMkDocsを使ってまとめてみた。&lt;/p&gt;

&lt;a href=&quot;https://ruimo.github.io/audioswitcher/&quot;&gt;冬休みの自由研究&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>昨年買って、割と良かったもの</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1282"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1282</id>
      <updated>2023-01-01T03:01:40Z</updated>
      <published>2023-01-01T03:01:40Z</published>
      <content type="html">
        &lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B09JG5W7NR&quot;&gt;WUBEN(ウーベン)&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Amazon.co.jp: WUBEN(ウーベン) : スポーツ＆アウトドア&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;自轉車用ライト(今は売切れになってしまっている模様)。これまでは電池内蔵のものを使っていたのだけど、だいたい2-3年で電池がダメになって丸ごと交換になり不経済なので電池交換できるものに変更。これを自轉車用のホルダーで固定している。18650電池なら電池もちも良く快適。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B08VW9FP58&quot;&gt;【Amazon.co.jp 限定】クモリ(Kumori) チェアマット クリア PVC 床保護マット 90X120cm 厚み2mm キズ防止 凹み防止 エンボス ゲーミングチェアマット 床暖房対応 滑り止め 冷蔵庫 フロアマット(90X120cm)&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;【Amazon.co.jp 限定】クモリ(Kumori) チェアマット クリア PVC 床保護マット 90X120cm 厚み2mm キズ防止 凹み防止 エンボス ゲーミングチェアマット 床暖房対応 滑り止め 冷蔵庫 フロアマット(90X120cm)が床保護マット・チェアマットストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料（一部除く）。&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;イスのキャスターにワックスとホコリがまざったものがこびり付いて厄介だったので、これを敷いてみたら効果てきめん。キャスターの汚れが全然付かなくなった。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B07NFXN4SS&quot;&gt;MikroTik CRS309-1G-8S+IN&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;The CRS309-1G-8S+ is a very compact, yet powerful networking switch. It has eight SFP+ slots, supporting up to 10 Gbit module in each, which results in a total switching capacity of 162 Gbps and total non-blocking throughput of 81 Gbps. The device also has dual-core 800 MHz CPU, 512 MB RAM, a man...&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;10Gbpsのスイッチ。なんか値段が買った時の2倍以上になってしまっているので、買うなら別のところが良いかも。安定して動いている。ただ10GbpsはRJ-45は発熱がひどいので、SFP+を推奨。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B08W8WBWR6?th=1&quot;&gt;Atlas(アトラス)ボトル イン ボトル ハンドルタイプ シルバー ABIB-CSV ペットボトルホルダー 真空 断熱 構造&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Atlas(アトラス)ボトル イン ボトル ハンドルタイプ シルバー ABIB-CSV ペットボトルホルダー 真空 断熱 構造がホーム＆キッチンストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料（一部除く）。&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;発想の勝利。ペットボトルごと入れられるので、炭酸飲料などは炭酸が抜けない。洗わなくて良いので会社に置きっぱなしというのも良いかも。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B09WLB9MZG?th=1&quot;&gt;マウスリストレスト 手のひら手首サポートパッド 3次元表面デザイン 滑らかな滑り 柔らかい冷却素材 マウスで動くスライドリストパッド 軽量 コンパクト オフィス作業 ゲーム 右手専用 (ブラック)&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Amazon.co.jp: マウスリストレスト 手のひら手首サポートパッド 3次元表面デザイン 滑らかな滑り 柔らかい冷却素材 マウスで動くスライドリストパッド 軽量 コンパクト オフィス作業 ゲーム 右手専用 (ブラック) : パソコン・周辺機器&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;最初は慣れなくて失敗かと思ったけど、慣れたらこれ無しだと手首が疲れてしまうように。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B010PZZX74&quot;&gt;KKHMF 3.3V 5V MB102ブレッドボード用 電源モジュール パワーモジュール [並行輸入品]&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;特徴: MB102パンボード用 5V、3.3Vとの互換性 入力電圧:6.5-12V（DC）またはUSB電源 出力電圧:3.3V、5Vの切り替え可能 最大出力電流:700ミリアンペア これはブレッドボード電源モジュールは、3.3Vと5Vの出力電圧をサポートすることができ、MB102のブレッドボード用に設計された電源モジュールである。 このパワーモジュールのサイズは約です。 53ミリメートル、長、35ミリメートル、幅20ミリメートルの厚さである。 ブレッドボード用に設計された電源モジュール サポート3.3V、5V出力 B102ブレッドボードに適し パッケージが含まれます: 5 X 3.3V ...&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;ブレッドボードに差して、USBもしくはACアダプタから5V or 3.3Vを供給できて便利。ただ機構上、逆に差すこともできてしまうので注意が必要。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://store.google.com/jp/product/nest_cam_battery?hl=ja&quot;&gt;Google Nest Cam (屋内、屋外対応 / バッテリー式)&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;スマートな機能を備えた、バッテリー式のセキュリティ カメラ。 Google Nest Cam は人、動物、車を判別でき、必要な通知だけが届くように設定できます。 Google Nest Cam はバッテリー式で、リビングルームから庭まで、必要な場所にどこでも設置できます。 何か起きたときは通知が届くので、Google Home アプリですぐに対応できます。 別売りの屋内用スタンドや防塵・防滴ケーブルなどの各種アクセサリを追加すれば、Google Nest Cam がさらに使いやすくなります。 Wi-Fi の停止や停電が発生した場合、Google Nest Cam が自動的にアクティビティの動画履歴を最長 1 時間分、ローカルメモリに保存します。Wi-Fi や電源が再稼働したら、その間に起きた出来事を確認できるようになります。また万一、カメラが何者かに無断で持ち去られてしまった場合は、無料で交換ができます。&lt;/p&gt;&lt;/blockquote&gt;
&lt;script async src=&quot;//cdn.embedly.com/widgets/platform.js&quot; charset=&quot;UTF-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;思ったよりずっと便利。こんな風に自分の敷地を設定しておけば、そこに誰か入ってくるとたちどころにスマホに通知が来る。&lt;/p&gt;

&lt;img src=&quot;/getImage?id=1601&quot; style=&quot;width: 300px;&quot;&gt;

&lt;p&gt;ただカタログスペックでは電池が数か月もつと書いてあるが、1週間ももたない感じ。まぁモバイルバッテリーつなげば充電できるのでそれでしのいでいる。&lt;/p&gt;

&lt;blockquote class=&quot;embedly-card&quot;&gt;&lt;h4&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air-m2/&quot;&gt;M2チップ搭載MacBook Air&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;M2チップの驚異的なパワーを内蔵したMacBook Air。一日中使えるバッテリー、13.6インチのLiquid Retinaディスプレイ、1080p HDカメラを搭載。デザインも性能も一新しました。&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;最近のIntel様のチップの消費電力がやばすぎるので、Apple Silicon。速い、軽い、熱くならないの三拍子。スリープしたまま1週間くらい放置しても7割くらいは電池が残っている。垂直統合の勝利。&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>reveal.jsを使ったページをGitHub Pagesで公開すると、幾つかのファイルが404になる。</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1250"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1250</id>
      <updated>2022-09-13T09:09:09Z</updated>
      <published>2022-09-13T09:09:09Z</published>
      <content type="html">
        &lt;p&gt;基本的には、&lt;a href=&quot;https://github.com/hakimel/reveal.js/&quot;&gt;ここ&lt;/a&gt;の内容をそのままGitHubに登録してpagesの設定をすれば良い。例えば&lt;a href=&quot;https://qiita.com/budougumi0617/items/19b19019bbe01f86e251&quot;&gt;「Reveal.js、Markdown、Githubでスライドを作成する。」&lt;/a&gt;が良くまとまっている。だが1つ謎の事象が起きて悩んだ。&lt;/p&gt;

&lt;p&gt;index.htmlの中に、直接markdownを書く時には良いのだが、以下のようにdata-markdown属性でmdファイルを指定すると、不可思議な動作をする。&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;
&amp;lt;section data-markdown=&quot;./md/firstpage.md&quot;
    data-separator=&quot;\n---\n$&quot;
    data-vertical=&quot;\n--\n&quot;&amp;gt;
    &amp;lt;script type=&quot;text/template&quot;&amp;gt;
    &amp;lt;/script&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;最初にcommit/pushした時は表示されるものの、変更してcommit/pushしても変更が反映されなかったり、そもそもこのmdファイルが404エラーで見つからなかったりする。GitHub Pagesの不具合なのかなと諦めていたのだけど、ある推測が頭に浮かんだ。それは、index.htmlからリンクされているファイルしかGitHub Pages管理されないのではないかという推測だ。このmd/firstpage.mdファイルの指定はdata-タグなので、GitHub Pagesのパーサには認識されないのではないか。&lt;/p&gt;

&lt;p&gt;そこで以下のようにダミーのaタグを入れてみた(もっと良いやり方があるのかも)。&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;
&amp;lt;a style=&quot;display:none&quot; href=&quot;./md/firstpage.md&quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;これがビンゴ。ちゃんとmdファイルの更新が反映されるようになった。&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>Clean Craftsmanship</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1218"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1218</id>
      <updated>2022-08-22T04:08:02Z</updated>
      <published>2022-08-22T04:08:02Z</published>
      <content type="html">
        &lt;p&gt;Clean Craftsmanshipをいただきました。いつものボブおじさんのClean XXXシリーズ。&lt;/p&gt;
&lt;p&gt;ボブおじさんの書籍シリーズの良いところは、自分は以下のように見ている。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;前提知識が少なくても出来る限り理解できるように練られている。&lt;/li&gt;
&lt;li&gt;高尚な話ではなく、現場叩き上げの話が中心。&lt;/li&gt;
&lt;li&gt;なんとなく、これおかしいよなぁと薄々感じつつも、現場の空気で言えないようなことを、ズバっと言ってくれる(Clean Codeでの「コメントは害悪」など)。&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;今回も個人的に面白かった部分を取り上げたい。&lt;/p&gt;

&lt;h1&gt;第2章&lt;/h1&gt;

&lt;p&gt;この章は基本的にTDDの実践をサンプルを使って詳しく記載している。基本的な部分から解説されているので、TDDについては初めてという初心者の人でも全く問題なく理解できるだろう。前提知識不要というのは素晴しい。&lt;/p&gt;

&lt;h2&gt;「デバッガーが得意になることを目指すべきではない」&lt;/h2&gt;
&lt;p&gt;テストコードを数行書き、エラーやテスト失敗をてがかりに本番コードを書く。というやり方を繰り返す中ではデバッガーの出番はほとんど無い。&lt;/p&gt;
&lt;p&gt;そういえば会社に入った頃(30年くらい前)は、会社での開発のやり方がかなり違うことに驚いた記憶がある。ある先輩はひたすらコードを仕様書に従って組み上げた後、巨大なプログラムを動かし始めて、なかなか動かずに難解なバグに頭を悩ませていたのだ。その後、研修で「コーディング」と「テスト」は局面が別れているので、先輩のやり方が会社としては正しいのだと知った。&lt;/p&gt;
&lt;p&gt;自分がそれまでにやっていた趣味のプログラミングでは、ちょっとだけコードを実装してみて、動かしてみて確認。Okならまた先に少しだけ前進。というのを繰り返していた。なにせ当時はC/C++なので慎重に進んでいかないと、メモリを破壊するデバッグ困難なバグで長時間足をとられてしまう。少しずつ進んでいかないと、根本的な設計ミスに気付いた時に大手術となってしまうので、自然とそういうやり方をとっていた。&lt;/p&gt;
&lt;p&gt;TDDの普及によってようやくコーディングとテストは不可分なものになったわけだ。&lt;/p&gt;

&lt;h1&gt;第3章&lt;/h1&gt;

&lt;p&gt;TDD応用編だ。テストの時に使う「ニセモノ」。テストダブル。これにはフェイク、ダミー、スタブ、スパイ、モックがあるという解説。前はモックとスタブくらいしか無かった気がするけど、今はそんなにあるのね。&lt;/p&gt;

&lt;h2&gt;スパイを使ったテストは壊れやすい&lt;/h2&gt;
&lt;p&gt;sin()の計算をテイラー級数で求める時のテストをどうするか。sin()の引数は無限にあるので何をもって充足していると言えるか。そこで、テイラー級数の各項を教えてくれるクラスを抽出して、それをスパイに置き換えて様々な条件を与えてやれば、テイラー級数の計算ロジックが正しいことを検証できる。しかし計算方法をCORDICに変えると全てが無駄になってしまう。それがスパイの限界だ。テストの壊れにくさを追求すには、なるべく本番コードとの結合を弱める必要があるが、そうするとより詳細にテストを行うことが困難になる。これはトレードオフなのだ。&lt;/p&gt;

&lt;p&gt;ここでふと思ったのだけど、このあたりのテストダブルを自分は最近全然使っていないなと。全く使っていないわけではないが非常に限られたケースでしか使っていないように思う。なぜなのか考えてみたが、まずE2Eテストの方が主でUnitテストはE2Eでカバーできないところだけ補足的やる感じのスタイルになったので、こうした仕組みの重要性が薄れた。E2Eテストなら、内部の実装を変えても外部からみた振舞いが変わっていなければテストは壊れない。&lt;/p&gt;
&lt;p&gt;ScalaやRustを使う機会が増えてきて、なんでもかんでもOOで書くというのがなくなったので、テストダブルがあまりうまくはまらないというのもあるかもしれない。基本は関数を渡すように設計するので、テスト用の関数をテストの時に渡すやり方でテストしている。&lt;/p&gt;

&lt;p&gt;本書の方針はコンポーネントの境界を越えないならテストダブルを使っても良い。そうでなければなるべく使わないだ。これまで感じていた「なんかテストダブルって分かりにくいし嫌だな」という感覚が明快に言語化されていて良い。&lt;/p&gt;

&lt;h1&gt;第4章&lt;/h1&gt;

&lt;h2&gt;「GUIをテストするな」&lt;/h2&gt;

&lt;p&gt;これはSeneniumのようなツールによるテストを否定しているのではなく「GUIでレンダリングされた見た目が正しいことをテストするな」ということだ。見た目は、頻繁に変わるのであっという間にテストが壊れて作り直しの繰り返しになる。まぁこれは昔から言われているやつ。&lt;/p&gt;
&lt;p&gt;GUIの領域は設計によってかなり小さくできるので、それを目指せば大きな問題ならないとのこと。&lt;/p&gt;
&lt;p&gt;ただ典型的なWebアプリはともかく、インタラクティブ性の高いGUIアプリはそうもいかないのではないかなぁ。自分はドロー系のアプリを作るのが好きで趣味で良く作ったりするが、例えばオブジェクトを複数選択してドラッグして移動するとか、ドラッグ中に画面の端までいったら自動的にスクロールするとか、そういう部分はGUIと切り離してテストするのは困難だし、良いテストツールも無いのが現状だと思う。&lt;/p&gt;

&lt;h2&gt;「XXXクラスにXXXTestクラスを用意するというやり方をやめる」&lt;/h2&gt;
&lt;p&gt;TDDの初期の頃の解説にあったXXXクラスにXXXTestクラスを用意するやり方は間違いだったと認めている。これはテストと本番コードとの結合度を高め、構造の改善をしようとすると大量のテストが失敗してしまう。本書ではレンタルビデオの例を使い、あるビジネスケースを実行するテストを紹介する。1ビジネスケースはCustomerとかRentalやVideoRegistryなど複数の協調で実現されるが、これらのクラスを個別にテストするのではなく「ビデオxxxを顧客yyyがレンタルする」というビジネスケースでテストをする。&lt;/p&gt;
&lt;p&gt;今はWebアプリもSPAで、サーバサイドはAPIサーバになっているので、このAPI単位でテストを書くのが妥当なのかもしれない。APIは一旦公開したら勝手に変更できないから、そこにテストが依存しても将来壊れるリスクは小さいだろう。自分が数年前からE2Eテスト重視に転向したのもこれが理由だ。&lt;/p&gt;

&lt;h2&gt;git reset --hardは友達&lt;/h2&gt;

&lt;p&gt;リファクタリングを始めてみて行き詰まったらすっぱとあきらめて元に戻そう。&lt;/p&gt;
&lt;p&gt;まったくその通りだ(笑)。&lt;/p&gt;

&lt;h1&gt;第6章&lt;/h1&gt;

&lt;h2&gt;YAGNI&lt;/h2&gt;

&lt;p&gt;フックは悪との解説。&lt;/p&gt;
&lt;p&gt;自分が会社に入った当時はUser Exitと呼ばれていた。この仕組み、当時はなるほどと思ったものの、これをうまく活用するのは想像以上に難しい。User Exitに書いたものが本体コードにどういう影響を与えるのか分からないので、試行錯誤でうまい具合に動く「局所解」を探す旅になるのだ。何より当時は本体側のソースコードが開示されていないので文字通り手探りだった。本体コードを開発する側も、ユーザ側がどんなUser Exitを書くか事前に全てを想像できるわけではないので無理筋な仕組みだろう。でも今も「プラグイン」というのは残っているよね... とも思うが。&lt;/p&gt;

&lt;h1&gt;第7章以降&lt;/h1&gt;

&lt;p&gt;基本的に読み物として楽しめば良いように思う。ボブおじさんの経験談にもとづいた教訓の膨大な集積場だ。&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>ニューカマー</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1187"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1187</id>
      <updated>2022-06-05T05:06:13Z</updated>
      <published>2022-06-05T05:06:13Z</published>
      <content type="html">
        &lt;p&gt;
手が凄く太いので大きくなりそう。&lt;/p&gt;
&lt;img src=&quot;/getImage?id=1569&quot;&gt;

      </content>
    </entry>
  
    <entry>
      <title>ソースコードを変更すると、cargo runで毎回ライブラリのビルドが走ってしまう。</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1155"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1155</id>
      <updated>2022-04-24T05:04:59Z</updated>
      <published>2022-04-24T05:04:59Z</published>
      <content type="html">
        &lt;p&gt;ソースコードを変更すると、cargo runで毎回ライブラリのビルドが走ってしまうようになった。起きる環境はLinuxで、同じソースコードをMac(Intel)に持っていっても再現しない。
色々調べていると、ソースコードを変更すると自動的に裏でrustcが走っていることがpsで確認できた。&lt;/p&gt;
&lt;p&gt;どうやらRustのLanguage ServerがVS Codeのpluginであるrust-analyzerで自動インストールされ、これが裏で自動的にソースコードの変更を検出してビルドを実行するようだ。Emacs用のlsp関係のパッケージを入れていても同じ事が起きる。&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;雑にググると、.cargo/config の中にtargetディレクトリを指定しろというのが出てくるが、これはvs codeでもcargoの直接起動でも効くので意味がない。そりゃそうだ。vs codeの時だけtargetディレクトリを変更したいのだ。.vscode/launch.json にenvで指定せよというのが見つかったのでやってみたが、効かなかった。&lt;/p&gt;
&lt;p&gt;仕方ないのでcargoを直接起動する時用のラッパを作って逃げることにした。&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;
#!/bin/sh
CARGO_TARGET_DIR=cargo-target cargo $*
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;これを使って、cargo runのかわりに、./c runとする。少々面倒だが仕方無い。&lt;/p&gt;


      </content>
    </entry>
  
    <entry>
      <title>桜</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1154"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1154</id>
      <updated>2022-03-27T07:03:36Z</updated>
      <published>2022-03-27T07:03:36Z</published>
      <content type="html">
        &lt;p&gt;曇りがちで風も強かったけど、近所の公園へ。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1540&quot;&gt;&lt;img src=&quot;/getImage?id=1549&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1542&quot;&gt;&lt;img src=&quot;/getImage?id=1550&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1541&quot;&gt;&lt;img src=&quot;/getImage?id=1551&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1546&quot;&gt;&lt;img src=&quot;/getImage?id=1552&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1548&quot;&gt;&lt;img src=&quot;/getImage?id=1543&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1547&quot;&gt;&lt;img src=&quot;/getImage?id=1545&quot;&gt;&lt;/a&gt;&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>雪晃の花</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1122"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1122</id>
      <updated>2022-03-23T09:03:41Z</updated>
      <published>2022-03-23T09:03:41Z</published>
      <content type="html">
        &lt;p&gt;去年は咲かなかったけど、今年は無事咲いた。&lt;/p&gt;
&lt;a href=&quot;/getImage?id=1505&quot;&gt;&lt;img src=&quot;/getImage?id=1506&quot;&gt;&lt;/a&gt;
      </content>
    </entry>
  
    <entry>
      <title>池上梅園</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1090"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1090</id>
      <updated>2022-02-23T08:02:04Z</updated>
      <published>2022-02-23T08:02:04Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;/getImage?id=1464&quot;&gt;
&lt;img src=&quot;/getImage?id=1463&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1462&quot;&gt;
&lt;img src=&quot;/getImage?id=1466&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1465&quot;&gt;
&lt;img src=&quot;/getImage?id=1461&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1460&quot;&gt;
&lt;img src=&quot;/getImage?id=1467&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1458&quot;&gt;
&lt;img src=&quot;/getImage?id=1459&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1469&quot;&gt;
&lt;img src=&quot;/getImage?id=1468&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今年の開花は遅いみたい。三分咲きという感じ。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1471&quot;&gt;
&lt;img src=&quot;/getImage?id=1470&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1473&quot;&gt;
&lt;img src=&quot;/getImage?id=1472&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1475&quot;&gt;
&lt;img src=&quot;/getImage?id=1474&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1477&quot;&gt;
&lt;img src=&quot;/getImage?id=1476&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1479&quot;&gt;
&lt;img src=&quot;/getImage?id=1478&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1483&quot;&gt;
&lt;img src=&quot;/getImage?id=1481&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/getImage?id=1482&quot;&gt;
&lt;img src=&quot;/getImage?id=1480&quot;&gt;&lt;/a&gt;&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>私用のPCでもWindowsが必要になりそうなので、Windows10を導入。</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=1058"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=1058</id>
      <updated>2021-10-09T04:10:31Z</updated>
      <published>2021-10-09T04:10:31Z</published>
      <content type="html">
        &lt;p&gt;USBメモリにISO焼いて起動しても途中でエラー。Windows10はDVD-DLに焼かないとダメなのね。多分USBのドライバが入ってないのだと思う。&lt;/p&gt;
&lt;p&gt;普段はXubuntuなのでWindowsは別のドライブに導入してマザーのブートメニューで切り替え。しばらく大丈夫だったのが突然Xubuntu側が起動できずBusyboxが上がるだけに。GRUBかMBRが壊れたのかなとUbuntuのDVDで起動してfdisk -lするとNVMeドライブがいない! SSDが突然死かと思って外してUSBアダプタに付けて確認すると問題無し。まさかマザーのNVMeが死んだのかな、ちょっと考えにくいなとUEFIのメニューを確認したら、NVMeのストレージモードがAHCIからIntel Optaneに変更されていた。なんだこれと思ってAHCIに戻したら普及。&lt;/p&gt;
&lt;p&gt;当然Windowsの方は起動しなくなってしまったので再インストール。マザーのチップセットドライバを入れ直していて気付いた。チップセットドライバの中にIntelのストレージドライバがあるのだけど、これが脳天気に「AHCIなんてやめてOptane入れちゃいなよ」とサジェストしてくるのだった。最初の時は何も考えずにそもまインストールしたので、Optaneモードに変更されてしまったのだな。&lt;/p&gt;

&lt;p&gt;確かWindows8の時にキャンペーン的なのがあって、手持ちのXPのライセンスをWindows8に格安でアップグレードしたんだけど、当時はどうもライセンス回りの処理がいまいちだったようで、何度かライセンス・エラーになって面倒になって放置していた。今回は、そのライセンスとWindows10のISOで導入してみたのだけど、最初にMicrosoftアカウントでログインするだけで自動的にライセンスが有効になっていたので改善されたのだろう。&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>桜</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=996"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=996</id>
      <updated>2021-03-27T05:03:08Z</updated>
      <published>2021-03-27T05:03:08Z</published>
      <content type="html">
        近所の公園を散歩。
宴会禁止になっていたので静かで良かった。

&lt;img src=&quot;/getImage?id=1421&quot;&gt;&lt;br&gt;
&lt;img src=&quot;/getImage?id=1420&quot;&gt;&lt;br&gt;
&lt;img src=&quot;/getImage?id=1419&quot;&gt;&lt;br&gt;
&lt;img src=&quot;/getImage?id=1418&quot;&gt;&lt;br&gt;
&lt;img src=&quot;/getImage?id=1417&quot;&gt;&lt;br&gt;
&lt;img src=&quot;/getImage?id=1416&quot;&gt;&lt;br&gt;
&lt;img src=&quot;/getImage?id=1415&quot;&gt;

      </content>
    </entry>
  
    <entry>
      <title>池上梅園</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=995"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=995</id>
      <updated>2021-02-06T09:02:37Z</updated>
      <published>2021-02-06T09:02:37Z</published>
      <content type="html">
        &lt;p&gt;三分咲きといったところ。&lt;/p&gt;

&lt;img src=&quot;/getImage?id=1409&quot;&gt;
&lt;img src=&quot;/getImage?id=1413&quot;&gt;
&lt;img src=&quot;/getImage?id=1410&quot;&gt;
&lt;img src=&quot;/getImage?id=1412&quot;&gt;
&lt;img src=&quot;/getImage?id=1414&quot;&gt;
&lt;img src=&quot;/getImage?id=1411&quot;&gt;
      </content>
    </entry>
  
    <entry>
      <title>プログラミング言語Rust公式ガイド</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=962"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=962</id>
      <updated>2020-03-04T09:03:21Z</updated>
      <published>2020-03-04T09:03:21Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/4048930702&quot;&gt;「プログラミング言語Rust公式ガイド」&lt;/a&gt;を大分前に送って戴いていたのを、ようやく読んだ。&lt;/p&gt;

&lt;p&gt;Rustは、個人的にかなり気に入った言語で、早く組込み開発で普通に使えるようにならないかなと思っている。&lt;a href=&quot;https://doc.rust-jp.rs/book/second-edition/&quot;&gt;Rustの公式のガイド&lt;/a&gt;がとても良く出来ており、おそらく多くの人がここをとっかかりに始めているのではないかと思う。本書は、このガイドを読んだ人、読んでいない人のどちらにも勧められる良書だ。ただ中盤以降の翻訳は一部こなれていない箇所もあり、意味が良く分からない時のために原書もあると良いと思う。&lt;/p&gt;

&lt;p&gt;2章 Shadowing。Rustでは同じ名前の変数を複数回宣言できて、それにより前の変数はShadowされる(見えなくなる)。他の言語では、ほとんどが二重宣言のエラーになるところだ。便利かもしれないが個人的にはRustの言語仕様の中で、ほぼ唯一疑問を感じるところ。まぁ関数のサイズが小さければ問題ないのかもしれない。&lt;/p&gt;

&lt;p&gt;2章 Result型。他の多くの言語が例外を使うのに対し、Rustは正常時と異常時との2つの型を持てるいわゆるEither型を使用する。ユーザのコードがResult型の結果を受けて何もしていないとコンパイラが警告を出してエラー処理を忘れていないかと忠告してくれる。&lt;/p&gt;

&lt;p&gt;3章 Rustのセミコロンの扱いは、他の言語(行末のセミコロンを省略しても良いという仕様)から来た人をとまどわせることが多いと思う。値を返したい場合にはセミコロンを書いてはいけないし、文の間は基本はセミコロンで区切らないといけない。&lt;/p&gt;

&lt;p&gt;4章 Rustで特徴的なのが所有権の管理。&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;
let s1 = String::from(&quot;Hello&quot;);
let s2 = s1;
&lt;/pre&gt;

&lt;p&gt;最後の文でs1からs2に文字列の所有権が移転されて、この後はs1が使用できなくなってしまう。これにより二重解放のバグが回避される。&lt;/p&gt;

&lt;p&gt;4章 そしてもう1つ象徴的なのが参照の管理。例えばJavaとかScalaでは型によりImmutableかどうかが決定される(Javaはまぁ、Collections.unmodifiableXXX()みたいな型だけじゃ判別できない辛いやつもあるけど)。String型ならImmutableだし、StringBuilderならMutableだ。Rustはここの考え方が根本的に異なり、最初に見た時は衝撃を受けた。コードのあらゆるポイントで以下が満たされていることをコンパイラがチェックしてくれる。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Immutableな参照(&amp;)だけであれば、同時に幾つでも生成できる。&lt;/li&gt;
&lt;li&gt;1つでもMmutablな参照(&amp;mut)があれば、これ以外に別のMutableな参照もImmutableな参照も同時に存在できない。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;この条件を満たしさえすれば、何もImmutableなデータのみに拘泥してロジック組まなくてもいいよね、という考え方なのだ。そしてスレッド安全性もコンパイラがチェックできてしまう。&lt;/p&gt;

&lt;p&gt;8章 Rustはデフォルトはmoveセマンティクスなので、コレクションにデータを格納すると、所有権が移転されてコレクション側に移る。このあたりも他の言語から来た人を、かなり驚かせる点だろうと思う。&lt;/p&gt;

&lt;p&gt;10章 そしてライフタイム。Rustでは、ライフタイム(そのデータがどこまで有効であるか)を指定するのにジェネリクスの記法を用いる。おそらくRustで最初につまずくポイントがここだろう。&lt;/p&gt;

&lt;p&gt;13章 Rustではクロージャを利用できる。ただクロージャは環境にアクセスできるので、その環境からキャプチャした変数の扱いにも所有権が絡んでくる。そのためクロージャにも3つの型があり、FnOnceは環境から所有権を奪い、FnMutは可変借用をし、Fnは不変借用をする。&lt;/p&gt;

&lt;p&gt;17章 代表的なGoFデザインパターンをRustで実装してみる試みがおもしろい。&lt;/p&gt;

&lt;p&gt;19章 関連型。Iteratorは要素の型を型パラメータではなく、関連型で指定する。&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;
pub trait Iterator {
  type Item;
}
&lt;/pre&gt;

&lt;p&gt;Scalaでも抽象型宣言という同じ機能があるのだが、型パラメータを使うのと比べて何が違うのかが良く分からなかった。本書は関連型を使うと何が嬉しいのかが具体的に解説されている。本書の良い点は随所でこのように「なぜそうなっているのか、何が嬉しいのか」かがきちんと説明されている点だ。&lt;/p&gt;

&lt;p&gt;以上、個人的に特に面白いなと感じた点を、つまみ食い的に紹介してきたが、本書の内容は網羅的であり、これ1冊理解すればRustの大部分を理解できると思う。&lt;/p&gt;

&lt;p&gt;Rustの魅力は、上にも書いたように低レベルの処理をマルチ・スレッド処理も含めて安全に書けることに加え、しがらみが無いため単純で美しい点、エラーメッセージが懇切丁寧である点、また単体テストやビルドツールが標準で用意されている点などが挙げられると思う。最近は採用されるケースも良く聞くようになってきたので、今後ますますの普及に期待したい。&lt;/p&gt;



      </content>
    </entry>
  
    <entry>
      <title>札幌小観光</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=935"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=935</id>
      <updated>2019-06-12T11:06:28Z</updated>
      <published>2019-06-12T11:06:28Z</published>
      <content type="html">
        &lt;p&gt;羽田空港でちょっと遊ぶ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1362&quot;&gt;&lt;/p&gt;

&lt;p&gt;テレビ塔。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1366&quot;&gt;&lt;/p&gt;

大通り公園が一望できる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1363&quot;&gt;&lt;/p&gt;

&lt;p&gt;空港近くの支笏湖へ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1365&quot;&gt;&lt;/p&gt;

&lt;p&gt;小径を登っていくと...&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1367&quot;&gt;&lt;/p&gt;

&lt;p&gt;小さな展望台。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1364&quot;&gt;&lt;/p&gt;

&lt;p&gt;支笏湖は、山手線と同じ面積があるのだそう。スケールが違う...&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>武蔵嵐山</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=934"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=934</id>
      <updated>2019-05-26T07:05:05Z</updated>
      <published>2019-05-26T07:05:05Z</published>
      <content type="html">
        &lt;p&gt;某ゲームのイベントで武蔵嵐山に行ってきた。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1358&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1359&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1356&quot;&gt;&lt;/p&gt;

&lt;p&gt;ラベンダーにはちょっと早かった。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/getImage?id=1357&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1355&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1360&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1361&quot;&gt;&lt;/p&gt;


      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第29番 第4楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=933"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=933</id>
      <updated>2019-04-28T12:04:09Z</updated>
      <published>2019-04-28T12:04:09Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;最終楽章は長大なフーガ。最初に長い序奏が付いている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1344&quot;&gt;&lt;/p&gt;

&lt;p&gt;フーガは調性が薄く、力強く進んでいく。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1343&quot;&gt;&lt;/p&gt;

&lt;p&gt;印象的なカンタービレが置かれている。弱音器の指定があるだけで、強弱の指定が一切無く演奏者に任されている。最後は消えいるように終わってフーガに戻る。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1342&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後はffの力強い和音で終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1345&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-29-in-b-flat-major-op-106-hammerklavier/1210861834?i=1210862348&amp;app=music&quot;&gt;&lt;/iframe&gt;


      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第29番 第3楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=932"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=932</id>
      <updated>2019-04-21T08:04:07Z</updated>
      <published>2019-04-21T08:04:07Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第3楽章は長大な緩徐楽章。最初のテーマは非常に長く、苦難に満ちた独白のようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1334&quot;&gt;&lt;/p&gt;

&lt;p&gt;天から一筋の光が降りてくるかのようなテーマ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1331&quot;&gt;&lt;/p&gt;

&lt;p&gt;長い階段を登っていくかのよう。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1333&quot;&gt;&lt;/p&gt;

&lt;p&gt;永遠に続く美しいもの、幸福、しかし手は届かない。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1336&quot;&gt;&lt;/p&gt;

&lt;p&gt;出口の見えない霞の中、あるいは深海のよう。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1332&quot;&gt;&lt;/p&gt;

&lt;p&gt;抗い続けるが、&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1335&quot;&gt;&lt;/p&gt;

&lt;p&gt;不気味な影が近づく。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1337&quot;&gt;&lt;/p&gt;

&lt;p&gt;苦難が続く。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1338&quot;&gt;&lt;/p&gt;

&lt;p&gt;どれほど抗っても救われない。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1341&quot;&gt;&lt;/p&gt;

&lt;p&gt;あきらめのテーマが曲の終わりを告げる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1339&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後は長調ながらも、あきらめを感じさせるpppで終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1340&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-29-in-b-flat-major-op-106-hammerklavier/1210861834?i=1210862338&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第29番 第2楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=931"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=931</id>
      <updated>2019-04-14T05:04:08Z</updated>
      <published>2019-04-14T05:04:08Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第29番は4楽章構成で、第2楽章にはスケルツォが配されている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1329&quot;&gt;&lt;/p&gt;

&lt;p&gt;2つ目のテーマは、メロディなのかどうか分からないあやふやなもの。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1330&quot;&gt;&lt;/p&gt;

&lt;p&gt;突如Prestoになって流れが中断される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1326&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初のテーマが帰ってくる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1327&quot;&gt;&lt;/p&gt;

&lt;p&gt;そして最後にもPrestoで流れが中断され、なんともスケルツォらしい。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1328&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-29-in-b-flat-major-op-106-hammerklavier/1210861834?i=1210862314&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第29番 第1楽章 'ハンマー・クラフィール'</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=930"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=930</id>
      <updated>2019-04-07T08:04:16Z</updated>
      <published>2019-04-07T08:04:16Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;新しい音域の広くなったピアノを手に入れて意気込んで作曲したと言われている。&lt;/p&gt;
&lt;p&gt;ピアノ・ソナタとしては破格の規模の大きさ。第1楽章は壮大な高くそびえる和音で始まる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1316&quot;&gt;&lt;/p&gt;

&lt;p&gt;続くテーマは対照的に優しく滑らかなもの。&lt;/p&gt;

&lt;p style=&quot;display: inline-block&quot;&gt;&lt;img src=&quot;/getImage?id=1314&quot;&gt;&lt;img src=&quot;/getImage?id=1318&quot;&gt;&lt;/p&gt;

&lt;p&gt;初期のソナタに似ていて、次々と新しいテーマが登場する。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1317&quot;&gt;&lt;/p&gt;

&lt;p style=&quot;display: inline-block&quot;&gt;&lt;img src=&quot;/getImage?id=1313&quot;&gt;&lt;img src=&quot;/getImage?id=1319&quot;&gt;&lt;/p&gt;

&lt;p&gt;提示部最後のテーマ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1320&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部は、提示部最後のテーマで始まる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1322&quot;&gt;&lt;/p&gt;

&lt;p&gt;その後は、最初のテーマがカノン風に展開される。&lt;/p&gt;

&lt;p style=&quot;display: inline-block&quot;&gt;&lt;img src=&quot;/getImage?id=1321&quot;&gt; &lt;img src=&quot;/getImage?id=1323&quot;&gt;&lt;/p&gt;

&lt;p&gt;再現部。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1324&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後は最初のテーマが繰り返されながらpppになった後に、ffの和音で終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1325&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-29-in-b-flat-major-op-106-hammerklavier/1210861834?i=1210862289&amp;app=music&quot; height=&quot;150&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ第28番第3楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=898"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=898</id>
      <updated>2019-03-31T10:03:07Z</updated>
      <published>2019-03-31T10:03:07Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第3楽章は序奏の後に第一楽章のテーマが再度奏された後に多声が多用される充実のソナタが続く。&lt;/p&gt;

&lt;p&gt;序奏は夕暮れを思わせるかのようなおだやかなテーマで始まる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1285&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初のテーマに変化が与えられる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1281&quot;&gt;&lt;/p&gt;

&lt;p&gt;第一楽章のテーマが再度奏される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1282&quot;&gt;&lt;/p&gt;

&lt;p&gt;トリルをはさんで、1つ目のテーマ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1284&quot;&gt;&lt;/p&gt;

&lt;p&gt;もう1つのテーマ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1289&quot;&gt;&lt;/p&gt;

&lt;p&gt;1つ目のテーマの変形。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1286&quot;&gt;&lt;/p&gt;

&lt;p&gt;2つ目のテーマの変形。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1283&quot;&gt;&lt;/p&gt;

&lt;p&gt;2つ目のテーマの変形。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1287&quot;&gt;&lt;/p&gt;

&lt;p&gt;ここで一息。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1288&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部に入るまでにも既にテーマが様々に展開されてきているが、展開部に入ってからは更に多声を駆使した充実ぶり。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1292&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初のテーマがカノン風に展開される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1291&quot;&gt;&lt;/p&gt;

&lt;p&gt;再現部。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1290&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後はトリルの上に2つ目のテーマが静かに奏される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1293&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後はなかば唐突な和音がffで奏されて終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1294&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜に引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-28-in-major-op-101-iii-langsam-und/1210861834?i=1210862227&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第28番 第2楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=866"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=866</id>
      <updated>2019-03-24T09:03:31Z</updated>
      <published>2019-03-24T09:03:31Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;後期ソナタの特徴の1つが第2楽章だ。緩徐楽章は姿を消し、力強い楽章が配置されている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1249&quot;&gt;&lt;/p&gt;

&lt;p&gt;符点のリズムが特徴的。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1252&quot;&gt;&lt;/p&gt;

&lt;p&gt;印象的なカノンが配置されている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1250&quot;&gt;&lt;/p&gt;

&lt;p&gt;推移部を伴って最初に戻る。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1251&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜の引用はヘンレ版&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-28-in-major-op-101-ii-lebhaft-marschm%C3%A4%C3%9Fig/1210861834?i=1210862194&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ第28番 第1楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=834"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=834</id>
      <updated>2019-03-17T05:03:57Z</updated>
      <published>2019-03-17T05:03:57Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第28番は落ち着いたテーマで構成される小さなソナタ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1217&quot;&gt;&lt;/p&gt;

&lt;p&gt;この曲では、特徴的なスラーのかかった音型が登場する。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1218&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部は小規模で、再現部も分かりにくく、幻想的な雰囲気に包まれる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1219&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-28-in-major-op-101-i-etwas-lebhaft/1210861834?i=1210862134&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ第27番 第2楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=806"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=806</id>
      <updated>2019-03-10T07:03:24Z</updated>
      <published>2019-03-10T07:03:24Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第2楽章は、優しい旋律に囲まれた夢見るような楽章。それでいて、どこか寂しい雰囲気がただよう。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1190&quot;&gt;&lt;/p&gt;

&lt;p&gt;全体に流れるような雰囲気で、優しい風が吹いているかのよう。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1185&quot;&gt;&lt;/p&gt;

&lt;p&gt;何かを問いかけているのか、あるいは試行錯誤しているかのようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1188&quot;&gt;&lt;/p&gt;

&lt;p&gt;眩しい光の中を進んでいくかのよう。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1189&quot;&gt;&lt;/p&gt;

&lt;p&gt;ゆっくりと歩いていくかのような旋律。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1186&quot;&gt;&lt;/p&gt;

&lt;p&gt;後半、ここで流れは止まり、色彩が消えていくが、またすぐに最初のテーマが帰ってくる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1191&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後に新しい流れるような旋律が現れて、かわいらしく終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1193&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-27-in-e-minor-op-90-ii-nicht-zu-geschwind/947851407?i=947851426&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーベン ピアノ・ソナタ 第27番 第1楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=805"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=805</id>
      <updated>2019-03-03T08:03:31Z</updated>
      <published>2019-03-03T08:03:31Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第27番も2楽章しかない小規模なソナタ。最初のテーマは葛藤なのか覚悟なのか。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1178&quot;&gt;&lt;/p&gt;

&lt;p&gt;2つ目のテーマは、1つ目に呼応するかのような静かなもの。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1180&quot;&gt;&lt;/p&gt;

&lt;p&gt;次第にテンポが上がって行き、嘆きを表現するかのような和音が連打される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1182&quot;&gt;&lt;/p&gt;

&lt;p&gt;この楽章は10度が頻出する。左手の10度跳躍の上に、右手はテーマになり切れない音型が繰り返される。空虚な心情を表すかのようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1181&quot;&gt;&lt;/p&gt;

&lt;p&gt;右手の速いとりとめもない動きの上で、左手で2つ目のテーマが奏される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1179&quot;&gt;&lt;/p&gt;

&lt;p&gt;再度最初のテーマに戻る。&lt;/p&gt;

&lt;p style=&quot;display:inline-block;&quot;&gt;&lt;img src=&quot;/getImage?id=1177&quot;&gt;&lt;img src=&quot;/getImage?id=1183&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後は2つ目のテーマがppで繰り返されて静かに終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1184&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-27-in-e-minor-op-90-i-mit-lebhaftigkeit/947851407?i=947851425&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーベン ピアノ・ソナタ 第26番 第2、3楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=804"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=804</id>
      <updated>2019-02-24T12:02:02Z</updated>
      <published>2019-02-24T12:02:02Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第2楽章は「不在」。形式は複合2部形式。寂しげな憂鬱なテーマで始まる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1169&quot;&gt;&lt;/p&gt;

&lt;p&gt;2つ目のテーマは、昔の思い出を懐しむかのような明いもの。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1165&quot;&gt;&lt;/p&gt;

&lt;p&gt;この2つのテーマが繰替えされた後、休み無しで第3楽章に入る。&lt;/p&gt;
&lt;p&gt;第3楽章は「再会」。最初に序奏があり、再会の喜びが表現される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1166&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初のテーマは、やはり懐しむかのような。透き通ったもの。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1167&quot;&gt;&lt;/p&gt;

&lt;p&gt;初期の作品に見られたような、色々なテーマのパレードが始まって、再会の喜びが表現される。。&lt;/p&gt;

&lt;p style=&quot;display:inline-block;&quot;&gt;&lt;img src=&quot;/getImage?id=1164&quot;&gt;&lt;img src=&quot;/getImage?id=1168&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1172&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1174&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部。展開部は最初のテーマの展開で始まることが多いが、新しいもので始まる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1176&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1171&quot;&gt;&lt;/p&gt;

&lt;p&gt;すぐに再現部となる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1173&quot;&gt;&lt;/p&gt;

&lt;p&gt;最後に、アンダンテとなって、しんみりとした場面となる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1170&quot;&gt;&lt;/p&gt;

&lt;p&gt;自分の家に帰ってきて、今日1日の思い出を噛み締めているかのようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1175&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-26-in-e-flat-major-op-81a-les-adieux/947851407?i=947851424&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第26番 第1楽章 「告別」</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=803"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=803</id>
      <updated>2019-02-17T08:02:41Z</updated>
      <published>2019-02-17T08:02:41Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;ルドルフ大公との告別と再会をテーマにしたと言われる。曲はソナタ形式だが、最初に序奏が置かれ、最初の3音にLebewohlと書かれている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1160&quot;&gt;&lt;/p&gt;

&lt;p&gt;アレグロで2つ目のテーマが奏される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1158&quot;&gt;&lt;/p&gt;

&lt;p&gt;この部分はトリルが繰り返され、心の揺れ動きを表しているかのようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1156&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1159&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部。&lt;/p&gt;

&lt;p style=&quot;display:inline-block;&quot;&gt;&lt;img src=&quot;/getImage?id=1155&quot;&gt;&lt;img src=&quot;/getImage?id=1157&quot;&gt;&lt;/p&gt;

&lt;p&gt;2つ目のテーマが左手で繰り返されるものの、あまり大きな展開は見られない。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1161&quot;&gt;&lt;/p&gt;

&lt;p&gt;再現部。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1163&quot;&gt;&lt;/p&gt;

&lt;p&gt;再現が一通り終わったあと、最初のテーマが右手と左手とで交互に奏され、2人で離れていきながら、手を振って別れを惜しんでいるかのようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1162&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-26-in-e-flat-major-op-81a-les-adieux/947851407?i=947851423&amp;app=music&quot; height=&quot;150&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第25番 第3楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=802"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=802</id>
      <updated>2019-02-11T07:02:55Z</updated>
      <published>2019-02-11T07:02:55Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;複合三部形式。なんとも陽気な民謡のようなテーマを用いた短い楽章。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1153&quot;&gt;&lt;/p&gt;

&lt;p&gt;踊っているかのような、あるいはおどけているかのようなテーマ。最初のテーマと、このテーマが曲全体で使われる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1154&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-25-in-g-major-op-79-iii-vivace/947851407?i=947851422&amp;app=music&quot; height=&quot;150&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第25番 第2楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=774"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=774</id>
      <updated>2019-02-03T06:02:42Z</updated>
      <published>2019-02-03T06:02:42Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;三部形式。長い階段を登っていくかのような、あるいは人生の苦悩をつづるかのようなテーマで始まる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1127&quot;&gt;&lt;/p&gt;

&lt;p&gt;中間部は左手で流れるような16分音符が奏され、夢の中のような、あるいは暖かな風が吹いているかのような場面となる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1128&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初のテーマが繰り返される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1129&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初のテーマが右手に現れつつ、左手には中間部の流れる音型が組み合わされるという興味深い展開が現れて終わる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1130&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-25-in-g-major-op-79-ii-andante/947851407?i=947851421&amp;app=music&quot; height=&quot;150&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第25番 第1楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=773"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=773</id>
      <updated>2019-01-27T08:01:06Z</updated>
      <published>2019-01-27T08:01:06Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;ここに来て、第2楽章に緩徐楽章を配置する3楽章制の古典的なソナタに回帰する。&lt;/p&gt;
&lt;p&gt;第1楽章は主題の音型から「かっこう」と呼ばれることがある。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1121&quot;&gt;&lt;/p&gt;

&lt;p&gt;第1楽章は全体に明るいテーマで構成される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1123&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部は転調するが長調のまま。

&lt;p&gt;&lt;img src=&quot;/getImage?id=1120&quot;&gt;&lt;/p&gt;

&lt;p&gt;かっこうのテーマが展開される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1119&quot;&gt;&lt;/p&gt;

&lt;p&gt;転調を織り交ぜるが、大きな発展は無くかっこうのテーマが繰り返される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1122&quot;&gt;&lt;/p&gt;

&lt;p&gt;再現部。&lt;/p&gt;

&lt;p sryle=&quot;display: inline-block;&quot;&gt;
&lt;img src=&quot;/getImage?id=1118&quot;&gt;
&lt;img src=&quot;/getImage?id=1125&quot;&gt;
&lt;/p&gt;

&lt;p&gt;展開部と再現部は繰り返しとなっている。&lt;/p&gt;

&lt;p&gt;再現部の後に終わりを告げるパートがあり、左手で最初のテーマが奏される。&lt;/p&gt;

&lt;p sryle=&quot;display: inline-block;&quot;&gt;
&lt;p&gt;&lt;img src=&quot;/getImage?id=1124&quot;&gt;&lt;img src=&quot;/getImage?id=1126&quot;&gt;
&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-25-in-g-major-op-79-i-presto-alla-tedesca/947851407?i=947851420&amp;app=music&quot; height=&quot;150&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第24番 第2楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=772"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=772</id>
      <updated>2019-01-20T07:01:41Z</updated>
      <published>2019-01-20T07:01:41Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;第12番の終楽章、第22番の終楽章と、このような調性の薄い高速な楽章がたまに現れる。&lt;/p&gt;
&lt;p&gt;1つ目のテーマは、符点を主体としたもの。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1115&quot;&gt;&lt;/p&gt;

&lt;p&gt;もう1つは、16分音符2つがスラーでつながった音型。この2つが自由に展開される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1117&quot;&gt;&lt;/p&gt;

&lt;p&gt;この音型が曲全体で繰り返し使用される。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1116&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1114&quot;&gt;&lt;/p&gt;

&lt;p&gt;曲は自由な構成だが、この音型が何度も使用されるため、不思議なまとまりを感じさせる。&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちら。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-24-in-f-sharp-major-op-78-ii-allegro-vivace/961808697?i=961809076&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
    <entry>
      <title>OCRの自由研究、その2</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=771"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=771</id>
      <updated>2019-01-19T09:01:40Z</updated>
      <published>2019-01-19T09:01:40Z</published>
      <content type="html">
        &lt;p&gt;&lt;a href=&quot;/showArticle/739&quot;&gt;前回の「冬休みの自由研究でOCRを作ってみた」&lt;/a&gt;では、最後の認識にMNISTを学習データとして使ったので、あまり精度が良くなかった。そこで、認識の部分にOSSのOCRである&lt;a href=&quot;https://github.com/tesseract-ocr/tesseract&quot;&gt;tesseract&lt;/a&gt;を使用することで、再度検証してみることにした。tesseractには、-psmというパラメータで認識方法を指定できる。&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;
Page segmentation modes:
  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;10を指定すれば、1つの文字として認識を行うことができる。もちろん、tesseractがあるなら、そのままOCRとして使えばいいわけで実用性あるの? という話になるが、tesseractは、特定の苦手なシーンがあり、今回の方法でそれが克服できないかを検証することが目的だ。合わせて、手軽に使えるOCRの中では個人的には一番精度が高いと評価している、Google Cloud Visionとの比較もしてみることにする。Google Cloud Visionは、&lt;a href=&quot;https://cloud.google.com/vision/?hl=ja&quot;&gt;このサイト&lt;/a&gt;で簡単に試してみることが可能だ。&lt;/p&gt;

&lt;p&gt;今回は、こういう画像を使用。tesseractは二値化されていないと精度が著しく落ちるので、予め二値化してある。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1098&quot;&gt;&lt;/p&gt;

&lt;p&gt;Google Cloud Vision使ってみると、きちんと認識されている。さすがだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1112&quot;&gt;&lt;/p&gt;

&lt;p&gt;今回のOCRは数字が等幅フォントで1行で書かれたものを処理対象とするため、ここから切り出してから処理する。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1099&quot;&gt;&lt;/p&gt;

&lt;p&gt;まずは、普通に切り出したものを処理してみる。tesseractというオプション指定を追加して、分解した文字をtesseract -psm 10で1文字ずつ認識するようにしてみた。&lt;/p&gt;

&lt;code&gt;
$ docker run -it --rm -v /tmp:/tmp ruimo/lightocr tesseract /tmp/form000.png
&lt;/code&gt;

&lt;code&gt;
3.14159265
&lt;/code&gt;

&lt;p&gt;正しく認識されている。もっともこれは、tesseractで-psm 7を指定しても正しく認識できる。&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;
$ tesseract form000.png stdout -psm 7 digits
3.14159265
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;Google Cloud Visionでもok。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1100&quot;&gt;&lt;/p&gt;

&lt;p&gt;お次は、イメージ切り抜きの際にズレて右側の罫線が入ってしまったケース。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1101&quot;&gt;&lt;/p&gt;

&lt;p&gt;普通にtesseractで認識してみる。&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;
$ tesseract form001.png stdout -psm 7 digits
3.141592651
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;罫線部分が1と認識されてしまう。無理もない。今回のOCRで処理してみる。&lt;/p&gt;

&lt;code&gt;
$ docker run -it --rm -v /tmp:/tmp ruimo/lightocr tesseract /tmp/form001.png
&lt;/code&gt;

&lt;code&gt;
3.14159265
&lt;/code&gt;

&lt;p&gt;等幅フォントを仮定して切り離した後に、幅が極端に小さなものは捨てるためきちんと認識できている。Google Cloud Visionだと、正しく認識できている。さすがだ。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1113&quot;&gt;&lt;/p&gt;

&lt;p&gt;次は罫線がもっと数字に寄ってしまったケース。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1104&quot;&gt;&lt;/p&gt;

&lt;p&gt;普通にtesseractで認識すると、&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;
$ tesseract form003.png stdout -psm 7 digits
3.14159263
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;最後の5が3と誤認識されていることが分かる。今回のOCRを使うと、&lt;/p&gt;

&lt;code&gt;
$ docker run -it --rm -v /tmp:/tmp ruimo/lightocr tesseract /tmp/form003.png
&lt;/code&gt;

&lt;code&gt;
3.14159265
&lt;/code&gt;

&lt;p&gt;正しく認識できた。等幅フォントを仮定して切り取るため、罫線がうまく削除できたのだと思われる。Google Cloud Visionだと、&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1105&quot;&gt;&lt;/p&gt;

&lt;p&gt;やはり正しく認識できていてさすがだ。次は下に罫線が残ってしまったケース。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1106&quot;&gt;&lt;/p&gt;

&lt;p&gt;普通にtesseractを使うと、&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;
$ tesseract form004.png stdout -psm 7 digits
1 0 .
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;全然ダメになってしまった。今回のOCRだと、&lt;/p&gt;

&lt;code&gt;
$ docker run -it --rm -v /tmp:/tmp ruimo/lightocr tesseract /tmp/form004.png
&lt;/code&gt;

&lt;code&gt;
3 11159255
&lt;/code&gt;

&lt;p&gt;幾分改善するが、やはり誤読が見られる。もっとも横方向の罫線については、黒成分が極端に高いものを除外することで、除去できるかもしれない。Google Cloud Visionだと、&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1107&quot;&gt;&lt;/p&gt;

&lt;p&gt;やはりきちんと認識されている。ここまではGoogle Cloud Visionの圧勝だ。次に印字が不鮮明なケースを検証してみる。ドット・インパクト・プリンタの場合、良く一部が不鮮明になるケースがある。これは6の下部が消えてしまった例。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1108&quot;&gt;&lt;/p&gt;

&lt;p&gt;tesseractで認識してみる。&lt;/p&gt;

&lt;code&gt;
&lt;pre&gt;
$ tesseract form005.png stdout -psm 7 digits
3.14159255
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;誤読してしまっている。今回のOCRでは、&lt;/p&gt;

&lt;code&gt;
$ docker run -it --rm -v /tmp:/tmp ruimo/lightocr tesseract /tmp/form005.png
&lt;/code&gt;

&lt;code&gt;
3.14159265
&lt;/code&gt;

&lt;p&gt;正しく認識された。1文字として認識する場合には精度が上がるようだ。Google Cloud Visionでは、&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1109&quot;&gt;&lt;/p&gt;

&lt;p&gt;やはり圧倒的な強さを見せつけている。最後に全体にもっと不鮮明な上に罫線がカブっているケースを見てみる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1110&quot;&gt;&lt;/p&gt;

&lt;p&gt;tesseractで普通に認識すると、&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;
$ tesseract form006.png stdout -psm 7 digits
70001393652
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;最後の2桁を誤読しているが、左の罫線による悪影響は出ていなかった。今回のOCRを試してみる。&lt;/p&gt;

&lt;code&gt;
$ docker run -it --rm -v /tmp:/tmp ruimo/lightocr tesseract /tmp/form006.png
&lt;/code&gt;

&lt;code&gt;
7000139369
&lt;/code&gt;

&lt;p&gt;正しく認識できた。Google Cloud Visionでは、&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1111&quot;&gt;&lt;/p&gt;

&lt;p&gt;Google先生、全勝はならず。tesseractは、ホワイト・リストで「数字しかない」という情報を与えることができる(引数のdigits)が、Google Cloud Visionはそういう指定が無く、言語の指定しかできないので印字が不鮮明な場合は、tesseractの方が良い結果が得られる場合もあるようだ。&lt;/p&gt;

&lt;p&gt;というわけで、割と良い結果が得られたので満足。&lt;/p&gt;

      </content>
    </entry>
  
    <entry>
      <title>ベートーヴェン ピアノ・ソナタ 第24番 第1楽章</title>
      <link rel="alternate" type="text/html" href="https://www.ruimo.com/fromId?fromId=770"/>
      <author>
        <name>Uno Ruimo(Shisei Hanai)</name>
      </author>
      <id>https://www.ruimo.com/fromId?fromId=770</id>
      <updated>2019-01-13T10:01:03Z</updated>
      <published>2019-01-13T10:01:03Z</published>
      <content type="html">
        &lt;iframe src=&quot;https://open.spotify.com/embed/user/shiseihanai/playlist/38bgRbYIC1u1ZqNURTzBxJ&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; allow=&quot;encrypted-media&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;24番は一転して小規模となり2楽章しかない。ここから27番あたりまでは、あまり規模の大きなものは書かれておらず、小規模指向になっている。&lt;/p&gt;

&lt;p&gt;最初に夢見るような序奏が置かれている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1094&quot;&gt;&lt;/p&gt;

&lt;p&gt;最初の符点が曲全体で繰り返し使われる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1092&quot;&gt;&lt;/p&gt;

&lt;p&gt;この音型も曲全体で使われる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1093&quot;&gt;&lt;/p&gt;

&lt;p&gt;この曲では、初期の頃と同じように色々なテーマが出てくる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1089&quot;&gt;&lt;/p&gt;

&lt;p&gt;ここの右手は音型は伴奏のようだが、展開部で使われる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1096&quot;&gt;&lt;/p&gt;

&lt;p&gt;展開部は短調で始まる。展開部は非常に短かい。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1090&quot;&gt;&lt;/p&gt;

&lt;p&gt;呈示部の2つの音型が組み合わされる。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1097&quot;&gt;&lt;/p&gt;

&lt;p&gt;再現部。この曲は最後まで達した後、展開部から繰り返しが行われるという珍しい構成がとられている。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/getImage?id=1091&quot;&gt;&lt;/p&gt;

&lt;p&gt;楽譜引用はヘンレ版から。&lt;/p&gt;

&lt;p&gt;Apple Musicの方はこちらから。&lt;/p&gt;

&lt;iframe allow=&quot;autoplay *; encrypted-media *;&quot; frameborder=&quot;0&quot; height=&quot;150&quot; style=&quot;width:100%;max-width:660px;overflow:hidden;background:transparent;&quot; sandbox=&quot;allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation&quot; src=&quot;https://embed.music.apple.com/us/album/piano-sonata-no-24-in-f-sharp-major-op-78-i-adagio/961808697?i=961809075&amp;app=music&quot;&gt;&lt;/iframe&gt;

      </content>
    </entry>
  
</feed>
