<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>2019-04 on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/archives/2019-04/</link>
		<description>Recent content in 2019-04 on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Fri, 26 Apr 2019 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/archives/2019-04/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Pythonによる自動化の結果、ニューヨーク中でタダメシが食えるようになったエンジニアの話</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/free-dish-by-python-automation/</link>
				<pubDate>Fri, 26 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/free-dish-by-python-automation/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://medium.com/@chrisbuetti/how-i-eat-for-free-in-nyc-using-python-automation-artificial-intelligence-and-instagram-a5ed8a1e2a10&#34;&gt;いかにして私はPython/自動化/AI/インスタグラムを使いニューヨーク市で無料の食事をできるようになったか(How I Eat For Free in NYC Using Python, Automation, Artificial Intelligence, and Instagram)&lt;/a&gt;という記事が面白かったのでご紹介。&lt;/p&gt;&#xA;&lt;p&gt;ニューヨーク在住のデータサイエンティスト、クリス・ブエッティさん(Chris Buetti)が明かした、3万フォロワー超の人気アカウントを育てた秘密。&lt;/p&gt;&#xA;&lt;blockquote&#xA;&#x9;class=&#34;instagram-media&#34;&#xA;&#x9;data-instgrm-captioned&#xA;&#x9;data-instgrm-permalink=&#34;https://www.instagram.com/p/BwCUjL6FnFX&#34;&#xA;&#x9;data-instgrm-version=&#34;14&#34;&#xA;&#x9;style=&#34;&#xA;&#x9;background: #fff;&#xA;&#x9;border: 0;&#xA;&#x9;border-radius: 3px;&#xA;&#x9;box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5), 0 1px 10px 0 rgba(0, 0, 0, 0.15);&#xA;&#x9;margin: 1px;&#xA;&#x9;max-width: 540px;&#xA;&#x9;min-width: 326px;&#xA;&#x9;padding: 0;&#xA;&#x9;width: 99.375%;&#xA;&#x9;width: -webkit-calc(100% - 2px);&#xA;&#x9;width: calc(100% - 2px);&#xA;&#x9;&#34;&#xA;&gt;&#xA;&#x9;&lt;div style=&#34;padding: 16px&#34;&gt;&#xA;&#x9;&#x9;&lt;a&#xA;&#x9;&#x9;&#x9;href=&#34;https://www.instagram.com/p/BwCUjL6FnFX&#34;&#xA;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;background: #ffffff;&#xA;&#x9;&#x9;&#x9;line-height: 0;&#xA;&#x9;&#x9;&#x9;padding: 0 0;&#xA;&#x9;&#x9;&#x9;text-align: center;&#xA;&#x9;&#x9;&#x9;text-decoration: none;&#xA;&#x9;&#x9;&#x9;width: 100%;&#xA;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;target=&#34;_blank&#34;&#xA;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&lt;div style=&#34;display: flex; flex-direction: row; align-items: center&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 50%;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;height: 40px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;margin-right: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;width: 40px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;display: flex;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;flex-direction: column;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 1;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;justify-content: center;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 4px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;margin-bottom: 6px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 100px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 4px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 60px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;div style=&#34;padding: 19% 0&#34;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;style=&#34;display: block; height: 50px; margin: 0 auto 12px; width: 50px&#34;&#xA;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;svg&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;width=&#34;50px&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;height=&#34;50px&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;viewBox=&#34;0 0 60 60&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;version=&#34;1.1&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;xmlns=&#34;https://www.w3.org/2000/svg&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;xmlns:xlink=&#34;https://www.w3.org/1999/xlink&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;g stroke=&#34;none&#34; stroke-width=&#34;1&#34; fill=&#34;none&#34; fill-rule=&#34;evenodd&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;g transform=&#34;translate(-511.000000, -20.000000)&#34; fill=&#34;#000000&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;g&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;path&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;d=&#34;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/path&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/g&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/g&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/g&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/svg&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;div style=&#34;padding-top: 8px&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;color: #3897f0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;font-family: Arial, sans-serif;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;font-size: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;font-style: normal;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;font-weight: 550;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;line-height: 18px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;View this post on Instagram&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;div style=&#34;padding: 12.5% 0&#34;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;display: flex;&#xA;&#x9;&#x9;&#x9;&#x9;flex-direction: row;&#xA;&#x9;&#x9;&#x9;&#x9;margin-bottom: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;align-items: center;&#xA;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 50%;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 12.5px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 12.5px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: translateX(0px) translateY(7px);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 12.5px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: rotate(-45deg) translateX(3px) translateY(1px);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 12.5px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;margin-right: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;margin-left: 2px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 50%;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 12.5px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 12.5px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: translateX(9px) translateY(-18px);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div style=&#34;margin-left: 8px&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 50%;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 20px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 20px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-top: 2px solid transparent;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-left: 6px solid #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-bottom: 2px solid transparent;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: translateX(16px) translateY(-4px) rotate(30deg);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div style=&#34;margin-left: auto&#34;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 0px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-top: 8px solid #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-right: 8px solid transparent;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: translateY(16px);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 12px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 16px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: translateY(-4px);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;width: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;height: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-top: 8px solid #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;border-left: 8px solid transparent;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;transform: translateY(-4px) translateX(8px);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;display: flex;&#xA;&#x9;&#x9;&#x9;&#x9;flex-direction: column;&#xA;&#x9;&#x9;&#x9;&#x9;flex-grow: 1;&#xA;&#x9;&#x9;&#x9;&#x9;justify-content: center;&#xA;&#x9;&#x9;&#x9;&#x9;margin-bottom: 24px;&#xA;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 4px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;height: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;margin-bottom: 6px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;width: 224px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&lt;div&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;style=&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;background-color: #f4f4f4;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;border-radius: 4px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;flex-grow: 0;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;height: 14px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;width: 144px;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&gt;&lt;/div&gt;&lt;/div&#xA;&#x9;&#x9;&#x9;&gt;&#xA;&#x9;&#x9;&lt;/a&gt;&#xA;&#x9;&lt;/div&gt;&#xA;&lt;/blockquote&gt;&lt;script async src=&#34;https://www.instagram.com/embed.js&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;データサイエンス/ソフトウェア開発の知識、自由な時間とインスタグラムの知識があれば再現可能だといいます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>電動キックスクーター シェアリングの LIME、案内音声をハックで差し替えるイタズラに遭う</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/lime-scooter-audio-hacked/</link>
				<pubDate>Wed, 24 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/lime-scooter-audio-hacked/</guid>
				<description>&lt;p&gt;オーストラリア、ブリスベンのカンガルーポイントで、LIME 社のシェアリング電動スクーターが複数台同時にハックされるという事件が発生しています。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Brisbane: Lime Scooter users are reporting bizarre voice messages when connecting and disconnecting from rides. Video: Josh Clarke. &lt;a href=&#34;https://t.co/OyAjjYtcq8&#34;&gt;https://t.co/OyAjjYtcq8&lt;/a&gt; &lt;a href=&#34;https://x.com/hashtag/7NEWS?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;#7NEWS&lt;/a&gt; &lt;a href=&#34;https://t.co/IQ66yrF4tr&#34;&gt;pic.twitter.com/IQ66yrF4tr&lt;/a&gt;&lt;/p&gt;&amp;mdash; 7NEWS Queensland (@7NewsBrisbane) &lt;a href=&#34;https://x.com/7NewsBrisbane/status/1120464091406057472?ref_src=twsrc%5Etfw&#34;&gt;April 22, 2019&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;p&gt;オリジナルの内蔵音声が、何者かの手によって書き換えられたのではということです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=zo7fgswQPJ8&#34;&gt;こちらの動画&lt;/a&gt;では、スクーターを勝手に持ち去った際の警告が差し替えられています。&lt;/p&gt;&#xA;&lt;p&gt;ニュースでも「差別的」と言っていますが、移民風の喋り方などがそれにあたると感じられているのでしょう。&lt;/p&gt;&#xA;&lt;p&gt;LIME や競合の Bird の電動キックスクーターについては、無料で解錠して乗るハックや、&lt;a href=&#34;https://www.gizmodo.jp/2019/02/you-can-add-sudden-acceleration-attacks.html&#34;&gt;リモートから突然ブレーキを掛けるハック&lt;/a&gt;も出ていて、YouTube を検索すれば多数出てきます。&lt;/p&gt;&#xA;&lt;p&gt;欧州中心に電動キックスクーターのシェアが爆発的に広がっているようですが、本体の電子部分が Bluetooth で簡単にアクセスできるタイプのものが有ったり、セキュリティ面で心配な事件も多いようです。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.brisbanetimes.com.au/national/queensland/hacked-lime-scooters-play-offensive-voice-messages-20190423-p51ghx.html&#34;&gt;Brisbane Times&lt;/a&gt; via &lt;a href=&#34;https://www.reddit.com/r/brisbane/comments/bg1gpb/someone_hacked_the_lime_scooters/&#34;&gt;Reddit&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>ブラウザのアドレスバーをイコライザーっぽく</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/</link>
				<pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/</guid>
				<description>&lt;p&gt;URL のハッシュ部分を書き換えることで、ブラウザのアドレスバーをグラフィックイコライザーにするというアイデアです。&lt;/p&gt;&#xA;&#xA;&lt;p&gt;これのソースコードがなんと2ツイートに収まるサイズ。&lt;/p&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;https://developer.mozilla.org/ja/docs/Web/API/MediaDevices/getUserMedia&#34;&gt;MediaDevices.getUserMedia()&lt;/a&gt;でマイクからの音声を取り込み、&lt;/p&gt;&#xA;&#xA;&lt;p&gt;動いた!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer_hu_bf071593e3265d26.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer_hu_8ba6c693a291191e.webp 585w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer.png&#34; width=&#34;585&#34; height=&#34;504&#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/2019/04/browser-addressbar-equalizer/address-bar-equalizer-causes-browser-history-mess.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer-causes-browser-history-mess_hu_a44c4481dffff4e3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer-causes-browser-history-mess_hu_efbe6867e424cae7.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer-causes-browser-history-mess_hu_65ef4030a89664b7.webp 837w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/browser-addressbar-equalizer/address-bar-equalizer-causes-browser-history-mess.png&#34; width=&#34;837&#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;replaceState()を使った、履歴が壊れないバージョンも提案されています。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;// Alternative to avoid polluting browser history:&lt;br&gt;function z() {&lt;br&gt;  setTimeout(z, 40);&lt;br&gt;  a.getByteFrequencyData(d);&lt;br&gt;  var s = [];&lt;br&gt;  d.forEach(v =&amp;gt; s.push(l[Math.floor((v / 255) * 8)]));&lt;br&gt;  var t = document.title = s.join(&amp;quot;&amp;quot;);&lt;br&gt;  history.replaceState(history.state, t, &amp;#39;#&amp;#39; + t);&lt;br&gt;}&lt;/p&gt;&amp;mdash; Spencer (@spe_) &lt;a href=&#34;https://x.com/spe_/status/1118950773889617921?ref_src=twsrc%5Etfw&#34;&gt;April 18, 2019&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;</description>
			</item>
			<item>
				<title>ブラウザのファビコンでライブストリーム</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/favicon-livestream/</link>
				<pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/favicon-livestream/</guid>
				<description>&lt;p&gt;ファビコンでアニメーションとかは以前からあるネタなので、その延長にあるアイデアというか。&lt;a href=&#34;https://wybiral.github.io/code-art/projects/tiny-mirror/&#34;&gt;ファビコンでカメラが映した映像を表示させるというプログラム&lt;/a&gt;です。&lt;/p&gt;&#xA;&lt;p&gt;作者の方がツイッターに動画を上げています。&lt;/p&gt;&#xA;&#xA;&lt;p&gt;ウェブカムに向かって手を振ってる様子がわかるでしょうか?&lt;/p&gt;&#xA;&lt;p&gt;自分で試したい場合、&lt;a href=&#34;https://wybiral.github.io/code-art/projects/tiny-mirror/&#34;&gt;こちらのサイト&lt;/a&gt;をChrome/Firefoxなどで開き、カメラへのアクセスを許可する必要があります。&lt;/p&gt;&#xA;&lt;p&gt;# Safari では動かないというレポートがあります&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/favicon-livestream/favicon-livestream.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/favicon-livestream/favicon-livestream_hu_3518d778a862be7c.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/favicon-livestream/favicon-livestream_hu_27f05802beee25d8.webp 592w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/favicon-livestream/favicon-livestream.png&#34; width=&#34;592&#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;ソースコードは&lt;a href=&#34;https://wybiral.github.io/code-art/projects/tiny-mirror/index.js&#34;&gt;こちら&lt;/a&gt;。短いですね。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=19712167&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Adorable Avatars - キーからランダムに生成されるアバター</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/adorable-avatars-returns-the-same-generated-avatar/</link>
				<pubDate>Fri, 19 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/adorable-avatars-returns-the-same-generated-avatar/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://avatars.adorable.io/&#34;&gt;Adorable Avatars(愛すべきアバターたち)&lt;/a&gt;は、カートゥーン風のイラストアイコンを生成してくれるwebサービスです。&lt;/p&gt;&#xA;&lt;p&gt;フォームで文字列を入れると、文字列に応じてアバターが変わります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://avatars.adorable.io/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/adorable-avatars-returns-the-same-generated-avatar/adorable-avatars_hu_771e3fc09534bde4.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/adorable-avatars-returns-the-same-generated-avatar/adorable-avatars_hu_86e8dbba26c6bbd9.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/04/adorable-avatars-returns-the-same-generated-avatar/adorable-avatars.png&#34; width=&#34;658&#34; height=&#34;639&#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;akky&amp;rdquo; と入れた時に生成されるアバター画像。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://api.adorable.io/avatars/285/akky.png&#34; alt=&#34;Adorable Avatars で生成したアイコン例&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;キーはテキストなら何でも(日本語でも)良いみたいですが、サンプルとしては @ドメイン のメールアドレスが提示されています。Gravatar と似ているところもありますね。あちらは自分のメールアドレスとアイコン画像を登録して使うものですが、できた画像が気にならず、他人に同じものが使われても問題ない状況なら、ずっとお手軽です。&lt;/p&gt;&#xA;&lt;p&gt;たとえば、アイコンつきの掲示板などで使えば、設定されてないアイコンを発言者の名前などをキーにしてこのAPIで表示することで、デフォルトアイコンだらけではなく同じ発言者が追いやすいようにできたりするのではないでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;ランダム生成は嫌で自分で決めたい場合は、&lt;a href=&#34;https://api.adorable.io/avatars/list&#34;&gt;顔パーツのリスト&lt;/a&gt;から自分で組み合わせてアバターを作り、それを呼び出して表示させることもできます。&lt;/p&gt;&#xA;&lt;p&gt;MITライセンスで&lt;a href=&#34;https://github.com/adorableio/avatars-api-middleware&#34;&gt;ソースも公開&lt;/a&gt;されており、顔のパーツのバリエーションを自分で用意すれば、同じ仕組みで別のアバター提供サイトを作ることも簡単そうです。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>ワードプレステーマ販売の Pipdig が、顧客サイトを使って競合にDDoSを掛けていた</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/wordpress-theme-pipdig-interferes-rivals/</link>
				<pubDate>Fri, 12 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/wordpress-theme-pipdig-interferes-rivals/</guid>
				<description>&lt;p&gt;ブログツール WordPress の有料デザインテーマを販売する &lt;a href=&#34;https://www.pipdig.co/&#34;&gt;Pipdig&lt;/a&gt; が、販売したテーマの中に競合製品の妨害をするなどのコードを隠し入れていた、ということで&lt;a href=&#34;https://news.ycombinator.com/item?id=19538779&#34;&gt;騒ぎになっています&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;イギリスの&lt;a href=&#34;http://www.jemjabella.co.uk/2019/security-alert-pipdig-insecure-ddosing-competitors/&#34;&gt;ジェム・ジャベラ氏(Jem Jabella)のレポート&lt;/a&gt;が口火を切った疑惑は、Pipdig の売っているテーマが利用している Pipdig Power Pack (P3) プラグインの動作に関するもの。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.pipdig.co/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/wordpress-theme-pipdig-interferes-rivals/pipdig-site_hu_bf129ec2c78ca89f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/wordpress-theme-pipdig-interferes-rivals/pipdig-site_hu_33147230fb75a62f.webp 765w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/wordpress-theme-pipdig-interferes-rivals/pipdig-site.png&#34; width=&#34;765&#34; height=&#34;639&#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;「有料テーマを買って入れたら、ワードプレスのサイトがおかしな挙動を示すようになった」と顧客から調査を頼まれた彼女は、サイトがひどく遅くなっていることに気づきます。P3 プラグインがその原因だろうと突き止めた彼女は、P3が以下のようなことをしていると突き止めたと言います。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;利用者ブロガーのサーバーを使って、競合のウェブサイトに DDoS を掛ける&lt;/li&gt;&#xA;&lt;li&gt;利用者ブロガーのコンテンツ内のリンクを変更し、競合サイトの紹介リンクをPipdig へのリンクに変更する&lt;/li&gt;&#xA;&lt;li&gt;GDPR違反となるような許可の無い利用者ブログの情報を収集する&lt;/li&gt;&#xA;&lt;li&gt;管理者パスワードを変更して利用者ブログへのアクセス権を得る&lt;/li&gt;&#xA;&lt;li&gt;データベースの全テーブルを削除するスイッチを内蔵&lt;/li&gt;&#xA;&lt;li&gt;Pipdigが不要と判断する他のプラグインを、ユーザーに問い合わせることなく無効化&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;管理者のメールアドレスをテキストファイルに出力し、そのログインパスワードを変更する機能などもあり、これが(WordPress に詳しくない)ユーザーをサポートする際に使おうという機能ではないかという擁護もありましたが、サポートを依頼したユーザーだけでなく全利用者に対して使えるようになっていることなど、Pipdig に対する疑念が表明されています。&lt;/p&gt;&#xA;&lt;p&gt;別の操作。Bluehost という競合のテーマが有効になっていたら、そのキャッシュ機能を切り、WordPress公式に偽装したドメインに置いたコードを実行した上で「サイトが遅くなってますか?」というメッセージを表示させてた、というもの。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Another one from the &lt;a href=&#34;https://x.com/pipdig?ref_src=twsrc%5Etfw&#34;&gt;@pipdig&lt;/a&gt; plugin. If you use one of their themes on &lt;a href=&#34;https://x.com/bluehost?ref_src=twsrc%5Etfw&#34;&gt;@bluehost&lt;/a&gt; then they intentionally slow your website down by disabling the BlueHost cache plugin, then they can inject content with the title &amp;quot;Is your host slowing you down?&amp;quot; CC &lt;a href=&#34;https://x.com/jemjabella?ref_src=twsrc%5Etfw&#34;&gt;@jemjabella&lt;/a&gt; &lt;a href=&#34;https://x.com/heyitsmikeyv?ref_src=twsrc%5Etfw&#34;&gt;@heyitsmikeyv&lt;/a&gt; &lt;a href=&#34;https://t.co/48DUXsDyBj&#34;&gt;pic.twitter.com/48DUXsDyBj&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>BugBug - 機械学習によるバグの自動トリアージ by Mozilla/Firefox</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/bugbug-triages-bugs-by-machine-learning/</link>
				<pubDate>Wed, 10 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/bugbug-triages-bugs-by-machine-learning/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://hacks.mozilla.org/&#34;&gt;Mozilla Hacks&lt;/a&gt; で、2月から導入された &lt;a href=&#34;https://github.com/mozilla/bugbug&#34;&gt;BugBug&lt;/a&gt; という&lt;a href=&#34;https://hacks.mozilla.org/2019/04/teaching-machines-to-triage-firefox-bugs/&#34;&gt;バグレポートの自動分類ツールの紹介&lt;/a&gt;が読めます。&lt;/p&gt;&#xA;&lt;p&gt;Mozilla の様々な製品/コンポーネントに対して発行されたバグ報告を、とりあえずどの製品のどのコンポーネントに属するものかを分類して、そのコンポーネントの担当者に早く届くようにする、というのか今回のツール導入の目的だそうです。&lt;/p&gt;&#xA;&lt;p&gt;大災害時などに負傷者の治療作業の順番をつける「トリアージ」と同様のことをバグに対して行う「バグトリアージ」というわけ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://hacks.mozilla.org/2019/04/teaching-machines-to-triage-firefox-bugs/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/bugbug-triages-bugs-by-machine-learning/bugbug_high_level_arch-500x233_hu_1d5ccbc163040988.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/bugbug-triages-bugs-by-machine-learning/bugbug_high_level_arch-500x233_hu_56b2ef48f25d93ae.webp 500w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/bugbug-triages-bugs-by-machine-learning/bugbug_high_level_arch-500x233.png&#34; width=&#34;500&#34; height=&#34;233&#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;Teaching machines to triage Firefox bugs&amp;rdquo; より、概念図&lt;/p&gt;&#xA;&lt;p&gt;これまではというと、ボランティアや開発者が人手でバグを分類し設定することで担当者に届けられていたのですが、ここの分類に日数が掛かっていて、バグが解消されるまでの期間が長くなっていた、と。&lt;/p&gt;&#xA;&lt;p&gt;機械学習で分類させるには、どんなバグレポートがどのコンポーネントに対するものか、という過去の正しいデータが必要ですが、Mozilla でこれまで発行されたバグレポートは20年以上の期間での153万件を越えるそう。&lt;/p&gt;&#xA;&lt;p&gt;これが人力でおおむね正しく分類されているので、これを&lt;a href=&#34;https://github.com/dmlc/xgboost&#34;&gt;XGBoost&lt;/a&gt;に食わせることで、新たに到着したバグレポートが属するコンポーネントの予測が自動的にできるのだそうです。&lt;/p&gt;&#xA;&lt;p&gt;2月末に一部のプロダクトに対して導入運用を始め、350件のバグを自動分類し、そのチケットの解決までの日数の(外れ値を除いた)中央値は2日間と改善されたそう。ちなみに、今は60%の信頼度で分類して、80%以上の適合率を達成しているそうです。&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://venturebeat.com/2019/04/09/mozillas-bugbug-classifies-firefox-bug-reports-with-ai/&#34;&gt;VentureBeat&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>電動研磨機レース</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/belt-sander-racings/</link>
				<pubDate>Mon, 08 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/belt-sander-racings/</guid>
				<description>&lt;p&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/tugTNKYrWdk?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;上は2007年、ラスベガスのカンファレンスでの模様。&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/0V7z8kH2wDE?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;&lt;a href=&#34;http://www.sotexbsra.com/&#34;&gt;テキサス州電動研磨機レース協会&lt;/a&gt;のサイトに載っていたルールでは、電源コードは必ず必要。充電式は失格ということのようです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.bertiesinn.com/beltsanderrace.html&#34;&gt;ドライバーが搭乗して競うベルトサンダーレース&lt;/a&gt;もあって、&lt;a href=&#34;http://www.bertiesinn.com/&#34;&gt;ペンシルバニア州のBerties Inn というレストラン&lt;/a&gt;で毎年開催され、今年は第29回というから1990年頃からやっていることになりますね。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.bertiesinn.com/beltsanderrace.html&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/belt-sander-racings/birties-inn-belt-sander-racing_hu_f8ff274b615c3807.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/belt-sander-racings/birties-inn-belt-sander-racing_hu_28669ec06a6ea0ba.webp 768w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/belt-sander-racings/birties-inn-belt-sander-racing.jpg&#34; width=&#34;768&#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;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/F9hCPe4KNtg?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>HTTPステータスコードを絵文字にする提案</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/http-status-code-emoji/</link>
				<pubDate>Tue, 02 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/http-status-code-emoji/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://sasezaki.hatenablog.com/entry/2015/03/07/195908&#34;&gt;PSR-7&lt;/a&gt; のユーティリティクラス http-message-util において、&lt;a href=&#34;https://github.com/php-fig/http-message-util/pull/16&#34;&gt;ステータスコードの定数名を絵文字にしてはどうか、という提案&lt;/a&gt;が出ています。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;週末が4月の始まり付近に掛かるという新事実にちなみ。絵文字はステータスコードの新標準となりつつあります。特定のステータスコードの数字にどんな意味があるかというのを覚えなくても、絵文字によってステータスコードを見た人々の感情を表すことができます。またこれは、404エラーが出たというユーザーからのつきない呼び出しを解消します。彼らは電話口で、建設中の絵文字が表示されたので完全に状況を把握したと述べることでしょう。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/php-fig/http-message-util/pull/16/files/096f7ced80232ad63801138de217ae96b95a1957&#34;&gt;差分&lt;/a&gt;を見てもらった方がはやいでしょうか。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/php-fig/http-message-util/pull/16/files/096f7ced80232ad63801138de217ae96b95a1957&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/http-status-code-emoji/emoji-status-code_hu_1fd835eaf4d5bed3.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/http-status-code-emoji/emoji-status-code_hu_69eeab2734689d5.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/04/http-status-code-emoji/emoji-status-code_hu_4a556824d110b68c.webp 816w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/http-status-code-emoji/emoji-status-code.png&#34; width=&#34;816&#34; height=&#34;866&#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;# 4月1日の提案です。プルリクエストまで掛かってますが。&lt;/p&gt;</description>
			</item>
			<item>
				<title>docker/surprise - Docker誕生日</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/docker-surprise-birthday/</link>
				<pubDate>Mon, 01 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/docker-surprise-birthday/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://hub.docker.com/r/docker/surprise&#34;&gt;docker/surprise&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;docker run -it -rm docker/surprise&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2019/04/docker-birthday.mp4&#34;&gt;https://labs-staging.31tools.com/blog/akky/wp-content/uploads/2019/04/docker-birthday.mp4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Docker6周年記念イメージだそうです。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/docker/birthday&#34;&gt;ソースコードはこちら&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>StackOverflow が90年代風にデザイン変更も、Netscape Navigator 3.0で表示できず</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/</link>
				<pubDate>Mon, 01 Apr 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/</guid>
				<description>&lt;p&gt;StackOverflow をはじめ、StackExchange の各質問サイトが一斉にデザイン変更されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackoverflow-aprilfool.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackoverflow-aprilfool_hu_a244c8209a670b29.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackoverflow-aprilfool_hu_7cb12144964176df.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackoverflow-aprilfool_hu_d3fb74b5c52f6fc8.webp 1172w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackoverflow-aprilfool.png&#34; width=&#34;1172&#34; height=&#34;636&#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://meta.stackexchange.com/questions/326036/announcing-the-stack-exchange-time-machine&#34;&gt;同社のアナウンスによれば&lt;/a&gt;、この「タイムマシン機能」によって、もしStackExchangeが1998年に存在していたなら、を追体験できるということ。&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/04/stackoverflows-new-90s-design/stackexchange-guestbook.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-guestbook_hu_329fe7cec74d2e11.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-guestbook_hu_e0ec3e44da0a8e07.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-guestbook_hu_5d75bee1d24c1d86.webp 1055w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-guestbook.png&#34; width=&#34;1055&#34; height=&#34;714&#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;しかし、ゲストブックの後ろ、サイトの末尾に高らかに「Netscape 3.0で最も良く表示されます」アイコンをつけたせいで、&lt;a href=&#34;https://meta.stackexchange.com/questions/326023/does-not-work-on-netscape-navigator-3-0&#34;&gt;バグレポート&lt;/a&gt;が出されています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-not-showed-on-netscape-navigator-3.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-not-showed-on-netscape-navigator-3_hu_e9ffc32f1e8a056f.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-not-showed-on-netscape-navigator-3_hu_d0bcc1ab3c59de44.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-not-showed-on-netscape-navigator-3_hu_674e2050c261a218.webp 820w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/04/stackoverflows-new-90s-design/stackexchange-not-showed-on-netscape-navigator-3.png&#34; width=&#34;820&#34; height=&#34;676&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;「Netscape Navigator 3.0 で表示したが何も出てこない」&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;試したんかい。&lt;/p&gt;&#xA;&lt;p&gt;しかし、実際問題、NN3 でも表示できるようにするのって大変そう。NN3 で「だけ」表示ならともかく。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
