tag:blogger.com,1999:blog-69394117935232084332024-03-19T12:59:26.180+09:00sanpei's blogsanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.comBlogger83125tag:blogger.com,1999:blog-6939411793523208433.post-30386497281865410152024-02-25T16:55:00.005+09:002024-03-10T19:11:36.032+09:00amazon Fire Max 11でGoogle Play<h2 style="text-align: left;">背景 </h2><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="text-align: left;">有限工房さんの「<a href="https://ygkb.jp/6312" target="_blank">FireタブレットにGoogle Playをインストールする方法【2023年版】</a>」を参考にGoogle Playを入れてみたが、失敗した。</div><div style="text-align: left;">Google Playアプリのapkだけ別なものを入れたら成功したので、そのメモ</div></blockquote><div style="text-align: left;"><br /></div><h2 style="text-align: left;">環境</h2><div><ul style="text-align: left;"><li>amazon Fire Max 11 FireOS 8.3.2.1</li></ul><div><br /></div></div><h2 style="text-align: left;">有限工房さんから入れ替えたapk情報</h2><div><ul style="text-align: left;"><li>NGなAPK</li></ul></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div>com.android.vending_32.8.18-21_0_PR_481699564-83281810_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk</div><div><br /></div><div>Google Playを起動して、一瞬Google Playの画面を表示してGoogle Playアプリが落ちていました</div></blockquote><div><br /></div><div><ul style="text-align: left;"><li>OKなAPK</li></ul></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div><div style="text-align: left;">com.android.vending_36.2.11-29_0_PR_539142984-83621120_minAPI29(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk</div></div></blockquote><div><br /></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div style="text-align: left;">ともにapkmirrorより入手</div></blockquote><h2 style="text-align: left;">問題なく動いている主なアプリ</h2><div><ul style="text-align: left;"><li>Google Keep</li><li>Gmail</li><li>Chrome</li><li>Yahoo!ファイナンス</li><li>tenki.jp</li><li>WeatherNews</li><li>Yahoo!天気</li><li>Google map</li><li>Google Drive</li><li>Pocket Cast</li><li>Termius</li><li>ソコネオ</li><li>メルカリ</li><li>Google</li><li>TVer</li><li>Radiko</li></ul></div><h2 style="text-align: left;">現時点の制限</h2><div>試した範囲でうまく動いていないアプリ。</div><div><ul style="text-align: left;"><li>Google Calender</li><ul><li>起動して、ガイダンス画面は進むが、いざCalender画面に移動するところでアプリが停止NG</li><li>adb logcatの<a href="https://www.sanpei.org/~sanpei/tmp/fire-max-11-calender-logcat.txt" target="_blank">結果</a></li><li>以下を実行したが効果なし</li><ul><li>adb shell pm install-existing com.android.calendar</li></ul><li>なお、FireOS 7のFire HD 11 Plus(2021年モデル)ではGoogle Calenderは動いている。</li></ul></ul><ul style="text-align: left;"><li>Google PlayからいれたRadiko</li><ul><li>起動して「ラジコのご利用には位置情報が必要です」の画面で、下部青色の部分でぐるぐる回ったまま</li><li>特に何もしていないが、動くようになった(8.1.0)</li></ul></ul></div><div><br /></div><div><br /></div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-47508252569465573372024-02-16T00:00:00.001+09:002024-03-19T12:58:45.284+09:00Release date table of Android OS Developer Preview/Beta<p> </p><google-sheets-html-origin><google-sheets-html-origin><table border="1" cellpadding="0" cellspacing="0" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: auto; width: 100%;" xmlns="http://www.w3.org/1999/xhtml"><colgroup><col width="229"></col><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col></colgroup><tbody><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Android OS version"}" style="border: 1px solid rgb(0, 0, 0); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Android OS version</td><td data-sheets-hyperlink="https://developer.android.com/about/versions/15" data-sheets-value="{"1":3,"3":15}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/15" target="_blank">15</a></td><td data-sheets-hyperlink="https://developer.android.com/about/versions/14" data-sheets-value="{"1":3,"3":14}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/14" target="_blank">14</a></td><td data-sheets-hyperlink="https://developer.android.com/about/versions/13" data-sheets-value="{"1":3,"3":13}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/13" target="_blank">13</a></td><td data-sheets-hyperlink="https://developer.android.com/about/versions/12" data-sheets-value="{"1":3,"3":12}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/12" target="_blank">12</a></td><td data-sheets-hyperlink="https://developer.android.com/about/versions/11" data-sheets-value="{"1":3,"3":11}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/11" target="_blank">11</a></td><td data-sheets-hyperlink="https://developer.android.com/about/versions/10" data-sheets-value="{"1":2,"2":"10(Q)"}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/10" target="_blank">10(Q)</a></td><td data-sheets-hyperlink="https://developer.android.com/about/versions/pie" data-sheets-value="{"1":2,"2":"9(Pie)"}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://developer.android.com/about/versions/pie" target="_blank">9(Pie)</a></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Release Year"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Release Year</td><td data-sheets-value="{"1":3,"3":2024}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2024</td><td data-sheets-value="{"1":3,"3":2023}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2023</td><td data-sheets-value="{"1":3,"3":2022}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2022</td><td data-sheets-value="{"1":3,"3":2021}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2021</td><td data-sheets-value="{"1":3,"3":2020}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2020</td><td data-sheets-value="{"1":3,"3":2019}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2019</td><td data-sheets-value="{"1":3,"3":2018}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2018</td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Name"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Name</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":2,"2":"Upside Down Cake"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Upside Down Cake</td><td data-sheets-value="{"1":2,"2":"Tiramisu"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Tiramisu</td><td data-sheets-value="{"1":2,"2":"Snow Cone"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Snow Cone</td><td data-sheets-value="{"1":2,"2":"Red Velvet Cake"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Red Velvet Cake</td><td data-sheets-value="{"1":2,"2":"Quince Tart"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Quince Tart</td><td data-sheets-value="{"1":2,"2":"Pie"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Pie</td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"API level"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">API level</td><td data-sheets-value="{"1":2,"2":"35?"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">35?</td><td data-sheets-value="{"1":3,"3":34}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">34</td><td data-sheets-value="{"1":3,"3":33}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">33</td><td data-sheets-value="{"1":3,"3":31}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">31</td><td data-sheets-value="{"1":3,"3":30}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">30</td><td data-sheets-value="{"1":3,"3":29}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">29</td><td data-sheets-value="{"1":3,"3":28}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">28</td></tr><tr style="height: 9px;"><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Developer Preview 1"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Developer Preview 1</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2024/02/first-developer-preview-android15.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45338}" style="background-color: #cccccc; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2024/02/first-developer-preview-android15.html" target="_blank">2/16</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/02/first-developer-preview-android14.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":44965}" style="background-color: #cccccc; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/02/first-developer-preview-android14.html" target="_blank">2/8</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/02/first-preview-android-13.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":44967}" style="background-color: #cccccc; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/02/first-preview-android-13.html" target="_blank">2/10</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/02/android-12-dp1.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":44975}" style="background-color: #cccccc; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/02/android-12-dp1.html" target="_blank">2/18</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/02/Android-11-developer-preview.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":44976}" style="background-color: #cccccc; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/02/Android-11-developer-preview.html" target="_blank">2/19</a></td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Developer Preview 2"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Developer Preview 2</td><td data-sheets-value="{"1":2,"2":"March"}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">March</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/03/android-14-developer-preview-2.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":44993}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/03/android-14-developer-preview-2.html" target="_blank">3/8</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/03/second-preview-android-13.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45002}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/03/second-preview-android-13.html" target="_blank">3/17</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/03/android-12-developer-preview-2.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45002}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/03/android-12-developer-preview-2.html" target="_blank">3/17</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/03/android-11-developer-preview-2.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45003}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/03/android-11-developer-preview-2.html" target="_blank">3/18</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/03/introducing-android-q-beta.html" data-sheets-value="{"1":2,"2":"3/13(Beta1)"}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/03/introducing-android-q-beta.html" target="_blank">3/13(Beta1)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2018/03/previewing-android-p.html" data-sheets-value="{"1":2,"2":"3/7(DP1)"}" style="background-color: #f3f3f3; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2018/03/previewing-android-p.html" target="_blank">3/7(DP1)</a></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Developer Preview 3"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Developer Preview 3</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/04/android-12-developer-preview-3.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45037}" style="background-color: #93c47d; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/04/android-12-developer-preview-3.html" target="_blank">4/21</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/04/android-11-developer-preview-3.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45039}" style="background-color: #93c47d; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/04/android-11-developer-preview-3.html" target="_blank">4/23</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/04/android-q-beta-2-update.html" data-sheets-value="{"1":2,"2":"4/3(Beta2)"}" style="background-color: #93c47d; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/04/android-q-beta-2-update.html" target="_blank">4/3(Beta2)</a></td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Beta1"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Beta1</td><td data-sheets-value="{"1":2,"2":"Apr"}" style="background-color: #93c47d; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Apr</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/04/android-14-beta-1.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45028}" style="background-color: #93c47d; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/04/android-14-beta-1.html" target="_blank">4/12</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/04/android-13-beta-1-blog.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45042}" style="background-color: #93c47d; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/04/android-13-beta-1-blog.html" target="_blank">4/26</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/05/whats-new-in-android-12-beta.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45064}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/05/whats-new-in-android-12-beta.html" target="_blank">5/18</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/05/android-11-beta-plans.html" data-sheets-value="{"1":2,"2":"5/6(DP4)"}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/05/android-11-beta-plans.html" target="_blank">5/6(DP4)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-beta-3-more.html" data-sheets-value="{"1":2,"2":"5/7(Beta3)"}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/05/whats-new-in-android-q-beta-3-more.html" target="_blank">5/7(Beta3)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2018/05/whats-new-in-android-p-beta.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45054}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2018/05/whats-new-in-android-p-beta.html" target="_blank">5/8</a></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Beta2"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Beta2</td><td data-sheets-value="{"1":2,"2":"May"}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">May</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/05/android-14-beta-2.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45056}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/05/android-14-beta-2.html" target="_blank">5/10</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/05/second-beta-of-android-13.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45057}" style="background-color: #6aa84f; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/05/second-beta-of-android-13.html" target="_blank">5/11</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/06/android-12-beta-2-update.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45086}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/06/android-12-beta-2-update.html" target="_blank">6/9</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/06/unwrapping-android-11-beta-plus-more.html" data-sheets-value="{"1":2,"2":"6/10(Beta1)"}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/06/unwrapping-android-11-beta-plus-more.html" target="_blank">6/10(Beta1)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/06/android-q-beta-4-and-final-apis.html" data-sheets-value="{"1":2,"2":"6/5(Beta4)"}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/06/android-q-beta-4-and-final-apis.html" target="_blank">6/5(Beta4)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2018/06/android-p-beta-2-and-final-apis.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45083}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2018/06/android-p-beta-2-and-final-apis.html" target="_blank">6/6</a></td></tr><tr style="height: 21px;"><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/07/android-12-beta-3.html" data-sheets-value="{"1":2,"2":"7/14(Beta3)"}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/07/android-12-beta-3.html" target="_blank">7/14(Beta3)</a></td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td><td data-sheets-value="{"1":2,"2":"---"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">---</td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Beta3(Platform Stability)"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Beta3(Platform Stability)</td><td data-sheets-value="{"1":2,"2":"June"}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">June</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/06/android-14-beta-3-and-platform-stability.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45084}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/06/android-14-beta-3-and-platform-stability.html" target="_blank">6/7</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45085}" style="background-color: #9fc5e8; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/06/android-13-beta-3-platform-stability.html" target="_blank">6/8</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/08/android-12-beta-4-and-platform-stability.html" data-sheets-value="{"1":2,"2":"8/11(Beta4)"}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/08/android-12-beta-4-and-platform-stability.html" target="_blank">8/11(Beta4)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/07/android-11-beta-2-and-platform-stability.html" data-sheets-value="{"1":2,"2":"7/8(Beta2)"}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/07/android-11-beta-2-and-platform-stability.html" target="_blank">7/8(Beta2)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/07/android-q-beta-5-update.html" data-sheets-value="{"1":2,"2":"7/10(Beta5)"}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/07/android-q-beta-5-update.html" target="_blank">7/10(Beta5)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2018/07/android-p-beta-3-is-now-available.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45109}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2018/07/android-p-beta-3-is-now-available.html" target="_blank">7/2</a></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Beta 4(Final Beta)"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Beta 4(Final Beta)</td><td data-sheets-value="{"1":2,"2":"July"}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">July</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/07/android-14-beta-4.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45118}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/07/android-14-beta-4.html" target="_blank">7/11</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/07/Final-Android-13-Beta-update-official-release-is-next.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45120}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/07/Final-Android-13-Beta-update-official-release-is-next.html" target="_blank">7/13</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/08/android12beta5.html" data-sheets-value="{"1":2,"2":"9/8(Beta5)"}" style="background-color: #ff9900; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/08/android12beta5.html" target="_blank">9/8(Beta5)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/08/android-11-final-beta-update.html" data-sheets-value="{"1":2,"2":"8/6(Beta3)"}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/08/android-11-final-beta-update.html" target="_blank">8/6(Beta3)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/08/final-beta-update-official-android-q.html" data-sheets-value="{"1":2,"2":"8/7(Beta6)"}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/08/final-beta-update-official-android-q.html" target="_blank">8/7(Beta6)</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2018/07/final-preview-update-official-android-p.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45132}" style="background-color: #f9cb9c; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2018/07/final-preview-update-official-android-p.html" target="_blank">7/25</a></td></tr><tr style="height: 21px;"><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":2,"2":"Aug"}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">Aug</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/08/android-14-beta-5.html" data-sheets-value="{"1":2,"2":"8/10(Beta5)"}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/08/android-14-beta-5.html" target="_blank">8/10(Beta5)</a></td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Fina release to AOSP and ecosystem"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Fina release to AOSP and ecosystem</td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":2,"2":"3Q-4Q"}" style="background-color: #ff9900; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">3Q-4Q</td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/10/android-14-is-live-in-aosp.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45203}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/10/android-14-is-live-in-aosp.html" target="_blank">10/4</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/08/android-13-is-in-aosp.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45153}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/08/android-13-is-in-aosp.html" target="_blank">8/15</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2021/10/android-12-is-live-in-aosp.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45203}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2021/10/android-12-is-live-in-aosp.html" target="_blank">10/4</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2020/09/android11-final-release.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45177}" style="background-color: #ff9900; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2020/09/android11-final-release.html" target="_blank">9/8</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2019/09/welcoming-android-10.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45172}" style="background-color: #ff9900; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2019/09/welcoming-android-10.html" target="_blank">9/3</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45144}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2018/08/introducing-android-9-pie.html" target="_blank">8/6</a></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"Public Firmware for Pixel"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">Public Firmware for Pixel</td><td data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" style="background-color: #ff9900; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2023/10/android-14-is-live-in-aosp.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45203}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2023/10/android-14-is-live-in-aosp.html" target="_blank">10/4</a></td><td data-sheets-hyperlink="https://android-developers.googleblog.com/2022/08/android-13-is-in-aosp.html" data-sheets-numberformat="{"1":5,"2":"m/d","3":1}" data-sheets-value="{"1":3,"3":45153}" style="background-color: #ea9999; border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-align: right; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://android-developers.googleblog.com/2022/08/android-13-is-in-aosp.html" target="_blank">8/15</a></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td colspan="8" data-sheets-value="{"1":2,"2":"():some old Android OSs(before 12) used different timeline name. So in (), Indicate release name."}" rowspan="1" style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">():some old Android OSs(before 12) used different timeline name. So in (), Indicate release name.</td></tr><tr style="height: 21px;"><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"February"}" style="background-color: #cccccc; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">February</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"March"}" style="background-color: #efefef; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">March</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"April"}" style="background-color: #93c47d; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">April</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"May"}" style="background-color: #6aa84f; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">May</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"June"}" style="background-color: #9fc5e8; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">June</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"July"}" style="background-color: #f9cb9c; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">July</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"August"}" style="background-color: #ea9999; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">August</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"September"}" style="background-color: #ff9900; border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">September</td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"October"}" style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">October</td><td style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); font-size: 13.3333px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr></tbody></table></google-sheets-html-origin></google-sheets-html-origin>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-83947663436123062812023-07-29T11:32:00.003+09:002023-07-29T11:32:53.215+09:00洗面所の蛇口レバー交換(KVK KF308)<p> 自宅の洗面所の蛇口のレバーが割れてしまいました。</p><p>型番 <a href="https://www.kvk.co.jp/support/category/detail/KF308(A).html" target="_blank">KVK KF308</a> 台付洗髪シングルレバー</p><p>レバーハンドルセット(ZK1S318)は廃番でしたが、カートリッジの型番(PZKM110A)が同じ別モデル用のシングルレバーを購入したところ、使うのに実害無い形で対応できました。</p><p><br /></p><p>代替レバーハンドルセット白</p><p><a href="https://www.kvk.co.jp/support/category/detail/PZK1S336C.html" target="_blank">PZK1S336C </a></p><p><br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgYaNyQgQRBqH-KRieJdbeBIfkVRWej_SI-oMAyT95hH-BJ1putSCt4tUqZaUZj8-iFreceeYga537wXPKe4riDQgTlK3QdlLBKjC2kXl7a0FdjHvKof6MyEzSklJMcMgfuugRS5JSuvVBqY0uQHrsWSKP8p5E9o0rPlXWmOmkzTbBkC8jBbVQ1qpw1Y0Px" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="646" data-original-width="806" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgYaNyQgQRBqH-KRieJdbeBIfkVRWej_SI-oMAyT95hH-BJ1putSCt4tUqZaUZj8-iFreceeYga537wXPKe4riDQgTlK3QdlLBKjC2kXl7a0FdjHvKof6MyEzSklJMcMgfuugRS5JSuvVBqY0uQHrsWSKP8p5E9o0rPlXWmOmkzTbBkC8jBbVQ1qpw1Y0Px" width="299" /></a></div><br /><p></p><div>メーカー保証ではないので、利用は各自の責任でお願いします。</div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-88173580347546775592023-06-03T20:28:00.001+09:002023-06-07T20:00:49.340+09:00povo回線を使った自宅サーバへの裏接続回線<h1 style="text-align: left;">背景</h1><div>実家はJ:COM 横浜南経由のインターネット接続をしています。最近1Gbpsの回線にアップグレードしたためか、半年に一回程度自宅固有だったり、町単位での回線不良(20-30%ぐらいパケットロス)が発生する場合があります。</div><div>両親はその問題の切り分けなどできないため、外部からのサポートが必要なのですが、J:COMのインターネット回線が切れていては、原因が自宅内部の機材の問題なのか、またはJ:COM側の問題なのかが断言できないです。</div><div>そのため、povoを使った安価なバックアップ裏接続回線を作ってみました。</div><div><br /></div><div>povo 2.0は、6ヶ月おきに何らかのトッピングを一時的にすれば速度は128kbpsで接続可能です。ssh程度ならば問題なく接続できています。</div><div><br /></div><div>ちなみに、J:COM回線の回線状況監視は、smokepingを用いて、各種サーバにパケットを投げて見える化しています。</div><h1 style="text-align: left;">準備するもの</h1><div><ul style="text-align: left;"><li>KDDI/au povo sim</li><li>LANポート付きモバイルルータ(今回はSIMフリー化されたDoCoMo Wi-Fi Station L-02Fを利用。 自宅サーバとの接続をWi-Fiで用いる場合はLANポートは不要です)</li><li>自宅サーバ(Raspberry PIでも可能、今回はIAサーバにFreeBSDをインストールして利用)</li><li>2nd Ethernet用のLANカード(今回は速度が不要なためUSB 100BASE-TXのLUA3-U2-ATXを利用)</li><li>外部のクラウドサーバ(今回はGoogle Cloud Platformの<a href="https://cloud.google.com/free?hl=ja">無料枠</a>のCompute Engineを利用、有料でサーバを立てても良いですし、Oracle Cloud Platformの Always Freeの利用も可能でしょう)</li></ul></div><h1 style="text-align: left;">物理構成図</h1><div>作成中</div><h1 style="text-align: left;">論理構成図</h1><div>作成中</div><h1 style="text-align: left;">機材の設定</h1><div><div><h2>自宅サーバのpovo回線のUSB Ethernetのドライバ読み込み</h2></div><div>こちらはFreeBSD固有ですが、kernel起動時にUSBを認識されるために、設定しています。</div><div>/boot/loader.conf.local</div><div><div>if_axe_load="YES"</div></div><div><br /></div></div><div><h2>自宅サーバのpovo回線のDHCP Client設定</h2></div><div><div>povo回線のインターフェース名はnet1としています。net1でdhclientを動かすとき用に</div><div>以下の設定をしました。</div><div>ポイントは</div><div><ol style="text-align: left;"><li>DNSサーバは、J:COM回線側を利用する。(192.168.11.1は、J:COM側のデフォルトルータです)</li><li>default routerは、J:COM側のままにするために、request行は必要最低限のみとする。</li></ol></div><div><br /></div><div>FreeBSDでのpovo回線用のDHCP設定 /etc/rc.conf</div><div><div>#########################################</div><div>#</div><div># for seconday interface</div><div>#</div><div>ifconfig_ue0_name="net1"</div><div>ifconfig_net1="DHCP"</div></div><div><br /></div><div>DHCP clientの設定 /etc/dhclient.conf</div><div>interface "net1" {</div><div> supersede domain-name-servers 192.168.11.1;</div><div> request subnet-mask, broadcast-address, time-offset;</div><div>}</div></div><div><br /></div><div><h2>自宅サーバからGoogle Cloud Platformへの通信は、povo経由にする(static route)</h2></div><div>裏接続回線はpovoを使ってほしいので、static routeを設定。以下はFreeBSDの場合で、/etc/rc.confに追記した。</div><div>なお、今回利用したDoCoMo Wi-Fi Station L-02FのIPアドレスは192.168.225.1であったため、-gateway 以下はそのアドレスを設定した。</div><div><br /></div><div><div>static_routes="gcpserver"</div><div>route_gcpserver="-net [Google Cloud PlatformのサーバIP] -gateway 192.168.225.1"</div></div><div><br /></div><h2 style="text-align: left;">自宅サーバとクラウドサーバのVPN</h2><div>wireguardを実家サーバからGooge Cloud PlatformのCompute Engineに向けて張りました。</div><div>詳細設定はwireguardの設定例をインターネットで探して設定ください。</div><div>パケット流れていないと、povoのNATテーブルが切れてしまうようなので、以下の設定をしています(30秒おきにVPN回線維持パケットを流す設定)。</div><div><div>PersistentKeepAlive = 30</div></div><div><br /></div><div>私は試していませんが、<a href="https://twitter.com/JQ1BWT/status/1653042476691918848?s=20">SoftEtherVPN</a>でもpovo回線で利用できたとの話もありました。各自ためしてみてください。</div><div><br /></div><div><br /></div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-1370528371205731652023-04-18T21:58:00.003+09:002023-05-12T22:58:57.610+09:00sendmailにSMTP接続時の反応が5秒ぐらいかかる問題<h2 style="text-align: left;"> 発端</h2><div>rubygemの<a href="https://rubygems.org/gems/mail?locale=ja">mail</a>を使ったら以下のアイムアウトでエラーになってしまいました。</div><div><br /></div><div><div>/usr/local/lib/ruby/gems/3.1/gems/net-protocol-0.2.1/lib/net/protocol.rb:229:in `rbuf_fill': Net::ReadTimeout with #<Socket:(closed)> (Net::ReadTimeout)</div></div><div><br /></div><div>Timeoutしているため、以下のコマンドで直接sendmailとお話してみると。</div><div><br /></div><div>% telnet localhost smtp</div><div><div>Trying 127.0.0.1...</div><div>Connected to localhost.</div><div>Escape character is '^]'.</div><div><b>220 smtp.examples.com ESMTP Sendmail 8.16.1/8.16.1; Tue, 18 Apr 2023 21:49:15 +0900 (JST)</b></div></div><div><br /></div><div><br /></div><div>220 smtp.examples.com... の表示まで、5秒ぐらいかかっていました。</div><div><br /></div><h1 style="text-align: left;">原因</h1><div>調べると、以下の記事を見つけました。</div><div><a href="https://www.proofpoint.com/us/sendmail/faq#v8-12">Why do connections to the SMTP port take such a long time?</a></div><div>(上記ページの「Version 8 Specific Issues」(タブの左から3つ目)の「10」番目のFAQです。</div><div><br /></div><div>INDENT認証が有効になっているようです。</div><div><br /></div><h2 style="text-align: left;">対策</h2><div>sendmail.mcに以下の設定を加えて解決しました。無事rubygemのmailからも送信できました。</div><div><br /></div><div><div>define(`confTO_IDENT',`0s')dnl</div></div><div><br /></div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-8099548769295762112022-10-16T18:45:00.001+09:002022-10-16T18:47:37.900+09:00J:COMのIPv6サービスをルーター(YAMAHA NVR500)で利用<h1 style="text-align: left;">はじめに</h1><p> 2022年10月ぐらいから、<a href="https://cs.myjcom.jp/knowledgeDetail?an=000477750">J:COMでIPv6</a>のサービスがリニューアルされて、IPv6ルータを用いれば複数台のPCで利用できるようになりました。<a href="https://network.yamaha.com/products/routers/nvr500/index">YAMAHA NVR500</a>での設定例の情報です。</p><p>以下にも書きましたが、フレッツ光のIPv6対応のルーターならば、問題なく・簡単にIPv6を利用できるようになると思います。</p><p>J:COMでIPv6が使えるようになって幸せになれる人がどれだけいるか不明ですが....私は自宅(フレッツ光)↔実家(J:COM)間のVPNをPPPoEを経由しないIPv6化して混雑回避できて幸せです。</p><h1 style="text-align: left;">準備</h1><p>J:COMのインターネット利用は2022年10月2日以前でしたので、「<a class="link_txt blank" href="https://www.jcom.co.jp/contactus/call_rgu.html#mobilehttps://www.jcom.co.jp/contactus/call.html" style="background-color: white; color: #666666; font-family: "Noto Sans JP", meiryo, メイリオ, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "MS Pゴシック", "sans-serif"; font-size: 16px; outline: 0px; text-decoration-line: none; text-indent: -16px;" target="_blank">J:COM技術サポートセンター</a>」に電話をして、IPv6サービスを有効化してもらいました。</p><p>設定完了後、自宅のケーブルモデルの再起動が必要です。</p><p><br /></p><h1 style="text-align: left;">設定例</h1><div>YAMAHA NVR500のIPv4の設定に、以下を追加して家庭内の複数台の機材からIPv6接続できるようになりました。NVR500の設定は、<a href="https://network.yamaha.com/setting/router_firewall/flets/flets_other_service/square_next-nvr500">フレッツ光のIPv6接続</a>の<a href="https://network.yamaha.com/setting/router_firewall/flets/flets_other_service/square_next-nvr500/flets_square_next-nvr500_gui.txt">設定</a>と同じです。</div><div><br /></div><div>手元の設定から想像するに、フレッツ光のIPv6対応のルーターを用いれば問題なくJ:COMのIPv6サービスも利用できると思われます。(「はじめに」でも書きましたが、フレッツ光系のIPv4のボトルネックのPPPoEをJ:COMでは使っていないため、J:COMのページに記載されているように「インターネット回線速度向上や回線混雑回避の効果はない」ですが)</div><div><br /></div><div>なお、J:COMのケーブルモデムは<a href="https://cs.myjcom.jp/knowledgeDetail?an=003205164">KAON KCM3100</a>をブリッジモードで利用しています。ブリッジモードを利用してIPv4のルーティングもYAMAHA NVR500で行っています。理由は、実家と自宅をIPv4でVPN接続するためです。KCM3100をルーターモードで利用した場合に、以下の設定でYAMAHAルータでIPv6を利用できるかは不明です。</div><div><br /></div><h2 style="text-align: left;">WAN側の設定</h2><div>lan2ポートをWAN接続しているため、以下のDHCPv6でIPv6アドレスを取得する設定をした。</div><div><br /></div><div><div>ipv6 lan2 address dhcp</div><div>ipv6 lan2 dhcp service client</div><div>ipv6 route default gateway dhcp lan2</div><div>ipv6 lan2 secure filter out dynamic 200080 200081 200082 200083 200084 200085</div><div>200098 200099</div><div>pv6 filter dynamic 200080 * * ftp</div><div>ipv6 filter dynamic 200081 * * domain</div><div>ipv6 filter dynamic 200082 * * www</div><div>ipv6 filter dynamic 200083 * * smtp</div><div>ipv6 filter dynamic 200084 * * pop3</div><div>ipv6 filter dynamic 200085 * * submission</div><div>ipv6 filter dynamic 200098 * * tcp</div><div>ipv6 filter dynamic 200099 * * udp</div></div><div><br /></div><h3 style="text-align: left;">WANアドレスの取得の確認</h3><div>NVR500にloginして以下の通り確認できました。フレッツ光と同じように/56のprefixのIPv6アドレスが配布されています。</div><div><br /></div><div><div>> show status ipv6 dhcp</div><div><br /></div><div>DHCPv6 status</div><div><br /></div><div> LAN1 [server]</div><div><br /></div><div> LAN2 [client]</div><div> state: established</div><div> server:</div><div> address: ::</div><div> preference: 0</div><div> prefix: 2405:1200:xxxx:xxxx::/56</div><div> duration: 604800</div><div> T1: 302400</div><div> T2: 529200</div><div> preferred lifetime: 544320</div><div> valid lifetime: 604800</div><div> DNS server[1]: 2001:ff0:2096:20::1</div><div> DNS server[2]: 2400:3800:2fc2:20::1</div><div> Domain name[1]: zaq.ne.jp</div></div><div><br /></div><h2 style="text-align: left;">LAN側の設定</h2><div><div>YAMAHAのフレッツ用の設定と同じように/64のprefixで設定しました。</div><div><br /></div><div>ipv6 lan1 address ra-prefix@lan2::1/64</div><div>ipv6 lan1 address dhcp-prefix@lan2::1/64</div><div>ipv6 lan1 rtadv send 1</div><div>ipv6 lan1 dhcp service server</div><div><br /></div></div><h3 style="text-align: left;">LAN側の設定の確認</h3><div><div>> show ipv6 address</div><div>LAN1 scope-id 1 [up]</div><div> Received: 41363 packets 7449761 octets</div><div> Transmitted: 23579 packets 2995760 octets</div><div><br /></div><div> global 2405:1200:xxxx:xxxx::1/64</div><div> link-local fe80::2a0:xxxx:xxxx:xxxx/64</div><div> link-local ff02::1/64</div><div> link-local ff02::2/64</div><div> link-local ff02::1:2/64</div><div> link-local ff02::1:ff00:1/64</div><div> link-local ff02::1:xxxx:xxxx/64</div></div><div><br /></div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-37258263286151972572022-08-12T20:31:00.002+09:002022-08-13T10:23:27.992+09:00ASAHIネットのメールサーバをFreeBSDサーバから利用<p> </p><p>作成中</p><p></p><ol style="text-align: left;"><li> packageをインストール<br /><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p>SASL対応のために、ports/pkgのsendmailをインストール</p><p>SSL/TLS通信のために、stunnelをインストール(sendmail.mcの記述でsendmailが直接できるかもしれないが、試していない)</p></blockquote><p> </p><p></p><ol></ol></li><li>stunnelの設定</li><ol><li>/usr/local/etc/stunnel/stunnel.conf に以下を追加</li></ol></ol>[asahi-net-smtp]<br />client = yes<br />accept = 127.0.0.1:465<br />connect = mail.asahi-net.or.jp:465<br />verifyChain = yes<br />CApath = /etc/ssl/certs<br />checkHost = mail.asahi-net.or.jp<br />OCSPaia = yes<br /><ol style="text-align: left;"><ol><li>/etc/rc.conf に追加</li></ol></ol><div><div>stunnel_enable="YES"</div></div><div><br /></div><div>/usr/local/etc/rc.d/stunnel start</div><ol style="text-align: left;"><li>sendmailの設定</li><ol><li>/etc/mail/mailer.conf</li></ol></ol>#<br />#sendmail /usr/libexec/sendmail/sendmail<br />#mailq /usr/libexec/sendmail/sendmail<br />#newaliases /usr/libexec/sendmail/sendmail<br />#hoststat /usr/libexec/sendmail/sendmail<br />#purgestat /usr/libexec/sendmail/sendmail<br />sendmail /usr/local/sbin/sendmail<br />send-mail /usr/local/sbin/sendmail<br />mailq /usr/local/sbin/sendmail<br />newaliases /usr/local/sbin/sendmail<br />hoststat /usr/local/sbin/sendmail<div>purgestat /usr/local/sbin/sendmail<br /><ol style="text-align: left;"><li>sendmail.mcの変更</li></ol><div><div>FEATURE(authinfo, `hash -o /etc/mail/authinfo')</div></div><div><div>define(`SMART_HOST', `asahinet465:localhost')</div><div><br /></div><div>######################################################################</div><div>### sendgrid587 Mailer Specification ###</div><div>######################################################################</div><div>Masahinet465, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP,</div><div> R=MasqSMTP, E=\r\n, L=2040, T=DNS/RFC822/SMTP,</div><div> A=TCP $h 465</div></div><div><br /></div><div>make sendmail.cf</div><ol style="text-align: left;"><ol><li>/etc/mail/authinfo</li></ol></ol><div><div>#</div><div># makemap hash authinfo.db < authinfo</div><div>#</div><div>AuthInfo:localhost.my.domain "U:ASAHI-NETのID" "P:ASAHI-NETのパスワードすべて小文字で" "M:CRAM-MD5"</div></div><div><br /></div><div>例</div><div><div>AuthInfo:localhost.my.domain "U:zzz-snp" "P:abcd1234" "M:CRAM-MD5"</div></div><div><br /></div><div><br /></div><div><div>makemap hash authinfo.db < authinfo</div></div><div><div>chmod go-rwx authinfo*</div></div><div><br /></div><div>/etc/rc.d/sendmail restart</div><p><br /></p><p><br /></p><p>authinfoのポイント</p><p><br /></p><p>パスワードはすべて小文字</p><p><br /></p><p><br /></p><p>関連リンク</p><p></p><ul style="text-align: left;"><li><a href="http://miyakoshi.mydns.jp/freebsd/sendmail_auth.html" target="_blank">メールサーバーの構築(sendmail SASL)</a><br /></li><li><a href="http://www.terra.dti.ne.jp/~mikawa/sendmail-authinfo.html">Sendmail Authinfo</a><br /></li><li>朝日ネットの情報</li><ul><li><a href="https://asahi-net.jp/support/guide/mail/0301.html" target="_blank">各種メールソフトの設定</a><br /></li><li><a href="https://asahi-net.jp/support/guide/mail/0558.html" target="_blank">Becky! 2.xx [ja] 新規作成</a><br /></li></ul></ul><p></p><p><br /></p></div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-81005020054470330982021-02-11T21:45:00.001+09:002021-03-03T20:57:46.616+09:00My Peugeot is crashed on Google Pixel3 Android 11<p>My Peugeot App on Google Pixel3 Android11 is crashed after adding the body number.</p><p>[2021/3/3] After 2021/2/26 update, My Peugeot App was not crashed.</p><p><br /></p><p>--------- beginning of crash</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: FATAL EXCEPTION: main</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: Process: com.psa.mym.mypeugeot, PID: 19959</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: length=1; index=-1</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.psa.mym.activity.dashboard.DashboardTabFragment.initNoTripsBluetoothTutorial(DashboardTabFragment.java:249)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.psa.mym.activity.dashboard.DashboardTabFragment.showEmpty(DashboardTabFragment.java:235)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.psa.mym.activity.dashboard.DashboardTabFragment.initView(DashboardTabFragment.java:322)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.psa.mym.activity.dashboard.DashboardTabFragment.refresh(DashboardTabFragment.java:445)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.psa.mym.activity.dashboard.DashboardTabFragment.onResume(DashboardTabFragment.java:395)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.Fragment.performResume(Fragment.java:2748)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:373)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1211)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentManager.performPendingDeferredStart(FragmentManager.java:1123)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentManager.startPendingDeferredFragments(FragmentManager.java:1531)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentManager.doPendingDeferredStart(FragmentManager.java:2299)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1869)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.fragment.app.FragmentManager.executePendingTransactions(FragmentManager.java:489)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.commonsware.cwac.pager.v4.ArrayPagerAdapter.finishUpdate(ArrayPagerAdapter.java:156)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.duolingo.open.rtlviewpager.DelegatingPagerAdapter.finishUpdate(DelegatingPagerAdapter.java:61)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.duolingo.open.rtlviewpager.RtlViewPager.onMeasure(RtlViewPager.java:211)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:760)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:99)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1892)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:831)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.android.internal.policy.DecorView.onMeasure(DecorView.java:747)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.View.measure(View.java:25466)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3402)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2246)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2504)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1948)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8177)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:796)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:731)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:938)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7660)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)</p><p>02-11 20:54:31.802 19959 19959 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)</p><div><br /></div><p><span style="vertical-align: inherit;"><span style="vertical-align: inherit;"><span style="vertical-align: inherit;"><span style="vertical-align: inherit;"><br /></span></span></span></span></p><p><span style="vertical-align: inherit;"><span style="vertical-align: inherit;"><span style="vertical-align: inherit;"><span style="vertical-align: inherit;"><br /></span></span></span></span></p>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-46110081098216040972020-02-14T18:19:00.000+09:002020-02-14T18:19:37.768+09:00[FreeBSD]GuestOS hung up with HDD IO error on VirtualBoxWhen Guest OS system on VirtualBox runs with heavy disk I/O (e.g. upgrade package, apt-get install, etc), Guest OS hung up with kernel I/O error(AHCI error etc...). But there is no I/O error on HostOS.<br />
<br />
[SOLUTION]<br />
enabled Use Host I/O Cache<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf-aE_XL-6Xzouc8rwkgD5zhY03aurY7N0Hnc229E8JEc8fJfJ6mg-ql5tjC1UD-2-8VeK6gyQKlx9GS3sb7egI9e19Q0mWM4usfWD-xRCx30HBy2WEase1ELjtnihfFY709Rpw8GJsrpa/s1600/VirtualBox-enable-Host-IO.png" imageanchor="1"><img border="0" data-original-height="856" data-original-width="1600" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf-aE_XL-6Xzouc8rwkgD5zhY03aurY7N0Hnc229E8JEc8fJfJ6mg-ql5tjC1UD-2-8VeK6gyQKlx9GS3sb7egI9e19Q0mWM4usfWD-xRCx30HBy2WEase1ELjtnihfFY709Rpw8GJsrpa/s320/VirtualBox-enable-Host-IO.png" width="320" /></a><br />
<br />
[Related information] (in Japanese)<br />
<a href="https://freebsd.sing.ne.jp/tool/08/02/99/01.html">Virtual Box truble shoot: The I/O cache encountered an error</a>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-27759337040008767082019-10-16T21:25:00.001+09:002019-10-19T22:13:39.074+09:00[FreeBSD]FreeBSD on Oracle Cloud<div>
<br />
CHANGES<br />
[2019/10/18] add remove host in known_hosts if can't connect console server<br />
[2019/10/19] I can run FreeBSD-12.1-RC1(created vmdk on VirtualBox) on Oracle Cloud VM.Standard2.1 with **Launch Mode:EMULATED** (not PARAVIRTUALIZED). Maybe also 12.0-RELEASE.
<br />
<br /></div>
<h3>
Q1 console connection with non-default id filename</h3>
I can use the serial console and VNC console.<br />
<br />
If the user uses non-default identity_filename for ssh authentification, you have to use ssh-agent or specify with "-i" option.<br />
<br />
Example1) use ~/.ssh/id_rsa.oracle, ssh-agent and tcsh<br />
<pre class="prettyprint">% eval `ssh-agent -c`
% ssh-add ~/.ssh/id_rsa.oracle
</pre>
and use cut&paste <span style="background-color: #fcfcfc; color: #222222; font-family: "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 14px;">Connect with SSH from the oracle cloud console </span><br />
<pre class="prettyprint">% ssh -o ProxyCommand='ssh -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@instance-console.ap-tokyo-1.oraclecloud.com' ocid1.instance.oc1.ap-tokyo-1.yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
</pre>
Example2) use ~/.ssh/id_rsa.oracle, -i option(you need define -i twice<br />
<pre class="prettyprint">% ssh -i ~/.ssh/id_rsa.oracle -o ProxyCommand='ssh -i ~/.ssh/id_rsa.oracle -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@instance-console.ap-tokyo-1.oraclecloud.com' ocid1.instance.oc1.ap-tokyo-1.yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
</pre>
If you connect ssh connection with below error,
<br />
<pre class="prettyprint">Permission denied (publickey).
ssh_exchange_identification: Connection closed by remote host
</pre>
Remove the oracle cloud host from ~/.ssh/known_hosts.
<br />
<div>
<br /></div>
<pre class="prettyprint"></pre>
<h3>
Q2 which Virtual-Image, we can use for FreeBSD[Oct/16/2019].</h3>
<div>
I tried FreeBSD-12.0-RELEASE-amd64.vmdk on <span style="background-color: white; color: #222222; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , , "ubuntu" , "cantarell" , "helvetica neue" , sans-serif; font-size: 14px;">VM.Standard2.1</span>, I missed with this <a href="https://www.sanpei.org/~sanpei/tmp/Oracle-Cloud-VM.Standard2.1-FreeBSD-12.0-RELEASE-FreeBSD-12.0-RELEASE-amd64.vmdk">dmesgs</a> [NG].</div>
<div>
Currently, I'm trying FreeBSD-12.0-RELEASE-amd64.qcow2.</div>
<div>
(Finally, I want to use FreeBSD on <span style="background-color: white; color: #222222; font-family: , "blinkmacsystemfont" , "segoe ui" , "roboto" , , "ubuntu" , "cantarell" , "helvetica neue" , sans-serif; font-size: 14px;">VM.Standard.E2.1.Micro as Always Free. But currently out of host capacity at Japan/East(Tokyo) Region. So I use VM.Standard2.1)</span></div>
<div>
<br />
<h3>
Q3 How to create custom boot image(what is OBJECT STORAGE URL)</h3>
<br />
After uploading Virtual Image to Object Storage/Bucket and <a href="https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/usingpreauthenticatedrequests.htm#UsingConsole">creating a pre-authenticated request.</a> you can get OBJECT STORAGE URL from Objects->View Object Details(1st one)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrejmfyc-URCnt2r-lLbuciyF5apxERE5qNlCfGqEeJgdjRtUmBbKoboyGFem-dQiSUB-Ynd-lHjmnEmenKZUjOy51W0MauB0ZpYudq_gJ_hKadGUGOEbSM2J8R7-JeI21ZLtIqzb7pcF/s1600/Object-Details.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="535" data-original-width="1256" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrejmfyc-URCnt2r-lLbuciyF5apxERE5qNlCfGqEeJgdjRtUmBbKoboyGFem-dQiSUB-Ynd-lHjmnEmenKZUjOy51W0MauB0ZpYudq_gJ_hKadGUGOEbSM2J8R7-JeI21ZLtIqzb7pcF/s320/Object-Details.PNG" width="320" /></a></div>
<br /></div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-60465423668653714382019-08-30T08:40:00.001+09:002019-09-16T10:47:00.260+09:00YouTubeの一週間毎のDreams Come Trueのビデオ再生回数推移グラフ毎週月曜日の0時(日本時間)にYouTube APIを使って<a href="https://www.youtube.com/user/dreamscometrue" target="_blank">Dreams Come True</a>のコンテンツの再生回数をグラフにしています。当初はこのYouTubeの再生回数からWONDERLAND 2019の決まればと思っていながら時間がなくて結局WONDERLAND 2019が始まってからTop 10/30を計測し始めました。ウラワンの予想でもしようかと思っています。<br />
<br />
DREAMS COME TRUE<br />
<br />
Top 10<br />
<a href="https://www.sanpei.org/YouTube-rank/DCT-graph.html">https://www.sanpei.org/YouTube-rank/DCT-graph.html</a><br />
<br />
Top 30<br />
<a href="https://www.sanpei.org/YouTube-rank/DCT-graph-30.html">https://www.sanpei.org/YouTube-rank/DCT-graph-30.html</a><br />
<br />
※ 2019年8月12日分は計測タイミングを月曜日の夕方だったため、通常より多めの再生回数になっています。<br />
<br />
以下参考<br />
宇多田ヒカル<br />
Top 10<br />
<a href="https://www.sanpei.org/YouTube-rank/UTADA-graph.html">https://www.sanpei.org/YouTube-rank/UTADA-graph.html</a><br />
<br />
Top 30<br />
<a href="https://www.sanpei.org/YouTube-rank/UTADA-graph-30.html">https://www.sanpei.org/YouTube-rank/UTADA-graph-30.html</a><br />
<br />
Perfume<br />
Top 10<br />
<a href="https://www.sanpei.org/YouTube-rank/PERFUME-graph.html">https://www.sanpei.org/YouTube-rank/PERFUME-graph.html</a><br />
<br />
Top 30<br />
<a href="https://www.sanpei.org/YouTube-rank/PERFUME-graph-30.html">https://www.sanpei.org/YouTube-rank/PERFUME-graph-30.html</a><br />
<br />
Taylor Swift<br />
Top 10<br />
<a href="https://www.sanpei.org/YouTube-rank/TAYLOR-graph.html">https://www.sanpei.org/YouTube-rank/TAYLOR-graph.html</a><br />
<br />
Top 30<br />
<a href="https://www.sanpei.org/YouTube-rank/TAYLOR-graph-30.html">https://www.sanpei.org/YouTube-rank/TAYLOR-graph-30.html</a><br />
<br />
※ 2019/9/1までは、データが一週間分しかないため、宇多田ヒカルとPerfumeのグラフは作成できていません。<br />
※ 2019/9/16までは、データが一週間分しかないため、Taylor Swiftのグラフは作成できていません。<br />
<br />sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-14458519125048525542019-08-29T08:44:00.000+09:002019-08-29T08:44:03.718+09:00[2019年夏]T-Mobile 電話番号が無くなったPee-PAID SIMの再有効化(reactivate)<br />
<div dir="ltr">
最初はT-MOBILE.Pay as you goの1week/1GBプラン($10+事務手数料$10)をT-MOBILEのSHOPで契約し、半年後に2GB/1MONTHプラン($10)をMY T-MOBILEから契約しました。その後は日本に帰国したのでWebのMY T-MOBILEで契約解除しました。2GB/1MONTHプランにしたのは、同じ$10で2GBと倍使えるからです(PAY AS YOU GOでは無くて、解約後に電話番号も無効化されたのは解約後に分かった、、、)</div>
<div dir="ltr">
3ヶ月後再度利用しようとMY T-MOBILEで当初の電話番号を入力しても「他でこの番号が使われている」となりMY T-MOBILEからrefillなどができませんでした。</div>
<div dir="ltr">
<br /></div>
<h2>
なぜT-Mobileを使い続けるのか</h2>
<div dir="ltr">
<br /></div>
<div dir="ltr">
現在T-MOBILE系のultra mobileは、オペレータ応答時間はコストダウンのためオフィス時間のみです。一方のT-Mobileは24時間対応してくれます。SIM CARDさえあれば、夜遅く着いた場合などでも手厚くサポートしてくれそうだからです。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<h3>
試みてダメだったもの</h3>
</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<h4>
1.My T-MOBILEではだめ</h4>
<br /></div>
<div dir="ltr">
すでに書いたとおり番号が他の人(それも後からオペレータと話してわかったのですが、別の通信会社で再利用されていたようです)に使われて、MY T-MOBILEで紐付け出来ませんでした。<br />
<br /></div>
<div dir="ltr">
<h4>
2. T-Mobile shopでもだめ</h4>
<br /></div>
<div dir="ltr">
店員さんにSIM CARD NUMBERを見せて調べてもらったのですが使えない(not avaiableだった)と出てきた。<br />
<br /></div>
<div dir="ltr">
<h4>
3.普通にManage your account: <a href="tel:18777782106">1-877-778-2106</a>に電話してもだめ</h4>
<br /></div>
<div dir="ltr">
1. まずは、電話番号を聞かれる<br />
2. 単にSIM CARD NUMBER伝えても、契約したいのをpay as you goと伝えるとultra mobileのサービス電話に切り替わって、自動応答でACITIVATE CODEを求められてしまいました。このACTIVATE CODEはultra mobileのSIMには印字されていますが、私のSIMはT-MOBILEの物なので記載はありませんでした。<br />
ultra mobileのオペレータ対応時間ならばここで解決できたかもしれません)<br />
<br /></div>
<div dir="ltr">
<h3>
結局どう解決したか?(REACTIVATEしたか?)</h3>
<br /></div>
<div dir="ltr">
以上の契約失敗を元に、以下を説明をManage your account: <a href="tel:18777782106">1-877-778-2106</a>にして、どのようにオペレートしてほしいかをこちらから詳しく説明してREACTIVATEできました(まるでゲームの解き方をオペレータに伝える感じで)。</div>
<div dir="ltr">
1. prepaid simを持っている。4月に2GB /1MONTH契約をしていたが解約した<br />
2. 今はその時の電話番号がは使えない。新しい番号で良いで、再ACTIVATEしたい(ここはよく言わないと、番号無効だから、そのSIMは使えないとの結論になって終了)。<br />
3. PAY AS YOU GOをこのSIM CARDで使いたい。SIM CARD NUMBERを伝えるので、Activateしてほしい。<br />
4. 現在T-MOBILEのpay as you goはultra mobileで提供されているが、私のSIMはT-MOBILEのなのでACTIVATE CODEが無いので、オペレータさんがPAS AS YOU GOを有効にしてほしい。</div>
<div dir="ltr">
以上を伝えたら、再PAY AS YOU GO設定費用$3と1 week /1BG PAY AS YOU GOの$10の合計$13となり、クレジットカード番号などを伝えて、無事Mobile dataプランをT-MOBILEで有効化出来ました。</div>
<div dir="ltr">
$13だと普通にT-MOBILE に行って提携しているultra mobileのpre parid sim買って1week/1GB SIM買うのとおなじ値段ですが、最初に書いたとおり、T-MOBILEの契約をしたかったので、上記の手間をかけました。</div>
<div dir="ltr">
こんなシチュエーションの人は少ないかもしれませんが、何かの参考になればと思いblog化しました。</div>
<br />sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-54615104389654750652019-08-27T01:02:00.000+09:002019-08-30T08:36:35.665+09:00[2019年夏]T-Mobile Pre-PAID Pay as you goプランの再有効化<div dir="ltr">
<br />
2019年のいつ頃からかT-Mobileでは、T-Mobileを使ったMVNOのulltra mobileのみが店頭販売されています。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<a href="https://bestmvno.com/ultra-mobile/big-win-for-ultra-mobile-t-mobile-is-now-selling-ultra-mobiles-tourist-plan-in-stores/amp/" target="_blank">[BEST MVMO記事より]Big Win For Ultra Mobile, T-Mobile Is Now Selling Ultra Mobile’s Tourist Plan In Stores</a></div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
T-Mobileの<a href="https://prepaid.t-mobile.com/prepaid-plans" target="_blank">Pre PAIDのWebページ</a>から、"Only pay for what you need."を選択すると、<a href="https://www.ultramobile.com/paygo/" target="_blank">ultra mobileにリンク</a>されたいます。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
そのため、以前ならばWebページのMy T-Mobileで、Pay as you Goのデータプランrefill/有効化が日本からでも出来ましたが、現在(少なくともこの記事を書いている2019/8/26時点)では、普通のプランしか選べません(USAの飛行場のFree Wi-Fiを使って有効化する予定だったため、焦りました)。</div>
<div dir="ltr">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGlefd4DARll2IqFv6t0Xu01cwvXuABa2FtpO4jnHDBIAU0oo35z_lUeZwf0TwglZnOTqzO8pF1kCPsvyR67ORJni9mdgDRxvih5HT4S78LsMmALCttL2kaBqXmdAouvDGeyLAgRRB-RPF/s1600/Screenshot_20190828-130306.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="800" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGlefd4DARll2IqFv6t0Xu01cwvXuABa2FtpO4jnHDBIAU0oo35z_lUeZwf0TwglZnOTqzO8pF1kCPsvyR67ORJni9mdgDRxvih5HT4S78LsMmALCttL2kaBqXmdAouvDGeyLAgRRB-RPF/s320/Screenshot_20190828-130306.png" width="160" /></a></div>
<br /></div>
<h3>
サポートに電話して、T-Mobile従来Pay as you go.Dataプランを有効化</h3>
<div dir="ltr">
<br /></div>
<div dir="ltr">
ここでは、T-Mobileのサポートに電話して無事T MobileのPay as you Goの再契約できたお話です。</div>
<div dir="ltr">
<br /></div>
<h4>
結局Manage your account: <a href="tel:18777782106">1-877-778-2106</a>に電話する</h4>
<div dir="ltr">
<br /></div>
<div dir="ltr">
私は別途電話できる電話回線を持っていないため、ホテルのWi-Fiからskypeの米国の携帯電話と固定電話への無制限通話プラン(US$2.99/月)を契約して通話しました)<br />
オペレータとの通話は必要なく、すべてコンピュータの自動応答システムへの応対で手続きできるパスを見つけて対応できました。</div>
<div dir="ltr">
言葉で、Yes/Noで回答する場合もあり、数字を入力して対応できる場合もあります。<br />
refillはクレジットカード番号を携帯電話(スマホ)のkeypadで入力して対応しました。</div>
<div dir="ltr">
zip codeの要求時には滞在先のホテルのzip codeで問題なかったです。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
飛行場ではmanage your accountでオペレータに相談する事を考えていたため、オペレータにつないで話したのですが、飛行場のFree Wi-Fiが安定せずそこでは解決できませんでした。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
何度か電話して、ゲームをする感じで、どのパスで対応すれば良いかが分かって最終的には再契約できました。</div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-33808585127837026562018-05-01T19:38:00.003+09:002021-12-25T20:25:18.276+09:00[Tennis]東京都稲城市周辺の硬式テニスのガットを張ってくれるお店情報<google-sheets-html-origin></google-sheets-html-origin><div><google-sheets-html-origin><table border="1" cellpadding="0" cellspacing="0" dir="ltr" style="border-collapse: collapse; border: none; font-family: arial, sans, sans-serif; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"><colgroup><col width="181"></col><col width="90"></col><col width="115"></col><col width="87"></col><col width="161"></col></colgroup><tbody><tr style="height: 21px;"><td style="border: 1px solid rgb(0, 0, 0); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":2,"2":"購入ガット"}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">購入ガット</td><td data-sheets-value="{"1":2,"2":"持ち込みガット"}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">持ち込みガット</td><td data-sheets-value="{"1":2,"2":"最終確認日"}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">最終確認日</td><td data-sheets-value="{"1":2,"2":"備考"}" style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">備考</td></tr><tr style="height: 21px;"><td data-sheets-hyperlink="http://www.kamuisp.com/shop/wakabadai.html" data-sheets-value="{"1":2,"2":"カムイ若葉台店"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; font-family: Meiryo; font-size: 12pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="http://www.kamuisp.com/shop/wakabadai.html" target="_blank">カムイ若葉台店</a></td><td data-sheets-value="{"1":3,"3":1000}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">1000</td><td data-sheets-value="{"1":3,"3":3000}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">3000</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":43221}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2018/5</td><td data-sheets-value="{"1":2,"2":"店頭に無いガットも注文すれば入手可能な場合あり(Yonexマルチセンサ125を注文しました)"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">店頭に無いガットも注文すれば入手可能な場合あり(Yonexマルチセンサ125を注文しました)</td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("https://www.tennis-shop.jp/fs/tennis/c/0000000890","テニスサポートセンター(仙川店)")" data-sheets-hyperlink="https://www.tennis-shop.jp/fs/tennis/c/0000000890" data-sheets-value="{"1":2,"2":"テニスサポートセンター(仙川店)"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://www.tennis-shop.jp/fs/tennis/c/0000000890" target="_blank">テニスサポートセンター(仙川店)</a></td><td data-sheets-value="{"1":3,"3":2376}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2376</td><td data-sheets-value="{"1":2,"2":"?"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">?</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":43221}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2018/5</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("http://www.rsfuji.co.jp/company/shops.html","ラケットショップフジ")" data-sheets-hyperlink="http://www.rsfuji.co.jp/company/shops.html" data-sheets-value="{"1":2,"2":"ラケットショップフジ"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="http://www.rsfuji.co.jp/company/shops.html" target="_blank">ラケットショップフジ</a></td><td data-sheets-value="{"1":3,"3":1320}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">1320</td><td data-sheets-value="{"1":3,"3":1320}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">1320</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":44531}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2021/12</td><td data-sheets-value="{"1":2,"2":"川崎駅周辺\n持ち込みガットの場合張り上げまで時間がかかるときあり(2-3日)\n橋本駅周辺にもお店あり"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">川崎駅周辺<br />持ち込みガットの場合張り上げまで時間がかかるときあり(2-3日)<br />橋本駅周辺にもお店あり</td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("http://waytennis.sakura.ne.jp/","テニスショップウェイ新百合ヶ丘")" data-sheets-hyperlink="http://waytennis.sakura.ne.jp/" data-sheets-value="{"1":2,"2":"テニスショップウェイ新百合ヶ丘"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="http://waytennis.sakura.ne.jp/" target="_blank">テニスショップウェイ新百合ヶ丘</a></td><td data-sheets-value="{"1":3,"3":1100}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">1100</td><td data-sheets-value="{"1":3,"3":2200}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2200</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":44531}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2021/12</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("http://www.windsorracket.co.jp/shop/?s=14","ウィンザーテニスショップ聖蹟桜ヶ丘")" data-sheets-hyperlink="http://www.windsorracket.co.jp/shop/?s=14" data-sheets-value="{"1":2,"2":"ウィンザーテニスショップ聖蹟桜ヶ丘"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="http://www.windsorracket.co.jp/shop/?s=14" target="_blank">ウィンザーテニスショップ聖蹟桜ヶ丘</a></td><td data-sheets-value="{"1":3,"3":2090}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2090</td><td data-sheets-value="{"1":3,"3":2390}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2390</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":44531}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2021/12</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("https://www.lets-tennis.jp/","Let's Tennis School")" data-sheets-hyperlink="https://www.lets-tennis.jp/" data-sheets-value="{"1":2,"2":"Let's Tennis School"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://www.lets-tennis.jp/" target="_blank">Let's Tennis School</a></td><td data-sheets-value="{"1":3,"3":1620}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">1620</td><td data-sheets-value="{"1":3,"3":2160}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2160</td><td data-sheets-value="{"1":3,"3":2018}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2018</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("https://www.sportsauthority.co.jp/location/kanto.php#s325","Sports Authority")" data-sheets-hyperlink="https://www.sportsauthority.co.jp/location/kanto.php#s325" data-sheets-value="{"1":2,"2":"Sports Authority"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://www.sportsauthority.co.jp/location/kanto.php#s325" target="_blank">Sports Authority</a></td><td data-sheets-value="{"1":3,"3":864}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">864</td><td data-sheets-value="{"1":3,"3":2160}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2160</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":43252}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2018/6</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("https://www.alpen-group.jp/store/sportsdepo_alpen/shop_search/detail.php?shopid=7573","スポーツデポ ぐりーんうぉーく多摩店")" data-sheets-hyperlink="https://www.alpen-group.jp/store/sportsdepo_alpen/shop_search/detail.php?shopid=7573" data-sheets-value="{"1":2,"2":"スポーツデポ ぐりーんうぉーく多摩店"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: rgba(255, 0, 0, 0); font-family: sans-serif; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="https://www.alpen-group.jp/store/sportsdepo_alpen/shop_search/detail.php?shopid=7573" target="_blank">スポーツデポ ぐりーんうぉーく多摩店</a></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("http://www.fuji-sports.com/shop/tennis_lawn/gut/shop.html","フジスポーツ 本店(武蔵小杉)")" data-sheets-hyperlink="http://www.fuji-sports.com/shop/tennis_lawn/gut/shop.html" data-sheets-value="{"1":2,"2":"フジスポーツ 本店(武蔵小杉)"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: rgba(255, 0, 0, 0); font-family: sans-serif; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="http://www.fuji-sports.com/shop/tennis_lawn/gut/shop.html" target="_blank">フジスポーツ 本店(武蔵小杉)</a></td><td data-sheets-value="{"1":3,"3":900}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">900</td><td data-sheets-value="{"1":3,"3":2052}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2052</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":43221}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2018/5</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-formula="=HYPERLINK("http://www.gosen-sp.jp/haribito/?id=1331798077-328190&p=3&gca=3&mca=9&ca=","ラック 溝ノ口店")" data-sheets-hyperlink="http://www.gosen-sp.jp/haribito/?id=1331798077-328190&p=3&gca=3&mca=9&ca=" data-sheets-value="{"1":2,"2":"ラック 溝ノ口店"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; color: #1155cc; overflow: hidden; padding: 2px 3px; text-decoration-line: underline; vertical-align: bottom;"><a class="in-cell-link" href="http://www.gosen-sp.jp/haribito/?id=1331798077-328190&p=3&gca=3&mca=9&ca=" target="_blank">ラック 溝ノ口店</a></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td data-sheets-value="{"1":2,"2":"パパステニスクラブ津久井"}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;">パパステニスクラブ津久井</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":3,"3":2200}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2200</td><td data-sheets-numberformat="{"1":5,"2":"yyyy/m","3":1}" data-sheets-value="{"1":3,"3":44531}" style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; text-align: right; vertical-align: bottom;">2021/12</td><td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td></tr><tr style="height: 21px;"><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;"></td><td data-sheets-value="{"1":2,"2":"税込み"}" style="border: 1px solid rgb(204, 204, 204); overflow: hidden; padding: 2px 3px; vertical-align: bottom;">税込み</td></tr></tbody></table></google-sheets-html-origin></div>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-37805811128447680702018-02-11T10:03:00.000+09:002018-07-01T05:56:59.483+09:00[Android]LINEアプリでOS設定のアプリ権限で「位置情報」をOFFにすると動作が遅い[2018/06/30] この時点の版から位置情報をOFFにしても動作に不具合がなくなりました。<br />
<br />
いつからかAndroid上のLINEアプリケーションの動作がおかしくなりました。<br />
<br />
例えば:<br />
<br />
<ol>
<li>ボタン部分を押しても押したことを一回無視される。</li>
<li>IMEを有効にしてHOMEボタンを押してLINEを一度back groundに移動して、再度LINEを起動すると、IMEの表示→非表示まで時間がかかる。</li>
</ol>
その後手元の端末だけの問題と分かりlogcatでエラーが出ていないか調べてみました。<br />
<br />
以下の通り、BLEの処理をしているけど、PERMISSIONが無いためexceptionが出ていました。<br />
<br />
そこで、OS設定のアプリ権限でLINEの「位置情報」を「ON」に変更したところ改善しました。個人的には不要なパーミッションはOFFにしたいので、改善して欲しいところです。<br />
<br />
環境<br />
Android 8.1<br />
LINE 8.1.1<br />
<br />
問題発生時のlogcat<br />
<br />
<br />
<pre class="prettyprint">02-10 17:11:09.157 2124-2124/? I/GoogleInputMethod: onFinishInput() : Dummy InputConnection bound
02-10 17:11:09.157 2124-2124/? I/GoogleInputMethod: onStartInput() : Dummy InputConnection bound
02-10 17:11:09.161 883-944/? I/ActivityManager: Displayed jp.naver.line.android/.activity.chathistory.ChatHistoryActivity: +194ms (total +254ms)
02-10 17:11:09.185 2124-2124/? I/GoogleInputMethod: onFinishInput() : Dummy InputConnection bound
02-10 17:11:09.224 3181-3181/? V/View: dispatchProvideAutofillStructure(): not laid out, ignoring 0 children of 1073741840
02-10 17:11:09.224 3181-3181/? V/View: dispatchProvideAutofillStructure(): not laid out, ignoring 1 children of 1073741843
02-10 17:11:09.225 3181-3181/? V/View: dispatchProvideAutofillStructure(): not laid out, ignoring 0 children of 1073741853
02-10 17:11:09.225 3181-3181/? V/View: dispatchProvideAutofillStructure(): not laid out, ignoring 3 children of 1073741862
02-10 17:11:09.226 3181-3181/? V/View: dispatchProvideAutofillStructure(): not laid out, ignoring 4 children of 1073741874
02-10 17:11:09.226 3181-3181/? V/View: dispatchProvideAutofillStructure(): not laid out, ignoring 4 children of 1073741875
02-10 17:11:09.228 883-22436/? W/Binder: Outgoing transactions from this process must be FLAG_ONEWAY
java.lang.Throwable
at android.os.BinderProxy.transact(Binder.java:752)
at android.app.assist.AssistStructure$ParcelTransferReader.fetchData(AssistStructure.java:407)
at android.app.assist.AssistStructure$ParcelTransferReader.go(AssistStructure.java:343)
at android.app.assist.AssistStructure.ensureData(AssistStructure.java:2100)
at com.android.server.autofill.Session$1.send(Session.java:227)
at com.android.server.am.ActivityManagerService.reportAssistContextExtras(ActivityManagerService.java:13272)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2472)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2919)
at android.os.Binder.execTransact(Binder.java:697)
02-10 17:11:09.229 3181-3181/? I/AssistStructure: Flattened final assist data: 12784 bytes, containing 1 windows, 56 views
02-10 17:11:09.250 883-2370/? I/AssistStructure: Flattened final assist data: 12672 bytes, containing 1 windows, 56 views
02-10 17:11:09.463 698-698/? D/QCOM PowerHAL: LAUNCH HINT: OFF
02-10 17:11:09.799 3181-3219/? E/System: Ignoring attempt to set property "java.net.preferIPv6Addresses" to value "false".
</pre>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-92097588658424551732018-01-21T17:39:00.000+09:002018-03-27T22:48:16.401+09:00[Google Assistant, IFTTT] Google Homeに話しかけてhttp://diet.dyndns.orgの体重グラフを自動Update<br />
Google Home/Assistantに話しかけて<a href="http://diet.dyndns.org/">体重グラフ</a>を自動で更新する方法<br />
<br />
[2018/1/24] 体重にいわゆる半角全角が混ざっている場合にうまく半角に出来ない問題があります。近日修正予定です。<br />
[2018/1/25] 半角全角が混ざるのではなく、61.2kgといったときに "6[半角スペース]1.2kg"という文字送られてきているのが問題でした。スペースを削除するようにしました。<br />
[2018/2/18] IFTTTの返事文言を変更しました。<br />
[2018/2/21]体重グラフのWebページがhttps化されたため。Google App Scriptを変更しました(http→https)。<br />
[2018/3/16] Amazon Alexa用のskillを作成し、現在Amazonの審査中です。公開でき次第こちらにも記載します。また時間がとれればGoogle Assistant用のアプリも作成できればと思います(機能は本IFTTT版とほぼ同じです)<br />
[2018/3/23] Amazon Alexa用skillとして、「体重グラフ」を公開しました。ご要望があれば、weight-graph at sanpei.org にメールください。Google Assistant用のアクション(アプリ)も作成予定です。<br />
[2018/3/25] Google Assistant(Google Home)用のアクションとして「体重グラフ」をGoogleに公開申請しました。公開できましたらこちらに記載します。<br />
[2018/3/27] Google Assistant(Google Home)用のアクションとして「体重グラフ」をGoogleに公開しました。そのため以下の内容は技術的な参考として引き続き掲載します。<br />
<br />
各スキル・アクションのコードは以下のgithubで公開中です。<br />
<br />
<a href="https://github.com/sanpei3/alexa-diet-graph">Amazon Alexa用skill code</a><br />
<br />
<a href="https://github.com/sanpei3/Actions-On-Google-diet-graph">Google Assistant用Action code</a><br />
<br />
<br />
<br />
以下の設定の説明します。<br />
<br />
1) IFTTTの設定<br />
2) Google App Scriptの説明<br />
<br />
1) IFTTTの設定<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDXSQuykxBQB8PonqQoeUHNBUseu8UCpmfH3mZ4JiocE77j1pIZGi_dSSRXZ5rjWLK2PW5zkpFDA5GerkRmbcbu_cHidtfEuw612O7u2DlaLWkATUyBwFTtWkhiWRH5RPFbze4cUfzKgeB/s1600/IFTTT-weight.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDXSQuykxBQB8PonqQoeUHNBUseu8UCpmfH3mZ4JiocE77j1pIZGi_dSSRXZ5rjWLK2PW5zkpFDA5GerkRmbcbu_cHidtfEuw612O7u2DlaLWkATUyBwFTtWkhiWRH5RPFbze4cUfzKgeB/s1600/IFTTT-weight.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
1-1) IFTTTの設定のポイント<br />
1-1-1) IFの"Say a phrase with a text ingredient"の利用<br />
当初は体重は数字なので"Say a phrase with a number"を使っていましたが、Google Assistantが体重部分をいわゆる全角で認識する場合があり、そうすると数字ではなく文字列になりました。そのため、現在は"Say a phrase with a text ingredient"を利用しています。<br />
1-1-2) Languageは日本語(Japanese)に変更しています。<br />
<br />
2) Google App Script<br />
<br />
2-1) Google App ScriptはIFTTTと連携するGoogle DriveのGoogle Sheetで[Tools]->[Script editor...]で開いて入力ください(本例では、"IFTTT/sanpeiweight"の"Google Assistant Commands")<br />
<br />
2-2) Google App Scriptの操作方法はこちらの<a href="https://www.youtube.com/watch?v=ufujOWXsq40">YouTube</a>が参考になりました。<br />
[Resources] -> [All your trigger]か以下のボタンからTrigger追加してください。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtO8KbCiDlNMeXG3Wj6iTMFGt1IWEeYaoYYwq1o2APP4Ro4ZXjSHAJ1-icGcON2mWesauqO2bSiH4Lss4iDNhq0GcG7xMKPXWOJ4ZOyaV9jsEn-t6xScZuuwlyFQufEUKbc3_OjHNdWV_P/s1600/Trigger.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="715" data-original-width="1600" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtO8KbCiDlNMeXG3Wj6iTMFGt1IWEeYaoYYwq1o2APP4Ro4ZXjSHAJ1-icGcON2mWesauqO2bSiH4Lss4iDNhq0GcG7xMKPXWOJ4ZOyaV9jsEn-t6xScZuuwlyFQufEUKbc3_OjHNdWV_P/s640/Trigger.png" width="640" /></a></div>
<br />
2-3) diet.dyndns.orgのユーザー名とパスワードは、Google Sheetのシート名[Auth]のB1セルにユーザー名、B2セルにパスワードを入力してください。<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4rLRAfhUoiJBbzldt55z0XD-WJ3kZmB9WBlGt23wNXhwD7YqU6rERxhhc7Bp4CDzjapHl-RaJUh4EIfSnOvYOvUgrdIPZ8AiOaz8Jv7xKd6MlC81WYdgiYfpCfLmWJ5njK34BwlH3BBqq/s1600/GAS-sample-user-password.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="511" data-original-width="708" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4rLRAfhUoiJBbzldt55z0XD-WJ3kZmB9WBlGt23wNXhwD7YqU6rERxhhc7Bp4CDzjapHl-RaJUh4EIfSnOvYOvUgrdIPZ8AiOaz8Jv7xKd6MlC81WYdgiYfpCfLmWJ5njK34BwlH3BBqq/s320/GAS-sample-user-password.png" width="320" /></a></div>
<br />
2-4) 簡単な各関数の説明<br />
関数addDate:<br />
A) IFTTTでThen "Add row to spreadsheet"でなぜか"Add row to spreadsheet"をしても正しくCreatedAtが入らないためGAS側でA列に日付を入れています。<br />
B) Google Assistantが時々いわゆる全角文字で体重を認識するため全角を半角に変換しています。-->[2018/1/25] 全角ではなく、数字の途中に不要なスペースが入る場合がありその削除対応をしています。<br />
C) updateDietの呼び出し<br />
<br />
関数updateDiet:<br />
A) Diet.dyndns.orgと通信しながら、現在の時刻で体重を記録します。<br />
<br />
<br />
<pre class="prettyprint">function addDate(e) {
var authSheetName = "Auth";
var activeSheet = SpreadsheetApp.getActiveSheet();
if (activeSheet.getName() != authSheetName) {
var lr = activeSheet.getLastRow();
var weight = activeSheet.getRange(lr,2).getValue().toString();
weight = zenToHan(weight);
activeSheet.getRange(lr, 2).setValue(weight);
var CurrentDateString = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MMM d yyyy HH:mm:ss");
activeSheet.getRange(lr, 1).setValue(CurrentDateString);
updateDiet(weight, authSheetName);
}
}
function updateDiet(weight, authSheetName) {
var bk = SpreadsheetApp.getActiveSpreadsheet();
var authSheet = bk.getSheetByName(authSheetName);
var userId = authSheet.getRange(1,2).getValue().toString();
var password = authSheet.getRange(2,2).getValue().toString();
// 1. open login page
var LOGIN_URL = "https://diet.dyndns.org/?cmd=login&user="+userId+"&password="+password
var response = UrlFetchApp.fetch(LOGIN_URL, {'followRedirects': false, 'muteHttpExceptions': false});
Utilities.sleep(1000);
var headers = response.getAllHeaders();
var cookies = [];
if ( typeof headers['Set-Cookie'] !== 'undefined' ) {
// Set-Cookieヘッダーが2つ以上の場合はheaders['Set-Cookie']の中身は配列
cookies = typeof headers['Set-Cookie'] == 'string' ? [ headers['Set-Cookie'] ] : headers['Set-Cookie'];
for (var i = 0; i < cookies.length; i++) {
// Set-Cookieヘッダーからname=valueだけ取り出し、セミコロン以降の属性は除外する
cookies[i] = cookies[i].split( ';' )[0];
};
}
// 2. open redirect page
REDIRECT_URL = "https://diet.dyndns.org/?cmd=user&";
var options = {
method : "POST",
contentType: "application/x-www-form-urlencoded",
headers: {
Cookie: cookies.join(';')
},
};
response = UrlFetchApp.fetch(REDIRECT_URL, options);
Utilities.sleep(1000);
// 3. set weight
WRITE_URL = "https://diet.dyndns.org/";
var date = new Date();
var timeZone = Session.getScriptTimeZone();
var year = Utilities.formatDate(date, timeZone, "y");
var month = Utilities.formatDate(date, timeZone, "M");
var day = Utilities.formatDate(date, timeZone, "d");
var hour = Utilities.formatDate(date, timeZone, "H");
weight = weight.toString();
var options = {
method : "POST",
contentType: "application/x-www-form-urlencoded",
headers: {
Cookie: cookies.join(';')
},
payload : {
year: year,
month:month,
day:day,
hour:hour,
weight:weight,
comment:"",
cmd:"user",
mode:"input"
}
};
response = UrlFetchApp.fetch(WRITE_URL, options);
}
function zenToHan(s) {
s = s.replace(/[0-9.]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 65248);
});
return s.replace(/ /g, "");
}</pre>
<pre class="prettyprint"></pre>
<br />
ちなみに、バックアップも兼ねて以下のようにGoogle SheetにもA列に日時、B列に体重が入ります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzISgi_FHCWJkEed0GRzwbyEe4PuP3HCBLryGgB2NMqYxFZm_Muo82uSMe8eZOd0kZfaWvC1YpY3QakDc-RPtxscD4uELyf-Ttt6nLe4Vrm1QQUYP8yxgeLw3GfM_Qra_wRV77K8EAbLbj/s1600/GoogleSheet-sample.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="515" data-original-width="659" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzISgi_FHCWJkEed0GRzwbyEe4PuP3HCBLryGgB2NMqYxFZm_Muo82uSMe8eZOd0kZfaWvC1YpY3QakDc-RPtxscD4uELyf-Ttt6nLe4Vrm1QQUYP8yxgeLw3GfM_Qra_wRV77K8EAbLbj/s320/GoogleSheet-sample.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<pre class="prettyprint"></pre>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-25066868259974922722017-08-25T20:02:00.000+09:002017-08-25T20:03:51.395+09:00[FreeBSD] FreeBSD Embedded で VPN接続 at FreeBSD workshop<br />
<a href="https://freebsd-workshop.connpass.com/event/62977/" target="_blank">第32回FreeBSDワークショップ</a>(2017/8/25)での発表資料<br />
<br />
Google Driveに置いた<a href="https://docs.google.com/presentation/d/1up3M3VLsIPkt_8Nek8W81Vjf-cujEIggZygcyA7tsO8/edit#slide=id.p" target="_blank">資料(FreeBSD Embedded で VPN接続)</a>sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-3595255205344970852017-07-17T20:44:00.001+09:002017-07-17T20:44:42.476+09:00[Ruby] first monkey patch(Mechanize::Form::SelectList )This is my first monkey patch(for Mechanize::Form::SelectList)<br />
<br />
This monkey patch is even if the SelectList is not multiple, we can clear selectitems by select_none(original code was set first.value when select_none).<br />
<br />
<pre>class Mechanize::Form::SelectList < Mechanize::Form::MultiSelectList
def value
value = super
if value.length > 0
value.last
elsif @options.length > 0
# @options.first.value
nil
else
nil
end
end
end
</pre>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-3848688513031006542017-04-13T20:03:00.000+09:002017-04-13T20:58:10.459+09:00potatotips #39 (iOS/Android開発Tips共有会)2017年4月13日に参加レポートpotatotips #39 (iOS/Android開発Tips共有会)2017年4月13日に参加してきました。<br />
Android ブログ枠で参加しましたので、レポートします。<br />
<br />
会場の「株式会社サイバーエージェント」は部屋が横長でちょっと話しにくそうでした。<br />
<br />
<a href="https://potatotips.connpass.com/event/51176/" target="_blank">https://potatotips.connpass.com/event/51176/</a><br />
<br />
プレゼンテーションが公開されたら適宜リンクしていきます。<br />
<br />
<h3>
2. すたーほしさん:「iOS が fastlane なら Android も fastlane に乗って</h3>
<h3>
みては?」</h3>
<br />
<script async="" class="speakerdeck-embed" data-id="d9dabbefe1dc486cbae620a9d47cf68c" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script>
<br />
- iOSで継続的デリバリー --> fastlaneを使う<br />
- 人間がやっていたことを自動化できる。<br />
- gradleでできることは、fastlaneでできる<br />
- fastlaneはGoogleの仲間に入った<br />
- fastlaneは、lane で対応している。<br />
- 雰囲気はiOSと同じ感じで対応できる。<br />
- fastlaneのgradleに比較したメリット<br />
- iOSと同じ感じでlaneを作れる。<br />
- ...<br />
- fastlaneのデメリット<br />
- rubyなども必要<br />
<br />
- fastlaneの設定例も公開しているので参照してみてください(Android/iOS)<br />
<br />
<a href="https://github.com/starhoshi/fastlane-example">https://github.com/starhoshi/fastlane-example</a><br />
<br />
<div>
<h3>
4. しゃのんさん「Android Javaの既存プロダクトをKotlinで書き換えている話」</h3>
<div>
- Android JavaアプリをKotlin x DataBindingに移行中<br />
<br />
- 今までのアプリの状況<br />
- WebView版リリース<br />
- Native Appは7割完成しかし古いlibraryなど使う<br />
- この機会にKotlinに行こう<br />
<br />
- Binding<br />
- ButterKnife6を利用していた<br />
- Butterknife8にしたけどいまいち<br />
<br />
- 攻めの構成(Kotlin x Databindで行けた理由<br />
- まだリリースしていないプロダクトだったので心の余裕あり<br />
- ペアcodingなどを導入<br />
<br />
- 現状<br />
- 7割方Kotlin移行済み<br />
<br /></div>
<div>
<br /></div>
<h3>
6. さとしゅんさん「AutoDisposeとRxLifeCycleの話」</h3>
<div>
- RxLifeCycleとは<br />
- 非同期処理に対してdisposeをすればキャンセルできる。<br />
- 課題、ストリーム定義とストリームキャンセル部分が**離れている**<br />
- composeでPAUSE時にどうするこうすると、Observable定義時にキャンセルをかける<br />
<br />
- RxLifecycleは、takeUntilオペレータに依存している<br />
- そのためdisposableと違う挙動になる。<br />
- Single, Completable時にonErrorが呼ばれる。<br />
<br />
- AutoDispose<br />
- RxLifecycleの困った点を解決<br />
- Disposeと同じ挙動になる[OK]<br />
- .to(new Observable....)<br />
- AutoDisposeの欠点<br />
- toオペレータはストリームチェインを破壊するので最後に各必要がある。</div>
<div>
<br /></div>
<h3>
8. いまけいさん「Sending Simple Data to Other Apps」</h3>
<div>
- グリッドでのアプリリストの出し方。<br />
- 普通に作るとListになる。<br />
- Intent.createChooser(sendIntent,....)とする<br />
- 使い分け方<br />
- Listの方法<br />
- 任意のアクションを別のアプリで行いたい<br />
- コンテンツを別のアプリで開きたい<br />
- Grid<br />
- 現在見ているコンテンツを共有したい</div>
<h3>
10. きーすよこまさん「What’s new in Android O WindowManager」</h3>
<div>
- WindowManagerでいっぱいdeprecated APIとなっている。<br />
- DroidKaigi2017で説明した部分がのきなみdeprecated<br />
- Application Overlayが追加された(TYPE_APPLICATION_OVERLAY"<br />
- 整理された感じ</div>
<div>
<br /></div>
<div>
関連書籍: Colorful Android</div>
<div>
<a href="https://techbooster.github.io/tbf02/">https://techbooster.github.io/tbf02/</a></div>
<div>
<br /></div>
<h3>
12. こばけいさん「俺たちが欲しかった下タブはコレジャナイ」</h3>
<div>
<script async="" class="speakerdeck-embed" data-id="d0f6983a3b5344c6a1ce0a7a8ba3487c" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script>
<div>
- 下タブ<br />
- サポートライブラリーの対応はいまいち<br />
- タブ6枚以上でクラッシュなどなど<br />
- 3rd party<br />
- Matrial Guideline準拠<br />
- タイトル常に表示可能<br />
- などなど使いやすい<br />
<br />
- BottomBar<br />
- GOOD<br />
- 実績多数<br />
- セットアップがXML<br />
- Tablet<br />
- BAD<br />
- FAB連携ない<br />
- バッジが数字しかない。<br />
<br />
- ahbottomnavigation<br />
- GOOD<br />
-FAB対応、バッジ文字列対応<br />
- BAD<br />
- XML未対応など..<br />
<br />
- BottomNavigation<br />
- GOOD<br />
- FAB対応<br />
- バッジ対応<br />
- BAD<br />
- XML未対応など..<br />
<br />
- お勧めは?<br />
- FABを使って、タブレット非対応<br />
- ahbottomnavigation<br />
- それ以外BottomBar<br />
<br />
- SupportLibraryは使う意味ない...<br />
<br /></div>
<div>
<br /></div>
<h3>
14. まぎーぷーさん「Autofill Framework」</h3>
</div>
<div>
- Android Oから入ったAutofill Framework<br />
- ユーザーさんは面倒な作業やタイプミスが防げる<br />
- Android Oに最適化されます。<br />
- Mobile側に設定が必要<br />
- Settings -> Apps & Notification....<br />
<br />
- TextViewは特になにもしなくてもOK<br />
- CustomView/GLSurfaceViewなど<br />
- 面倒な対応必要<br />
<br />
- AutoFillService<br />
- 認証情報を提供する<br />
- 1 Password<br />
<br />
- FillResponse<br />
- アプリ側に返ってくる情報<br />
...<br />
- onProvideAutoFillStructure<br />
- onProvideAutoFillVirtualStructure<br />
などで、テキストフォームがある情報をAutoFillServiceに通知<br />
<br />
- エミュレータでもうまく動かない<br />
- エミュレータのバグがまだあるらしい<br />
<br /></div>
</div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-38198284717155821822017-04-09T11:15:00.003+09:002017-04-09T11:31:24.079+09:00[FreeBSD] how to install eMMC from SD-CardI wrote boot image after boot from SD-Card.<br />
<br />
# dd if=FreeBSD-12.0-CURRENT-arm-armv6-BEAGLEBONE-20170323-r315864.img of=/dev/mmcsd1 bs=10240 conv=sync<br />
<br />
related infomation<br />
<br />
<div>
<a href="https://wiki.freebsd.org/FreeBSD/arm/BeagleBoneBlack">https://wiki.freebsd.org/FreeBSD/arm/BeagleBoneBlack</a><br />
<br />
currently below messages were outputed at u-boot. Unfortunately I do not know how to fix this issue. But after some seconds(about 5-10s), it will boot automatically.<br />
<br />
Card did not respond to voltage select!</div>
<div>
<br /></div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-11470773126682652712017-02-28T21:52:00.001+09:002017-02-28T21:55:50.494+09:00[DMM英会話]Top 10 Teacher(Feb/2017)<br />
Rank(Jan Rank). Name, Techer ID, Score, Number of Votes<br />
Teacher URL<br />
<br />
Male<br />
<br />
1(→1). Chriss,1077, 5.0, 2126<br />
<a href="http://eikaiwa.dmm.com/teacher/index/1077/">http://eikaiwa.dmm.com/teacher/index/1077/</a><br />
2(↑5). Stevan K,11105, 5.0, 1719<br />
<a href="http://eikaiwa.dmm.com/teacher/index/11105/">http://eikaiwa.dmm.com/teacher/index/11105/</a><br />
3(↑4). Silva,6221, 5.0, 1634<br />
<a href="http://eikaiwa.dmm.com/teacher/index/6221/">http://eikaiwa.dmm.com/teacher/index/6221/</a><br />
4(↓3). Erno,1860, 5.0, 1596<br />
<a href="http://eikaiwa.dmm.com/teacher/index/1860/">http://eikaiwa.dmm.com/teacher/index/1860/</a><br />
5(↑6). Richie,2581, 5.0, 1462<br />
<a href="http://eikaiwa.dmm.com/teacher/index/2581/">http://eikaiwa.dmm.com/teacher/index/2581/</a><br />
6(↑↑). Mahir,2558, 5.0, 1437<br />
<a href="http://eikaiwa.dmm.com/teacher/index/2558/">http://eikaiwa.dmm.com/teacher/index/2558/</a><br />
7(→7). Tweety,4320, 5.0, 1398<br />
<a href="http://eikaiwa.dmm.com/teacher/index/4320/">http://eikaiwa.dmm.com/teacher/index/4320/</a><br />
8(→8). Rade,4208, 5.0, 1393<br />
<a href="http://eikaiwa.dmm.com/teacher/index/4208/">http://eikaiwa.dmm.com/teacher/index/4208/</a><br />
9(↑10). Jaidev,8110, 5.0, 1337<br />
<a href="http://eikaiwa.dmm.com/teacher/index/8110/">http://eikaiwa.dmm.com/teacher/index/8110/</a><br />
10(↑↑). . Nick D,4075, 5.0, 1302<br />
<a href="http://eikaiwa.dmm.com/teacher/index/4075/">http://eikaiwa.dmm.com/teacher/index/4075/</a><br />
<div>
<br /></div>
<div>
Female and only Philipino</div>
<div>
<div>
1(→1). Lotlot,2613, 5.0, 2059</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/2613/">http://eikaiwa.dmm.com/teacher/index/2613/</a></div>
<div>
2(↑3). Mavil,5143, 5.0, 1797</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/5143/">http://eikaiwa.dmm.com/teacher/index/5143/</a></div>
<div>
3(↑5). Violy,13494, 5.0, 1688</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/13494/">http://eikaiwa.dmm.com/teacher/index/13494/</a></div>
<div>
4(↑↑). Sachiko,3406, 5.0, 1506</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/3406/">http://eikaiwa.dmm.com/teacher/index/3406/</a></div>
<div>
5(↑6). Ruby Ann S,6534, 5.0, 1440</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/6534/">http://eikaiwa.dmm.com/teacher/index/6534/</a></div>
<div>
6(↑↑). Febie,3328, 5.0, 1438</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/3328/">http://eikaiwa.dmm.com/teacher/index/3328/</a></div>
<div>
7(↑↑). Bechie,8477, 5.0, 1305</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/8477/">http://eikaiwa.dmm.com/teacher/index/8477/</a></div>
<div>
8(↑9). Pearl G,6203, 5.0, 1275</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/6203/">http://eikaiwa.dmm.com/teacher/index/6203/</a></div>
<div>
9(↓7). Frances B,7900, 5.0, 1260</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/7900/">http://eikaiwa.dmm.com/teacher/index/7900/</a></div>
<div>
10(↑↑).Aprille G,9146, 5.0, 1175</div>
<div>
<a href="http://eikaiwa.dmm.com/teacher/index/9146/">http://eikaiwa.dmm.com/teacher/index/9146/</a></div>
</div>
<div>
<br /></div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com1tag:blogger.com,1999:blog-6939411793523208433.post-66046290904966966982017-02-11T10:59:00.000+09:002017-02-11T10:59:06.616+09:00[Play Station4] how to play m2ts file with mediatombI used mediatomb as DLNA server for Sony Play Station 3.<br />
Now I bought Play Station 4, at first I could not play same settings of mediatomb.<br />
<br />
1. download Media Player for Play Station 4[Free].<br />
2. change settings of mediatomb as below.<br />
<br />
<map from="mpeg" to="video/mpeg"/><br />
<map from="vob" to="video/mpeg"/><br />
<map from="vro" to="video/mpeg"/><br />
- <map from="m2ts" to="video/avc"/><br />
+ <map from="m2ts" to="video/mpeg"/><br />
<map from="mts" to="video/avc"/><br />
<map from="asf" to="video/x-ms-asf"/><br />
<map from="asx" to="video/x-ms-asf"/><br />
<div>
<br /></div>
<div>
<br /></div>
I think Play Station 4 does not support "video/avc", it must be "video/mpeg".<br />
<div>
<br /></div>
<div>
I put my configuration file(<a href="http://www.sanpei.org/~sanpei/tmp/mediatomb-config.xml-2017-211">config.xml</a>) at</div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-60560327775710127962016-12-31T10:41:00.000+09:002016-12-31T10:41:06.317+09:00[DMM Eikaiwa] Teacher ID vs ....<h3 style="clear: both; text-align: left;">
1. Teacher ID vs how long teach</h3>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNa6NxK9mX13ouQ-cw74NKbnXyp5_1hqui5hQGymGxQffWZQ7SSNRB4x5LWRQ7qZrJURo2A8VZB_qxeA-MrVTSihKMnIzfJfJJ-MGfM-j9avCfPk8aLo7mQHfqDAhDxLxlyJ86dBbAaZHL/s1600/201612-ID-vs-Year.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNa6NxK9mX13ouQ-cw74NKbnXyp5_1hqui5hQGymGxQffWZQ7SSNRB4x5LWRQ7qZrJURo2A8VZB_qxeA-MrVTSihKMnIzfJfJJ-MGfM-j9avCfPk8aLo7mQHfqDAhDxLxlyJ86dBbAaZHL/s640/201612-ID-vs-Year.png" width="640" /></a></div>
<h3 style="clear: both;">
2. Teacher ID vs score</h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt0j0yoiLifEzq9dwmxp8zTSPBqjwKwRHP31hiIM6TYIX05WQpQQkmAmQ-XuybkYNiqiakc1ZMCX4ggHH3CCx-o9G6j0Ft9agep56SatWARNcUCVwuv1A3a8d_1Akl9-euncgLp530zWX0/s1600/201612-ID-vs-score.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt0j0yoiLifEzq9dwmxp8zTSPBqjwKwRHP31hiIM6TYIX05WQpQQkmAmQ-XuybkYNiqiakc1ZMCX4ggHH3CCx-o9G6j0Ft9agep56SatWARNcUCVwuv1A3a8d_1Akl9-euncgLp530zWX0/s640/201612-ID-vs-score.png" width="640" /></a></div>
<div>
<br /></div>
<div>
<h3 style="clear: both;">
3. Teacher ID vs number of rating</h3>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJeNFkiWgwZ57NQeVDGpoYRt0uP4tnCJS87s0WUQxRkR3EzFlLAROD13xwR1YWzst4wVuAjGqVJICnW-GRS3ICjtMK1LXuabZJefBHc9wiSbSNxttg2opGXLVKYqLN29x_eYXizJ6S_ZIr/s1600/201612-ID-vs-rating.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJeNFkiWgwZ57NQeVDGpoYRt0uP4tnCJS87s0WUQxRkR3EzFlLAROD13xwR1YWzst4wVuAjGqVJICnW-GRS3ICjtMK1LXuabZJefBHc9wiSbSNxttg2opGXLVKYqLN29x_eYXizJ6S_ZIr/s640/201612-ID-vs-rating.png" width="640" /></a></div>
<div>
<br /></div>
sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-90563673716668819732016-12-30T12:35:00.000+09:002016-12-30T22:33:09.036+09:00[DMM Eikaiwa] How long does teacher teach English?<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3 style="clear: both; text-align: left;">
1. How many registered teachers in DMM Eikaiwa?</h3>
<div class="separator" style="clear: both; text-align: left;">
Currently Max teacher ID is 16360(as is Dec/2016). But registered teacher is only 5383(orange line). This number is stable around 5000 from April/2016. DMM Eikaiwa tried to hire new teacher(so increase max ID number), but many teacher resigned.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI08nP4XmQ4uq1sp-IQ3bCEdqNHAJ-pozDAcU-hgq5OuJT6cJLUCS_JwD6td6Fb6qHHm0JiZOxi4jdCg9JnTdBwlbcJngD41UuV79tN1G9__V-XykX5nk81IHe_NRDfH4oSJET82xKnlk0/s1600/201612-How-many-registered-teachers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI08nP4XmQ4uq1sp-IQ3bCEdqNHAJ-pozDAcU-hgq5OuJT6cJLUCS_JwD6td6Fb6qHHm0JiZOxi4jdCg9JnTdBwlbcJngD41UuV79tN1G9__V-XykX5nk81IHe_NRDfH4oSJET82xKnlk0/s400/201612-How-many-registered-teachers.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNQRD_LiO9C-ZIBtIrHrvLz_-7bpFujQCY1WWRS8_5ee9NV4rfmB-JXLjq8qqcHivoNeWXl2V0SreMz_w37ZvnszUIYkEizyklBkVypmmvKe62cBrRVBHWyuEJowtoODIFoJnkgPDTJCS3/s1600/201612-numberofnewteachers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNQRD_LiO9C-ZIBtIrHrvLz_-7bpFujQCY1WWRS8_5ee9NV4rfmB-JXLjq8qqcHivoNeWXl2V0SreMz_w37ZvnszUIYkEizyklBkVypmmvKe62cBrRVBHWyuEJowtoODIFoJnkgPDTJCS3/s400/201612-numberofnewteachers.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3 style="clear: both; text-align: left;">
2. How long does teacher teach English?</h3>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
1 year(RED bar) is decreasing. Some teacher is step up to 2 years(Orange bar). But < 1 year(Blue bar)is not shift to 1 year(maybe resign before 1 year). So 1 year is decreasing, I think.</div>
<div class="separator" style="clear: both; text-align: left;">
And if this trend(resign level high) continues, teacher skill level may be down because less than one year teacher will be increased.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGD03b_bHnjqgwv46Qi4uM-nGzLAeH3KQD_fCGN4W-RXuBzFsj4d1ViM8sARLS9z5_lyK87jK-O7S2FU_e3VuQyrJsKz_RNHyHeHrp3mGzivU1vL6Rucl3jAPCMR9OFe1CPnFPYEdD9lsV/s1600/201612-How-long-does-teach-total.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGD03b_bHnjqgwv46Qi4uM-nGzLAeH3KQD_fCGN4W-RXuBzFsj4d1ViM8sARLS9z5_lyK87jK-O7S2FU_e3VuQyrJsKz_RNHyHeHrp3mGzivU1vL6Rucl3jAPCMR9OFe1CPnFPYEdD9lsV/s400/201612-How-long-does-teach-total.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Ogf_EgEdcsVUPLxtFt7X_9ZBEwvQZT78r6BkvbE5q6nv7EeCV0qXJKanXQ16HH76V5VM7hnEongtUrpVXhiHp84BbXtWNDhDm4prON3qCIJ7LDSdz01qmIicNC8F-_otoFfRBxqooihC/s1600/201612-How-long-does-teach-percent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Ogf_EgEdcsVUPLxtFt7X_9ZBEwvQZT78r6BkvbE5q6nv7EeCV0qXJKanXQ16HH76V5VM7hnEongtUrpVXhiHp84BbXtWNDhDm4prON3qCIJ7LDSdz01qmIicNC8F-_otoFfRBxqooihC/s400/201612-How-long-does-teach-percent.png" width="400" /></a></div>
<br />sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0tag:blogger.com,1999:blog-6939411793523208433.post-39297142428584500272016-12-21T21:38:00.002+09:002016-12-21T21:38:43.544+09:00[DMM英会話]ユーザー評価の平均点<div class="separator" style="clear: both; text-align: left;">
2016年10月末ごろのDMM英会話の先生のユーザー評価の平均点グラフです。</div>
<div class="separator" style="clear: both; text-align: left;">
あなたはユーザー評価何点の先生を選んでいますか?</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFpMA_RhDCbz0IrVMLRxAA43omr7BFWJTVRCB3nTslGp7F_-fy1_bYpcPcrx5x20uN_BDboSlckcNRKElew-mWe-ZlnDHp8iEXJk7NZVjddsepxBZ9b49qBBNXFkEMV7gYZVVI_vFPrYEs/s1600/all-graph.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFpMA_RhDCbz0IrVMLRxAA43omr7BFWJTVRCB3nTslGp7F_-fy1_bYpcPcrx5x20uN_BDboSlckcNRKElew-mWe-ZlnDHp8iEXJk7NZVjddsepxBZ9b49qBBNXFkEMV7gYZVVI_vFPrYEs/s640/all-graph.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
上記の★の数4から5までを拡大したグラフ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdwep2Ml3Ovxj2TDKtS3zUTcX87RddJtxFyJ01qmdyy7aC-EOYbs_WT-awhRxfwB2In9bYWWm2rMWXObS9mmOhDpyYxDWbbkJbNfiP5JqBBHkFPatr-Rvs0USSSVqb8miKUE_Q9AwKAv4L/s1600/graph.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdwep2Ml3Ovxj2TDKtS3zUTcX87RddJtxFyJ01qmdyy7aC-EOYbs_WT-awhRxfwB2In9bYWWm2rMWXObS9mmOhDpyYxDWbbkJbNfiP5JqBBHkFPatr-Rvs0USSSVqb8miKUE_Q9AwKAv4L/s640/graph.png" width="640" /></a></div>
2016年10月末現在の先生のIDの最大は15308ぐらい。<br />
登録(home pageにredirectされない)先生数は5436ぐらいです。sanpeihttp://www.blogger.com/profile/14653871108343664140noreply@blogger.com0