<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Oss on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/oss/</link>
		<description>Recent content in Oss on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Mon, 06 Feb 2023 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/oss/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>GPTravel Advisor - OpenAIのAPIを使った旅行日程提案サービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/</link>
				<pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://gpt-travel-advisor.vercel.app/&#34;&gt;GPTravel Advisor&lt;/a&gt;は、OpenAI の GPT3 API を使った旅行計画生成サービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gpt-travel-advisor.vercel.app/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka_hu_3dea4fc931c67599.webp 480w, https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka_hu_6de9f3266e32c5c3.webp 768w, https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka_hu_47a2a41be6633951.webp 854w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2023/02/gptravel-advisor-makes-your-trip-plan/gptravel-advisor-takaoka.png&#34; width=&#34;854&#34; height=&#34;923&#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;GPTravel Advisor で高岡3日旅行の日程を尋ねてみた&lt;/p&gt;&#xA;&lt;p&gt;入力は「行きたい都市の名前」と「旅行する日数」の2つだけ。20-30秒ほど待つと、何日目にどこに観光に行けばよい、という形で日程表が出てきます。&lt;/p&gt;&#xA;&lt;p&gt;「東京の3日間旅行」を作らせてみると、&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;朝は東京タワーの展望台から景色を見て、午後は皇居、夜は伝統料理を楽しむ&lt;/li&gt;&#xA;&lt;li&gt;朝は明治神宮と代々木公園、午後は原宿でショッピング、夜は歌舞伎&lt;/li&gt;&#xA;&lt;li&gt;朝は(豊洲ではなく)築地市場、午後はスカイツリー、夜は新宿で飲み食い&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;生成された旅行日程は、それなりに見えます。3日で二つのタワーなの、とか突っ込むことはできますが、移動にも無理はないし、こういう観光ツアーもあるかも。&lt;/p&gt;&#xA;&lt;p&gt;東京だと元々の言語モデルにたくさんのデータがあってのことかもしれないですね。&lt;/p&gt;&#xA;&lt;p&gt;ただ、自分がよく知っているマイナーな所(高岡とかね)を入れてみると、妙な日程表にも気づけました。存在しない観光地も出てくるし、無茶な移動(Aに行ったあと遠いBへ行って、なぜかAの施設内にある別のA&amp;rsquo;に行け、とか)もありました。これも、もっともらしい続きを出力しているだけというAIらしい結果です。&lt;/p&gt;&#xA;&lt;p&gt;最終的な旅程をこれでいきなり組むことは問題ですが、おおざっぱな叩き台として2,30秒でこれが手に入るのはいいかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;TypeScript のソースコードも&lt;a href=&#34;https://github.com/dabit3/gpt-travel-advisor&#34;&gt;GitHub に公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;コード中では Open API の text-davinci-003 モデルに対してユーザーが入力した地名と日数を入れて「理想の旅行日程は?」と尋ね、帰ってきた文章から今度は観光名所を取り出し、それぞれに Google Maps へのリンクをつける、という処理をしているようです。簡単なwebサービスのラッパーであり、ChatGPT の対話インタフェースで自分で訊いても似たような結果は出るのでしょうけど、うまく答えが出る訊ね方を内蔵して迷わないインタフェースにしてるとも言えますね。&lt;/p&gt;&#xA;&lt;p&gt;サービスが当たれば API の呼び出し上限に達して続けられなかったり、追加料金が必要になったり、ということはありますが、ちょっとしたアイデアでこれまで作れなかったサービスが簡単に作れてしまうところは面白いと感じます。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://twitter.com/dabit3/status/1622330852943319048&#34;&gt;Twitter&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>ChatGPTのAIによる回答をGoogle検索ページに併記するChrome拡張</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/12/chrome-extension-shows-chatgpt-answer-on-google-search/</link>
				<pubDate>Mon, 05 Dec 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/12/chrome-extension-shows-chatgpt-answer-on-google-search/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/wong2/chat-gpt-google-extension&#34;&gt;wong2/chat-gpt-google-extension&lt;/a&gt;は、数日前にテスト公開されたなんでも答えるチャットAIサービス &lt;a href=&#34;https://chat.openai.com/chat&#34;&gt;ChatGPT&lt;/a&gt; を使い、Google検索した時にその検索結果ページに ChatGPT の回答を並べて表示する、というChrome拡張です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/12/chrome-extension-shows-chatgpt-answer-on-google-search/chatgpt-google-example_hu_9cef280ebf04f848.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/12/chrome-extension-shows-chatgpt-answer-on-google-search/chatgpt-google-example_hu_e84dbe14412d28b7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/12/chrome-extension-shows-chatgpt-answer-on-google-search/chatgpt-google-example_hu_8f5f1f9f862e09ae.webp 982w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/12/chrome-extension-shows-chatgpt-answer-on-google-search/chatgpt-google-example.jpg&#34; width=&#34;982&#34; height=&#34;506&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;「Googleが検索結果に表示しないページはある?」と訊いてみた結果ページ&lt;/p&gt;&#xA;&lt;p&gt;上の試用結果で ChatGPT が答えてくれていますが、Google 検索結果の先頭に出てくるページは Google 内部の非公開のアルゴリズムによって決められていて、万人が納得するもっとも関係のあるページが必ずしも出てくるとは限りません。&lt;/p&gt;&#xA;&lt;p&gt;スパムや見に行くとPCやブラウザがおかしくなるような悪いページを排除するとかはありがたいのですが、Googleだけに訊ねることでGoogleが上位に持ってこない(がウェブ上では有力な)情報に気づけないということもあるかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;色々なことを訊いても結構な割合でそれらしい(正しいとは言っていない)答えを出してくれる ChatGPT の応答を Google検索の時に横に一緒に出してくれるこの拡張を使うことで、検索した内容に関連する補足情報や少し違う情報を得られるということもあるのかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;Hacker Newsのスレッドでは、ChatGPT やこれから出てくる同様のものを使うことで、Google検索に対抗するような検索サービス、検索というよりQ&amp;amp;Aサービスにも寄ったものになるかもしれませんが、が出てくる可能性について話している人もいました。ChatGPT はもっともらしく大嘘をつくことも多いようですが、結果を確かめなきゃ使えないのは今のWeb検索でも同じと言えば同じですし。&lt;/p&gt;&#xA;&lt;p&gt;Chrome拡張機能はオープンソースでGitHub上で公開されていて、Chromeの公式ストアではないためChromeの設定から自己責任で読み込む必要があります。(&lt;a href=&#34;https://github.com/wong2/chat-gpt-google-extension/releases&#34;&gt;Releases&lt;/a&gt;ページからダウンロードしたzipを展開し、[設定]-[拡張]-[パッケージ化されていない拡張機能を読み込む]。&lt;/p&gt;&#xA;&lt;p&gt;また、ChatGPTへのアクセスは自分のアカウントで行っているため、利用前に ChatGPT へのログインが必要です。現在は無料で試用できますが、他の OpenAPI の APIサービス同様、呼び出しの有料化が予想されます。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=33853773&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenAIとStreamlitを使ったAIツイート自動生成サイト with ソースコード</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/12/ai-tweets-generator-with-openai-and-streamlit/</link>
				<pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/12/ai-tweets-generator-with-openai-and-streamlit/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://openai.com/api/&#34;&gt;OpenAI GPT-3 API&lt;/a&gt;を呼び出して、お題に沿った適当なツイートを生成するwebサイトが、ソースと共に公開されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://tweets.streamlit.app/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/12/ai-tweets-generator-with-openai-and-streamlit/streamlit-tweet-generator-jashin-chan_hu_663cc8de58e2bcc8.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/12/ai-tweets-generator-with-openai-and-streamlit/streamlit-tweet-generator-jashin-chan_hu_2fa08170c16b0447.webp 734w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/12/ai-tweets-generator-with-openai-and-streamlit/streamlit-tweet-generator-jashin-chan.jpg&#34; width=&#34;734&#34; height=&#34;735&#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;code&gt;Topic: 語らせたい話題 Mood: どんなムードで語らせるか ([使える形容詞の一覧)](https://github.com/kinosal/tweet/blob/main/moods.txt) Twitterアカウント名: 既存のtwitterユーザーの最近のツイートを真似させる&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mood と twitterユーザーはオプションなので、topic だけでも何かしら作ってくれます。&lt;/p&gt;&#xA;&lt;p&gt;例えばで以下のように入力してみました&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Topic: Dropkick on my devil Mood: dreamy, happy, relaxed, tender Twitter: イーロン・マスク(elonmusk)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;で、生成されたのがこれ&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Just watched an episode of #DropkickOnMyDevil and it made me feel so relaxed and happy - it&amp;rsquo;s the perfect way to end the day 🌃✨ (邪神ちゃんドロップキックを観たとこ。とてもリラックスしてハッピーな気分になった。パーフェクトな一日の締めくくりだ)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;模倣対象とムードを変えると、まったく違うツイートが出来上がってきます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Topic: Dropkick on my devil Mood: inspirational, thoughtful, dignified Twitter: アメリカ大統領(potus)&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>taxsim.app - 過去60年間のアメリカの所得税額を計算できるサイト</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/10/taxsim-app-us-tax-calculator/</link>
				<pubDate>Thu, 13 Oct 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/10/taxsim-app-us-tax-calculator/</guid>
				<description>&lt;p&gt;資料として面白いサイト。&lt;a href=&#34;https://taxsim.app/&#34;&gt;taxsim.app&lt;/a&gt; はアメリカ合衆国の各州における所得税額をシミュレートしてくれるwebサイトです。&lt;/p&gt;&#xA;&lt;p&gt;今年だけでなく1960年から現在まで、それぞれその年の税率で計算してくれるというところに特徴があります。&lt;/p&gt;&#xA;&lt;p&gt;年度や州、年齢や婚姻状況、そして年収を入力すると、連邦税と州税の額が表示されます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://taxsim.app/?year=2000&amp;amp;mstat=single&amp;amp;state=5&amp;amp;pwages=90000&amp;amp;page=25&amp;amp;rentpaid=11000&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/taxsim-app-us-tax-calculator/taxsim-app-california-2000_hu_a1a34bfdf52d21d0.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/10/taxsim-app-us-tax-calculator/taxsim-app-california-2000_hu_3cc3b5503540d30b.webp 734w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/taxsim-app-us-tax-calculator/taxsim-app-california-2000.png&#34; width=&#34;734&#34; height=&#34;814&#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;カリフォルニア州、2000年に25歳、独身、年収9万ドルとして税率を計算&lt;/p&gt;&#xA;&lt;p&gt;控除に影響する様々な追加の設定もすることができます。また、設定からdevモードにすると、このデータを表示しているAPIに対するrequest/responseを確認することもできます。&lt;/p&gt;&#xA;&lt;p&gt;この税額計算ができる TAXSIM というソフトウェアは Fortran で書かれていて、これまでもいろいろな方法で動かされてウェブUIも何度も変更されているらしいのですが、現在の実装は Fortran のオリジナルコードを WebAssembly/LLVM で動かし、今回の UI は Vue や Tailwind.css を使っているそう。&lt;a href=&#34;https://github.com/tmm1/taxsim.app&#34;&gt;ソースコードも公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;過去の税率や控除がどうだったかをウェブ上で自分でいろいろと確かめられるのはいいですね。同じ年収で年度を進めていくと、年収にもよるのでしょうけど1980年代とかに比べて連邦税の金額が減少傾向にあるんだな、など変化を実感することができます。&lt;/p&gt;&#xA;&lt;p&gt;適当な値を入れて税金がどう変化するかを試してみましたが、1960年代から今までの税率の変化は、ずっと増え続ける、とか、ずっと減り続ける、とかいうことは無く、長いスパンで増えたり減ったりしていたようです。年収のレンジなどによっても傾向は変わるのかもしれませんが、政権党の交代とか景気の変動に対して変わってきた結果なのかもしれないですね。&lt;/p&gt;&#xA;&lt;p&gt;いずれにしても、「昔はもっと税金が高かった」あるいは「安かった」という n=1 の回想というのは、その人のいた業界が伸びたかとか、個人の昇進や転職がうまくいったかどうかとか、家族の増減とか、色々な要因に影響されていて必ずしも世の中全体の変化を映してはいないかもしれません。こういったツールでモデルケースをいろいろ遡れるのは、議論のための正確な証拠が取れるという意味でいいですね。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Facitars! - アバターアイコン生成ライブラリ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/</link>
				<pubDate>Fri, 07 Oct 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/mugendi/facitars&#34;&gt;Facitars!&lt;/a&gt; は、一定のトーンに沿った形で与えたシードからランダムなアバターアイコンを生成してくれるライブラリです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/facitars-generated-sample-avatars_hu_b9ffec848af936bb.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/facitars-generated-sample-avatars_hu_c6e65e77813bd7ec.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/facitars-generated-sample-avatars_hu_a118ad3824ea2a5e.webp 897w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/facitars-generated-sample-avatars.png&#34; width=&#34;897&#34; height=&#34;647&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;Facitars! のサンプルコードで生成したランダムなアバター群&lt;/p&gt;&#xA;&lt;p&gt;アカウント名やメールアドレスをシードにすることで、他のユーザーと形や色が同じにならないユニークなアイコンをユーザーごとに自動で作れるため、会員登録制のwebサービスのデフォルトアイコンなどに使えそうです。&lt;/p&gt;&#xA;&lt;p&gt;HTMLページに埋め込んだJavaScript から呼び出すことも、サーバーサイドから呼んで画像を作ることもできるオープンソースのライブラリの形式で提供されています。実際に作ってみました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/facitars-generated-akky-avatars_hu_8270806609c43dcc.webp 360w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/facitars-lib-generates-avatar-icons/facitars-generated-akky-avatars.png&#34; width=&#34;360&#34; height=&#34;151&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;Facitars! で自分のアカウント名などをシードに作成したアバターアイコン&lt;/p&gt;&#xA;&lt;p&gt;ユーザー登録サービスでも自分のアイコンを登録する手間は面倒と感じる人が多いようで、ユーザーが並んでいるコメント欄などでもデフォルトのアイコンが並ぶばかり、というサービスもありますね。こういったライブラリを使ってデフォルトアイコンでも個人別に違ったものにすることはいい対策かなと思います。&lt;/p&gt;&#xA;&lt;p&gt;同様のアバタージェネレーターとしてはたとえば&lt;a href=&#34;https://boringavatars.com/&#34;&gt;Boring Avatars&lt;/a&gt;などもあります。こちらはカワイイ系のアイコンを生成できますが、色のバリエーションは手動で与えるタイプのようです。&lt;/p&gt;&#xA;&lt;p&gt;via reddit&lt;/p&gt;</description>
			</item>
			<item>
				<title>とある「ブラウザ拡張が Manifest V3 に対応しました」リリースの機能一覧がすごいことに</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/10/singlefile-lite-readme-for-manifest-v3/</link>
				<pubDate>Tue, 04 Oct 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/10/singlefile-lite-readme-for-manifest-v3/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1443758.html&#34;&gt;Chrome拡張機能を作る際の仕様が Manifest V2 から Manifest V3 に移行する&lt;/a&gt;という件に絡んで、&lt;a href=&#34;https://github.com/gildas-lormeau/SingleFile&#34;&gt;表示中のwebページをhtml一個にまとめて保存してくれるブラウザ拡張 SingleFile&lt;/a&gt; の「対応」が面白いことになっていると &lt;a href=&#34;https://www.reddit.com/r/programming/comments/xuc7z9/new_an_improved_version_of_singlefile_chrome/&#34;&gt;reddit&lt;/a&gt; で取り上げられていました。&lt;/p&gt;&#xA;&lt;p&gt;Manifest V3 対応版を謳った&lt;a href=&#34;https://github.com/gildas-lormeau/SingleFile-Lite&#34;&gt;SingleFile-Lite&lt;/a&gt; がそれなのですが、その README に掛かれた対応版の主要機能はというと、&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;信頼できない自動更新機能&lt;/li&gt;&#xA;&lt;li&gt;バックグラウンドでの自動保存機能なし&lt;/li&gt;&#xA;&lt;li&gt;時間の掛かる保存は上限5分で打ち切り&lt;/li&gt;&#xA;&lt;li&gt;必要な時にも referer を勝手に挿入しません&lt;/li&gt;&#xA;&lt;li&gt;Fontface API経由での独自フォントの読み込みを制限&lt;/li&gt;&#xA;&lt;li&gt;他も乞うご期待!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Manifest V3 に対応する修正をした結果、いろんな既存機能がデグレードしてしまったんですね。&lt;/p&gt;&#xA;&lt;p&gt;そして、Manifest V3 対応による新拡張機能の利点はというと、「なし」とのこと。&lt;/p&gt;&#xA;&lt;p&gt;ブラウザ拡張がユーザーの読み書きするデータを参照する権限を獲得する粒度が大きすぎたために、従来の Manifest V2 のAPIでは必要以上のものを取られることがあり、これが悪さをするブラウザ拡張の跋扈を招いたと言われます。Manifest V3 では拡張が何でもはできないように権限を絞っているらしいのですが、そうなるとこれまで提供できていた機能を続けられなかったり、同じ機能を実装するのが大変になったりする拡張も多いのでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;SingleFile の作者も、制約の多さに嫌気がさしたのかも。やけくその対応版 Lite のリリースは開発者の悲鳴なのかもしれません。どんなAPIにアクセスしていたか次第で、V3への対応の大変さはまったく違っていそうですけれど。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.reddit.com/r/programming/comments/xuc7z9/new_an_improved_version_of_singlefile_chrome/&#34;&gt;reddit&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Maigret - アカウント名から各種サービス上のプロフィールを串刺しで調査するツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/10/maigret-lists-accounts-info-from-websites/</link>
				<pubDate>Mon, 03 Oct 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/10/maigret-lists-accounts-info-from-websites/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/soxoj/maigret&#34;&gt;soxoj/maigret&lt;/a&gt;(メグレ)は、SNSなどユーザー登録ができるサービス群に対し、アカウント名からユーザーページを調査するというツールです。&lt;/p&gt;&#xA;&lt;p&gt;たとえば @akky というアカウント名があった場合に、twitter や Instagram などメジャーなSNSから、reddit などの掲示板、ブログや趣味のサービスなど大量のサービスについて、それぞれのユーザー akky のページの情報をスクレイプしてレポートを作ってくれます。&lt;/p&gt;&#xA;&lt;p&gt;動かしてみた様子がこれ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/soxoj/maigret&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/maigret-lists-accounts-info-from-websites/maigret-result-akky_hu_d0504041cd03819e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/10/maigret-lists-accounts-info-from-websites/maigret-result-akky_hu_89570ddc30be315.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/10/maigret-lists-accounts-info-from-websites/maigret-result-akky_hu_6e97e18c9fca550d.webp 1016w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/10/maigret-lists-accounts-info-from-websites/maigret-result-akky.png&#34; width=&#34;1016&#34; height=&#34;348&#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;Maigret でユーザー名 akky を調査した際の結果(一部)&lt;/p&gt;&#xA;&lt;p&gt;調査の可能なwebサービスは約2500個、Alexaで人気の高い順に個数を指定して調べさせたりもできます。&lt;/p&gt;&#xA;&lt;p&gt;各サービスのユーザープロフィールページをチェックしにいくということは、ユーザーページのURLパターンを持っているということ。そのデータは &lt;a href=&#34;https://raw.githubusercontent.com/soxoj/maigret/main/maigret/resources/data.json&#34;&gt;data.json&lt;/a&gt; というファイルにあり、今登録されていないwebサービスの情報を追加依頼することもできます。&lt;/p&gt;&#xA;&lt;p&gt;もともと &lt;a href=&#34;https://github.com/sherlock-project/sherlock&#34;&gt;Sherlock&lt;/a&gt; という先行ツールがあり、Maigret はそこからフォークして対応サイトを増やしたりしているようです。命名はシャーロックからフォークした&lt;a href=&#34;https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%A1%E3%82%B0%E3%83%AC&#34;&gt;メグレ&lt;/a&gt;、というわけですね。シャーロックの対応サイトが500個ほどなのに対して、2500個のサイトのデータを持っているのは頑張っているのではないでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;とあるサービスのアカウント名から、他のサービスでどんな活動をしているか調べるのを補助するツールということで、他人が望んでいないプライバシーの紐づけにつながる点で警戒する人もいるでしょう。&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=33061058&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windowsのファイルコピーダイアログで月面着陸ゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/</link>
				<pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/Sanakan8472/copy-dialog-lunar-lander&#34;&gt;Copy Dialog Lunar Lander&lt;/a&gt; は、Windowsのファイルコピーを待っている間に、&lt;a href=&#34;https://moonsystem.to/game/index.html&#34;&gt;レトロゲームの名作Lunar lander(月面着陸)&lt;/a&gt;を遊べるです。そこで遊ぶ?&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/Sanakan8472/copy-dialog-lunar-lander&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/CopyDialogLunarLander.gif&#34; width=&#34;448&#34; height=&#34;280&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ファイルコピーダイアログで Lunar lander ゲームを遊んでいる様子&lt;/p&gt;&#xA;&lt;p&gt;ゲームの目的は、慣性が効いている月着陸船から燃料を噴射し、うまくバランスを取りながら月の表面に軟着陸すること。&lt;/p&gt;&#xA;&lt;p&gt;これを Windows のファイル・フォルダーをコピーした時の例のグラフ表示ダイアログ内で遊ぶわけですが、ファイルの転送状況の経過によって地面の形が決まるため、コピーしているファイルやコピー先の状況によって難易度が変わるというわけです。&lt;/p&gt;&#xA;&lt;p&gt;安定して同じぐらいの転送量が続いていれば、着陸しやすい平らな月面ができるし、不安定なコネクタやVPNなどを使ってコピーすると起伏の激しい月面になるので着陸するのも難しくなります。&lt;/p&gt;&#xA;&lt;p&gt;# ぜひ遊んでみたかったのですが、自分の環境(Windows 10 sandbox)では起動時にタスクトレイのアイコンが出るものの、アイコンを触るとプロセスが落ちてしまうようで… サンドボックス環境で中のセキュリティは緩めにしても解決せず。&lt;/p&gt;&#xA;&lt;p&gt;ゲームのカラースタイルは、Windows のファイルダイアログなので当たり前ですがWindows のコントロールパネルからカスタマイズできます。[簡単操作]-[ハイコントラスト]でハイコントラストモードにして、「ハイパーリンク」と「選択されたテキスト」の項目を変えることで、デフォルトの黄緑だけでなく赤い大地の火星着陸なども作れてしまうのですね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/copy-dialog-lunar-lander-high-contrast-color-change.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/copy-dialog-lunar-lander-high-contrast-color-change_hu_42ae53d68a7eb54d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/copy-dialog-lunar-lander-high-contrast-color-change_hu_955518904268dc06.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/copy-dialog-lunar-lander-high-contrast-color-change_hu_d931f135a7e35839.webp 946w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/09/lunar-lander-on-windows-copy-dialog/copy-dialog-lunar-lander-high-contrast-color-change.png&#34; width=&#34;946&#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;ファイルコピー中の待ち時間にゲームというアイデア、実は初出ではなく、たとえば80年代のグラフィックに強い Amiga にTetra Copy というコピー中にテトリスができるコピーツールが存在したそうです。(&lt;a href=&#34;https://www.youtube.com/watch?v=_yoOaQUtFuo&#34;&gt;動画&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/_yoOaQUtFuo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.reddit.com/r/programming/comments/x6k7ny/a_lunar_lander_game_that_hooks_into_the_windows/&#34;&gt;reddit&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>キー操作でブラウザ操作できるSurfingkeys Chrome拡張の新バージョンが、検索を謎のsmartwebfindersに変えようとする</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/08/surfingkeys-extension-tries-to-set-suspicious-smartwebfinder-search/</link>
				<pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/08/surfingkeys-extension-tries-to-set-suspicious-smartwebfinder-search/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/surfingkeys/gfbliohnnapiefjpjlpjnehglfpaknnc&#34;&gt;Surfingkeys&lt;/a&gt; という&lt;a href=&#34;https://github.com/brookhong/Surfingkeys&#34;&gt;オープンソース&lt;/a&gt;のブラウザ拡張ツールの新バージョン1.0.7が、キー操作でブラウジングできるという本来機能と無関係に&lt;a href=&#34;https://github.com/brookhong/Surfingkeys/issues/1796&#34;&gt;既定の検索エンジンを謎の smartwebfinders に変えようとするというバグ報告&lt;/a&gt;が上がっています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://chrome.google.com/webstore/detail/surfingkeys/gfbliohnnapiefjpjlpjnehglfpaknnc&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/08/surfingkeys-extension-tries-to-set-suspicious-smartwebfinder-search/surfingkeys-requires-to-change-search-engine-to-smartwebfinder_hu_af1ec9d845c7430f.webp 476w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/08/surfingkeys-extension-tries-to-set-suspicious-smartwebfinder-search/surfingkeys-requires-to-change-search-engine-to-smartwebfinder.png&#34; width=&#34;476&#34; height=&#34;366&#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;Chromeウェブストアで新規インストールする際も、「smartwebfinders.com に変更するよ」と出てきます。出てくるだけ昔よりは安全で避けられるとは言えますが、誰もがここを読んで考えるかというと…&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://security.stackexchange.com/questions/262979/what-will-happen-if-i-accept-this-change-your-search-setting-to-smartwebfinder&#34;&gt;Ultrasurf という別の Chrome拡張でも同様の切り替えが要求されていた&lt;/a&gt;ということですが、この切り替えられる smartwebfinders.com は、ブラウザからアクセスしてみても Google に転送されるだけの謎のサイトです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/brookhong/Surfingkeys&#34;&gt;GitHub のソースコード&lt;/a&gt;上ではバージョン 1.0.6 が最新で 1.0.7 は無いため、第三者によって勝手に改造されたものが Chrome Store に上がったのかとも思われました。しかし、GitHub issues で拡張作者の brookhong 氏が「smartwebfinder は Bing のプロモーションで、強制的に検索エンジンを変えさせるわけではないので安心してほしい」と回答したため、作者が関知しているのかと騒ぎになっています。&lt;/p&gt;&#xA;&lt;p&gt;# smartwebfinder が Bing のプロモーションだという他の主張は見つかっていません。Microsoftはたぶんこんなことしないと思うんですが。&lt;/p&gt;&#xA;&lt;p&gt;Google 検索に転送されていることから、この変更を accept しても当座はこれまでと同じように Google 検索が呼び出されるのでしょう。しかし設定自体がこの別ドメインになっているのだから、いつ自由に別のところに飛ばされるようになるかわかりませんよね。&lt;/p&gt;&#xA;&lt;p&gt;作者のこの回答を見て、GitHub の brookhong 氏のアカウント自体が乗っ取られたのかもしれない、と brookhong 氏にプログラマー向けの質問をする作者の知人らしき人もいますが、今のところそれ以上の返信は来ていません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>indieblog.page - Dokuwiki作者による、個人ブログアグリゲーションサイト</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/07/indieblog-page-tool-by-dokuwiki-author/</link>
				<pubDate>Wed, 06 Jul 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/07/indieblog-page-tool-by-dokuwiki-author/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://indieblog.page/&#34;&gt;indieblog.page&lt;/a&gt; は、個人ブログのページを集約したアグリゲーション、サイトそしてサーバツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://indieweb.org/&#34;&gt;インディーウェブ&lt;/a&gt;運動は、独自ドメイン、セルフホスト、非集中管理の個人ブログ等を、著者がコンテンツの所有権を自ら保持したまま連携させることで集権型の SNS に対抗しようとする運動です。&lt;/p&gt;&#xA;&lt;p&gt;運動自体は2012頃に一番盛り上がっていたようで、その後ツイッターの代替を個人サーバの集合体で実現しようとした Mastodon の登場が2016 年、今もインディーウェブの運動は続いているようです。&lt;/p&gt;&#xA;&lt;p&gt;アンドレアス・ゴアさん(Andreas Gohr)は、Wikiツールの一つとして有名な &lt;a href=&#34;https://www.dokuwiki.org/ja:dokuwiki&#34;&gt;DokuWiki&lt;/a&gt; を2004年から開発している有名人ですが、このゴアさんが新たに公開したのが &lt;a href=&#34;https://indieblog.page/&#34;&gt;indieblog.page&lt;/a&gt; 。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://indieblog.page/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/07/indieblog-page-tool-by-dokuwiki-author/indieblog-page-top_hu_7a5b75f96d560afd.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/07/indieblog-page-tool-by-dokuwiki-author/indieblog-page-top_hu_aa209bf36615598b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/07/indieblog-page-tool-by-dokuwiki-author/indieblog-page-top_hu_e93a69621bde0089.webp 774w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/07/indieblog-page-tool-by-dokuwiki-author/indieblog-page-top.png&#34; width=&#34;774&#34; height=&#34;718&#34; alt=&#34;indieblog page’s top&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;indieblog.page のトップページ&lt;/p&gt;&#xA;&lt;p&gt;サイトはシンプルな作りで、中央の青い&amp;quot;Open Random Blog Post&amp;quot;ボタンをクリックすると、登録されている様々な個人ブログ記事にランダムで飛びます。それだけ。&lt;/p&gt;&#xA;&lt;p&gt;自分もインディーブロガーだと思う人は誰でも、あるいは他のインディーブログを推薦したいときも、RSSフィードが提供されている個人ブログの登録を提案してよいことになっています。&lt;/p&gt;&#xA;&lt;p&gt;indieblog に戻ってボタンを押しても、次はまた別のブログ記事にジャンプします。今も個人ブログを続けている人たちの間で、新たな個人ブログの発見を手助けするwebサービスと言えますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/splitbrain/blogrng&#34;&gt;ソースコードも公開&lt;/a&gt;されていて、indieblog.page と同じようなサイトを自分でホストすることもできます。Dokuwiki はファイルベースだけでデータを記録していて、当初はそれが管理も楽で広まったのだと思いますが、この新ツールは SQLite を使っています。&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=31002171&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Nettleマジック・プロジェクト - トランプにつけた見えない印でデッキのカードを全部当てる</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/</link>
				<pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/</guid>
				<description>&lt;p&gt;ポール・ネトルさん(&lt;a href=&#34;https://github.com/nettlep&#34;&gt;@nettlep&lt;/a&gt;, Paul Nettle)が公開した Nettle Magic Project は、オープンソースのトランプ・イカサマ支援ツールです。&lt;/p&gt;&#xA;&lt;p&gt;イカサマ、というと実際に悪用するみたいですが、あくまで「こんなことができる」という実験ですね。&lt;/p&gt;&#xA;&lt;p&gt;トランプの側面に、それぞれのカードに固有の模様をインクでつけて、そのインクを読み取ることで、デッキの上から下までどのカードが並んでいるかを読み取ってしまいます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/nettlep/magic/blob/main/docs/img/stamped-deck.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/stamped-deck_hu_88aac94cfd6c783e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/stamped-deck_hu_9f664f8308d561f3.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/stamped-deck_hu_ccf576c16b6c7c5b.webp 2691w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/stamped-deck.jpg&#34; width=&#34;2691&#34; height=&#34;1600&#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://raw.githubusercontent.com/nettlep/magic/main/docs/img/ink_comparison.jpg&#34;&gt;区別はつきません&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;読み取りは Raspberry Pi に &lt;a href=&#34;https://www.raspberrypi.com/products/pi-noir-camera-v2/&#34;&gt;NoIR カメラ&lt;/a&gt;を付けたデバイスで行います。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://raw.githubusercontent.com/nettlep/magic/main/docs/img/abra_ipad.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/abra_ipad_hu_7fc5e223d9a63a9f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/abra_ipad_hu_b033eeaa963338bb.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/abra_ipad_hu_14e50ff050888cdb.webp 2078w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/playing-card-ir-cheat-project/abra_ipad.png&#34; width=&#34;2078&#34; height=&#34;1562&#34; alt=&#34;iPadクライアントによるトランプ読み取り結果&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;iPadアプリAbraで読み取り結果を表示した様子&lt;/p&gt;&#xA;&lt;p&gt;作者自身によるiPad アプリで、撮影した見えないインクの並びからトランプの並びを表示しています。52枚重なった状態でどれだけ正確にわかるのかなと思いましたが、この写真だと&lt;a href=&#34;https://nettlep.github.io/magic/#confidencefactorcalculation&#34;&gt;読み取りの信頼度&lt;/a&gt;は99(/100)ということです。&lt;/p&gt;&#xA;&lt;p&gt;カメラに映ったデッキからカードの方向を正しく読んだり、全カードのマークからビット情報を読み取ったり、ビットの並びからエラー訂正で確からしいスート/数字を取り出したり、読み取った横のラインの重なり具合からカードとカードの境界を推定したり、動画から切り出した複数の画像から取り込んだ結果を時系列で追ったり、といった処理を経て、どれぐらい読み取れているかを判定しているそう。細かくは読めませんでしたが興味のある人には&lt;a href=&#34;https://nettlep.github.io/magic/&#34;&gt;とても詳細な説明&lt;/a&gt;が提供されています。&lt;/p&gt;&#xA;&lt;p&gt;Hacker Newsのコメントによると、2016年開催のDefcon 24の「ジェームス・ボンドのようにポーカーでイカサマをする」というセッションで同じようなトランプの読み取りがデモされていたそうです。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/bRgCvCTG_XQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;自分の用意したトランプを使えることが前提なので、この仕組みを実際的な使い道はカジノとかではなく、プロジェクト名が示すようにマジックの種としてでしょう。&lt;/p&gt;&#xA;&lt;p&gt;ここでは専用のIRカメラ、専用のアプリケーションを用意し、読み取りが容易な環境で行っていますが、今後ますます家やオフィスに複数のカメラが常時稼働するようになったり、またカメラが他の目的もあってIRやUVにも対応したりしていくかもしれません。そうするとソフトウェアの工夫次第で普通ならわからないような情報の読み取りができたりするかもしれないですね。&lt;/p&gt;</description>
			</item>
			<item>
				<title>StatusBase - gitで記録するウェブサイト状態モニターツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/</link>
				<pubDate>Wed, 22 Jun 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/status-base/statusbase-nuxt&#34;&gt;StatusBase (status-base/statusbase-nuxt)&lt;/a&gt; は、ウェブサイトの運用状況を記録して表示するためのツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/status-base/statusbase-nuxt&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/statusbase-github-top_hu_fd702c89f17278f4.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/statusbase-github-top_hu_1c174113295f8ad7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/statusbase-github-top_hu_76f670b2cefa3ccd.webp 1031w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/statusbase-github-top.png&#34; width=&#34;1031&#34; height=&#34;670&#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;StatusBase GitHubリポジトリ&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://health.aws.amazon.com/health/status&#34;&gt;AWS&lt;/a&gt;とか&lt;a href=&#34;https://api.twitterstat.us/&#34;&gt;Twitter API&lt;/a&gt;とか、サービスの提供状態を時系列でまとめて出しているページが、サービス本体とは別のところに(=本体が落ちても巻き込まれないように)公開されていますよね。ああいうページをセルフホストで作るためのものです。&lt;/p&gt;&#xA;&lt;p&gt;Vue + Nuxt.js で作られ、オープンソースで公開されている StatusBase は、モニターした対象サイトの up/down を git のコミットで記録していきます。GitHub Actions で定期実行させ、Nuxt で紹介されている多種のホスティングサービスに結果を送るように設定すれば、それだけで一定時間おきに指定したサイトの状態をコミットして、直近の履歴を表示してくれました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://akky-statusbase.vercel.app/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/akky-statusbase_hu_27b9af008da3fcce.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/akky-statusbase_hu_1511e67c419353fc.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/akky-statusbase_hu_bf7fecf8699ec71e.webp 853w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/statusbase-git-based-website-monitoring-tool/akky-statusbase.png&#34; width=&#34;853&#34; height=&#34;834&#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;適当なwebサイトの死活状況をStatusBase on Vercelで作ってみたもの&lt;/p&gt;&#xA;&lt;p&gt;サイトのダウンに関してレポートを載せたい場合は、これも markdown のドキュメントを置くだけ。&lt;/p&gt;&#xA;&lt;p&gt;サイトがダウンした時はeメールで通知もしてくれるのですが、これも GitHub issues を使って実現しています。&lt;/p&gt;&#xA;&lt;p&gt;作者の @zernonia さんによれば、監視部分のスクリプトの GitHub Actions による定期実行は時刻の正確性に欠けるということです。個人のホビーサイトではそれほど気にならないとは思いますし、無料枠でここまで簡単に動かせてしまうのが申し訳ないぐらいですね。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Introducing StatusBase!!! (yes another apps 😂)&lt;br&gt;&lt;br&gt;A git-based website monitoring tools powered by &lt;a href=&#34;https://x.com/nuxt_js?ref_src=twsrc%5Etfw&#34;&gt;@nuxt_js&lt;/a&gt; Content v2!&lt;br&gt;&lt;br&gt;🤩 Free &amp;amp; Open-Source&lt;br&gt;🚀 Easy deploy&lt;br&gt;📝 Write report in Markdown&lt;br&gt;0️⃣ Zero dependency on other service&lt;br&gt;🔔 Notify when site is down (WIP)&lt;a href=&#34;https://t.co/QRfPYbRRqQ&#34;&gt;https://t.co/QRfPYbRRqQ&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>EndBASIC - Rustで書かれたBASICインタプリタ&#43;環境</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/</link>
				<pubDate>Wed, 08 Jun 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/</guid>
				<description>&lt;p&gt;フリオ・メリノさん(Julio Merino)による&lt;a href=&#34;https://www.endbasic.dev/&#34;&gt;BASIC処理系プロジェクト EndBASIC&lt;/a&gt;は、新たに書き起こされたBASICインタプリタに、MS-DOS風のコマンドラインを組み合わせたBASIC言語の処理系です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.endbasic.dev/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-top_hu_975fbcd13bc1b694.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-top_hu_8e9d56115d902345.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-top_hu_5c19793aeb107553.webp 981w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-top.png&#34; width=&#34;981&#34; height=&#34;908&#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;EndBASIC サイトトップ&lt;/p&gt;&#xA;&lt;p&gt;BASIC としての文法や機能は、Amstrad CPC という1980年代の8bitパソコンで動いた&lt;a href=&#34;https://en.wikipedia.org/wiki/Locomotive_BASIC&#34;&gt;Locomotive BASIC&lt;/a&gt;や、&lt;a href=&#34;https://ja.wikipedia.org/wiki/QuickBASIC&#34;&gt;マイクロソフトのQuickBASIC&lt;/a&gt; を意識したものとなっているそう。&lt;/p&gt;&#xA;&lt;p&gt;Linux/MacOS/Windows のバイナリをダウンロードして手元で動かすこともできますが、&lt;a href=&#34;https://repl.endbasic.dev/&#34;&gt;ブラウザ上でも動く環境が公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://repl.endbasic.dev/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-on-chrome_hu_41396642765eeaee.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-on-chrome_hu_d6576c46b00b13b6.webp 676w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-on-chrome.png&#34; width=&#34;676&#34; height=&#34;247&#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;Rust で書かれた処理系が WebAssembly で動いているということで、昔からあるBASIC 言語を最新の技術と組み合わせているんですね。QuickBASIC で書かれたプログラムを少し直してウェブで公開、なんてことにも使えるかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;環境にはCUIエディタも内蔵されており、編集したファイルは環境内に保存することもできます。フラットに保存しファイル名で区別。ディレクトリについては今後の実装を検討ということ。また「ドライブ」を複数作ることができるのでドライブでの整理もできそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-sample_hu_eaea25b1beb65799.webp 431w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/06/endbasic-interpreter-by-rust/endbasic-sample.png&#34; width=&#34;431&#34; height=&#34;348&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;EndBASIC のサンプルコード&lt;/p&gt;&#xA;&lt;p&gt;BASIC言語ではよくある行番号機能は、GO TO 命令と共に省かれています。&lt;a href=&#34;https://www.endbasic.dev/docs.html#lang-goto&#34;&gt;そのうち実装するかもということ&lt;/a&gt;ですが、分岐とループ命令でおおかたは問題ないかと思います。&lt;/p&gt;&#xA;&lt;p&gt;面白いのは&lt;a href=&#34;https://www.endbasic.dev/docs.html#cloud&#34;&gt;クラウド対応機能&lt;/a&gt;で、ユーザー登録するとユーザー名以下に置いたファイルを他ユーザーと共有できるようになります。&lt;/p&gt;&#xA;&lt;p&gt;Raspberry PI で動かした時は&lt;a href=&#34;https://www.endbasic.dev/docs.html#hw-gpio&#34;&gt;GPIO&lt;/a&gt;にアクセスできる命令が提供されていて、ボタンやLEDなどの入出力が使えるそう。これも教育用としてよさそう。&lt;/p&gt;&#xA;&lt;p&gt;今はプログラミングに入門する時の言語も多数候補がありますが、昔は入門言語といえばBASICが主流ということもありました。プロジェクトでは、プログラムとプログラムを動かす環境が最小限でセットになっていることで、セットアップの苦労なしにプログラミングの学習ができるようにすることを目指しているそう。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=31651881&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Map of Reddit - レディット掲示板の勢力を可視化したインタラクティブ地図</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/</link>
				<pubDate>Fri, 13 May 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/</guid>
				<description>&lt;p&gt;英語圏中心の巨大無料掲示板サービス Reddit の分野ごと(subreddit)を、ジャンルやカテゴリの類似、人気などを表すように一枚の地図にまとめたのが &lt;a href=&#34;https://anvaka.github.io/map-of-reddit/&#34;&gt;Map of Reddit&lt;/a&gt; です。&lt;/p&gt;&#xA;&lt;p&gt;都市と国か、あるいは星と星系か。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://anvaka.github.io/map-of-reddit/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit_hu_a95bcdea46c3ca09.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit_hu_34472e27f2b42bb.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit_hu_b46afe6448c470c2.webp 995w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit.png&#34; width=&#34;995&#34; height=&#34;902&#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://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit-deno.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit-deno_hu_957c8f411337959.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit-deno_hu_db9ee7a038bae290.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit-deno_hu_168a17a72a973ad3.webp 992w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/05/map-of-reddit-shows-how-vast-reddit-is/map-of-reddit-deno.png&#34; width=&#34;992&#34; height=&#34;900&#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;/p&gt;&#xA;&lt;p&gt;地図全体の下の方には離れて別の大陸がありますね。こちらは国名も出てないしなんだろうと思ってクリックしたら、18歳以上かを尋ねられました。18歳未満禁止の subreddits はこちらの大陸にまとめられているようです。&lt;/p&gt;&#xA;&lt;p&gt;大きめの都市(星?)でメンバー数が数百万から数千万。無数にある小さなドットにも数百人とかの参加者がいて、それぞれの議論が行われている。普段検索から迷い込んでも一つの掲示板の一つのスレッドでしかありませんが、こうやって全体像を見せられるとその大きさ、幅広さがわかりますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/anvaka/map-of-reddit&#34;&gt;JavaScript/Vue.js 製のソースコードも公開&lt;/a&gt;されています。&lt;a href=&#34;https://www.reddit.com/r/MofR/&#34;&gt;このwebサービス用のサブ掲示板 MofR&lt;/a&gt; もあり、カテゴリ分類の間違いや機能追加の要望などを受け付けているようです。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=31357314&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Twitter の「アルゴリズム」がGitHubに公開され、中身は空でも注目を集める</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/04/twitter-the-algorithm-repo/</link>
				<pubDate>Tue, 26 Apr 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/04/twitter-the-algorithm-repo/</guid>
				<description>&lt;p&gt;Twitter 社が GitHub 上で &lt;a href=&#34;https://github.com/twitter/the-algorithm&#34;&gt;twitter/the-algorithm&lt;/a&gt; を公開したことが話題となっています。&lt;/p&gt;&#xA;&lt;p&gt;[更新 2022-04-27] &lt;a href=&#34;http://localhost:8099/2022/04/twitter-the-algorithm-repo-erased/&#34;&gt;リポジトリは削除されてしまいました&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;The&amp;rdquo; アルゴリズムですからね。Twitter の仕組みは多くのアルゴリズムからできていることは間違いないですが、おそらく各自のタイムラインがどのように作られるかという部分に関わるアルゴリズムのことではないかと言われています。&lt;/p&gt;&#xA;&lt;p&gt;このリポジトリの&lt;a href=&#34;https://twitter.com/willnorris/status/1518694675909013504&#34;&gt;存在を示唆&lt;/a&gt;したのは、Google のオープンソースチームから2022年に Twitter のオープンソースチームへ移籍した ウィル・ノリス氏。&lt;/p&gt;&#xA;&#xA;&lt;p&gt;長期に渡って&lt;a href=&#34;https://www.linkedin.com/in/willnorris/&#34;&gt;企業内でオープンソース活動を進めているエンジニア&lt;/a&gt;です。&lt;/p&gt;&#xA;&lt;p&gt;大昔は時系列順にツイートを表示するだけだった Twitter タイムラインのアルゴリズムは、ユーザーのために必要なものをうまく集めて見せる、といった名目でブラックボックス化し、自分たちの発言が不当に多く/少なく表示されたりしているのではないかといった疑念を持つ人もいます。&lt;/p&gt;&#xA;&lt;p&gt;Twitter買収を目指しているイーロン・マスク氏は「信頼性を高めるためにアルゴリズムをオープンソース化したい」と語っており、&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;und&#34; dir=&#34;ltr&#34;&gt;🚀💫♥️ Yesss!!! ♥️💫🚀 &lt;a href=&#34;https://t.co/0T9HzUHuh6&#34;&gt;pic.twitter.com/0T9HzUHuh6&lt;/a&gt;&lt;/p&gt;&amp;mdash; Elon Musk (@elonmusk) &lt;a href=&#34;https://x.com/elonmusk/status/1518677066325053441?ref_src=twsrc%5Etfw&#34;&gt;April 25, 2022&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;買収はまだ決定事項ではありませんがこれに呼応したものかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Consent-O-Matic 「Cookies使ってもいいですね?」等の質問を回答してくれるブラウザ拡張</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/</link>
				<pubDate>Fri, 08 Apr 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/cavi-au/Consent-O-Matic&#34;&gt;cavi-au/Consent-O-Matic&lt;/a&gt; は、ウェブサイトを初めて訪問した時などに出てくる「Cookies 等を使って閲覧状況を記憶してもいいですか?」系の確認ダイアログを、自動的に回答してくれるブラウザ拡張です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-without-consent-o-matic.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-without-consent-o-matic_hu_82a1f5472ff2a485.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-without-consent-o-matic_hu_bfd20a8ec8b82285.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-without-consent-o-matic_hu_201792499af45f7d.webp 1009w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-without-consent-o-matic.png&#34; width=&#34;1009&#34; height=&#34;847&#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;Consent-O-Matic を入れていると、同じサイトがいきなりOKを押した状態になります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-with-consent-o-matic.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-with-consent-o-matic_hu_eca87e72f1826fda.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-with-consent-o-matic_hu_2a395e41b067a8c5.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-with-consent-o-matic_hu_db888b057aa83c41.webp 1005w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/france24-with-consent-o-matic.png&#34; width=&#34;1005&#34; height=&#34;710&#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;どのサイトでも常に「許可」にして進むわけではなく、ブラウザ拡張機能の設定画面であらかじめ自分が決めておいた希望するYes/No を、そのサイトに初めて行った際に自動的に入力してくれるという動作です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/consent-o-matic-settings.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/consent-o-matic-settings_hu_29c7dd833dc9e6.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/consent-o-matic-settings_hu_598ef3a6e21127d9.webp 633w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/04/consent-o-matic-answers-privacy-questions-for-you/consent-o-matic-settings.png&#34; width=&#34;633&#34; height=&#34;808&#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;設定の種類は、「自分の好みを覚えたりするならOK」「性能測定やアクセス解析ならOK」「広告ネットワークに見せるIDならOK」「過去の閲覧内容や閲覧行動を使ったカスタマイズはOK」「過去の広告表示や広告クリック等の情報を使ったカスタマイズはOK」「その他」と分けて指定できるようです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/cavi-au/Consent-O-Matic/tree/master/rules&#34;&gt;rules&lt;/a&gt; にいくつもルールの定義がありますが、これは Cookies の利用やその利用目的などを明示するダイアログを表示するwebサービスがいくつもあり、大手ニュースサイトなどでもそれらのサービスを利用しているため、サービス毎にルールを作ってメンテナンスしているのだと思われます。&lt;/p&gt;&#xA;&lt;p&gt;新しいサイトに行くたびにダイアログを見て選択をしている時間をカットできると思えば、仕事効率化のツールとも言えますね。&lt;/p&gt;&#xA;&lt;p&gt;Consent-O-Matic には、今のところ &lt;a href=&#34;https://chrome.google.com/webstore/detail/consent-o-matic/mdjildafknihdffpkfmmpnpoiajfjnjd&#34;&gt;Chrome拡張&lt;/a&gt; と &lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/consent-o-matic/&#34;&gt;Firefox拡張&lt;/a&gt; が存在します。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=30625218&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Antgame.io - 蟻の採餌行動をテーマにしたブラウザ・シミュレーションゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/</link>
				<pubDate>Fri, 25 Mar 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://antgame.io/&#34;&gt;AntGame&lt;/a&gt;は、ブラウザで遊べる蟻のシミュレーション・ゲームです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-title.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-title_hu_a0445065cc91805d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-title_hu_452558e76dc2fc52.webp 638w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-title.png&#34; width=&#34;638&#34; height=&#34;310&#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;ゲームの遊び方とてもシンプルです。2次元に置かれた地形に蟻の巣(オレンジ色の四角)をマップで指定された個数配置したら、スタートボタンを押して眺めるだけ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-placement.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-placement_hu_78c66da4cfaa0e5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-placement_hu_7250f11bd111d553.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-placement_hu_427a4dbee7ffe19d.webp 1096w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-placement.png&#34; width=&#34;1096&#34; height=&#34;736&#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://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-starting.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-starting_hu_4033cbc21e61d68d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-starting_hu_b7761b0a25bbdfa1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-starting_hu_794b70cd955f89a0.webp 1088w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-starting.png&#34; width=&#34;1088&#34; height=&#34;734&#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://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-result.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-result_hu_c0e91e9bfe2db0f8.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-result_hu_4639a65579c606a4.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-result_hu_5c3f22f6b7a739a3.webp 1086w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-result.png&#34; width=&#34;1086&#34; height=&#34;733&#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;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-games.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-games_hu_49654d1d4f474980.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-games_hu_da1c403bbea84458.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-games_hu_4636c545dd779568.webp 903w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/antgame-io/antgame-io-games.png&#34; width=&#34;903&#34; height=&#34;784&#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;フロントエンドが React, バックエンドが node/express で&lt;a href=&#34;https://github.com/Cuzzo01/antgame.io&#34;&gt;ソースも公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.reddit.com/r/programming/comments/tn6vye/i_just_open_sourced_the_web_game_ive_been/&#34;&gt;reddit/programming&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>プルリクエスト ＜「あ、すいません今ロシアに侵略されてて忙しいので…」</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/</link>
				<pubDate>Mon, 28 Feb 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/</guid>
				<description>&lt;p&gt;@insky さん作の&lt;a href=&#34;https://github.com/insky/vue-gpickr/&#34;&gt;Vue のカラーピッカーライブラリ insky/vue-gpickr&lt;/a&gt; に対するプルリクエストのディスカッションの中で、「進捗どうですか? 🙂」という一ユーザーからの何気ないコメントに応じた @insky さんの&lt;a href=&#34;https://github.com/insky/vue-gpickr/pull/9#issuecomment-1054308947&#34;&gt;返事&lt;/a&gt;がこれ&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;ああ、すいません。もう少し時間がかかりそうです。今私の国はロシアの侵略からの防衛中で、今ちょっと忙しいんです。数日のうちにはあなた方の問題に取り組めればと願ってます。&lt;/p&gt;&#xA;&lt;p&gt;ウクライナに栄光あれ!&lt;/p&gt;&#xA;&lt;p&gt;O, so sorry. I need more time. Right now my country defending russian invasion, so I&amp;rsquo;m a little busy now. Hope in few days I&amp;rsquo;ll return to your problem.&lt;/p&gt;&#xA;&lt;p&gt;Glory to Ukraine!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/ukrainian-reaction-on-pull-request.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/ukrainian-reaction-on-pull-request_hu_bf7d5f586553e8df.webp 480w, https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/ukrainian-reaction-on-pull-request_hu_d3fee399b3fb51be.webp 768w, https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/ukrainian-reaction-on-pull-request_hu_b1fe17ab1259ee27.webp 848w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/02/ukrainians-reaction-to-pull-request/ukrainian-reaction-on-pull-request.png&#34; width=&#34;848&#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;これはプルリクエストどころではありませんね。GitHub ユーザーから&lt;a href=&#34;https://github.com/insky/vue-gpickr/pull/9#issuecomment-1054308947&#34;&gt;多くのリアクションマークや応援のコメント&lt;/a&gt;がつけられています。&lt;/p&gt;&#xA;&lt;p&gt;ウクライナ、&lt;a href=&#34;https://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%82%A6%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%8A%E9%A8%92%E4%B9%B1&#34;&gt;2014年のマイダン革命&lt;/a&gt;の際にも&lt;a href=&#34;https://github.com/fre5h/DoctrineEnumBundle/pull/12#issuecomment-33023169&#34;&gt;同じような事件&lt;/a&gt;が発生していたようです。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I will take a look later. Much much later. Because I&amp;rsquo;m Ukrainian and we have revolution right now. Sorry&lt;/p&gt;</description>
			</item>
			<item>
				<title>rss-proxy - 非対応のwebサイトからRSSやJSONを生成する、セルフホストもできるOSSツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/</link>
				<pubDate>Mon, 29 Nov 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/damoeb/rss-proxy&#34;&gt;damoeb/rss-proxy&lt;/a&gt; は、ウェブサイトが RSS feed を提供していなくても、HTML の構造から類推した新着情報を切り出してくれるオープンソースのツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news_hu_b551f04b570ea7be.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news_hu_1518bb7aaf61482.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news_hu_826cdcfe2f601721.webp 1201w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news.png&#34; width=&#34;1201&#34; height=&#34;705&#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;feed を提供してないウェブサイトのURLを入れると、html の構造から列挙になっている箇所を探し出し、生成する新着 feed の候補を並べてくれます。&lt;/p&gt;&#xA;&lt;p&gt;それぞれの候補が差している箇所は赤点線で示されるので、ここが自分の欲しい新着情報だと思ったら、右下のfeed生成ボタンを押すと、RSS feed が生成されます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-in-rss.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-in-rss_hu_ae0493ae0e2878c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-in-rss_hu_8b8860f201202c60.webp 626w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-in-rss.png&#34; width=&#34;626&#34; height=&#34;436&#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;RSS/ATOM 形式だけでなく、JSON を生成することもできるので、プログラムから利用したい場合はそちらが便利という人もいるでしょう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://rssproxy-v1.migor.org/&#34;&gt;デモサイト&lt;/a&gt;もあるのでここで動作を試すこともできますが、ソースコードは公開されており、呼び出すだけで動くdockeイメージも配布されているため、ローカルでも簡単に使ってみることができました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-supermarket.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-supermarket_hu_1348b91a48388bb8.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-supermarket_hu_8317127b993f0c4d.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-supermarket_hu_a8c48c8d14bc25c6.webp 1104w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-sample-fetches-latest-news-supermarket.png&#34; width=&#34;1104&#34; height=&#34;789&#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;スーパーマーケットの特売情報をJSONで取る、とか手軽にできそうです。&lt;/p&gt;&#xA;&lt;p&gt;ローカルPC や自分のVPS等で動かしておくことで、これまで RSS リーダーで捕捉できていなかったウェブサイトの新着情報を効率良く受け取ることができるのではないでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;任意のウェブサイトからフィードを生成するサービスはいくつもあり、RSSリーダーの中にもそのような機能を内蔵しているものもあります。ですが、変換できる数に上限が有ったり、有料だったりと制限のあるものも多いです。&lt;/p&gt;&#xA;&lt;p&gt;自前でホストすればそのあたりは制限がありませんし、ソースコードがあって自分で中を見ることができるのは、自動の切り出しでは飽き足らず個別に手を加えて新着情報を取りたいサイトが出た場合などに良さそうですね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-docker-logs_hu_8e04432dc125f1d9.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-docker-logs_hu_6b2f3b32c7eb6124.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-docker-logs_hu_2879f07f8dfa5a91.webp 1161w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/11/rss-proxy-generates-feed-from-websites/rss-proxy-docker-logs.png&#34; width=&#34;1161&#34; height=&#34;339&#34; alt=&#34;rss-proxy on docker&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;dockerで動かした時のログの様子&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>Debian の perf を高速化するパッチと、そのGPL的な背景</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/</link>
				<pubDate>Tue, 28 Sep 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/</guid>
				<description>&lt;p&gt;Cargo の &lt;a href=&#34;https://github.com/flamegraph-rs/flamegraph&#34;&gt;flamegraph&lt;/a&gt; ツールが&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911815&#34;&gt;Debian の perf のせいでとても遅い&lt;/a&gt;という話。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped_hu_9c524255cc8709fc.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped_hu_ce280d565fd6d098.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped_hu_4dc32e8f18544df0.webp 2284w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped.png&#34; width=&#34;2284&#34; height=&#34;862&#34; alt=&#34;Cargo flamegraph sample&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;perf コマンドがプロファイルデータを解析する際に libbfd をリンクすればずっと高速になるのですが、&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911815#15&#34;&gt;Debian のポリシーでライセンスに違反するため libbfd をリンクすることはできない&lt;/a&gt;そうです。&lt;/p&gt;&#xA;&lt;p&gt;[修正] コメントでの指摘を受け修正しました&lt;/p&gt;&#xA;&lt;p&gt;perf のライセンスが GPL バージョン2、libbfd のライセンスが GPL バージョン3+ であり、これら二つのプロジェクトを&lt;a href=&#34;https://mag.osdn.jp/07/06/05/0114203&#34;&gt;合法的にリンクさせる方法がない&lt;/a&gt;そう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://salsa.debian.org/kernel-team/linux/blob/master/debian/rules.d/tools/perf/Makefile#L45&#34;&gt;Debian の Makefile では、わざわざ生成された perf コマンドが libbfd をリンクして「いない」ことをチェックするようになっている&lt;/a&gt;のですね。&lt;/p&gt;&#xA;&lt;p&gt;そんな訳で、Debian の perf は dso 一つごとに addr2line コマンドをパイプで呼び出す(そして、毎回サブプロセスは終了する)方式となっています。&lt;/p&gt;&#xA;&lt;p&gt;しかし、大量の perf 呼び出しを行う flamegraph を作ろうとした @leastfixedpoint さんは、いつまでも帰ってこない perf コマンドに業を煮やし、libbfd をリンクさせない範囲での高速化を考えました。&lt;/p&gt;&#xA;&lt;p&gt;この&lt;a href=&#34;https://eighty-twenty.org/2021/09/09/perf-addr2line-speed-improvement&#34;&gt;パッチでは&lt;/a&gt;、addr2line を別プロセスとして起動させたままにしておき、dso をデータとして送り付け結果を受け取っても、addr2line プロセスを終了させないことで、とあるデータ量に対して68倍速く処理が終わるようにできたそうです。&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=28468751&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>ZeroVer - ゼロベース・バージョニング</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/08/zerover-zero-based-versioning/</link>
				<pubDate>Fri, 13 Aug 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/08/zerover-zero-based-versioning/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://0ver.org/&#34;&gt;ZeroVer&lt;/a&gt; は、決してバージョン1に到達しないバージョンつけ規則を提唱しています。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;「ソフトウェアのリリース数が史上最高を迎える現在も、皆が一致する方法は見つかっていません。&lt;strong&gt;メジャーバージョンはもう古い&lt;/strong&gt;。ならばソフトウェア・バージョンの過去・現在・将来はいかなるものか? ゼロバー0.0.1へようこそ!」&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://0ver.org/&#34;&gt;ZeroVer: 0-based Versioning — zer0ver&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://0ver.org/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/08/zerover-zero-based-versioning/zerover-top_hu_1312f3becedaa905.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/08/zerover-zero-based-versioning/zerover-top_hu_8fcf26d16c578787.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/08/zerover-zero-based-versioning/zerover-top_hu_bda4f65cb34660ff.webp 966w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/08/zerover-zero-based-versioning/zerover-top.png&#34; width=&#34;966&#34; height=&#34;748&#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;ゼロバー(ZeroVer, 0verとも)では、メジャーバージョンは最初にして最も重要な数値である0を超えることは決してありません。&lt;/p&gt;&#xA;&lt;p&gt;0ver サイトでは、著名なオープンソースのプロジェクトの多くが 0. で始まるゼロ・バージョニングを採用していることを、&lt;a href=&#34;https://0ver.org/#notable-zerover-projects&#34;&gt;巨大な表を使って&lt;/a&gt;見せてくれています。&lt;/p&gt;&#xA;&lt;p&gt;React Native 0.65.0-rc.2 や axios 0.21.1 、hugo 0.85.0 など、GitHub でスターを数万以上も集める有名なオープンソースプロジェクトがいくつも、プロジェクト開始から何年も経過しているにも関わらずバージョン0 を維持し続けています。&lt;/p&gt;&#xA;&lt;p&gt;Wikipedia で&lt;a href=&#34;https://query.wikidata.org/#SELECT%20%3Fsoftware%20%3FsoftwareLabel%20%3Fsoftware_version%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%3Fsoftware%20wdt%3AP31%20wd%3AQ7397.%0A%20%20%3Fsoftware%20wdt%3AP348%20%3Fsoftware_version.%0A%20%20FILTER%20REGEX%20%28%3Fsoftware_version%2C%20%22%5E0%5C%5C..%2a%22%29.%0A%0A%7D%0ALIMIT%20100&#34;&gt;バージョンが0.から始まっているソフトウェアプロジェクトを検索するための WikiData のクエリ&lt;/a&gt;も公開されています。&lt;/p&gt;&#xA;&lt;p&gt;サイトではゼロ・バージョニングを実施している優れたプロジェクトを募集しており、条件に合致すればリストへ追加してもらえるそうです。条件は&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ゼロ・バージョン(0.*)を採用していたり、長期にわたるゼロ・バージョンの利用があること&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;そして、以下のいずれかを満たすこと&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GitHub でスターが1000個以上ついているなど広く知られていること&lt;/li&gt;&#xA;&lt;li&gt;商用製品やサービスのプロモーション&lt;/li&gt;&#xA;&lt;li&gt;完成度が高く、インフラを支えていること&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;バージョン0.*から決して上がらないソフトウェアをお持ちの方は申請してみるのもいいかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;今までこのゼロ・バージョニングの概念についてはうかつにも知らなかったのですが、サイトのリリース日を見ると2018年の4月1日にはもう公開されていたんですね。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>アナログなメーターをデジタルなネットワークに接続する</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/</link>
				<pubDate>Thu, 08 Jul 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/</guid>
				<description>&lt;p&gt;従来の機器についたメーターが示すデータをネットワークで利用するためにカメラと画像認識を組み合わせるという話、つい最近も&lt;a href=&#34;https://www3.nhk.or.jp/news/html/20210610/k10013078621000.html&#34;&gt;新型コロナウイルスのワクチンを低温で保管する冷凍庫の温度監視&lt;/a&gt;という文脈でNHKニュースで紹介されて話題となってました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/digitize-analog-meter-on-nhk-news.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/digitize-analog-meter-on-nhk-news_hu_b6b3f9be4e36f2d1.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/digitize-analog-meter-on-nhk-news_hu_55aa322cf5be870.webp 668w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/digitize-analog-meter-on-nhk-news.png&#34; width=&#34;668&#34; height=&#34;502&#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;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://petewarden.com/2021/02/28/how-screen-scraping-and-tinyml-can-turn-any-dial-into-an-api/&#34;&gt;ピート・ワーデンさん(Pete Warden)がブログで紹介しているのも、そんなメーター読み取りの事例&lt;/a&gt;です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-camera.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-camera_hu_8465129e3b8572c1.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-camera_hu_1ac25fc4a1da91b4.webp 600w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-camera.jpg&#34; width=&#34;600&#34; height=&#34;600&#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://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-digitizer.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-digitizer_hu_9bfdbd8ec9f8f0d3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-digitizer_hu_beba8e2ec7d8c840.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-digitizer_hu_ac2f91d85a760d4e.webp 1140w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/jomjol-watermeter-digitizer.jpg&#34; width=&#34;1140&#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;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/read-digits-on-analog-meter.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/read-digits-on-analog-meter_hu_1fbdeb1ab9e44161.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/read-digits-on-analog-meter_hu_ac510d1703fc375d.webp 655w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/07/analog-meter-linked-to-digital-network/read-digits-on-analog-meter.png&#34; width=&#34;655&#34; height=&#34;189&#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;あわせて10ユーロもしない IoTマイクロコントローラ ESP32 の載ったマイコンボードと200万画素のカメラモジュール OV2640 の上で、畳み込みニューラルネットワーク(CNN)を作り、文字盤や針を読ませることができているそうです。ソフトウェアは &lt;a href=&#34;https://github.com/jomjol/AI-on-the-edge-device&#34;&gt;jomjol/AI-on-the-edge-device&lt;/a&gt; で公開。&lt;/p&gt;&#xA;&lt;p&gt;このマイコンボード上からWebインタフェースで読み取り結果を公開してるので、読み取った結果を蓄積するもグラフ化するも、異常値を見てアラートを上げるのも自由ですね。&lt;/p&gt;&#xA;&lt;p&gt;もちろん同様の&lt;a href=&#34;https://www.plathome.co.jp/product/iot-solution/meter-read-automation/&#34;&gt;商用のソリューション&lt;/a&gt;はいろいろあるようですけど、それなりの価格はしそう。安価なマイコンボードと自作ソフトウェアでもここまでできるんですね。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Gently down the stream - Apache Kafka の動く絵本</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/</link>
				<pubDate>Wed, 23 Jun 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.gentlydownthe.stream/&#34;&gt;Gently Down the Stream&lt;/a&gt;は、&lt;a href=&#34;https://kafka.apache.org/&#34;&gt;Apache Kafka&lt;/a&gt; がどういうものであるかを紹介する、動く電子絵本です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.gentlydownthe.stream/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-title_hu_28f2b9d3dfb55a70.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-title_hu_6e190deb50d22ddd.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-title_hu_8404bbcc6978eb60.webp 1179w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-title.png&#34; width=&#34;1179&#34; height=&#34;843&#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;Kafka は、大量のイベントストリームを処理するためのオープンソースのプラットフォームで、もともとは LinkedIn が大量のユーザーの行動データをリアルタイムに処理分析してニュース通知などに反映する目的で作られたものだそうです。メッセージキューと似てるように聞こえますが、処理量や処理速度に対応するために特化改良されているそう。&lt;/p&gt;&#xA;&lt;p&gt;自分も一見では「メッセージキューのツール?」ぐらいにしか思っていなかったので、Kafka だからこそできること、みたいなのを説明するためにこの絵本が生まれたのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;ストーリーは、森に住むカワウソたちがお互いの家族間でニュースを広めあい共有するという世界観の中で、家族が増えたり共有したい情報がどんどん増えていくことで様々な問題が起こるところから、&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-simple-messaging.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-simple-messaging_hu_9449f70afa8e289c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-simple-messaging_hu_2ac83006068a71.webp 669w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-simple-messaging.png&#34; width=&#34;669&#34; height=&#34;530&#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;家族が直接ニュースを伝えに行き来するところから、ニュースを伝えるメッセンジャーの導入。そして森の中の大河である Kafka川を、支流ごとに Topic に分け、そこで Producer と Consumer に分かれてイベントの投入と受け取りを分離する、Topic に流れるイベントがさらに増大した際に Topic を分割する Partitions 、といった概念を、カワウソで説明してくれます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-consumer.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-consumer_hu_68ab773d507f30.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-consumer_hu_48565c4e72a587f8.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-consumer_hu_a44c1593f2727ab9.webp 1009w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/apache-kafka-picture-book/kafka-picturebook-consumer.png&#34; width=&#34;1009&#34; height=&#34;702&#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;「これで完全に解ったのか?」と言われるとそこまで自信はないのですが、Kafka で使われる概念や用語について、読む前よりは少し知ることができたように思います。&lt;/p&gt;&#xA;&lt;p&gt;なお、Apache Kafka については以下の記事も参考にしました。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://deeeet.com/writing/2015/09/01/apache-kafka/&#34;&gt;Apache Kafkaに入門した | Taichi Nakashima&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3&#34;&gt;Apache Kafkaの概要とアーキテクチャ&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Zoomでジェパディー</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/</link>
				<pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.mfrederickson.com/ZoomJeopardy/&#34;&gt;Zoom Jeopardy!&lt;/a&gt; は、アメリカの&lt;a href=&#34;https://www.jeopardy.com/&#34;&gt;人気長寿クイズ番組ジェパディー&lt;/a&gt;(&lt;a href=&#34;https://ja.wikipedia.org/wiki/%E3%82%B8%E3%82%A7%E3%83%91%E3%83%87%E3%82%A3!&#34;&gt;Wikipedia&lt;/a&gt;)をZoom上で再現し、友達と遊ぶことができるアプリケーションです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-title.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-title_hu_29be45c58f54e13f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-title_hu_331b1ad01cf913bd.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-title_hu_952ac4bda6d88137.webp 1254w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-title.png&#34; width=&#34;1254&#34; height=&#34;739&#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;アメリカでは知らない人はいない、というぐらい有名なクイズ番組で、ジョパディであれば遊び方をわざわざ説明する必要なくZoom 上で遊ぶことができるのでしょう。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/Peioz6Oe3pE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-green-screens.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-green-screens_hu_3a6f9d09e5bf90b5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-green-screens_hu_444da0c1f59cdb4.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-green-screens_hu_7d57fe6e11502644.webp 1024w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/06/zoom-jeopardy/zoom-jeopardy-green-screens.png&#34; width=&#34;1024&#34; height=&#34;560&#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;Zoom でつなげ、背景をグリーンスクリーンにした参加者を、ホストが指名することでジョパディのセットの中に合成して表示されます。&lt;/p&gt;&#xA;&lt;p&gt;ただし、勝手に番組のフォーマットとブランド名、そっくりに再現したセットや過去の問題文と回答を使っているので、サービスとしては完全にアウトだと思われます。ゲームのルールだけなら大丈夫そうなのですが。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://derivative.ca/&#34;&gt;Derivative 社の TouchDesigner&lt;/a&gt; というヴィジュアルプログラミング環境の上で構築されていて、Zoom + TouchDesigner + Zoomジェパディーの3つをインストールし、友達を招待すれば始まります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/funfunfunfunfunmike/ZoomJeopardy&#34;&gt;ソースコードはこちら&lt;/a&gt; ソースというかアプリデザインツール上のデータファイルです。このツールでできることを見せるために作られたようなゲームとも言えますね。&lt;/p&gt;&#xA;&lt;p&gt;新型コロナウイルスの影響で直接会えない状態が続いていますが、オンライン会議やオンライン飲み会だけでなく、オンラインでの遊び方を提供するサービスに今後チャンスが増えるかもしれないですね。権利を持っている公式がこういうサービスをやれるとしたら、面白いかなと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Curl プロジェクトが Travis-CI 無料枠を外されそうだとして対応を開始</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/05/travis-ci-may-deprive-curl-of-free-tier/</link>
				<pubDate>Mon, 31 May 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/05/travis-ci-may-deprive-curl-of-free-tier/</guid>
				<description>&lt;p&gt;URL転送ライブラリとそのコマンドラインツールとして有名な &lt;a href=&#34;https://curl.se/&#34;&gt;Curl プロジェクト&lt;/a&gt;の GitHub issues で、&lt;a href=&#34;https://github.com/curl/curl/issues/7150&#34;&gt;travis-ci の無料枠が使えなくなる(travis-ci shuts down the free tier for us)&lt;/a&gt;というチケットが上がっています。&lt;/p&gt;&#xA;&lt;p&gt;有名CIサービスである &lt;a href=&#34;https://www.travis-ci.com/&#34;&gt;travis-ci&lt;/a&gt; にはオープンソースをサポートする無料枠があり、GitHub 上の多くの OSS プロジェクトで travis-ci が利用されているのもそれによるものです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/travis-ci-may-deprive-curl-of-free-tier/travis-ci-deprived-curl-of-free-tier.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/travis-ci-may-deprive-curl-of-free-tier/travis-ci-deprived-curl-of-free-tier_hu_d5525e4050d0a8bb.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/travis-ci-may-deprive-curl-of-free-tier/travis-ci-deprived-curl-of-free-tier_hu_86ed5ad6f2ff8431.webp 723w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/travis-ci-may-deprive-curl-of-free-tier/travis-ci-deprived-curl-of-free-tier.png&#34; width=&#34;723&#34; height=&#34;812&#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;curlプロジェクトでも &lt;a href=&#34;https://travis-ci.org/github/curl/curl&#34;&gt;2013 年から travis-ci で CI を回しており&lt;/a&gt;、現在は33個のジョブが走っているそう。今年の3月までは、特別にCPUブーストもしてもらえていたということですが、このブーストは予告なしに止まっていたそう。&lt;/p&gt;&#xA;&lt;p&gt;travis.ci は今 &lt;a href=&#34;https://travis-ci.org/&#34;&gt;travis-ci.org&lt;/a&gt; から &lt;a href=&#34;https://travis-ci.com/&#34;&gt;travis-ci.com&lt;/a&gt; へのドメイン移行を進めているのですが、この移転でオープンソース無料枠を再度申請したいが、他のプロジェクトに対するメールでの返答にあった「無料枠を使える条件」が引っ掛かりそうだ、とCurl作者のダニエル・ステンバーグ氏(Daniel Stenberg)が述べています。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;申請者はプロジェクトのリードかレギュラー貢献者である&lt;/li&gt;&#xA;&lt;li&gt;プロジェクトは3か月以上の歴史を持ちアクティブである&lt;/li&gt;&#xA;&lt;li&gt;プロジェクトは&lt;a href=&#34;https://opensource.jp/osd/&#34;&gt;オープンソースの定義(OSD)&lt;/a&gt;に合致する&lt;/li&gt;&#xA;&lt;li&gt;プロジェクトは営利企業や組織にスポンサードされていない&lt;/li&gt;&#xA;&lt;li&gt;プロジェクトは有料サービスやソフトウェアの有料版の配布をしていない&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;ステンバーグ氏は&lt;a href=&#34;https://www.wolfssl.com/&#34;&gt;wolfSSL&lt;/a&gt;社に属し、勤務時間中にCurl プロジェクトの管理やサポートをしてよいことになっているのですが、これが上記の5つの4番目にどうしても抵触してしまうだろうということ。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;According to &lt;a href=&#34;https://x.com/travisci?ref_src=twsrc%5Etfw&#34;&gt;@travisci&lt;/a&gt;&amp;#39;s new rules, we&amp;#39;re not legible for the open source free tier if anyone in the project gets paid to work on it...&lt;br&gt;&lt;br&gt;Thanks a lot.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PINTR - 画像をプロッタで描いた風の図形に変換するサービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/</link>
				<pubDate>Fri, 21 May 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://javier.xyz/pintr/&#34;&gt;PINTR&lt;/a&gt; は、プロッタで描いた絵のように画像を変換してくれるというwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/pintr.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/pintr_hu_4ba6e4536ac511cf.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/pintr_hu_9f89f31ceea8bc3a.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/pintr_hu_ea223b0c54106429.webp 1177w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/pintr.png&#34; width=&#34;1177&#34; height=&#34;778&#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;4つのスライダーを調整するたびに、プロットをしなおします。SINGLE LINE は一筆書きにするかどうかの選択。&lt;/p&gt;&#xA;&lt;p&gt;LINE で線の量を多くすると描きこみが多く真っ黒な画像になります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-many-lines.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-many-lines_hu_b8a604bd1737b653.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-many-lines_hu_dce7190570607afc.webp 532w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-many-lines.png&#34; width=&#34;532&#34; height=&#34;536&#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;サンプルの顔写真で見ると、顔の中心部分を最後に描いているため、LINE を減らすほど顔の輪郭が出ない、より抽象画っぽくなりました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-less-lines.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-less-lines_hu_382d1d75827a79c4.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-less-lines_hu_a0a82588e4c10335.webp 534w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/printr-less-lines.png&#34; width=&#34;534&#34; height=&#34;537&#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://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/PINTR-a-kid.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/PINTR-a-kid_hu_390efae0e0666f0c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/PINTR-a-kid_hu_5bf53ed56a1b9f4b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/PINTR-a-kid_hu_929cb71f4b5dfd81.webp 1138w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pintr-make-image-plotter-like/PINTR-a-kid.png&#34; width=&#34;1138&#34; height=&#34;557&#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;GitHubでソースコード(&lt;a href=&#34;https://github.com/javierbyte/pintr&#34;&gt;javierbyte/pintr&lt;/a&gt;)も公開されています。GitHub の方では、プロッタで紙に出力する様子の動画も掲載されています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>オープンソースプロジェクト内のTODO個数調査</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/</link>
				<pubDate>Mon, 17 May 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/</guid>
				<description>&lt;p&gt;マーティン・シュライスさん(Martin Schleiss)がブログで公開したのが、Linux をはじめとする巨大オープンソースプロジェクトのソースコードにおける「やらないといけない」あるいは「後で考える」マークである&lt;a href=&#34;https://schleiss.io/plotting-source-code-todos-for-open-source-projects&#34;&gt;&amp;ldquo;TODO&amp;quot;の個数の移り変わりをグラフ化したもの&lt;/a&gt;です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-php.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-php_hu_42d471dbed994217.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-php_hu_d84bf66808deea28.webp 724w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-php.png&#34; width=&#34;724&#34; height=&#34;413&#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;基本的には、プロジェクトの年月が重なるほど、コードに書かれた TODO の個数は増えていくようです。上の PHP のグラフでは、メジャーリリースや通常リリースの時期の少し前に TODO が増えているようにも見えます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-rust.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-rust_hu_e9989cc2ecec201c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-rust_hu_f765e8e3ecc8e856.webp 720w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-rust.png&#34; width=&#34;720&#34; height=&#34;409&#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;プロジェクトによっては単調増加ではないものも。Rust は TODO の個数自体が少ないように見えるし、途中で数個まで減っている時期もあるので、意識的に TODO の解消を目指したりしていたのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-nextjs.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-nextjs_hu_341bde9c23ce6f9f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-nextjs_hu_e416def6916be00e.webp 718w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/count-todos-in-oss-repositories/todos-chart-nextjs.png&#34; width=&#34;718&#34; height=&#34;422&#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;Next.js 、version 10 と 10.1 のどちらのリリース時期でもなく、突然増えています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://schleiss.io/plotting-source-code-todos-for-open-source-projects&#34;&gt;ブログ記事&lt;/a&gt;では言語処理系やライブラリなど、有名なもの20個弱についてグラフ化されています。&lt;/p&gt;&#xA;&lt;p&gt;プロジェクトの規模、歴史の長さによってもTODO の個数は変わりますが、規模や歴史と無関係に多い少ないもあったりもします。シュライスさんはTODO が有ることはどのオープンソースプロジェクトにおいても貢献をする余地があるということだ、と言っています。あなたが良く使っているツール/ライブラリのTODO は増えているでしょうか?&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tailwind CSS批判ブログ記事の紹介ツイートへの攻撃で作者が炎上</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/05/tailwind-css-author-accused-by-tweet/</link>
				<pubDate>Mon, 10 May 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/05/tailwind-css-author-accused-by-tweet/</guid>
				<description>&lt;p&gt;CSSフレームワーク &lt;a href=&#34;https://tailwindcss.com/&#34;&gt;Tailwind CSS&lt;/a&gt; の作者の一人である&lt;a href=&#34;https://twitter.com/adamwathan&#34;&gt;アダム・ワザン(Adam Wathan)氏&lt;/a&gt;の行為を非難する記事が公開され、コミュニティ内で議論が炎上しています。&lt;/p&gt;&#xA;&lt;p&gt;「&lt;a href=&#34;https://dev.to/brianboyko/tailwindcss-adds-complexity-does-nothing-3hpn&#34;&gt;TailwindCSS: 複雑性を足すだけで、何もしていない&lt;/a&gt;」という刺激的なタイトルの4月20日のブログ記事が発端。&lt;/p&gt;&#xA;&lt;p&gt;記事のタイトルが「釣りっぽい(click-bait)」であることは議論の双方が認めるところですが、この記事をツイッター上で5月7日にリツイートしたのがtwitterで10万人のフォロワーを持つフロントエンド開発者でインフルエンサーの&lt;a href=&#34;https://twitter.com/SaraSoueidan&#34;&gt;サラ・スエイダン(Sara Soueidan)氏&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;このツイートは炎上の初期に消されてしまっているのですが、特に追加のコメントもなく上記の記事を紹介しただけだったよう。しかし、このRT に対し、TailwindCSS の作者であるワザン氏が反応。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Thanks for choosing to use your platform to ruin my day 🥰&lt;/p&gt;&amp;mdash; Adam Wathan (@adamwathan) &lt;a href=&#34;https://x.com/adamwathan/status/1390663794985250816?ref_src=twsrc%5Etfw&#34;&gt;May 7, 2021&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;blockquote&gt;&#xA;&lt;p&gt;「@SaraSoueidan あなたのプラットフォームを使って私の一日を台無しにしてくれてありがとう 🥰」&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;これに対し、スエイダン氏自身もツイッターで反論をしていますが、(理由はわかりませんが)元のツイートだけ削除されています。&lt;/p&gt;&#xA;&lt;p&gt;アップルのエンジニアでこれまた有名人の&lt;a href=&#34;https://twitter.com/cherthedev&#34;&gt;シェール・スカーレット(Cher Scarlett)氏&lt;/a&gt;が「&lt;a href=&#34;https://dev.to/cher/sexism-racism-toxic-positivity-and-tailwindcss-cil&#34;&gt;性差別、人種差別、嫌にポジティブ(toxic positivity)、そして TailwindCSS&lt;/a&gt;」という記事でワザン氏のツイートに含まれる意識してないかもしれないバイアスや問題点を指摘し、こちらのコメント欄でもTailwindCSS 界隈を中心としたコミュニティに属する人々の議論が続いています。(量が膨大で正直追い切れてません)&lt;/p&gt;&#xA;&lt;p&gt;スカーレット氏の主張は「白人男性(ワザン氏)が自分の作ったツール自体への批判に直接反論するのではなく、それを紹介したレバノン人女性(スエイダン氏)のツイートに対してぶつけたことが問題だ」というもの。&lt;/p&gt;&#xA;&lt;p&gt;元の釣りタイトルの記事の方もフレームワーク自体やフレームワークを使うのに向いた人向いてない人はどんな人かという議論が進んでいて、より攻撃的でない体裁で別の人が書いた「 &lt;a href=&#34;https://dev.to/benface/tailwind-css-might-not-be-for-you-jk0&#34;&gt;Tailwind CSS があなたに合わない場合&lt;/a&gt;」という記事も出ています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ツイッターのヘッダ画像を動的に変える</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/</link>
				<pubDate>Sun, 09 May 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://twitter.com/tdinh_me&#34;&gt;Tony Dinh さん(@tdinh_me)&lt;/a&gt;が twitter で面白い実験をしています。&lt;/p&gt;&#xA;&lt;p&gt;絵文字を彼のアカウントに向けてリプライで送ると、その絵文字がツイッターのヘッダバナーに表示されるというもの。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header-akkys-reply.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header-akkys-reply_hu_5c5057d26959ca60.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header-akkys-reply_hu_54d08efc6fa57a44.webp 623w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header-akkys-reply.png&#34; width=&#34;623&#34; height=&#34;228&#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://twitter.com/tdinh_me&#34;&gt;ヘッダの画像&lt;/a&gt;が以下のように&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header_hu_c2df866040960f92.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header_hu_e0acc506dce57446.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header_hu_add4b748ba6ef37b.webp 917w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/change-twitter-header-dynamically/real-time-twitter-header.png&#34; width=&#34;917&#34; height=&#34;608&#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;今リプライで送った絵文字🈲が、20個並んで表示されている絵文字の先頭に出ています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/trungdq88/real-time-twitter-banner&#34;&gt;ソースコードも公開されていて&lt;/a&gt;、自分のtwitterアカウントで動かすこともできます。&lt;/p&gt;&#xA;&lt;p&gt;twitter API の開発者登録をし、APIキーを設定して Node 環境で動かせば、API の呼び出し回数の制限内で Twitter API を呼び出し、自分へのリプライ(というか自分のアカウント名が入ったツイート)を取得、そこから絵文字を抽出しヘッダ画像を生成、Twitter API でヘッダ画像を差し替え、という動作でヘッダ画像を更新してくれます。&lt;/p&gt;&#xA;&lt;p&gt;デフォルトのヘッダ画像を使うこともできますし、サイズを合わせれば別の好きな画像で絵文字を入れることもできます。&lt;/p&gt;&#xA;&lt;p&gt;Twitter API でヘッダ画像の更新もできたんですね。リプライされた絵文字が出たからどうだ、という話もありますが、工夫次第でフォロワーとのインタラクションから面白い画像を作れるのではという気もします。&lt;/p&gt;&#xA;&lt;p&gt;via Twitter&lt;/p&gt;</description>
			</item>
			<item>
				<title>Triangula - 画像を三角形の集まりに変換するツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/</link>
				<pubDate>Fri, 23 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/RH12503/Triangula&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/triangula-logo.svg&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/RH12503/Triangula&#34;&gt;Triangula&lt;/a&gt; は、Go言語で書かれたオープンソースの画像変換ツールで、写真などの画像を小さな三角形の集合体に変換するものです。&lt;/p&gt;&#xA;&lt;p&gt;適当な画像で試してみました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba_hu_db35f87a4af0e18.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba_hu_cad67034655df784.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba_hu_fcd220706b6d48b9.webp 800w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba.jpg&#34; width=&#34;800&#34; height=&#34;600&#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;これが、(変換のごく途中の状態でまだ荒いですが)以下のようなSVGファイルになりました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba.svg&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/triangula-converts-image-triangles/mutton-soba.svg&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://rh12503.github.io/triangula/&#34;&gt;ブラウザで動くプレビュー版&lt;/a&gt;も公開されていて、簡単に試すことができます。変換の速度はかなり遅いということで、CLI版を手元で動かした方が良いと思いますが。&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=26899066&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>TETRIS-OS - ブートローダから直接動くテトリス・クローン</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/</link>
				<pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/jdah/tetris-os&#34;&gt;jdah/tetris-os&lt;/a&gt; は、テトリスだけ動くOS、ということです。実際には OS のように起動してテトリス(のクローン)だけが動くプログラムというところでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-game.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-game_hu_4929628ee0680922.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-game_hu_1680b8953c5e7852.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-game_hu_f3f01ea85da19d7b.webp 1242w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-game.png&#34; width=&#34;1242&#34; height=&#34;779&#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;TETRIS-OS は、ソースコードが公開されているオープンソースOSです。Mac OSと Linux のエミュレーター上で動作確認していて、Windows は不明、実機も不明とのこと。&lt;/p&gt;&#xA;&lt;p&gt;一つのゲームだけが動くゲーム専用機 - 古くはゲームウォッチとかから、テトリスならキーホルダー型のものとか - を考えると、ハードウェアの制約もあるしOSは持たなくても不思議ではないので、先祖返りのような気もします。MS-DOS以前のゲームでもゲーム自体がブートローダーでしたね。&lt;/p&gt;&#xA;&lt;p&gt;作者自身による&lt;a href=&#34;https://www.youtube.com/watch?v=FaILnmUYS_U&#34;&gt;解説動画&lt;/a&gt;も公開されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-dubble-buffer_hu_e3f2d5db4e368dc0.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-dubble-buffer_hu_2bae8b8845367b38.webp 696w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-dubble-buffer.png&#34; width=&#34;696&#34; height=&#34;387&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;ダブルバッファリングの説明&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/FaILnmUYS_U?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;ファイルシステムもないし、文字を書くにもフォントの用意からですし、TETRIS-OS ではBGMまでちゃんと鳴るそうです。OS が提供する便利さを享受せずに直接操作するコードを書くのは、よくやるなあと思いますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-soundblaster.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-soundblaster_hu_6202d5b4e4834c1f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-soundblaster_hu_c35f226a781a2d06.webp 690w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/tetris-os/tetris-os-soundblaster.png&#34; width=&#34;690&#34; height=&#34;347&#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>ggirl - R言語で描いたグラフを葉書に印刷発送してくれるライブラリ/サービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/</link>
				<pubDate>Wed, 14 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/jnolis/ggirl&#34;&gt;jnolis/ggirl&lt;/a&gt; は、ggplot2 で作成したグラフをwebサービス経由でポストカードに印刷し、そこから発送までしてくれるというツール・サービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-code-sample.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-code-sample_hu_37d92dbcc397100e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-code-sample_hu_547571398b57e516.webp 533w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-code-sample.png&#34; width=&#34;533&#34; height=&#34;249&#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;R言語で ggplot2 オブジェクトを作成したら、ggirl ライブラリに送り先の住所やメッセージ情報をセットして呼び出します。すると、確認用のwebページがブラウザで開かれます。(&lt;a href=&#34;https://jnolis.com/blog/introducing_ggirl/&#34;&gt;解説&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;# 日本の住所を入れようとしたら、米国以外の住所は現在未実装、と出てきました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-order-page-example.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-order-page-example_hu_868455207a9312a3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-order-page-example_hu_8a7bccd0ab554059.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-order-page-example_hu_95b3b05bfc64082b.webp 971w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/ggirl-sends-your-ggplot2-chart-postcard/ggirl-order-page-example.png&#34; width=&#34;971&#34; height=&#34;696&#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;このページの次は Stripe を使ったクレジットカードの支払い画面となり、$2.5 を支払えば、1,2週間でこのグラフのポストカードが届くそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.shinyapps.io/&#34;&gt;shinyapps.io&lt;/a&gt; という、RStudio の開発元が運営している R言語コードのホスティングサービスがあるようで、ggirl の作者自身によるホスティングはここに載せているようですね。&lt;/p&gt;&#xA;&lt;p&gt;「Rでいいグラフが描けたので誰かに郵便で送りたい」という時(どんな時だ)に便利なライブラリではないでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>Eyecam - 擬人化webカメラは見ている</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/</link>
				<pubDate>Fri, 09 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/</guid>
				<description>&lt;p&gt;これはキモい&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam-tracking-face.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam-tracking-face_hu_3167c57aef953874.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam-tracking-face_hu_a929c210536d6fd5.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam-tracking-face_hu_3ae0edb3aad65c56.webp 1920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam-tracking-face.jpg&#34; width=&#34;1920&#34; height=&#34;1280&#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;批評的(critical)デザインプロトタイプとして作成された &lt;a href=&#34;https://hci.cs.uni-saarland.de/projects/eyecam/&#34;&gt;Eyecam&lt;/a&gt; は、センサー機器のありうる未来を探求するという目的で作られた自作デバイスだそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam_3_zoom.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam_3_zoom_hu_9bbafe85bc9d25f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam_3_zoom_hu_b1711590c3049b42.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam_3_zoom_hu_6fb17241254a0af9.webp 1920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/04/eyecam-is-watching-you/eyecam_3_zoom.jpg&#34; width=&#34;1920&#34; height=&#34;1080&#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;Eyecam は人間の目の形を模しており、見たり、まばたきしたり、周囲を見回したり、あなたのことを監視したりすることができます。&lt;a href=&#34;https://www.youtube.com/watch?v=JMxr8Nq-w_w&#34;&gt;動画&lt;/a&gt;で動いてるところも見られますよ。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/JMxr8Nq-w_w?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;動画の後半にあるように、カメラを通してみている人の目の動きを真似させることもできます。&lt;/p&gt;&#xA;&lt;p&gt;Arduino Nano で制御された6軸のモーターが眼球や眉毛を動かし、Raspberry Pi Zero 経由で普通のwebcam のようにPCに接続できます。&lt;a href=&#34;https://github.com/marcteys/eyecam&#34;&gt;ソフトウェアも GitHub で公開&lt;/a&gt;されており、やる気があればあなたのオリジナル Eyecam も作れますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://localhost:8099/2016/06/how-facebook-ceo-protects-his-privacy/&#34;&gt;フェイスブックCEOマーク・ザッカーバーグ氏がノートパソコンのカメラを封印していた&lt;/a&gt;ように、パソコンやスマートフォンについているカメラはちょっとしたセキュリティの不備でインターネットに対して自分の目の前の世界を映し出してしまう恐ろしいデバイスでもあります。&lt;/p&gt;&#xA;&lt;p&gt;カメラ本体もますます小型化し、どこにカメラがあるのか一見してわからないことも増えています。Eyecam は、そんなカメラが身の回りに存在すること、カメラに移したものを遠くのどこかの人間が見ているかもしれないこと、を思い出させようとしますね。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.theverge.com/tldr/2021/4/8/22374375/flesh-eyeball-webcam-surveillance&#34;&gt;The Verge&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Oh My Git! - git の使い方を学べるゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/</link>
				<pubDate>Wed, 24 Feb 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://ohmygit.org/&#34;&gt;Oh My Git!&lt;/a&gt; は、バージョン管理ツール git の使い方を学ぶためのゲームです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://ohmygit.org/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git_hu_4257690d981cc96d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git_hu_9d48ab1ee8d04259.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git_hu_292b1f274d7829b0.webp 2001w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git.png&#34; width=&#34;2001&#34; height=&#34;1587&#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;中央にgitツリーのグラフが表示され、手元にはgitコマンドを表すカードが配られます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-git-init.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-git-init_hu_45e59929208fd467.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-git-init_hu_2d823c63dd18f47a.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-git-init_hu_83feb14a0bd1c01d.webp 981w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-git-init.png&#34; width=&#34;981&#34; height=&#34;467&#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://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-first-commit.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-first-commit_hu_bf47d770b505185e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-first-commit_hu_a5f24dd075e8b334.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-first-commit_hu_5acf103184e6632a.webp 1389w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-first-commit.png&#34; width=&#34;1389&#34; height=&#34;880&#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;commit を指定し、そこにカードを捨てることでカード上のコマンドを適用。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-merge.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-merge_hu_1cb9014f99347b4c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-merge_hu_d5a63107b355465e.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-merge_hu_7fcf74563d1279d7.webp 1072w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-merge.png&#34; width=&#34;1072&#34; height=&#34;814&#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;levels にあるステージ一覧から、好きな項目について遊ぶことが可能です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-stages-list.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-stages-list_hu_117d36c5c1ccb6c5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-stages-list_hu_f8482b0929213439.webp 606w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/02/oh-my-git-learning-game/oh-my-git-stages-list.png&#34; width=&#34;606&#34; height=&#34;756&#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://github.com/git-learning-game/oh-my-git&#34;&gt;ソースコードは GitHub で公開&lt;/a&gt;されていて、バイナリ版も &lt;a href=&#34;https://blinry.itch.io/oh-my-git&#34;&gt;Windows, MacOS, Linux 向けに提供&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;!-- Legacy embedded HTML preserved:&#xA;&lt;iframe src=&#34;https://itch.io/embed/808810&#34; height=&#34;167&#34; width=&#34;552&#34; frameborder=&#34;0&#34;&gt;&lt;a href=&#34;https://blinry.itch.io/oh-my-git&#34;&gt;Oh My Git! by blinry, bleeptrack&lt;/a&gt;&lt;/iframe&gt;&#xA;--&gt;&#xA;&lt;p&gt;テキストファイルで新たなlevelを自作することも可能で、必要な学習項目が無ければ追加することもできるようです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Minecraft HDL - Verilog-HDLからマインクラフト内に論理回路を作るツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/11/minecraft-red-stone-circuit-from-verilog-hdl/</link>
				<pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/11/minecraft-red-stone-circuit-from-verilog-hdl/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/itsFrank/MinecraftHDL&#34;&gt;MinecraftHDL&lt;/a&gt; は、カナダ・マギル大の学生3人による卒業論文で制作された、ハードウェア記述言語で定義した論理回路をマインクラフト内のレッドストーンを使った「動く」回路に変換するツールセット(digital synthesis flow)です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://w.atwiki.jp/minecraft/pages/1037.html&#34;&gt;レッドストーン&lt;/a&gt;は、マインクラフト内で電流を通す電線のように使えるアイテム群のことで、ブロックの組み合わせで電子回路のような論理回路を作ることができます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/itsFrank/MinecraftHDL/blob/master/markdown/SAMPLES.md&#34;&gt;サンプル&lt;/a&gt;から、以下のVerilog HDLの設計コード&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;  module sevenseg (&#xA;      input I1, I2,&#xA;      output S1, S2, S3, S4, S5, S6, S7&#xA;  );&#xA;  &#xA;  assign S1 = ~I2 | I1;&#xA;  assign S2 = 1;&#xA;  assign S3 = ~I1 | I2;&#xA;  assign S4 = ~I2 | I1;&#xA;  assign S5 = ~I2;&#xA;  assign S6 = ~I1 &amp;amp; ~I2;&#xA;  assign S7 = I1;&#xA;  &#xA;  endmodule&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;が、こんなレッドストーン回路に変換されるそう。(右側の巨大な7セグメントディスプレイは、出力を見やすく表示するために手動で作成されたものです。)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/itsFrank/MinecraftHDL/blob/master/markdown/SAMPLES.md&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/minecraft-red-stone-circuit-from-verilog-hdl/2bit_7seg_hu_26a21d0fa2919519.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/11/minecraft-red-stone-circuit-from-verilog-hdl/2bit_7seg_hu_6d54c63657e3b67a.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/11/minecraft-red-stone-circuit-from-verilog-hdl/2bit_7seg_hu_839a845ca25f0405.webp 1684w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/minecraft-red-stone-circuit-from-verilog-hdl/2bit_7seg.png&#34; width=&#34;1684&#34; height=&#34;576&#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;上記のコードは、2つの入力ビットに対し、入力に応じた7個の出力ビットを出すもので、要は2bitsの値に応じてデジタル数字に必要な7か所の線をオンにするかオフにするかを演算させるものです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>SkyAR - 動画の青空を差し替えられるツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/11/skyar-replaces-sky-in-your-video/</link>
				<pubDate>Fri, 20 Nov 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/11/skyar-replaces-sky-in-your-video/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/jiupinjia/SkyAR&#34;&gt;SkyAR&lt;/a&gt; は、動画の青空部分を別の画像や動画に差し替えることができるPython製のツール。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/skyar-replaces-sky-in-your-video/demo-canyon-district9ship-cat_00_00_00-00_00_01.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/skyar-replaces-sky-in-your-video/demo-canyon-district9ship-cat_00_00_00-00_00_01.gif&#34; width=&#34;1488&#34; height=&#34;360&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Photoshopの機能で静止画の空を置換する機能というのはあるそうですが、それを動画の各コマに対して行って元のようにつなげあわせてくれるツール、ということですね。&lt;/p&gt;&#xA;&lt;p&gt;青空のある動画を撮ってきて、自分でも変換してみました。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/RrSEepGbPS0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;親方! 空にお城が!&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/GECslHaS6jc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;サイトのサンプル動画では、動きのある動画でうまくいってるものも多いのですが、ちょっとカクカクしてますね。僕の動画がスムーズに視線移動してないからだめなのかな。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/7vARHI2mdC4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;昨日の日本橋上空&lt;/p&gt;</description>
			</item>
			<item>
				<title>GitHub Pages で static な短縮URLサイト作成</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/11/gh-pages-url-shortener/</link>
				<pubDate>Tue, 17 Nov 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/11/gh-pages-url-shortener/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/nelsontky/gh-pages-url-shortener&#34;&gt;nelsontky/gh-pages-url-shortener&lt;/a&gt; は、GitHub の静的ファイル公開機能 GitHub Pages を使った、短縮URLホスティングです。&lt;/p&gt;&#xA;&lt;p&gt;clone して自分でもホストしてみました。s.akimoto.jp の DNS が GitHub Pages を指すように設定します。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://s.akimoto.jp/&#34;&gt;https://s.akimoto.jp/&lt;/a&gt; (説明用の index.html が開きます)&lt;/p&gt;&#xA;&lt;p&gt;そして、GitHub issues に&lt;a href=&#34;https://github.com/akky/gh-pages-url-shortener/issues/1&#34;&gt;タイトルがURLになる issue を投げる&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/gh-pages-url-shortener/github-pages-url-shortener-sees-issue.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/gh-pages-url-shortener/github-pages-url-shortener-sees-issue_hu_7ee721de3e0955eb.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/11/gh-pages-url-shortener/github-pages-url-shortener-sees-issue_hu_244ae7069bfecec.webp 710w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/11/gh-pages-url-shortener/github-pages-url-shortener-sees-issue.png&#34; width=&#34;710&#34; height=&#34;408&#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;と、 issue 番号⇒URL の転送が実施されます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://s.akimoto.jp/1&#34;&gt;https://s.akimoto.jp/1&lt;/a&gt; ( issue のタイトルに書いた別のアドレスへ転送されます)&lt;/p&gt;&#xA;&lt;p&gt;その&lt;a href=&#34;https://github.com/nelsontky/gh-pages-url-shortener/issues/5#issuecomment-728040879&#34;&gt;動作原理&lt;/a&gt;は&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;CNAME で gh-pages ブランチを指させる&lt;/li&gt;&#xA;&lt;li&gt;(短縮URLのパス)すべては 404.html に渡される&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/akky/gh-pages-url-shortener/issues/1&#34;&gt;GitHub issues から JSON API&lt;/a&gt; でURL転換情報を JavaScript が取得し、(それに従って)転送&lt;/li&gt;&#xA;&lt;li&gt;役に立つ?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;ということ。なるほど。GitHub issues を、転送用の lookup table として使っているわけですね。この後転送したい短縮URLを増やすのは、issue を発行すればよいということです。更新や削除も同様。面白い事考えるなあ。&lt;/p&gt;&#xA;&lt;p&gt;# &lt;a href=&#34;https://developer.github.com/v3/#rate-limiting&#34;&gt;GitHub API の公開アクセスには60回/時間の制限が掛かっている&lt;/a&gt;ので、実用的には使えないでしょう。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=25110879&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>「イスラエルからのプルリクエストは受けられません」- オープンソース貢献と国際紛争</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/09/iranian-reject-pull-request-because-of-israel/</link>
				<pubDate>Thu, 10 Sep 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/09/iranian-reject-pull-request-because-of-israel/</guid>
				<description>&lt;p&gt;PHPの人気フレームワーク Laravel にダウンロードリンク生成機能を追加するオープンソースのパッケージで、機能追加の提案がイラン人の作者によって&lt;a href=&#34;https://github.com/armancodes/laravel-download-link/pull/9&#34;&gt;却下される&lt;/a&gt;という事件が発生しました。却下の理由はイランの法律だそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/armancodes/laravel-download-link&#34;&gt;armancodes/laravel-download-link&lt;/a&gt; は、Laravel 上でファイルダウンロードのリンクを生成するパッケージ。GitHub で管理されるオープンソースのライブラリで、ダウンロードリンクの時間による失効や IPアドレスによるアクセス制限などの機能を持っています。作者は @armancodes で、プロフィールではテヘラン在住となっています。&lt;/p&gt;&#xA;&lt;p&gt;これに対し、ユーザー @Yiddishe-Kop が、特定のユーザーにだけダウンロードを有効化させることができる改造を提案しました。当初は受け入れられそうなコメントの流れでしたが、作者による以下のようなコメントで、PRは却下されてしまいました。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;すばらしいアイデアをありがとう。&lt;/p&gt;&#xA;&lt;p&gt;たいへん申し訳ないのですが、このPRをマージすることはできません。私の国の法律で、イスラエルからの人やイスラエル政府と関係を持ってはいけないという法律があります。&lt;/p&gt;&#xA;&lt;p&gt;理解してもらえることを願います。あらためてあなたの時間に感謝します。&lt;/p&gt;&#xA;&lt;p&gt;Hi, Thanks for your great idea.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m SO SORRY to tell you that I cannot merge this PR. There is a law in my country that we MUST NOT have any relationship with people from Israel or the Israel government.&lt;/p&gt;&#xA;&lt;p&gt;I hope you understand this, and again thanks for your time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;他ユーザーも交えた議論が少し続いた後、元Google/Facebookのエンジニアでイラン系カナダ人で、&lt;a href=&#34;https://medium.com/@behdadesfahbod/if-you-read-one-thing-from-me-please-be-this-2262ec7b8af2&#34;&gt;今年イランへ入国した際に逮捕投獄され、アメリカへ戻ったらイランのスパイになるよう脅されて解放された、と発表&lt;/a&gt;した Behdad Esfahbod氏 (@behdad)が「ただマージすればいい(Just merge it)」とコメントした後で、プルリクエスト自体が作者によってクローズされてしまいました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>機械学習で最密充填ピーナッツバナナサンドイッチづくり</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/</link>
				<pubDate>Fri, 28 Aug 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/</guid>
				<description>&lt;p&gt;バナナをはさんでピーナッツバターを塗ったサンドイッチを作る際に、いかにバナナをぎっしりと敷き詰めることができるか、というのを機械学習によって示すツール &lt;a href=&#34;https://github.com/EthanRosenthal/nannernest&#34;&gt;EthanRosenthal/nannernest&lt;/a&gt; が公開されています。&lt;/p&gt;&#xA;&lt;p&gt;http://localhost:8099/wp-content/uploads/2020/08/banana_small.mp4&lt;/p&gt;&#xA;&lt;p&gt;家にバナナが無かったので買ってきました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_from_equador-scaled.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_from_equador-scaled_hu_54a0d2beafeaf33e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_from_equador-scaled_hu_85cd85f23ad07fc6.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_from_equador-scaled_hu_9fa334ac8abd9d6c.webp 1920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_from_equador-scaled.jpg&#34; width=&#34;1920&#34; height=&#34;2560&#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://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana-scaled.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana-scaled_hu_a6f1cb427434f361.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana-scaled_hu_467092dae93b68a1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana-scaled_hu_a78e66304ef44f92.webp 2560w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana-scaled.jpg&#34; width=&#34;2560&#34; height=&#34;1920&#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;nannernest コマンドにこの画像を与えると、デフォルトの動作ではパンに敷き詰めるだけのバナナが無く、隙間が多数できてしまいました。日本の食パンが大きいのかな? もっと薄くスライスするよう調整した結果がこちら&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_processed-scaled.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_processed-scaled_hu_ee7cabeb7191eb3e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_processed-scaled_hu_92ba126557c30829.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_processed-scaled_hu_96fc966f5f1cdef0.webp 2560w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_processed-scaled.jpg&#34; width=&#34;2560&#34; height=&#34;1920&#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://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_cut-scaled.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_cut-scaled_hu_7436617e9eafcc90.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_cut-scaled_hu_3c471f93018d0277.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_cut-scaled_hu_455e2bbb910e4409.webp 2560w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_cut-scaled.jpg&#34; width=&#34;2560&#34; height=&#34;1920&#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;29個の輪切りにするのは結構たいへん。なんとか切り終えたので、画像の指示する番号に従って、スライスを配置していきます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_slice_no_16-scaled.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_slice_no_16-scaled_hu_d574ec469aa12afb.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_slice_no_16-scaled_hu_f367f36561d2d036.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_slice_no_16-scaled_hu_5ed16c64b0cd0a6e.webp 1920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/closest-packing-banana-sandwitch/my_banana_slice_no_16-scaled.jpg&#34; width=&#34;1920&#34; height=&#34;2560&#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;「なんだか少し窮屈だな」と思いながらも進めていくと、16番を置こうとした際についに限界が。&lt;/p&gt;&#xA;&lt;p&gt;日本で売っているエクアドル産のバナナの形状が、ツール作者のバナナとは異なるのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;コマンドラインオプションで、バナナを何個の輪切りにするか(デフォルトは22個。バナナ層の厚みが変わってきます)、バナナの皮の厚さ、バナナの断面の長軸短軸の比率、など細かな設定もできます。&lt;/p&gt;&#xA;&lt;p&gt;調整次第では、バナナの詰まったサンドイッチを作ることができるのではないでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.ethanrosenthal.com/2020/08/25/optimal-peanut-butter-and-banana-sandwiches/&#34;&gt;Ethan Rosenthal&lt;/a&gt; via &lt;a href=&#34;https://geekologie.com/2020/08/creating-the-optimal-peanut-butter-and-b.php&#34;&gt;Geekologie&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>text-to-handwriting 手書き風ノートを生成するツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/</link>
				<pubDate>Wed, 19 Aug 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/saurabhdaware/text-to-handwriting&#34;&gt;saurabhdaware/text-to-handwriting&lt;/a&gt; は、手書き風フォントを使って手書きされたかのようなノートの画像を作れるオープンソースのツールです。&lt;/p&gt;&#xA;&lt;p&gt;ローカルでサーバを立て、&lt;a href=&#34;http://www8.plala.or.jp/p_dolce/site3-7.html&#34;&gt;日本語の手書きフォント&lt;/a&gt;をアップロードすれば日本語の手書き風ノートを生成することができました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-with-japanese-font.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-with-japanese-font_hu_e372d3ee4391bd56.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-with-japanese-font_hu_ab84abcb6f015107.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-with-japanese-font_hu_eb658d0a9508ebeb.webp 1076w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-with-japanese-font.png&#34; width=&#34;1076&#34; height=&#34;886&#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;ノートを撮影したように影をつけたり、スキャナで取り込んだ風に画像を加工したり、それをまとめてPDFにもしてくれます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image_hu_4bb5c1718d7a3831.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image_hu_98cbed128fb4935a.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image_hu_8cb7453d5fd83203.webp 800w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image.jpg&#34; width=&#34;800&#34; height=&#34;1128&#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://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image-flat-low.jpg&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image-flat-low_hu_7d72eff47358b844.webp 320w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/08/text-to-handwriting-generates-handwriting-notes/text-to-handwriting-japanese-generated-image-flat-low.jpg&#34; width=&#34;320&#34; height=&#34;451&#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;</description>
			</item>
			<item>
				<title>Usbkill - USB端子の抜き差しでPCをシャットダウンさせるツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/08/usbkill-shutdown-pc-when-usb-changed/</link>
				<pubDate>Fri, 07 Aug 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/08/usbkill-shutdown-pc-when-usb-changed/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/hephaest0s/usbkill&#34;&gt;hephaest0s/usbkill&lt;/a&gt; 、作者によれば「対フォレンジックkillスイッチ」。このツールは、USBソケットへのデバイスの抜き差しを検知したらシャットダウンを行う、という Python 製のスクリプトです。&lt;/p&gt;&#xA;&lt;p&gt;利用用途の一番目に書いてあるのが「警察や賊が部屋に踏み込んで来た際に」というのもすごいですが。&lt;/p&gt;&#xA;&lt;p&gt;本当かわかりませんが「警察はPCを押収した際によくカーソルを動かし続けるだけの疑似マウスデバイスを挿す」そうで、操作をし続けることでPCがスクリーンセーバーに切り替わらない=パスワードを必要なロック状態にしない、ようにするそうです。&lt;/p&gt;&#xA;&lt;p&gt;しかし、この Usbkill を動かしていれば、そういった調査ツールを挿された時点で自動的にPCはシャットダウンされてしまう、というわけ。ディスクの暗号化を行っていれば、シャットダウンされたPCから強制的にデータを抜き出すこともできなくなるので、PCの内部データが無理やり引き出される心配がない、と。&lt;/p&gt;&#xA;&lt;p&gt;さらなる生活の知恵として、手首に紐を巻いて、紐とつないだデバイスをUSBソケットに挿す、というのも紹介されています。PCの前から強制的に引きはがされたり、PCだけ掴んで持ち去られようとした時に、紐によってUSBデバイスが抜けるため、このスクリプトが働いて自動的にシャットダウンする、というわけですね。&lt;/p&gt;&#xA;&lt;p&gt;USBデバイスのIDをあらかじめ登録しておくことで、既知のデバイスについては抜き差ししても発動しないようにできます。&lt;/p&gt;&#xA;&lt;p&gt;正義の警察に踏み込まれる犯罪者にせよ、独裁国家の警察に踏み込まれる自由主義者にせよ、こんなことに気を配ってPCやネットを使うような生活はしたくないものだと思います。&lt;/p&gt;&#xA;&lt;p&gt;ツールはLinux/*BSD/MacOS に対応しています。PCの内容を絶対に他人から隠したいと言う人は導入してみてはどうでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=24069459&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tafels.app - 子供の算数計算を鍛えるブラウザゲーム &#43; ソースコード</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/</link>
				<pubDate>Wed, 01 Jul 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://tafels.app/&#34;&gt;Tafels.app&lt;/a&gt; は、ブラウザ上で動く計算練習のアプリです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels.app-multiplications.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels.app-multiplications_hu_d727c97afc99c934.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels.app-multiplications_hu_a65a4620a71aab5a.webp 497w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels.app-multiplications.png&#34; width=&#34;497&#34; height=&#34;614&#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://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels-app-multiply-4.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels-app-multiply-4_hu_4da55920371c763a.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels-app-multiply-4_hu_9b39c7035ab8e0d4.webp 510w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/07/tafels-app-kids-math-game-on-browser/tafels-app-multiply-4.png&#34; width=&#34;510&#34; height=&#34;612&#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;表示された計算式の答えを、9個の候補の中から時間内に選ぶというだけのゲーム。一定以上正解すると次のレベルがアンロックされて遊べるようになります。&lt;/p&gt;&#xA;&lt;p&gt;答えの数字を入力するものに比べると本当の計算力を測る力は弱いかもしれませんが、スマートフォン上のブラウザで気軽に遊べるのはこちらの選択式のインタフェースかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/vnglst/tafels.app&#34;&gt;ソースコード&lt;/a&gt;が公開されています。JavaScript をコンパイルして実行コードに自身は含まないという特徴の&lt;a href=&#34;https://svelte.dev/&#34;&gt;Svelte&lt;/a&gt;で作られたフレームワーク&lt;a href=&#34;https://sapper.svelte.dev/&#34;&gt;Sapper&lt;/a&gt;を使って作られています。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=23672149&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>City Generator - 架空のアメリカの都市の地図や3Dモデルを自動生成</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/</link>
				<pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://probabletrain.itch.io/city-generator&#34;&gt;City Generator&lt;/a&gt; は、アメリカの大都市の地図を自動生成してくれるwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;サイトを開くと勝手に自動生成が始まり、実際にありそうな都市の地図が少しずつできあがっていきます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-sample.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-sample_hu_80c4770e222e2c5e.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-sample_hu_f872ecb534f84caf.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-sample_hu_f5d564ef729fa381.webp 1408w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-sample.png&#34; width=&#34;1408&#34; height=&#34;814&#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;デフォルトはGoogleマップ風ですが、右上のメニューから Apple 風や手書き風など、さまざまなスタイルへの変更もできます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-map-styles.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-map-styles.gif&#34; width=&#34;1440&#34; height=&#34;815&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;デフォルトの「大公園2個、小公園なし」は少し寂しいと思ったので、公園を多めに作ってみたのが冒頭の地図です。他にもいろいろオプションがあるよう。&lt;/p&gt;&#xA;&lt;p&gt;stl 形式のモデルをダウンロードすることもでき、これを使って都市を3Dで描くことも(&lt;a href=&#34;https://maps.probabletrain.com/#/stl&#34;&gt;知識と作業が必要そうですが&lt;/a&gt;)できるということ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-3d-sample.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-3d-sample_hu_fcdffcd2acc29629.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-3d-sample_hu_c99eb6f629bdd25e.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-3d-sample_hu_f4a197e1e817ebaa.webp 1920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/city-map-generator/city-generator-3d-sample.png&#34; width=&#34;1920&#34; height=&#34;1080&#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;Typescript で書かれた&lt;a href=&#34;https://github.com/probabletrain/mapgenerator&#34;&gt;ソースコードはGitHub で公開されて&lt;/a&gt;いて、自分で試すこともできます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Acrons 略語一覧を管理検索できるwebサービス/ソースコード</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/05/acrons-let-you-search-acronyms/</link>
				<pubDate>Sun, 17 May 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/05/acrons-let-you-search-acronyms/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/mkfeuhrer/acrons&#34;&gt;mkfeuhrer/acrons&lt;/a&gt; は、英語の略語(アクロニム)を管理検索できるwebサービスです。&lt;a href=&#34;https://mohitkhare.me/acrons/#/&#34;&gt;動いているものはこちら&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/acrons-let-you-search-acronyms/acrons.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/acrons-let-you-search-acronyms/acrons_hu_41ada9ebf83db200.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/05/acrons-let-you-search-acronyms/acrons_hu_8343e6e9bd249d66.webp 536w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/05/acrons-let-you-search-acronyms/acrons.png&#34; width=&#34;536&#34; height=&#34;589&#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;Vue.js で作られた一枚ページのサービスは、検索フォーム上で頭文字を入れると、その頭文字を含む略語と説明を表示してくれます。&lt;/p&gt;&#xA;&lt;p&gt;現在リストに入っている略語の数はIT・ネット系中心の用語で、数はあまり多くないですね。ソースコードがGitHubで公開されており、略語の定義ファイル自体にプルリクエストを送ることでデータを更新していくということのようです。&lt;/p&gt;&#xA;&lt;p&gt;すべての略語を入れた辞書、は実際にはあまり使えないものになると思うので、このプロジェクトから用途ジャンルごとに別々のページを立ち上げるぐらいがいいのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>iHateRegex - 正規表現サンプル集&#43;構文図</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2020/01/ihateregex-regex-cheatsheet/</link>
				<pubDate>Fri, 31 Jan 2020 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2020/01/ihateregex-regex-cheatsheet/</guid>
				<description>&lt;p&gt;iHateRegex は、正規表現のチートシートサイトです。&lt;/p&gt;&#xA;&lt;p&gt;URLや日付、メールなどよく使われる正規表現はトップページに並べられていて、ワンクリックで&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;正規表現&lt;/li&gt;&#xA;&lt;li&gt;サンプル入力とマッチした箇所&lt;/li&gt;&#xA;&lt;li&gt;構文図&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;を見ることができます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://ihateregex.io/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2020/01/ihateregex-regex-cheatsheet/ihateregex-screenshot_hu_7bcc1e37e0689364.webp 480w, https://labs.cybozu.co.jp/blog/akky/2020/01/ihateregex-regex-cheatsheet/ihateregex-screenshot_hu_52d5f959753f5a5d.webp 768w, https://labs.cybozu.co.jp/blog/akky/2020/01/ihateregex-regex-cheatsheet/ihateregex-screenshot_hu_3476a1b90a7e6f53.webp 1085w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2020/01/ihateregex-regex-cheatsheet/ihateregex-screenshot.png&#34; width=&#34;1085&#34; height=&#34;747&#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;/p&gt;&#xA;&lt;p&gt;email(シンプルと複雑と2バージョンあります)のように正しさを追求しだすとたいへんな作業になるもの、ssn(アメリカのマイナンバー的な番号)やphone など地域が違えば正規表現も異なるだろうもの、などいろいろと突っ込みどころもありたいへんそうなサービスですが、世の中によくある形式に対する正規表現は個々人がその場で考えるよりも広く考え抜かれたものを採用したほうが良いと思いますし、こういうサービスが定番として使われるといい影響があるかなと思います。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/geongeorge/i-hate-regex&#34;&gt;サイトのソースも公開&lt;/a&gt;されていて、新しいtipを定義して追加依頼を掛けることもできます。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=22200584&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>AdBlock Radio - 機械学習&#43;ユーザー投稿でラジオ番組の広告やトークを飛ばす</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/10/adblock-radio-skips-contents/</link>
				<pubDate>Fri, 04 Oct 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/10/adblock-radio-skips-contents/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.adblockradio.com/en/&#34;&gt;AdBlock Radio&lt;/a&gt; は、名前の通り、ラジオ広告をブロックするためのサービス/ツールです。音声データから、ラジオ番組のトーク、音楽、そして広告を判別させ、広告やトークの部分を除外することができます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;広告抜きpodcastラジオ再生ツール-buffer&#34;&gt;広告抜きpodcastラジオ再生ツール buffer&lt;/h3&gt;&#xA;&lt;p&gt;AdBlock Radio を使った&lt;a href=&#34;https://github.com/adblockradio/buffer&#34;&gt;webアプリ buffer&lt;/a&gt; の Docker 版を手元で&lt;a href=&#34;https://gist.github.com/akky/fd5b4cd1c933f7127fcf0a648b2d7ae3&#34;&gt;動かして&lt;/a&gt;みました。起動して localhost をブラウザで開くと、カタログから podcast ラジオ局を最大4局まで選ぶ画面になります。&lt;/p&gt;&#xA;&lt;p&gt;4局について、「音楽を飛ばす」「トークを飛ばす」のチェックを入れて開始ボタンを押すと、サーバアプリケーションが podcast データをバッファしていきます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/10/adblock-radio-skips-contents/adblock-radio-runs-locally.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/10/adblock-radio-skips-contents/adblock-radio-runs-locally_hu_abce345c46e13aed.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/10/adblock-radio-skips-contents/adblock-radio-runs-locally_hu_cde0c00515c6d5d1.webp 658w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/10/adblock-radio-skips-contents/adblock-radio-runs-locally.png&#34; width=&#34;658&#34; height=&#34;776&#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;とは言っても判定も完全ではなく、ところどころに灰色の「何かわからなかった」部分がまだらに入ったりもします。CM の一部が音楽として再生されたり、ラップなど言葉が多い音楽ではトーク(緑)や不明(灰)の細かい帯のようになったりしました。&lt;/p&gt;&#xA;&lt;p&gt;最初、なんで4局選ばせるのかな、と思ったのですが、CMやトーク部分を飛ばしてずっと聴いていると、その局の再生が最新に追いついてしまうから、次の局、次の局へと切り替わっていく作りなんですね。4局分のデータを使って、音楽だけを途切れずに流し続ける仕組みということになります。&lt;/p&gt;&#xA;&lt;p&gt;ラジオ局の情報は&lt;a href=&#34;http://www.radio-browser.info/gui/#!/&#34;&gt;Community Radio Station Board&lt;/a&gt;から取得したものをベースにしているようです。このサイトにはコミュニティFM局を中心に日本のラジオ局も多数載っていますが、Adblock Radio のリストには日本の局は含まれていないようです。&lt;/p&gt;&#xA;&lt;p&gt;トークやCMの判定はスペイン語など英語以外のラジオ局でもそれなりに動いているのを確認したので、おそらく登録して試せばそこそこ動くのでしょうね。&lt;/p&gt;&#xA;&lt;h3 id=&#34;影響&#34;&gt;影響&lt;/h3&gt;&#xA;&lt;p&gt;ラジオ局は広告料もテレビやネットに比べて安いそうですし、こんなadblockツールを使う人が増えたら広告料への影響が大きいでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;個人的には、ラジオにCMが入るのは昔からなので慣れているというか、ウェブ広告やYouTube の広告などに比べるとそれほど気になりません。&lt;/p&gt;&#xA;&lt;p&gt;ウェブ広告はポップアップや全画面広告、動画広告などいろいろなヤンチャが過ぎたために、広告ブロックツールを使う人を増やしてしまった歴史がありますが、ラジオ局が無くなってしまうような影響が出るのであれば、この Adblock Radio のようなツールは少しやりすぎなのではないかなあ、とも思います。&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=21057684&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>SocialSharePrivacy - ソーシャルメディアの埋め込みボタンに訪問を追跡させないライブラリ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/09/socialshareprivacy-keep-social-button-untracked/</link>
				<pubDate>Fri, 06 Sep 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/09/socialshareprivacy-keep-social-button-untracked/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://panzi.github.io/SocialSharePrivacy/&#34;&gt;SocialSharePrivacy&lt;/a&gt; は、ウェブサイトの提供者が、利用者に対してプライバシーが保たれるソーシャルメディアボタンを提供するためのライブラリです。&lt;/p&gt;&#xA;&lt;p&gt;デモページを動かしてみました。スライダーでボタンを有効にしない限り、フェイスブックやツイッターのサーバに情報は送られません。&lt;/p&gt;&#xA;&lt;p&gt;まずボタンを有効にするアクションを起こすと、初めてメディアが提供するボタンが有効となり、この時点でそのページに訪問したことは各サービスにも伝わります。そして、有効になったボタンをクリックすると、「イイネ」等をすることができます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/panzi/SocialSharePrivacy&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/09/socialshareprivacy-keep-social-button-untracked/social-share-privacy-demo_hu_98664ebe39de0e7f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/09/socialshareprivacy-keep-social-button-untracked/social-share-privacy-demo_hu_378c6fbcd94c7332.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/09/socialshareprivacy-keep-social-button-untracked/social-share-privacy-demo_hu_f3e87c2814e67315.webp 822w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/09/socialshareprivacy-keep-social-button-untracked/social-share-privacy-demo.png&#34; width=&#34;822&#34; height=&#34;184&#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;2回クリックをしなければならなくなった代わりに、そのページに訪問したことは各ソーシャルメディアサービスには知られずに済む、ということになります。&lt;/p&gt;&#xA;&lt;p&gt;サイト訪問をしていることをソーシャルメディアから常時されるのは困る、しかし、イイネ等をしたい時にはできるようにしてほしい、という多少込み入った要件のサイトがあれば、このライブラリが一つの解決法となるでしょう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/panzi/SocialSharePrivacy&#34;&gt;SocialSharePrivacy のコードはすべてGitHub で公開&lt;/a&gt;されています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>手書き風グラフを描けるライブラリ xkcd.chart</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/08/handwriting-flavour-xkcd-chart/</link>
				<pubDate>Mon, 19 Aug 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/08/handwriting-flavour-xkcd-chart/</guid>
				<description>&lt;p&gt;英語圏でエンジニアに人気の&lt;a href=&#34;https://xkcd.com/&#34;&gt;線画コミックサイト xkcd&lt;/a&gt; には、グラフを使ったジョークネタも頻出します。こんな感じ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://xkcd.com/688/&#34;&gt;&lt;img src=&#34;https://imgs.xkcd.com/comics/self_description.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;xkcd に出てくるようなグラフは、だいたい手書き風のテイストで描かれているのですが、その手書き風グラフを再現できるグラフ描画ライブラリが &lt;a href=&#34;https://timqian.com/chart.xkcd/&#34;&gt;xkcd.chart&lt;/a&gt; です。&lt;/p&gt;&#xA;&lt;script&gt;const svgPie = document.querySelector(&#39;.pie-chart&#39;); new chartXkcd.Pie(svgPie, { title: &#39;「みんな」言ってる&#39;, data: { labels:[ &#39;知り合いの誰か&#39;, &#39;全員&#39;, ], datasets: [{ data: [ 990, 10, ], }] }, })&lt;/script&gt;&#xA;&lt;p&gt;日本語も出ますね。日本語入れると凡例の枠がはみ出てしまうので、ソースの調整が要るかもしれません。xkcd 風のフォントも同梱されていますが、日本語ではデフォルトフォントになるでしょう。&lt;/p&gt;&#xA;&lt;p&gt;円グラフ、折れ線グラフ、棒グラフ を描くことができます。&lt;/p&gt;&#xA;&lt;script&gt;const svg = document.querySelector(&#39;.bar-chart&#39;) // github stars vs patrons new chartXkcd.Bar(svg, { title: &#39;ウィンドウズ&#39;, data: { labels:[&#39;1.0&#39;, &#39;2.0&#39;, &#39;3.0&#39;, &#39;3.1&#39;, &#39;95&#39;, &#39;98&#39;, &#39;2000&#39;, &#39;7&#39;, &#39;8&#39;, &#39;8.1&#39;, &#39;10&#39;], datasets: [{ data: [ 1, 2, 3, 3.1, 95 ,95, 2000, 7, 8, 8.1, 10], }] }, });&lt;/script&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://twitter.com/zzap/status/996905819756212224&#34;&gt;ウィンドウズグラフの元ネタ&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>フリーな Photoshop のライバルツール GIMP の名前の由来。そして何度も出てくる改名提案</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/</link>
				<pubDate>Mon, 08 Jul 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/</guid>
				<description>&lt;p&gt;有名オープンソースツールの名前と政治的正しさに関する揉め事です。&lt;/p&gt;&#xA;&lt;h3 id=&#34;gimp-は悪い言葉か&#34;&gt;&amp;ldquo;gimp&amp;rdquo; は悪い言葉か?&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.gnome.org/GNOME/gimp/issues/3617&#34;&gt;&amp;ldquo;GIMP&amp;quot;という名前をより攻撃的でない(less offensive)名前に変えよう&lt;/a&gt; というチケットが GIMP のGitlab に投げられていました。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;gimp&amp;quot;という単語の意味自体を知らなかったので、まずこの人の説明する悪い意味と言うのを調べてみます。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;gimp&amp;rdquo; には「組み紐」という意味の他に「不自由な足取りの人」「役立たず」といった&lt;a href=&#34;https://eow.alc.co.jp/search?q=gimp&#34;&gt;意味もあるそう&lt;/a&gt;です。なるほど。&lt;a href=&#34;https://www.dictionary.com/browse/gimp&#34;&gt;この意味で使われる時は他者を軽んじたり攻撃したりが多い&lt;/a&gt;、ということ。&lt;/p&gt;&#xA;&lt;p&gt;今回は、改名を支持するコメントに10個以上の「いいね」がついているようですが、このチケットに別の掲示板からリンクが張られていて、その掲示板の読者が集団でやってきて「いいね」を押しているのではないか、という意見も出ています。普段GIMPの開発に関わったりユーザーだったりではない人々に操作されているのでは、ということですね。&lt;/p&gt;&#xA;&lt;p&gt;チケットは短時間で「対処しない」とクローズされていますが、どうも、この改名提案は不定期にGIMPプロジェクトに寄せられ続けている、よくある提案なようです。&lt;/p&gt;&#xA;&lt;h3 id=&#34;gimp-の名前の由来&#34;&gt;GIMP の名前の由来&lt;/h3&gt;&#xA;&lt;p&gt;GIMP の作者、スペンサー・キンボール氏(Spencer Kimball)とピーター・マティス氏(Peter Mattis)の1997年の&lt;a href=&#34;https://www.xach.com/gg/1997/1/profile/1/&#34;&gt;インタビュー記事&lt;/a&gt;で、&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;当時、映画「パルプフィクション」が話題になってて、そこからある一つの単語が思い浮かんだんです&lt;/p&gt;&#xA;&lt;p&gt;At the time, Pulp Fiction was the hot movie and a single word popped into my mind while we were tossing out name ideas.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;と答えています。当該のシーンはこちら。全身黒の拘束具に包まれた男性を「gimp を連れてこい」と箱から出させています。(&lt;a href=&#34;https://www.eiga-square.jp/title/pulp_fiction/scene/9&#34;&gt;シーンの解説&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/gimp-pulp-fiction.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/gimp-pulp-fiction_hu_7ff6e758329951fb.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/gimp-pulp-fiction_hu_1e34d07ea22359c7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/gimp-pulp-fiction_hu_fda5db01019ec690.webp 1083w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/07/gimp-rename-claims/gimp-pulp-fiction.png&#34; width=&#34;1083&#34; height=&#34;463&#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;gimp&amp;rdquo;&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/S8kPqAV_74M?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;スラング情報を集積している Urban Dictionary のサイトによると、こういった奴隷的な扱いを受ける男性のことも gimp と呼び、これが広く知られるようになったのは「パルプ・フィクション」のこのシーンによるものらしいです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>LockScream - MacOS X のロックスクリーンを偽装してパスワードを横取りするツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/06/lockscream-fake-macos-lockscreen/</link>
				<pubDate>Fri, 21 Jun 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/06/lockscream-fake-macos-lockscreen/</guid>
				<description>&lt;p&gt;悪用しか使い道が無いように思えますが、GitHub で公開されてて入手できるツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/BlacksunLabs/LockScream&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/lockscream-fake-macos-lockscreen/lockscream-logo_hu_f98fef268f79021d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/06/lockscream-fake-macos-lockscreen/lockscream-logo_hu_bd27d441225dc92a.webp 512w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/lockscream-fake-macos-lockscreen/lockscream-logo.png&#34; width=&#34;512&#34; height=&#34;512&#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://github.com/BlacksunLabs/LockScream&#34;&gt;LockScream&lt;/a&gt; は、Mac で動かすと本物のスクリーンロックに代わって画面をロックするツールです。&lt;/p&gt;&#xA;&lt;p&gt;起動すると OS に設定した本物の壁紙を表示し、メニューやドックを非表示にし、いろいろなキー入力を無効にします。画面を見ていつものロック画面だと思い込んだユーザーは、ロックを解除しようとパスワードを入れるわけですが、この LockScream がその入力されたユーザー名やパスワードを横取りできてしまえるというわけです。&lt;/p&gt;&#xA;&lt;p&gt;パスワードはこのツールの裏側で本物のOSに問い合わせられるため、ユーザー名・パスワードが合っているかどうかも正しく判定でき、でたらめなパスワードでは(本物と同じように)エラーになります。動作も本物と同じため、パスワードを奪われたこと自体に気づくこともないでしょう。&lt;/p&gt;&#xA;&lt;p&gt;横取りしたパスワードは特定のファイルに XOR + Base64 エンコードされて保存されるので、後でこのファイルを回収すれば、所有者のユーザー名/パスワードが入手できてしまいます。&lt;/p&gt;&#xA;&lt;p&gt;仕込む際と取得したパスワードを回収する際の2回、アンロック状態のMac にアクセスできないといけないので、うかつなユーザー相手でなければそんなに誰でもが引っ掛かるわけではない、かもしれません。&lt;/p&gt;&#xA;&lt;p&gt;攻撃者としては、ウェブからダウンロードさせて仕込むとか、回収したパスワード情報をネット経由でどこかに送信させるとか、複数の手法を組み合わせることで盗むよう全体を設計するのでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;ここまで偽装されると、ロック画面がニセモノだと気づいて回避できるかどうか自信がありません。こういったツールが仕込まれないように、アンロック状態でPCを放置しない、がまず重要かと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenVim - ブラウザで動く Vim 入門</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/06/openvim-teaches-you-vim-on-browser/</link>
				<pubDate>Fri, 21 Jun 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/06/openvim-teaches-you-vim-on-browser/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.openvim.com/&#34;&gt;OpenVim&lt;/a&gt; は、ブラウザ上で動く Vim のインタラクティブなチュートリアルです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.openvim.com/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/openvim-teaches-you-vim-on-browser/openvim_hu_d6d30218e49e7513.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/06/openvim-teaches-you-vim-on-browser/openvim_hu_3609308acc65a6b5.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/06/openvim-teaches-you-vim-on-browser/openvim_hu_63bfea3820fcc456.webp 1378w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/openvim-teaches-you-vim-on-browser/openvim.png&#34; width=&#34;1378&#34; height=&#34;773&#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;20章にわかれたチュートリアルをこなしていくことで、Vim の基本的なコマンドを一通り知ることができます。&lt;/p&gt;&#xA;&lt;p&gt;Unix サーバの管理を初めてまかされた、どうしよう、みたいな人には、コマンド表を見て覚えるよりちょっといいかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/egaga/openvim&#34;&gt;ソースコードも公開されていて&lt;/a&gt;、たくさんのバグ報告や改善案が寄せられているようです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Never-Blink ウェブカメラ対戦型の「まばたき我慢」ゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/06/never-blink-makes-you-a-winner/</link>
				<pubDate>Fri, 14 Jun 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/06/never-blink-makes-you-a-winner/</guid>
				<description>&lt;p&gt;Never-Blink は、まばたきを我慢し合うゲームです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/ByronHsu/Never-Blink&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/never-blink-makes-you-a-winner/never-blink_hu_aa92befb8af13b00.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/06/never-blink-makes-you-a-winner/never-blink_hu_61d35c30265a04c7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/06/never-blink-makes-you-a-winner/never-blink_hu_ed9e94bccd3e03c1.webp 789w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/never-blink-makes-you-a-winner/never-blink.png&#34; width=&#34;789&#34; height=&#34;453&#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;サーバにつながった中からランダムな相手が決まり、その相手とwebカメラがついたブラウザ経由でにらめっこのように向き合います。&lt;/p&gt;&#xA;&lt;p&gt;最初に持っているヒットポイントは、まばたきをするたびに減っていき、ゼロになると負け。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/VCP36k5OqDs?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;類似の先行例として、2017年にBBCが人気ドラマ「ドクター・フー」のプロモーションで短期公開した、&lt;a href=&#34;https://www.bbc.co.uk/taster/pilots/doctor-who-dont-blink-game&#34;&gt;&amp;ldquo;Don&amp;rsquo;t Blink&amp;rdquo;(まばたきするな)&lt;/a&gt;があるそうです。こちらは他人との対戦ではなく、ウェブカメラをみながらどれだけまばたきを我慢できるかというゲームだったよう。&lt;/p&gt;&#xA;&lt;p&gt;ランダムにつながるというあたりは、一時期世界中で話題となった &lt;a href=&#34;https://chatroulette.com/&#34;&gt;Chatroulette&lt;/a&gt; を思い出しますね。単にランダムにつなげるより、そこにゲームが有った方が楽しいという人はいるかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;ソースコードが&lt;a href=&#34;https://github.com/ByronHsu/Never-Blink&#34;&gt;GitHub に公開&lt;/a&gt;されていますが、今のバージョンは処理が重いそうで、どこかのサーバに載せて一般公開はできていないということ。自分でインストールした上で相手を探して遊ぶのはちょと大変かもしれませんね。&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=20171446&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>metro-clojure - gitリポジトリで地下鉄路線図を作るClojure製ツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/06/metro-clojure-generates-metro-graph-on-git-repository/</link>
				<pubDate>Wed, 05 Jun 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/06/metro-clojure-generates-metro-graph-on-git-repository/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/gjhenrique/metro-clojure&#34;&gt;gjhenrique/metro-clojure&lt;/a&gt; は、鉄道路線図をgitのコミット/ブランチログで再現するためのオープンソースツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/akky/tokyo-metro/network&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/metro-clojure-generates-metro-graph-on-git-repository/tokyo-metro-graph-on-girhub-enlarged_hu_5e90c48210963bc6.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/06/metro-clojure-generates-metro-graph-on-git-repository/tokyo-metro-graph-on-girhub-enlarged_hu_7c3bbf868d93a095.webp 590w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/06/metro-clojure-generates-metro-graph-on-git-repository/tokyo-metro-graph-on-girhub-enlarged.png&#34; width=&#34;590&#34; height=&#34;219&#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;路線と路線に所属する駅名を並べた json ファイルが入力となります。サンプルとしてサンパウロとニューヨークのデータがついてきてるので、それを参考にします。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;[ { &amp;quot;name&amp;quot;: &amp;quot;銀座線&amp;quot;, &amp;quot;stations&amp;quot;: [ &amp;quot;渋谷&amp;quot;, &amp;quot;表参道&amp;quot;, &amp;quot;外苑前&amp;quot;, &amp;quot;青山一丁目&amp;quot;, &amp;quot;赤坂見附&amp;quot;, &amp;quot;溜池山王&amp;quot;, &amp;quot;虎ノ門&amp;quot;, &amp;quot;新橋&amp;quot;, &amp;quot;銀座&amp;quot;, &amp;quot;京橋&amp;quot;,&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;データをツールに食わせると、git コマンド群を発行するシェルスクリプトを作ってくれます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;$ boot generate-git-commands -c tokyo -f tokyo.sh&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;大江戸線のような循環があると、git グラフが作れないためツールはエラーで止まります。そりゃそうですね。&lt;/p&gt;&#xA;&lt;p&gt;都庁前の循環を外して再度挑戦するも、東京のいたるところの乗換駅でエラーが… あちらとこちらで乗り換えができれば、循環だらけにもなりますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;# 渋谷 銀座線 半蔵門線 副都心線 git checkout --orphan &amp;quot;銀座線&amp;quot; git commit --allow-empty -m &amp;quot;渋谷&amp;quot; git branch -f &amp;quot;副都心線&amp;quot; HEAD git branch -f &amp;quot;半蔵門線&amp;quot; HEAD # 代々木上原 千代田線 git checkout --orphan &amp;quot;千代田線&amp;quot; git commit --allow-empty -m &amp;quot;代々木上原&amp;quot; # 代々木公園 千代田線 git commit --allow-empty -m &amp;quot;代々木公園&amp;quot; # 明治神宮前 千代田線 副都心線 git merge --strategy=ours --allow-unrelated-histories --no-ff --commit -m &amp;quot;明治神宮前&amp;quot; 副都心線 git branch -f &amp;quot;副都心線&amp;quot; HEAD # 北参道 副都心線 git checkout &amp;quot;副都心線&amp;quot; git commit --allow-empty -m &amp;quot;北参道&amp;quot; # 方南町 丸ノ内線分岐線 git checkout --orphan &amp;quot;丸ノ内線分岐線&amp;quot; git commit --allow-empty -m &amp;quot;方南町&amp;quot; # 中野富士見町 丸ノ内線分岐線 git commit --allow-empty -m &amp;quot;中野富士見町&amp;quot; # 中野新橋 丸ノ内線分岐線&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>GrandType - キータイプの間隔データを機械学習させ、ユーザーを特定するプロジェクト</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/</link>
				<pubDate>Wed, 15 May 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://gradtype.darksi.de/&#34;&gt;GradType&lt;/a&gt;は、英文を入力する際のキータイピングの癖を使って、今誰がタイプしているのかを特定しようという実験プロジェクトです。&lt;/p&gt;&#xA;&lt;p&gt;まず、GitHub で認証した状態で、出てくる英文を入力することを繰り返します。すべて小文字で良く、正しい文字とスペースキーを打った時しか先へは進みません。打ち間違えたとしても間違えた文字は入らないのでそのまま続けます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-learning.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-learning_hu_e0e31b578b0f2acd.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-learning_hu_cd7d1eb65914da2c.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-learning_hu_23e63bb0cb966c3.webp 879w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-learning.png&#34; width=&#34;879&#34; height=&#34;769&#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;この時、サービスの裏側ではキーと次のキーが打たれる間の時間を記録し、RNNで学習させているそうです。&lt;/p&gt;&#xA;&lt;p&gt;文章のバリエーションはそれほど多くありません。数十回入力した後で、ログアウトし、ユーザーとして認識していない状態で同じように英文をタイプすると、&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-result.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-result_hu_3a2aa9a349ecaec5.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-result_hu_a10f601dd1b1a718.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-result_hu_b2c3d245db690908.webp 835w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/grandtype-detects-user-by-key-typing/gradtype-result.png&#34; width=&#34;835&#34; height=&#34;725&#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;RNNでより「似ている」と判定されたユーザー5名が表示されます。&lt;/p&gt;&#xA;&lt;p&gt;多数のユーザーが試しているためか、なかなか当ててくれませんでした。(一回は自分のユーザー名が当てられたのを見ましたが、スクリーンショットを撮っていませんでした)&lt;/p&gt;&#xA;&lt;p&gt;実用的にはスペルを打ち間違えたり直したりするデータを使った方が、より個人の特定はしやすいだろうと思いますが、研究としてはキーとキーの間隔時間だけでどこまでやれるかというのを見ているようです。&lt;/p&gt;&#xA;&lt;p&gt;匿名で入力できる、と思われているようなサイトにおいても、個人の癖を収集して人物の同定を行うなんてことも、より簡単にできるようになっていくかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;Hacker News では、それへの対策として、&lt;a href=&#34;https://github.com/vmonaco/kloak&#34;&gt;キータイプの癖を攪乱するというツール&lt;/a&gt;も紹介されていました。匿名個人の特定ではなく、認証にタイピングの癖を使うといった研究もあるようです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/indutny/gradtype&#34;&gt;ソースコードが公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=19888481&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>css-only-chat CSSだけで動くブラウザチャット</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/</link>
				<pubDate>Wed, 08 May 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/</guid>
				<description>&lt;p&gt;ケビン・クッチャさん(Kevin Kuchta)の&lt;a href=&#34;https://github.com/kkuchta/css-only-chat&#34;&gt;kkuchta/css-only-chat&lt;/a&gt; は、JavaScript を使わない非同期ウェブチャットサーバーです。&lt;/p&gt;&#xA;&lt;p&gt;二つ(以上)のブラウザからこのサーバに接続し、アルファベットをクリックしてメッセージを作り送信すると、同じサーバに接続した他のブラウザでも即時表示される、いわゆるブラウザチャットです。しかし面白いのは、このページで JavaScript は使われていないというところ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/css-only-chat.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/css-only-chat_hu_f784542b6d5fabe3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/css-only-chat_hu_e211505fdb5a49f1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/css-only-chat_hu_cf8202e93c78cdd5.webp 959w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/05/css-only-chat-css-only-browser-chat/css-only-chat.png&#34; width=&#34;959&#34; height=&#34;793&#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;h3 id=&#34;送信側&#34;&gt;送信側&lt;/h3&gt;&#xA;&lt;p&gt;CSS の :active 疑似クラスを使うことで、ある領域をクリックした際に、はじめて画像ファイルを読み込ませることができます。つまり、ボタンが押されたタイミングを画像ファイルの読み込みでサーバ側から検知できるということ。&lt;/p&gt;&#xA;&lt;p&gt;「同じボタンが2度目押された時は(画像はもうブラウザ側にロード済なので)サーバはわからないのでは?」となりますが、たとえば &amp;ldquo;a&amp;quot;&amp;ldquo;a&amp;rdquo; と押した時は、接続しっぱなしの状態で、元のボタンを隠し、新たに「&amp;ldquo;a&amp;quot;を押した」という情報を持った別の画像ファイル名を持つボタンを表示しているようです。これをすべてのボタンに対して行うことで、ボタンが持つ画像ファイルのパスが、過去のすべてのタイプ内容を保持することになります。&lt;/p&gt;&#xA;&lt;h4 id=&#34;受信側&#34;&gt;受信側&lt;/h4&gt;&#xA;&lt;p&gt;表示はどうやって更新してるのか、も解説されています。接続しっぱなしの状態で、これまで送った html が不要になったら、style タグを送って過去の要素を display:none で隠し、新たにページ内容を追記します。&lt;/p&gt;&#xA;&lt;p&gt;これを、自身か他のブラウザから新たなデータが届くまで待機しながら繰り返しているということ。じゃあソースコードはとても長くなるのでは、と思って Chrome でソースを表示しようとしましたが、何も表示されません。Firefox では何千桁もある一行のソースコードを確認できました。&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=19852105&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Gamedetect.io - ゲーム画面の画像からゲーム名を当てるサービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/03/gamedetect-io-tells-you-which-game-from-screenshot/</link>
				<pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/03/gamedetect-io-tells-you-which-game-from-screenshot/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://gamedetect.io/&#34;&gt;GameDetect.io&lt;/a&gt; のフォームにビデオゲームの画面写真を与えると、JSON でそれがどのゲームに似ているかを返してくれます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/03/gamedetect-io-tells-you-which-game-from-screenshot/gamedetect.io_.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/03/gamedetect-io-tells-you-which-game-from-screenshot/gamedetect.io__hu_ee516843d699f3f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/03/gamedetect-io-tells-you-which-game-from-screenshot/gamedetect.io__hu_40ad5a1dcc6efa19.webp 638w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/03/gamedetect-io-tells-you-which-game-from-screenshot/gamedetect.io_.png&#34; width=&#34;638&#34; height=&#34;772&#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;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;{ &amp;quot;filename&amp;quot;:&amp;quot;dragonquest5.jpg&amp;quot;, &amp;quot;predictions&amp;quot;:[ { &amp;quot;label&amp;quot;:&amp;quot;stardew valley&amp;quot;, &amp;quot;probability&amp;quot;:0.568226 }, { &amp;quot;label&amp;quot;:&amp;quot;the legend of zelda a link to the past&amp;quot;, &amp;quot;probability&amp;quot;:0.15813187 }, { &amp;quot;label&amp;quot;:&amp;quot;super mario maker&amp;quot;, &amp;quot;probability&amp;quot;:0.031073814 }, { &amp;quot;label&amp;quot;:&amp;quot;factorio&amp;quot;, &amp;quot;probability&amp;quot;:0.027034273 }, { &amp;quot;label&amp;quot;:&amp;quot;don t starve together&amp;quot;, &amp;quot;probability&amp;quot;:0.020903632 } ], &amp;quot;speed_ms&amp;quot;:1113 }&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Tensorflow と Golang によって&lt;a href=&#34;https://github.com/s32x/gamedetect&#34;&gt;実装されて&lt;/a&gt;おり、学習データとしてはTwitch のゲーム配信画面をスクレイプしたものを使っています。ゲーム実況にはゲームのタイトル情報とゲーム画面があるので、これを正答として学習させ、モデルを作っているのですね。&lt;/p&gt;&#xA;&lt;p&gt;そのような作りなので、回答で出てくる候補のゲームは&lt;a href=&#34;https://github.com/s32x/gamedetect/blob/master/graph/output_labels.txt&#34;&gt;Twitch で今最も多く中継されているゲームトップ100&lt;/a&gt; からだけとなっています。(冒頭で試したドラクエ5 の画面では、Stardew Valley やゼルダなど画面の似ているものが出てしまっていますね。)&lt;/p&gt;</description>
			</item>
			<item>
				<title>ブラウザで動くWindows 95風マインスイーパー</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/03/windows-95-and-minesweeper-on-browser/</link>
				<pubDate>Mon, 04 Mar 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/03/windows-95-and-minesweeper-on-browser/</guid>
				<description>&lt;p&gt;ブラウザで動くマインスイーパーですが、単にマインスイーパーをブラウザ上に実装するのではなく、&lt;a href=&#34;https://winmine-exe.now.sh/&#34;&gt;なぜか Windows 95 を再現しそこでマインスイーパーを動かす&lt;/a&gt;というもの。&lt;/p&gt;&#xA;&lt;p&gt;並んだアイコンから Minesweeper をダブルクリックしないとゲームが始まりません。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/03/windows-95-and-minesweeper-on-browser/browser-win95-minesweeper.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/03/windows-95-and-minesweeper-on-browser/browser-win95-minesweeper_hu_ee53dde714eaedc7.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/03/windows-95-and-minesweeper-on-browser/browser-win95-minesweeper_hu_334b432e09914d69.webp 534w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/03/windows-95-and-minesweeper-on-browser/browser-win95-minesweeper.png&#34; width=&#34;534&#34; height=&#34;451&#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://github.com/1000hz/winmine-exe&#34;&gt;GitHubで公開&lt;/a&gt;されていて、今後はスタートメニューやウィンドウの移動、他のアプリケーションの追加など、Windows 95の再現度を上げる方向で頑張るそうです。&lt;/p&gt;&#xA;&lt;p&gt;Windows 10 にはもうマインスイーパーは入ってないんですね。アプリとして&amp;quot;Microsoft Minesweeper&amp;quot;を無料で追加することは可能ですが、こちらはいろいろと今風に改良されたもののようです。&lt;/p&gt;&#xA;&lt;p&gt;ブラウザを開けばあの懐かしいマインスイーパーが、Windows 95風のランチャーつきで楽しめる、ということで、ノスタルジックな需要があるのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>go-license-detector - オープンソースのライセンスを判定してくれるツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/01/go-license-detector-tells-you-license-from-source-codes/</link>
				<pubDate>Thu, 31 Jan 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/01/go-license-detector-tells-you-license-from-source-codes/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/src-d/go-license-detector&#34;&gt;go-license-detector&lt;/a&gt; は、プロジェクトのドキュメントファイルをスキャンして、そのプロジェクトがどんなライセンスかを推定するというツールです。&lt;a href=&#34;https://spdx.org/licenses/&#34;&gt;SPDX&lt;/a&gt; で400種類近くに分類されている多種多様なライセンスの分類名(identifier)の形でライセンス情報を返します。&lt;/p&gt;&#xA;&lt;h3 id=&#34;従来のツール&#34;&gt;従来のツール&lt;/h3&gt;&#xA;&lt;p&gt;Ruby製の&lt;a href=&#34;http://ben.balter.com/licensee/&#34;&gt;Licensee&lt;/a&gt;では、ライセンスファイルの存在や、既知のライセンスファイルとの一致度を見て、オープンソースのライセンスが何かを判定しています。GitHub 自身も、各リポジトリのライセンスを判定するのに利用しているそうです。&lt;/p&gt;&#xA;&lt;p&gt;他にもいくつか、Google の licenseclassifier などライセンスを推定するツールはあるのですが、go-license-detector は以下の特徴があるそうです。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;誤判定があっても、「不明」という結果を少なくする方向の検出&lt;/li&gt;&#xA;&lt;li&gt;Golang による高速な処理&lt;/li&gt;&#xA;&lt;li&gt;GitHub の人気トップ1000リポジトリ(手動でライセンスが判定されている)をできるだけ当てられることを目指す&lt;/li&gt;&#xA;&lt;li&gt;SPDX の分類に従う&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;精度比較&#34;&gt;精度比較&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://blog.sourced.tech/post/gld/&#34;&gt;ブログ記事では&lt;/a&gt;、既存の各ツールとの判定精度の比較をしています。902のソースコードを判定し、ライセンスがあるものに関して99%という高率の判定結果、また、判定の速度もとても優秀ということ。&lt;/p&gt;&#xA;&lt;p&gt;現在は LICENSE や READEME など、一定の種類の名前でライセンス情報を探そうとしていますが、それらのファイルについて既存のライセンス文書との一致をみるにしても、単なる一致ではなく単語のゆらぎやミススペルなどまでケアしているようです。&lt;/p&gt;&#xA;&lt;p&gt;何か一つオープンソースのプロジェクトが有ったとして、そのライセンスが何であるかを当て、それを信じて利用するというよりは、多数のリポジトリをまとめて分析するような用途に向いているのかなと思いました。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://blog.sourced.tech/post/gld/&#34;&gt;Detecting licenses in code with Go and ML · source{d} blog&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Aileen - 周囲のWiFiデバイスをカウントしてその場の人数を記録するツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/</link>
				<pubDate>Fri, 18 Jan 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.aileenproject.org/&#34;&gt;Aileen&lt;/a&gt; は、WiFi の電波から周囲にあるスマートフォンなどのデバイスを数え、記録するためのツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/aileen-devices.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/aileen-devices_hu_7297537f11d2878c.webp 398w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/aileen-devices.png&#34; width=&#34;398&#34; height=&#34;430&#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;WiFi がオンになっているデバイスのMACアドレスを使って、周囲にあるデバイスの数を記録し、時系列データなどをダッシュボードでまとめて表示します。(MACアドレスはハッシュ値のみ保存されます)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.aileenproject.org/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/aileen-dashboard-activities_hu_92bb62b4c4bbf237.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/aileen-dashboard-activities_hu_793ad7753234a68d.webp 690w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/aileen-counts-number-of-people-around-by-wifi-signal/aileen-dashboard-activities.png&#34; width=&#34;690&#34; height=&#34;414&#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;Aileen は、利用者として NGO による人道的な活動を想定しているということ。たとえば、難民キャンプでの人の出入りや活動を見守る、といった使い方です。キャンプの中にいる難民の数の変化をより正確に計ることで、サービス提供側の人員計画などを立てやすくすることができるのだとか。&lt;/p&gt;&#xA;&lt;p&gt;先月にはコードが&lt;a href=&#34;https://github.com/aileenproject/aileen&#34;&gt;オープンソースで公開されて&lt;/a&gt;おり、WiFi 情報を収集して利用するというセンシティブな目的に対し、正体不明の第三者のツールに頼らずに済むのが利点だということです。&lt;/p&gt;&#xA;&lt;p&gt;また、難民キャンプなどでは常に安定したインターネット接続が使えるとは限りません。そのような利用シーンを考え、Aileen を動かすPC自体はインターネット接続が無くても動けるようになっています。複数台を設置してデータ収集している場合は、ネットに接続した時点で情報を送信するそうです。(ハッシュ化された個々のMACアドレスを送信するのではなく、集計した結果のみを送るそうです)&lt;/p&gt;&#xA;&lt;p&gt;今月には、ギリシアのレスボス島にある実際の難民キャンプで、2セットが試験運用を開始しているそう。&lt;/p&gt;&#xA;&lt;p&gt;難民といえども、今は普通にスマートフォンを持っているのだろうと思います。むしろ情報収集等のために無いと困るぐらいかもしれません。デバイスを持たない人もいますが、スマートフォンの存在から人数を計るというのは、人手を掛けずにすむ効率的な方法なのかもしれないですね。&lt;/p&gt;&#xA;&lt;p&gt;日本に今難民キャンプはありませんが、プライバシーへの配慮がされていることや、オープンソースとして動作の仕組みが公開されていることから、NGO などで他の人道的な運営に転用したりすることもできるかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>invaderz - 遺伝的アルゴリズムで動きを変えるインベーダー風ゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/10/invaderz-genetic-algorithm-invaders/</link>
				<pubDate>Wed, 31 Oct 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/10/invaderz-genetic-algorithm-invaders/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/victorqribeiro/invaderz&#34;&gt;victorqribeiro/invaderz&lt;/a&gt;は、上から襲い掛かるインベーダーを砲台で撃ち落とす JavaScript のゲームです。&lt;/p&gt;&#xA;&lt;p&gt;一回に6匹降りてくるインベーダーを、地上に近づけないように撃ち落とす必要があります。合計で5匹が地上にたどり着いたら、ゲームオーバーとなります。また、6匹の攻撃が終わると、新たに次の6匹が登場します。&lt;/p&gt;&#xA;&lt;p&gt;攻めてくるインベーダーの形はランダムに打たれたドットのパターンなのですが、このドットの形に応じて、どのように動くのかが表されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/invaderz-genetic-algorithm-invaders/invaderz.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/invaderz-genetic-algorithm-invaders/invaderz_hu_58237e746a01ad5f.webp 307w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/invaderz-genetic-algorithm-invaders/invaderz.png&#34; width=&#34;307&#34; height=&#34;567&#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;この次の世代を生産する時に、優秀だった個体からランダムに上下半分ずつや左右半分ずつの形をコピーしたりして新しい世代を作ることで、これまで良い結果を出したインベーダーの特徴を併せ持つ世代が作られる、ということになります。(この際に、10%の割合で突然変異も起こります) この当たりはソースコードの Genetics.js を見るとなんとなくわかります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://victorribeiro.com/invaderz/&#34;&gt;動くデモ&lt;/a&gt;も公開されていますが、今はアクセスしづらくなっているようです。ソースコードを持ってくれば手元で簡単に動かすことはできました。&lt;/p&gt;&#xA;&lt;p&gt;30世代ほど遊んでみましたが、後半になると確かにインベーダーの動きが左右に大きくなり、狙った弾を避けている(避けているように見える、だけですが)ことは増えます。ただ、進化の度合いはかなりゆっくりかなと。何百世代とやるととても優秀になるかもしれませんが、5回失敗すると終わりなのでそこまでもっていくのは大変そうです。&lt;/p&gt;&#xA;&lt;p&gt;いろんな人が育てた結果が共有されたりすると、面白い避け方をするインベーダーがたくさん作られるかもしれないですね。&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=18339551&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Toodles - ソースコード内コメント中の ToDo を集めてやるべきTodoリストを一覧、更新できるwebツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/</link>
				<pubDate>Fri, 26 Oct 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/aviaviavi/toodles&#34;&gt;Toodles&lt;/a&gt; は、ソースコード中に書かれたコメントの ToDo を収集し、次やるべきことを可視化してくれるというオープンソースのwebアプリです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-screenshot.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-screenshot_hu_5be627383c2f2fea.webp 480w, https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-screenshot_hu_1ec6c37a52c879f7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-screenshot_hu_c78634bfa9c5ae72.webp 926w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-screenshot.png&#34; width=&#34;926&#34; height=&#34;388&#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;ツール自身への入力として、Toodles 自体のソースコードを使いましたが、それとは別に適当なソースコードに ToDo コメントを仕込んで、一緒に読ませてみました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;var MAX_HEIGHT = 320; var SQUARE_SIZE = 150; var thumbnailBucket = process.env.DESTINATION_BUCKET_NAME;  // TODO (hoge|p=8|#js|#test|#newTag) - アレをナニしないといけない exports.handler = function(event, context, callback) { var originalBucket = event.Records[0].s3.bucket.name; var key = event.Records[0].s3.object.key;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;ソースコードとして指定したディレクトリ以下で、対応しているプログラミング言語(readme に一覧が載っていますが、主要なプログラミング言語やシェルスクリプト、yamlファイルなどをサポートしています)のファイルをすべて解析して、ToDo リストを更新してくれます。&lt;/p&gt;&#xA;&lt;p&gt;また、Webアプリ側からもToDo を消したり、優先度やタグなどを更新したりでき、その結果は元のソースコード側にもちゃんと反映されます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-edit-todo.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-edit-todo_hu_e78a959517e61562.webp 480w, https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-edit-todo_hu_d63435a1025ba08.webp 768w, https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-edit-todo_hu_106992f2e8443fba.webp 910w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/10/toodles-updates-todo-list-from-source-code-comments/toodle-edit-todo.png&#34; width=&#34;910&#34; height=&#34;462&#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;コメント内の ToDo の表記で、担当者、タグ、優先度などとコメントを書くことができ、webアプリ上ではそれらを使って ToDo を絞り込んだり、ソートしたりもできます。&lt;/p&gt;&#xA;&lt;p&gt;Toodles は Haskell で書かれていて、GitHub でソースコードが公開されています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ウェブ広告を片っ端からクリックすることで広告ネットワークの追跡に抵抗するブラウザ拡張 Adnauseam</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/07/adnauseam-browser-extension-clicks-all-ads/</link>
				<pubDate>Thu, 26 Jul 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/07/adnauseam-browser-extension-clicks-all-ads/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://adnauseam.io/&#34;&gt;AdNauseam&lt;/a&gt; は、ブラウザ上に表示された広告を、自動的に見つけてクリックしてくれるというブラウザ拡張機能です。&lt;/p&gt;&#xA;&lt;p&gt;広告ブロックをする拡張 uBlock をベースに作られた AdNauseam は、ブロックした広告に対して、間隔を空けて(=人間がクリックするかのように、ということでしょう)一つずつ、クリックして背後で広告を読み込んでいきます。&lt;/p&gt;&#xA;&lt;p&gt;なぜそんなことをさせるのか? AdNauseam の作者たちの主張はこうです。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;ブラウザの&amp;quot;Do not track&amp;quot;(私を追跡しないで)ヘッダは、多数の企業が協力しなかったため、使い物にならなくなった。広告ネットワークが我々の閲覧情報を売り渡し続けるのであれば、広告をブロックした上で、その広告をすべてクリックするしかない。すべてをクリックすることで、あなたを追跡しようとする企業は混乱するだろう。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&#xA;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;iframe&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;src=&#34;https://player.vimeo.com/video/111943439?dnt=0&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allow=&#34;fullscreen&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/iframe&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/07/adnauseam-browser-extension-clicks-all-ads/adnauseam-io-1.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2018/07/adnauseam-browser-extension-clicks-all-ads/adnauseam-io-1_hu_77be89e740a3ac20.webp 480w, https://labs.cybozu.co.jp/blog/akky/2018/07/adnauseam-browser-extension-clicks-all-ads/adnauseam-io-1_hu_9095b6d804f5f708.webp 652w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/07/adnauseam-browser-extension-clicks-all-ads/adnauseam-io-1.png&#34; width=&#34;652&#34; height=&#34;693&#34; alt=&#34;adnauseam-io-1&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;何に対して興味を持っているのか、追跡して分析されたくない、という意思表明(Do not track)をしても追跡されてしまうなら、全部の広告を押すというのは確かに効果があるのかもしれません。すべてに興味を示すユーザーは、何に興味を示しているのかわからなくなるのですから。&lt;/p&gt;&#xA;&lt;p&gt;# ただ、いろんなものを「買うかもしれない」判定しちゃう広告ネットワークもあるかもしれませんが&lt;/p&gt;&#xA;&lt;p&gt;2017年には、このAdNauseam拡張、&lt;a href=&#34;https://adnauseam.io/free-adnauseam.html&#34;&gt;Chrome の拡張Store から「利用規約違反」という理由で削除されています&lt;/a&gt;。違反してるとされた規約にどう違反してるかの詳細な説明は受け取ってないとこの作者たちは言っていますが。&lt;/p&gt;&#xA;&lt;p&gt;ウェブサイト上の広告での儲けが主要な売り上げであるGoogle社としては、普及すると都合の悪い拡張機能でしょうね。&lt;/p&gt;&#xA;&lt;p&gt;開発者モードで頑張ればChromeでもインストールできなくはないですが… &lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/adnauseam/&#34;&gt;Firefox版&lt;/a&gt;や&lt;a href=&#34;https://addons.opera.com/en/extensions/details/adnauseam-2/&#34;&gt;Opera版&lt;/a&gt;は、それぞれの公式ストアからインストールできます。&lt;/p&gt;&#xA;&lt;p&gt;現状のウェブと広告に対する抗議の意味を持った拡張機能ですが、議論を呼ぶものだし大なり小なり広告収入を得ている人にとっては迷惑と感じられるのかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>TheParallaxView - どこから見ても「深淵」が見えるスマートフォンアプリ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/</link>
				<pubDate>Fri, 02 Mar 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/</guid>
				<description>&lt;p&gt;どの方向からiPhoneを見ても、そこにどこまでも続く深い穴があるように見える、というパララックス効果を使ったアプリが&lt;a href=&#34;http://www.anxious-bored.com/blog/2018/2/25/theparallaxview-illusion-of-depth-by-3d-head-tracking-on-iphone-x&#34;&gt;紹介されていました&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/the-parallax-view.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/the-parallax-view_hu_c243328d4936f20d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/the-parallax-view_hu_6972142c69dd6f14.webp 747w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/the-parallax-view.png&#34; width=&#34;747&#34; height=&#34;420&#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;iPhone X で使えるようになった人間の顔の位置を検知する機能により、ユーザーの目の位置を追跡し、目の位置に合わせた穴を描画しています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/theparallaxview-EyeTracking.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/03/theparallaxview-renders-deep-hole-on-smartphone/theparallaxview-EyeTracking.gif&#34; width=&#34;750&#34; height=&#34;346&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/XttE8pWQJO4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Unity/C#製のソースコードは&lt;a href=&#34;https://github.com/algomystic/TheParallaxView&#34;&gt;GitHubで公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;iPhoneアプリが現在申請中ということで、公開されれば上記のソースコードをビルドしなくても手元のiPhone X で試せるようになりますね。&lt;/p&gt;&#xA;&lt;p&gt;ユーザーの視線に応じて表示を変えるアプリが作りやすくなったことで、これまでにない発想のゲーム等が出てくるかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>is-vegan 菜食主義者のための食品判定ライブラリ in JavaScript</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/02/javascript-library-tells-you-which-food-is-vegan/</link>
				<pubDate>Wed, 07 Feb 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/02/javascript-library-tells-you-which-food-is-vegan/</guid>
				<description>&lt;p&gt;肉や魚だけでなく、牛乳など直接は命を奪わない食材も忌避する完全菜食主義(ヴィーガン)のためのライブラリが &lt;a href=&#34;https://github.com/hmontazeri/is-vegan&#34;&gt;is- vegan&lt;/a&gt; です。&lt;/p&gt;&#xA;&lt;p&gt;利用例はこんな感じ。牛乳はダメで、豆乳はOKと。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;import * as isVegan from &#39;is-vegan&#39;;  // example for single ingredient isVegan.isVeganIngredient(&#39;soy&#39;); // true isVegan.isVeganIngredient(&#39;milk&#39;); // false&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;作りとしては src/util/canbevegan.json と nonvegan.json に食材の名前が列挙してあるだけのシンプルなもの。これを訳せば日本語でも使えるかもしれないですね。レシピサイトの材料リストを見て、菜食主義対応かどうかを表示する、なんていう拡張を作ったりできそうです。&lt;/p&gt;&#xA;&lt;p&gt;食べ物の規制ということだとイスラム教のハラールについても is-haral 的なライブラリが有ったりするのかな、とGitHub を探してみましたが、見つかりませんでした。あちらは単純に食材の種類で決まるわけではないので同じ手は使えないのかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>genact - 「プログラマー的な作業をしてる風」に見せるためのツール・ページ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/01/genact-makes-you-looks-like-busy-programmer/</link>
				<pubDate>Fri, 19 Jan 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/01/genact-makes-you-looks-like-busy-programmer/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;仕事すべき時でも、忙しいフリやコンピューターの処理を待つフリをしよう! 並行して多数の仕事をこなす驚異的なスキルを他人に印象づけよう&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/svenstaro/genact&#34;&gt;genact&lt;/a&gt; は、プログラマー的な出力を画面に表示するためのツールです。&lt;/p&gt;&#xA;&lt;p&gt;Rust製のソースはGitHubで公開されています。MaxOS X, Linux, Windows それぞれのバイナリもリリースページに有るので、ダウンロードして走らせるだけでプログラマーな感じのウィンドウが立ち上がります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2018/01/genact-makes-you-looks-like-busy-programmer/genact-sample.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2018/01/genact-makes-you-looks-like-busy-programmer/genact-sample.gif&#34; width=&#34;800&#34; height=&#34;522&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ダウンロードが心配であれば、&lt;a href=&#34;https://svenstaro.github.io/genact/&#34;&gt;ウェブ版&lt;/a&gt;もあります。カフェ等でこれを一個開いて表示しておくと、なんか難しそうなことをしてるように見えるかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;6つのモードがあり、パラメーターで指定することで切り替えられます。複数のモードを指定すると、適当に切り替えもしてくれるようです。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;bootlog&lt;/li&gt;&#xA;&lt;li&gt;cargo&lt;/li&gt;&#xA;&lt;li&gt;cryptomining&lt;/li&gt;&#xA;&lt;li&gt;cc&lt;/li&gt;&#xA;&lt;li&gt;download&lt;/li&gt;&#xA;&lt;li&gt;memdump&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;cryptomining で仮想通過の採掘をしてる風に見せるのなんか、今風でしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>Baby Buddy - オープンソースの赤ちゃん管理システム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/</link>
				<pubDate>Fri, 27 Oct 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/cdubz/babybuddy&#34;&gt;Baby Buddy&lt;/a&gt; は、Python で書かれた、乳児の世話に関する事柄を記録・管理できるwebベースのツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-screenshot.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-screenshot_hu_c62ad7ee79fb80ef.webp 480w, https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-screenshot_hu_fec6a45933eb054c.webp 768w, https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-screenshot_hu_7de15558bbe4c5f2.webp 1026w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-screenshot.png&#34; width=&#34;1026&#34; height=&#34;997&#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://babybuddy.herokuapp.com/children/tim-powell/dashboard/&#34;&gt;デモサイト&lt;/a&gt;を見る感じでは、「授乳」「睡眠」「おむつ交換」「腹ばい練習(tummy time)」について、それぞれやった時に記録を取り、その結果を参照できるようです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-diaper-change-form.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-diaper-change-form_hu_72b1b7ccca60e28c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-diaper-change-form_hu_51d8f7dd0bed70cd.webp 510w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2017/10/baby-buddy-open-source-baby-caring-system/baby-buddy-diaper-change-form.png&#34; width=&#34;510&#34; height=&#34;556&#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;/p&gt;&#xA;&lt;p&gt;# 自分の時は紙のノートに記録してたのを思い出しました。&lt;/p&gt;&#xA;&lt;p&gt;一人ですべての面倒を見ているような、いわゆるワンオペ育児ではそれほど記録の必要もないかもしれませんが、うちのように夫婦で時間をずらしてカバーするとか、ベビーシッター等を含めて複数人で面倒を見ているところだと、誰がみても直近の過去の状態がまとまって見られるというのはいいことだと思います。多数の子供を登録して、保育園のような事業者が使うというのも考えられるでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=15558057&#34;&gt;Hacker News&lt;/a&gt;のコメントによれば、この手のアプリとしてはスマートフォンアプリの &lt;a href=&#34;https://itunes.apple.com/jp/app/%E8%B5%A4%E3%81%A1%E3%82%83%E3%82%93%E6%97%A5%E8%A8%98-baby-connect/id326574411?mt=8&#34;&gt;Baby Connect&lt;/a&gt; が有名なようです。こちらは日本円だと600円の有料アプリで、さすがに機能も多く、UIもこなれているようです。&lt;/p&gt;&#xA;&lt;p&gt;そういう市販のアプリを使うのでもいいのですが、オープンソースでコードがGithub に上がっていることから、自分と家族に特有の何かを追加で記録したいとか、欲しい機能を自分で追加提案できるという点で、この Baby Buddy も面白いかもしれません。&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=15558057&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>マジック・ザ・GIFニング - 面白動画を載せたMtGのカードを生成するプログラム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/10/magic-the-gifening-generate-mtg-card-with-funny-gif/</link>
				<pubDate>Fri, 13 Oct 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/10/magic-the-gifening-generate-mtg-card-with-funny-gif/</guid>
				<description>&lt;p&gt;カードゲーム「&lt;a href=&#34;http://mtg-jp.com/&#34;&gt;マジック・ザ・ギャザリング(MtG)&lt;/a&gt;」のデータを使ったネタプログラミングが Hacker News で話題となっていました。&lt;/p&gt;&#xA;&lt;p&gt;Pythonで書かれ、&lt;a href=&#34;https://github.com/minimaxir/magic-the-gifening&#34;&gt;GitHubで公開されている&lt;/a&gt;このツールは、MtGのカードのタイトルに合った内容のアニメーションGIFを埋め込んで、MtGのパロディカードを生成するというプログラム。&lt;/p&gt;&#xA;&lt;p&gt;生成したカードを定期的にツイッターにつぶやく bot 機能も持っていて、&lt;a href=&#34;https://twitter.com/MTGIFening&#34;&gt;作者自身によるデモアカウント@MTGIFening&lt;/a&gt; では、6時間おきに一枚、新作カードが自動投稿されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://mtgwiki.com/wiki/%E5%BD%BC%E6%96%B9%E3%81%8B%E3%82%89%E3%81%AE%E9%9B%84%E5%8F%AB%E3%81%B3/Howl_from_Beyond&#34;&gt;ハウル・フロム・ビヨンド(彼方からの雄叫び)&lt;/a&gt;というカード名から生成されたのが、こちらのカード&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;zxx&#34; dir=&#34;ltr&#34;&gt;&lt;a href=&#34;https://t.co/sxqKUYHmfv&#34;&gt;pic.twitter.com/sxqKUYHmfv&lt;/a&gt;&lt;/p&gt;&amp;mdash; Magic: The GIFening (@MTGIFening) &lt;a href=&#34;https://x.com/MTGIFening/status/913993793052880897?ref_src=twsrc%5Etfw&#34;&gt;September 30, 2017&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;なるほど、雄たけんでるように見えなくもない。&lt;/p&gt;&#xA;&lt;h3 id=&#34;仕組み&#34;&gt;仕組み&lt;/h3&gt;&#xA;&lt;p&gt;Readme/ソースによれば、このツールの仕組みはこんな感じ。&lt;/p&gt;&#xA;&lt;h4 id=&#34;カードデータの入手&#34;&gt;カードデータの入手&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mtgjson.com/&#34;&gt;MTG JSON&lt;/a&gt;で提供されている、全カードのJSONデータを取得する。そんなデータが有志によって管理されているんですね。これも&lt;a href=&#34;https://github.com/mtgjson/mtgjson&#34;&gt;GitHub上で管理更新されている&lt;/a&gt;ようです。&lt;a href=&#34;https://github.com/mtgjson/mtgjson/blob/master/json/10E.jp.json&#34;&gt;日本語データファイル&lt;/a&gt;もありました&lt;/p&gt;&#xA;&lt;p&gt;ここからJSONファイルをダウンロードし、それを前処理のスクリプトで必要なレコードのみのcsvを作り、それを使って動いています。&lt;/p&gt;&#xA;&lt;h4 id=&#34;ネタになるアニメーションgifの入手&#34;&gt;ネタになるアニメーションGIFの入手&lt;/h4&gt;&#xA;&lt;p&gt;アニメーションGIF版 YouTube、みたいなサイト&lt;a href=&#34;https://giphy.com/&#34;&gt;GIPHY&lt;/a&gt;に&lt;a href=&#34;https://developers.giphy.com/&#34;&gt;API&lt;/a&gt;が提供されていて、その中にキーワード検索APIもあるので、ランダムに選んだMtGのカードのタイトルを食わせています。タイトルによってはGIFが見つからない場合もあるみたいですが、その時は見つかるまで繰り返しています。&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;MtG&amp;quot;で検索して最初にでてきたのがこれ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/s0FsE5TsEF8g8/giphy.gif&#34; alt=&#34;Giphy sample&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;オリジナルのカード画像にgifをはめ込む&#34;&gt;オリジナルのカード画像に、GIFをはめ込む&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://gatherer.wizards.com/Pages/Default.aspx&#34;&gt;MtG公式からカード画像を取得&lt;/a&gt;し、&lt;a href=&#34;https://github.com/Zulko/moviepy/&#34;&gt;MoviePy&lt;/a&gt;ライブラリで、動画の各フレームを書き換えているようです。カードの世代によって画像の位置やサイズが違うので、世代にあわせて埋め込み座標を変えたりもしています。&lt;/p&gt;&#xA;&lt;h4 id=&#34;ツイートする&#34;&gt;ツイートする&lt;/h4&gt;&#xA;&lt;p&gt;PythonでTwitterを読み書きする&lt;a href=&#34;https://github.com/ryanmcgrath/twython&#34;&gt;Twython&lt;/a&gt;を使い、生成されたGIFをツイッターに投稿させています。&lt;/p&gt;&#xA;&lt;p&gt;これらをパッケージする Docker ファイルも置いてあり、自分の環境で簡単に再現できます。ツイッターに投稿するところは動かしませんでしたが、ローカルで動かしてみてできた画像がこちら。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2017/10/mtg_gif.mp4&#34;&gt;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2017/10/mtg_gif.mp4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;コードも完結で短く、データやAPIを組み合わせてうまく作ってるなと思いました。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=15449955&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>scratchblocks - Scratch プログラムをテキストファイルから生成</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/</link>
				<pubDate>Fri, 08 Sep 2017 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://scratchblocks.github.io/&#34;&gt;scratchblocks&lt;/a&gt;は、教育用プログラミング言語 Scratch の図形を組み合わせたプログラムを、テキストから生成してくれるというwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-sample.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-sample_hu_d4675efc571d6992.webp 242w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-sample.png&#34; width=&#34;242&#34; height=&#34;168&#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;言語を日本語(Japanese)にすると、日本語での画像を作ってくれますし、英語など他言語で書いたテキストを translate メニューから日本語に翻訳し、それを画像化( png や svg 形式に)することもできます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://scratchblocks.github.io/translator/#?lang=ja&amp;amp;script=%3Cscratchblocks%3E%0Awhen%20green%20flag%20clicked%0Aset%20%5Bx_pos%20prev%20v%5D%20to%20%5c%28x%20position%5c%29%0Aforever%0Aif%20%3Cnot%20%3C%5c%28x_pos%20prev%5c%29%20%3D%20%5c%28x%20position%5c%29%3E%3E%20then%0Asay%20%5BMy%20X%20position%20moved!%5D%20for%20%5c%282%5c%29%20secs%20%2F%2Fif%20the%20x%20position%20moved%2C%20say%20something%0Aset%20%5Bx_pos%20prev%20v%5D%20to%20%5c%28x%20position%5c%29%0Aend%0Aend%0A%3C%2Fscratchblocks%3E&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-translator-sample-japanese_hu_baf71796194d285c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-translator-sample-japanese_hu_9e2775b9d9654f55.webp 768w, https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-translator-sample-japanese_hu_c2e0f72d07900ac2.webp 1106w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2017/09/scratchblocks-scratch-generates-scratch-program-images/scratchblocks-translator-sample-japanese.png&#34; width=&#34;1106&#34; height=&#34;644&#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://github.com/scratchblocks/scratchblocks&#34;&gt;ソースコードも公開されていて&lt;/a&gt;、これを使って &lt;a href=&#34;https://github.com/tkc49/scratchblocks-for-wp&#34;&gt;WordPress で表示するプラグイン(作者は日本の方)&lt;/a&gt;や Pandoc でドキュメント内に埋め込むライブラリなども紹介されていました。&lt;/p&gt;&#xA;&lt;p&gt;小学校の自由研究で、提出するといってもパソコンやタブレットを提出するわけにもいかない。作ったものを紙にして出すにはどうするのがいいのかな、と調べたら見つけたものです。&lt;/p&gt;&#xA;&lt;p&gt;[訂正 2017-09-08]&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/scratchblocks/scratchblocks&#34;&gt;scratchblocks&lt;/a&gt; と &lt;a href=&#34;https://github.com/LLK/scratch-blocks&#34;&gt;Scratch Blocks&lt;/a&gt; の関係性について間違いがあったので、下の内容を撤回します。ご指摘ありがとうございました。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;ja&#34; dir=&#34;ltr&#34;&gt;というか、scratchblocksはScratch 2.0のUIを模したもので、現行のScratchサイトのフォーラムの支援ツールとしての公式に使われています。2.0と3.0のブロックデザインは大きく異なりますので、非公式も当たらないと思います。&lt;/p&gt;&amp;mdash; アベ先生 (CV: 阿部和広) (@abee2) &lt;a href=&#34;https://x.com/abee2/status/906112167358873600?ref_src=twsrc%5Etfw&#34;&gt;September 8, 2017&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;このツールが表示しているのはそもそも &lt;a href=&#34;https://medium.com/mit-media-lab/scratch-google-next-generation-of-programming-blocks-for-kids-5f377ec9ff0&#34;&gt;GoogleとScratch が HTML5 版の Scratch 3.0 に使うために策定し&lt;/a&gt;、また他の Scratch 風プロジェクトでも採用されるべく規定しようとしている &lt;a href=&#34;https://wiki.scratch.mit.edu/wiki/Scratch_Blocks&#34;&gt;Scratch Blocks&lt;/a&gt; で、このScratch Blocks を「非公式に」サポートするツールとして作られているようです。&lt;/p&gt;&#xA;&lt;p&gt;消えゆく Flash Player から HTML5 ベースに移行しようという Scratch 本家に合わせて作っているものですから、描画結果のそれらしさについては間違いのないところでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;Github の scratchblocks は Scratch 用の&amp;quot;unofficial&amp;quot;なツールを作っている、とGitHub にありますが、これは Scratch Blocks をサポートしているものではないようです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>composerize - dockerコマンドラインをdocker-composeの書式に変換してくれるツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/</link>
				<pubDate>Fri, 02 Sep 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://composerize.com/&#34;&gt;Composerize&lt;/a&gt;は、コマンドラインオプションを持ったDockerコマンドを、Docker Composeの定義ファイルの形式へ変換してくれる、というサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://composerize.com/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot_hu_4d711e21a44942ab.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot_hu_fd58592bff7500fb.webp 768w, https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot_hu_ac53839b5cca3afd.webp 821w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/09/composerize-convert-docker-command-to-compose/composerize-screenshot.png&#34; width=&#34;821&#34; height=&#34;665&#34; alt=&#34;composerize-screenshot&#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コマンドのオプションを列挙してるのが docker-compose.yml なので、コマンドラインパラメーターとymlに掛かれてるものは機能的には一対一に対応してはいるんです。しかし、名前が微妙に違っているパラメーターがあって、コマンドラインで動作確認したものをComposeに移行しようとした際にエラーが出てしまい、両方のマニュアルを開きながら調べて修正、など僕も苦労してました。&lt;/p&gt;&#xA;&lt;p&gt;Githubで公開されている&lt;a href=&#34;https://github.com/magicmark/composerize&#34;&gt;ソース&lt;/a&gt;の(&lt;a href=&#34;https://github.com/magicmark/composerize/blob/master/lib/js/converter.js&#34;&gt;コンバート部分を見れば&lt;/a&gt;、パラメーターの名前が微妙に違うものが多いのに気づきます)&lt;/p&gt;&#xA;&lt;p&gt;デバッグ時には反対向きの変換ツールもあるといいかも。&lt;/p&gt;&#xA;&lt;p&gt;via reddit&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pokémap - Pokemon Goのポケモン・ジム・ポケストップを可視化する勝手ツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/</link>
				<pubDate>Wed, 20 Jul 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/</guid>
				<description>&lt;p&gt;アメリカ人をトリコにし、任天堂の株価を倍に押し上げた位置情報ゲーム「ポケモンGo」、日本での今日のリリースが2ちゃんねる経由マクドナルドからの&lt;a href=&#34;http://imgur.com/iNXZeBa&#34;&gt;リーク&lt;/a&gt;で延期になった、とかいう話も(本当かどうかわかりませんが)流れて来たりと、これから日本でも熱くなりそうなところです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jz6.github.io/PoGoMap/&#34;&gt;Pokémap&lt;/a&gt;は、&lt;a href=&#34;https://github.com/AHAAAAAAA&#34;&gt;Ahmed Almutawa&lt;/a&gt;が始めたばかりのツール開発プロジェクトで、ポケモンGo に出てくるポケモン達、アイテムを得られるポケストップ、奪いあうポケジムなどゲームを簡単に進められるようにする重要情報を、Google Mapベースの地図に表示してしまうというPython製ツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/pokemap-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/pokemap-top_hu_fb4745103cb8f398.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/pokemap-top_hu_7faa571aa278f46b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/pokemap-top_hu_e516142aaa57828b.webp 777w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/07/pokemap-pokemon-go-tool/pokemap-top.png&#34; width=&#34;777&#34; height=&#34;985&#34; alt=&#34;pokemap-top&#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.reddit.com/r/pokemongodev/comments/4t80df/wip_pokemon_go_map_visualization_google_maps_view/d5feu2f?st=iqtsngmd&amp;amp;sh=1a3e519e&#34;&gt;セットアップがたいへんそう&lt;/a&gt;な作りになっていますが、こんなツールで地図が見えてしまうと、一般のユーザーとの競争はかなり簡単になってしまうのではという心配もあります。&lt;/p&gt;&#xA;&lt;p&gt;各データは Niantec 社のサーバとの通信を見て取得しているようなので、早晩、通信方法が変更されたり、暗号化されたりするのではと思いますが、熱心なユーザー&amp;amp;開発者が2日間で50人近く contributor として集まったそうで、&lt;a href=&#34;https://github.com/AHAAAAAAA/PokemonGo-Map&#34;&gt;GitHub 上のプロジェクトページ&lt;/a&gt;では一時的にプルリクエストを受け付けませんという表示がされています。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;http://www.theverge.com/tldr/2016/7/19/12226958/pokemon-go-google-map-display&#34;&gt;The Verge&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>絵文字プログラミング言語 emojicode</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/</link>
				<pubDate>Fri, 04 Mar 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.emojicode.org/&#34;&gt;Emojicode&lt;/a&gt;は、&lt;a href=&#34;https://github.com/emojicode/emojicode&#34;&gt;オープンソース&lt;/a&gt;の高水準・マルチパラダイム・オブジェクト指向・マルチプラットフォーム対応の静的型付き言語です。&lt;/p&gt;&#xA;&lt;p&gt;その一番の特徴は、型、メソッド、クラスメソッド、初期化子がすべて絵文字だというところでしょう。(反対に、変数名には絵文字を含むことができません。)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/emojicode-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/emojicode-top_hu_a6dfbb646cc1c451.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/emojicode-top_hu_b3aaaa63ab3626fe.webp 768w, https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/emojicode-top_hu_b04aaa2294a30348.webp 771w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/03/emoji-programming-language-emojicode/emojicode-top.png&#34; width=&#34;771&#34; height=&#34;968&#34; alt=&#34;emojicode-top&#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://www.emojicode.org/docs/&#34;&gt;本格的なドキュメント&lt;/a&gt;が用意されていて、まだ一部しか読んでないのですが、いくつか紹介します。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;👴 コメント  👵 改行入り 複数行コメント 👵&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;「&lt;a href=&#34;http://emojipedia.org/older-man/&#34;&gt;老人&lt;/a&gt;」の絵文字が一行コメント。老婆で挟むと複数行のコメントも書けます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;🍮 index 35 🍮 isAvailable 👍 🍦 limit 12 🍦 GREETINGS 🔤This is a string.🔤&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;プリンが変数宣言、ソフトクリームはconst変数(凍ってるから)。true/false の 👍/👎 はわかりやすいですね。&lt;/p&gt;&#xA;&lt;p&gt;🔤 が文字列を表す絵文字で、🔤自身を文字として扱いたいときは❌🔤でエスケープするそうです。&lt;/p&gt;&#xA;&lt;p&gt;制御文やクラス定義なども、当然に専用の絵文字が用意されているのですが、読んでて頭が痛くなってきました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.emojicode.org/docs/packages/&#34;&gt;基本的なライブラリ&lt;/a&gt;も、当然ながら絵文字で提供されています。&lt;/p&gt;&#xA;&lt;p&gt;本に挟まるしおりの絵文字 📑 が、ファイルシステム。複数の本の絵文字 📚 は、データベースクラス、 💬 がSQLクエリクラスです。&lt;/p&gt;&#xA;&lt;p&gt;キーボードの絵文字⌨ はキー入力イベントクラスで、エラークラスは回転灯の絵文字 🚨&lt;/p&gt;&#xA;&lt;p&gt;トップに出ているサンプルコードは、フィボナッチ数列を表示するもので、こんな感じに。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;🐇 🏤 🍇 🐇🐖 🏁 ➡️ 🚂 🍇 👴 Let’s print a few fibonaccis.  🍮 i 0 🍮 a 0 🍮 b 1  🔁 ◀️ i 15 🍇 🍮 r ➕ a b 🍮 a b 🍮 b r 😀 🔷🔡🚂 r 10 🍫 i 🍉  🍎 0 🍉 🍉&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>住所から、その近くのYouTube動画を検索する</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/03/search-youtube-video-by-address/</link>
				<pubDate>Wed, 02 Mar 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/03/search-youtube-video-by-address/</guid>
				<description>&lt;p&gt;YouTube の API では、動画に関連した座標情報が取得できるようですね。YouTube 本体の検索ではどうやるか見つけられなかったので、API でだけアクセスできる情報なんでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;Google 自身による API 利用サンプルのデモとして、&lt;a href=&#34;http://youtube.github.io/geo-search-tool/search.html&#34;&gt;geoサーチサービスが公開されている&lt;/a&gt;のを知りました。座標や住所を入れると、その近くの動画を列挙してくれます。&lt;/p&gt;&#xA;&lt;p&gt;こちらが、&lt;a href=&#34;http://youtube.github.io/geo-search-tool/search.html?q=&amp;amp;la=35.6804104&amp;amp;lo=139.77165279999997&amp;amp;lr=10km&amp;amp;tw=any&amp;amp;cl=&amp;amp;sl=%E6%9D%B1%E4%BA%AC%E9%83%BD%E4%B8%AD%E5%A4%AE%E5%8C%BA%E6%97%A5%E6%9C%AC%E6%A9%8B&amp;amp;eo=false&amp;amp;loo=false&amp;amp;cco=false&amp;amp;zl=11&amp;amp;pbt=2016-03-02T06:29:00Z&#34;&gt;「東京都中央区日本橋」で検索した結果&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://youtube.github.io/geo-search-tool/search.html?q=&amp;amp;la=35.6804104&amp;amp;lo=139.77165279999997&amp;amp;lr=10km&amp;amp;tw=any&amp;amp;cl=&amp;amp;sl=%E6%9D%B1%E4%BA%AC%E9%83%BD%E4%B8%AD%E5%A4%AE%E5%8C%BA%E6%97%A5%E6%9C%AC%E6%A9%8B&amp;amp;eo=false&amp;amp;loo=false&amp;amp;cco=false&amp;amp;zl=11&amp;amp;pbt=2016-03-02T06:29:00Z&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/03/search-youtube-video-by-address/youtube-geo-search-screenshot_hu_b07458cc4e1a0000.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/03/search-youtube-video-by-address/youtube-geo-search-screenshot_hu_4aee5af830b23f12.webp 768w, https://labs.cybozu.co.jp/blog/akky/2016/03/search-youtube-video-by-address/youtube-geo-search-screenshot_hu_2ce5995523076044.webp 1086w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/03/search-youtube-video-by-address/youtube-geo-search-screenshot.png&#34; width=&#34;1086&#34; height=&#34;860&#34; alt=&#34;youtube-geo-search-screenshot&#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;YouTube の&lt;a href=&#34;http://www.anthill.jp/goshoukai/youtube/2410/&#34;&gt;動画管理ページの方に、位置情報を入れるフィールドがあり&lt;/a&gt;、そこで明示的に座標を入れている動画が出てくるようです。&lt;/p&gt;&#xA;&lt;p&gt;自分で「場所を出しても良い」と判断している投稿者の動画だけがあるなら、まあそんなに危険はないんでしょう。旅行先での動画とか、お店の宣伝動画とかは、むしろ積極的に位置情報を入れていくのが良さそうですね。&lt;a href=&#34;http://youtube.github.io/geo-search-tool/search.html?q=&amp;amp;la=36.7540964&amp;amp;lo=137.0257282&amp;amp;lr=10km&amp;amp;tw=any&amp;amp;cl=&amp;amp;sl=%E5%AF%8C%E5%B1%B1%E7%9C%8C%E9%AB%98%E5%B2%A1%E5%B8%82&amp;amp;eo=false&amp;amp;loo=false&amp;amp;cco=false&amp;amp;zl=11&amp;amp;pbt=2016-03-02T06:50:35Z&#34;&gt;たまに個人 YouTuber が家で撮ってるような動画も出てくる&lt;/a&gt;のはわかりませんが。&lt;/p&gt;&#xA;&lt;p&gt;YouTube上で&lt;a href=&#34;https://www.youtube.com/results?search_query=%E6%9D%B1%E4%BA%AC%E9%83%BD%E4%B8%AD%E5%A4%AE%E5%8C%BA%E6%97%A5%E6%9C%AC%E6%A9%8B&#34;&gt;東京都中央区日本橋という言葉で検索した場合&lt;/a&gt;とは、明らかに異なる結果です。こちらは、住所「名」で検索したら、当然ながらタイトルに「日本橋」とか入っている動画がたくさんでてきます。&lt;/p&gt;&#xA;&lt;p&gt;Google 自身によるサンプルのデモサイトなので、&lt;a href=&#34;https://github.com/youtube/geo-search-tool&#34;&gt;ソースコードも入手できます&lt;/a&gt;。ソース中でなぜか車のメーカーの名前をフィルタしたりしてるんですが、取り除かないと車名が入った動画がたくさん出てくるんでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>Megabite - 並んだ食材から福笑いのように顔を作るアルゴリズム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/02/megabite-make-face-from-food-photo/</link>
				<pubDate>Tue, 02 Feb 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/02/megabite-make-face-from-food-photo/</guid>
				<description>&lt;p&gt;Megabite は、&lt;a href=&#34;http://aaronrandall.com/blog/megabite/&#34;&gt;皿に盛った料理の写真をパーツとして、福笑いのように顔を作る&lt;/a&gt;アプリだそうです。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://aaronrandall.com/blog/megabite/&#34;&gt;考えてみよう、食べ物もハッピーに見えるに越した事はない。あるランチの時、料理で遊んでるときにふと思ったんだ - このプロセスは自動化できるのでは? 解決すべきビッグな問題がここにあるじゃないか。Let’s face it, food is more fun when it looks happy. I was playing with my food one lunchtime, and I wondered to myself - would it be possible to automate this process? Solving the big problems right here.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2016/02/megabite-make-face-from-food-photo/megabite.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/02/megabite-make-face-from-food-photo/megabite_hu_29d25c316eaee00b.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/02/megabite-make-face-from-food-photo/megabite_hu_9df73a06bfb2f6ce.webp 502w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/02/megabite-make-face-from-food-photo/megabite.png&#34; width=&#34;502&#34; height=&#34;229&#34; alt=&#34;megabite&#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;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;食べ物の写真の撮影とリサイズ、丸く切り出し&lt;/li&gt;&#xA;&lt;li&gt;輪郭の抽出、閉じてない(例: Cのような形の)輪郭の除去&lt;/li&gt;&#xA;&lt;li&gt;重複した輪郭や多重の輪郭(例: 目玉焼きの中の黄身)の除去&lt;/li&gt;&#xA;&lt;li&gt;抽出した要素を含む最小の長方形の決定&lt;/li&gt;&#xA;&lt;li&gt;要素の数に応じた3つの顔型のテンプレートからの選択&lt;/li&gt;&#xA;&lt;li&gt;テンプレート中の要素の形に合わせて、どの食べ物をどこにはめるかの判定&lt;/li&gt;&#xA;&lt;li&gt;要素に最もフィットする方向に食べ物を回転&lt;/li&gt;&#xA;&lt;li&gt;食べ物をポップさせたりしながら、回転して最終形を表示する&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=yBYbK5aL7kc&#34;&gt;動画&lt;/a&gt;でアプリが動く様子が見られます。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/yBYbK5aL7kc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;ツールはiPhoneアプリとして作成されていますが、iTunes Storeには見当たらないので一般公開してないか、申請中なのかもしれません。&lt;a href=&#34;https://github.com/AaronRandall/Megabite&#34;&gt;ソースコードがGitHubで公開されている&lt;/a&gt;ので、自分でビルドすれば試せるかもしれません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Whatsappメッセンジャーでサーバー管理</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/</link>
				<pubDate>Thu, 22 Oct 2015 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/</guid>
				<description>&lt;p&gt;Karim Jedda さんがブログで公開した&lt;a href=&#34;http://funnybretzel.com/control-your-server-using-whatsapp/&#34;&gt;Whatsappでサーバー制御(Control your server using Whatsapp)&lt;/a&gt;。Facebook に買収された世界一ユーザーの多いメッセンジャーアプリ(日本でいうLINEみたいなもの) Whatsapp を使って、サーバーにコマンドを送り、結果を受け取れるようにしたそうです。&lt;/p&gt;&#xA;&lt;p&gt;常時パソコンを持ち歩いているわけではないが、サーバに不具合が起こった時は対応しないといけない、そんな時にスマートフォンから対処できるよう、いつも使っている Whatsapp からサーバーにアクセスできるようにしたんだと。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-hello.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-hello_hu_3c1cb5f8e2af064a.webp 480w, https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-hello_hu_a9922ff4c90c9ca0.webp 768w, https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-hello_hu_c5ed9b4191fd0a13.webp 1080w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-hello.png&#34; width=&#34;1080&#34; height=&#34;1920&#34; alt=&#34;whatsappcli-hello&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;サーバー側に持たせたアカウントに Whatsapp で hello と呼びかけると、使える機能を返しています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-exec.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-exec_hu_29ba30166999d848.webp 480w, https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-exec_hu_f9bcbd2d7b0716b1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-exec_hu_3337cfc591590b9b.webp 1080w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/10/control-server-by-whatsapp-message/whatsappcli-exec.png&#34; width=&#34;1080&#34; height=&#34;1920&#34; alt=&#34;whatsappcli-exec&#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;/p&gt;&#xA;&lt;p&gt;コメント欄の「iPhone や Android にもSSHクライアントアプリあるよ。それ使えば?」というツッコミが全てを表していますが… たぶん「やってみたかった」んでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;このツール whatsappcli は&lt;a href=&#34;https://github.com/KarimJedda/whatsappcli&#34;&gt;オープンソースで公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;なお、Whatsapp を bot 等で使う件については、アクセス用のライブラリを公開した人が&lt;a href=&#34;https://github.com/venomous0x/WhatsAPI&#34;&gt;警告を受けて取り下げたりしている&lt;/a&gt;ようで、利用規約違反です。&lt;/p&gt;&#xA;&lt;p&gt;Whatsapp サービスを通るメッセージの秘匿性の問題もあります。コメント欄でも出ているように、&lt;a href=&#34;https://telegram.org/&#34;&gt;Telegram&lt;/a&gt; など API も公開されていて(自称ですが)よりセキュアなサービスを使った方が良さそうですけどね。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=10424267&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>プール監視員になって溺れる子供を見つけるブラウザゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/</link>
				<pubDate>Wed, 29 Jul 2015 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://spotthedrowningchild.com/&#34;&gt;Spotthedrowingchild.com&lt;/a&gt; は、「溺れる子供を指せ」という名前が示すとおり、プール監視員になったつもりで溺れている子供をいち早く発見するという体験ができるwebサイトです。&lt;/p&gt;&#xA;&lt;p&gt;ページを開くとプールの動画が再生され、どこかで子供が溺れ始めるので、それを見つけたらマウスでクリックします。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child_hu_8d8ee7be07a8f2a6.webp 480w, https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child_hu_c70e918bdd764d76.webp 768w, https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child_hu_ef4ae9ad5cb03c56.webp 920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child.png&#34; width=&#34;920&#34; height=&#34;541&#34; alt=&#34;spot-the-drowing-child&#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;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child-game.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child-game_hu_db868ada3db8f44b.webp 480w, https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child-game_hu_975ac18c7b0ff14.webp 597w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/07/browser-game-to-spot-on-drowing-kids/spot-the-drowing-child-game.png&#34; width=&#34;597&#34; height=&#34;386&#34; alt=&#34;spot-the-drowing-child-game&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;再生が終わったら出てくる解説の後ろの「Play Again」リンクをクリックすれば、また別の動画が始まります。&lt;/p&gt;&#xA;&lt;h3 id=&#34;開発の経緯&#34;&gt;開発の経緯&lt;/h3&gt;&#xA;&lt;p&gt;作者のFrancisco Saldañaさんは、2010年のブログ記事&lt;a href=&#34;http://mariovittone.com/2010/05/154/&#34;&gt;溺れている人は溺れているようには見えない(Drowning Doesn’t Look Like Drowning)&lt;/a&gt;をピックアップした&lt;a href=&#34;https://news.ycombinator.com/item?id=9947237&#34;&gt;Hacker Newsのコメント&lt;/a&gt;にヒントを得てこのゲームを作成されたそうです。&lt;/p&gt;&#xA;&lt;p&gt;ゲームに使われる動画は、YouTubeからプールで実際に子供が溺れている動画を探してきて使っています。&lt;a href=&#34;http://spotthedrowningchild.com/creator.html&#34;&gt;こちらのツール&lt;/a&gt;を使うと、見つけてきた新たな動画から、子供の溺れている場所やタイミングを設定して追加データを作成することもできます。&lt;/p&gt;&#xA;&lt;p&gt;サイトはHTML と &lt;a href=&#34;https://github.com/FrankSalad/spot-the-drowning-child/blob/gh-pages/game.js&#34;&gt;JavaScript&lt;/a&gt; のみでコンパクトに作られていて、全ソースが&lt;a href=&#34;https://github.com/FrankSalad/spot-the-drowning-child&#34;&gt;公開&lt;/a&gt;されています。今のところ動画は6本あるようですね。&lt;/p&gt;&#xA;&lt;h3 id=&#34;溺れている人は溺れているようには見えない&#34;&gt;「溺れている人は溺れているようには見えない」&lt;/h3&gt;&#xA;&lt;p&gt;サイトでも後から表示されますし、&lt;a href=&#34;http://mariovittone.com/2010/05/154/&#34;&gt;サービスの発想の元となった記事&lt;/a&gt;でも紹介していますが、テレビやドラマなどで出てくる「溺れている人」の様子と、本当に溺れている人の様子は(例外はもちろんあるにしても)大きく異なるそうです。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ほとんどの場合、溺れている人は声をあげて助けを求めたりはできない。息をするので精一杯&lt;/li&gt;&#xA;&lt;li&gt;溺れている人には余裕はない。体を持ち上げて息をしようと手足は勝手に動くだけ。手を振ったり、救助者や救命用具の方へ近づいたりすることはできない。&lt;/li&gt;&#xA;&lt;li&gt;溺れている状態では人は棒立ちになりバタ足もうまく効かない。そこから沈みだすまでの時間は20秒から60秒しかない。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;(ソース: Coast Guard’s On Scene Magazine の Pia博士の&lt;a href=&#34;http://www.uscg.mil/hq/cg5/cg534/On%20Scene/OSFall06.pdf#page=16&#34;&gt;記事&lt;/a&gt;から&amp;quot;Instinctive Drowning Response&amp;quot;(溺れる人の本能的な反応)。抄訳)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;これはこのゲームをプレイしてみてもよくわかります。子供が溺れているのか、もぐって遊んでいるだけなのかは非常に判別がしにくい。そしていつのまにか監視員が飛び込んで助けに行くのを見て、やっと溺れている子供に気づくという按配です。&lt;/p&gt;&#xA;&lt;p&gt;このゲームではいつかかならず誰かが溺れることはわかっているので、まだなんとか集中も維持できますが、実際に長時間プールを監視している監視員はたいへんだなあ、とつくづく感じさせられます。&lt;/p&gt;&#xA;&lt;p&gt;僕は知りませんでしたが、「溺れる人はドラマのようには溺れない」という知識はとても大事ではないかと思います。それを実体験できるこのwebゲームを遊ぶ人が増えれば、もしかしたら将来の水難事故を減らすことがあるかもしれないですね。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>Skypeチャットの履歴を保存する</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/</link>
				<pubDate>Thu, 05 Feb 2015 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/</guid>
				<description>&lt;p&gt;Skypeといえば、元々のコンセプトである&lt;a href=&#34;https://support.skype.com/ja/faq/FA10042/&#34;&gt;P2P方式から、中央サーバ型への移行が少しずつ進んでいる&lt;/a&gt;みたいですね。&lt;/p&gt;&#xA;&lt;p&gt;昔はSkypeを始めた頃まで無限にチャットログを遡れたのですが、ある時点からはこちらも制限が掛かり、大昔のチャットログにはアクセスできなくなってしまいました。&lt;/p&gt;&#xA;&lt;p&gt;さて今回、スカイプのチャットルームの過去の発言からちょっと複雑な検索をしようとして、準備として「全選択→コピー→エディタに貼り付け」しようとしたのですが、どうしても発言一個分しかコピーされてきません。昔はできたと思うので、Windows版クライアントの仕様が変わったんでしょうか。不便です。&lt;/p&gt;&#xA;&lt;p&gt;クライアントからチャット履歴が取れないとなると、他の方法を使わないといけません。&lt;a href=&#34;https://support.skype.com/ja/faq/FA413/&#34;&gt;チャットログのファイルはディスク上にあり&lt;/a&gt;、sqlite形式のファイルみたいなので、sqliteのDBが開けるツールなら何でも使えば開くことはできます。&lt;/p&gt;&#xA;&lt;p&gt;汎用のsqliteクライアントでもいいのですが、&lt;a href=&#34;http://suurjaak.github.io/Skyperious/&#34;&gt;Skyperious&lt;/a&gt;は、スカイプのチャットログに特化した、過去ログを閲覧・加工するためのツールです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious_hu_d7f86fb5f6bd5ac8.webp 480w, https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious_hu_839feeb9513113ae.webp 768w, https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious_hu_7d1d0153ca901e58.webp 1080w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious.png&#34; width=&#34;1080&#34; height=&#34;710&#34; alt=&#34;skyperious&#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://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious-stats.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious-stats_hu_9218b7faa74940d9.webp 480w, https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious-stats_hu_45c39357789f135e.webp 678w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/02/save-chatlog-from-windows-skype/skyperious-stats.png&#34; width=&#34;678&#34; height=&#34;522&#34; alt=&#34;skyperious-stats&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;緑のiマークを押すと、チャットの統計情報も出してくれます。グループチャットで良く発言している人の発言の数や割合、ファイルの送受信数、良く使われている単語、などが見られます。&lt;/p&gt;&#xA;&lt;p&gt;Githubには&lt;a href=&#34;https://github.com/suurjaak/Skyperious/&#34;&gt;Pythonのソースコードも公開されており&lt;/a&gt;、一応ツールのソースを確認することができます。(とはいえ、配布されているバイナリだけに何か入ってても責任取れないので、利用は自己責任でよろしく)&lt;/p&gt;&#xA;&lt;p&gt;マイクロソフトがSkypeクライアントの機能を削ったのにも彼らなりの理由は何かしらあるのでしょうけど、TwitterやFacebookなどでも自分のデータは書き出せるように(いろいろなユーザーが要望したのが効いて)なっていますし、自分のチャットログは自分のものだ、というのはそんなに不思議な感覚ではないと思うんですよね。できればこういったツールに頼らなくても自由に使えるように、公式クライアントが改善されるといいのですが。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;http://askubuntu.com/questions/149214/copy-skype-chat-history-to-text-files&#34;&gt;Ask Ubuntu&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>ASCII Cam - カメラの画像をリアルタイムでASCII Artに変換するサービス</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/</link>
				<pubDate>Tue, 02 Dec 2014 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://escobar5.github.io/asciicam/&#34;&gt;ASCII Cam&lt;/a&gt; は、ブラウザ上でwebカメラの入力をアスキーアートに変換するサービスです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/ascii-cam-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/ascii-cam-top_hu_a163df5d908e2d0a.webp 480w, https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/ascii-cam-top_hu_2593425817dec88.webp 768w, https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/ascii-cam-top_hu_1b67ac74480cb3fa.webp 1000w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/ascii-cam-top.png&#34; width=&#34;1000&#34; height=&#34;937&#34; alt=&#34;ascii-cam-top&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Start cam を押すと、初回はカメラへのアクセスをしても良いかというのがブラウザから訊かれます。許可をするとウェブカムの映像がASCII文字だけで表示されます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/asciicam.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/12/ascii-cam-makes-realtime-ascii-art/asciicam.gif&#34; width=&#34;496&#34; height=&#34;600&#34; alt=&#34;asciicam&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ソースコードもGithubで公開されています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Facebookスタンプを見えなくする Unsticker Me ブラウザ拡張</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/</link>
				<pubDate>Tue, 14 Oct 2014 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://unsticker.me/&#34;&gt;Unsticker Me&lt;/a&gt; は、@rodneyfolz による、Facebookのスタンプ(sticker = ステッカー)を見たくない人のためのブラウザ拡張です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me-top.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me-top_hu_3a0ac307fbb8eb49.webp 480w, https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me-top_hu_7b001d3935e827af.webp 521w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me-top.png&#34; width=&#34;521&#34; height=&#34;748&#34; alt=&#34;unsticker-me-top&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Firefox や Chrome ブラウザにこの拡張を入れると、Facebook メッセージや&lt;a href=&#34;http://www.itmedia.co.jp/news/articles/1409/29/news070.html&#34;&gt;コメント&lt;/a&gt;でのスタンプ画像が、表示されなくなります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me_hu_4b53918c914fdeff.webp 335w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/10/browser-add-on-to-hide-facebook-stickers/unsticker-me.png&#34; width=&#34;335&#34; height=&#34;336&#34; alt=&#34;unsticker-me&#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;cssを書き換えてスタンプの画像の代わりに[sticker]という文字を表示させているだけですけどね。[スタンプ]とだけ表示されても困ると思いますが、日本のLINEユーザーのような、スタンプ中心とかスタンプだけで会話を成立させてしまうようなやりとりは想定していないのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;普通にテキストで情報を伝えた上でアクセント的に添えられるスタンプが嫌いだ、という人をターゲットにしているのかも。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>CSVファイルのデータ異常値を感覚的に捕まえるビューワ CSV Fingerprints</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/</link>
				<pubDate>Fri, 15 Aug 2014 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://twitter.com/vicapow&#34;&gt;Victor Powellさん&lt;/a&gt;が提案した &lt;a href=&#34;http://setosa.io/blog/2014/08/03/csv-fingerprints/&#34;&gt;CSV Fingerprints (CSVの指紋)&lt;/a&gt;は、CSVファイルのデータをデータの有無やデータの型(文字、数字など)に合わせて色づけすることで、日々の事務などで自動生成されているCSV出力の異常な部分を、目視で発見できるようになるのでは、という提案です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-example.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-example_hu_ebc4f007e4882b7d.webp 480w, https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-example_hu_59aedb2625df3484.webp 768w, https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-example_hu_d982b13ed19f056c.webp 957w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-example.png&#34; width=&#34;957&#34; height=&#34;429&#34; alt=&#34;csv-fingerprints-example&#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;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-2.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-2_hu_4499ccde37b256d8.webp 480w, https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-2_hu_32821c3cf242a407.webp 492w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints-2.png&#34; width=&#34;492&#34; height=&#34;255&#34; alt=&#34;csv-fingerprints-2&#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://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/08/csv-fingerprints/csv-fingerprints.gif&#34; width=&#34;216&#34; height=&#34;190&#34; alt=&#34;csv-fingerprints&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://setosa.io/csv-fingerprint/&#34;&gt;こちらのページ&lt;/a&gt;で、好きなCSVデータを貼り付けてfingerprint を作成してみることができます。&lt;/p&gt;&#xA;&lt;p&gt;ビューワーはAngular.js および D3.js で作られており、&lt;a href=&#34;https://github.com/setosa/csv-fingerprint&#34;&gt;GitHubで公開&lt;/a&gt;されています。&lt;/p&gt;&#xA;&lt;p&gt;CSVを編集するExcelなどのアプリに、こういう可視化ツールがついているといいのかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>Untrusted - JavaScriptをいじって先へ進むRogueライクゲーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/</link>
				<pubDate>Tue, 08 Apr 2014 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%82%B0%E3%83%A9%E3%82%A4%E3%82%AF%E3%82%B2%E3%83%BC%E3%83%A0&#34;&gt;ローグライクゲーム、というジャンル&lt;/a&gt;があります。Rogue(ローグ)を代表とする自動的に生成される迷路・迷宮から脱出するというゲームで、日本で有名なものでも、ネットハック、トルネコの大冒険、チョコボの不思議なダンジョンなど多数あります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://alex.nisnevich.com/untrusted/&#34;&gt;Untrusted&lt;/a&gt; は、そのようなローグ風ゲームのバリエーションなのですが、JavaScriptのコードを操作することでパズル的な迷宮を解き、先へ進むというのが最大の特徴です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-3.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-3_hu_e2d33f7720373311.webp 480w, https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-3_hu_e14b391d471db938.webp 768w, https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-3_hu_284f229987e9c9e3.webp 1248w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-3.png&#34; width=&#34;1248&#34; height=&#34;596&#34; alt=&#34;untrusted-3&#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;quot;@&amp;ldquo;を、階段&amp;rdquo;□&amp;ldquo;まで、カーソルキーを使って導かなければいけません。しかし、普通に上下左右に移動しただけでは、出口にたどり着くことはできなくなっています。&lt;/p&gt;&#xA;&lt;p&gt;そこで、右側のコードに書かれた、迷宮を生成するJavaScriptのコードのうち、書き換えて良いという黒地の部分を変更し、Ctrl+5 で実行するとあら不思議、壁や出口の場所を書き換えてしまうことで、次の階へと進むことができるようになるというわけです。&lt;/p&gt;&#xA;&lt;p&gt;いかだを使ったり鍵を探したりと、面ごとに違う趣向の障害が配置されています。&lt;/p&gt;&#xA;&lt;p&gt;その階がどういうトラップなのか、どんな障害が設けられているかというヒントがJavaScriptのコメントとして書かれているので、解く際の参考になるでしょう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-2.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-2_hu_3f7c860a76ed17ec.webp 480w, https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-2_hu_2cddc30d4d526935.webp 561w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2014/04/untrusted-meta-javascript-rogue-like-game/untrusted-2.png&#34; width=&#34;561&#34; height=&#34;535&#34; alt=&#34;untrusted-2&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;壁を描画している部分の位置を書き換えるとか、出口の場所を移動するとか、で解ける面もありますが、後の面ではそれらを防ぐようなバリデーション・コードが追加されたりして、同じ手は2度使えないようになっています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://alex.nisnevich.com/untrusted/&#34;&gt;UntrustedのソースコードはオープンソースとしてGitHub上で公開されています&lt;/a&gt;。ソースコードを見れば現在のダンジョンが何階あるかはわかってしまうのですが。&lt;/p&gt;&#xA;&lt;p&gt;# HackerNewsで紹介されたせいで、現在ゲームはちょっと重かったり、正しく動かなかったりすることがあるようです。その場合は、footerにリンクのあるミラーサイトで遊んだり、オープンソースですから自分のところで動かしたりということもできます。&lt;/p&gt;&#xA;&lt;p&gt;via HackerNews&lt;/p&gt;</description>
			</item>
			<item>
				<title>画面をスクロールするとオナラの音が出るJavaScriptライブラリfartscroll.js</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2013/05/fartscroll-js/</link>
				<pubDate>Sat, 11 May 2013 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2013/05/fartscroll-js/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://theonion.github.io/fartscroll.js/&#34;&gt;fartscroll.js&lt;/a&gt; は、画面をスクロールさせるとオナラの音が出る、というジョークライブラリです。このページをスクロールさせてみてください。&lt;/p&gt;&#xA;&lt;p&gt;どれぐらいスクロールさせた時に音が出るかも、パラメーターとして与えることができます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2013/05/fartscroll-js/fartscroll-usage.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2013/05/fartscroll-js/fartscroll-usage_hu_f6af7414259996f7.webp 480w, https://labs.cybozu.co.jp/blog/akky/2013/05/fartscroll-js/fartscroll-usage_hu_41a4d4cdaaa6b346.webp 547w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2013/05/fartscroll-js/fartscroll-usage.png&#34; width=&#34;547&#34; height=&#34;412&#34; alt=&#34;fartscroll-usage&#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://www.theonion.com/&#34;&gt;The Onion&lt;/a&gt; は、日本でいう &lt;a href=&#34;http://bogusne.ws/&#34;&gt;bogusnews&lt;/a&gt; みたいな、嘘ニュースで笑いを取ることで有名なサイトです。&lt;/p&gt;&#xA;&lt;p&gt;# 今bogusnewsのトップにあるのも&lt;a href=&#34;http://bogusne.ws/article/%E4%BA%BA%E6%B0%97%E3%82%A2%E3%83%8B%E3%83%A1%E3%80%8C%E9%80%B2%E6%92%83%E3%81%AE%E5%B7%A8%E4%BA%BA%E3%80%8D%E3%80%81%E3%82%B5%E3%82%B7%E3%83%A3%E3%81%AE%E6%94%BE%E5%B1%81%E3%82%B7%E3%83%BC%E3%83%B3.html&#34;&gt;屁のニュース&lt;/a&gt;ですね。流行ってるの?&lt;/p&gt;&#xA;&lt;p&gt;その The Onion 技術チームが新たにリリースしたこのライブラリは、jQueryベースで作られていて、&lt;a href=&#34;https://github.com/theonion/fartscroll.js&#34;&gt;GitHubで公開されています&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;script type=&#34;text/javascript&#34; src=&#34;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2013/05/fartscroll.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script type=&#34;text/javascript&#34;&gt;if (location.href.match(/http:\/\/developer.cybozu.co.jp\/akky\/2013\/05\/fartscroll-js\//)) { fartscroll(200); }&lt;/script&gt;</description>
			</item>
			<item>
				<title>slitscanner.js - 動画をスリットスキャンして一枚の画像に収めるライブラリ/ブックマークレット</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/</link>
				<pubDate>Tue, 22 Jan 2013 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/</guid>
				<description>&lt;p&gt;「スリットスキャン」とは、&lt;a href=&#34;http://www.fabloid.jp/2012/11/21/surreal-video-shows/&#34;&gt;こちらで解説されています&lt;/a&gt;が、時間軸のある動画などを、フレームを動画上の場所ごとにずらすことで作られる特殊な映像効果、のようです。&lt;/p&gt;&#xA;&lt;p&gt;アナログの時代はカメラの前に置いたスリットを動かすことで、デジタルになってからは動画編集ソフトで、こういった効果をつけているそうです。&lt;/p&gt;&#xA;&lt;p&gt;プロが人の手で編集を加えれば、独特の不思議な映像はもちろんできるのですが、VimeoやYouTubeなどの動画サービスで再生している動画を、ブラウザ上でそのままスリットスキャンしてしまおう、というのがSha Hwangさんによる&lt;a href=&#34;http://sketches.postarchitectural.com/slitscanner/&#34;&gt;slitscanner.js&lt;/a&gt;。HTML5のビデオプレイヤーで再生できる動画をスリットスキャンで一枚の画像にまとめてくれるライブラリ(とライブラリを使ったブックマークレット)です。&lt;/p&gt;&#xA;&lt;p&gt;上記ライブラリページのブックマークレットをブックマークしておいて、&lt;a href=&#34;http://vimeo.com/&#34;&gt;Vimeo&lt;/a&gt;で適当な動画を開き、右下の&amp;quot;Switch to HTML5 Player&amp;quot;で(Flashプレイヤーではなく)HTML5プレイヤーを使うようにしてから、ブックマークレットを実行すると、動画の再生にあわせてスリットスキャンした画像が作られていきます。&lt;/p&gt;&#xA;&#xA;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;iframe&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;src=&#34;https://player.vimeo.com/video/56902953?dnt=0&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allow=&#34;fullscreen&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/iframe&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;上の動画から作ってみたスリットスキャン画像がこれ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2013/01/slitscanner-js/slitscanned-56902953/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscanned-56902953_hu_915496a98027eae3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscanned-56902953_hu_ec91a9353982f6be.webp 768w, https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscanned-56902953_hu_fb79c1291d177cd8.webp 861w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscanned-56902953.png&#34; width=&#34;861&#34; height=&#34;706&#34; alt=&#34;slitscanned-56902953&#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;&#xA;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;iframe&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;src=&#34;https://player.vimeo.com/video/57463725?dnt=0&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allow=&#34;fullscreen&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/iframe&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;もう一つためしてみました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2013/01/slitscanner-js/slitscan-57463725/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscan-57463725_hu_b7bcd8d2d6d6b7f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscan-57463725_hu_2009f0517cb33a11.webp 768w, https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscan-57463725_hu_633e17df48776c2b.webp 876w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2013/01/slitscanner-js/slitscan-57463725.png&#34; width=&#34;876&#34; height=&#34;711&#34; alt=&#34;slitscan-57463725&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;動きの早い動画だと細切れになりすぎて、よくわからない画像ができてしまいますね。Vimeoだけじゃなく、HTML5プレイヤーを使っていればYouTubeなどでも使えるのですが、YouTubeの場合は広告がFlash Playerで再生されるので面倒なことがあるとか。&lt;/p&gt;&#xA;&lt;p&gt;うまくはまれば、長時間動画の雰囲気や盛り上がっているポイントを見つけるのに役立つかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;ブラウザで再生されている動画を、手元で加工することで面白くしたり発見したり、ということも、いろいろ出てくるのかもしれないですね。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;http://flowingdata.com/2013/01/21/slitscanning-online-videos/&#34;&gt;Slitscanning online videos&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
