<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>2021-10 on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/archives/2021-10/</link>
		<description>Recent content in 2021-10 on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Fri, 29 Oct 2021 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/archives/2021-10/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>アクセント付きアルファベットの名前を登録できないEUの銀行はGDPR違反</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/eu-bank-unable-to-accept-letters-with-accent/</link>
				<pubDate>Fri, 29 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/eu-bank-unable-to-accept-letters-with-accent/</guid>
				<description>&lt;p&gt;EU 内の銀行で、氏名のアルファベットにグレーブ(á)とかウムラウト(ü)とか、アクセント記号がついている人が本名を登録できない、という問題に対する訴訟があり、&lt;a href=&#34;https://gdprhub.eu/index.php?title=Court_of_Appeal_of_Brussels_-_2019/AR/1006&#34;&gt;アクセント記号が登録できないのはGDPR(一般データ保護規則)違反である&lt;/a&gt;、という判決が2019年に出ていたそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://shkspr.mobi/blog/2021/10/ebcdic-is-incompatible-with-gdpr/&#34;&gt;テレンス・エデン氏(Terence Eden)のブログ&lt;/a&gt;によれば、銀行がアクセント記号つきの氏名登録を拒絶したのに対し、この顧客はEU一般データ保護規則(GDPR)の16条「訂正の権利」を根拠に訴えるに至ったそうです。&lt;/p&gt;&#xA;&lt;p&gt;この16条は以下のようなもの。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The data subject shall have the right to obtain from the controller without undue delay the rectification of inaccurate personal data concerning him or her. Taking into account the purposes of the processing, the data subject shall have the right to have incomplete personal data completed, including by means of providing a supplementary statement.&lt;/p&gt;&#xA;&lt;p&gt;データ主体は、管理者から、不当に遅滞することなく、自己と関係する不正確な個人データの訂正を得る権利を有する。取扱いの目的を考慮に入れた上で、データ主体は、補足の陳述を提供する方法による場合を含め、不完全な個人データを完全なものとさせる権利を有する。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.ppc.go.jp/files/pdf/gdpr-provisions-ja.pdf&#34;&gt;一般データ保護規則(仮訳)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;これに対し銀行は、1995年に開発された米国製メインフレーム上のアプリを使っており、このシステムが1964-65 に制定されたEBCDICコード表を使っていることから技術的に対応不可能なのだ、と&lt;a href=&#34;https://www.gegevensbeschermingsautoriteit.be/publications/arrest-van-9-oktober-2019-van-het-marktenhof.pdf&#34;&gt;弁明していた&lt;/a&gt;ということ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/eu-bank-unable-to-accept-letters-with-accent/ebcdic-table.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/eu-bank-unable-to-accept-letters-with-accent/ebcdic-table_hu_df0cb5eca7a8e8a7.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/eu-bank-unable-to-accept-letters-with-accent/ebcdic-table_hu_dbab4cd08aba7a08.webp 489w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/eu-bank-unable-to-accept-letters-with-accent/ebcdic-table.png&#34; width=&#34;489&#34; height=&#34;365&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>IKEAの1950年からの毎年のカタログが見られる公式アーカイブ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/</link>
				<pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/</guid>
				<description>&lt;p&gt;昨年末に&lt;a href=&#34;https://about.ikea.com/en/newsroom/2020/12/07/after-70-successful-years-ikea-is-turning-the-page&#34;&gt;紙のカタログを廃止することを発表&lt;/a&gt;し、2021年度版が紙としては最後のカタログ発行になったイケアですが、&lt;a href=&#34;https://ikeamuseum.com/en/digital/ikea-catalogues-through-the-ages/&#34;&gt;1950年代からの毎年のカタログ(スウェーデン版)をデジタル化して公開&lt;/a&gt;しています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://ikeamuseum.com/en/digital/ikea-catalogues-through-the-ages/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-archives-top_hu_40ced3bd88f7a2d8.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-archives-top_hu_3010d08216a42823.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-archives-top_hu_61953c2ae2e0c349.webp 957w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-archives-top.png&#34; width=&#34;957&#34; height=&#34;825&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;紙カタログ廃止のリリースでは1951年が最初とありましたが、アーカイブは1950年から始まっていますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1950.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1950_hu_6cf944ef7bfa5595.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1950_hu_7f989a21488efe36.webp 585w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1950.png&#34; width=&#34;585&#34; height=&#34;433&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;1950年のカタログでは、食器やカバン、ネックレスやネクタイなど雑多なものを売っていて、後半が家具になっていますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1989.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1989_hu_5eea8d25b90616f1.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1989_hu_1d45e75d78453dbd.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1989_hu_2772dd1050ef37ef.webp 884w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/ikea-catalog-1989.png&#34; width=&#34;884&#34; height=&#34;662&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;こちらは1989年のカタログから。家具を置いた部屋全体を見せるのは今のカタログでも見ますね。&lt;/p&gt;&#xA;&lt;p&gt;暦年のカタログが全部見られるというのは、インテリアの流行や人気の家具の変遷などを追えるということで、資料としても面白いですよね。70年分ですから。&lt;/p&gt;&#xA;&lt;p&gt;Hacker News のスレッドでは、&lt;a href=&#34;https://news.ycombinator.com/item?id=29011281&#34;&gt;「スウェーデンでは郵便受けに『広告不要! ただしイケアのカタログは除く』というステッカーが良く貼られていた」&lt;/a&gt;という証言が出ていて、ステッカーの画像も紹介されていました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/mailbox_sticker_to_accept_ikea_catalog.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/mailbox_sticker_to_accept_ikea_catalog_hu_4a32b4ac3f96710f.webp 350w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/ikea-catalog-archives-since-1950s/mailbox_sticker_to_accept_ikea_catalog.jpg&#34; width=&#34;350&#34; height=&#34;100&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;ingen reklam tak! Men garna IKEA Katalogen. (広告はご遠慮ください! IKEAカタログ以外)&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
			</item>
			<item>
				<title>hashids - 自然数からか逆なユニークidを生成する多言語に対応したライブラリ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/hashids-number-to-unique-id-converter-lib/</link>
				<pubDate>Fri, 22 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/hashids-number-to-unique-id-converter-lib/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://hashids.org/&#34;&gt;Hashids&lt;/a&gt; は、0または正の数をアルファベット+数字の短い並びに変換し、また逆変換で元の数を取り出すことができるライブラリです。&lt;/p&gt;&#xA;&lt;p&gt;YouTubeの動画ページのURLについている、動画と一対一にマッチした文字列や、bit.ly などのURL転送サービスでURLごとに生成される文字列のような、一意に決まってなるべく短い文字列を作るという目的で作られたそうです。&lt;/p&gt;&#xA;&lt;p&gt;サイトのトップに列挙されているのですぐにわかりますが、非常に多くのプログラミング言語に移植されています。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;JavaScript, Ruby, Python, Java, Scala, PHP, Perl, Perl 6, Swift, Clojure, Objective-C, C, C++11, D, F#, Go, Erlang, Lua, Haskell, OCaml, Elixir, Rust, Smalltalk, ColdFusion, Kotlin, Nim, VBA, Haxe, Crystal, Elm, ActionScript, Bash, R, TSQL, PostgreSQL, PLpgSQL, Dart, Io, Julia, .NET&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Rails, Django, WordPress, など言語だけでなくフレームワークやCMSのプラグインも作られていて、多くの言語や環境を超えて生成されたunique id を渡して取り出すこともできそうです。双方向の変換ができますが、ソルトを与えることで変換結果は個々に違わせることができます。 w &lt;a href=&#34;http://localhost:8099/2021/10/leaked-code-sample-to-check-bad-words/&#34;&gt;昨日のワードフィルタに関する Hacker News の議論&lt;/a&gt;で出てきたのでこのライブラリを知ったのですが、このライブラリの十分にコンパクトな仕様の中で面白いと思ったのは、このユニークな文字列の生成時に「よくある英語の卑語が出てこないようにする」ための方法がドキュメントに大きく書いてあることですね。&lt;/p&gt;&#xA;&lt;p&gt;ユニークな文字列の生成時に、c, s, f, h, u, i, t の文字が連続して並ばないように指定することで、システムが自動的に作ったユニークidの中に英語のマズイ単語が偶然出てくることを防げることが多い、そうです。経験的なものでしょうけどそんなハックがあるんですね。hashid の変換関数ではセパレータとしてこれらの文字を与えることで、セパレータ同士が隣接しないようにできます。これによって使えない文字列が相当数出てしまいユニークidも少し長くなってしまうでしょうけれど、ユニークidに偶然卑語が出るとよくない、と思うサービス開発者も多いのかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>問題のあるユーザー名登録を防ぐ英語圏のワードフィルタの実例</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/leaked-code-sample-to-check-bad-words/</link>
				<pubDate>Thu, 21 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/leaked-code-sample-to-check-bad-words/</guid>
				<description>&lt;p&gt;小片コード共有サービスの &lt;a href=&#34;https://ghostbin.com/57bCm&#34;&gt;pastebin に貼られ&lt;/a&gt;、Hacker News で ゲーム配信サービス大手の&lt;a href=&#34;https://news.ycombinator.com/item?id=28779566&#34;&gt;Twitch がユーザー登録時に弾いているフィルタ部分のソースコード&lt;/a&gt;だ、との主張で紹介されている SQL コードは、問題のある単語をチェックするためのコードです。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code data-lang=&#34;SQL&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;REPLACE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FUNCTION&lt;/span&gt; is_terrorism (VARCHAR) &lt;span style=&#34;color:#66d9ef&#34;&gt;RETURNS&lt;/span&gt; BOOLEAN &lt;span style=&#34;color:#66d9ef&#34;&gt;STABLE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%did911%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%support%isis%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%isis%support%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%join%isis%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;LIKE&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%isismember%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;LANGUAGE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SQL&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CREATE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;REPLACE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;FUNCTION&lt;/span&gt; is_child_exploitation (VARCHAR) &lt;span style=&#34;color:#66d9ef&#34;&gt;RETURNS&lt;/span&gt; BOOLEAN &lt;span style=&#34;color:#66d9ef&#34;&gt;STABLE&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;SIMILAR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TO&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%ped(o|0)(f|ph)(i|1)le%&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;OR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;SIMILAR&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TO&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%isa%ped(o|0)%&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SQL 文としてジャンルごとに定義されている関数は、イスラム国(ISIS)への参加を呼び掛ける文字列や、児童ポルノや人種差別・性犯罪やドラッグに関する英単語が含まれる文字列で True を返すようです。&lt;/p&gt;&#xA;&lt;p&gt;また、単純な単語の一致だけではなく、それら英単語の一部の文字を数字に置き換えるなどしてチェックをすり抜けようとするものもある程度見つけるようになっていました。a を 4 にしたり、 e を3 にしたりという &lt;a href=&#34;https://ja.wikipedia.org/wiki/Leet&#34;&gt;leetspeak&lt;/a&gt; と言われる変換ですね。&lt;/p&gt;&#xA;&lt;p&gt;ユーザー登録のできるwebサービスでは大なり小なりこのようなフィルタリングを行っているとは思います。コードが Hacker News の投稿者の言う通り Twitch で使われているものかはわかりませんが、この SQL で引っかかるような文字列をいくつか入れてユーザー登録しようとしたら、エラーは出ますね。実際には JavaScript レベルでエラーにしているようなので、SQL 文のフィルタは誰かが再現したものかもしれませんし、あるいはそれぞれが同じネタ元のフィルタを参照して作られたものかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;各関数の名前からどのような性格の「悪い単語」を排除しようとしてるのかがわかります。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;関数名&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;意味&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_terrorism&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;テロ&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_child_exploitation&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;児童搾取&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_hateful&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ヘイト&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_harassment&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ハラスメント&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_violence&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;暴力&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_tragedy&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;悲劇&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_selfharm&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;自傷&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_sexual&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;性的&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_drugs&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ドラッグ&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_derogatory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;軽蔑的&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_profanity&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;淫ら&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_blasphemy&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;冒涜&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_marijuana&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;大麻&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;is_sex_insult&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;性的侮辱&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;チェックされる単語の一つ一つは、多くが理解して気持ちのよい単語とは言えません。細かく紹介はしませんが、英語での罵倒や悪口の勉強がしたければいい教材となるやもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>1万6000個のチェックボックス要素で作られたDoom</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/</link>
				<pubDate>Tue, 19 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/</guid>
				<description>&lt;p&gt;HTMLのチェックボックス「だけ」をひたすら活用できるライブラリ &lt;a href=&#34;http://localhost:8099/2021/10/checkboxland-all-checkbox-webdesign/&#34;&gt;Checkboxland を先週紹介しました&lt;/a&gt;が、さっそくすごい応用サービスが登場しました。&lt;/p&gt;&#xA;&lt;p&gt;Doom といえば、非力なレトロPC や関数電卓から、ATM や デジカメ、プリンターの液晶などCPUのあるところならどこでも移植されてきたゲームですが、今回は Checkboxland を使って、&lt;a href=&#34;https://healeycodes.github.io/doom-checkboxes/&#34;&gt;すべてチェックボックスで作られた Doom&lt;/a&gt; が遊べるようになっています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom_hu_a75793485083d08d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom_hu_53d29749c5d4a3ab.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom_hu_d9bb6aeed934a854.webp 796w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom.png&#34; width=&#34;796&#34; height=&#34;500&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ページ上部にあるように、カーソルキーの移動と Ctrlキーの射撃で遊べるのですが、青白の二色で解像度も160x100と低いため、敵が出てくるなど込み入った表示になると正直何が起こってるのか判別は難しくなります。Doom ファンならこれでもわかるのかもしれませんが。&lt;/p&gt;&#xA;&lt;p&gt;左上には元の Doom 画面も表示されているので、どうにもならないときはそちらを見るしかないでしょう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://healeycodes.github.io/doom-checkboxes/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom-screenshot_hu_c30185a6910f41e5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom-screenshot_hu_f7378cefe7be5a27.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom-screenshot_hu_2ce8ddded8bf8cfb.webp 845w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/doom-with-checkboxes/checkboxland-doom-screenshot.png&#34; width=&#34;845&#34; height=&#34;825&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ブラウザ上で動く Doom は&lt;a href=&#34;https://github.com/diekmann/wasm-fizzbuzz&#34;&gt;「WebAssembly で FizzBuzz から Doom までを作る」&lt;/a&gt;プロジェクトで作られているものを呼び出し、これが非表示の canvas 要素に描いたゲーム画面を MediaStream 経由で&lt;a href=&#34;https://www.bryanbraun.com/checkboxland/&#34;&gt;Checkboxland&lt;/a&gt; の 動画描画機能に渡しています。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://healeycodes.com/doom-rendered-via-checkboxes&#34;&gt;DOOM Rendered via Checkboxes&lt;/a&gt; via reddit&lt;/p&gt;</description>
			</item>
			<item>
				<title>scaffoldy - よくあるwebサービス構成の Docker Compose ファイルを作ってくれるジェネレータ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/</link>
				<pubDate>Thu, 14 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.scaffoldy.io/&#34;&gt;Scaffoldy&lt;/a&gt; は、選択したサービスを組み合わせた webサービスの Docker Compose 設定ファイルを作ってくれるwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top_hu_67eaba97f5bb1b97.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top_hu_5b895665ba4d2bda.webp 501w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-top.png&#34; width=&#34;501&#34; height=&#34;338&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js_hu_ba641f6e32a54749.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js_hu_6b7f010a1385da64.webp 725w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-node-js.png&#34; width=&#34;725&#34; height=&#34;457&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;対話式のフォームに回答していくだけで、docker compose で動作する yml ファイルが作られます。現在選べるのは以下のような項目&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;言語/環境 - Python / Node.js / その他&lt;/li&gt;&#xA;&lt;li&gt;.gitignore 等 git の設定&lt;/li&gt;&#xA;&lt;li&gt;データベース - MySQL / MariaDB / PostgreSQL / MongoDB&lt;/li&gt;&#xA;&lt;li&gt;データベース管理web UI - phpMyAdmin / pgAdmin / Mongo Express&lt;/li&gt;&#xA;&lt;li&gt;キャッシュサーバ - Memcached / Redis&lt;/li&gt;&#xA;&lt;li&gt;メッセージング - RabbitMQ / NATS&lt;/li&gt;&#xA;&lt;li&gt;メトリクス - Prometheus / Grafana&lt;/li&gt;&#xA;&lt;li&gt;その他 - Clickhouse / ElasticSearch / Mailhog&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql_hu_a6ac2b16557cf69e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql_hu_b1bc3f3f93618a4b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql_hu_6c231f33825e0737.webp 770w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/scaffoldy-scaffolds-your-docker-compose-project/scaffoldy-choose-mysql.png&#34; width=&#34;770&#34; height=&#34;821&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Checkboxland - HTMLのチェックボックスですべてを作れるライブラリ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/</link>
				<pubDate>Tue, 12 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.bryanbraun.com/checkboxland/&#34;&gt;Checkboxland&lt;/a&gt; は、HTML のチェックボックス要素を活用してしまくるための JavaScriptライブラリです。&lt;/p&gt;&#xA;&lt;p&gt;HTML のチェックボックス要素と言えばこれ↓ ですが、&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;このチェックボックスを使って様々な表現を実行できます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-top_hu_ee354db0ac712421.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-top_hu_cdc237437b1e56d2.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-top_hu_9107444809916869.webp 807w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-top.png&#34; width=&#34;807&#34; height=&#34;887&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.bryanbraun.com/checkboxland/#demos&#34;&gt;デモ&lt;/a&gt;では、文字が横に流れるマーキー、デジタル時計、アニメーション、QRコード表示、ライフゲーム、動画再生(!)、など様々な表現が、すべてチェックボックスだけで実現されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-clock.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-clock_hu_29d0a40a13cc62d5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-clock_hu_7348d9d63161aad3.webp 542w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/checkboxland-all-checkbox-webdesign/checkboxland-clock.png&#34; width=&#34;542&#34; height=&#34;196&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;API documentによれば、チェックボックスを縦横に並べたグリッド上でグリッド上の各座標を調べたり書き換えたりする&lt;a href=&#34;https://www.bryanbraun.com/checkboxland/#low-level-api&#34;&gt;低レイヤAPI&lt;/a&gt;と、文字を大きく描く、スクロールさせる、画像や動画を描写させるなどの&lt;a href=&#34;https://www.bryanbraun.com/checkboxland/#extended-api&#34;&gt;拡張API&lt;/a&gt;が用意されています。プラグイン機構も用意されているので、自分で Checkboxland に新たな機能を追加することも可能です。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;It&amp;#39;s Friday night so of course I&amp;#39;m eating cookie dough and making a QR code out of html checkboxes that always tells you the current time.&lt;a href=&#34;https://t.co/ZNjG0SWAce&#34;&gt;https://t.co/ZNjG0SWAce&lt;/a&gt; &lt;a href=&#34;https://t.co/Fywf7FZFpu&#34;&gt;pic.twitter.com/Fywf7FZFpu&lt;/a&gt;&lt;/p&gt;&amp;mdash; Bryan Braun (@BryanEBraun) &lt;a href=&#34;https://x.com/BryanEBraun/status/1264014217063149569?ref_src=twsrc%5Etfw&#34;&gt;May 23, 2020&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;多数の要素を表示しようとするとページが重くなるのはチェックボックスであっても(当然)同じで、チェックボックスの数が1500個を超えるとチェックボックスの更新速度が問題となることから、32x32 や 64x16 といったサイズ以下のグリッドを推奨するそうです。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;I made a webcam filter out of html checkboxes.&lt;br&gt;&lt;br&gt;Try it out here: &lt;a href=&#34;https://t.co/1lBHfEgmhw&#34;&gt;https://t.co/1lBHfEgmhw&lt;/a&gt; &lt;a href=&#34;https://t.co/tZrFOg3PWl&#34;&gt;pic.twitter.com/tZrFOg3PWl&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>このスニーカーは存在しない - 機械学習で自動生成されたスニーカー画像</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/</link>
				<pubDate>Tue, 12 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://thissneakerdoesnotexist.com/&#34;&gt;This sneaker does not exist&lt;/a&gt;(このスニーカーは存在しない) は、機械学習で生成された実在しないスニーカーの画像を大量に作ってくれるwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-top_hu_ca01d12886226753.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-top_hu_b4f3f4c8e97326f7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-top_hu_8c9bf90a5f6094f8.webp 940w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-top.png&#34; width=&#34;940&#34; height=&#34;872&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;実在しない人物の顔写真を作る&lt;a href=&#34;http://localhost:8099/2019/02/this-person-does-not-exist-com/&#34;&gt;ThisPersonDoesNotExist.com&lt;/a&gt; や存在しないアニメ女性キャラクター(俺の嫁)を合成する&lt;a href=&#34;http://localhost:8099/2019/02/thiswaifudoesnotexist-generates-my-waifu-faces/&#34;&gt;www.ThisWaifuDoesNotExist.net&lt;/a&gt;など、敵対的生成ネットワーク(GAN)を利用した同種のサービスの一つで、このサイトでは5000種類の生成したスニーカーを並べていて、今後も元となるスタイルを増やすことでさらに多くのスニーカーデザインを追加する予定だそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-customize.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-customize_hu_ec4e14659bd1ee34.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-customize_hu_d4aad2c8637f4875.webp 583w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/this-sneaker-does-not-exist/this-sneaker-does-not-exist-customize.png&#34; width=&#34;583&#34; height=&#34;683&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;生成されたスニーカーを選び、&amp;ldquo;futuristic(革新的)&amp;quot;、&amp;ldquo;creativity(創造的要素)&amp;quot;、色の明暗のスライダーをいじることで、さらに多少のカスタマイズを行うこともできます。&lt;/p&gt;&#xA;&lt;p&gt;新しいスニーカーをデザインする人がインスピレーションを得るために使えるか、ここで生成されたデザインをそのまま実際に作って販売する商売を立ち上げるか(といっても、ベースとなるスニーカー画像を参考にしてるので結果的に盗作になるケースは避けないと)、などの用途が考えられるでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=28825778&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Commute Time Map - 一定時間内にたどり着ける範囲を示せる地図サービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/</link>
				<pubDate>Thu, 07 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london_hu_5c86a70e08bf4fb6.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london_hu_12cda109a0864cc1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london_hu_4d856802fd77a9ed.webp 1044w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london.png&#34; width=&#34;1044&#34; height=&#34;858&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://commutetimemap.com/map?places=51.509792%253B-0.134429%253B0%253B1200%253B%25234143f4&amp;amp;places=51.455932%253B-0.118275%253B1%253B600%253B%2523fc0000&#34;&gt;「ピカデリーサーカスから電車で20分」と「ブリクストンから車で10分」の2つを指定&lt;/a&gt;した地図。すべての条件が成り立つ領域だけを表示させたりすることもできます。&lt;/p&gt;&#xA;&lt;p&gt;いわゆる「等時間地図(isochrone map)」と呼ばれるタイプの地図で、地図上の地点間の所要時間を大量に集めないと描けないものです。&lt;/p&gt;&#xA;&lt;p&gt;徒歩で指定した時は、時間内で行ける範囲は円形に近い形となります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://commutetimemap.com/map?places=35.681492%253B139.766951%253B0%253B1800%253B%25234143f4&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo-station_hu_6f847534c0c60740.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo-station_hu_a73172e6d50f6eea.webp 680w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo-station.png&#34; width=&#34;680&#34; height=&#34;452&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;「東京駅から電車で30分」、絶対にこれは違いますね。電車利用は線路沿い、自動車は高速道路沿いにそって大きく伸びそうなものですが、時間を伸ばしても思ったほど距離が伸びてないような気もします。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://commutetimemap.com/map?places=51.507322%253B-0.127647%253B0%253B1800%253B%25234143f4&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london_hu_5c86a70e08bf4fb6.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london_hu_12cda109a0864cc1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london_hu_4d856802fd77a9ed.webp 1044w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-london.png&#34; width=&#34;1044&#34; height=&#34;858&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;「ロンドン中心部から電車で30分」だともう少しそれっぽい範囲が出てくるので、このサービスが使っている&lt;a href=&#34;https://www.geoapify.com/isoline-api/&#34;&gt;Isoline API&lt;/a&gt;が日本の電車に未対応なのでしょう。残念。&lt;/p&gt;&#xA;&lt;p&gt;ある一か所から一定時間内でどこまでいけるかだけでなく、複数地点からの到達を条件にできることで、どんな使い方が考えられるでしょうか?&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://commutetimemap.com/map?places=35.688673%253B139.721375%253B3%253B900%253B%25234143f4&amp;amp;places=35.690555%253B139.740171%253B3%253B900%253B%2523fc0000&amp;amp;places=35.664632%253B139.731095%253B2%253B900%253B%2523f441cd&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo_hu_1cb10d79ab511f23.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo_hu_6c6589ea3b7c351a.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo_hu_1bfbb959e5620a38.webp 1032w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/commute-time-map-isochrone-map/commute-time-map-tokyo.png&#34; width=&#34;1032&#34; height=&#34;726&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;別々の会社で働く3人の友人が、徒歩・徒歩・自転車でランチを食べに集まるとして、全員が同じぐらいの時間がたどり着けるのはどこか、みたいなのを可視化することができるかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;また、同棲カップルがお互いの職場からの時間ができるだけ短くなるところをみつける、みたいなのに使えるかもしれませんね。通勤時間が同じになる場所をみつけて、そこで賃貸物件を探す、とか。&lt;/p&gt;&#xA;&lt;p&gt;電車での速い移動がもっと正確にでるようになれば、日常的に使える便利サービスになるような気がします。&lt;/p&gt;</description>
			</item>
			<item>
				<title>SeriesHeat - 海外ドラマの各話レーティングをまとめて面白い話を見つけられるサービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/</link>
				<pubDate>Wed, 06 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://vallandingham.me/seriesheat/#/&#34;&gt;SeriesHeat&lt;/a&gt; は、海外の巨大映画情報/レビューサイト imdb のレーティングデータをシリーズ毎に並べて表示してくれるというwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vallandingham.me/seriesheat/#/?flip=1&amp;amp;id=tt2191671&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/seriesheat-elementary_hu_9cccb2dd178d02ac.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/seriesheat-elementary_hu_cb9ee61346e0378c.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/seriesheat-elementary_hu_213bab325e26c5fa.webp 1047w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/seriesheat-elementary.png&#34; width=&#34;1047&#34; height=&#34;587&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vallandingham.me/seriesheat/#/?flip=1&amp;amp;id=tt2191671&#34;&gt;このように&lt;/a&gt;、何回にもわたってドラマ化されている人気シリーズの、どの話が評判が良くどの話が不評なのか、を一望することができます。&lt;/p&gt;&#xA;&lt;p&gt;各話のレートをクリックすると imdb のその話のページへジャンプするので、不思議に評価が低い回の何がダメで悪いレビューが集まっているのか、などを見ることもできます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vallandingham.me/seriesheat/#/?color=2&amp;amp;flip=0&amp;amp;id=tt1600194&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-hawaii-five-o_hu_12b4606aae4b0fe3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-hawaii-five-o_hu_c9d2338add4d4c06.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-hawaii-five-o_hu_bdcbc3cd14920318.webp 1038w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-hawaii-five-o.png&#34; width=&#34;1038&#34; height=&#34;516&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Flip ボタンでシリーズx各話の縦と横を逆にしたり、 Color Scheme を3種類変更したりもできます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vallandingham.me/seriesheat/#/?color=1&amp;amp;flip=1&amp;amp;id=tt1399045&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-macgyver_hu_592582d42b0cb079.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-macgyver_hu_ea53216ddcd5f35b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-macgyver_hu_98ce9d068e0333e2.webp 1045w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-macgyver.png&#34; width=&#34;1045&#34; height=&#34;416&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;リメイク作品の1話は、厳しいレートだったりしますね。&lt;/p&gt;&#xA;&lt;p&gt;もともとのアイデアは reddit に投稿された &lt;a href=&#34;https://www.reddit.com/r/dataisbeautiful/comments/fw4iv0/oc_rating_of_simpsons_episodes_according_to_imdb/&#34;&gt;The Simpsons のレーティングを手動で可視化した表&lt;/a&gt;にあるそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/dataisbeautiful/comments/fw4iv0/oc_rating_of_simpsons_episodes_according_to_imdb/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/the-simpsons-imdb-ratings-table_hu_f75571939d6a1bf5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/the-simpsons-imdb-ratings-table_hu_ecd82132886d1901.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/the-simpsons-imdb-ratings-table_hu_1997d699f6b0a4e.webp 1200w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/the-simpsons-imdb-ratings-table.png&#34; width=&#34;1200&#34; height=&#34;700&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;このサービス、話が続いていて連続してみないとわからないドラマよりも、一話完結でどこから観ても楽しめるようなドラマでより使えそうに思います。今はサブスクリプションでシリーズ全話を見放題なんて環境もありますし、全部の話を観るほどの暇はないけど評判のよい話だけを選んで観たい、なんていう時にも役に立つかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vallandingham.me/seriesheat/#/?color=1&amp;amp;flip=1&amp;amp;id=tt0285331&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-24_hu_5e52a0101932fe63.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-24_hu_b8aa215b2f61ab12.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-24_hu_beab635982524f50.webp 1030w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/10/seriesheat-visualizes-drama-ratings-on-imdb/searchheat-24.png&#34; width=&#34;1030&#34; height=&#34;516&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
