List of Risk - text.Baldanders.info
tag:text.Baldanders.info,2023-11-27:/tags
2023-11-27T21:50:30+09:00
帰ってきた「しっぽのさきっちょ」
https://text.baldanders.info/images/avatar.jpg
https://text.baldanders.info/images/avatar.jpg
「消尽」原則を迂回するハック
tag:text.Baldanders.info,2023-11-27:/remark/2023/11/circumvent-exhaustion/
2023-11-27T12:50:30+00:00
2023-11-27T13:00:44+00:00
「電子書籍」では本を「所有」できないと言われてるんだけど,それってどゆこと?
Spiegel
https://baldanders.info/profile/
<p>すんません <abbr class="emoji-chars" title="ゴメン">🙇</abbr></p>
<p>最初このタイトルをみたとき Cory Doctorow さんがまた「チョークポイント資本主義」絡みで書いた記事の翻訳かと思ったのよ。
全然違ったけど(笑)</p>
<ul>
<li><a href="https://www.yamdas.org/column/technique/the-anti-ownership-ebook-economy-introductionj.html">The Anti-Ownership Ebook Economy - Introduction 日本語訳</a></li>
</ul>
<p>これの<a href="https://michaelweinberg.org/docs/the-anti-ownership-ebook-economy.pdf" title="The Anti-Ownership Ebook Economy">原文<sup><span><i class="far fa-file-pdf"></i></span></sup></a> については翻訳された yomoyomo さんの先月のブログ記事で紹介されてたわ。</p>
<ul>
<li><a href="https://yamdas.hatenablog.com/entry/20231030/anti-ownership-ebook-economy">なぜ我々は電子書籍を「所有」できないのか? 出版社とプラットフォームの力学を解き明かす研究 - YAMDAS現更新履歴</a></li>
</ul>
<p>英語不得手なので翻訳された序文しか読んでないが,簡単に言うと,いわゆる「電子書籍」では本を「所有」できないと言われてるんだけど,それってどゆこと? といった感じの話のようだ。
この序文の中で個人的に一番刺さった文章がこれ:</p>
<figure lang="en">
<blockquote>Legally, the shift from selling to licensing attempts to circumvent centuries of law that have limited publisher control over post-sale uses of books. This law is a copyright doctrine called “exhaustion” or “first sale.” The idea behind first sale is that publishers were always entitled to make money from the first time they sold a book, but after that, the sold copy is beyond their control. The new owner can decide to resell, lend, or use the book in any manner they see fit. Licensing attempts to keep that control with the copyright owner, forever.</blockquote>
<figcaption><div>via <q><a href="https://michaelweinberg.org/docs/the-anti-ownership-ebook-economy.pdf">The Anti-Ownership Ebook Economy</a></q></div></figcaption>
</figure>
<figure>
<blockquote>法的な観点から言えば、販売からライセンスへの移行は、書籍の販売後の利用に対する出版社の支配を制限してきた何世紀にもわたる法を迂回しようとするものだ。この法は、「消尽」と呼ばれる著作権の原則である。消尽の背景にある考え方は、出版社は常に本を最初に売ってお金を稼ぐ権利があるが、その後は、販売された複製には彼らの支配が及ばないというものだ。新たな所有者は、その本をいかようにも転売したり、貸したり、利用できる。ライセンスは、その支配権を永久に著作権の所有者に留めようとするものだ。</blockquote>
<figcaption><div><q><a href="https://www.yamdas.org/column/technique/the-anti-ownership-ebook-economy-introductionj.html">The Anti-Ownership Ebook Economy - Introduction 日本語訳</a></q>より</div></figcaption>
</figure>
<p>あー,なるほど。
要するにこれって「消尽」原則を迂回するハックなんだ。</p>
<p>なお,ここで言う「ハック」は Bruce Schneier さんの『<a href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">ハッキング思考</a>』に出てくる定義で考えると分かりやすい。</p>
<figure>
<blockquote><p><strong>定義:ハック(名詞)</strong></p>
<ol>
<li>想定を超えた巧妙なやり方でシステムを利用して、(a)システムの規則や規範の裏をかき、(b)そのシステムの影響を受ける他者に犠牲を強いること。</li>
<li>システムで許容されているが、その設計者は意図も予期もしていなかったこと。</li>
</ol></blockquote>
<figcaption><div><q><a href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">ハッキング思考 強者はいかにしてルールを歪めるのか、それを正すにはどうしたらいいのか</a></q>より</div></figcaption>
</figure>
<p>読者・視聴者に「それ」を所有させず,読む・観る・聴くといったアクセスのみを許す。
これによって出版社は購入後も「それ」をコントロールできるし,プラットフォームを提供する企業はユーザをサービスに幽閉しストーキングできる(言い方!)</p>
<figure lang="en">
<blockquote>And because platforms like Amazon and Apple control most of the technology we use to read ebooks, their opinion often dictates the reality of the ebook ecosystem. Beyond controlling books, these platforms can also do several things no physical bookseller has ever had the power to do. They can track your reading habits, stop you from reselling or lending a book, change the book’s content, and delete it from your digital library altogether – even after you’ve bought it. This doesn’t happen in the print book market, where you can still feel confident that when you buy a book, it’s yours to share, sell, or simply read without it being tracked or censored.</blockquote>
<figcaption><div>via <q><a href="https://michaelweinberg.org/docs/the-anti-ownership-ebook-economy.pdf">The Anti-Ownership Ebook Economy</a></q></div></figcaption>
</figure>
<figure>
<blockquote>そして Amazon や Apple などのプラットフォームは、我々が電子書籍を読むのに利用するテクノロジーをほとんど支配しているので、大抵彼らの意見が電子書籍のエコシステムの現実を決定する。本を支配するだけでなく、これらのプラットフォームは、現実の本屋がこれまでできなかったことをいくつもやれる。プラットフォームはあなたの読書傾向を追跡できるし、本を再販したり貸したりするのを阻止できるし、本の中身を変えられるし、本をそのデジタルライブラリから丸ごと削除もできる――たとえ、その電子書籍を買った後ででも。こんなことは、本を買ったら、追跡されたり検閲されることなく、共有するなり売るなり、単に読むなりするのが自分の権利だと自信をもって言える紙の本の市場では起こらない。</blockquote>
<figcaption><div><q><a href="https://www.yamdas.org/column/technique/the-anti-ownership-ebook-economy-introductionj.html">The Anti-Ownership Ebook Economy - Introduction 日本語訳</a></q>より</div></figcaption>
</figure>
<p>ちなみに,上述の構造をクリエイターの立場で論じ批判するのが「チョークポイント資本主義(Chokepoint Capitalism)」である。</p>
<figure>
<blockquote>「チョークポイント資本主義」とは何か。多国籍の独占企業(あるいはカルテル)が、自分たちが支配するシステムにオーディエンスを閉じ込め、その支配力に乗じてアーティストから搾取し、クリエイターとオーディエンスとの間に料金所を作ってしまうことである。</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/monopoly/antitrust/3839">『チョークポイント資本主義』:クリエイターを搾取し続けるテック業界とコンテンツ業界の独占的支配 | p2ptk[.]org</a></q>より</div></figcaption>
</figure>
<figure>
<blockquote>つまり、あなたがAudibleでオーディオブックを販売すると、あなたの読者はAudibleのプラットフォームに永遠にロックインされることになる。もし他社があなたの創造的な作品により良い条件を提示し、あなたが乗り換えたとしよう。オーディエンスはそれまで購入したすべてのオーディオブックを諦めなければ、移籍先のサービスに移行できない。それはリスナーとってはあまりに重い負担だ!</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/monopoly/antitrust/3839">『チョークポイント資本主義』:クリエイターを搾取し続けるテック業界とコンテンツ業界の独占的支配 | p2ptk[.]org</a></q>より</div></figcaption>
</figure>
<p>さらに “<span><a href="https://michaelweinberg.org/docs/the-anti-ownership-ebook-economy.pdf">The Anti-Ownership Ebook Economy <sup><i class="far fa-file-pdf"></i></sup></a></span>” では図書館についての言及があるようだ。</p>
<figure lang="en">
<blockquote><ul>
<li>The structure of the ebook marketplace has introduced new stressors into both the publishing and library professions. Publishers and libraries feel they are facing existential crises/collapse, and their fears are pushing them into diametrically opposed viewpoints. Publishers feel pressured to protect and paywall their content, while libraries feel pressure to maintain relevant collections that are easily accessible via digital networks. Both libraries and publishers feel dependent on the ebook platform companies to provide the ebooks that readers demand, allowing the platform economy (which is already dominated by only a few large companies) to have even more power over the ebook marketplace.</li>
<li>Because of the predominance of the publisher-platform licensing model for the ebook marketplace, important questions exist as to the impact, if any, that digital library lending of books has on that market. For example, while some evidence exists that the availability of second-hand physical books via libraries and used bookstores might compete with direct publisher book sales, it is less clear that the digital loan of a single title by a library competes with platform ebook subscriptions and locked-in book purchases. Moreover, given that publisher-platform partnerships profit from surveillance of book buyers, consumers who choose more privacy-friendly library loans may represent an entirely distinct market that places significant value on data protection.</li>
</ul>
</blockquote>
<figcaption><div>via <q><a href="https://michaelweinberg.org/docs/the-anti-ownership-ebook-economy.pdf">The Anti-Ownership Ebook Economy</a></q></div></figcaption>
</figure>
<figure>
<blockquote><ul>
<li>電子書籍市場の構造は、出版と図書館の両方の専門職に新たなストレス要因を生み出した。出版社も図書館も実存的な危機/崩壊に直面していると感じており、そしてその恐怖が彼らを正反対の見解に駆り立てている。図書館がデジタルネットワークを介して容易にアクセスできる人気のコレクションを維持するプレッシャーを感じる一方で、出版社はそのコンテンツを守り、有料化するプレッシャーを感じている。図書館も出版社もともに、(一握りの大企業により既に支配されている)プラットフォーム経済が電子書籍市場を支配しようとするより大きな力を持つのを可能にする、読者が求める電子書籍を提供する電子書籍プラットフォーム企業に依存していると感じている。</li>
<li>電子書籍市場では出版社とプラットフォームのライセンスモデルが優位なため、デジタル図書館による本の貸し出しが電子書籍市場に持つ影響力があるのかどうかという重要な疑問が存在する。例えば、図書館や古書店で中古の紙の本を入手できることが、出版社の本の直販と競合する可能性があるというエビデンスがある程度存在するが、図書館による一冊のデジタル貸し出しが、プラットフォームの電子書籍サブスクリプションやロックインされた本の購入と競合するかはそれほど明確ではない。さらに、出版社とプラットフォームの提携が書籍購入者の監視から利益を上げていると考えると、よりプライバシーに配慮している図書館での貸し出しを選択する消費者は、データ保護の価値を重視するまったく別の市場を代表しているのかもしれない。</li>
</ul>
</blockquote>
<figcaption><div><q><a href="https://www.yamdas.org/column/technique/the-anti-ownership-ebook-economy-introductionj.html">The Anti-Ownership Ebook Economy - Introduction 日本語訳</a></q>より</div></figcaption>
</figure>
<p>そういえば4年前に書いた「<a href="https://text.baldanders.info/remark/2019/09/value-of-books/">本の「史料」的価値</a>」という記事で yomoyomo さんの『もうすぐ絶滅するという開かれたウェブについて』が紙の本になって国会図書館に納本されたという話をネタにして</p>
<figure>
<blockquote>「情報共有の未来」が「国会図書館に納本」とか<ruby><rb>皮肉</rb><rp> (</rp><rt>スパイス</rt><rp>) </rp></ruby>が効きすぎて目から汗が出てしまう</blockquote>
<figcaption><div><q><a href="https://text.baldanders.info/remark/2019/09/value-of-books/">本の「史料」的価値</a></q>より</div></figcaption>
</figure>
<p>と書いたが,ホンマ,つくづく「思えば遠くへ来たもんだ」って感じである。</p>
<p>というわけで『<a href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">ハッキング思考</a>』は読んどきなはれ,というお話でした。</p>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://yamdas.hatenablog.com/entry/20220829/chokepoint-capitalism">コリイ・ドクトロウの新刊はビッグテックや巨大メディアの権力へのクリエイターの対抗を呼びかける「チョークポイント資本主義」 - YAMDAS現更新履歴</a> : 邦訳版って(予定も含めて)あるかなぁ</li>
<li><a href="https://yamdas.hatenablog.com/entry/20231127/anti-ownership-ebook-economy">The Anti-Ownership Ebook Economy』のIntroductionを訳したんで読んでください! - YAMDAS現更新履歴</a></li>
</ul>
<h2>参考文献</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/41iX72RfUuL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">ハッキング思考 強者はいかにしてルールを歪めるのか、それを正すにはどうしたらいいのか</a></dt>
<dd>ブルース・シュナイアー (著), 高橋 聡 (翻訳)</dd>
<dd>日経BP 2023-10-12 (Release 2023-10-12)</dd>
<dd>Kindle版</dd>
<dd>B0CK19L1HC (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">Kindle 版が出てた!</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-11-21">2023-11-21</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- ハッキング思考 Kindle 版 -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/4756117074?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/5131GA04AHL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/4756117074?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">本の未来 (Ascii books)</a></dt>
<dd>富田 倫生 (著)</dd>
<dd>アスキー 1997-02-01</dd>
<dd>単行本</dd>
<dd>4756117074 (ASIN), 9784756117076 (EAN), 4756117074 (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">e-book の未来を予見する試みの書。あるいは本とコンピュータの関係について。<a href="https://www.aozora.gr.jp/cards/000055/card56499.html">青空文庫にも収録</a>されている。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2019-01-02">2019-01-02</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 本の未来 -->
<div class="hreview">
<div class="photo"><a href="https://tatsu-zine.com/books/infoshare2"><img src="https://tatsu-zine.com/images/books/877/cover_s.jpg" width="106" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://tatsu-zine.com/books/infoshare2">もうすぐ絶滅するという開かれたウェブについて 続・情報共有の未来</a></dt>
<dd>yomoyomo (著)</dd>
<dd>達人出版会 2017-12-25 (Release 2019-03-02)</dd>
<dd>デジタル書籍</dd>
<dd>infoshare2 (tatsu-zine.com)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description"><a href="https://wirelesswire.jp/author/yomoyomo/">WirelessWire News 連載</a>の書籍化。感想は<a href="https://text.baldanders.info/remark/2019/01/infoshare2/">こちら</a>。祝 <a href="https://www.amazon.co.jp/dp/B08DD2MC46?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">Kindle 化</a>!</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2018-12-31">2018-12-31</abbr></p>
</div> <!-- 続・情報共有の未来 -->
広告の曲がり角
tag:text.Baldanders.info,2023-11-21:/remark/2023/11/blocking-ad-blocker/
2023-11-21T11:39:49+00:00
2023-12-11T10:16:36+00:00
注目を広告に乗っ取られることで本来意図した UX が崩れるのはブランドイメージの棄損だし,ましてや詐欺や Phishing の温床になるのはサイトオーナーとしては拙い事態だと思うんだけどねぇ。
Spiegel
https://baldanders.info/profile/
<p>広告最大の機能って「注目を奪う」ことなんだよね。
せっかく Web ページや動画コンテンツやゲームなどで上手く注目を制御していても,広告の見せ方や内容で台無しになることもある<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。</p>
<p>というわけで Mastodon 経由で見かけたポストがこれ。</p>
<figure style='margin:0 auto;text-align:center;'>
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">一部の広告ブロッカーがすべてのサイトで使えなくなります(ガチ)<br><br>Google Chromeでは2024年6月から、YouTubeだけでなくすべてのサイトで、一部の広告ブロッカーが強制的に無効化されます。<br><br>(ちなみにGoogleの収益の8割は広告ビジネスです)<br><br>-----<br><br>24年6月から、Chromeでは「Manifest…</p>— ろぼいん (@keita_roboin) <a href="https://twitter.com/keita_roboin/status/1726425947069718915?ref_src=twsrc%5Etfw">November 20, 2023</a></blockquote>
</figure>
<p>私はガチの Firefox ユーザなので「へー, Chrome ユーザって大変なんだなぁ」くらいの感想しかないのだが,真面目な話をすれば論点は大きく2つあると思う。
すなわち</p>
<ol>
<li>主要ブラウザに搭載されている拡張機能アドオンの仕組みがアドホックで脆弱</li>
<li>Web 広告(動画サービスの広告等を含む)がハックの対象になっていて,ソーシャルエンジニアリングに対して脆弱</li>
</ol>
<p>である。</p>
<p>そもそも広告ブロッカーはブラウザ拡張機能のアドホックさをハックしたものだ。</p>
<figure>
<blockquote>広告ブロックは、サードパーティのプリンターインクと同様に、現代史における最大の成功を収めた敵対的相互運用性の事例である。</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/monopoly/2668">広告ブロッカーは「嫌ならどうする?」の表明である | p2ptk[.]org</a></q>より</div></figcaption>
</figure>
<p>一方で(昔見かけたやつだが)広告やマイニング・コードをブロックすると見せかけて別の広告やマイニング・コードを差し込んだりする悪質なものもあった。
広告ブロッカーではないが,最近見かけた記事でこんな話もある。</p>
<ul>
<li><a href="https://www.itmedia.co.jp/news/articles/2311/16/news047.html">HTMLソースコードから個人情報が筒抜け? Chromeなどのブラウザ拡張機能の多くで脆弱性 米研究者らが発見:Innovative Tech - ITmedia NEWS</a></li>
</ul>
<p>なので,最初に挙げたポストにある「Googleは「プライバシーとセキュリティーのため」と説明していますが…」という部分は多分その通りなんだろうなぁ,とは思う。
しらんけど。
でも,こうした悪用を防ぐために拡張機能をセキュリティやプライバシーの観点から締め上げていけば必然的に広告ブロッカーのような有用な機能も排除されていくわけで,その匙加減が結構難しい。
もっと言うと,拡張機能をどう制御するかというのは特定のブラウザに限る話ではないので,いずれ他のブラウザでも問題になってくると思う。</p>
<p>私が2番目の論点を意識するようになったのは2022年に書いたこの記事あたりから。</p>
<ul>
<li><a href="https://text.baldanders.info/remark/2022/12/ad-blocker/">米国 FBI は広告ブロッカーを推奨している?</a></li>
</ul>
<p>つまり「Web 広告がウザい」みたいな主観で語る季節は終わっているのである。
最近では</p>
<ul>
<li><a href="https://piyolog.hatenadiary.jp/entry/2023/11/12/014635">短縮URLサービス利用時に表示された悪質な広告についてまとめてみた - piyolog</a></li>
</ul>
<p>みたいな事例もあった。</p>
<p>Google は YouTube にて「アンチ広告ブロッカー」キャンペーン(?)を推し進めているみたいだが,動画に挟み込まれている広告の中には「どうみても詐欺やろ」みたいなのも多い。
もっとも YouTube に限るなら「Premium に入りなはれ」で済む話ではあるのだが<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>。</p>
<p>意地の悪い見方をすれば,広告元締めでもある Google は自社の Chrome を利用し,セキュリティやプライバシーを「人質」にしてユーザの行動を統制・搾取した上で,別の危険な状態に晒そうとしている,なんてな言い草もできるわけで,こうしたことに反発が出ても当然と言える。
まぁ,かつて IE による市場統制への反発で Firefox が追い風になった経緯も考えれば,今回も「アンチ Google/Chrome」の象徴として Firefox という御輿を担ぐのもありかもしれない(笑)</p>
<p>注目を広告に乗っ取られることで本来意図した UX が崩れるのはブランドイメージの棄損だし,ましてや詐欺や Phishing の温床になるのはサイトオーナーとしては拙い事態だと思うんだけどねぇ。
それをユーザ側の「自己責任」と転嫁するなら「ダークパターン」と言ってしまっていいんじゃないだろうか。</p>
<figure>
<blockquote>そしてユーザたちは広告ブロッカーをインストールしてそれに抵抗する。広告ブロッカーは、広告主やパブリッシャにはっきりと「嫌だと言ったら?」と言い返すための手段なのだ。</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/monopoly/2668">広告ブロッカーは「嫌ならどうする?」の表明である | p2ptk[.]org</a></q>より</div></figcaption>
</figure>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://fujii-yuji.net/2023/12/10/230716">インターネット広告ポエム2023 - フジイユウジ::ドットネット</a></li>
<li><a href="https://magazine-k.jp/2016/01/25/spam-and-media/">メディアは(常に)スパムか? « マガジン航[kɔː]</a></li>
</ul>
<h2>参考図書</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B0C9Z7KGRN?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/41LvknHYLwL._SL160_.jpg" width="112" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B0C9Z7KGRN?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">はじめて学ぶ ビデオゲームの心理学 脳のはたらきとユーザー体験(UX)</a></dt>
<dd>セリア ホデント (著), 山根 信二(監修) (著), 山根 信二 (翻訳), 成田 啓行 (翻訳)</dd>
<dd>福村出版 2022-12-15 (Release 2023-07-03)</dd>
<dd>Kindle版</dd>
<dd>B0C9Z7KGRN (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">Kindle 版が出ている。ゲームデザイナやゲームエンジニアだけでなく,ソフトウェア・エンジニアは全員読むべき。あと,ゲーマーな人も読むといいよ。感想は<a href="https://text.baldanders.info/remark/2023/04/the-psychology-of-video-games/">こちら</a>。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-11-21">2023-11-21</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- はじめて学ぶ ビデオゲームの心理学 Kindle 版 -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/41iX72RfUuL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B0CK19L1HC?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">ハッキング思考 強者はいかにしてルールを歪めるのか、それを正すにはどうしたらいいのか</a></dt>
<dd>ブルース・シュナイアー (著), 高橋 聡 (翻訳)</dd>
<dd>日経BP 2023-10-12 (Release 2023-10-12)</dd>
<dd>Kindle版</dd>
<dd>B0CK19L1HC (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">Kindle 版が出てた!</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-11-21">2023-11-21</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- ハッキング思考 Kindle 版 -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/51KtN0YwWcL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">スパム[spam]:インターネットのダークサイド</a></dt>
<dd>フィン・ブラントン (著), 生貝直人 (監修), 成原慧 (監修), 松浦俊輔 (翻訳)</dd>
<dd>河出書房新社 2015-12-25</dd>
<dd>単行本</dd>
<dd>430924744X (ASIN), 9784309247441 (EAN), 430924744X (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="3"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">とりあえず読みづらい。修飾語が多すぎるよ。ギリシア神話かっての。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2016-12-10">2016-12-10</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- スパム -->
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Web ページ上の広告 UX については結城浩さんの「<a href="https://mono.hyuki.net/20230925060011/" title="結城浩のひとりごと - mono.hyuki.net">個人ブログ記事の途中に挟まる広告に思うこと</a>」に共感する。 <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:2">
<p>YouTube 有料版は広告カット機能に限定してもう少し安くならんのだろうか。抱き合わせ商法で高く売りつけるのは止めてほしい。 <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>
はじめてのロードサービス
tag:text.Baldanders.info,2023-09-17:/remark/2023/09/fix-a-flat/
2023-09-17T10:00:14+00:00
2023-09-18T09:44:54+00:00
パンクしまして...
Spiegel
https://baldanders.info/profile/
<h2>それは金曜日の出来事</h2>
<p>退勤時間になり「明日からの三連休は何して遊ぼうかな」と考えながら駐輪場に行くと前輪の空気が抜けて潰れていた <code>orz</code></p>
<p>一瞬いたずらを疑ったが駐輪場の奥に突っ込んでる前輪の方をわざわざ潰すとは思えないので,たぶんパンクなんだろう。
その場でロードサービスを呼ぶことも考えたが,日も暮れるいい時間だし,一旦自宅に持ち帰ることにした。
ええ,徒歩で押して帰りましたとも。
えんやらやっとラムをひと瓶。</p>
<p>自宅のポンプで空気を入れてみたが,とりあえず 70psi まで入ったので,そのまま一晩放置してみることにした。</p>
<h2>明けて土曜日</h2>
<p>今日から三連休。
朝の諸々を済ませた後,自転車を確認したらやっぱり前輪の空気が抜けていた。
パンク確定。</p>
<p>実は,<a href="https://text.baldanders.info/remark/2022/09/x-road-bike/" title="チャリンコ買うた">自転車を買った</a>ときに<a href="https://giant-store.jp/blog/other/3014/" title="ジャイアントストア限定サービス「RIDE LIFE CARE PROGRAM」を開始 | ジャイアントストア メインサイト">メーカーの盗難保険</a>に入ったのだが,ロードサービスも付いている。
今回はこれを利用することにした。</p>
<p>早速フリーダイヤルにかける。
メーカーの会員番号と島根県の防犯登録番号を告げて認証したあと,状況を伝えてロードサービスで引き取ってもらうようお願いする。
折返し電話するということでしばし待つ。</p>
<p>その後しばらくして折返しの電話がかかってきたのだが「今日は混み合ってて夕方でないと引き取りに行けない」と言われ,今日はどこにも(自転車で)遊びに行けないことが確定した。
よし,今日は終日 <a href="https://store.steampowered.com/app/740130/Tales_of_ARISE/" title="Steam:Tales of ARISE">Tales of Arise</a> で遊ぼう!</p>
<p>夕方になりロードサービスの方が到着。
なんと,いかにも農作業用な軽トラで中年ご夫婦が来られた。
ひょっとして副業でロードサービスの請け負いをされているのだろうか? 面白い。
まぁ,運んでもらうぶんには何の問題もないので,積み込みまで立ち会って今日は終了(契約で車に同乗はできない)。</p>
<p>これ,長距離ライドで山の中とかでパンクしたらどうするんだろう。
連絡してもすぐには来てくれそうにないし,時間帯によっては詰むんじゃね?</p>
<p>そうそう。
おかげさまで <a href="https://store.steampowered.com/app/740130/Tales_of_ARISE/" title="Steam:Tales of ARISE">Tales of Arise</a> はメインストーリーの折返し地点(多分)まで攻略できました。</p>
<h2>自転車の受け取りとお散歩カメラ</h2>
<p>日曜の朝。
<a href="https://giant-store.jp/matsue/" title="ジャイアントストア松江 | ジャイアントストア松江の情報を発信しています。">自転車屋</a>さんに電話して状況を聞く。
既にパンク修理はできてるとのことなので,受け取りに行った。
ヘルメットを手に持って路線バスに乗るのはちょっと恥ずかしい。
ホンマ,ヘルメットって自転車に乗ってるとき以外は邪魔だよな。
<a href="https://text.baldanders.info/remark/2023/04/risk-management-for-bike/" title="自転車のリスク・マネジメント 2023">努力義務</a>になっても普及しないはずだよ。</p>
<p><a href="https://giant-store.jp/matsue/" title="ジャイアントストア松江 | ジャイアントストア松江の情報を発信しています。">自転車屋</a>さんに到着。
店員さんによると小石が刺さってたらしい。
ここのところの雨で路面が荒れてたからなぁ。
気づかずに踏んづけちゃったんだろう。</p>
<p>結局,チューブを丸ごと交換になった。
工賃と合わせて2.2K円(税込)也。</p>
<p>さて,このまま帰宅するのもナニなので,まずは松江城に行ってから考えるか。</p>
<p>おっ,<a href="https://www.suitouro.jp/" title="【公式サイト】松江水燈路 2023|9.23-10.15の(土,日,祝) 開催">水燈路</a>の準備してはる。</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/53192473531/"><img src="./53192473531_082b071766_e.jpg" srcset="./53192473531_082b071766_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="水燈路の準備中 | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/53192473531/">水燈路の準備中 | Flickr</a></div></figcaption>
</figure>
<p>そういや松江駅近くの松江イオンでお使いを頼まれてたな。
イオンの駐輪場には停めたくないので,<a href="http://www.matsuetouzai-chuurin.com/" title="松江駅東・西駐輪場">有料の駐輪場</a>へ。
なにやら可愛らしいポスターが貼ってあった。</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/53192376964/"><img src="./53192376964_4458381519_e.jpg" srcset="./53192376964_4458381519_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="メットを被りましょう | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/53192376964/">メットを被りましょう | Flickr</a></div></figcaption>
</figure>
<p>みんなメット被ってるか〜い? そういや,イオンサイクルでこんな感じのヘルメットを見かけた。</p>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B07T372T25?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/41f3LhC+6bL._SL160_.jpg" width="160" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B07T372T25?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">OGK KABUTO(オージーケーカブト) 自転車 ヘルメット SICURE(シクレ) カラー:ベージュ サイズ:54-57cm(未満) SG認証</a></dt>
<dd>OGK KABUTO(オージーケーカブト) (Release 2019-06-18)</dd>
<dd>スポーツ用品</dd>
<dd>B07T372T25 (ASIN), 4966094581466 (EAN)</dd>
</dl>
<p class="description">イオンサイクルでこれに似たヘルメットを見かけた。ママチャリとかならこういうのでもいいかもね。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-09-17">2023-09-17</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 自転車ヘルメット -->
<p>スポーツサイクルでは(通気性悪そうなので)無理かもだがママチャリとかならいいかもねぇ,などと考えながら通り過ぎた。</p>
<p>腹が減ったのでお使いの前に松江駅で腹ごしらえ。</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/53192775725/"><img src="./53192775725_a1e18971a0_e.jpg" srcset="./53192775725_a1e18971a0_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="久しぶり、山かけ蕎麦 | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/53192775725/">久しぶり、山かけ蕎麦 | Flickr</a></div></figcaption>
</figure>
<p>ここの山かけ蕎麦が美味いのよ。</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/53192948613/"><img src="./53192948613_10b349d4be_e.jpg" srcset="./53192948613_10b349d4be_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="食後のスタバ | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/53192948613/">食後のスタバ | Flickr</a></div></figcaption>
</figure>
<p>最近はこのくらいなら食っても体重に影響しなくなった。
ありがたや。</p>
<p>その後,予定通りイオンでお使いを済ませ,<a href="https://www.library.pref.shimane.lg.jp/" title="島根県立図書館">図書館</a>までとって返してまったりする。
本がたくさんある空間は楽しい。</p>
<p>うーん。
雲行きが微妙。
<a href="https://tenki.jp/" title="日本気象協会 tenki.jp【公式】 / 天気・地震・台風">tenki.jp</a> の雨雲レーダーの予報を見るに,夕方に一雨くるか? 早めに移動する?</p>
<p>というわけで移動。</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/53192285627/"><img src="./53192285627_d3976e07b8_e.jpg" srcset="./53192285627_d3976e07b8_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="今日の宍道湖(視界悪し) | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/53192285627/">今日の宍道湖(視界悪し) | Flickr</a></div></figcaption>
</figure>
<p>途中でコメダのお月見シロノワールに吸い寄せられるるる。</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/53192307747/"><img src="./53192307747_805439a94c_e.jpg" srcset="./53192307747_805439a94c_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="お月見シロノワール パンプキン | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/53192307747/">お月見シロノワール パンプキン | Flickr</a></div></figcaption>
</figure>
<p>おっと。
もうこんな時間だ。
いいかげん帰らねば。</p>
<p>そうそう。
結局,雨は降らなかった。</p>
<h2>今回の教訓</h2>
<p>週末でよかった。
また要らない運を使ってしまったような…</p>
<p>自転車ロードサービスは意外に使えなさそう? 少なくともパンク程度で利用するのはイマイチ。
遠出するならパンク修理キットと携帯用ポンプは必須かな。
どうせチューブ交換になるのなら,パッチ当てのキットじゃなくて注入式のパンク修理剤とかでもいいかも。</p>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://text.baldanders.info/remark/2022/09/bike-parking/">駐輪場をたずねて三千里(ってほどでもない)</a></li>
</ul>
<h2>参考</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B00AAPY0ZQ?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/418tNaWn2NL._SL160_.jpg" width="160" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B00AAPY0ZQ?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">マルニ(Maruni) クイックショット K-600 仏式バルブ用応急瞬間パンク修理剤 ブラック</a></dt>
<dd>マルニ(Maruni)</dd>
<dd>スポーツ用品</dd>
<dd>B00AAPY0ZQ (ASIN), 4907388003301 (EAN)</dd>
</dl>
<p class="description">転ばぬ先の杖として購入。緊急用のパンク修理剤。フレンチバルブ対応。コンパクトサイズでサドルバッグやステムバッグにも入る。使わずに済めばいいのだが...</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-09-18">2023-09-18</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- パンク修理剤 -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B07MZ8459H?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/31Y6T8uqvFL._SL160_.jpg" width="160" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B07MZ8459H?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">クロップス(crops) バイクロック ヘルメットロック UNI Q (ユニーク) | 3桁ダイヤル | CP-SPD07SHT (40, カーボン調)</a></dt>
<dd>クロップス(Crops) (Release 2019-03-23)</dd>
<dd>Automotive</dd>
<dd>B07MZ8459H (ASIN), 4571144619237 (EAN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">ヘルメット着用努力義務化に合わせて買った。簡易ロックだが,カジュアル窃盗避けということで(笑)</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-04-16">2023-04-16</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- ヘルメットロック -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B074BCKH1C?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/61sGsTyc-5L._SL160_.jpg" width="136" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B074BCKH1C?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">「らき☆すた」歌のベスト〜アニメ放送10周年記念盤〜</a></dt>
<dd>Various artists (メインアーティスト)</dd>
<dd>Lantis (Release 2017-08-02)</dd>
<dd>MP3 ダウンロード</dd>
<dd>B074BCKH1C (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">どうしても「もってけ!セーラーふく」が聴きたくなって(笑) 通勤中にヘヴィローテーションしてる。当時この歌詞を考えた畑亜貴さんって天才だよなー</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-09-09">2023-09-09</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- らき☆すた(らきすた) -->
自転車のリスク・マネジメント 2023
tag:text.Baldanders.info,2023-04-16:/remark/2023/04/risk-management-for-bike/
2023-04-16T04:33:36+00:00
2023-04-29T00:34:48+00:00
自転車安全利用五則 / メットは被っとけ / 保険は入っとけ
Spiegel
https://baldanders.info/profile/
<p>最近見かけた記事。</p>
<ul>
<li><a href="https://note.com/myuchef/n/nb4711c64e29b">なぜ自転車のヘルメットは努力義務になったのか|T.Goto|note</a></li>
</ul>
<p>いや,うーん。
分からなくもないけど,この記事自体が政治宣伝ぽくて鼻をつまんでしまうんだよなぁ。
電動けりんちょ,おっとキックボード等との抱き合わせの話はみんな思ってることで,たとえば</p>
<ul>
<li><a href="https://www.cycling-ex.com/2023/04/bicycle_escooter_helmet.html">小型電動モビリティのヘルメット着用努力義務と、自転車のそれはリンクしている – CyclingEX CLASSIC</a></li>
</ul>
<p>程度の認識でいいんじゃないの? と思う。
抱き合わせで何が悪い。</p>
<p>というわけで,今までも散発的に書いてたけど,自転車のリスク・マネジメントについてつらつらと書いてみる。</p>
<h2>自転車安全利用五則</h2>
<p>「自転車安全利用五則」と呼ばれるものがある。
曰く</p>
<figure>
<blockquote><ol>
<li>車道が原則、左側を通行<br>歩道は例外、歩行者を優先</li>
<li>交差点では信号と一時停止を守って、安全確認</li>
<li>夜間はライトを点灯</li>
<li>飲酒運転は禁止</li>
<li>ヘルメットを着用</li>
</ol>
</blockquote>
<figcaption><div><q><a href="https://www8.cao.go.jp/koutu/taisaku/bicycle/bicycle_r04.html">自転車の安全利用の促進について - 内閣府</a></q>より</div></figcaption>
</figure>
<p>ってことらしい。
また2022年11月から自転車による交通違反の罰則が厳しくなった。</p>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/JzgtrCMuPyE" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=JzgtrCMuPyE">知っておきたいロードバイクの法改正 - YouTube</a></div></figcaption>
</figure>
<p>この辺は致し方ないところであろう。
私が子どもの頃のような長閑な時代ではないのだ。
自転車は歩行者の延長ではなく車の一種である,という点は頭に入れておくべきだろう。</p>
<p>そういえば,スクランブル交差点で歩行者信号が青になったので自転車に乗って渡ろうとしたら,おまわりさんにとっ捕まったって話があったよね。
でも,スクランブル交差点で自動車信号に合わせて自転車に乗って渡ったらソッコー轢かれるぢゃん。どんな罠だよ(笑)</p>
<p>公道における自転車の立ち位置は微妙で,それ故に事故リスクが高いルートは避けるなどの自衛も必要になる。</p>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/Hd914N6KOCs" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=Hd914N6KOCs">自転車を安全に乗ろう!街中に潜む危険箇所をご紹介! - YouTube</a></div></figcaption>
</figure>
<h2>メットは被っとけ</h2>
<p>2022年5月に決議された改正道交法で,自転車に乗る際は年齢を問わずヘルメットを着用することが「努力義務」となった。
そしてこの改正道交法は2023年4月から施行されている。
つまり,いきなり始まったわけじゃなくて,一応11ヶ月の猶予期間はあったんだよ(事前の周知はされてたか怪しいけど)。</p>
<p>私は2022年9月に<a href="https://text.baldanders.info/remark/2022/09/x-road-bike/" title="チャリンコ買うた">クロスバイクを購入</a>したが,その後の2ヶ月後点検の際に遅まきながら<a href="https://text.baldanders.info/remark/2022/11/initial-maintenance-of-my-bike/" title="自転車の初期点検とお買い物">ヘルメットとグローブを購入</a>している。</p>
<p><a href="https://text.baldanders.info/remark/2022/11/accident-insurance-for-bike/" title="自転車のリスク・マネジメント(損害保険,他)">当時の記事</a>でも書いたが,私は若い頃は割と自転車事故に遭っていて,自動車と衝突してふっ飛ばされたこともあるし(自転車は大破したが奇跡的に捻挫のみで済んだ),出会い頭に歩行者を轢きそうになったこともある(急ブレーキに失敗して自転車ごと前転した。歩行者に当たらなくてよかった)。
スポーツサイクルに乗る際にヘルメットやグローブを着用することの重要性は分かっているつもりだ。</p>
<p>お買い物用のママチャリや子どもの通学用シティサイクルと,今や嗜好品になりつつあるスポーツサイクルをひと絡げに「自転車」として扱うのはどうかとも思うのだが,私の若い頃を思い返してみれば,原チャリでもノーヘル当たり前だった時代もあるし,車のシートベルトやチャイルドシートも定着するまで随分かかった。
自転車のヘルメットも「当たり前」になるまでしばらくかかるのだろう。</p>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/v7PUy1yprrg" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=v7PUy1yprrg">知っていますか?自転車用ヘルメットの正しいかぶり方 - YouTube</a></div></figcaption>
</figure>
<p>メットを前後逆に被る人とかいるのか… まぁ,とにかく,メットは被っとけ。</p>
<h3>ヘルメットロック</h3>
<p>で,問題はヘルメットって乗車時以外は邪魔物なんだよね。
今までは,あご紐でフレームに引っ掛けるだけだったんだが</p>
<figure style='margin:0 auto;text-align:center;'><a href="https://www.flickr.com/photos/spiegel/52509312976/"><img src="https://text.baldanders.info/remark/2022/11/challenge-for-the-yaegaki-shrine/52509312976_0a7e78d1f7_e.jpg" srcset="https://text.baldanders.info/remark/2022/11/challenge-for-the-yaegaki-shrine/52509312976_0a7e78d1f7_e.jpg 500w" sizes="(min-width:600px) 500px, 80vw" alt="八重垣神社の駐輪場 | Flickr" loading="lazy"></a><figcaption><div><a href="https://www.flickr.com/photos/spiegel/52509312976/">八重垣神社の駐輪場 | Flickr</a></div></figcaption>
</figure>
<p>これからは安物ヘルメットでもカジュアルに盗むバカとか出そうなので,ヘルメットロックを買うことにした。
ヘルメットロックについては以下の記事が参考になる。</p>
<ul>
<li><a href="https://www.cycling-ex.com/2022/12/helmet-holder-2023.html">【ヘルメット】自転車のヘルメットホルダーとして使えそうなアイテム【盗難防止】 – CyclingEX CLASSIC</a></li>
</ul>
<p>私が買ったのはこれ。</p>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B07MZ8459H?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/31Y6T8uqvFL._SL160_.jpg" width="160" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B07MZ8459H?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">クロップス(crops) バイクロック ヘルメットロック UNI Q (ユニーク) | 3桁ダイヤル | CP-SPD07SHT (40, カーボン調)</a></dt>
<dd>クロップス(Crops) (Release 2019-03-23)</dd>
<dd>Automotive</dd>
<dd>B07MZ8459H (ASIN), 4571144619237 (EAN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">ヘルメット着用努力義務化に合わせて買った。簡易ロックだが,カジュアル窃盗避けということで(笑)</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-04-16">2023-04-16</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- ヘルメットロック -->
<p>自転車のロックを兼ねるならもっとワイヤーが長いほうがいいかも知れないが,私は自転車用のロックは別に持ってるので。</p>
<h3>サイクルキャップ</h3>
<p>私は血族の呪いで五十路にして既に薄くなってしまったが(故にスポーツ刈りにしている),髪型の乱れが気になる方は,次善の策ではあるが,ヘルメットの間にサイクルキャップを被るとか,カジュアルキャップを持ち歩くという手もある。</p>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/PM3tsyP_aMw" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=PM3tsyP_aMw">これを見ればあなたも、、、。自転車乗るとき、キャップ・帽子かぶってますか? - YouTube</a></div></figcaption>
</figure>
<p>サイクルキャップを被る場合は,キャップを被った状態でヘルメットを合わせないと後悔する(笑)</p>
<h2>保険は入っとけ</h2>
<p>ヘルメットより重要なのが保険。
保険加入の(努力)義務は自治体によって異なる。</p>
<figure>
<blockquote class="nobox" style='margin:0 auto;text-align:center;'>
<a href="https://www.mlit.go.jp/road/bicycleuse/promotion/pdf/situation.pdf"><img src="https://text.baldanders.info/remark/2022/11/accident-insurance-for-bike/situation_pdf.png" srcset="https://text.baldanders.info/remark/2022/11/accident-insurance-for-bike/situation_pdf.png 1234w" sizes="(min-width:600px) 500px, 80vw" alt="自転車損害賠償責任保険等への加入促進(2023-04-01 時点)" loading="lazy"></a>
</blockquote>
<figcaption><div><q><a href="https://www.mlit.go.jp/road/bicycleuse/promotion/pdf/situation.pdf">自転車損害賠償責任保険等への加入促進(2023-04-01 時点)</a></q>より</div></figcaption>
</figure>
<p>この表には載ってないが,私が住んでいる島根県松江市は個別の<a href="https://www.city.matsue.lg.jp/soshikikarasagasu/gikaijimukyoku_gijichosaka/matsueshigikai/3/1380.html" title="議会政策条例(自転車安全利用条例)/松江市ホームページ">条例</a>で努力義務が課せられている。</p>
<figure>
<blockquote>自転車利用者は、定期的な点検整備及び事故に備えた損害保険への加入に努めなければならない。</blockquote>
<figcaption><div><q><a href="https://www.city.matsue.lg.jp/material/files/group/108/jyoureizenbun.pdf">松江市自転車安全利用条例 第5条 3</a></q>より</div></figcaption>
</figure>
<p>私はヘルメットとかを購入したのと同時期に <a href="https://text.baldanders.info/remark/2022/11/accident-insurance-for-bike/" title="自転車のリスク・マネジメント(損害保険,他)">au の保険にも入っている</a>。
年間6K円ほどだが,私が利用しているキャリアが au なので支払いが楽だし,同居家族も対象に含まれるので,これにした。
この辺は人によって違うだろう。</p>
<p>自転車の性能が上がるほど加害者側になるリスク(=生起確率×影響度)は馬鹿にできない。
また,東京都とか保険加入が義務になっているところは,勤務先によっては自転車通勤を希望する際に保険の入会証明書を提出しないといけなかったりするらしい。</p>
<p>まぁ,保険は入っとけってことだよね。</p>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/9oJ-UO9zhK0" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=9oJ-UO9zhK0">保険のプロが選ぶ自転車保険は「UGOKU」一択です - YouTube</a></div></figcaption>
</figure>
<h2>ブックマーク</h2>
<ul>
<li>
<p><a href="https://www.cycling-ex.com/2015/12/jitensha_light_kimari_47.html">自転車の灯火についての決まりを全都道府県調べてみた – CyclingEX CLASSIC</a></p>
</li>
<li>
<p><a href="https://giant-store.jp/matsue/parts/13174/">【パーツ】あなたのライトは、明るさ基準値クリアしていますか?!</a> : この記事の800ルーメンの前照灯を購入した。スマートモードが便利</p>
</li>
<li>
<p><a href="https://text.baldanders.info/remark/2022/09/pound-force-per-square-inch/">はじめての空気圧チェック</a></p>
</li>
<li>
<p><a href="https://text.baldanders.info/remark/2022/09/cleaning-the-chain/">チェーンお掃除を試してみる</a></p>
</li>
</ul>
<h2>参考</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B082FDBWDH?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/41OOodFNi7L._SL160_.jpg" width="160" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B082FDBWDH?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">ランニング ポーチ 【駅伝優勝ランナーが認めた】 ウエスト バッグ 大容量 防水 軽量 スマホ ホルダー ボディバッグ フェス ユニセックス ジョギング ウォーキング 登山 釣り IkucheL (グレー 2つ口)</a></dt>
<dd>IkucheL</dd>
<dd></dd>
<dd>B082FDBWDH (ASIN), 4580614300292 (EAN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">ランニングポーチだが自転車に乗る際のウェストポーチとして使っている。ベルトがゴムなので揺れない。大きいポケットにはスマホとモバイルバッテリ(小)を重ねて入れられる。小銭や鍵は小さい方のポケットに。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2023-04-16">2023-04-16</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- ランニングポーチ -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B092CX9HBY?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/31lP89pAIRL._SL160_.jpg" width="160" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B092CX9HBY?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">モバイルバッテリー 小型 軽量 薄型10000mAh 大容量 PD18W QC3.0【Type-C入出力ポート/Power Delivery対応/Quick Charge3.0対応/PSE認証済】 iPhone/iPad/Android等各種対応 (ブラック)</a></dt>
<dd>MOXNICE</dd>
<dd></dd>
<dd>B092CX9HBY (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">コンパクトでランニングポーチに楽々入る。【追記】2023年時点ではもう売ってないらしい。残念。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2021-11-07">2021-11-07</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- モバイルバッテリ(小) -->
“Copyleft Trolls” とたたかう 2023
tag:text.Baldanders.info,2023-04-08:/remark/2023/04/copyleft-trolls-2023/
2023-04-08T03:21:36+00:00
2023-05-21T01:15:08+00:00
「文化の発展に寄与する」ってのは,こういう活動を指すんだよね,本来は!
Spiegel
https://baldanders.info/profile/
<p>最近すっかり疎遠になっている Twiter の TL を眺めてたら</p>
<ul>
<li><a href="https://creativecommons.jp/2023/04/07/enforcement-principles-now-published/">ライセンスの執行についての資料を公開しました | クリエイティブ・コモンズ・ジャパン</a>
<ul>
<li><a href="https://creativecommons.jp/license-enforcement/">ライセンスの執行 | クリエイティブ・コモンズ・ジャパン</a></li>
<li><a href="https://creativecommons.jp/license-enforcement/enforcement-principles/">執行に関する原則 | クリエイティブ・コモンズ・ジャパン</a></li>
<li><a href="https://creativecommons.jp/misuse-of-works/">もしあなたのCCライセンス作品が不適切な利用をされたら | クリエイティブ・コモンズ・ジャパン</a></li>
</ul>
</li>
</ul>
<p>という記事が<a href="https://twitter.com/yomoyomo/status/1644355169231200256">紹介</a>されていた。
つか CCjp ってまだ活動してるんだねぇ。
もう看板だけの組織だと思ってたよ(笑)</p>
<p>いわゆる “copyleft trolls” は<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> CC licenses の古いバージョンに起因する不備をついたもので,2022年のはじめ頃に話題になったものだ。</p>
<ul>
<li><a href="https://text.baldanders.info/remark/2022/01/new-copyright-trolls/">CC Licenses を悪用した新手の著作権トロルについて</a></li>
<li><a href="https://text.baldanders.info/remark/2022/02/do-not-feed-the-trolls/">「トロルにエサを与えないでください」</a></li>
</ul>
<p>1年以上前の話を今更? 選挙時期だし,ひょっとして何かの政治宣伝か? と思ったが,どうも最近になって本家 CC が出した</p>
<ul>
<li><a href="https://creativecommons.org/license-enforcement/enforcement-principles/">Statement of Enforcement Principles - Creative Commons</a></li>
</ul>
<p>を受けてのものらしい。
CC licences 執行の3つの原則とは以下のとおり:</p>
<figure lang="en">
<blockquote><ul>
<li>The primary goal of license enforcement should be getting reusers to comply with the license.</li>
<li>Legal action should be taken sparingly.</li>
<li>Enforcement may involve monetary compensation, but should not be a business model.</li>
</ul>
</blockquote>
<figcaption><div>via <q><a href="https://creativecommons.org/license-enforcement/enforcement-principles/">Statement of Enforcement Principles</a></q></div></figcaption>
</figure>
<figure>
<blockquote><ul>
<li>再利用を行う者にライセンスを遵守してもらうことを、ライセンスの執行の第一の目的とすること</li>
<li>法的な措置は頻繁に行われるべきではないこと</li>
<li>金銭的補償をもたらす執行もあり得るが、それがビジネスモデルとなるべきではないこと</li>
</ul>
</blockquote>
<figcaption><div><q><a href="https://creativecommons.jp/license-enforcement/enforcement-principles/">執行に関する原則</a></q>より</div></figcaption>
</figure>
<p>もう少し言うと「ライセンスの目的は(利用条件を遵守させることにより)知的コモンズを拡大することにあり,(違反を誘発して)お金を巻き上げるビジネスモデルであってはならない」ということだ。</p>
<p>“Copyleft trolls” の経緯と経過については <a href="https://mamot.fr/@doctorow" title="doctorow (@doctorow@mamot.fr) - La Quadrature du Net - Mastodon - Media Fédéré">Cory Doctorow</a> さんが最近書かれた “<a href="https://pluralistic.net/2023/04/01/pixsynnussija/#pilkunnussija" title="Pluralistic: Flickr to copyleft trolls: drop dead (01 Apr 2023) – Pluralistic: Daily links from Cory Doctorow">Flickr to copyleft trolls: drop dead</a>” が詳しい。
4月1日と明記されてたのでエイプリルフールを疑ったが,マジな記事なようだ(笑)</p>
<p>これによると Flickr のガイドラインに以下の文言が追加された。</p>
<figure lang="en">
<blockquote>Give some grace. When you choose to grant permission to your photos under any <a href="https://www.flickrhelp.com/hc/en-us/articles/4404070159636-Creative-Commons">open license</a> available on Flickr, we ask that you give the reuser a 30-day grace period to fix any possible mistake or misuse of your CC-licensed work with no penalty. Failure to allow a good faith reuser the opportunity to correct errors is against the intent of the license and not in line with the values of our community, and can result in your account being removed. If you use CC licenses, please understand that we support and adhere to the strategy for addressing license enforcement described in the <a href="https://creativecommons.org/license-enforcement/enforcement-principles/">Creative Commons’ Statement of Enforcement Principles</a>.</blockquote>
<figcaption><div>via <q><a href="https://www.flickr.com/help/guidelines">Flickr Community guidelines | Flickr</a></q></div></figcaption>
</figure>
<p>これは上述した CC の「執行に関する原則」を受けてのものだね。
このガイドラインに違反する「トロル」な行為を受けた場合の報告手段も示されている。</p>
<ul>
<li><a href="https://www.flickrhelp.com/hc/en-us/articles/4404057906068-How-to-report-Community-Guidelines-violations">How to report Community Guidelines violations – Flickr Help Center</a></li>
</ul>
<p>Flickr は Yahoo! / Verizon 時代の「技術的負債」を返済するのに忙しく,なかなか前に進んでいないように見えるが</p>
<figure lang="en">
<blockquote><p>But what they have done is modify their policies to create a de facto CC 4.0 environment for their users, by promising to terminate the accounts of any user who repeatedly threatens legal action over bad attribution strings without first offering a 30-day grace period.</p>
<p>Flickr’s done more than that, actually. For one thing, they ditched Pixsy, severing their relationship with the company (Pixsy still lists them on its “partner” page). They also created the Flickr Foundation, a nonprofit devoted to providing long-term, responsible stewardship for their CC and public domain image respositories:</p>
<p><a href="https://www.flickr.org/">https://www.flickr.org/</a></p>
</blockquote>
<figcaption><div>via <q><a href="https://pluralistic.net/2023/04/01/pixsynnussija/#pilkunnussija">Flickr to copyleft trolls: drop dead</a></q></div></figcaption>
</figure>
<p>とも書かれている。
Flickr Foundation については私も以前に紹介したので参考にどうぞ。</p>
<ul>
<li><a href="https://text.baldanders.info/remark/2022/11/the-flickr-foundation/">The Flickr Foundation 100年の計</a></li>
</ul>
<p>あとは <a href="https://mamot.fr/@doctorow" title="doctorow (@doctorow@mamot.fr) - La Quadrature du Net - Mastodon - Media Fédéré">Cory Doctorow</a> さん自身が脅迫を受けた(?)話とか書かれていてなかなかに面白いので,ぜひ件の記事をご覧あれ。</p>
<p><a href="https://mamot.fr/@doctorow" title="doctorow (@doctorow@mamot.fr) - La Quadrature du Net - Mastodon - Media Fédéré">Cory Doctorow</a> さんといえば</p>
<ul>
<li><a href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys" title="Pluralistic: Tiktok’s enshittification (21 Jan 2023) – Pluralistic: Daily links from Cory Doctorow">Tiktok’s enshittification</a> (<a href="https://p2ptk.org/monopoly/4366" title="メタクソ化するTiktok:プラットフォームが生まれ、成長し、支配し、滅びるまで | p2ptk[.]org">日本語訳</a>)</li>
</ul>
<p>という記事があって,その冒頭でいきなり</p>
<figure lang="en">
<blockquote>Here is how platforms die: first, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die.</blockquote>
<figcaption><div>via <q><a href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys">Tiktok's enshittification</a></q></div></figcaption>
</figure>
<figure>
<blockquote>プラットフォームはこのように滅びていく。まず、ユーザにとって良き存在になる。次に、ビジネス顧客にとって良き存在になるために、ユーザを虐げる。最後に、ビジネス顧客を虐げて、すべての価値を自分たちに向ける。そうして死んでいく。</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/monopoly/4366">メタクソ化するTiktok</a></q>より</div></figcaption>
</figure>
<p>とか書かれていて,あまりの納得感に思わず笑ってしまったのだが,「ビジネス顧客にとって良き存在になるために、ユーザを虐げる」をプラットフォームの第2フェーズとするなら, Flickr はこのフェーズへの移行をどうにか踏み留まっている状況か。
末永く踏み留まっていただきたいものである。</p>
<p>まぁ,なんちうか「文化の発展に寄与する」ってのは,こういう活動を指すんだよね,本来は! どこぞの文化庁やら文科省やら,あるいは某 Twitter とかに於いては,よくよく考えていただきたい。</p>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://blog.flickr.net/en/2023/05/18/helping-flickr-members-understand-what-flickr-is-for-with-refreshed-community-guidelines/">Helping Flickr members understand what Flickr is for with refreshed community guidelines. | Flickr Blog</a></li>
</ul>
<h2>参考文献</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B099RTG3J7?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/51TsccJ7LnS._SL160_.jpg" width="112" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B099RTG3J7?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">著作権は文化を発展させるのか: 人権と文化コモンズ</a></dt>
<dd>山田 奨治 (著)</dd>
<dd>人文書院 2021-07-29 (Release 2021-07-29)</dd>
<dd>Kindle版</dd>
<dd>B099RTG3J7 (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">著作権を「ユーザーの人権」という観点から捉え直す。その後 文化→コモンズ→文化コモンズ と進み,本当の意味で「文化の発展に寄与する」とはどういうことか考察していく。
</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2022-10-23">2022-10-23</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 著作権は文化を発展させるのか: 人権と文化コモンズ -->
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>CC licences は厳密には copyleft ではないので「<a href="https://yamdas.hatenablog.com/entry/20220105/copyleft-trolls" title="著作権トロールの新種としての「コピーレフト・トロール」 - YAMDAS現更新履歴">「コピーレフト・トロール」という言葉は問題があるよね</a>(超意訳)」と yomoyomo さんも書いておられたが,すっかり定着してしまった感がある。 <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>
米国 FBI は広告ブロッカーを推奨している?
tag:text.Baldanders.info,2022-12-29:/remark/2022/12/ad-blocker/
2022-12-29T01:34:27+00:00
2023-02-18T08:11:40+00:00
既に Web 広告は曲がり角に入ってるんだろう。
Spiegel
https://baldanders.info/profile/
<p>個人的には Web ページ上の広告はあまり気にしないのだが(コンテンツをぶった切るような TL 広告や YouTube 広告はムカつくけど),どうやら最近は検索サービスに於いて有名ブランドの広告になりすます詐欺広告が横行しているらしい。</p>
<ul>
<li><a href="https://www.ic3.gov/Media/Y2022/PSA221221">Internet Crime Complaint Center (IC3) | Cyber Criminals Impersonating Brands Using Search Engine Advertisement Services to Defraud Users</a></li>
</ul>
<p>これによると</p>
<figure lang="en">
<blockquote><p>In instances where a user is searching for a program to download, the fraudulent webpage has a link to download software that is actually malware. The download page looks legitimate and the download itself is named after the program the user intended to download.</p>
<p>These advertisements have also been used to impersonate websites involved in finances, particularly cryptocurrency exchange platforms. These malicious sites appear to be real exchange platforms and prompt users to enter login credentials and financial information, giving criminal actors access to steal funds.</p>
</blockquote>
<figcaption><div>via <q><a href="https://www.ic3.gov/Media/Y2022/PSA221221">Cyber Criminals Impersonating Brands Using Search Engine Advertisement Services to Defraud Users</a></q></div></figcaption>
</figure>
<p>てぇことらしい。</p>
<p>というわけで,久しぶりに Google 検索を試してみる。
たとえば Google 検索で「暗号通貨」を検索すると,まずはこんな感じに広告がずらっと並ぶ。</p>
<figure style='margin:0 auto;text-align:center;'><a href="./google-search-1.png"><img src="./google-search-1.png" srcset="./google-search-1.png 1061w" sizes="(min-width:600px) 500px, 80vw" alt="Google 検索(1)" loading="lazy"></a><figcaption><div><a href="./google-search-1.png">Google 検索(1)</a></div></figcaption>
</figure>
<p>そこからスクロールダウンするとニュースが表示され</p>
<figure style='margin:0 auto;text-align:center;'><a href="./google-search-2.png"><img src="./google-search-2.png" srcset="./google-search-2.png 1061w" sizes="(min-width:600px) 500px, 80vw" alt="Google 検索(2)" loading="lazy"></a><figcaption><div><a href="./google-search-2.png">Google 検索(2)</a></div></figcaption>
</figure>
<p>そこからさらにスクロールダウンでようやく本来の検索結果が表示される。</p>
<figure style='margin:0 auto;text-align:center;'><a href="./google-search-3.png"><img src="./google-search-3.png" srcset="./google-search-3.png 1061w" sizes="(min-width:600px) 500px, 80vw" alt="Google 検索(3)" loading="lazy"></a><figcaption><div><a href="./google-search-3.png">Google 検索(3)</a></div></figcaption>
</figure>
<p>えっ,待って。
皆こんなク◯みたいな UX でいいの? つまり Google 検索を利用してる人って広告を検索してるってこと? これって詐欺広告以前の問題じゃないの?</p>
<p>最初に挙げた FBI の記事では一応,個人向けの対策も挙げている。曰く</p>
<figure lang="en">
<blockquote><ul>
<li>Before clicking on an advertisement, check the URL to make sure the site is authentic. A malicious domain name may be similar to the intended URL but with typos or a misplaced letter.</li>
<li>Rather than search for a business or financial institution, type the business’s URL into an internet browser’s address bar to access the official website directly.</li>
<li>Use an ad blocking extension when performing internet searches. Most internet browsers allow a user to add extensions, including extensions that block advertisements. These ad blockers can be turned on and off within a browser to permit advertisements on certain websites while blocking advertisements on others.</li>
</ul>
</blockquote>
<figcaption><div>via <q><a href="https://www.ic3.gov/Media/Y2022/PSA221221">Cyber Criminals Impersonating Brands Using Search Engine Advertisement Services to Defraud Users</a></q></div></figcaption>
</figure>
<p>とのこと。</p>
<p>最初の2つは Phishing 回避策としては定番だね。
でも今時の Phishing は巧妙でドメイン名をパッと見しただけでは判別しづらいものも多い。
あと,検索サービスで探してるのに “type the business’s URL into an internet browser’s address bar to access the official website directly” っていうアドバイスはないと思う。
その URL が分からなくて検索してるのに。</p>
<p>で,最後のが広告ブロッカーを使えというアドバイスなんだけど,検索サービスに限るなら,こんなク◯みたいな UX を強制するサービスは使わないのが吉なんじゃないのかなぁ。</p>
<p>個人的には <a href="https://duckduckgo.com/">DuckDuckGo</a> を推させてもらう。
たとえば先程の「暗号通貨」を <a href="https://duckduckgo.com/">DuckDuckGo</a> で検索すれば</p>
<figure style='margin:0 auto;text-align:center;'><a href="./duckduckgo.png"><img src="./duckduckgo.png" srcset="./duckduckgo.png 1282w" sizes="(min-width:600px) 500px, 80vw" alt="DuckDuckGo" loading="lazy"></a><figcaption><div><a href="./duckduckgo.png">DuckDuckGo</a></div></figcaption>
</figure>
<p>という感じに多少はまともな表示になる。
少なくとも広告がページトップにドカンと表示されることはない。</p>
<p>昔の <a href="https://duckduckgo.com/">DuckDuckGo</a> は特に日本語サイトの検索がイマイチだったが,今は全く遜色なく使えている。
個人的には情報を探す際に90%以上は <a href="https://duckduckgo.com/">DuckDuckGo</a> で事足りる。
よほどのことがないと Google は使わない感じ。</p>
<p>とにかく Web 広告はイヤって方については GIZMODE が <a href="https://ublockorigin.com/jp" title="uBlock Origin – フリーかつオープンソースの広告ブロッカー。">uBlock Origin</a> を<a href="https://www.gizmodo.jp/2022/12/google-bing-fbi-ad-blocker-scam-ads.html" title="FBIがみんなに広告ブロッカーを使って欲しい理由 | ギズモード・ジャパン">推している</a>ようなの試してみてもいいだろう。</p>
<p>まとめとしては</p>
<ul>
<li>検索サービスは <a href="https://duckduckgo.com/">DuckDuckGo</a> など,広告のないサービスを利用する</li>
<li>Web ページ上の広告には(真贋に関わらず)近づかない</li>
<li>どうしても見えてる広告を触っちゃう,あるいは広告が表示されること自体がウザいと思う方は <a href="https://ublockorigin.com/jp" title="uBlock Origin – フリーかつオープンソースの広告ブロッカー。">uBlock Origin</a> 等の広告ブロッカーを検討する</li>
</ul>
<p>といったところだろうか。
あっ,もちろんクロスサイト cookie やトラッキング・コード,マイニング・コードはしっかりブロックした上でね。</p>
<figure style='margin:0 auto;text-align:center;'><a href="./settings-for-firefox.png"><img src="./settings-for-firefox.png" srcset="./settings-for-firefox.png 999w" sizes="(min-width:600px) 500px, 80vw" alt="Firefox の設定" loading="lazy"></a><figcaption><div><a href="./settings-for-firefox.png">Firefox の設定</a></div></figcaption>
</figure>
<p>EFF も2019年に</p>
<ul>
<li><a href="https://www.eff.org/deeplinks/2019/07/adblocking-how-about-nah">Adblocking: How About Nah? | Electronic Frontier Foundation</a></li>
<li><a href="https://p2ptk.org/monopoly/2668">広告ブロッカーは「嫌ならどうする?」の表明である | p2ptk[.]org</a></li>
</ul>
<p>みたいな記事を出してたりするし,既に Web 広告は曲がり角に入ってるんだろう。</p>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://magazine-k.jp/2016/01/25/spam-and-media/">メディアは(常に)スパムか? « マガジン航[kɔː]</a></li>
<li><a href="https://arstechnica.com/information-technology/2023/02/until-further-notice-think-twice-before-using-google-to-download-software/">Until further notice, think twice before using Google to download software | Ars Technica</a>
<ul>
<li><a href="https://www.schneier.com/blog/archives/2023/02/malware-delivered-through-google-search.html">Malware Delivered through Google Search - Schneier on Security</a></li>
</ul>
</li>
</ul>
<h2>参考図書</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/51KtN0YwWcL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/430924744X?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">スパム[spam]:インターネットのダークサイド</a></dt>
<dd>フィン・ブラントン (著), 生貝直人 (監修), 成原慧 (監修), 松浦俊輔 (翻訳)</dd>
<dd>河出書房新社 2015-12-25</dd>
<dd>単行本</dd>
<dd>430924744X (ASIN), 9784309247441 (EAN), 430924744X (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="3"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">とりあえず読みづらい。修飾語が多すぎるよ。ギリシア神話かっての。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2016-12-10">2016-12-10</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- スパム -->
いまさら「安全なメッセージング・アプリ」
tag:text.Baldanders.info,2022-11-10:/remark/2022/11/secure-messaging-apps/
2022-11-10T12:09:00+00:00
2022-11-10T12:11:52+00:00
私から「Signal を入れよう」と持ちかけてもいぢめないであげてください。
Spiegel
https://baldanders.info/profile/
<p>Twitter TL を眺めてたら Mastodon で <a href="https://mastodon.world/@ruud/109315777955924243"><q lang="en">Direct Messages on Mastodon are NOT encrypted</q></a> みたいなのが流れてるんだそうで,そもそも Twitter の DM だって<a href="https://edition.cnn.com/2022/04/30/tech/twitter-dms-encrypted-elon-musk/" title="Elon Musk wants end-to-end encryption for Twitter DMs. It may not be that simple | CNN Business">安全じゃない</a>し,複数のサーバが分散している Mastodon なら尚更だと思うのだが,世の中の認識はどんな感じなのだろう。</p>
<p>大昔のカビの生えた記事で申し訳ないが,2014年に EFF が “<a href="https://www.eff.org/pages/secure-messaging-scorecard" title="Secure Messaging Scorecard | Electronic Frontier Foundation">Secure Messaging Scorecard</a>” という記事を公開していて,この中で「安全なメッセージング・アプリ」の7項目を挙げている。
曰く</p>
<ol>
<li>Encrypted in transit?</li>
<li>Encrypted so the provider can’t read it?</li>
<li>Can you verify contacts’ identities?</li>
<li>Are past comms secure if your keys are stolen?</li>
<li>Is the code open to independent review?</li>
<li>Is security design properly documented?</li>
<li>Has there been any recent code audit?</li>
</ol>
<p>である。
当時は私も<a href="https://baldanders.info/blog/000782/" title="安全なメッセージング・アプリとは">便乗記事</a>を書いていたが,その後 EFF は記事をいったん引っ込めている。
現在,跡地として残っている記事には</p>
<figure lang="en">
<blockquote>This is version 1.0 of our scorecard; it is out of date, and is preserved here for purely historical reasons. Please visit <a href="https://ssd.eff.org/">Surveillance Self-Defense</a> if you’re looking for recommendations on specific tools to use to ensure your privacy and security while we work on writing an updated guide to secure messaging. Again, you should not use this scorecard to evaluate the security of any of the listed tools, as many of them have been changed since the scorecard was last updated (some for the better, some for the worse).</blockquote>
<figcaption><div>via <q><a href="https://www.eff.org/pages/secure-messaging-scorecard">Secure Messaging Scorecard | Electronic Frontier Foundation</a></q></div></figcaption>
</figure>
<p>と但し書きがされているのでご注意を。
ただ,まぁ,上に挙げた7項目は「安全なメッセージング・アプリ」を実現するための最低限の条件と言っていいだろう。</p>
<p>Twitter や Mastodon の DM は電子メール・システムに近い。
ユーザ間を直接的に繋ぐ通信ではなく,最低ひとつのサーバにメッセージが保持され,サービス・プロバイダ側の「なにか」がそのメッセージを見ることは(技術的には)可能である。
簡単に言うと,これらは「はがき」と同程度に「検閲可能」なのだ。</p>
<p>安全を確保するためのやり方は色々ある。
たとえば,電子メールでは S/MIME や PGP/MIME といった仕組みでメッセージ本文を暗号化できる。
今は廃れているかもしれないが,かつて Jabber とよばれた XMPP 方式のインスタント・メッセージング・サービスは <a href="https://wiki.xmpp.org/web/OTR">OTR (Off-the-Recording)</a> を組み込むことで,上述の7項目を満たすことに成功した。</p>
<p>個人的には <a href="https://signal.org/">Signal</a> を推す。
上の “<a href="https://www.eff.org/pages/secure-messaging-scorecard" title="Secure Messaging Scorecard | Electronic Frontier Foundation">Secure Messaging Scorecard</a>” 跡地で紹介されている “<a href="https://ssd.eff.org/" title="Surveillance Self-Defense | Tips, Tools and How-tos for Safer Online Communications">Surveillance Self-Defense</a>” でもメッセージング・アプリとして <a href="https://signal.org/">Signal</a> と OTR と WhatsApp が紹介されている。</p>
<p>とはいうものの,8年前の記事でも書いたが,結局メッセージング・アプリで一番大事なのは「相手がいること」なのよね。
一応 <a href="https://signal.org/">Signal</a> は入れてるんだよ。
誰も遊んでくれないけど(笑) 仕事では Microsoft Teams を使ってるし,広島の友人との連絡は Facebook Messenger だし,家族との連絡は電話かキャリアメールだ。
まぁ LINE は今だに毛嫌いしてるので,知り合いから「LINE 入れないの?」と言われても頑なに断ってるけど。</p>
<p>というわけで,私から「<a href="https://signal.org/">Signal</a> を入れよう」と持ちかけてもいぢめないであげてください。</p>
<h2>ブックマーク</h2>
<ul>
<li>
<p><a href="https://yamdas.hatenablog.com/entry/20221031/signal-encryption">メッセージングアプリSignalが暗号化で妥協しない理由を新プレジデントが語る - YAMDAS現更新履歴</a> : ちなみにこの記事で <a href="https://signal.org/">Signal</a> の送金機能の話が出ているが,ベータ機能として組み込まれている。私は有効にしてないけど</p>
</li>
<li>
<p><a href="https://text.baldanders.info/remark/2022/10/signal-will-remove-support-for-sms-text-messages-on-android/">Android 版 Signal が SMS 対応を取りやめる話</a></p>
</li>
</ul>
<h2>参考文献</h2>
<!-- eof -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B01MZGVHOA?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/51T6PBdGbyL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B01MZGVHOA?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">超監視社会</a></dt>
<dd>ブルース・シュナイアー (著), 池村 千秋 (翻訳)</dd>
<dd>草思社 2016-12-13 (Release 2017-02-03)</dd>
<dd>Kindle版</dd>
<dd>B01MZGVHOA (ASIN)</dd>
</dl>
<p class="description">実は積ん読のまま読んでない。そろそろちゃんと最後まで読まないと。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2019-03-23">2019-03-23</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 超監視社会 -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg" width="108" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">暗号化 プライバシーを救った反乱者たち</a></dt>
<dd>スティーブン・レビー (著), 斉藤 隆央 (翻訳)</dd>
<dd>紀伊國屋書店 2002-02-16</dd>
<dd>単行本</dd>
<dd>4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">20世紀末,暗号技術の世界で何があったのか。知りたかったらこちらを読むべし!</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2015-03-09">2015-03-09</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 暗号化 プライバシーを救った反乱者たち -->
自転車のリスク・マネジメント(損害保険,他)
tag:text.Baldanders.info,2022-11-06:/remark/2022/11/accident-insurance-for-bike/
2022-11-06T04:41:12+00:00
2023-04-16T04:39:25+00:00
「そろそろちゃんとやろう」第二弾
Spiegel
https://baldanders.info/profile/
<h2>自転車の損害賠償責任保険</h2>
<p>「そろそろちゃんとやろう」第二弾(笑)</p>
<p>私が契約しているキャリアは au なのだが「<a href="https://www.au.com/mobile/service/bicycle-support/" title="au自転車サポート | サービス・機能 | au">au 自転車サポート</a>」なるものの案内が来てた。</p>
<ul>
<li><a href="https://www.au.com/mobile/service/bicycle-support/" title="au自転車サポート | サービス・機能 | au">au自転車サポート | サービス・機能 | au</a></li>
</ul>
<p>私は盗難保険と事故・故障時のロードサービスについては<a href="https://text.baldanders.info/remark/2022/09/x-road-bike/">自転車購入時</a>に加入済みで,すでに2年分を払い込んでいる。
「<a href="https://www.au.com/mobile/service/bicycle-support/" title="au自転車サポート | サービス・機能 | au">au 自転車サポート</a>」はそれらと一部機能が被るものの「<a href="https://www.au.com/mobile/service/bicycle-support/futai/" title="au自転車サポート付帯保険">付帯保険</a>」で個人賠償責任補償が付いているのは魅力ではある。
保険料の払い込みは通信費と一緒に落ちて月額550円(税込)。
保険の適用が同居家族まで含まれるのもよさげ?</p>
<p>自転車事故で(被害者はもちろん)加害者側になるリスク(=生起確率×影響度)は馬鹿にできない。
これはママチャリでも他のシティバイクでも同じ。
私は若い頃に割と自転車事故に遭っていて,自動車と衝突してふっ飛ばされたこともあるし(自転車は大破したが奇跡的に捻挫のみで済んだ),出会い頭に歩行者を轢きそうになったこともある(急ブレーキに失敗して自転車ごと前転した。歩行者に当たらなくてよかった)。</p>
<p>自転車損害保険への加入義務は自治体によって<a href="https://www.mlit.go.jp/road/bicycleuse/promotion/" title="道路:自転車損害賠償責任保険等への加入促進について - 国土交通省">対応が異なる</a>ようだ。</p>
<figure>
<blockquote class="nobox" style='margin:0 auto;text-align:center;'>
<a href="https://www.mlit.go.jp/road/bicycleuse/promotion/pdf/situation.pdf"><img src="./situation_pdf.png" srcset="./situation_pdf.png 1234w" sizes="(min-width:600px) 500px, 80vw" alt="自転車損害賠償責任保険等への加入促進(2023-04-01 時点)" loading="lazy"></a>
</blockquote>
<figcaption><div><q><a href="https://www.mlit.go.jp/road/bicycleuse/promotion/pdf/situation.pdf">自転車損害賠償責任保険等への加入促進(2023-04-01 時点)</a></q>より</div></figcaption>
</figure>
<p>中国5県では,広島県では義務,鳥取県では努力義務が課せられている
。
ちなみに私が住んでいる松江市は個別の<a href="https://www.city.matsue.lg.jp/soshikikarasagasu/gikaijimukyoku_gijichosaka/matsueshigikai/3/1380.html" title="議会政策条例(自転車安全利用条例)/松江市ホームページ">条例</a>で努力義務が課せられている。</p>
<figure>
<blockquote>自転車利用者は、定期的な点検整備及び事故に備えた損害保険への加入に努めなければならない。</blockquote>
<figcaption><div><q><a href="https://www.city.matsue.lg.jp/material/files/group/108/jyoureizenbun.pdf">松江市自転車安全利用条例 第5条 3</a></q>より</div></figcaption>
</figure>
<p>というわけで,ここ数日どうしようかと考えていたが,必要経費と割り切って「<a href="https://www.au.com/mobile/service/bicycle-support/" title="au自転車サポート | サービス・機能 | au">au 自転車サポート</a>」に入ることにした。
サービス適用開始(申込受付日の翌日)以降,ポータルサイトで入会証明書(PDF)をダウンロードできる。
忘れずにダウンロードしておくこと。</p>
<h2>自転車のリスク・マネジメント</h2>
<p>まぁ,自転車損保は「事後への備え」「転ばぬ先の杖」と言える。
日本には「自転車安全利用五則」ってのがあるそうで,曰く</p>
<figure>
<blockquote><ol>
<li>車道が原則、左側を通行<br>歩道は例外、歩行者を優先</li>
<li>交差点では信号と一時停止を守って、安全確認</li>
<li>夜間はライトを点灯</li>
<li>飲酒運転は禁止</li>
<li>ヘルメットを着用</li>
</ol>
</blockquote>
<figcaption><div><q><a href="https://www8.cao.go.jp/koutu/taisaku/bicycle/bicycle_r04.html">自転車の安全利用の促進について - 内閣府</a></q>より</div></figcaption>
</figure>
<p>ってことらしい。
事故リスクの高いルートは避けるなどの対策も必要かもしれない。
あと(自転車に限らないけど)急ブレーキの練習はしておいたほうがいいよ。</p>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/Hd914N6KOCs" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=Hd914N6KOCs">自転車を安全に乗ろう!街中に潜む危険箇所をご紹介! - YouTube</a></div></figcaption>
</figure>
<p>そういえば,広島に居たときは「公道では自分以外みんな気が狂ってると思え」とか言われてたような気もする。
これも一種のセキュリティ・リスク管理だよ(笑)</p>
<p>安全に楽しく遊びましょう。</p>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://www1.city.matsue.shimane.jp/anzen/koutsuanzen/jitennsha.html">松江市:暮らしのガイド:自転車安全利用の推進</a></li>
<li><a href="https://life.oricon.co.jp/rank-bicycle-insurance/">おすすめの自転車保険ランキング2022年 オリコン顧客満足度調査|調査企業20社の比較・クチコミ・評判</a></li>
<li><a href="https://media2.kddi.com/bike/">自転車保険の加入義務化にも対応!家族で入るとお得なau自転車サポート(KDDI公式)</a></li>
<li><a href="https://www.cycling-ex.com/2015/12/jitensha_light_kimari_47.html">自転車の灯火についての決まりを全都道府県調べてみた – CyclingEX CLASSIC</a></li>
<li><a href="https://giant-store.jp/matsue/parts/13174/">【パーツ】あなたのライトは、明るさ基準値クリアしていますか?!</a> : この記事の800ルーメンの前照灯を購入した。スマートモードが便利</li>
</ul>
<p><figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/o_bb7WxD3FY" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=o_bb7WxD3FY">初心者が最初に覚えるべき4つのテクニック - YouTube</a></div></figcaption>
</figure>
<figure style='margin:0 auto;text-align:center;'>
<div style="position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;">
<iframe class="youtube-player" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" allowfullscreen frameborder="0" src="https://www.youtube-nocookie.com/embed/JzgtrCMuPyE" allowfullscreen></iframe>
</div>
<figcaption><div><a href="https://www.youtube.com/watch?v=JzgtrCMuPyE">知っておきたいロードバイクの法改正 - YouTube</a></div></figcaption>
</figure></p>
<!-- eof -->
紙芝居用の簡易 Web サーバを Go 言語で書く【叱られ編】
tag:text.Baldanders.info,2022-10-17:/golang/simple-web-server-with-golang-3/
2022-10-17T13:28:28+00:00
2022-10-17T13:28:47+00:00
またまた lint に叱られる
Spiegel
https://baldanders.info/profile/
<p>このネタも3回目なので強引にシリーズ化(笑)</p>
<ol>
<li><a href="https://text.baldanders.info/remark/2018/02/simple-web-server-with-golang/">紙芝居用の簡易 Web サーバを Go 言語で書く</a></li>
<li><a href="https://text.baldanders.info/golang/embeded-filesystem/">紙芝居用の簡易サーバを書く【Go 1.16 版】</a></li>
<li><a href="https://text.baldanders.info/golang/simple-web-server-with-golang-3/">紙芝居用の簡易 Web サーバを Go 言語で書く【叱られ編】</a> ←イマココ</li>
</ol>
<h2>net.JoinHostPort 関数を使え!</h2>
<p>これまでの2回の記事を受けて,今回はこのコードからスタート。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="kn">package</span> <span class="nx">main</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="s">"embed"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"flag"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"fmt"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"io/fs"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"net/http"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"os"</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">//go:embed html
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">var</span> <span class="nx">assets</span> <span class="nx">embed</span><span class="p">.</span><span class="nx">FS</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">port</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">Int</span><span class="p">(</span><span class="s">"p"</span><span class="p">,</span> <span class="mi">3000</span><span class="p">,</span> <span class="s">"port number"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="nx">host</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">String</span><span class="p">(</span><span class="s">"host"</span><span class="p">,</span> <span class="s">""</span><span class="p">,</span> <span class="s">"hostname"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="nx">flag</span><span class="p">.</span><span class="nf">Parse</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line hl"><span class="cl"> <span class="nx">addr</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Sprintf</span><span class="p">(</span><span class="s">"%s:%d"</span><span class="p">,</span> <span class="o">*</span><span class="nx">host</span><span class="p">,</span> <span class="o">*</span><span class="nx">port</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="o">*</span><span class="nx">host</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Open http://localhost%s/\n"</span><span class="p">,</span> <span class="nx">addr</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Open http://%s/\n"</span><span class="p">,</span> <span class="nx">addr</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Press ctrl+c to stop"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">root</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">fs</span><span class="p">.</span><span class="nf">Sub</span><span class="p">(</span><span class="nx">assets</span><span class="p">,</span> <span class="s">"html"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">return</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">http</span><span class="p">.</span><span class="nf">Handle</span><span class="p">(</span><span class="s">"/"</span><span class="p">,</span> <span class="nx">http</span><span class="p">.</span><span class="nf">FileServer</span><span class="p">(</span><span class="nx">http</span><span class="p">.</span><span class="nf">FS</span><span class="p">(</span><span class="nx">root</span><span class="p">)))</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">(</span><span class="nx">addr</span><span class="p">,</span> <span class="kc">nil</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>このうち,色付きの行に関連する以下の tweet を見かけた。</p>
<figure style='margin:0 auto;text-align:center;'>
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Goで、pathの結合はfilepath.Joinを使えというのは広まっている気がしているけど、同様にホストとポートを:で結合するのはnet.JoinHostPortを使ってほしい。fmt.Sprintfの場合、IPv6アドレスには:が含まれるので困ることになる。</p>— kadota (@plan9user) <a href="https://twitter.com/plan9user/status/1581870129423405056?ref_src=twsrc%5Etfw">October 17, 2022</a></blockquote>
</figure>
<p>なるほど。
というわけで,先程の部分を</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="nx">addr</span> <span class="o">:=</span> <span class="nx">net</span><span class="p">.</span><span class="nf">JoinHostPort</span><span class="p">(</span><span class="o">*</span><span class="nx">host</span><span class="p">,</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">Itoa</span><span class="p">(</span><span class="o">*</span><span class="nx">port</span><span class="p">))</span>
</span></span></code></pre></div><p>に置き換えた。
これを実行すると</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ go run main.go -host "127.0.0.1" -p 8080
</span></span><span class="line"><span class="cl">Open http://127.0.0.1:8080/
</span></span><span class="line"><span class="cl">Press ctrl+c to stop
</span></span></code></pre></div><p>うんうん。
ちゃんと動くな。</p>
<h2>またまた lint に叱られる</h2>
<p>今回のコードに対して念のため lint をかけてみる。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ golangci-lint run --enable gosec
</span></span><span class="line"><span class="cl">main.go:35:12: G114: Use of net/http serve function that has no support for setting timeouts (gosec)
</span></span><span class="line"><span class="cl"> if err := http.ListenAndServe(addr, nil); err != nil {
</span></span><span class="line"><span class="cl"> ^
</span></span></code></pre></div><p>おぅふ。
そっちかよ <code>orz</code></p>
<p><a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.ListenAndServe()</code> 関数の中身を見ると</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="c1">// ListenAndServe listens on the TCP network address addr and then calls
</span></span></span><span class="line"><span class="cl"><span class="c1">// Serve with handler to handle requests on incoming connections.
</span></span></span><span class="line"><span class="cl"><span class="c1">// Accepted connections are configured to enable TCP keep-alives.
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// The handler is typically nil, in which case the DefaultServeMux is used.
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// ListenAndServe always returns a non-nil error.
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">func</span> <span class="nf">ListenAndServe</span><span class="p">(</span><span class="nx">addr</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">handler</span> <span class="nx">Handler</span><span class="p">)</span> <span class="kt">error</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">server</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Server</span><span class="p">{</span><span class="nx">Addr</span><span class="p">:</span> <span class="nx">addr</span><span class="p">,</span> <span class="nx">Handler</span><span class="p">:</span> <span class="nx">handler</span><span class="p">}</span>
</span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="nx">server</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>となっている。
たしかにタイムアウト関連のフィールドがまるっと無視(つまりゼロ値が設定)されてるな。</p>
<p>試しに</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">(</span><span class="nx">addr</span><span class="p">,</span> <span class="kc">nil</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>を以下に置き換えてみる。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="nx">server</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">http</span><span class="p">.</span><span class="nx">Server</span><span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Addr</span><span class="p">:</span> <span class="nx">addr</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Handler</span><span class="p">:</span> <span class="kc">nil</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">server</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">();</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>これで機能は全く同じになる。
これを lint にかけてみる。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ golangci-lint run --enable gosec
</span></span><span class="line"><span class="cl">main.go:35:13: G112: Potential Slowloris Attack because ReadHeaderTimeout is not configured in the http.Server (gosec)
</span></span><span class="line"><span class="cl"> server := &http.Server{
</span></span><span class="line"><span class="cl"> Addr: addr,
</span></span><span class="line"><span class="cl"> Handler: nil,
</span></span><span class="line"><span class="cl"> }
</span></span></code></pre></div><p>おおっ。
内容が変わった。
ふむふむ。
<a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.Server.ReadHeaderTimeout</code> フィールドに値を設定しろということか。</p>
<p>ちなみに <code>ReadHeaderTimeout</code> は,名前の通り,リクエストヘッダ読み込み時のタイムアウト時間を指定する <a href="https://pkg.go.dev/time" title="time package - time - Go Packages"><code>time</code></a><code>.Duration</code> 型のフィールドで,ゼロ値がセットされているとタイムアウトが設定されないらしい。
つまり <code>ReadHeaderTimeout</code> フィールドは,悪意を持った巨大リクエストヘッダを読み込まされることで処理全体が stall しないようにするための措置のようだ。</p>
<p>というわけで書き直す。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="nx">server</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">http</span><span class="p">.</span><span class="nx">Server</span><span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Addr</span><span class="p">:</span> <span class="nx">addr</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Handler</span><span class="p">:</span> <span class="kc">nil</span><span class="p">,</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">ReadHeaderTimeout</span><span class="p">:</span> <span class="mi">3</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">server</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">();</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>3秒という値には特に意味はない。
どのくらいが適当なのかねぇ。</p>
<p>とにかく,これで問題なく動作することを確認した後,3たび lint をかけてみる。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="err">$</span> <span class="nx">golangci</span><span class="o">-</span><span class="nx">lint</span> <span class="nx">run</span> <span class="o">--</span><span class="nx">enable</span> <span class="nx">gosec</span>
</span></span></code></pre></div><p>なんとか lint は通ったようだ。</p>
<p>余談だが <a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.Server.Handler</code> フィールドにゼロ値(=<code>nil</code>)がセットされていると <a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.DefaultServeMux</code> が既定のハンドラとして使われる。
また <a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.Handle()</code> 関数の中身は</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="c1">// Handle registers the handler for the given pattern
</span></span></span><span class="line"><span class="cl"><span class="c1">// in the DefaultServeMux.
</span></span></span><span class="line"><span class="cl"><span class="c1">// The documentation for ServeMux explains how patterns are matched.
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">func</span> <span class="nf">Handle</span><span class="p">(</span><span class="nx">pattern</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">handler</span> <span class="nx">Handler</span><span class="p">)</span> <span class="p">{</span> <span class="nx">DefaultServeMux</span><span class="p">.</span><span class="nf">Handle</span><span class="p">(</span><span class="nx">pattern</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">}</span>
</span></span></code></pre></div><p>となっていて <a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.DefaultServeMux</code> にハンドラを登録していることが分かる。
さらに <a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.DefaultServeMux</code> は</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="c1">// DefaultServeMux is the default ServeMux used by Serve.
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">var</span> <span class="nx">DefaultServeMux</span> <span class="p">=</span> <span class="o">&</span><span class="nx">defaultServeMux</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">defaultServeMux</span> <span class="nx">ServeMux</span>
</span></span></code></pre></div><p>と定義されている。
なので,先程のコードは</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line hl"><span class="cl"><span class="nx">serverMux</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nf">NewServeMux</span><span class="p">()</span>
</span></span><span class="line hl"><span class="cl"><span class="nx">serverMux</span><span class="p">.</span><span class="nf">Handle</span><span class="p">(</span><span class="s">"/"</span><span class="p">,</span> <span class="nx">http</span><span class="p">.</span><span class="nf">FileServer</span><span class="p">(</span><span class="nx">http</span><span class="p">.</span><span class="nf">FS</span><span class="p">(</span><span class="nx">root</span><span class="p">)))</span>
</span></span><span class="line"><span class="cl"><span class="nx">server</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">http</span><span class="p">.</span><span class="nx">Server</span><span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Addr</span><span class="p">:</span> <span class="nx">addr</span><span class="p">,</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">Handler</span><span class="p">:</span> <span class="nx">serverMux</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nx">ReadHeaderTimeout</span><span class="p">:</span> <span class="mi">3</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">server</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">();</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>と等価だ。
こちらのほうが却って分かりやすいかもしれない。</p>
<h2>Ctrl+C でサーバを Graceful にシャットダウンする</h2>
<p><a href="https://pkg.go.dev/net/http" title="http package - net/http - Go Packages"><code>http</code></a><code>.Server</code> のドキュメントに <code>Ctrl+C</code> の SIGNAL を受信したら <code>Shutdown()</code> メソッドを走らせて graceful にシャットダウンするサンプルが載っていたので,それを参考に組み込んで今回の最終コードとしてみた。
全体としてはこんな感じでどうだろう。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="kn">package</span> <span class="nx">main</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="p">(</span>
</span></span><span class="line"><span class="cl"> <span class="s">"context"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"embed"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"errors"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"flag"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"fmt"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"io/fs"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"net"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"net/http"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"os"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"os/signal"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"strconv"</span>
</span></span><span class="line"><span class="cl"> <span class="s">"time"</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">//go:embed html
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kd">var</span> <span class="nx">assets</span> <span class="nx">embed</span><span class="p">.</span><span class="nx">FS</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">port</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">Int</span><span class="p">(</span><span class="s">"p"</span><span class="p">,</span> <span class="mi">3000</span><span class="p">,</span> <span class="s">"port number"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="nx">host</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">String</span><span class="p">(</span><span class="s">"host"</span><span class="p">,</span> <span class="s">""</span><span class="p">,</span> <span class="s">"hostname"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="nx">flag</span><span class="p">.</span><span class="nf">Parse</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">addr</span> <span class="o">:=</span> <span class="nx">net</span><span class="p">.</span><span class="nf">JoinHostPort</span><span class="p">(</span><span class="o">*</span><span class="nx">host</span><span class="p">,</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">Itoa</span><span class="p">(</span><span class="o">*</span><span class="nx">port</span><span class="p">))</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="o">*</span><span class="nx">host</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Open http://localhost%s/\n"</span><span class="p">,</span> <span class="nx">addr</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Open http://%s/\n"</span><span class="p">,</span> <span class="nx">addr</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Press ctrl+c to stop"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">root</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">fs</span><span class="p">.</span><span class="nf">Sub</span><span class="p">(</span><span class="nx">assets</span><span class="p">,</span> <span class="s">"html"</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="k">return</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"> <span class="nx">serverMux</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nf">NewServeMux</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"> <span class="nx">serverMux</span><span class="p">.</span><span class="nf">Handle</span><span class="p">(</span><span class="s">"/"</span><span class="p">,</span> <span class="nx">http</span><span class="p">.</span><span class="nf">FileServer</span><span class="p">(</span><span class="nx">http</span><span class="p">.</span><span class="nf">FS</span><span class="p">(</span><span class="nx">root</span><span class="p">)))</span>
</span></span><span class="line"><span class="cl"> <span class="nx">server</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">http</span><span class="p">.</span><span class="nx">Server</span><span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Addr</span><span class="p">:</span> <span class="nx">addr</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nx">Handler</span><span class="p">:</span> <span class="nx">serverMux</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="nx">ReadHeaderTimeout</span><span class="p">:</span> <span class="mi">3</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line hl"><span class="cl"> <span class="nx">idleConnsClosed</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kd">struct</span><span class="p">{})</span>
</span></span><span class="line hl"><span class="cl"> <span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line hl"><span class="cl"> <span class="k">defer</span> <span class="nb">close</span><span class="p">(</span><span class="nx">idleConnsClosed</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">sigint</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Signal</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">signal</span><span class="p">.</span><span class="nf">Notify</span><span class="p">(</span><span class="nx">sigint</span><span class="p">,</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Interrupt</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"> <span class="o"><-</span><span class="nx">sigint</span>
</span></span><span class="line hl"><span class="cl">
</span></span><span class="line hl"><span class="cl"> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">server</span><span class="p">.</span><span class="nf">Shutdown</span><span class="p">(</span><span class="nx">context</span><span class="p">.</span><span class="nf">Background</span><span class="p">());</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="s">"shutdown error:"</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"> <span class="k">return</span>
</span></span><span class="line hl"><span class="cl"> <span class="p">}</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"\ngraceful shutdown"</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"> <span class="p">}()</span>
</span></span><span class="line hl"><span class="cl">
</span></span><span class="line hl"><span class="cl"> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">server</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">();</span> <span class="p">!</span><span class="nx">errors</span><span class="p">.</span><span class="nf">Is</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ErrServerClosed</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line hl"><span class="cl"> <span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
</span></span><span class="line hl"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="s">"server error:"</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
</span></span><span class="line hl"><span class="cl"> <span class="p">}</span>
</span></span><span class="line hl"><span class="cl"> <span class="k">return</span>
</span></span><span class="line hl"><span class="cl"> <span class="p">}</span>
</span></span><span class="line hl"><span class="cl"> <span class="o"><-</span><span class="nx">idleConnsClosed</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>これを実行する。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">$ go run main.go -host "127.0.0.1" -p 8080
</span></span><span class="line"><span class="cl">Open http://127.0.0.1:8080/
</span></span><span class="line"><span class="cl">Press ctrl+c to stop
</span></span><span class="line"><span class="cl">^C
</span></span><span class="line"><span class="cl">graceful shutdown
</span></span></code></pre></div><p><code>Ctrl+C</code> でちゃんとシャットダウンしてるかな。
よしよし。</p>
<h2>ブックマーク</h2>
<ul>
<li><a href="https://christina04.hatenablog.com/entry/go-timeouts">Goのnet/httpのtimeoutについて - Carpe Diem</a></li>
</ul>
<h2>参考図書</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/B099928SJD?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/416Stewy0NS._SL160_.jpg" width="123" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/B099928SJD?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">プログラミング言語Go</a></dt>
<dd>アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)</dd>
<dd>丸善出版 2016-06-20 (Release 2021-07-13)</dd>
<dd>Kindle版</dd>
<dd>B099928SJD (ASIN)</dd>
<dd>評価<abbr class="rating fa-sm" title="5"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i></abbr></dd>
</dl>
<p class="description">Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想は<a href="https://text.baldanders.info/remark/2016/07/go-programming-language/" >こちら</a>。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2021-05-22">2021-05-22</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- プログラミング言語Go -->
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/4814400047?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/41dClAl3WKL._SL160_.jpg" width="125" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/4814400047?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド</a></dt>
<dd>Jon Bodner (著), 武舎 広幸 (翻訳)</dd>
<dd>オライリージャパン 2022-09-26</dd>
<dd>単行本(ソフトカバー)</dd>
<dd>4814400047 (ASIN), 9784814400041 (EAN), 4814400047 (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">2021年に出た “<a href="https://www.oreilly.com/library/view/learning-go/9781492077206/">Learning Go</a>” の邦訳版。私は<a href="https://www.oreilly.co.jp/books/9784814400041/">版元</a>で PDF 版を購入。 Go 特有の語法(idiom)を切り口として Go の機能やパッケージを解説している。 Go 1.19 対応。</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2022-10-11">2022-10-11</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 初めてのGo言語 -->
Android 版 Signal が SMS 対応を取りやめる話
tag:text.Baldanders.info,2022-10-16:/remark/2022/10/signal-will-remove-support-for-sms-text-messages-on-android/
2022-10-16T12:51:56+00:00
2022-11-06T00:47:41+00:00
まぁ,これはしょうがない。
Spiegel
https://baldanders.info/profile/
<p>先日 <a href="https://signal.org/">Signal</a> が Android 版の SMS 対応を取りやめる旨の記事を公開した。</p>
<ul>
<li><a href="https://signal.org/blog/sms-removal-android/">Signal » Blog » Removing SMS support from Signal Android (soon)</a></li>
</ul>
<p>私も TextSecure の頃から SMS の既定アプリを切り替えて運用してる。
確かに SMS の通信経路にはセキュリティ・リスクがあるが,メッセージング・アプリは相手がいてはじめて成立するものだし, SMS の通信内容をローカルでは暗号化して保存してくれるので「素の SMS アプリよりはマシ」程度で使っていた。</p>
<p>しかし,ここに来て <a href="https://signal.org/">Signal</a> をして <q lang="en">We have now reached the point where SMS support no longer makes sense</q> とまで言わしめている。</p>
<p><a href="https://signal.org/">Signal</a> が SMS への対応を取りやめる理由として3つ挙げている。
まずひとつめ。</p>
<figure lang="en">
<blockquote>The most important reason for us to remove SMS support from Android is that plaintext SMS messages are <a href="https://signal.org/blog/goodbye-encrypted-sms">inherently insecure</a>. They leak sensitive metadata and place your data in the hands of telecommunications companies. With privacy and security at the heart of what we do, letting a deeply insecure messaging protocol have a place in the Signal interface is inconsistent with our values and with what people expect when they open Signal.</blockquote>
<figcaption><div>via <q><a href="https://signal.org/blog/sms-removal-android/">Removing SMS support from Signal Android (soon)</a></q></div></figcaption>
</figure>
<p>まぁ,これはそうだよねって話。</p>
<p>ふたつめはコスト。</p>
<figure lang="en">
<blockquote>Back when we started supporting plaintext SMS messaging things were different. Data plans were much more expensive generally, and were totally inaccessible in many parts of the world. Now, data plans are cheaper and far more ubiquitous than they were nearly a decade ago. In a reversal, the cost of sending SMS is now prohibitively high in many parts of the world. This brings us to our second reason: we’ve heard repeatedly from people who’ve been hit with high messaging fees after assuming that the SMS messages they were sending were Signal messages, only to find out that they were using SMS, and being charged by their telecom provider. This is a terrible experience with real consequences.</blockquote>
<figcaption><div>via <q><a href="https://signal.org/blog/sms-removal-android/">Removing SMS support from Signal Android (soon)</a></q></div></figcaption>
</figure>
<p>まじか。
そりゃあ,アカンね。</p>
<p>みっつめは UX の観点から。</p>
<figure lang="en">
<blockquote>Third, there are serious UX and design implications to inviting SMS messages to live beside Signal messages in the Signal interface. It’s important that people don’t mistake SMS messages sent or received via the Signal interface as secure and private when in fact they are not. And while we flag the difference between them in the app, we can only do so much on the design side to prevent such misunderstandings.</blockquote>
<figcaption><div>via <q><a href="https://signal.org/blog/sms-removal-android/">Removing SMS support from Signal Android (soon)</a></q></div></figcaption>
</figure>
<p>というわけで</p>
<figure lang="en">
<blockquote>After much discussion, we determined that we can no longer continue to invest in accommodating SMS in the Android app while also dedicating the resources we need to make Signal the best messenger out there.</blockquote>
<figcaption><div>via <q><a href="https://signal.org/blog/sms-removal-android/">Removing SMS support from Signal Android (soon)</a></q></div></figcaption>
</figure>
<p>という結論に至ったそうな。
まぁ,これはしょうがない。
SMS アプリはキャリアが用意しているものに戻すか。</p>
<p>ところで最初の理由で SMS が <q lang="en">inherently insecure</q> であるとはどういうことか。
これに関しては以下の記事が参考になる。</p>
<ul>
<li><a href="https://www.eff.org/deeplinks/2022/03/using-your-phone-times-crisis">Using Your Phone in Times of Crisis | Electronic Frontier Foundation</a></li>
<li><a href="https://p2ptk.org/security/3488">危機的状況下でのモバイルネットワークの使用がもたらすセキュリティリスク | p2ptk[.]org</a></li>
</ul>
<p>原文は2022年3月に公開されたものだが,今回の <a href="https://signal.org/">Signal</a> の発表を受けて <a href="https://p2ptk.org/" title="P2Pとかその辺のお話R | Sharing is Caring">p2ptk.org</a> の中の人が翻訳記事を公開してくださった。
ありがたや <abbr class="emoji-chars" title="ペコン">🙇</abbr></p>
<p>ぶっちゃけていうと SMS というのは <a href="https://text.baldanders.info/remark/2020/01/5g-security-risk/" title="5G セキュリティ・リスク">2G 時代の遺物を継承</a>したもので「個人のセキュリティやプライバシーなんか知ったことか」というつくりになっている。</p>
<figure>
<blockquote><p>特に、最古の携帯電話ネットワークの<a href="https://www.eff.org/deeplinks/2020/06/your-phone-vulnerable-because-2g-it-doesnt-have-be">2G通信</a>では、通話やテキストメッセージは簡単に傍受されてしまう。そのため、我々はAppleとGoogleに対し、ユーザが(訳注:AndroidやiOSで)2Gをオフにできる機能を提供するよう要請してきた。Googleは最新の端末にこのオプションを<a href="https://www.eff.org/deeplinks/2022/01/victory-google-releases-disable-2g-feature-new-android-smartphones">導入した</a>が、ロシアとウクライナではほぼ利用できない。またAppleは未だに対応していない。</p>
<p>我々は可能な限り2Gの利用をやめるよう促してきたが、3G、4G、5Gだからセキュアだというわけではない。とりわけ、音声とテキスト通信にとってはセキュアなオプションとは言えない。これらのネットワークでは、通信がエンドツーエンドで暗号化されていないため、通信事業者を含め、通信の傍受者が通信内容を見聞きできてしまう。</p>
</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/security/3488">危機的状況下でのモバイルネットワークの使用がもたらすセキュリティリスク</a></q>より</div></figcaption>
</figure>
<p>えー。
Apple って未だにそんなんなの? まぁ,そういうわけで</p>
<figure>
<blockquote>あなたがどこに住んでいようと、特にロシアとウクライナにおいては、政府当局からあなたの通信のプライバシーを守るために、電話やSMSに依存してはならない。</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/security/3488">危機的状況下でのモバイルネットワークの使用がもたらすセキュリティリスク</a></q>より</div></figcaption>
</figure>
<p>となるわけだ。
これって必然的に</p>
<figure>
<blockquote><a href="https://www.eff.org/deeplinks/2016/12/12-days-2fa-how-enable-two-factor-authentication-your-online-accounts">2要素認証(2FA</a>:アカウントにログインする際に取得するコード)については、できる限りSMSではなくアプリを使用することを推奨する。</blockquote>
<figcaption><div><q><a href="https://p2ptk.org/security/3488">危機的状況下でのモバイルネットワークの使用がもたらすセキュリティリスク</a></q>より</div></figcaption>
</figure>
<p>という話になるのだが,今だに SMS でシークレットを送りつけるあのサービスやあのサービスは個人のセキュリティやプライバシーについてどう考えているか知りたいものである。
あとは <a href="https://pages.nist.gov/800-63-3/" title="NIST SP 800-63 Digital Identity Guidelines">SP 800-63-3</a> を改訂して,はっきり SMS は Authenticator としては deprecated だと言ってもらえるとみんな諦めがつくと思うのだが(笑)</p>
<h2>ブックマーク</h2>
<ul>
<li>
<p><a href="https://www.bleepingcomputer.com/news/technology/signal-will-remove-support-for-sms-text-messages-on-android/">Signal will remove support for SMS text messages on Android</a></p>
</li>
<li>
<p><a href="https://www.theverge.com/23409716/signal-encryption-messaging-sms-meredith-whittaker-imessage-whatsapp-china">Why Signal won’t compromise on encryption, with president Meredith Whittaker - The Verge</a></p>
<ul>
<li><a href="https://yamdas.hatenablog.com/entry/20221031/signal-encryption">メッセージングアプリSignalが暗号化で妥協しない理由を新プレジデントが語る - YAMDAS現更新履歴</a></li>
<li><a href="https://okuranagaimo.blogspot.com/2022/11/signal.html">ブログ: Signalが暗号化で妥協しない理由、メレディス・ウィテカー社長に聞く</a></li>
</ul>
</li>
<li>
<p><a href="https://text.baldanders.info/remark/2020/09/authenticator-and-aal/">Authenticator と AAL</a></p>
</li>
</ul>
<h2>参考文献</h2>
<div class="hreview">
<div class="photo"><a href="https://www.amazon.co.jp/dp/4822281426?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1"><img src="https://m.media-amazon.com/images/I/61DEAM8EPXL._SL160_.jpg" width="124" alt="photo"></a></div>
<dl>
<dt class="item"><a class="fn url" href="https://www.amazon.co.jp/dp/4822281426?tag=baldandersinf-22&linkCode=ogi&th=1&psc=1">情報セキュリティ技術大全―信頼できる分散システム構築のために</a></dt>
<dd>ロス アンダーソン (著), Anderson,Ross J. (原著), トップスタジオ (翻訳)</dd>
<dd>日経BP 2002-09-07</dd>
<dd>単行本</dd>
<dd>4822281426 (ASIN), 9784822281427 (EAN), 4822281426 (ISBN)</dd>
<dd>評価<abbr class="rating fa-sm" title="4"> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="fas fa-star"></i> <i class="far fa-star"></i></abbr></dd>
</dl>
<p class="description">セキュリティ管理者をやってた頃は,これで勉強しました。絶版だよなぁ,これ。名著なのに。時事的な情報は古いが,今でも十分通用する内容だと思う。誰か(日経BP以外)電子化して!</p>
<p class="powered-by">reviewed by <a href='#maker' class='reviewer'>Spiegel</a> on <abbr class="dtreviewed" title="2020-01-18">2020-01-18</abbr> (powered by <a href="https://affiliate.amazon.co.jp/assoc_credentials/home">PA-APIv5</a>)</p>
</div> <!-- 情報セキュリティ技術大全 -->