<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>通信 on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/%E9%80%9A%E4%BF%A1/</link>
		<description>Recent content in 通信 on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Tue, 23 Aug 2022 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/%E9%80%9A%E4%BF%A1/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Googleと通信する度に音を鳴らすツール</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/08/tool-makes-noise-when-google-data-collects/</link>
				<pubDate>Tue, 23 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/08/tool-makes-noise-when-google-data-collects/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/berthubert/googerteller&#34;&gt;berthubert/googerteller&lt;/a&gt; は、Googleとの通信を可視化(可聴化?)するオープンソースのツールです。&lt;/p&gt;&#xA;&lt;p&gt;ツールは tcpdump で出力した通信先のIPアドレスを、既知の Google サーバー群の IPアドレスとパターンマッチし、オーディオライブラリの&lt;a href=&#34;https://github.com/espeak-ng/pcaudiolib&#34;&gt;espeak-ng/pcaudiolib&lt;/a&gt; で音を鳴らすという仕組みで動いています。&lt;/p&gt;&#xA;&lt;p&gt;作者の Bert Hubert さん自身が、オランダ政府サイトの求職ページを開いた時にどれだけの通信が Google との間で発生しているかを twitter で見せてくれています。&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ブラウザのアドレスバーでの文字入力時の音は キーワード予測、Google検索の時の音はもちろん、ボタン上でホバーした時やページ遷移した時の音は Google Analytics でしょうか。&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=32549604&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pixels - Bluetooth通信するTRPG用電子サイコロ</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/</link>
				<pubDate>Fri, 14 May 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.kickstarter.com/projects/pixels-dice/pixels-the-electronic-dice/&#34;&gt;Pixels&lt;/a&gt; 電子サイコロは、スマートフォンと連動する光るサイコロ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/pixels-d20-dice.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/pixels-d20-dice.gif&#34; width=&#34;680&#34; height=&#34;383&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;!-- Legacy embedded HTML preserved:&#xA;&lt;iframe width=&#34;640&#34; height=&#34;360&#34; src=&#34;https://www.kickstarter.com/projects/pixels-dice/pixels-the-electronic-dice/widget/video.html&#34; frameborder=&#34;0&#34; scrolling=&#34;no&#34;&gt;&lt;/iframe&gt;&#xA;--&gt;&#xA;&lt;p&gt;よくある6面体のサイコロだけでなく、TRPG(ロールプレイングゲーム)などで使われる4面体や20面体などのセットで揃っています。&lt;/p&gt;&#xA;&lt;p&gt;Bluetooth でつながっているため、出した目の状態はリアルタイムでアプリ側で確認することができます。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/pixels-dice-number-tracked.gif&#34;&gt;&lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/pixels-dice-number-tracked.gif&#34; width=&#34;680&#34; height=&#34;383&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#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/05/pixels-electric-dice/pixels-charging.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/pixels-electric-dice/pixels-charging_hu_994bf3754bedd18f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/pixels-charging_hu_d1b46f53a3a1f906.webp 647w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/05/pixels-electric-dice/pixels-charging.png&#34; width=&#34;647&#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;クラウドファンディングサイト Kickstarter で寄付を募っていましたが、短期間で目標を達成したところ。最初からPCやインターネット上でゲームしている人にとっては無駄で無意味に見えるかもしれませんが、ボードゲーム・テーブルゲームからこの世界に入った人たちにとっては、実際にサイコロを振るということに意義も魅力もあるのでしょう。&lt;/p&gt;&#xA;&lt;p&gt;今後一般販売の計画もあるそう。Kickstarter では1個$39 からの価格でした。&lt;/p&gt;&#xA;&lt;p&gt;光るサイコロも、結果が通信で受け取れるサイコロもこれまで見たことはありますが、充電やwebサービスとの連携など、機能を増やして完成度を高めたガジェットかなと思います。&lt;/p&gt;&#xA;&lt;h3 id=&#34;オープンソースとカスタマイズ&#34;&gt;オープンソースとカスタマイズ&lt;/h3&gt;&#xA;&lt;p&gt;サイコロ側、PC側の両方の&lt;a href=&#34;https://github.com/jeansimonet/Pixels&#34;&gt;ソースコードがGitHubで公開&lt;/a&gt;されていて、公式がサポートしていなかったり最悪無くなったりしても、新たに他の製品やサービスと接続するコードを書くこともできるとのこと。&lt;/p&gt;&#xA;&lt;p&gt;たとえば、このソースコード中には&lt;a href=&#34;https://roll20.net/&#34;&gt;Roll20というオンラインでロールプレイングゲームを遊べるwebサービス&lt;/a&gt;に接続するためのChrome拡張がサンプルとして含まれています。手元で本物のサイコロを振ると、結果がこのRoll20 へ送られてそのまま使われるということですね。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&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>
	</channel>
</rss>
