tag:blogger.com,1999:blog-90154532559226992024-03-26T11:03:51.554+09:00The Strange StorageBeautiful Things Don't Ask For Attention.Unknownnoreply@blogger.comBlogger259125tag:blogger.com,1999:blog-9015453255922699.post-68832094292180964432024-03-26T11:03:00.000+09:002024-03-26T11:03:06.938+09:00DUNE Ornithopterのモデルキット<img style="display: none;" alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji3tVFN9G-ZklZSPZ7pd_IJ3qovka0ITD_Ff7qOvNRE_fy9TLggeijkCQgfNpaQCsZBr7gmetEU9EeywwR-9A7dEGzDAR89g4uBQH73FVbFVZ9ckI0irtK23GnBO3LNrbvCTUNGVJU4WcoT3HUGH0_HNz_0qpg5lafW0X_ti8DYom_pU0uW0ZdD1Y79A/s1600/Featured%20Image.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji3tVFN9G-ZklZSPZ7pd_IJ3qovka0ITD_Ff7qOvNRE_fy9TLggeijkCQgfNpaQCsZBr7gmetEU9EeywwR-9A7dEGzDAR89g4uBQH73FVbFVZ9ckI0irtK23GnBO3LNrbvCTUNGVJU4WcoT3HUGH0_HNz_0qpg5lafW0X_ti8DYom_pU0uW0ZdD1Y79A/s1600/Featured%20Image.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji3tVFN9G-ZklZSPZ7pd_IJ3qovka0ITD_Ff7qOvNRE_fy9TLggeijkCQgfNpaQCsZBr7gmetEU9EeywwR-9A7dEGzDAR89g4uBQH73FVbFVZ9ckI0irtK23GnBO3LNrbvCTUNGVJU4WcoT3HUGH0_HNz_0qpg5lafW0X_ti8DYom_pU0uW0ZdD1Y79A/s1600/Featured%20Image.jpg=w1640 2x"
width="820" height="547">
<p>
MENG製のDUNE Ornithopter(デューン/砂の惑星 オーニソプター)が届いたので記録。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykJEF022D5-xlryTPNtSayTGV5MLLNiwbvlQ7dZG__B0oAlzTQdtN42QCc0mOLljcvHbGzOYmzz6rDQsq-hj8CmJf-bDH-z3qO8yjkD2bfADG35esDISY6c9DMQfG3haWdo6S9bnlAI3Y0qieJNr7nBXBR8y0Vq1s-NITLfJzIfYnDBRhNuStEkx7ng/s1600/01%20Package%20Front.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykJEF022D5-xlryTPNtSayTGV5MLLNiwbvlQ7dZG__B0oAlzTQdtN42QCc0mOLljcvHbGzOYmzz6rDQsq-hj8CmJf-bDH-z3qO8yjkD2bfADG35esDISY6c9DMQfG3haWdo6S9bnlAI3Y0qieJNr7nBXBR8y0Vq1s-NITLfJzIfYnDBRhNuStEkx7ng/s1600/01%20Package%20Front.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykJEF022D5-xlryTPNtSayTGV5MLLNiwbvlQ7dZG__B0oAlzTQdtN42QCc0mOLljcvHbGzOYmzz6rDQsq-hj8CmJf-bDH-z3qO8yjkD2bfADG35esDISY6c9DMQfG3haWdo6S9bnlAI3Y0qieJNr7nBXBR8y0Vq1s-NITLfJzIfYnDBRhNuStEkx7ng/s1600/01%20Package%20Front.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhykJEF022D5-xlryTPNtSayTGV5MLLNiwbvlQ7dZG__B0oAlzTQdtN42QCc0mOLljcvHbGzOYmzz6rDQsq-hj8CmJf-bDH-z3qO8yjkD2bfADG35esDISY6c9DMQfG3haWdo6S9bnlAI3Y0qieJNr7nBXBR8y0Vq1s-NITLfJzIfYnDBRhNuStEkx7ng/s1600/01%20Package%20Front.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>パッケージおもて</figcaption>
</figure>
<p>
ハルコンネン(Harkonnen)版とアトレイデス(Atreides)版の機体をそれぞれ1機ずつ購入(なんかロマンある文章だな)。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTgIBB42wOt31w6wktjrwUVXoZal6Es4TRYFuvwxfFZbvcgqJ-zmAVVixYIi3yjV1P2R8QTABG3R5c1jisP3i0VubhFRqi0inWQG0eEFd4f_Z7-fcjiYNqKb1iwdjvoYLb8g2zLkvWMQ_BOLJPrp-wUQlWjU2KQ-PQMbkVnorvc0yfPQrnOhIRAZlu2Q/s1600/02%20Package%20Back.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTgIBB42wOt31w6wktjrwUVXoZal6Es4TRYFuvwxfFZbvcgqJ-zmAVVixYIi3yjV1P2R8QTABG3R5c1jisP3i0VubhFRqi0inWQG0eEFd4f_Z7-fcjiYNqKb1iwdjvoYLb8g2zLkvWMQ_BOLJPrp-wUQlWjU2KQ-PQMbkVnorvc0yfPQrnOhIRAZlu2Q/s1600/02%20Package%20Back.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTgIBB42wOt31w6wktjrwUVXoZal6Es4TRYFuvwxfFZbvcgqJ-zmAVVixYIi3yjV1P2R8QTABG3R5c1jisP3i0VubhFRqi0inWQG0eEFd4f_Z7-fcjiYNqKb1iwdjvoYLb8g2zLkvWMQ_BOLJPrp-wUQlWjU2KQ-PQMbkVnorvc0yfPQrnOhIRAZlu2Q/s1600/02%20Package%20Back.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTgIBB42wOt31w6wktjrwUVXoZal6Es4TRYFuvwxfFZbvcgqJ-zmAVVixYIi3yjV1P2R8QTABG3R5c1jisP3i0VubhFRqi0inWQG0eEFd4f_Z7-fcjiYNqKb1iwdjvoYLb8g2zLkvWMQ_BOLJPrp-wUQlWjU2KQ-PQMbkVnorvc0yfPQrnOhIRAZlu2Q/s1600/02%20Package%20Back.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>パッケージうら</figcaption>
</figure>
<p>
パッケージ裏面には組み立て方法が描かれている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTAKQ03rmyWiz_6659cfmd1WkNdScXBzpIKNhkx9OoAToLwHALsBvZfqwWIKjERGjLB4COd00NDzPRc-SuaUXXVmD6y6bhNAoReDtMATB_QcIO9spMnJRcfmMRLwrMrlg84pghehOBX0q9yxD-eUzXQW9ys2qhyphenhyphenUF9EgAdiKjQrIMEH7QI-FNGYhInA/s1600/03%20Package%20Side.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTAKQ03rmyWiz_6659cfmd1WkNdScXBzpIKNhkx9OoAToLwHALsBvZfqwWIKjERGjLB4COd00NDzPRc-SuaUXXVmD6y6bhNAoReDtMATB_QcIO9spMnJRcfmMRLwrMrlg84pghehOBX0q9yxD-eUzXQW9ys2qhyphenhyphenUF9EgAdiKjQrIMEH7QI-FNGYhInA/s1600/03%20Package%20Side.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTAKQ03rmyWiz_6659cfmd1WkNdScXBzpIKNhkx9OoAToLwHALsBvZfqwWIKjERGjLB4COd00NDzPRc-SuaUXXVmD6y6bhNAoReDtMATB_QcIO9spMnJRcfmMRLwrMrlg84pghehOBX0q9yxD-eUzXQW9ys2qhyphenhyphenUF9EgAdiKjQrIMEH7QI-FNGYhInA/s1600/03%20Package%20Side.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTAKQ03rmyWiz_6659cfmd1WkNdScXBzpIKNhkx9OoAToLwHALsBvZfqwWIKjERGjLB4COd00NDzPRc-SuaUXXVmD6y6bhNAoReDtMATB_QcIO9spMnJRcfmMRLwrMrlg84pghehOBX0q9yxD-eUzXQW9ys2qhyphenhyphenUF9EgAdiKjQrIMEH7QI-FNGYhInA/s1600/03%20Package%20Side.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>パッケージの側面</figcaption>
</figure>
<p>
パッケージ側面にはデカールの貼り付け位置が記されていた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ewE22dtE1i-DDfToF8tv2fOWAzPx9PEkdatau09PdHx6ht258ZpS6wgrf6uByMQnuLzY7wi3za51pan_YT1az_GSZ394L_y2EjfTy8xxQuEJb3YQ2EB5PVqnxd-uqFNCLaT0mCTRZlmjfPvibYxrrTuR5-tB7pDofGeDoLUy6RXDBTUVOs-EOQs2cQ/s1600/04%20Package%20Opened.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ewE22dtE1i-DDfToF8tv2fOWAzPx9PEkdatau09PdHx6ht258ZpS6wgrf6uByMQnuLzY7wi3za51pan_YT1az_GSZ394L_y2EjfTy8xxQuEJb3YQ2EB5PVqnxd-uqFNCLaT0mCTRZlmjfPvibYxrrTuR5-tB7pDofGeDoLUy6RXDBTUVOs-EOQs2cQ/s1600/04%20Package%20Opened.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ewE22dtE1i-DDfToF8tv2fOWAzPx9PEkdatau09PdHx6ht258ZpS6wgrf6uByMQnuLzY7wi3za51pan_YT1az_GSZ394L_y2EjfTy8xxQuEJb3YQ2EB5PVqnxd-uqFNCLaT0mCTRZlmjfPvibYxrrTuR5-tB7pDofGeDoLUy6RXDBTUVOs-EOQs2cQ/s1600/04%20Package%20Opened.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ewE22dtE1i-DDfToF8tv2fOWAzPx9PEkdatau09PdHx6ht258ZpS6wgrf6uByMQnuLzY7wi3za51pan_YT1az_GSZ394L_y2EjfTy8xxQuEJb3YQ2EB5PVqnxd-uqFNCLaT0mCTRZlmjfPvibYxrrTuR5-tB7pDofGeDoLUy6RXDBTUVOs-EOQs2cQ/s1600/04%20Package%20Opened.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>箱、開封</figcaption>
</figure>
<p>
さっそく開封。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT66J_lNXr_ISiFoTXN6MQgvlSfwbL_zdQvDUcgKqLLOl8HB_XV1na5Gq_03oOOJv1Irmchj556J3CwA_uwB_exm_pX_7Xl7ifKQTzYa9h4nhw5cMROCcVth_862xw5QOuCUhU67RzzSRs0LJGZp1GF4dmDWkLBRAQ71F0ffbRcoOQlKb3gS6diuntEw/s1600/05%20Harkonnen%20Contents.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT66J_lNXr_ISiFoTXN6MQgvlSfwbL_zdQvDUcgKqLLOl8HB_XV1na5Gq_03oOOJv1Irmchj556J3CwA_uwB_exm_pX_7Xl7ifKQTzYa9h4nhw5cMROCcVth_862xw5QOuCUhU67RzzSRs0LJGZp1GF4dmDWkLBRAQ71F0ffbRcoOQlKb3gS6diuntEw/s1600/05%20Harkonnen%20Contents.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT66J_lNXr_ISiFoTXN6MQgvlSfwbL_zdQvDUcgKqLLOl8HB_XV1na5Gq_03oOOJv1Irmchj556J3CwA_uwB_exm_pX_7Xl7ifKQTzYa9h4nhw5cMROCcVth_862xw5QOuCUhU67RzzSRs0LJGZp1GF4dmDWkLBRAQ71F0ffbRcoOQlKb3gS6diuntEw/s1600/05%20Harkonnen%20Contents.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT66J_lNXr_ISiFoTXN6MQgvlSfwbL_zdQvDUcgKqLLOl8HB_XV1na5Gq_03oOOJv1Irmchj556J3CwA_uwB_exm_pX_7Xl7ifKQTzYa9h4nhw5cMROCcVth_862xw5QOuCUhU67RzzSRs0LJGZp1GF4dmDWkLBRAQ71F0ffbRcoOQlKb3gS6diuntEw/s1600/05%20Harkonnen%20Contents.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>ハルコンネン版の付属品一覧</figcaption>
</figure>
<p>
上がハルコンネン版オーニソプターの内容。6枚のランナー、1組のデカール、そして組み立て注意点の記された紙が1枚入っている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRkLKLzm-IIGQwGQWcrYnublfTqTXLAQjsrHTe_J6qWEC8zVRQtmDTBCMAamI6IOu4mfG2-E_C38CPr-N0ixogaOoOgUgnsnwGzXc3OYbYiniSfu4sMzQxqc5QfMMUynpvRTiftrgSfE5P2rcHarE2wGZAe3e4FJbP8vavb9TsgXomGxnw3wz-aX5Cw/s1600/06%20Atreides%20Contents.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRkLKLzm-IIGQwGQWcrYnublfTqTXLAQjsrHTe_J6qWEC8zVRQtmDTBCMAamI6IOu4mfG2-E_C38CPr-N0ixogaOoOgUgnsnwGzXc3OYbYiniSfu4sMzQxqc5QfMMUynpvRTiftrgSfE5P2rcHarE2wGZAe3e4FJbP8vavb9TsgXomGxnw3wz-aX5Cw/s1600/06%20Atreides%20Contents.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRkLKLzm-IIGQwGQWcrYnublfTqTXLAQjsrHTe_J6qWEC8zVRQtmDTBCMAamI6IOu4mfG2-E_C38CPr-N0ixogaOoOgUgnsnwGzXc3OYbYiniSfu4sMzQxqc5QfMMUynpvRTiftrgSfE5P2rcHarE2wGZAe3e4FJbP8vavb9TsgXomGxnw3wz-aX5Cw/s1600/06%20Atreides%20Contents.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRkLKLzm-IIGQwGQWcrYnublfTqTXLAQjsrHTe_J6qWEC8zVRQtmDTBCMAamI6IOu4mfG2-E_C38CPr-N0ixogaOoOgUgnsnwGzXc3OYbYiniSfu4sMzQxqc5QfMMUynpvRTiftrgSfE5P2rcHarE2wGZAe3e4FJbP8vavb9TsgXomGxnw3wz-aX5Cw/s1600/06%20Atreides%20Contents.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>アトレイデス版の付属品一覧</figcaption>
</figure>
<p>
アトレイデス版オーニソプターの内容はランナーが5枚である点を除けば、ハルコンネン版と同じ内容。どうやらハルコンネン版は本体パーツが2枚のランナーに分かれている模様。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIKtwKm1ok9-mFXepjB5UCP8Rhct_pfFlWkZute7aMloU0n-hVvUObk7auPXfVXMbPOsAPdwPOkE4bHeKnY6a7YgP714hEPooXyb0Mq_Tj16SXpxlgJvxbnnGL1HvdhejRXMf8h0KzAtPY1uU6hP88EApt2BKKCIMronRda5AFGE3ptk557UFMe101wA/s1600/07%20Instruction.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIKtwKm1ok9-mFXepjB5UCP8Rhct_pfFlWkZute7aMloU0n-hVvUObk7auPXfVXMbPOsAPdwPOkE4bHeKnY6a7YgP714hEPooXyb0Mq_Tj16SXpxlgJvxbnnGL1HvdhejRXMf8h0KzAtPY1uU6hP88EApt2BKKCIMronRda5AFGE3ptk557UFMe101wA/s1600/07%20Instruction.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIKtwKm1ok9-mFXepjB5UCP8Rhct_pfFlWkZute7aMloU0n-hVvUObk7auPXfVXMbPOsAPdwPOkE4bHeKnY6a7YgP714hEPooXyb0Mq_Tj16SXpxlgJvxbnnGL1HvdhejRXMf8h0KzAtPY1uU6hP88EApt2BKKCIMronRda5AFGE3ptk557UFMe101wA/s1600/07%20Instruction.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIKtwKm1ok9-mFXepjB5UCP8Rhct_pfFlWkZute7aMloU0n-hVvUObk7auPXfVXMbPOsAPdwPOkE4bHeKnY6a7YgP714hEPooXyb0Mq_Tj16SXpxlgJvxbnnGL1HvdhejRXMf8h0KzAtPY1uU6hP88EApt2BKKCIMronRda5AFGE3ptk557UFMe101wA/s1600/07%20Instruction.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>組み立て注意点の書かれた紙</figcaption>
</figure>
<p>
組み立て方法は箱にのみ記されている。この紙はプラモデルをつくるにはこういう点に注意すると上手につくれます、とか怪我しないように気をつけてね、とかそういった類のことのみ書かれていた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlB9RuBE3OEZI1wLzGJqHWojaKtAPhoi5HryA8gmgpJU6jrw8qVza9lGNjwTDrRoakeZ-DRIRndukYy61l6dEAtDRG_Wo1b5wseqg0oXajojJAt5U5MMsbFvRRSo5_cBFcGmU7G_MtiuEe33DH2GLM_OA5fCA9RMqc-L6WSlTSuI5r4wFfwL1sM3g0DA/s1600/08%20Parts%201.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlB9RuBE3OEZI1wLzGJqHWojaKtAPhoi5HryA8gmgpJU6jrw8qVza9lGNjwTDrRoakeZ-DRIRndukYy61l6dEAtDRG_Wo1b5wseqg0oXajojJAt5U5MMsbFvRRSo5_cBFcGmU7G_MtiuEe33DH2GLM_OA5fCA9RMqc-L6WSlTSuI5r4wFfwL1sM3g0DA/s1600/08%20Parts%201.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlB9RuBE3OEZI1wLzGJqHWojaKtAPhoi5HryA8gmgpJU6jrw8qVza9lGNjwTDrRoakeZ-DRIRndukYy61l6dEAtDRG_Wo1b5wseqg0oXajojJAt5U5MMsbFvRRSo5_cBFcGmU7G_MtiuEe33DH2GLM_OA5fCA9RMqc-L6WSlTSuI5r4wFfwL1sM3g0DA/s1600/08%20Parts%201.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlB9RuBE3OEZI1wLzGJqHWojaKtAPhoi5HryA8gmgpJU6jrw8qVza9lGNjwTDrRoakeZ-DRIRndukYy61l6dEAtDRG_Wo1b5wseqg0oXajojJAt5U5MMsbFvRRSo5_cBFcGmU7G_MtiuEe33DH2GLM_OA5fCA9RMqc-L6WSlTSuI5r4wFfwL1sM3g0DA/s1600/08%20Parts%201.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>土台ランナーZ</figcaption>
</figure>
<p>
“Z”と書かれた黒色のランナー。これは土台パーツだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiSilmog5hKGL-F4HECN6I22M-LJue-hAjdDYFDwgMG0BnjDRDYQyyw-2aThZAvUy5bzvyqkcYbQhp5AojbvHE0BGq9WtctGqj0SuwatI5C5pD4Rtt7GHeLBgUcTyfDgZjRm_hTG_zk4acdSblH5hvHegzNOwvtGKIhYSIcu1sHUM4Gs7lDaIqkAHDPQ/s1600/10%20Parts%203.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiSilmog5hKGL-F4HECN6I22M-LJue-hAjdDYFDwgMG0BnjDRDYQyyw-2aThZAvUy5bzvyqkcYbQhp5AojbvHE0BGq9WtctGqj0SuwatI5C5pD4Rtt7GHeLBgUcTyfDgZjRm_hTG_zk4acdSblH5hvHegzNOwvtGKIhYSIcu1sHUM4Gs7lDaIqkAHDPQ/s1600/10%20Parts%203.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiSilmog5hKGL-F4HECN6I22M-LJue-hAjdDYFDwgMG0BnjDRDYQyyw-2aThZAvUy5bzvyqkcYbQhp5AojbvHE0BGq9WtctGqj0SuwatI5C5pD4Rtt7GHeLBgUcTyfDgZjRm_hTG_zk4acdSblH5hvHegzNOwvtGKIhYSIcu1sHUM4Gs7lDaIqkAHDPQ/s1600/10%20Parts%203.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiSilmog5hKGL-F4HECN6I22M-LJue-hAjdDYFDwgMG0BnjDRDYQyyw-2aThZAvUy5bzvyqkcYbQhp5AojbvHE0BGq9WtctGqj0SuwatI5C5pD4Rtt7GHeLBgUcTyfDgZjRm_hTG_zk4acdSblH5hvHegzNOwvtGKIhYSIcu1sHUM4Gs7lDaIqkAHDPQ/s1600/10%20Parts%203.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>左側用の羽ランナーC</figcaption>
</figure>
<p>
“C”のランナーはオーニソプター左側の羽パーツ。アトレイデス版オーニソプターは羽4枚が対になった計8枚、ハルコンネン版は羽3枚が対の計6枚であるが、ランナーが共有されているためハルコンネン版では左右1枚ずつ羽パーツ余る。こうしてどちらの機体にも流用できる予備の羽パーツを得られたのは嬉しい。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Wc1bhzi6s9wJIo3pnU-9eXLIuQcoeakpypDKHkj6TLW91uZ89HOjvKtnnPOEcZsUSbboOjZv-warGApQu5WKpMEeGdUGoYsUGFxtdCHhu4bhIUchpQtQ0NaiMhNsVgEkIP2B2Eekq1ZzcVRxaqQydvGpoYwSSF0tHpo5yLOvNwDE4g6Bwn34P67gGg/s1600/09%20Parts%202.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Wc1bhzi6s9wJIo3pnU-9eXLIuQcoeakpypDKHkj6TLW91uZ89HOjvKtnnPOEcZsUSbboOjZv-warGApQu5WKpMEeGdUGoYsUGFxtdCHhu4bhIUchpQtQ0NaiMhNsVgEkIP2B2Eekq1ZzcVRxaqQydvGpoYwSSF0tHpo5yLOvNwDE4g6Bwn34P67gGg/s1600/09%20Parts%202.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Wc1bhzi6s9wJIo3pnU-9eXLIuQcoeakpypDKHkj6TLW91uZ89HOjvKtnnPOEcZsUSbboOjZv-warGApQu5WKpMEeGdUGoYsUGFxtdCHhu4bhIUchpQtQ0NaiMhNsVgEkIP2B2Eekq1ZzcVRxaqQydvGpoYwSSF0tHpo5yLOvNwDE4g6Bwn34P67gGg/s1600/09%20Parts%202.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Wc1bhzi6s9wJIo3pnU-9eXLIuQcoeakpypDKHkj6TLW91uZ89HOjvKtnnPOEcZsUSbboOjZv-warGApQu5WKpMEeGdUGoYsUGFxtdCHhu4bhIUchpQtQ0NaiMhNsVgEkIP2B2Eekq1ZzcVRxaqQydvGpoYwSSF0tHpo5yLOvNwDE4g6Bwn34P67gGg/s1600/09%20Parts%202.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>右側用の羽ランナーD</figcaption>
</figure>
<p>
“D”のランナーは右側面に来る羽パーツ。こちらもハルコンネン、アトレイデス、まったく同じ形状の羽パーツ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIXsUY0r1d1ybFxDZj0e_BAa7vl3FG33KZt03VgkHetexvwJTZH0SWQII3b1m2_S1lqWiGBvcXUzhsBhYlPdQG7Z0qbWePsvBO1I5lcbMt6U7W0Ef0-bGzga_472UBaiL-cHeaYtYOr1BfIw3L07BICji6P6aBjnIeloKOiAjLNhzJgNOIQD7DWJnkhQ/s1600/11%20Parts%204.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIXsUY0r1d1ybFxDZj0e_BAa7vl3FG33KZt03VgkHetexvwJTZH0SWQII3b1m2_S1lqWiGBvcXUzhsBhYlPdQG7Z0qbWePsvBO1I5lcbMt6U7W0Ef0-bGzga_472UBaiL-cHeaYtYOr1BfIw3L07BICji6P6aBjnIeloKOiAjLNhzJgNOIQD7DWJnkhQ/s1600/11%20Parts%204.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIXsUY0r1d1ybFxDZj0e_BAa7vl3FG33KZt03VgkHetexvwJTZH0SWQII3b1m2_S1lqWiGBvcXUzhsBhYlPdQG7Z0qbWePsvBO1I5lcbMt6U7W0Ef0-bGzga_472UBaiL-cHeaYtYOr1BfIw3L07BICji6P6aBjnIeloKOiAjLNhzJgNOIQD7DWJnkhQ/s1600/11%20Parts%204.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIXsUY0r1d1ybFxDZj0e_BAa7vl3FG33KZt03VgkHetexvwJTZH0SWQII3b1m2_S1lqWiGBvcXUzhsBhYlPdQG7Z0qbWePsvBO1I5lcbMt6U7W0Ef0-bGzga_472UBaiL-cHeaYtYOr1BfIw3L07BICji6P6aBjnIeloKOiAjLNhzJgNOIQD7DWJnkhQ/s1600/11%20Parts%204.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>脚や羽の付け根ランナーB</figcaption>
</figure>
<p>
“B”ランナーには脚部やタラップ、本体下部にあるフロントライト、更には羽の付け根といった細やかなパーツが揃っている。脚部およびタラップ部は着陸時と離陸時でそれぞれ別パーツが用意されている。羽パーツ同様、ハルコンネン版では羽の付け根パーツも1対予備パーツとして余る。付け根パーツに左右は無いので重宝。実際、撮影中に1つ付け根パーツが壊れてしまったので、予備があって大変助かった。“B7”パーツはフロントライトなのだが、これもくびれ部分が大変細いためランナーから切り離す際はご注意いただきたい(わたくし手元がおっちょこしちゃってこのくびれ部分が白っちゃけちゃいました)。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE863HO_NGv6mtJ4FmekaXIpXlF9o7sNwdHxKLBf3v4oAiHnPag9JnpoC9Lqw5dUdosIzQQwmmjkPYTyGk2pUeTtbdhWGGnXm5bPQvz31otRuguqFKVodfKCnAFcABRs2rQU2TDqRjxX-_xKEyPwRoapeIeuu-5osuHUbuyn9Xtf7vFEA0ilkeWVdatw/s1600/12%20Parts%205.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE863HO_NGv6mtJ4FmekaXIpXlF9o7sNwdHxKLBf3v4oAiHnPag9JnpoC9Lqw5dUdosIzQQwmmjkPYTyGk2pUeTtbdhWGGnXm5bPQvz31otRuguqFKVodfKCnAFcABRs2rQU2TDqRjxX-_xKEyPwRoapeIeuu-5osuHUbuyn9Xtf7vFEA0ilkeWVdatw/s1600/12%20Parts%205.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE863HO_NGv6mtJ4FmekaXIpXlF9o7sNwdHxKLBf3v4oAiHnPag9JnpoC9Lqw5dUdosIzQQwmmjkPYTyGk2pUeTtbdhWGGnXm5bPQvz31otRuguqFKVodfKCnAFcABRs2rQU2TDqRjxX-_xKEyPwRoapeIeuu-5osuHUbuyn9Xtf7vFEA0ilkeWVdatw/s1600/12%20Parts%205.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE863HO_NGv6mtJ4FmekaXIpXlF9o7sNwdHxKLBf3v4oAiHnPag9JnpoC9Lqw5dUdosIzQQwmmjkPYTyGk2pUeTtbdhWGGnXm5bPQvz31otRuguqFKVodfKCnAFcABRs2rQU2TDqRjxX-_xKEyPwRoapeIeuu-5osuHUbuyn9Xtf7vFEA0ilkeWVdatw/s1600/12%20Parts%205.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>本体ランナーA(アトレイデス)、E・F(ハルコンネン)</figcaption>
</figure>
<p>
“A”ランナーがアトレイデス版の本体、“E”と“F”ランナーがハルコンネン版の本体パーツとなっている。ハルコンネン版には機関砲(“F1”パーツ)まで付いている。残忍だ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB15yeiDBgR4UXFANvgsoX39Z97W06raP_1yWLFqXRB888hLD8D8ZmwrfLCckVMrcJ68l5BNeTrLVdsXDssZDgqDCyRdETVFneMen4ivumXnvUREbYxIHWp1BdfgbBEtjeEcQICEPB9GIf940QMSoksNOlziNgciqA95l6JR_LUyg5xeUrXxmQtDvAPg/s1600/13%20Decals.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB15yeiDBgR4UXFANvgsoX39Z97W06raP_1yWLFqXRB888hLD8D8ZmwrfLCckVMrcJ68l5BNeTrLVdsXDssZDgqDCyRdETVFneMen4ivumXnvUREbYxIHWp1BdfgbBEtjeEcQICEPB9GIf940QMSoksNOlziNgciqA95l6JR_LUyg5xeUrXxmQtDvAPg/s1600/13%20Decals.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB15yeiDBgR4UXFANvgsoX39Z97W06raP_1yWLFqXRB888hLD8D8ZmwrfLCckVMrcJ68l5BNeTrLVdsXDssZDgqDCyRdETVFneMen4ivumXnvUREbYxIHWp1BdfgbBEtjeEcQICEPB9GIf940QMSoksNOlziNgciqA95l6JR_LUyg5xeUrXxmQtDvAPg/s1600/13%20Decals.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB15yeiDBgR4UXFANvgsoX39Z97W06raP_1yWLFqXRB888hLD8D8ZmwrfLCckVMrcJ68l5BNeTrLVdsXDssZDgqDCyRdETVFneMen4ivumXnvUREbYxIHWp1BdfgbBEtjeEcQICEPB9GIf940QMSoksNOlziNgciqA95l6JR_LUyg5xeUrXxmQtDvAPg/s1600/13%20Decals.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>デカール</figcaption>
</figure>
<p>
デカール。よく見るとアトレイデスの紋章、ハルコンネンの紋章がそれぞれある。わたしは手先も器用でなければモデルキット組み立ての経験もほぼ無いため、デカールも塗装も何も施さずに組み立てた。よってデカールは未開封で保管中。
</p>
<p>
さて、此処から先は組み上げたものの写真になる。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUCK7Gke4zIJ3VY6ZHCTjvOZkaZUsTxBJUxgnovsdd2A9k2A_RrBE57ipgibqeSS7xxBcLodXI5txKet8ylTyj9paWJEvYf5kDIyy7yndOLP-QVgxMJFevX3xjli9TIKi2IrL5cSdl_jaNFqsX32QRHNTdM798-dCTMSxQEQPNGC2YjV1SDALQjE6aZQ/s1600/14%20Harkonnen%20Landing.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUCK7Gke4zIJ3VY6ZHCTjvOZkaZUsTxBJUxgnovsdd2A9k2A_RrBE57ipgibqeSS7xxBcLodXI5txKet8ylTyj9paWJEvYf5kDIyy7yndOLP-QVgxMJFevX3xjli9TIKi2IrL5cSdl_jaNFqsX32QRHNTdM798-dCTMSxQEQPNGC2YjV1SDALQjE6aZQ/s1600/14%20Harkonnen%20Landing.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUCK7Gke4zIJ3VY6ZHCTjvOZkaZUsTxBJUxgnovsdd2A9k2A_RrBE57ipgibqeSS7xxBcLodXI5txKet8ylTyj9paWJEvYf5kDIyy7yndOLP-QVgxMJFevX3xjli9TIKi2IrL5cSdl_jaNFqsX32QRHNTdM798-dCTMSxQEQPNGC2YjV1SDALQjE6aZQ/s1600/14%20Harkonnen%20Landing.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUCK7Gke4zIJ3VY6ZHCTjvOZkaZUsTxBJUxgnovsdd2A9k2A_RrBE57ipgibqeSS7xxBcLodXI5txKet8ylTyj9paWJEvYf5kDIyy7yndOLP-QVgxMJFevX3xjli9TIKi2IrL5cSdl_jaNFqsX32QRHNTdM798-dCTMSxQEQPNGC2YjV1SDALQjE6aZQ/s1600/14%20Harkonnen%20Landing.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>ハルコンネン版の着陸時</figcaption>
</figure>
<p>
まずは着陸時の機体写真から。先にハルコンネンモデル。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3RLFgozk5mIQZsYQlRLdKCHDGhr7hEURuMTnXDB4PVzxijn2pCj-W9DhQnfWlooS3XbyR1Ejb63SOOaQsqa1iTaM7UIkXihsNMKfFCAsRnzbxNWD01LxUOU4NzKhEl1kTcVnue_T0BkwJWBhBJbPReVC2gw6VON4UN4c-zIe5idvy-FFx-AQj9zjjmQ/s1600/15%20Atreides%20Landing.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3RLFgozk5mIQZsYQlRLdKCHDGhr7hEURuMTnXDB4PVzxijn2pCj-W9DhQnfWlooS3XbyR1Ejb63SOOaQsqa1iTaM7UIkXihsNMKfFCAsRnzbxNWD01LxUOU4NzKhEl1kTcVnue_T0BkwJWBhBJbPReVC2gw6VON4UN4c-zIe5idvy-FFx-AQj9zjjmQ/s1600/15%20Atreides%20Landing.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3RLFgozk5mIQZsYQlRLdKCHDGhr7hEURuMTnXDB4PVzxijn2pCj-W9DhQnfWlooS3XbyR1Ejb63SOOaQsqa1iTaM7UIkXihsNMKfFCAsRnzbxNWD01LxUOU4NzKhEl1kTcVnue_T0BkwJWBhBJbPReVC2gw6VON4UN4c-zIe5idvy-FFx-AQj9zjjmQ/s1600/15%20Atreides%20Landing.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3RLFgozk5mIQZsYQlRLdKCHDGhr7hEURuMTnXDB4PVzxijn2pCj-W9DhQnfWlooS3XbyR1Ejb63SOOaQsqa1iTaM7UIkXihsNMKfFCAsRnzbxNWD01LxUOU4NzKhEl1kTcVnue_T0BkwJWBhBJbPReVC2gw6VON4UN4c-zIe5idvy-FFx-AQj9zjjmQ/s1600/15%20Atreides%20Landing.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>アトレイデス版の着陸時</figcaption>
</figure>
<p>
こちらはアトレイデスモデル。こう見るとアトレイデス版はハルコンネン版に比べ羽が1対多いので、羽のデカさがより際立つ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiacVNWvJHkudNTuVswUCGqJesSCgGPea-190GlZAcTwKxodQkPqYFyfjfn6UXnZmI6aavSx46DAZYG-4pbLQNgDSIeTNzCaujc79305zvw4YOuP2cRBM7kHGoPox3prVnHcLcLRzbjwgYUdwtsrgTsMsvztUFRGp80fJeWPQnrHZz3XY2eSlV8UYG1Kw/s1600/16%20Harkonnen%20Landing%20Left.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiacVNWvJHkudNTuVswUCGqJesSCgGPea-190GlZAcTwKxodQkPqYFyfjfn6UXnZmI6aavSx46DAZYG-4pbLQNgDSIeTNzCaujc79305zvw4YOuP2cRBM7kHGoPox3prVnHcLcLRzbjwgYUdwtsrgTsMsvztUFRGp80fJeWPQnrHZz3XY2eSlV8UYG1Kw/s1600/16%20Harkonnen%20Landing%20Left.jpg=w720"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiacVNWvJHkudNTuVswUCGqJesSCgGPea-190GlZAcTwKxodQkPqYFyfjfn6UXnZmI6aavSx46DAZYG-4pbLQNgDSIeTNzCaujc79305zvw4YOuP2cRBM7kHGoPox3prVnHcLcLRzbjwgYUdwtsrgTsMsvztUFRGp80fJeWPQnrHZz3XY2eSlV8UYG1Kw/s1600/16%20Harkonnen%20Landing%20Left.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiacVNWvJHkudNTuVswUCGqJesSCgGPea-190GlZAcTwKxodQkPqYFyfjfn6UXnZmI6aavSx46DAZYG-4pbLQNgDSIeTNzCaujc79305zvw4YOuP2cRBM7kHGoPox3prVnHcLcLRzbjwgYUdwtsrgTsMsvztUFRGp80fJeWPQnrHZz3XY2eSlV8UYG1Kw/s1600/16%20Harkonnen%20Landing%20Left.jpg=w1440 2x"
width="720" height="480">
</a>
<figcaption>ハルコンネン版の着陸時よこ</figcaption>
</figure>
<p>
ハルコンネン版は滑らかなフォルムで、まさに昆虫だ。羽もアトレイデス版と比べ落ち着いていて(Low-profileで)軍用機味が強い。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEBL5sGnTdMTehRsrUq3Jyute-LhRyxgfRfgW-i-mN5_RQP0KcFwT0SVm4qzpgNVXPfxd-3F0hkYFPeuFobV1nE5vWE7mhUf6rhVH_feup7tdMmNX3FZyht8xwJ_q_EDMh6xlBGDi04EZzlLQQ8T9VT2tSHErsoqMHmf1or59W5z1l7N0YsNCqlleYzw/s1600/17%20Atreides%20Landing%20Left.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEBL5sGnTdMTehRsrUq3Jyute-LhRyxgfRfgW-i-mN5_RQP0KcFwT0SVm4qzpgNVXPfxd-3F0hkYFPeuFobV1nE5vWE7mhUf6rhVH_feup7tdMmNX3FZyht8xwJ_q_EDMh6xlBGDi04EZzlLQQ8T9VT2tSHErsoqMHmf1or59W5z1l7N0YsNCqlleYzw/s1600/17%20Atreides%20Landing%20Left.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEBL5sGnTdMTehRsrUq3Jyute-LhRyxgfRfgW-i-mN5_RQP0KcFwT0SVm4qzpgNVXPfxd-3F0hkYFPeuFobV1nE5vWE7mhUf6rhVH_feup7tdMmNX3FZyht8xwJ_q_EDMh6xlBGDi04EZzlLQQ8T9VT2tSHErsoqMHmf1or59W5z1l7N0YsNCqlleYzw/s1600/17%20Atreides%20Landing%20Left.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEBL5sGnTdMTehRsrUq3Jyute-LhRyxgfRfgW-i-mN5_RQP0KcFwT0SVm4qzpgNVXPfxd-3F0hkYFPeuFobV1nE5vWE7mhUf6rhVH_feup7tdMmNX3FZyht8xwJ_q_EDMh6xlBGDi04EZzlLQQ8T9VT2tSHErsoqMHmf1or59W5z1l7N0YsNCqlleYzw/s1600/17%20Atreides%20Landing%20Left.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>アトレイデス版の着陸時よこ</figcaption>
</figure>
<p>
アトレイデス版は角張ったデザインで無骨さを感じた。モデルキットだと羽の付け根が混み合って、羽を格納するのも一苦労であった。でも、どちらもかっこいい。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEganTHL2p2STYov90BoqQErdzMDsh3bww5F-MyKG1As4PONz6Pe_WudCZBy_x7Pz1VcGJwg3UNGxMJumgNtPV90FqanC-BbaEZM3VVkNjb4_7H9Fz4Uaji8qDBG6sdwUzLMI9xde34pk7yH6ojKkxAxNmOo4BSma_jY5kGAKReQudza1Lz1Ci_-DMVxIA/s1600/18%20Harkonnen%20Flying.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEganTHL2p2STYov90BoqQErdzMDsh3bww5F-MyKG1As4PONz6Pe_WudCZBy_x7Pz1VcGJwg3UNGxMJumgNtPV90FqanC-BbaEZM3VVkNjb4_7H9Fz4Uaji8qDBG6sdwUzLMI9xde34pk7yH6ojKkxAxNmOo4BSma_jY5kGAKReQudza1Lz1Ci_-DMVxIA/s1600/18%20Harkonnen%20Flying.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEganTHL2p2STYov90BoqQErdzMDsh3bww5F-MyKG1As4PONz6Pe_WudCZBy_x7Pz1VcGJwg3UNGxMJumgNtPV90FqanC-BbaEZM3VVkNjb4_7H9Fz4Uaji8qDBG6sdwUzLMI9xde34pk7yH6ojKkxAxNmOo4BSma_jY5kGAKReQudza1Lz1Ci_-DMVxIA/s1600/18%20Harkonnen%20Flying.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEganTHL2p2STYov90BoqQErdzMDsh3bww5F-MyKG1As4PONz6Pe_WudCZBy_x7Pz1VcGJwg3UNGxMJumgNtPV90FqanC-BbaEZM3VVkNjb4_7H9Fz4Uaji8qDBG6sdwUzLMI9xde34pk7yH6ojKkxAxNmOo4BSma_jY5kGAKReQudza1Lz1Ci_-DMVxIA/s1600/18%20Harkonnen%20Flying.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>ハルコンネン版の飛行時</figcaption>
</figure>
<p>
次は離陸・飛行時。先にハルコンネンモデルから。離陸モードへチェンジするために、羽は180度回転させ、脚部・タラップ部のパーツも付け替えた。やはりこの感じが一番好き。今も飛行状態のまま飾っている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht0i1yD2SdgzB4gHGMLGL6qN8LJ39foW9gjvK2e1dORiIzV2DG00eZ2RCsvIovL6Geis2PznueLdzzIeaN7zGbw-S3kVi2ot4nxzD5ryDHcW6S2zGG5C6cY_9CzZS436jQ_103_t9zfL60yVPcVpGSfJGV62sS-bIdw0bvllCaeeR-5STVsNn6kpfF3Q/s1600/19%20Atreides%20Flying.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht0i1yD2SdgzB4gHGMLGL6qN8LJ39foW9gjvK2e1dORiIzV2DG00eZ2RCsvIovL6Geis2PznueLdzzIeaN7zGbw-S3kVi2ot4nxzD5ryDHcW6S2zGG5C6cY_9CzZS436jQ_103_t9zfL60yVPcVpGSfJGV62sS-bIdw0bvllCaeeR-5STVsNn6kpfF3Q/s1600/19%20Atreides%20Flying.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht0i1yD2SdgzB4gHGMLGL6qN8LJ39foW9gjvK2e1dORiIzV2DG00eZ2RCsvIovL6Geis2PznueLdzzIeaN7zGbw-S3kVi2ot4nxzD5ryDHcW6S2zGG5C6cY_9CzZS436jQ_103_t9zfL60yVPcVpGSfJGV62sS-bIdw0bvllCaeeR-5STVsNn6kpfF3Q/s1600/19%20Atreides%20Flying.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht0i1yD2SdgzB4gHGMLGL6qN8LJ39foW9gjvK2e1dORiIzV2DG00eZ2RCsvIovL6Geis2PznueLdzzIeaN7zGbw-S3kVi2ot4nxzD5ryDHcW6S2zGG5C6cY_9CzZS436jQ_103_t9zfL60yVPcVpGSfJGV62sS-bIdw0bvllCaeeR-5STVsNn6kpfF3Q/s1600/19%20Atreides%20Flying.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>アトレイデス版の飛行時</figcaption>
</figure>
<p>
アトレイデス版オーニソプターの飛行モード。映画で、特にPART ONEでよく観た画になる。このコックピットに乗ってみたい。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2CI_sKtu3PsiATpQ5aX3GAoj-ATxlvHEECfTqrMqbU7m6ZiEnSM6jvpec0yFHtwoKU0sdgObS5NhzHx9z_i4ccoM5sXJw_SxJUSHdTW5qjEuqBTdG5BbBT_e8m6BR0TTlxafgICzjlwU13czepDJJNIDMJSRd3x1Qsxd1oQL3ZU2N3kdjtkRRla4rmg/s1600/20%20Harkonnen%20Flying%20Front.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2CI_sKtu3PsiATpQ5aX3GAoj-ATxlvHEECfTqrMqbU7m6ZiEnSM6jvpec0yFHtwoKU0sdgObS5NhzHx9z_i4ccoM5sXJw_SxJUSHdTW5qjEuqBTdG5BbBT_e8m6BR0TTlxafgICzjlwU13czepDJJNIDMJSRd3x1Qsxd1oQL3ZU2N3kdjtkRRla4rmg/s1600/20%20Harkonnen%20Flying%20Front.jpg=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2CI_sKtu3PsiATpQ5aX3GAoj-ATxlvHEECfTqrMqbU7m6ZiEnSM6jvpec0yFHtwoKU0sdgObS5NhzHx9z_i4ccoM5sXJw_SxJUSHdTW5qjEuqBTdG5BbBT_e8m6BR0TTlxafgICzjlwU13czepDJJNIDMJSRd3x1Qsxd1oQL3ZU2N3kdjtkRRla4rmg/s1600/20%20Harkonnen%20Flying%20Front.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2CI_sKtu3PsiATpQ5aX3GAoj-ATxlvHEECfTqrMqbU7m6ZiEnSM6jvpec0yFHtwoKU0sdgObS5NhzHx9z_i4ccoM5sXJw_SxJUSHdTW5qjEuqBTdG5BbBT_e8m6BR0TTlxafgICzjlwU13czepDJJNIDMJSRd3x1Qsxd1oQL3ZU2N3kdjtkRRla4rmg/s1600/20%20Harkonnen%20Flying%20Front.jpg=w1640 2x"
width="820" height="547">
</a>
<figcaption>ハルコンネン版の飛行時まえ</figcaption>
</figure>
<p>
飛行中のオーニソプターを正面から捉えると、また印象的なフォルムを得られる。こちらはハルコンネン版。やはり軍用機味が強い。シーホークかアパッチのような軍用ヘリに睨まれているような威圧感。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0wwRQs09ngGYILvkxMCusFJDQmMJjfGyLgNLFusb9740-0fqFfr23tnMGNuTlnFLyhmn7Q3FbKhL5DN2AYgQgGTd4hIILH02ssdxbaL76fQxyFt8U02eqVeCXxSPNsWHXZqSnwiLhWgrE5E4mzFYjjBtFkT6Cvx4DnJXKL9RXctsGFMlnYrbFZzveVg/s1600/21%20Atreides%20Flying%20Front.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0wwRQs09ngGYILvkxMCusFJDQmMJjfGyLgNLFusb9740-0fqFfr23tnMGNuTlnFLyhmn7Q3FbKhL5DN2AYgQgGTd4hIILH02ssdxbaL76fQxyFt8U02eqVeCXxSPNsWHXZqSnwiLhWgrE5E4mzFYjjBtFkT6Cvx4DnJXKL9RXctsGFMlnYrbFZzveVg/s1600/21%20Atreides%20Flying%20Front.jpg=w720"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0wwRQs09ngGYILvkxMCusFJDQmMJjfGyLgNLFusb9740-0fqFfr23tnMGNuTlnFLyhmn7Q3FbKhL5DN2AYgQgGTd4hIILH02ssdxbaL76fQxyFt8U02eqVeCXxSPNsWHXZqSnwiLhWgrE5E4mzFYjjBtFkT6Cvx4DnJXKL9RXctsGFMlnYrbFZzveVg/s1600/21%20Atreides%20Flying%20Front.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0wwRQs09ngGYILvkxMCusFJDQmMJjfGyLgNLFusb9740-0fqFfr23tnMGNuTlnFLyhmn7Q3FbKhL5DN2AYgQgGTd4hIILH02ssdxbaL76fQxyFt8U02eqVeCXxSPNsWHXZqSnwiLhWgrE5E4mzFYjjBtFkT6Cvx4DnJXKL9RXctsGFMlnYrbFZzveVg/s1600/21%20Atreides%20Flying%20Front.jpg=w1440 2x"
width="720" height="480">
</a>
<figcaption>アトレイデス版の飛行時まえ</figcaption>
</figure>
<p>
アトレイデス版オーニソプターを正面から見ると、だいぶ工業的なデザインであることが伺える。香料採取機器などと同様、ハルコンネン版を見た後だとより“質素”に見える。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCXQ-cF7Bt-1i10GTQZDEhQo9jqGN8qSyFKbRbx3r1qY1INJJ8w53Pq7ycgWKjqc5dgQCcWcKn6S6fWeA7fnliwQ8HKBlCJEJQ28sll15DZb3ORbNjLvIgQbddkZcdfGF9VTaKwsT1QNSGx8cJ1zEY4vlSUJagT6Cv41GZD5ukSrmXKDVdf-d28_ong/s1600/22%20Flying%20Ornithopters.jpg"
imageanchor="1">
<img alt="" data-original-height="1333" data-original-width="2000"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCXQ-cF7Bt-1i10GTQZDEhQo9jqGN8qSyFKbRbx3r1qY1INJJ8w53Pq7ycgWKjqc5dgQCcWcKn6S6fWeA7fnliwQ8HKBlCJEJQ28sll15DZb3ORbNjLvIgQbddkZcdfGF9VTaKwsT1QNSGx8cJ1zEY4vlSUJagT6Cv41GZD5ukSrmXKDVdf-d28_ong/s1600/22%20Flying%20Ornithopters.jpg=w720"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCXQ-cF7Bt-1i10GTQZDEhQo9jqGN8qSyFKbRbx3r1qY1INJJ8w53Pq7ycgWKjqc5dgQCcWcKn6S6fWeA7fnliwQ8HKBlCJEJQ28sll15DZb3ORbNjLvIgQbddkZcdfGF9VTaKwsT1QNSGx8cJ1zEY4vlSUJagT6Cv41GZD5ukSrmXKDVdf-d28_ong/s1600/22%20Flying%20Ornithopters.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDCXQ-cF7Bt-1i10GTQZDEhQo9jqGN8qSyFKbRbx3r1qY1INJJ8w53Pq7ycgWKjqc5dgQCcWcKn6S6fWeA7fnliwQ8HKBlCJEJQ28sll15DZb3ORbNjLvIgQbddkZcdfGF9VTaKwsT1QNSGx8cJ1zEY4vlSUJagT6Cv41GZD5ukSrmXKDVdf-d28_ong/s1600/22%20Flying%20Ornithopters.jpg=w1440 2x"
width="720" height="480">
</a>
<figcaption>アトレイデス(左)とハルコンネン(右)の飛行時</figcaption>
</figure>
<p>
同じサイズ感で比べてみると、意外にも違いがあって驚いた。劇中だと周りであれこれ起こり過ぎて、そこまで気にしなかったのだろう。どちらも良さがある。でもわたしが乗ってみたい機体はアトレイデス版かもしれない。ダンカンみたいにバンクして着陸してみたい…なんてね。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-36251114669687152142024-02-09T12:11:00.002+09:002024-02-09T12:11:26.410+09:00ねんきんネットの控除証明書XMLデータをPDF化する<p>
TL;DR: e-Taxから<a href="https://www.e-tax.nta.go.jp/shiyo/shiyo-kojo3.htm" target="_blank" rel="noopener noreferrer">スタイルシート</a>をダウンロードし、Webブラウザで控除証明書XMLデータを開くだけ。
</p>
<hr />
<p>
確定申告のためマイナポータルから年金控除証明書をXML形式でダウンロードした。これをe-Taxにアップロードすればわたしの目的は果たせるのだが、せっかくならとこのXMLデータが人にも読みやすい形で置いておきたい気持ちに。気付いたのは1行目の次の記述。
</p>
<code class="xml">
<?xml-stylesheet type="text/xsl" href="スタイルシートファイル名.xsl"?>
</code>
<p>
調べればe-Taxの<a href="https://www.e-tax.nta.go.jp/shiyo/shiyo-kojo3.htm" target="_blank" rel="noopener noreferrer">電子的控除証明書等に係る仕様書一覧</a>というページに該当のスタイルシートがCAB形式でアーカイブされて置かれていた。わたしはmacOSを使っていたので<a href="https://theunarchiver.com" target="_blank" rel="noopener noreferrer">Unarchiver</a>でCABを展開。各種証明書のスタイルシートがXSL形式で収まった『02スタイルシート』というフォルダが出てきた。
</p>
<p>
このXSLTという形式は初めて知ったが<a href="https://developer.mozilla.org/en-US/docs/Web/XSLT" target="_blank" rel="noopener noreferrer">MDNにもドキュメント</a>がありひょっとして最近のブラウザなら対応しているのではとSafariで試してみる。『02スタイルシート』フォルダの中に控除証明書XMLを入れてから、XMLをSafariで開いて見ると「(スタイルシートファイルの)パスの指定方法が良くないよ」と怒られた。<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" target="_blank" rel="noopener noreferrer">CORs</a>だ。
</p>
<p>
Safariの<a href="https://support.apple.com/ja-jp/guide/safari/sfri20948/17.0/mac/14.0" target="_blank" rel="noopener noreferrer">開発者ツールを有効化</a>した状態でSafariの環境設定から、開発者タブの『Disable local file restrictions』にチェックをつけて警告をバイパス。いま一度XMLを開くとちゃんとスタイリングされたXMLが表示された。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6KnuoPqNGsJmoSJdN87k9ittZV3M02AFt8YjIs3vQHEftplmN9InYzUG-2NmRtHiCH5pRzq-Je4MDik5FjeWhzB4zjMVINuKUn6zSPbJrJPEqj8rHzhmVMUIoPDjjaOrsiSNgUeByCT08zUgQx4U5po476xQmIr57S_5zlPCAaT9UyjGV52XJ4hD3Q/s1600/Developer%20Setting.png"
imageanchor="1">
<img alt="Disable local file restrictionsのチェックを付けたところ" data-original-height="976" data-original-width="1896"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6KnuoPqNGsJmoSJdN87k9ittZV3M02AFt8YjIs3vQHEftplmN9InYzUG-2NmRtHiCH5pRzq-Je4MDik5FjeWhzB4zjMVINuKUn6zSPbJrJPEqj8rHzhmVMUIoPDjjaOrsiSNgUeByCT08zUgQx4U5po476xQmIr57S_5zlPCAaT9UyjGV52XJ4hD3Q/s1600/Developer%20Setting.png=w820"
srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6KnuoPqNGsJmoSJdN87k9ittZV3M02AFt8YjIs3vQHEftplmN9InYzUG-2NmRtHiCH5pRzq-Je4MDik5FjeWhzB4zjMVINuKUn6zSPbJrJPEqj8rHzhmVMUIoPDjjaOrsiSNgUeByCT08zUgQx4U5po476xQmIr57S_5zlPCAaT9UyjGV52XJ4hD3Q/s1600/Developer%20Setting.png=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz6KnuoPqNGsJmoSJdN87k9ittZV3M02AFt8YjIs3vQHEftplmN9InYzUG-2NmRtHiCH5pRzq-Je4MDik5FjeWhzB4zjMVINuKUn6zSPbJrJPEqj8rHzhmVMUIoPDjjaOrsiSNgUeByCT08zUgQx4U5po476xQmIr57S_5zlPCAaT9UyjGV52XJ4hD3Q/s1600/Developer%20Setting.png=w1640 2x"
width="820" height="422">
</a>
<figcaption>Safariの環境設定</figcaption>
</figure>
<p>
これをPDFにエクスポート。印刷ダイアログの『PDF』を押しても良いかもしれない。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi06if9RIJXDdWqSI3-AMjngHV4sjWrizAXnqusFqJuBB_dGYC7bduhyphenhyphenbToxkQPcQI3PmyF6HOOQspMJ8FpHp6WmgLQFc5B3UBXvtR32ztGzmtSqO0hRdrmFzWmCFaeZdsvl6Hy58Ka9umfqHE797MaQ34RzCJEF-0Nor_GyQNEQs4e2Nr9mNVZklnmw/s1600/Print%20Dialog.png"
imageanchor="1">
<img alt="印刷ボタン近くにあるPDFボタンを示した図" data-original-height="950" data-original-width="1500"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi06if9RIJXDdWqSI3-AMjngHV4sjWrizAXnqusFqJuBB_dGYC7bduhyphenhyphenbToxkQPcQI3PmyF6HOOQspMJ8FpHp6WmgLQFc5B3UBXvtR32ztGzmtSqO0hRdrmFzWmCFaeZdsvl6Hy58Ka9umfqHE797MaQ34RzCJEF-0Nor_GyQNEQs4e2Nr9mNVZklnmw/s1600/Print%20Dialog.png=w820"
width="820" height="519">
</a>
<figcaption>印刷ダイアログ</figcaption>
</figure>
<p>
エクスポートが済んだら先程変更した設定項目『Disable local file restrictions』のチェックをきちんと外す。HeadlessブラウザとPythonなんかを使ってスクリプトにまとめたら便利だなと思ったけれど、冷静に考えればこんなことは年に1回するかどうか…。この方法でいいか。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-43096952195769808072024-01-19T15:08:00.001+09:002024-01-19T15:15:40.281+09:00Blueskyで遊ぶ<div class="intro">
<p>
年越し数分前にメールを受信。Blueskyの招待コードが届いた。年越し早々アカウントをつくって初投稿なんかしてみる。Blueskyが独自開発したプロトコル“AT Protocol”(以降ATP)についても知りたかったので、APIを試したりソースコードを読んでみたりした所感をここにまとめる。
</p>
<p class="ps">
注: BlueskyとAT Protocolは現在鋭意開発中につき、今後の仕様変更に伴い下記の方法が使えなくなる場合あり!
</p>
</div>
<h3 id="api">APIを試す</h3>
<div class="desc">
<div class="first">
<a class="series-link" href="https://atproto.com/blog/create-post" target="_blank">Posting via the Bluesky API | AT Protocol</a>
</div>
<p>
公式ブログでは<a href="https://httpie.io" target="_blank">HTTPie</a>を利用して次のコマンドが書いてある。
</p>
<code class="language-zsh">
<pre>http post https://bsky.social/xrpc/com.atproto.server.createSession \
identifier="$BLUESKY_HANDLE" \
password="$BLUESKY_APP_PASSWORD"</pre>
</code>
<p>
HTTPieの方が読みやすいのだが、気分的にcURLでリクエストしたかったので次のコマンドを使った。コンソールに平文でパスワードを入力したくなかったのでまずは送信データとなるJSONファイルをつくる。
</p>
<code class="language-zsh">
<pre>touch cred.json</pre>
</code>
<p>
このファイルに次のフィールドを記入。
</p>
<code class="language-json">
<pre>{
"identifier": "{HANDLE_NAME}",
"password": "{PASSWORD}"
}</pre>
</code>
<p>
<code class="inline">HANDLE_NAME</code>(ハンドル名)は@マーク以降を入力(e.g.: <code class="inline">seeker5084.bsky.social</code>)。<code class="inline">PASSWORD</code>はログインパスワード。
</p>
<p>
これをcURLで次のサーバーに送信。
</p>
<code class="curl">
<pre>curl https://bsky.social/xrpc/com.atproto.server.createSession\
--request POST\
--header "Content-Type: application/json"\
--data @cred.json</pre>
</code>
<p>
cURLは<code class="inline">--data</code>に続いて@付きでファイル名を指定すると、ファイルの中身をサーバーに送信してくれる。
</p>
<p>
もちろん、「共有コンソールじゃないし気にしないっ!」という方は直接JSONを打っても良いし、何度も試したい方は環境変数に設定しても良い(公式ブログはこの方法)。
</p>
<p>
直打ちの場合:
</p>
<code class="curl">
<pre>curl https://bsky.social/xrpc/com.atproto.server.createSession\
--request POST\
--header "Content-Type: application/json"\
--data '{"identifier": "{HANDLE_NAME}", "password": "{PASSWORD}"}'</pre>
</code>
<p>
環境変数の場合:
</p>
<code class="language-zsh">
<pre># .bashrcや.zshrcなどに以下を記入
BLUESKY_HANDLE="{HANDLE_NAME}"
BLUESKY_APP_PASSWORD="{PASSWORD}"</pre>
</code>
<code class="curl">
<pre>curl https://bsky.social/xrpc/com.atproto.server.createSession\
--request POST\
--header "Content-Type: application/json"\
--data "{\"identifier\": \"$BLUESKY_HANDLE\", \"password\": \"$BLUESKY_APP_PASSWORD\"}"</pre>
</code>
<p>
この返信として次のようなJSONが返ってくる(<a href="https://atproto.com/specs/did" target="_blank">参照リンク</a>)。
</p>
<code class="language-json">
<pre>{
"didDoc": {
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1",
"https://w3id.org/security/suites/secp256k1-2019/v1"
],
"id": "did:plc:cy5cvxauukbyrballccs42h2",
"alsoKnownAs": [
"at://seeker5084.bsky.social"
],
"verificationMethod": [
{
"id": "did:plc:cy5cvxauukbyrballccs42h2#atproto",
"type": "Multikey",
"controller": "did:plc:cy5cvxauukbyrballccs42h2",
"publicKeyMultibase": "zQ3shP4BXWRMnuuLFMzF1RzHA5VKNuroG3tngsmCMKbnqtyMA"
}
],
"service": [
{
"id": "#atproto_pds",
"type": "AtprotoPersonalDataServer",
"serviceEndpoint": "https://shiitake.us-east.host.bsky.network"
}
]
},
"handle": "seeker5084.bsky.social",
"did": "did:plc:cy5cvxauukbyrballccs42h2",
"accessJwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3MiOiIxMjMn0NTY3ODkwIn0.hX50QBqRmH91s8vbGvjblVu6CcQEkw5jcT26UBIBBEQ",
"refreshJwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWZyZXNoIjoiMTIzNDU2Nzg5MCJ9.RHLssrrY0Qt7Lsv2UGJTkpXFtd2tSiE5viZh3hGXnYo",
"email": "mail@address.com",
"emailConfirmed": true
}</pre>
</code>
<p>
必要な項目は<code class="inline">did</code>と<code class="inline">accessJwt</code>の2つ。<code class="inline">accessJwt</code>がアクセストークン(<a href="https://atproto.com/specs/xrpc" target="_blank">参照リンク</a>)。これをリクエストヘッダにくっつけて、投稿データとともにPOSTする。
</p>
<code class="curl">
<pre>curl https://bsky.social/xrpc/com.atproto.repo.createRecord\
--request POST\
--header "Content-Type: application/json"\
--header "Authorization: Bearer {ACCESS_TOKEN}"\
--data "{\
\"repo\": \"did:plc:cy5cvxauukbyrballccs42h2\", \
\"collection\": \"app.bsky.feed.post\", \
\"record\": {\
\"$type\": \"app.bsky.feed.post\", \
\"text\": \"Hello from API 🪂\", \
\"createdAt\": \"`date -u +"%Y-%m-%dT%H:%M:%SZ"`\"\
}\
}"</pre>
</code>
<p>
<code class="inline">ACCESS_TOKEN</code>の部分を<code class="inline">accessJwt</code>の値に置き換える。
</p>
<p>
<code class="inline">repo</code>は先の返信にあった<code class="inline">did</code>の値に(もしくは“ハンドル名”でも大丈夫: <a href="#supplement-3">サプリ3</a>参照)。<code class="inline">createdAt</code>は<a href="https://www.w3.org/TR/NOTE-datetime" target="_blank">ISO 8601形式</a>で投稿日時を。
</p>
<p>
これで<code class="inline">text</code>に記入した文字列がBlueskyに投稿される。投稿に成功すると返答として次のJSONが返ってくる。
</p>
<code class="language-json">
<pre>{
"uri":"at://did:plc:cy5cvxauukbyrballccs42h2/app.bsky.feed.post/3khvltvmjnj2n",
"cid":"bafyreih3qz2vwf2rmjseidmuwdmjsk773eyfy4gfncwxgz6xeplrd7y63m"
}</pre>
</code>
<p>
<code class="inline">uri</code>がAT Protocol上でのURIで、<code class="inline">cid</code>が投稿を内部参照するためのコンテンツIDとのこと(<a href="https://atproto.com/specs/repository" target="_blank">参照リンク</a>)。
</p>
<p>
なお、エラーがあれば<code class="inline">error</code>と<code class="inline">message</code>というキーを持つJSONが返ってくる。例えば期限切れのアクセストークンを使うと次のようなJSONが来る。
</p>
<code class="language-json">
<pre>{
"error": "ExpiredToken",
"message": "Token has expired"
}</pre>
</code>
</div>
<h3 id="uri">ATPのURI</h3>
<div class="desc">
<p class="first">
さて、ATPでのURIの書式は<code class="inline">at://</code>に続けてDID、Collection、Record Keyとなっている。
</p>
<code class="language-plaintext">
<pre>ATP | DID | COLLECTION | RKEY
at://did:plc:cy5cvxauukbyrballccs42h2/app.bsky.feed.post/3khvltvmjnj2n</pre>
</code>
<p>
DIDはユーザーID、Collectionは投稿先(と書いても良いはず)、そして<code class="inline">uri</code>末尾のセグメント(上の例だと<code class="inline">3khvltvmjnj2n</code>)は<a href="https://atproto.com/specs/record-key" target="_blank">Record Key</a>(通称rkey)と呼ばれる13文字のASCII文字列。BlueskyではTimestamp Identifier(TID)という投稿時刻を元に生成されたキーが使われている(つまりrKeyだけで投稿時刻が簡易的に分かる仕組み)。
</p>
<p>
Webブラウザ経由(HTTP経由)でBlueskyの投稿を見ると、URLは次のようになっている。
</p>
<code class="language-plaintext">
<pre>https://bsky.app/profile/seeker5084.bsky.social/post/3khvltvmjnj2n</pre>
</code>
<p>
<code class="inline">/profile/</code>に続いてハンドル名、<code class="inline">/post/</code>に続いてこのrKeyを繋げることでHTTPのURLを作ることができる仕組みだ(<a href="https://github.com/bluesky-social/social-app/blob/d35be77a116772eb13c1c1165b0ed4628f0ac657/bskyweb/cmd/bskyweb/server.go#L217" target="_blank">参照リンク</a>)。
</p>
<p>
むろん、ハンドル名の部分はDIDでも良い。
</p>
</div>
<h3 id="shortcut">iOSのShortcutでも試す</h3>
<div class="desc">
<p class="first">
iOS/iPadOSで扱えるShortcutもこしらえたので試したい方はぜひ。
</p>
<div>
<a class="series-link" href="https://www.icloud.com/shortcuts/c4cd1706a0bf48ea9cd52f658fede5e4" target="_blank">『Post to Bluesky』https://www.icloud.com/shortcuts/c4cd1706a0bf48ea9cd52f658fede5e4</a>
</div>
<p>
Shortcut追加時のセットアップで、Blueskyのハンドル名とログインパスワードを入力すれば使える(デフォルト言語はjaのままで良い)。
</p>
<p>
JSON形式でAPIからの返答を楽しみたい方にはアプリ『<a href="https://jayson.app" target="_blank">Jayson</a>』がおすすめ。
</p>
</div>
<h3 id="supplements">補足</h3>
<div class="desc">
<h4 id="supplement-1" class="first">サプリ1</h4>
<p>
今回送信したJSONは次のようなものだった。
</p>
<code class="language-json">
<pre>{
"repo": "did:plc:cy5cvxauukbyrballccs42h2",
"collection": "app.bsky.feed.post",
"record": {
"$type": "app.bsky.feed.post",
"text": "Hello from API 🪂\nhttps://storange.jp is a plain-text.",
"createdAt": "2024-01-01T06:25:45.667Z"
}
}</pre>
</code>
<p>
この場合<code class="inline">text</code>にURLが含まれていてもプレーンテキストとして扱われ、リンクとして機能しない。URLをリンクとして機能させたい場合、同様にメンションやタグなども認識してほしい場合は<code class="inline">facets</code>キーにそれらを別途記述する必要がある。次のように。
</p>
<code class="language-json">
<pre>{
"repo": "did:plc:cy5cvxauukbyrballccs42h2",
"collection": "app.bsky.feed.post",
"record": {
"$type": "app.bsky.feed.post",
"text": "Hello Bluesky🦋\nHello 2024📮\n\n#NewYearCard\nstorange.jp",
"facets": [
{
"index": {
"byteStart": 34,
"byteEnd": 46
},
"features": [
{
"tag": "NewYearCard",
"$type": "app.bsky.richtext.facet#tag"
}
]
},
{
"index": {
"byteStart": 47,
"byteEnd": 58
},
"features": [
{
"uri": "https://storange.jp",
"$type": "app.bsky.richtext.facet#link"
}
]
}
],
"createdAt": "2024-01-01T06:25:45.667Z",
"langs": [
"en"
]
}
}</pre>
</code>
<p>
このように「UTF-8で数えて何バイト目から何バイト目までが“NewYearCard”という文字列のタグ(<code class="inline">app.bsky.richtext.facet#tag</code>)ですよ」ということを伝える必要がある(記事執筆時点でタグはプレーンテキストとして表示されるがデータ的にはきちんとタグとして保持されているので今後のアップデートでタグフィードへのリンク付与など活用されて行くことだろう)。
</p>
<p>
リンクに関しては表示文字列とリンク先URLを別々に指定できるメリットはあるが、これは閲覧者からするとフィッシングリンクなどに注意したい仕様でもある。
</p>
<p>
同様に、画像などのメディアやリンクカード(主にOGP)を投稿したい場合は<code class="inline">embed</code>キーに、事前にアップロードした結果のBlobを書き込む必要がある。このあたり、GitHubにある<a href="https://github.com/bluesky-social/atproto-website/blob/main/examples/create_bsky_post.py" target="_blank">Pythonの実装例</a>はとても参考になる。気が向けば別の記録としてこのWeblogに記すやも知れぬ。
</p>
<p>
なお、上の例ではしれっと<code class="inline">langs</code>も追記した。このように投稿言語を英語(en)や日本語(ja)など指定することでユーザーが言語別に探しやすくなったりもするので、<code class="inline">langs</code>の追記は推奨したい。
</p>
<h4 id="supplement-2">サプリ2</h4>
<p>
ATPは<a href="https://atproto.com/specs/lexicon" target="_blank">Lexicon</a>というフォーマット表現が活用されていることが特徴。これはBlueskyが独自開発したもので実態はJSONデータ。Lexiconによって、ATP上でやり取りされるあらゆるデータのフォーマットが定義されている。Collection <code class="inline">app.bsky.feed.post</code>もLexiconで定義されている。
</p>
<p>
記事執筆現在は<code class="inline">com.atproto</code>(<a href="https://atproto.com/lexicons/com-atproto" target="_blank">doc</a>)と<code class="inline">app.bsky</code>(<a href="https://atproto.com/lexicons/app-bsky" target="_blank">doc</a>)の2種類が定義されている。
</p>
<p>
例えばセッション作成時に使ったAPIは<code class="inline">com.atproto.server.createSession</code>というLexiconで定義されている。<a href="https://github.com/bluesky-social/atproto/blob/07a9c89e28ba825e660d1865e0f02804ade873aa/lexicons/com/atproto/server/createSession.json" target="_blank">GitHubのコード</a>を見に行くと、"type"は"procedure"すなわちHTTPのPOSTメソッドのみ受け付けていて、inputとして何を渡すとoutputとして何が返って来るのかがよく分かる。ちなみに"type"が"query"の場合はGETメソッドのみ受け付けを意味する。
</p>
<h4 id="supplement-3">サプリ3</h4>
<p>
ATPではハンドル名とDIDがDNSによって紐付けされている(<a href="https://atproto.com/guides/identity#identifiers" target="_blank">参照リンク</a>)。どちらもユーザーを一意に表現する“ID”である。IPネットワーク風に言い換えるとハンドル名が人に読みやすいURLだとすれば、DIDは機械が扱いやすいIPアドレスと言ったところか。
</p>
<p>
DIDの利点はハンドル名と違ってユーザーによる変更がなされないこと。ユーザーがハンドル名を変更しても、紐づいているDIDは常に一意なので、各投稿やプロフィールといったURIも変わらず参照できる。
</p>
<h4 id="supplement-4">サプリ4</h4>
<p>
アクセストークンである<code class="inline">accessJwt</code>の有効期限は数分程度とのこと(ソースコード上はデフォルトで<a href="https://github.com/bluesky-social/atproto/blob/07a9c89e28ba825e660d1865e0f02804ade873aa/packages/pds/src/account-manager/helpers/auth.ts#L45" target="_blank">120分</a>)なので、もし期限切れした場合はより有効期限の長い<code class="inline">refreshJwt</code>(デフォルト値<a href="https://github.com/bluesky-social/atproto/blob/07a9c89e28ba825e660d1865e0f02804ade873aa/packages/pds/src/account-manager/helpers/auth.ts#L68" target="_blank">90日</a>)を使って<code class="inline">accessJwt</code>を再発行できる。
</p>
<p>
Lexicon<code class="inline">com.atproto.server.refreshSession</code>(<a href="https://github.com/bluesky-social/atproto/blob/07a9c89e28ba825e660d1865e0f02804ade873aa/lexicons/com/atproto/server/refreshSession.json" target="_blank">GitHub</a>)を見ると"procedure(POSTメソッド)"でリクエストすれば新たな<code class="inline">accessJwt</code>や<code class="inline">refreshJwt</code>などが得られることがわかる。ということで次のcURLを投げてみる。
</p>
<code class="curl">
<pre>curl https://bsky.social/xrpc/com.atproto.server.refreshSession\
--request POST\
--header "Content-Type: application/json"\
--header "Authorization: Bearer {REFRESH_JWT}"</pre>
</code>
<p>
通常APIへリクエストするときは<code class="inline">Authorization</code>というヘッダーに<code class="inline">Bearer {accessJwt}</code>を付与してリクエストするところを、ここでは<code class="inline">refreshJwt</code>にするだけ。これで新たなトークンを発行してもらえる。
</p>
<p>
createSessionで発行する場合との違いは都度ハンドル名とログインパスワードを必要としないこと。これはBlueskyアプリを作るときなどに重宝し、<code class="inline">refreshJwt</code>が有効な間はアプリ起動時に毎回ログインする手前が省ける仕組みである。
</p>
<h4 id="supplement-5">サプリ5</h4>
<p>
Blueskyではサーバーのことを<a href="https://github.com/bluesky-social/pds" target="_blank">PDS</a>(Personal Data Server)と呼んでいる。GitHubでコンテナイメージも配布されているので自分のサーバーを立ち上げることも可能。
</p>
</div>
<div class="outro">
<p>
ざっとこんな感じで遊んだ。なにか不備や補足があればコメントください。
</p>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-86520541671938200582024-01-05T00:00:00.029+09:002024-01-05T11:23:06.244+09:002024 新年カード<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEial9G3pu8mAQSepD4dTqDjnrQnv1i1EHthga50VNeme6NRP7JdfAVFvM0sgQKw76HJVcFJpIL0MhDn45vnarLY_lcedBQnRA9EhZo5kjiVADm37CfD8om62Qst7oY4_QhNSwnXpOdTLrrK5evMKq8gLDj3XXXbU8Gr6fXEwLTYhr3aO5WzCgYK_QfNzw/s1600/2024NYC.jpg" imageanchor="1">
<img alt="2つの金色の輪が交差したデザインのカードの束" data-original-height="1333" data-original-width="2000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEial9G3pu8mAQSepD4dTqDjnrQnv1i1EHthga50VNeme6NRP7JdfAVFvM0sgQKw76HJVcFJpIL0MhDn45vnarLY_lcedBQnRA9EhZo5kjiVADm37CfD8om62Qst7oY4_QhNSwnXpOdTLrrK5evMKq8gLDj3XXXbU8Gr6fXEwLTYhr3aO5WzCgYK_QfNzw/s1600/2024NYC.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEial9G3pu8mAQSepD4dTqDjnrQnv1i1EHthga50VNeme6NRP7JdfAVFvM0sgQKw76HJVcFJpIL0MhDn45vnarLY_lcedBQnRA9EhZo5kjiVADm37CfD8om62Qst7oY4_QhNSwnXpOdTLrrK5evMKq8gLDj3XXXbU8Gr6fXEwLTYhr3aO5WzCgYK_QfNzw/s1600/2024NYC.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEial9G3pu8mAQSepD4dTqDjnrQnv1i1EHthga50VNeme6NRP7JdfAVFvM0sgQKw76HJVcFJpIL0MhDn45vnarLY_lcedBQnRA9EhZo5kjiVADm37CfD8om62Qst7oY4_QhNSwnXpOdTLrrK5evMKq8gLDj3XXXbU8Gr6fXEwLTYhr3aO5WzCgYK_QfNzw/s1600/2024NYC.jpg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>
時間が無限ならば、ヒトの一生など無も同然。しかし確実に“いま”という時を実感できているならば、数式に表せぬ心というものを信じても間違いでないかも知れない。そんなことを考えた昨年が過ぎたいまここ。重なる輪/和/環(貴方はそこに何を視る)。
</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-81024197870130344712023-12-26T11:57:00.003+09:002023-12-26T11:57:24.141+09:00GutenbergにプレーンなJSでカスタムブロックを追加する<h1>カスタムブロックを追加する</h1>
<p>カスタムブロックの作成に必要な最低限のファイルは次の通り。</p>
<ul>
<li>block-<i>slug</i>.php: ブロックをPHP側に読み込ませる</li>
<li>block.json: JSとPHPどちらでも読み込めるブロック情報</li>
<li>index.js: ブロックを表示するためのロジック</li>
</ul>
<p>
<code class="inline">style.css</code>でクライアント側の、<code class="inline">index.css</code>でエディタ側のスタイルを指定できる(無論クライアント側はテーマの<code class="inline">style.css</code>中に記述してもOK、ただブロックの<code class="inline">style.css</code>として記述すると必要に応じて動的にCSSファイルを“読み込む/読み込まない”してくれる)。
</p>
<p>
これに加えダイナミックブロックの場合は<code class="inline">render.php</code>を用意することでクライアント側に表示するPHPを編集できる。
</p>
<p>
今回の要はJSX(<code class="inline">wp-scripts build</code>による自動生成)を利用しない方法であることから次のような手順で進める。
</p>
<h2>1. テーマフォルダ直下にblocks/フォルダを作成(Optional)</h2>
<p>
この中にカスタムブロックのフォルダを入れることで整理整頓できる。
</p>
<h2>2. blocks/フォルダ内にブロックフォルダを作成(Recommend)</h2>
<p>
ここではblock-pizza/を作成。このフォルダ内にPizzaブロックに必要なファイルたちを用意する。
</p>
<h2>3. block.jsonでブロックのメタデータを記述(Must)</h2>
<code class="language-json">
<pre>{
"$schema": "https://schemas.wp.org/trunk/block.json",
"apiVersion": 2,
"name": "my-category/block-pizza",
"title": "ピッツァ",
"description": "ピッツァカスタムブロックを追加します。",
"icon": "format-status",
"category": "text",
"attributes": {
"pizzaText": {
"type": "string",
"source": "html",
"selector": "p"
}
},
"example": {
"innerBlocks": [
{
"name": "my-category/block-pizza",
"attributes": "おいしいピッツァ"
}
]
}
}</pre>
</code>
<p>
編集できる箇所は次の通り(*は必須項目)。
</p>
<ul>
<li>name*: オリジナルのネームスペースとブロックのスラッグ名をスラッシュ区切りで記入すると良い</li>
<li>title*: エディタに表示される。カスタムブロックの名前。</li>
<li>description: エディタに表示される。カスタムブロックの説明文。</li>
<li>icon: エディタに表示される。カスタムブロックのアイコン(dashicon)。</li>
<li>category: カスタムブロックのカテゴリ。</li>
<li>attributes: カスタムブロックの属性。</li>
<li>example: エディタに表示される。使用例の小窓に表示するコンテンツ。</li>
</ul>
<p>
<a href="https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/">https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/</a>
</p>
<p>
ダイナミックブロックを作る場合は次をJSONに追記
</p>
<code class="language-json">
<pre> ...
"render": "file:./render.php"
...</pre>
</code>
<p>
これで同フォルダ内のrender.phpファイルを指定できる。
</p>
<h2>4. index.jsを用意する</h2>
<code class="language-js">
<pre>( function ( wp ) {
var el = wp.element.createElement;
var registerBlockType = wp.blocks.registerBlockType;
var useBlockProps = wp.blockEditor.useBlockProps;
var richText = wp.blockEditor.RichText;
registerBlockType( 'my-category/block-pizza', {
edit: function ( props ) {
return el(
richText,
Object.assign( useBlockProps(), {
tagName: 'p',
value: props.attributes.pizzaText,
allowedFormats: [
'core/bold',
'core/italic',
'core/link',
],
onChange: function ( content ) {
props.setAttributes( { content: content } );
},
placeholder: 'おいしいピッツァ',
} )
);
},
save: function ( props ) {
return el(
richText.Content,
Object.assign( useBlockProps.save(), {
tagName: 'p',
value: props.attributes.pizzaText,
} )
);
},
} );
}(
window.wp
) );</pre>
</code>
<p>
<code class="inline">registerBlockType()</code>函数の第一引数と<code class="inline">block.json</code>のname値が同一であることを確認(でないとエラーが出る)。
</p>
<p>
見るべきは<code class="inline">edit</code>と<code class="inline">save</code>。他はテンプレートだと思って問題ない。<code class="inline">edit</code>でエディタの表示や編集ツールバーのあれこれを設定できる。<code class="inline">save</code>でクライアント側に表示させるHTMLのあれこれを調整できる。
</p>
<p>
<code class="inline">el()</code>はReactの<code class="inline">createElement()</code>とほぼ同じ(<a href="https://beta.reactjs.org/reference/react/createElement">https://beta.reactjs.org/reference/react/createElement</a>)。そのため<code class="inline">richText</code>となっている箇所を'p'や'div'などHTML要素名にしても良い。ここでは<code class="inline">richText</code>とすることで太字や斜体、リンクづけなどのツールバーを表示させるようにしている(<a href="https://developer.wordpress.org/block-editor/reference-guides/richtext/">https://developer.wordpress.org/block-editor/reference-guides/richtext/</a>)
</p>
<p>
ダイナミックブロックの場合は次のように書くことが出来る。
</p>
<code class="language-js">
<pre>( function ( wp ) {
var registerBlockType = wp.blocks.registerBlockType;
var el = wp.element.createElement;
var useBlockProps = wp.blockEditor.useBlockProps;
registerBlockType( 'my-category/block-pizza', {
edit: function () {
return el(
'p',
useBlockProps(),
'Pizza Block – hello from the editor!',
);
},
} );
}(
window.wp
) );</pre>
</code>
<h2>5. block-pizza.phpを用意する</h2>
<p>
用意してきたファイルたちをWordPressに読み込ませるために、新たなファイルを作成する。
</p>
<p>
結論としては<code class="inline">wp_register_script()</code>と<code class="inline">register_block_type()</code>を<code class="inline">init</code>時に読み込ませられれば良いのだが、折角なのでファイルも綺麗にオーガナイズ(整理整頓)してみよう。
</p>
<code class="language-php">
<pre><?php
function pizza_block_init() {
wp_register_script(
'pizza-block-editor',
get_theme_file_uri( 'blocks/block-pizza/index.js' ),
array(
'wp-block-editor',
'wp-blocks',
'wp-element',
),
filemtime( __DIR__ . '/index.js' )
);
register_block_type(
__DIR__,
array(
'editor_script_handles' => array(
'pizza-block-editor',
),
)
);
}
add_action( 'init', 'pizza_block_init' );</pre>
</code>
<p>
これを<code class="inline">functions.php</code>に<code class="inline">require_once</code>してやれば読み込まれる。
</p>
<code class="language-php">
<pre>...
// pizzaカスタムブロックの追加
require_once get_theme_file_path( 'blocks/block-pizza/block-pizza.php' );
...</pre>
</code>
<p>
ダイナミックブロックの場合は次のようなrender.phpファイルを用意する。
</p>
<code class="language-php">
<pre><p <?php echo get_block_wrapper_attributes(); ?>>
<?php echo esc_html( 'Pizza Block – hello from a dynamic block!' ); ?>
</p>
</pre>
</code>
<p>
これがクライアント側に出力される。
</p>
<h2>6. CSSファイルを追加する</h2>
<p>
スタイルは大切です。エディタ側のCSSを追記しましょう。
</p>
<p>
<code class="inline">index.css</code>をブロックフォルダ内に作成します。
</p>
<code class="language-css">
<pre>.wp-block-my-category-block-pizza {
border: 1px solid magenta;
}</pre>
</code>
<p>
<code class="inline">block-pizza.php</code>を次のように編集して完了です。
</p>
<code class="language-php">
<pre>function pizza_block_init() {
wp_register_script(
'pizza-block-editor',
get_theme_file_uri( 'blocks/block-pizza/index.js' ),
array(
'wp-block-editor',
'wp-blocks',
'wp-element',
),
filemtime( __DIR__ . '/index.js' )
);
wp_register_style(
'pizza-block-editor-style',
get_theme_file_uri( 'blocks/block-pizza/index.css' ),
array(),
filemtime( __DIR__ . '/index.css' )
);
register_block_type(
__DIR__,
array(
'editor_script_handles' => array(
'pizza-block-editor',
),
'editor_style_handles' => array(
'pizza-block-editor-style',
),
)
);
}
add_action( 'init', 'pizza_block_init' );</pre>
</code>
<p>
この記事は2023年2月にまとめた個人的な資料です。公開時含め現在のWordPressバージョンではテストしていません。ご了承を…。
</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-68957218710722915452023-11-25T16:24:00.000+09:002023-11-25T16:24:02.963+09:00IRremoteで40ビットのパナソニック赤外線信号を送る<h3>赤外線(<abbr title="Infrared">IR</abbr>)信号の取得</h3>
<div class="desc">
<h4 class="first">環境</h4>
<ul>
<li>
<a href="https://www.arduino.cc/en/software" target="_blank" rel="noopener noreferrer">Arduino IDE 2.2.1</a>
</li>
<li>
<a href="https://github.com/crankyoldgit/IRremoteESP8266/tree/v2.8.6" target="_blank" rel="noopener noreferrer">IRremoteESP8266 v2.8.6</a>
</li>
<li>
<a href="https://www.switch-science.com/products/2740" target="_blank" rel="noopener noreferrer">ESPr® IR 赤外線リモコン</a>
</li>
</ul>
<h4>取得</h4>
<p>
スケッチ例にある"<a href="https://github.com/crankyoldgit/IRremoteESP8266/tree/v2.8.6/examples/IRrecvDumpV3" target="_blank" rel="noopener noreferrer">IRrecvDumpV3</a>"を使用して赤外線コードを取得。なお、"ESPr® IR 赤外線リモコン"の場合<var>kRecvPin</var>は<strong>5</strong>に書き換える。
</p>
<p>
今回再現するリモコンはチャンネル3に設定されたパナソニック(Panasonic)の<strong>HK9327K</strong>というリモコンの"全灯"ボタン。
</p>
<code class="log">
<pre>Protocol : PANASONIC
Code : 0x344A903CAC (40 Bits)
uint16_t rawData[83] = {3514, 1680, 506, 348, 510, 348, 506, 1226, 502, 1222, 506, 354, 480, 1246, 506, 352, 506, 354, 506, 348, 506, 1222, 506, 348, 506, 348, 486, 1250, 502, 352, 486, 1248, 506, 348, 480, 1248, 506, 348, 506, 354, 502, 1226, 482, 374, 508, 348, 506, 352, 506, 348, 508, 352, 510, 348, 506, 1226, 480, 1252, 502, 1226, 506, 1226, 502, 348, 486, 374, 480, 1252, 502, 352, 508, 1226, 506, 348, 506, 1222, 508, 1220, 506, 348, 506, 358, 480}; // PANASONIC 344A903CAC
uint32_t address = 0x34;
uint32_t command = 0x4A903CAC;
uint64_t data = 0x344A903CAC;</pre>
</code>
<p>
これを<var>sendPanasonic()</var>に渡してみたのだが、うまく行かない。
</p>
</div>
<h3>ソースコードを調べる</h3>
<div class="desc">
<p class="first">
ヒントかあわよくば答えを探りにIRremoteESP8266ライブラリのソースコードを読んだ。
</p>
<a class="series-link" href="https://github.com/crankyoldgit/IRremoteESP8266/blob/v2.8.6/src/ir_Panasonic.cpp#L65-L92" target="_blank" rel="noopener noreferrer">/v2.8.6/src/ir_Panasonic.cpp#L65-L92</a>
<code class="cpp">
<pre>/// Send a Panasonic formatted message.
/// Status: STABLE / Should be working.
/// @param[in] data The message to be sent.
/// @param[in] nbits The number of bits of message to be sent.
/// @param[in] repeat The number of times the command is to be repeated.
/// @note This protocol is a modified version of Kaseikyo.
/// @note Use this method if you want to send the results of `decodePanasonic`.
void IRsend::sendPanasonic64(const uint64_t data, const uint16_t nbits,
const uint16_t repeat) {
sendGeneric(kPanasonicHdrMark, kPanasonicHdrSpace, kPanasonicBitMark,
kPanasonicOneSpace, kPanasonicBitMark, kPanasonicZeroSpace,
kPanasonicBitMark, kPanasonicMinGap, kPanasonicMinCommandLength,
data, nbits, kPanasonicFreq, true, repeat, 50);
}
/// Send a Panasonic formatted message.
/// Status: STABLE, but DEPRECATED
/// @deprecated This is only for legacy use only, please use `sendPanasonic64()`
/// instead.
/// @param[in] address The 16-bit manufacturer code.
/// @param[in] data The 32-bit data portion of the message to be sent.
/// @param[in] nbits The number of bits of message to be sent.
/// @param[in] repeat The number of times the command is to be repeated.
/// @note This protocol is a modified version of Kaseikyo.
void IRsend::sendPanasonic(const uint16_t address, const uint32_t data,
const uint16_t nbits, const uint16_t repeat) {
sendPanasonic64(((uint64_t)address << 32) | (uint64_t)data, nbits, repeat);
}</pre>
</code>
<p>
コードを見てみると、sendPanasonic()はすでに非推奨"deprecated"とのこと。いまは<var>sendPanasonic64()</var>を使うのだそう。
</p>
<a class="series-link" href="https://github.com/crankyoldgit/IRremoteESP8266/blob/v2.8.6/src/IRsend.h#L389-L391" target="_blank" rel="noopener noreferrer">/v2.8.6/src/IRsend.h#L389-L391</a>
<code class="cpp">
<pre> void sendPanasonic64(const uint64_t data,
const uint16_t nbits = kPanasonicBits,
const uint16_t repeat = kNoRepeat);</pre>
</code>
<a class="series-link" href="https://github.com/crankyoldgit/IRremoteESP8266/blob/v2.8.6/src/IRremoteESP8266.h#L1336" target="_blank" rel="noopener noreferrer">/v2.8.6/src/IRremoteESP8266.h#L1336</a>
<code class="cpp">
<pre>const uint16_t kPanasonicBits = 48;</pre>
</code>
<p>
そしてsendPanasonic64()のデフォルト<var>nbits</var>は<strong>48</strong>bitであることも判った。つまりPanasonicフォーマットは通常48bitの信号だということ。
</p>
<p>
なるほど、今回受信したコード<var>0x344A903CAC</var>は40bitだったので、言うなれば簡略版Panasonicフォーマットなのだろう。
</p>
<a class="series-link" href="https://github.com/crankyoldgit/IRremoteESP8266/blob/v2.8.6/src/IRremoteESP8266.h#L1339" target="_blank" rel="noopener noreferrer">/v2.8.6/src/IRremoteESP8266.h#L1339</a>
<code class="cpp">
<pre>const uint16_t kPanasonic40Bits = 40;</pre>
</code>
<p>
ソースコードを探れば、<var>kPanasonic40Bits</var>という定数もきちんと用意されていた。
</p>
<p>
<a class="series-link" href="https://github.com/crankyoldgit/IRremoteESP8266/issues/1976#issuecomment-1512924067" target="_blank" rel="noopener noreferrer">/issues/1976#issuecomment-1512924067</a>
探すとIssueでも示されていた。答えはすべてここに載っていたのだった。
</p>
</div>
<h3>答え</h3>
<div class="desc">
<p class="first">
パナソニック信号の送信はすべて<strong>sendPanasonic64()</strong>を使う。
</p>
<code class="cpp">
<pre>IRremote.sendPanasonic64( IR_SIGNAL, kPanasonic40Bits );</pre>
</code>
<p>
そして40bit信号ならば第二引数に40の定数<strong>kPanasonic40Bits</strong>を渡すこと!
</p>
<p>
これでちゃんとシーリングライトが動かせるようになった。
</p>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-56717483813955659822023-10-31T11:43:00.000+09:002023-10-31T11:43:09.240+09:00縞見ルーペの単位<p>祖父にもらった折りたたみ式の虫眼鏡。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS0KOufUR6jDwJD73peU0yaEy3WJb2ZMEq9qie2lMUX2BtVWLvzufFj81vX1e_Y5HF318dSahmYxmNOL7bpLspH8zqfKfw4GFdwP_QDnC62cbA6scjB-AMzGFODe5TZvN5FR2-I9fPx5rCGltqX7mfzKbQUvX7doGB-pJOTEJtikoGXfneW7KC_RW2_Q/s1600/01.jpg" imageanchor="1">
<img alt="" data-original-height="2000" data-original-width="3000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS0KOufUR6jDwJD73peU0yaEy3WJb2ZMEq9qie2lMUX2BtVWLvzufFj81vX1e_Y5HF318dSahmYxmNOL7bpLspH8zqfKfw4GFdwP_QDnC62cbA6scjB-AMzGFODe5TZvN5FR2-I9fPx5rCGltqX7mfzKbQUvX7doGB-pJOTEJtikoGXfneW7KC_RW2_Q/s1600/01.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS0KOufUR6jDwJD73peU0yaEy3WJb2ZMEq9qie2lMUX2BtVWLvzufFj81vX1e_Y5HF318dSahmYxmNOL7bpLspH8zqfKfw4GFdwP_QDnC62cbA6scjB-AMzGFODe5TZvN5FR2-I9fPx5rCGltqX7mfzKbQUvX7doGB-pJOTEJtikoGXfneW7KC_RW2_Q/s1600/01.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS0KOufUR6jDwJD73peU0yaEy3WJb2ZMEq9qie2lMUX2BtVWLvzufFj81vX1e_Y5HF318dSahmYxmNOL7bpLspH8zqfKfw4GFdwP_QDnC62cbA6scjB-AMzGFODe5TZvN5FR2-I9fPx5rCGltqX7mfzKbQUvX7doGB-pJOTEJtikoGXfneW7KC_RW2_Q/s1600/01.jpg=w1640 2x" width="820" height="547">
</a>
<figcaption></figcaption>
</figure>
<p>折りたたむと長方形状になり、かなりコンパクト。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidF4xVNYXwecAVX5fdIMWN7LNl1BxalMTV40gauYZo9jN8PnNUTWSxJU72qaSunJq9Xq3QtZKUrBs8rq7_ZLMeiIylEdEccz-l7-jdF1baSYALbCo2_tK3blQhipyhU5_yIdGXofpnbH8pYaVLio4-GcdWvVyD6lckPc1dFLSlK53MNGIFknfwyiSMcQ/s1600/02.jpg" imageanchor="1">
<img alt="" data-original-height="2000" data-original-width="3000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidF4xVNYXwecAVX5fdIMWN7LNl1BxalMTV40gauYZo9jN8PnNUTWSxJU72qaSunJq9Xq3QtZKUrBs8rq7_ZLMeiIylEdEccz-l7-jdF1baSYALbCo2_tK3blQhipyhU5_yIdGXofpnbH8pYaVLio4-GcdWvVyD6lckPc1dFLSlK53MNGIFknfwyiSMcQ/s1600/02.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidF4xVNYXwecAVX5fdIMWN7LNl1BxalMTV40gauYZo9jN8PnNUTWSxJU72qaSunJq9Xq3QtZKUrBs8rq7_ZLMeiIylEdEccz-l7-jdF1baSYALbCo2_tK3blQhipyhU5_yIdGXofpnbH8pYaVLio4-GcdWvVyD6lckPc1dFLSlK53MNGIFknfwyiSMcQ/s1600/02.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidF4xVNYXwecAVX5fdIMWN7LNl1BxalMTV40gauYZo9jN8PnNUTWSxJU72qaSunJq9Xq3QtZKUrBs8rq7_ZLMeiIylEdEccz-l7-jdF1baSYALbCo2_tK3blQhipyhU5_yIdGXofpnbH8pYaVLio4-GcdWvVyD6lckPc1dFLSlK53MNGIFknfwyiSMcQ/s1600/02.jpg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>組み立てるとコの字型になり、上から覗き込むように見て使う。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibZwJJm3RXmBRjeGHF0Y4CEUwVPFQLAk4HHoQAE8VZsvZGpJp6ny6A3xW1EQeamGnuGktqRQFPWyRS6Q20p8xpggK7KlCZBO7maMZ4_hQLjwC14RzzC1XRyAJKMPnSlDJhO1vhwF9HHd9p54u78N4UbwF79_abVtG1Z2zUqQuW7dN27j0WbvJ15mnrHg/s1600/03.jpg" imageanchor="1">
<img alt="" data-original-height="2000" data-original-width="3000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibZwJJm3RXmBRjeGHF0Y4CEUwVPFQLAk4HHoQAE8VZsvZGpJp6ny6A3xW1EQeamGnuGktqRQFPWyRS6Q20p8xpggK7KlCZBO7maMZ4_hQLjwC14RzzC1XRyAJKMPnSlDJhO1vhwF9HHd9p54u78N4UbwF79_abVtG1Z2zUqQuW7dN27j0WbvJ15mnrHg/s1600/03.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibZwJJm3RXmBRjeGHF0Y4CEUwVPFQLAk4HHoQAE8VZsvZGpJp6ny6A3xW1EQeamGnuGktqRQFPWyRS6Q20p8xpggK7KlCZBO7maMZ4_hQLjwC14RzzC1XRyAJKMPnSlDJhO1vhwF9HHd9p54u78N4UbwF79_abVtG1Z2zUqQuW7dN27j0WbvJ15mnrHg/s1600/03.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibZwJJm3RXmBRjeGHF0Y4CEUwVPFQLAk4HHoQAE8VZsvZGpJp6ny6A3xW1EQeamGnuGktqRQFPWyRS6Q20p8xpggK7KlCZBO7maMZ4_hQLjwC14RzzC1XRyAJKMPnSlDJhO1vhwF9HHd9p54u78N4UbwF79_abVtG1Z2zUqQuW7dN27j0WbvJ15mnrHg/s1600/03.jpg=w1640 2x" width="820" height="547">
</a>
<figcaption></figcaption>
</figure>
<p>倍率は分からないがかなりクッキリ大きく見えるので、印刷物の細部を見るときに便利だったりする。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi22W8KrNkljwTEluf18UbPYG5qnkrfqP8X_ff0T2bNaLkUtdg706tlXaJaCGqp7M7d19FIG1iJHIN6zQBl9fQ1dEhgbpjvafr9VKvysB2EwwcIAU1Ejvljxj6RdqtaToyI7-R4o4DkWPYn5PFetGLa18Kfp0EvxFa7tyFcbZa5vYavz_6Sf0VHVwWcxA/s1600/04.jpg" imageanchor="1">
<img alt="" data-original-height="2000" data-original-width="3000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi22W8KrNkljwTEluf18UbPYG5qnkrfqP8X_ff0T2bNaLkUtdg706tlXaJaCGqp7M7d19FIG1iJHIN6zQBl9fQ1dEhgbpjvafr9VKvysB2EwwcIAU1Ejvljxj6RdqtaToyI7-R4o4DkWPYn5PFetGLa18Kfp0EvxFa7tyFcbZa5vYavz_6Sf0VHVwWcxA/s1600/04.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi22W8KrNkljwTEluf18UbPYG5qnkrfqP8X_ff0T2bNaLkUtdg706tlXaJaCGqp7M7d19FIG1iJHIN6zQBl9fQ1dEhgbpjvafr9VKvysB2EwwcIAU1Ejvljxj6RdqtaToyI7-R4o4DkWPYn5PFetGLa18Kfp0EvxFa7tyFcbZa5vYavz_6Sf0VHVwWcxA/s1600/04.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi22W8KrNkljwTEluf18UbPYG5qnkrfqP8X_ff0T2bNaLkUtdg706tlXaJaCGqp7M7d19FIG1iJHIN6zQBl9fQ1dEhgbpjvafr9VKvysB2EwwcIAU1Ejvljxj6RdqtaToyI7-R4o4DkWPYn5PFetGLa18Kfp0EvxFa7tyFcbZa5vYavz_6Sf0VHVwWcxA/s1600/04.jpg=w1640 2x" width="820" height="547">
</a>
<figcaption></figcaption>
</figure>
<p>調べると次のような名称のルーペらしい。</p>
<ul>
<li>縞見ルーペ(しまみルーペ)</li>
<li>リネンテスター</li>
<li>スケールルーペ</li>
<li>折りたたみ式ルーペ</li>
</ul>
<p>かつて繊維織物の生産が盛んだった地の出身なので、その関係の人からもらったか、仕事柄必要で手に入れたのか。</p>
<p>面白いのが、土台となる枠についている目盛り。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXTBeUDBkt58KuhmwLZxHNmo9hP3jGfRHEZMcN27ecUeY1mQEMyMaATSqHelADj7bzzcjwp5OJb5tdmMl4btz1Pj_MjTshXDkdWenobUdMWB74pLKnTlblwYZ8xm5tIcmGwRfRFxGFJxw1CKGms11YwOd2F_iG_Vgk17Z23hainvlyYFnLZxkozGxSw/s1600/06.jpg" imageanchor="1">
<img alt="" data-original-height="2000" data-original-width="3000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXTBeUDBkt58KuhmwLZxHNmo9hP3jGfRHEZMcN27ecUeY1mQEMyMaATSqHelADj7bzzcjwp5OJb5tdmMl4btz1Pj_MjTshXDkdWenobUdMWB74pLKnTlblwYZ8xm5tIcmGwRfRFxGFJxw1CKGms11YwOd2F_iG_Vgk17Z23hainvlyYFnLZxkozGxSw/s1600/06.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXTBeUDBkt58KuhmwLZxHNmo9hP3jGfRHEZMcN27ecUeY1mQEMyMaATSqHelADj7bzzcjwp5OJb5tdmMl4btz1Pj_MjTshXDkdWenobUdMWB74pLKnTlblwYZ8xm5tIcmGwRfRFxGFJxw1CKGms11YwOd2F_iG_Vgk17Z23hainvlyYFnLZxkozGxSw/s1600/06.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXTBeUDBkt58KuhmwLZxHNmo9hP3jGfRHEZMcN27ecUeY1mQEMyMaATSqHelADj7bzzcjwp5OJb5tdmMl4btz1Pj_MjTshXDkdWenobUdMWB74pLKnTlblwYZ8xm5tIcmGwRfRFxGFJxw1CKGms11YwOd2F_iG_Vgk17Z23hainvlyYFnLZxkozGxSw/s1600/06.jpg=w1640 2x" width="820" height="547">
</a>
<figcaption></figcaption>
</figure>
<p>枠の三辺それぞれに違う単位の目盛りが刻まれているのだが、単位は漢字で書かれている。</p>
<ul>
<li>吋: インチ (2.54cm)</li>
<li>鯨: くじらじゃく (1寸=3.785cm)</li>
<li>曲: かねじゃく (1寸=3.03cm)</li>
</ul>
<p>しかし目盛りの刻みも、自動化された機械というより、人の手でひとつずつ刻まれているように見える。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5sfb1zG6clDO3AxYk6AprUzlnYEEB3wUcH9z2K742WehUBIiUl0yGcNpstHLAlJGrZufLkmuKB6splJZg1K7cqnlBC5O_-zUGZ9MeZRLj32G7ZLWwtF0Fwao5QGtxBpL03k1lVCB4MP0DT0PiCRPGSngGHymBVg3oLgp66Nsx0mssNkI3eT_sMFbeDw/s1600/05.jpg" imageanchor="1">
<img alt="" data-original-height="2250" data-original-width="3000" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5sfb1zG6clDO3AxYk6AprUzlnYEEB3wUcH9z2K742WehUBIiUl0yGcNpstHLAlJGrZufLkmuKB6splJZg1K7cqnlBC5O_-zUGZ9MeZRLj32G7ZLWwtF0Fwao5QGtxBpL03k1lVCB4MP0DT0PiCRPGSngGHymBVg3oLgp66Nsx0mssNkI3eT_sMFbeDw/s1600/05.jpg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5sfb1zG6clDO3AxYk6AprUzlnYEEB3wUcH9z2K742WehUBIiUl0yGcNpstHLAlJGrZufLkmuKB6splJZg1K7cqnlBC5O_-zUGZ9MeZRLj32G7ZLWwtF0Fwao5QGtxBpL03k1lVCB4MP0DT0PiCRPGSngGHymBVg3oLgp66Nsx0mssNkI3eT_sMFbeDw/s1600/05.jpg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5sfb1zG6clDO3AxYk6AprUzlnYEEB3wUcH9z2K742WehUBIiUl0yGcNpstHLAlJGrZufLkmuKB6splJZg1K7cqnlBC5O_-zUGZ9MeZRLj32G7ZLWwtF0Fwao5QGtxBpL03k1lVCB4MP0DT0PiCRPGSngGHymBVg3oLgp66Nsx0mssNkI3eT_sMFbeDw/s1600/05.jpg=w1640 2x" width="820" height="615">
</a>
<figcaption></figcaption>
</figure>
<p>手作りなのだろう。</p>
<p>その所為か、昨今のmm標準スケールと比べると誤差がある。</p>
<p>いや、標準化される前の尺ということなのかも知れない。</p>
<p>いずれにしても、まだまだ使える。</p>
<p>参照資料: <a href="http://www.takichou.com/osadetail.htm" target="_blank" rel="noopener noreferrer">ステンレス筬の見方 (http://www.takichou.com/osadetail.htm)</a></p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-17354843382178492212023-09-29T22:14:00.001+09:002023-09-29T22:14:19.551+09:00iMessageの履歴をHTMLとして保存する方法<p>
ここでは<strong>imessage-exporter</strong>を使ってiMessageのメッセージ履歴をまるっと書き出す方法を記す。
</p>
<p>
<a href="https://github.com/ReagentX/imessage-exporter" target="_blank" rel="noopener noreferrer" class="series-link" title="ReagentX/imessage-exporter: Export iMessage data + run iMessage Diagnostics">https://github.com/ReagentX/imessage-exporter</a>
</p>
<p>
わたしはiMessageのメッセージ保存期間を“無期限”にしていたため、iPhoneやiCloud容量を逼迫していた。そこで<strong>imessage-exporter</strong>を使ってメッセージ履歴をローカルにまるっと保存。iMessageの保存期間は“1年間”へ変更することで過去のデータを削除、iCloudの空き容量を増やすことに成功した。
</p>
<h2>環境</h2>
<ul>
<li>macOS 13.6 Ventura</li>
<li>iOS 17.0</li>
</ul>
<h2>目次</h2>
<ul>
<li><a href="#installation">インストール</a></li>
<li>
使い方
<ul>
<li><a href="#methodA">A: macOSのデータベースから抽出する方法</a></li>
<li><a href="#methodB">B: iPhoneのバックアップから抽出する方法</a></li>
</ul>
</li>
<li><a href="#options">オプション一覧</a></li>
</ul>
<h3 id="installation">インストール</h3>
<div class="desc">
<p class="first">
公式ドキュメンテーションはこちら(<a href="https://github.com/ReagentX/imessage-exporter/blob/develop/imessage-exporter/README.md" target="_blank" rel="noopener noreferrer" title="imessage-exporter/imessage-exporter/README.md at develop · ReagentX/imessage-exporter">https://github.com/ReagentX/imessage-exporter/blob/develop/imessage-exporter/README.md</a>)。<strong>imessage-exporter</strong>はRustで出来ているためCargoを使ってインストールする方法、Homebrewを使う方法、プリビルドされたバイナリを使う方法がある。今回わたしはHomebrewでインストールした。
</p>
<code class="shell">brew install imessage-exporter</code>
<p>
ちなみにCargoならこう。
</p>
<code class="shell">cargo install imessage-exporter</code>
</div>
<h3 id="methodA">macOSのデータベースから抽出する方法</h3>
<div class="desc">
<p class="first">
念のため先にiMessage(メッセージアプリ)を立ち上げ、設定画面から“今すぐ同期”をクリックして、データベースを最新の状態へ。
</p>
<p>
macOSの場合<var>~/Library/Messages/chat.db</var>にメッセージデータベースがある模様。<strong>imessage-exporter</strong>はデフォルトでここを見に行ってくれるので保存形式とアタッチメント(画像や動画といった添付メディア)を保存するか否かを教えるだけで簡単にバックアップを取ってくれた。
</p>
<code class="shell">imessage-exporter -f html -c efficient -o ~/Desktop/imessage_backup</code>
<p>
上のコマンドを走らせるとデスクトップに<var>imessage_backup</var>フォルダがつくられ、その中にHTML形式でメッセージ履歴が保存された。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png" imageanchor="1">
<img alt="" data-original-height="1280" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png=w1440 2x" width="720" height="576">
</a>
<figcaption>出力されたHTMLの一例</figcaption>
</figure>
<p>
ステッカーの貼り付け位置は失われていたものの、ステッカー1枚1枚は画像データとして保存されており、ほぼすべてのアタッチメントが保存できていることを確認。中には見つからないものもあったが、リンク切れのものだったり。ほか、リアクションや返信、既読時間まできちんと出力されていて、感動。
</p>
</div>
<h3 id="methodB">iPhoneのバックアップから抽出する方法</h3>
<div class="desc">
<p class="first">
iPhoneでしかiMessage使ってないよ、という方はこちら。
</p>
<p>
まずはFinderをつかってMacにiPhoneのバックアップを取る(図中1)。この時バックアップを暗号化<strong>しない</strong>よう注意。バックアップが完了したら“バックアップを管理”をクリック(図中2)。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTa_DaDKhuhh8F8jnaWq2SMyXWIXIz_3oJtS1hNHIF8F6INbhIK6DMeG4ZzSfBoAOLvyVK7crH7K2wK7-bFS3TkdqF1PtAa6cxa7g3KKiG92oZ_wTqa4qITRk09OAIWDrO6D65PwOwxXKcpVQASMMvnh-eW1lxl6BqqzUy2JaoMtp0maXRzqDjEjctQ/s1600/01%20Take%20Unencrypted%20Backup.png" imageanchor="1">
<img alt="" data-original-height="1437" data-original-width="1486" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTa_DaDKhuhh8F8jnaWq2SMyXWIXIz_3oJtS1hNHIF8F6INbhIK6DMeG4ZzSfBoAOLvyVK7crH7K2wK7-bFS3TkdqF1PtAa6cxa7g3KKiG92oZ_wTqa4qITRk09OAIWDrO6D65PwOwxXKcpVQASMMvnh-eW1lxl6BqqzUy2JaoMtp0maXRzqDjEjctQ/s1600/01%20Take%20Unencrypted%20Backup.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTa_DaDKhuhh8F8jnaWq2SMyXWIXIz_3oJtS1hNHIF8F6INbhIK6DMeG4ZzSfBoAOLvyVK7crH7K2wK7-bFS3TkdqF1PtAa6cxa7g3KKiG92oZ_wTqa4qITRk09OAIWDrO6D65PwOwxXKcpVQASMMvnh-eW1lxl6BqqzUy2JaoMtp0maXRzqDjEjctQ/s1600/01%20Take%20Unencrypted%20Backup.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUTa_DaDKhuhh8F8jnaWq2SMyXWIXIz_3oJtS1hNHIF8F6INbhIK6DMeG4ZzSfBoAOLvyVK7crH7K2wK7-bFS3TkdqF1PtAa6cxa7g3KKiG92oZ_wTqa4qITRk09OAIWDrO6D65PwOwxXKcpVQASMMvnh-eW1lxl6BqqzUy2JaoMtp0maXRzqDjEjctQ/s1600/01%20Take%20Unencrypted%20Backup.png=w1440 2x" width="720" height="696">
</a>
<figcaption>FinderのiPhone管理画面</figcaption>
</figure>
<p>
先程取れたバックアップを右クリックして“Finderで表示”をクリック。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMBJrSCusU3ux5EY9_CvTOGqTDQQsHil0BeRK9h3Bi8Rxwol4ZTa19m6U8lUoP9svROog24MdK6TPy8IYMpGa2Z7-aJj64Ng-1ssjJw3tBYx6F2zFH848Q-Y9yE7kjRRAxd1QwmOnl0MYcTwjLyVcHXmMO9jJDV0pp7omHX33EDA3BzUyoqy2qKdWUQ/s1600/02%20Show%20Backup%20In%20Finder.png" imageanchor="1">
<img alt="" data-original-height="1000" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMBJrSCusU3ux5EY9_CvTOGqTDQQsHil0BeRK9h3Bi8Rxwol4ZTa19m6U8lUoP9svROog24MdK6TPy8IYMpGa2Z7-aJj64Ng-1ssjJw3tBYx6F2zFH848Q-Y9yE7kjRRAxd1QwmOnl0MYcTwjLyVcHXmMO9jJDV0pp7omHX33EDA3BzUyoqy2qKdWUQ/s1600/02%20Show%20Backup%20In%20Finder.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMBJrSCusU3ux5EY9_CvTOGqTDQQsHil0BeRK9h3Bi8Rxwol4ZTa19m6U8lUoP9svROog24MdK6TPy8IYMpGa2Z7-aJj64Ng-1ssjJw3tBYx6F2zFH848Q-Y9yE7kjRRAxd1QwmOnl0MYcTwjLyVcHXmMO9jJDV0pp7omHX33EDA3BzUyoqy2qKdWUQ/s1600/02%20Show%20Backup%20In%20Finder.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMMBJrSCusU3ux5EY9_CvTOGqTDQQsHil0BeRK9h3Bi8Rxwol4ZTa19m6U8lUoP9svROog24MdK6TPy8IYMpGa2Z7-aJj64Ng-1ssjJw3tBYx6F2zFH848Q-Y9yE7kjRRAxd1QwmOnl0MYcTwjLyVcHXmMO9jJDV0pp7omHX33EDA3BzUyoqy2qKdWUQ/s1600/02%20Show%20Backup%20In%20Finder.png 2x" width="720" height="600">
</a>
<figcaption>“バックアップを管理”画面</figcaption>
</figure>
<p>
Finderでバックアップフォルダが表示されるのでそのパス名をコピーする。フォルダを選択して<kbd>⌥</kbd>+<kbd>⌘</kbd>+<kbd>C</kbd>か、あるいは右クリックメニューを表示してからオプションキー<kbd>⌥</kbd>を押し、[“<i>フォルダ名</i>”のパス名をコピー]を選択。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzFseo0nnpOwU0x-eUSnjNuOmbtLShlQRw8h4w_4ooMmdcblQSnOZK1y4NEcxL1-9r9udubwYx-37fdlIAvUJqcZD6_MJfSOnf_ryrnYCz_tcmfCW80ML8Dig_7PH3TNLUXuCQd4HiCQVpZOI0JVrG59jLxuvop1NZGtDlcIINVQ4PrqcIOMPmH_k2cw/s1600/03%20Copy%20Pathname%20Of%20Backup%20Folder.png" imageanchor="1">
<img alt="" data-original-height="1200" data-original-width="2300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzFseo0nnpOwU0x-eUSnjNuOmbtLShlQRw8h4w_4ooMmdcblQSnOZK1y4NEcxL1-9r9udubwYx-37fdlIAvUJqcZD6_MJfSOnf_ryrnYCz_tcmfCW80ML8Dig_7PH3TNLUXuCQd4HiCQVpZOI0JVrG59jLxuvop1NZGtDlcIINVQ4PrqcIOMPmH_k2cw/s1600/03%20Copy%20Pathname%20Of%20Backup%20Folder.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzFseo0nnpOwU0x-eUSnjNuOmbtLShlQRw8h4w_4ooMmdcblQSnOZK1y4NEcxL1-9r9udubwYx-37fdlIAvUJqcZD6_MJfSOnf_ryrnYCz_tcmfCW80ML8Dig_7PH3TNLUXuCQd4HiCQVpZOI0JVrG59jLxuvop1NZGtDlcIINVQ4PrqcIOMPmH_k2cw/s1600/03%20Copy%20Pathname%20Of%20Backup%20Folder.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzFseo0nnpOwU0x-eUSnjNuOmbtLShlQRw8h4w_4ooMmdcblQSnOZK1y4NEcxL1-9r9udubwYx-37fdlIAvUJqcZD6_MJfSOnf_ryrnYCz_tcmfCW80ML8Dig_7PH3TNLUXuCQd4HiCQVpZOI0JVrG59jLxuvop1NZGtDlcIINVQ4PrqcIOMPmH_k2cw/s1600/03%20Copy%20Pathname%20Of%20Backup%20Folder.png=w1440 2x" width="720" height="376">
</a>
<figcaption>Optionキーを押下するとコンテキストメニューが変化する</figcaption>
</figure>
<p>
次のコマンドを使うとiPhoneのバックアップデータからiMessageのメッセージ履歴を抽出してくれる。
</p>
<code class="shell">imessage-exporter -f html -c efficient -a iOS -p "<i>バックアップフォルダのパス名</i>" -o ~/Desktop/imessage_export</code>
<p>
macOSのときと同様、きちんとHTML形式で保存される。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png" imageanchor="1">
<img alt="" data-original-height="1280" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfOOuFKf9EzVrHKxSWOlTn4w_PfppAw74XqX71_OsFXNzyPlp0d5ly9K4E63G8k1ORWCc4nAVzl7X0ITYPDHB_9LKq01bxiHaCQNB-W1tFsvW99YxNgOAVo3x6RZTKN1x0YR3eV6TZFSd_t_8Efg_rXHyaMmT1dwOV6t0OaZdoUlEFiUloFmiLRt0LYg/s1600/04%20Preview%20Of%20HTML%20Exported%20Messages.png=w1440 2x" width="720" height="576">
</a>
<figcaption>出力されたHTMLの一例</figcaption>
</figure>
</div>
<h3 id="options">オプション一覧</h3>
<div class="desc">
<h4 class="first">-f フォーマット</h4>
<p>
txt、またはhtmlから選べる。
</p>
<h4>-c コピーオプション</h4>
<p>
アタッチメント(画像や動画などの添付メディア)のコピー方法を選択。efficientは元データそのまま、compatibleはHEICをすべてJPEGへ変換。省略時のデフォルトはdisabledでコピーしない。
</p>
<h4>-a プラットフォーム</h4>
<p>
抽出元がmacOSかiOSを明示するオプション。特にiOSのバックアップから抽出する場合は“iOS”と指定する。
</p>
<h4>-o 出力先</h4>
<p>
デフォルトは<var>~/imessage_export</var>。保存先となるフォルダ名を指定する。
</p>
<h4>-d データベース検証</h4>
<p>
データベースの検証のみを行って、その結果を表示するモード。メッセージの保存はしない。
</p>
<h4>-s <i>YYYY-MM-DD</i> 開始日</h4>
<p>
指定した日付を含め、それ以降のメッセージのみ抽出する。フォーマットはYYYY-MM-DD(2023年9月29日ならば2023-09-29)。
</p>
<h4>-e <i>YYYY-MM-DD</i> 終了日</h4>
<p>
指定した日付以前のメッセージのみ抽出する。フォーマットはYYYY-MM-DD(2023年9月29日ならば2023-09-29)。
</p>
<h4>-l タグ出力オプション</h4>
<p>
小文字のエル(L)。HTML出力時、imgタグにloading="lazy"を付与しない。ブラウザでの表示時間は遅くなるがPDFへの書き出しに最適。
</p>
<h4>-m <i>CustomName</i> 名前変更</h4>
<p>
メッセージ中の自分の名前を任意の文字列に置き換えて出力する。デフォルトはMe。
</p>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-85668927169458977032023-08-12T16:28:00.007+09:002023-08-12T16:42:59.388+09:00CSSセレクタでつくるRSSフィード<p>いろんなサイトをRSS化しちゃおう、という野心的なプロジェクト「<a href="https://github.com/RSS-Bridge/rss-bridge/" target="_blank" title="RSS-Bridge/rss-bridge: The RSS feed for websites missing it">RSS-Bridge</a>」。今回はそのプロジェクトの一部である「<a href="https://github.com/RSS-Bridge/rss-bridge/blob/master/bridges/CssSelectorBridge.php" target="_blank" title="rss-bridge/bridges/CssSelectorBridge.php at master · RSS-Bridge/rss-bridge">CssSelectorBridge</a>」をご紹介。RSSフィードを提供していないサイトでも、CSSセレクタを使って投稿タイトルと投稿本文を指定するだけでRSSできちゃうプログラムだ。</p>
<a class="series-link" href="https://github.com/RSS-Bridge/rss-bridge/" target="_blank" title="RSS-Bridge/rss-bridge: The RSS feed for websites missing it">https://github.com/RSS-Bridge/rss-bridge/</a>
<p>自分でインスタンスを立ち上げて使う前提ではあるが、今回は手軽に試したかったので<a href="https://rss-bridge.org/bridge01/#bridge-CssSelectorBridge" target="_blank" title="RSS-Bridge">公式インスタンス</a>を利用させていただく。</p>
<p>ここでは漫画家panpanyaさんのウェブサイト(<a href="https://www.panpanya.com" target="_blank" title="SURMICLUSSER">https://www.panpanya.com</a>)をRSS化させていただいた。RSSリーダーはFeedlyを利用。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8TujOrUu-8SoGdxlhBkVx99AKLezpwytyWR8p_Uobouo-qRrGRGXOSzoNirqNtvgGCUWBzMjtDuNpiv9b02qqW7eEqFC_EYbqtaMx28iPw2jpEWYItOiBDsqhTtci1D3MXYo8idckaGclZrvPd37wh4h1Zv83somLsgkQqQSU6wJeXTLjucpeGZb1Q/s1600/01%20CSS%20Selector%20Bridge%20Form.png" imageanchor="1">
<img alt="CSS Selector Bridgeの入力フォーム画面" data-original-height="1062" data-original-width="1432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY8TujOrUu-8SoGdxlhBkVx99AKLezpwytyWR8p_Uobouo-qRrGRGXOSzoNirqNtvgGCUWBzMjtDuNpiv9b02qqW7eEqFC_EYbqtaMx28iPw2jpEWYItOiBDsqhTtci1D3MXYo8idckaGclZrvPd37wh4h1Zv83somLsgkQqQSU6wJeXTLjucpeGZb1Q/s1600/01%20CSS%20Selector%20Bridge%20Form.png=w800" width="800" height="593">
</a>
<figcaption>CSS Selector Bridgeのフォームに入力した場面</figcaption>
</figure>
<p>RSS Bridge公式インスタンスのCSS Selector Bridgeを開いて次の項目を入力した。</p>
<ul>
<li>Site URL: <var>https://www.panpanya.com</var></li>
<li>Selector for article links or their parent elements: <var>.post-title a</var></li>
<li>Selector to expand each article content: <var>.post-body</var></li>
<li>Text to remove from expanded article title: <var>SURMICLUSSER: </var></li>
</ul>
<div class="ps">
<h4 class="top">項目ごとの解説</h4>
<div>・<b>Site URL</b>: 投稿一覧のURL</div>
<div>・<b>Selector for article links or their parent elements</b>: 各投稿へのリンク要素。CSSセレクタで指定。投稿を含む親要素を指定しても良いがその場合最初に見つけたリンクがフィードの投稿となる。なお入力されたセレクタは<a href="https://simplehtmldom.sourceforge.io/docs/1.9/manual/finding-html-elements/" target="_blank" title="Finding HTML Elements - Simple HTML DOM documentation">Simple HTML DOMのfindメソッド</a>に渡される。</div>
<div>・<b>[Optional] Pattern for site URLs to keep in feed</b>: URLの正規表現(PHPの<a href="https://www.php.net/manual/function.preg-match.php" target="_blank" title="PHP: preg_match - Manual">preg_match()</a>)。このパターンにマッチしないURLはフィードに表示されない。<var>/</var>は<var>\/</var>へ置換される。</div>
<div>・<b>[Optional] Selector to expand each article content</b>: 投稿ページの本文要素をCSSセレクタで指定。指定するとフィード生成が遅くなるらしい。</div>
<div>・<b>[Optional] Content cleanup: List of items to remove</b>: 投稿内から取り除く要素。CSSセレクタで指定。例えば投稿内にある広告やコメントなど。</div>
<div>・<b>[Optional] Text to remove from expanded article title</b>: 投稿タイトルから取り除く文字列。各投稿ページのタイトルにブログタイトルが付与されているサイトなどに便利。</div>
<div>・<b>Limit</b>: フィードの取得上限数。デフォルトは10件。</div>
</div>
<p>panpanyaさんのウェブサイトでWeb Inspectorを開いたところは次のとおり。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQevSUPHV8yoPbiW7l9zVn1IxVjIzx7Kkscy1R2Qjr34aXO3Ey6bAVwJszyB3kMsEUTHZ-KxXyqAZKZW00FgB1VaEBtIscvevAOiumTRnslE6beE8d_2JXdRScKtZOJjdQnLcB9h2MtZ_iz-yTyTE8KilJ4TdjUfypkLPH1sKsYWvU8vnkBM5Tm4YFWg/s1600/02%20Web%20Inspector.png" imageanchor="1">
<img alt="panpanyaさんのウェブサイトのHTML構造" data-original-height="1540" data-original-width="2388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQevSUPHV8yoPbiW7l9zVn1IxVjIzx7Kkscy1R2Qjr34aXO3Ey6bAVwJszyB3kMsEUTHZ-KxXyqAZKZW00FgB1VaEBtIscvevAOiumTRnslE6beE8d_2JXdRScKtZOJjdQnLcB9h2MtZ_iz-yTyTE8KilJ4TdjUfypkLPH1sKsYWvU8vnkBM5Tm4YFWg/s1600/02%20Web%20Inspector.png=w800" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQevSUPHV8yoPbiW7l9zVn1IxVjIzx7Kkscy1R2Qjr34aXO3Ey6bAVwJszyB3kMsEUTHZ-KxXyqAZKZW00FgB1VaEBtIscvevAOiumTRnslE6beE8d_2JXdRScKtZOJjdQnLcB9h2MtZ_iz-yTyTE8KilJ4TdjUfypkLPH1sKsYWvU8vnkBM5Tm4YFWg/s1600/02%20Web%20Inspector.png=w800 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQevSUPHV8yoPbiW7l9zVn1IxVjIzx7Kkscy1R2Qjr34aXO3Ey6bAVwJszyB3kMsEUTHZ-KxXyqAZKZW00FgB1VaEBtIscvevAOiumTRnslE6beE8d_2JXdRScKtZOJjdQnLcB9h2MtZ_iz-yTyTE8KilJ4TdjUfypkLPH1sKsYWvU8vnkBM5Tm4YFWg/s1600/02%20Web%20Inspector.png=w1600 2x" width="800" height="516">
</a>
<figcaption>Web Inspectorで投稿タイトルと本文のCSSセレクタを調べる</figcaption>
</figure>
<p>見ると「.post-title内のaタグ」が各投稿へのリンクになっていることが分かった。また各投稿ページでも投稿本文は「.post-body」に内包されていたのでこれを指定。さらに各投稿ページのtitleタグは「SURMICLUSSER: <i>投稿タイトル</i>」のようにウェブサイトタイトルが付与されていたので、これを取り除く文字列として指定。最後に「Generate feed」ボタンを押下した。</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGjkOOqvvdsh311IYqtkUPB14_7Jr4q9O7yCxlHeeTpdEcZexKBuHKzrcQgT9Z6RObPNIK9rMY9XcS-sCle0uzItDz4pvIDsGd6MrDxEAEH5IvTsPajswF2kWHYcyKTz__rYMShLNMuAsc3F3G52s8-hKJcxdESPq7UhqQNPpVGoqeRRaS1V3Ja4NKZA/s1600/03%20CSS%20Selector%20Bridge%20Result.png" imageanchor="1">
<img alt="CSS Selector Bridgeが生成したRSSフィード結果" data-original-height="1469" data-original-width="2388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGjkOOqvvdsh311IYqtkUPB14_7Jr4q9O7yCxlHeeTpdEcZexKBuHKzrcQgT9Z6RObPNIK9rMY9XcS-sCle0uzItDz4pvIDsGd6MrDxEAEH5IvTsPajswF2kWHYcyKTz__rYMShLNMuAsc3F3G52s8-hKJcxdESPq7UhqQNPpVGoqeRRaS1V3Ja4NKZA/s1600/03%20CSS%20Selector%20Bridge%20Result.png=w800" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGjkOOqvvdsh311IYqtkUPB14_7Jr4q9O7yCxlHeeTpdEcZexKBuHKzrcQgT9Z6RObPNIK9rMY9XcS-sCle0uzItDz4pvIDsGd6MrDxEAEH5IvTsPajswF2kWHYcyKTz__rYMShLNMuAsc3F3G52s8-hKJcxdESPq7UhqQNPpVGoqeRRaS1V3Ja4NKZA/s1600/03%20CSS%20Selector%20Bridge%20Result.png=w800 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGjkOOqvvdsh311IYqtkUPB14_7Jr4q9O7yCxlHeeTpdEcZexKBuHKzrcQgT9Z6RObPNIK9rMY9XcS-sCle0uzItDz4pvIDsGd6MrDxEAEH5IvTsPajswF2kWHYcyKTz__rYMShLNMuAsc3F3G52s8-hKJcxdESPq7UhqQNPpVGoqeRRaS1V3Ja4NKZA/s1600/03%20CSS%20Selector%20Bridge%20Result.png=w1600 2x" width="800" height="492">
</a>
<figcaption>CSS Selector Bridgeの生成したフィード結果</figcaption>
</figure>
<p>見事にタイトル、本文、投稿リンクなどがRSSフィードとして表示されている!早速「Atom」形式としてFeedlyに登録しよう。生成されたフィードのAtomボタンのURLをコピーし、FeedlyのURLバーへ貼り付けた</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFQpUhsWlUYHHxIdBirXkJXrqbuSZovvqgxXDozGiYwU8mLbZzFfi_RUtHKwTUV10_RDzGIlEDApR_T8hZpubnfkGpPiHgjoSwXgphLuz5zr88GNtpeTJZFfFXTei8TTO8xkAsh0Ms5X4jE9HZ584GgWRVctsYL1a4QmiuoPCBZZ0nW-bVEhxgvEbZXg/s1600/04%20Feedly%20Adding%20Feed.png" imageanchor="1">
<img alt="FeedlyにCSS Selector Bridgeのフィードを入力した場面" data-original-height="1591" data-original-width="2388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFQpUhsWlUYHHxIdBirXkJXrqbuSZovvqgxXDozGiYwU8mLbZzFfi_RUtHKwTUV10_RDzGIlEDApR_T8hZpubnfkGpPiHgjoSwXgphLuz5zr88GNtpeTJZFfFXTei8TTO8xkAsh0Ms5X4jE9HZ584GgWRVctsYL1a4QmiuoPCBZZ0nW-bVEhxgvEbZXg/s1600/04%20Feedly%20Adding%20Feed.png=w800" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFQpUhsWlUYHHxIdBirXkJXrqbuSZovvqgxXDozGiYwU8mLbZzFfi_RUtHKwTUV10_RDzGIlEDApR_T8hZpubnfkGpPiHgjoSwXgphLuz5zr88GNtpeTJZFfFXTei8TTO8xkAsh0Ms5X4jE9HZ584GgWRVctsYL1a4QmiuoPCBZZ0nW-bVEhxgvEbZXg/s1600/04%20Feedly%20Adding%20Feed.png=w800 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFQpUhsWlUYHHxIdBirXkJXrqbuSZovvqgxXDozGiYwU8mLbZzFfi_RUtHKwTUV10_RDzGIlEDApR_T8hZpubnfkGpPiHgjoSwXgphLuz5zr88GNtpeTJZFfFXTei8TTO8xkAsh0Ms5X4jE9HZ584GgWRVctsYL1a4QmiuoPCBZZ0nW-bVEhxgvEbZXg/s1600/04%20Feedly%20Adding%20Feed.png=w1600 2x" width="800" height="533">
</a>
<figcaption>Feedlyが生成されたフィードを認識</figcaption>
</figure>
<p>きちんとFeedlyに表示されたのでプラスで登録。これでpanpanyaさんの投稿をFeedlyでもRSSフィードが見られることを確認した!</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrnLrC5fygAhwvgR8uTBis8Tena_0RFrBe4E2mcnOVp2XwFoMIsz-g9PbjU0npDJcwEkkPCli8reM_ga9uhCbxSNKZQpu_KGUEdb0-GLwDNmOJWwT8Y1ZyTxnKIZdkVoEJfGFrAUicVdIdxzB0wxZFo7YjFEvpYzomAX-HQAa0zVxgJAD8uj3xIMNemg/s1600/05%20Feedly%20Today%20View.png" imageanchor="1">
<img alt="FeedlyのToday Viewにpanpanyaさんの各投稿が表示されている場面" data-original-height="1591" data-original-width="2388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrnLrC5fygAhwvgR8uTBis8Tena_0RFrBe4E2mcnOVp2XwFoMIsz-g9PbjU0npDJcwEkkPCli8reM_ga9uhCbxSNKZQpu_KGUEdb0-GLwDNmOJWwT8Y1ZyTxnKIZdkVoEJfGFrAUicVdIdxzB0wxZFo7YjFEvpYzomAX-HQAa0zVxgJAD8uj3xIMNemg/s1600/05%20Feedly%20Today%20View.png=w800" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrnLrC5fygAhwvgR8uTBis8Tena_0RFrBe4E2mcnOVp2XwFoMIsz-g9PbjU0npDJcwEkkPCli8reM_ga9uhCbxSNKZQpu_KGUEdb0-GLwDNmOJWwT8Y1ZyTxnKIZdkVoEJfGFrAUicVdIdxzB0wxZFo7YjFEvpYzomAX-HQAa0zVxgJAD8uj3xIMNemg/s1600/05%20Feedly%20Today%20View.png=w800 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrnLrC5fygAhwvgR8uTBis8Tena_0RFrBe4E2mcnOVp2XwFoMIsz-g9PbjU0npDJcwEkkPCli8reM_ga9uhCbxSNKZQpu_KGUEdb0-GLwDNmOJWwT8Y1ZyTxnKIZdkVoEJfGFrAUicVdIdxzB0wxZFo7YjFEvpYzomAX-HQAa0zVxgJAD8uj3xIMNemg/s1600/05%20Feedly%20Today%20View.png=w1600 2x" width="800" height="533">
</a>
<figcaption>Feedlyに各投稿が表示されている</figcaption>
</figure>
<p>Happy RSS Life!</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-29559102144639073192023-07-24T10:35:00.130+09:002023-07-26T10:10:02.486+09:00『DUNE: Part Two』日本公開は2024年1月に<div class="wrapper">
<iframe width="820" height="461" src="https://www.youtube-nocookie.com/embed/_YUzQa_1RCE?controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>
<p>
『DUNE: Part Two』(邦題『デューン 砂の惑星PART2』)の日本公開が2024年1月に決まったようです(ref.: <a href="https://wwws.warnerbros.co.jp/dune-movie/" target="_blank" rel="nofollow">https://wwws.warnerbros.co.jp/dune-movie/</a>)。公式の発表していた当初の予定は2023年11月。日本だけ来年へお預けかと思ったのですが、どうもストライキの影響もあり、日本以外の国と地域でも公開が遅れるところがありそうです。
</p>
<p>
さて、本作は2部構成として企画が始まったDenis Villeneuve監督によるSF小説『DUNE』の映画化2作目にして完結編とされています。前作では世界観や人物描写、その背景などに重きを置き、原作を知らない方にとっては肩透かしを食ったのではないでしょうか。
</p>
<p>
それもわかります。『デューン 砂の惑星』というタイトルの映画を観に行ったらオープニングでしれっと“PART ONE”なんて出るし、終わり方も「いよいよこれからか…!」という盛り上がりでバツっとエンドロール。
</p>
<p>
ただあの構成、原作ファンとしては本当に痺れるものばかりでした。2時間半にDUNEのすべてが収まってしまうのか…と寂しい気持ちも否めぬまま観に行ったらオープニングで「まだ続きが観れるのか!」と。小説でいうとほぼ折り返し地点での終わり方。区切るならここしか無い!という場所。
</p>
<p>
これも映画としての完成度が高いからこそです。何よりも原作小説を読みつつ思い描いていたあの景色たちがスクリーンいっぱいに広がるあの体験は鳥肌ものでした。あの濃厚な世界観を、未来の世界に起こる歴史的瞬間の目撃者になれる、あの感覚がこの作品を特別なものにしていると思います。そして次作が待ち遠しくて堪らない気持ちいっぱいで劇場を去ったものです。
</p>
<p>
そんな次作『DUNE: Part Two』ももうすぐスクリーンで観ることが出来る。1作目も当初2020年公開予定でしたが、疫病云々で2021年に延期されていたことを思い出します。今年公開から来年公開となると2ヶ月の差とは言えやはり長く感じます。長く感じますが、もう少し…!もう少しです!!
</p>
<blockquote>
Don't trust leaders to always be right ― Frank Herbert
</blockquote>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-55487021516464898872023-06-20T15:52:00.001+09:002023-06-20T15:52:25.080+09:00iMessageでURLをプレーンテキストとして送る方法<p>
iMessageを使ってURLを送ると自動的にRich Preview、いわゆるカード表示になります。今回はURLをそのまま文字列として送りたい場面があったので、いろいろテストしました。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoS8oLOPulEeURSudnpX8LXAyK1HYGRPIHPAr_44KIkNztR_oBc3mKHqqUA_SvcCqdL38FQxZbW8atUHdgjEVZdtHD7CxP6Kh6pcCZ0Hq7DiBws2YY-P8ZA35EqjjN1j7TQx9_sMzqoBJxmu5P_8taqNcu1oE8kZJYVSXqyZRqtG5uxduoYETiUCvkRg/s1600/230620%20imessage%20send%20url%20as%20plain%20not%20rich.png" imageanchor="1">
<img alt="iMessageにおけるURLのリッチプレビュー表示とプレーンテキスト表示の見え方の違い" data-original-height="630" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoS8oLOPulEeURSudnpX8LXAyK1HYGRPIHPAr_44KIkNztR_oBc3mKHqqUA_SvcCqdL38FQxZbW8atUHdgjEVZdtHD7CxP6Kh6pcCZ0Hq7DiBws2YY-P8ZA35EqjjN1j7TQx9_sMzqoBJxmu5P_8taqNcu1oE8kZJYVSXqyZRqtG5uxduoYETiUCvkRg/s1600/230620%20imessage%20send%20url%20as%20plain%20not%20rich.png=w600" width="600" height="315">
</a>
<figcaption>RichでなくPlainで送りたかった</figcaption>
</figure>
<p>
結果、どうやらURLだけを送る場合ならURLを半角ドット<kbd>.</kbd>で囲ってあげるとプレーンテキストとして送ることができました。
</p>
<p>
<var>.https://storange.jp.</var><br /> → <var><u>https://storange.jp</u></var>
</p>
<p>
半角ドットとURLの間にスペース(半角全角問わず)が入っても問題ありませんでした。
</p>
<p>
<var>. https://storange.jp .</var><br /> → <var><u>https://storange.jp</u></var>
</p>
<p>
ただ、前後にテキストがある場合には半角ドットも含まれてそのまま表示されてしまうようです。
</p>
<p>
<var>いろは .https://storange.jp. あいう</var><br /> → <var>いろは .<u>https://storange.jp</u>. あいう</var>
</p>
<p>
この場合は普通にURLを入力すれば良さそうです。よくよく思い出してみれば確かにインラインURLはそのままプレーンテキストとして送信されるのでした。
</p>
<p>
<var>いろは https://storange.jp あいう</var><br /> → <var>いろは <u>https://storange.jp</u> あいう</var>
</p>
<p>
この場合、URLと前後のテキストの間に半角スペースを1つでも入れてあげないと、前後のテキストまでURLとして認識されてしまう場合があります。ご注意を。
</p>
<p>
<var>いろはhttps://storange.jpあいう</var><br /> → <var>いろは</var> <var><u>https://storange.jpあいう</u></var> (RichPreview化)
</p>
<p>
テキストが前にしか無い場合、最後にのみ半角ドットを付与することでURLをプレーンテキストとして送ることができました。
</p>
<p>
<var>いろは https://storange.jp.</var><br /> → <var>いろは <u>https://storange.jp</u></var>
</p>
<p>
同じ考え方で、テキストが後にしか無い場合、最初にだけ半角ドットを付与すれプレーンテキスト化されました。
</p>
<p>
<var>.https://storange.jp あいう</var><br /> → <var><u>https://storange.jp</u> あいう</var>
</p>
<p>
まとめ: メッセージがURLを含む場合、前後に文字列があれば(スペースでURLと区切られている場合)すべてプレーンテキストで送られます。URLとテキストがスペースで区切られていないと特にURLの後ろのテキストはURLの一部として解釈されます。メッセージの始まり、または終わりがURLの場合、URL部分のみを別のバブル(別の吹き出し)として送信します。この場合、Rich Previewになります。もしメッセージの始まりや終わりに半角ドットを挟んでURLがいる場合、URLをプレーンテキストとして表示します。この場合半角ドットからURLまでの空文字列(特にスペース)はTrimされます。
</p>
<figure aria-hidden="true">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKo0PaiI50BBPielJfi3hw-W8bP2Qf5nbL2ZuuEU9SdJAiMLhfG1JLt-swYqUl31Bry_hgXHd2hWio1qMpn2QQOZ6e-JeMWVGmJAIqBfwqF4je6fdti9JrZlqTpSXfHcFz4W4K8hRUTZq5f_jspQ4cazAZz2csZFQ6SRhwHM2ZzIS5ELoj3OJGivMhw/s1600/iMessage_Plain_Rich_Diagram.jpg" imageanchor="1">
<img alt="" data-original-height="3508" data-original-width="2480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKo0PaiI50BBPielJfi3hw-W8bP2Qf5nbL2ZuuEU9SdJAiMLhfG1JLt-swYqUl31Bry_hgXHd2hWio1qMpn2QQOZ6e-JeMWVGmJAIqBfwqF4je6fdti9JrZlqTpSXfHcFz4W4K8hRUTZq5f_jspQ4cazAZz2csZFQ6SRhwHM2ZzIS5ELoj3OJGivMhw/s1600/iMessage_Plain_Rich_Diagram.jpg=w420" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKo0PaiI50BBPielJfi3hw-W8bP2Qf5nbL2ZuuEU9SdJAiMLhfG1JLt-swYqUl31Bry_hgXHd2hWio1qMpn2QQOZ6e-JeMWVGmJAIqBfwqF4je6fdti9JrZlqTpSXfHcFz4W4K8hRUTZq5f_jspQ4cazAZz2csZFQ6SRhwHM2ZzIS5ELoj3OJGivMhw/s1600/iMessage_Plain_Rich_Diagram.jpg=w420 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKo0PaiI50BBPielJfi3hw-W8bP2Qf5nbL2ZuuEU9SdJAiMLhfG1JLt-swYqUl31Bry_hgXHd2hWio1qMpn2QQOZ6e-JeMWVGmJAIqBfwqF4je6fdti9JrZlqTpSXfHcFz4W4K8hRUTZq5f_jspQ4cazAZz2csZFQ6SRhwHM2ZzIS5ELoj3OJGivMhw/s1600/iMessage_Plain_Rich_Diagram.jpg=w840 2x" width="420" height="594">
</a>
<figcaption>メモ描き (クリックで拡大)</figcaption>
</figure>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-76132661164474434812023-05-30T14:01:00.002+09:002023-05-30T14:01:16.446+09:00jQueryを使わないPureなJavaScriptによるWordPressとのAjax通信<p>ファイル構造 (テーマフォルダ直下)</p>
<code class="no-highlight">
<pre>- functions.php
- js/
- core.js
- page-example.php</pre>
</code>
<p>固定ページ(スラッグはexample)のテンプレート「page-example.php」では次のようにボタンを設置している</p>
<code class="php">
<pre><?php
$paged = max( 1, get_query_var('paged') );
$args = array(
'post_type' => 'post',
'paged' => $paged
);
$post_query = new WP_Query( $args )
if ( $post_query->have_posts() ) {
while ($post_query->have_posts() ) {
$post_query->the_post();
printf(
'<a href="%s">%s</a>',
esc_url( get_the_permalink() ),
esc_html( get_the_title() ),
);
}
}
?>
<a href="#!" id="loadPostsButton">記事を読み込む</a>
<?php
wp_reset_postdata();</pre>
</code>
<p>ではこのページにJavaScriptファイル「js/core.js」を登録しよう。functions.phpに次のコードを追記。</p>
<code class="php">
<pre><?php
...
add_action( 'wp_enqueue_scripts', 'core_js_file' );
function core_js_file() {
wp_enqueue_script( 'core_js', get_theme_file_uri( '/js/core.js'), array(), rand( 1000 ,9999 ) , true );
}
...</pre>
</code>
<p>バージョン番号をランダムすることでキャッシュ回避をしている荒業。それはさておいて、これでcore.jsが読み込まれるようになった。ではそのcore.jsにAjaxするための準備をコーディング。</p>
<code class="javascript">
<pre>let paged = 1;
document.getElementById('loadPostsButton').addEventListener( 'click', ( event ) => {
event.preventDefault();
paged++;
// Ajax処理…
} );</pre>
</code>
<p>ボタンをクリックすると`paged`がインクリメントしてAjax処理される。pagedの初期値が1なのは、今表示している投稿が1ページ目だから。クリックとともにpagedが2になり、2ページ目を要求するメッセージを送れる寸法。</p>
<p>もし、access-control(CORS関連)で弾かれる場合はwatchなどでプロキシサーバーを使っていないかチェック!localhostを別のサーバーでプロキシして表示している場合(その逆も)は一度WordPressのURLをチェックしよう。</p>
<p>WordPressとAjaxさせるための記事を探すと、ほぼすべての記事でWordPress同梱のjQueryを利用した$.ajax()の例ばかり紹介されていた。たしかにこれが一番確実であるのだが、jQueryを使わずともAjaxできて良いのではないかと思い、今回この記録を執筆した次第。</p>
<p>Ajax処理の部分には`XMLHttpRequest()`を使う方法と`fetch()`を使う方法がある。まずは`XMLHttpRequest()`を使う方法から。</p>
<code class="javascript">
<pre>const data = new URLSearchParams();
data.append( 'action', 'load_more_posts' ); // WordPressにある関数名(呼び出し先)
data.append( 'nonce', ajax_obj.nonce ); // 呼び出し先に送りたいデータ1
data.append( 'paged', paged ); // 呼び出し先に送りたいデータ2
data.append( 'blah', 'blah blah ...' ); // 呼び出し先に送りたいデータ3 ...
const xhr = new XMLHttpRequest();
xhr.open( 'POST', `${ ajax_obj.url }?${ data.toString() }`, true );
xhr.onreadystatechange = () => {
if ( xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200 ) {
console.log( xhr.response ); // WordPressからの返信メッセージ(文字列)
// または console.log( xhr.responseText );
}
}
xhr.send();</pre>
</code>
<p>この中にはまだ定義していない変数がひとつある。`ajax_obj`だ。これはあるJSONデータを格納したグローバル変数なのだが、この説明はのちほど…。ここでは`URLSearchParams()`をご紹介。このAPIの.append()を使うことで例えば次のような文字列を得ることができる。</p>
<code class="javascript">
<pre>const data = new URLSearchParams();
data.append( 's', 'potato' );
data.append( 'p', 'tomato' );
data.toString(); // → "s=potato&p=tomato"</pre>
</code>
<p>ご覧のようにHTTPのGETメソッド、URLのクエリ文字列をかんたんに生成編集できるAPIである。なのでやっていることはクエリ文字列をつくっているだけである。</p>
<p>通信はPOSTメソッドで。WordPress(サーバー)側がHTTPレスポンスコード200(通信成功)を返してくれれば`xhr`オブジェクトに返信結果が入っている。ただ、まだWordPress側で返信スクリプトを書いていないのでもちろん何も返って来ず、エラーになるがWeb InspectorのNetworkタブなどできちんとデータ送信されていることを確認できると思われる。</p>
<p>このXMLHttpRequest()を使う方法だとWordPress側で`$_GET`か`$_REQUEST`を使いJavaScriptから送られたデータを読める。例えば$_GET['blah']で文字列"blah blah ..."を扱える。</p>
<p>さて、次はfetch()を使った方法。</p>
<code class="javascript">
<pre>const data = new URLSearchParams();
data.append( 'action', 'load_more_posts' );
data.append( 'paged', paged );
data.append( 'nonce', ajax_obj.nonce );
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data.toString(),
}
const getPosts = async () => {
const response = await fetch( ajax_obj.url, options ); // 戻り値はPromiseオブジェクト
const jsonData = await response.json(); // PromiseオブジェクトをJSONへ変換
console.log( jsonData ); // WordPressからの返信メッセージ(JSON)
};
getPosts();</pre>
</code>
<p>fetch()はPromiseを返すので次のように.then()を使っても書ける。</p>
<code class="javascript">
<pre>const data = new URLSearchParams();
data.append( 'action', 'load_more_posts' );
data.append( 'paged', paged );
data.append( 'nonce', ajax_obj.nonce );
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data.toString(),
}
fetch( ajax_obj.url, options )
.then( ( response ) => { // 返ってきたresponseはPromiseオブジェクト
if ( !response.ok ) {
throw new Error( `Ajax response: ${ response }` );
}
return response.json(); // PromiseオブジェクトをJSONに変換し、次の.then()へパス
} )
.then( ( jsonData ) => { // 成功!
console.log( jsonData ); // WordPressからの返信メッセージ(JSON)
} )
.catch( ( error ) => { // 失敗!
console.error( error );
} )
.finally( () => {
// 成功、失敗、関係なく、最後に実行させたい処理 (オプショナル)
} );</pre>
</code>
<p>ちなみに、なぜJSONでなくURLSearchParams()を使ったクエリ文字列で送るのかと言われれば、WordPressがJSONを嫌がるからだ。ヘッダーのContent-Typeを"application/json"にしてbodyに`JSON.stringify({'s': 'potato'})`をセットすると400 Bad Requestエラーが出る。色々試した結果、クエリ文字列で送れば大丈夫だと判った次第。</p>
<p>で、わたしは2番目のfetch()とawait/asyncを使う方法で書いた。するとJSファイルの全体像は次のように書ける。</p>
<code class="javascript">
<pre>let paged = 1;
const getPosts = async ( event ) => {
event.preventDefault();
paged++;
const path = ajax_obj.url;
const nonce = ajax_obj.nonce;
const data = new URLSearchParams();
data.append( 'action', 'load_more_posts' );
data.append( 'paged', paged );
data.append( 'nonce', nonce );
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data.toString(),
}
try {
const response = await fetch( path, options );
const data = await response.json();
console.log( data );
}
catch ( error ) {
console.error( error );
}
};
document.getElementById('loadPostsButton').addEventListener( 'click', getPosts );</pre>
</code>
さて、`ajax_obj`という変数が何なのかご紹介。この変数名ももちろん任意である。functions.phpに次を追記。
<code class="php">
<pre>add_action( 'wp_enqueue_scripts', 'core_js_localize_script' );
function core_js_localize_script ( $hook ) {
$obj = array(
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'my_nonce' ), // nonce生成時の名前(要メモ!)
);
wp_localize_script( 'core_js', 'ajax_obj', $obj );
}</pre>
</code>
<p>wp_enqueue_scriptsにてjs/core.jsを読み込んだときの名前"core_js"をwp_localize_scriptの第一引数に、ついでJavaScriptで参照したい変数名、ここでは"ajax_obj"を(グローバル変数になるのでユニークな名前に!)、最後にajax_objに代入したいJSONデータをPHPの配列形式で渡す。こうすると'core_js'が読み込まれているページに指定したデータを持つJSONが代入されたグローバル変数'ajax_obj'が自動生成される。</p>
<p>JavaScriptではこのデータを参照していたのだ。ここで'url'にはWordPressがAjax処理するためのPHPファイルのフルパスが、'nonce'にはセッションごとにユニークな文字列が入る(この文字列を使ってセッションを判別する仕組み)。</p>
<p>さて本題。WordPress側でAjaxリクエストを処理するコードをfunctions.phpに追記しよう!</p>
<code class="php">
<pre>add_action( 'wp_ajax_load_more_posts', 'load_more_posts' ); // ログインユーザー向け
add_action( 'wp_ajax_nopriv_load_more_posts', 'load_more_posts' ); // 一般ユーザー向け
function load_more_posts() {
check_ajax_referer( 'my_nonce', 'nonce' );
wp_send_json( array(
'message1' => 'Hi!',
'message2' => 'Hello',
'message3' => 'blah blah ...',
) );
}</pre>
</code>
<p>2つのアクションを使う。ひとつは管理画面にログイン中のユーザー向け、もうひとつはログインしていない、つまりは一般ユーザー向けのAjaxを受け付けるアクションだ。`wp_ajax_関数名`と`wp_ajax_nopriv_関数名`アクションの2つ。そしてアクションコールバックでは`check_ajax_referer`を使ってnonceをチェックし、意図したセッションからのリクエストか否かをチェックしている。nonceが食い違えばfalseとなる。12時間以内に生成されたnonceなら1が、24時間以内に生成されたものなら2を返す関数だ。`check_ajax_referer`の第一引数にはnonce生成時の名前(wp_create_nonce()の第一引数)、第2引数にはJavaScriptが送ったnonceのキー($_REQUEST['キー'])を渡す。キー名を"_ajax_nonce"にすれば第2引数を省くことができる。</p>
例:
<code class="javascript">
<pre>const data = new URLSearchParams();
data.append( 'action', 'load_more_posts' );
data.append( '_ajax_nonce', ajax_obj.nonce ); // ←ここ</pre>
</code>
<p>`wp_send_json()`に連想配列を渡せばそれをJSONとしてAjaxリクエスト先へ返してくれる。wp_send_json()を使う代わりに文字列を`echo`しても良い。echoならば1つの文字列だけを返すシンプルなものにできる。ただその際はきちんと`wp_die()`などで処理を終わらせるようにすること。wp_send_json()は内部でwp_die()かdie()を呼んでいるので書く必要は無い(書くに越したことはないが…)。</p>
例:
<code class="php">
<pre>function load_more_posts() {
check_ajax_referer( 'my_nonce', 'nonce' );
echo 'Hello JavaScript';
wp_die();
}</pre>
</code>
<p>echoの場合、返ってくるメッセージはJSONでなくただの文字列なのでfetch()の場合はresponse.text()で受けよう。</p>
例:
<code class="javascript">
<pre>const response = await fetch( ajax_obj.url, options );
const textData = await response.text(); // ←ここ
console.log( textData ); // 文字列メッセージ</pre>
</code>
<p>これで通信完了。「記事を読み込む」ボタンをクリックすればコンソール上にWordPressからの応答(JSONデータ)が表示されるはず。いかがだろう。うまく行かないかたはコメント欄で議論しよう。</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-1771908122864130892023-04-28T12:25:00.003+09:002023-04-28T12:25:30.041+09:00LAST AND FIRST MEN<p>
<a class="series-link" href="https://store.deutschegrammophon.com/p51-i0028948374106/j-hann-j-hannsson/last-and-first-men-cd-bluray-/index.html" target="_blank" rel="noopener noreferrer">Deutsche Grammophon - der offizielle Shop - Last And First Men (CD + BluRay) - Jóhann Jóhannsson - CD</a>
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uH0Ku3TPSDPBXmz39z2X4XUQCi31R2kNV1YvHTrhj4yhh8zNEBYs9YeY7xDDGi3q89dwDLUFEHtdFt7u6vCgh2svRPkwSvVbc_0Qkm093APfIHXaui-uy0ZhFtWS32KSzPubM-rQV-k5l24a2ExI9nSJ-rOBI6Uy1g06hFTvwxH58_GLA7pxwy8/s1600/LAST_AND_FIRST_MEN_00000.jpeg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uH0Ku3TPSDPBXmz39z2X4XUQCi31R2kNV1YvHTrhj4yhh8zNEBYs9YeY7xDDGi3q89dwDLUFEHtdFt7u6vCgh2svRPkwSvVbc_0Qkm093APfIHXaui-uy0ZhFtWS32KSzPubM-rQV-k5l24a2ExI9nSJ-rOBI6Uy1g06hFTvwxH58_GLA7pxwy8/s1600/LAST_AND_FIRST_MEN_00000.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uH0Ku3TPSDPBXmz39z2X4XUQCi31R2kNV1YvHTrhj4yhh8zNEBYs9YeY7xDDGi3q89dwDLUFEHtdFt7u6vCgh2svRPkwSvVbc_0Qkm093APfIHXaui-uy0ZhFtWS32KSzPubM-rQV-k5l24a2ExI9nSJ-rOBI6Uy1g06hFTvwxH58_GLA7pxwy8/s1600/LAST_AND_FIRST_MEN_00000.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uH0Ku3TPSDPBXmz39z2X4XUQCi31R2kNV1YvHTrhj4yhh8zNEBYs9YeY7xDDGi3q89dwDLUFEHtdFt7u6vCgh2svRPkwSvVbc_0Qkm093APfIHXaui-uy0ZhFtWS32KSzPubM-rQV-k5l24a2ExI9nSJ-rOBI6Uy1g06hFTvwxH58_GLA7pxwy8/s1600/LAST_AND_FIRST_MEN_00000.jpeg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>
1930年の同名小説を、作曲家Jóhann Jóhannsson(ヨハン・ヨハンソン)さんが独自の視点で映像化した作品『LAST AND FIRST MEN』。邦題は『最後にして最初の人類』。今回はそんな映像作品のCDとBlu-rayのセットを購入。Blu-rayのリージョンはフリー。音声・字幕ともに英語のみ収録されている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcozdJYFB6p7JNvK9r9aMUiAsd-VSLl_xQLIVDLq28aAMyRbma-Mu4v1bXRWKyjC2owPT3agfbIhrQZ5e8CNlcjEpUtLts3KGEJmZy3Nj7k2J7nApUYryzdPDPvk69_HFqk53vFXq1I5snrqdiBrLPGfQy0tCA_MOJMyk--k54v3wwfMVMNSiTpl8/s1600/LAST_AND_FIRST_MEN_00001.jpeg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcozdJYFB6p7JNvK9r9aMUiAsd-VSLl_xQLIVDLq28aAMyRbma-Mu4v1bXRWKyjC2owPT3agfbIhrQZ5e8CNlcjEpUtLts3KGEJmZy3Nj7k2J7nApUYryzdPDPvk69_HFqk53vFXq1I5snrqdiBrLPGfQy0tCA_MOJMyk--k54v3wwfMVMNSiTpl8/s1600/LAST_AND_FIRST_MEN_00001.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcozdJYFB6p7JNvK9r9aMUiAsd-VSLl_xQLIVDLq28aAMyRbma-Mu4v1bXRWKyjC2owPT3agfbIhrQZ5e8CNlcjEpUtLts3KGEJmZy3Nj7k2J7nApUYryzdPDPvk69_HFqk53vFXq1I5snrqdiBrLPGfQy0tCA_MOJMyk--k54v3wwfMVMNSiTpl8/s1600/LAST_AND_FIRST_MEN_00001.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcozdJYFB6p7JNvK9r9aMUiAsd-VSLl_xQLIVDLq28aAMyRbma-Mu4v1bXRWKyjC2owPT3agfbIhrQZ5e8CNlcjEpUtLts3KGEJmZy3Nj7k2J7nApUYryzdPDPvk69_HFqk53vFXq1I5snrqdiBrLPGfQy0tCA_MOJMyk--k54v3wwfMVMNSiTpl8/s1600/LAST_AND_FIRST_MEN_00001.jpeg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>
Tilda Swinton(ティルダ・スウィントン)さんのナレーションと、旧ユーゴスラビアに在る戦争記念碑を16mmのフィルムカメラで撮(うつ)した黒白映像、そこにJóhann Jóhannssonさんの楽曲が重なり、どの時間ともどの場所とも解らないような不思議な映像作品となっている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhvB9mJ0RCyXP7j7oCq9Ja_97__MLeevRke4G4SbDwzB8bwr7RRlkG3lQNFWYysFr_Gz-z8QmsbFRQIRSr6Wn5XGs85RtI2_4RKTV2ipOPCi0QpvOHSCl_9b0KeX4gLFUwAdr2O2SzDPAtO4skC0ZKPm-yNzG_QSBR2hvN4JtICGcSbHujURrT9I/s1600/LAST_AND_FIRST_MEN_00002.jpeg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhvB9mJ0RCyXP7j7oCq9Ja_97__MLeevRke4G4SbDwzB8bwr7RRlkG3lQNFWYysFr_Gz-z8QmsbFRQIRSr6Wn5XGs85RtI2_4RKTV2ipOPCi0QpvOHSCl_9b0KeX4gLFUwAdr2O2SzDPAtO4skC0ZKPm-yNzG_QSBR2hvN4JtICGcSbHujURrT9I/s1600/LAST_AND_FIRST_MEN_00002.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhvB9mJ0RCyXP7j7oCq9Ja_97__MLeevRke4G4SbDwzB8bwr7RRlkG3lQNFWYysFr_Gz-z8QmsbFRQIRSr6Wn5XGs85RtI2_4RKTV2ipOPCi0QpvOHSCl_9b0KeX4gLFUwAdr2O2SzDPAtO4skC0ZKPm-yNzG_QSBR2hvN4JtICGcSbHujURrT9I/s1600/LAST_AND_FIRST_MEN_00002.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmhvB9mJ0RCyXP7j7oCq9Ja_97__MLeevRke4G4SbDwzB8bwr7RRlkG3lQNFWYysFr_Gz-z8QmsbFRQIRSr6Wn5XGs85RtI2_4RKTV2ipOPCi0QpvOHSCl_9b0KeX4gLFUwAdr2O2SzDPAtO4skC0ZKPm-yNzG_QSBR2hvN4JtICGcSbHujURrT9I/s1600/LAST_AND_FIRST_MEN_00002.jpeg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>
パッケージを開くと、映像に登場した赤い丸。受信機の画面なのか、星を見ているのか、最後にして最初の人類そのものなのか、色々な想像が掻き立てられる。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24PpzEbj0oV6FTZgzfhOBnY-ZTC3h9agWmIeMsh4T9c9NHDlY8Qrsw0kk12G-zalLHPhgv2meATLgx9-5EaLK_eCr4UVe7wQgw9_207SYiD-57ztcMub3KRGnDVgwQRLzJ9e2m_J6vqMUR2O_HyNZR3v_q8GOh5Dkv8yAIYhC5D4mbxh_sOFk0nc/s1600/LAST_AND_FIRST_MEN_00003.jpeg" imageanchor="1">
<img alt="" data-original-height="1120" data-original-width="2450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24PpzEbj0oV6FTZgzfhOBnY-ZTC3h9agWmIeMsh4T9c9NHDlY8Qrsw0kk12G-zalLHPhgv2meATLgx9-5EaLK_eCr4UVe7wQgw9_207SYiD-57ztcMub3KRGnDVgwQRLzJ9e2m_J6vqMUR2O_HyNZR3v_q8GOh5Dkv8yAIYhC5D4mbxh_sOFk0nc/s1600/LAST_AND_FIRST_MEN_00003.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24PpzEbj0oV6FTZgzfhOBnY-ZTC3h9agWmIeMsh4T9c9NHDlY8Qrsw0kk12G-zalLHPhgv2meATLgx9-5EaLK_eCr4UVe7wQgw9_207SYiD-57ztcMub3KRGnDVgwQRLzJ9e2m_J6vqMUR2O_HyNZR3v_q8GOh5Dkv8yAIYhC5D4mbxh_sOFk0nc/s1600/LAST_AND_FIRST_MEN_00003.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24PpzEbj0oV6FTZgzfhOBnY-ZTC3h9agWmIeMsh4T9c9NHDlY8Qrsw0kk12G-zalLHPhgv2meATLgx9-5EaLK_eCr4UVe7wQgw9_207SYiD-57ztcMub3KRGnDVgwQRLzJ9e2m_J6vqMUR2O_HyNZR3v_q8GOh5Dkv8yAIYhC5D4mbxh_sOFk0nc/s1600/LAST_AND_FIRST_MEN_00003.jpeg=w1640 2x" width="820" height="375">
</a>
</figure>
<p>
真ん中に挟まっていたブックレットを開くとCDの楽曲リスト、制作ノート、写真、映像作品に関わった方々のクレジットなどが記されていた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_5wjzDBg4BVr84F9R3YMRNYjVGAD6Fuk-jNgwJcfeoUeaLwlRVbMViThR099zyYZdt0HWwCoggH-ZBVeSWiGhl8kc5fqcOIsFJQmABEssDxUebEKFdgg577rufJDNFZuG50Jkq3gZsdZ8pdUPM4uxCc12t7HSKZBbAC-b67_QWXdQfPCt1hE6hs/s1600/LAST_AND_FIRST_MEN_00004.jpeg" imageanchor="1">
<img alt="" data-original-height="1120" data-original-width="2450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_5wjzDBg4BVr84F9R3YMRNYjVGAD6Fuk-jNgwJcfeoUeaLwlRVbMViThR099zyYZdt0HWwCoggH-ZBVeSWiGhl8kc5fqcOIsFJQmABEssDxUebEKFdgg577rufJDNFZuG50Jkq3gZsdZ8pdUPM4uxCc12t7HSKZBbAC-b67_QWXdQfPCt1hE6hs/s1600/LAST_AND_FIRST_MEN_00004.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_5wjzDBg4BVr84F9R3YMRNYjVGAD6Fuk-jNgwJcfeoUeaLwlRVbMViThR099zyYZdt0HWwCoggH-ZBVeSWiGhl8kc5fqcOIsFJQmABEssDxUebEKFdgg577rufJDNFZuG50Jkq3gZsdZ8pdUPM4uxCc12t7HSKZBbAC-b67_QWXdQfPCt1hE6hs/s1600/LAST_AND_FIRST_MEN_00004.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_5wjzDBg4BVr84F9R3YMRNYjVGAD6Fuk-jNgwJcfeoUeaLwlRVbMViThR099zyYZdt0HWwCoggH-ZBVeSWiGhl8kc5fqcOIsFJQmABEssDxUebEKFdgg577rufJDNFZuG50Jkq3gZsdZ8pdUPM4uxCc12t7HSKZBbAC-b67_QWXdQfPCt1hE6hs/s1600/LAST_AND_FIRST_MEN_00004.jpeg=w1640 2x" width="820" height="375">
</a>
</figure>
<p>
ブックレット裏にはJóhann Jóhannssonさんのポートレイト写真が。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgsvoRKORR8OR_s97vg_IYeapHLAys9TMiP3Qi5EyAdvUYhv7CbCzC2zoea-Tt7cPxl4EParyQft7cVT09ijsGXJ5ANBRRMuOJ7ePKAtPZGumKFAYmpKeoPDyEF8BTjh-Q45hXlHEyJbCSfJ1LF1TAB_PXyHEh5EGIB0BnreS6F5bvPq4YxEunTk/s1600/LAST_AND_FIRST_MEN_00005.jpeg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgsvoRKORR8OR_s97vg_IYeapHLAys9TMiP3Qi5EyAdvUYhv7CbCzC2zoea-Tt7cPxl4EParyQft7cVT09ijsGXJ5ANBRRMuOJ7ePKAtPZGumKFAYmpKeoPDyEF8BTjh-Q45hXlHEyJbCSfJ1LF1TAB_PXyHEh5EGIB0BnreS6F5bvPq4YxEunTk/s1600/LAST_AND_FIRST_MEN_00005.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgsvoRKORR8OR_s97vg_IYeapHLAys9TMiP3Qi5EyAdvUYhv7CbCzC2zoea-Tt7cPxl4EParyQft7cVT09ijsGXJ5ANBRRMuOJ7ePKAtPZGumKFAYmpKeoPDyEF8BTjh-Q45hXlHEyJbCSfJ1LF1TAB_PXyHEh5EGIB0BnreS6F5bvPq4YxEunTk/s1600/LAST_AND_FIRST_MEN_00005.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfgsvoRKORR8OR_s97vg_IYeapHLAys9TMiP3Qi5EyAdvUYhv7CbCzC2zoea-Tt7cPxl4EParyQft7cVT09ijsGXJ5ANBRRMuOJ7ePKAtPZGumKFAYmpKeoPDyEF8BTjh-Q45hXlHEyJbCSfJ1LF1TAB_PXyHEh5EGIB0BnreS6F5bvPq4YxEunTk/s1600/LAST_AND_FIRST_MEN_00005.jpeg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>
ふと、人は何のために生きているのかを考える。この作品はそんな思い/想いの延長線に感じた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF7iUUfaX11yYbhyE2JMZpPDpirxYMB0f3WgWlUlBaw0a2HIVyptB-Dch4p8yN7HFQ-66kb-I9L8IOdwRAWVP_tNt3AIGzILS_HmR6fu21N7aekjTvuLbx0lC2QgNHk13nNNcRDV6dLsmUWMJ_0NhSuZVQ9TJBT5HX1aZETfr95RHDEbcQ9wO-54/s1600/LAST_AND_FIRST_MEN_00006.jpeg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF7iUUfaX11yYbhyE2JMZpPDpirxYMB0f3WgWlUlBaw0a2HIVyptB-Dch4p8yN7HFQ-66kb-I9L8IOdwRAWVP_tNt3AIGzILS_HmR6fu21N7aekjTvuLbx0lC2QgNHk13nNNcRDV6dLsmUWMJ_0NhSuZVQ9TJBT5HX1aZETfr95RHDEbcQ9wO-54/s1600/LAST_AND_FIRST_MEN_00006.jpeg=w820" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF7iUUfaX11yYbhyE2JMZpPDpirxYMB0f3WgWlUlBaw0a2HIVyptB-Dch4p8yN7HFQ-66kb-I9L8IOdwRAWVP_tNt3AIGzILS_HmR6fu21N7aekjTvuLbx0lC2QgNHk13nNNcRDV6dLsmUWMJ_0NhSuZVQ9TJBT5HX1aZETfr95RHDEbcQ9wO-54/s1600/LAST_AND_FIRST_MEN_00006.jpeg=w820 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF7iUUfaX11yYbhyE2JMZpPDpirxYMB0f3WgWlUlBaw0a2HIVyptB-Dch4p8yN7HFQ-66kb-I9L8IOdwRAWVP_tNt3AIGzILS_HmR6fu21N7aekjTvuLbx0lC2QgNHk13nNNcRDV6dLsmUWMJ_0NhSuZVQ9TJBT5HX1aZETfr95RHDEbcQ9wO-54/s1600/LAST_AND_FIRST_MEN_00006.jpeg=w1640 2x" width="820" height="547">
</a>
</figure>
<p>
こちらの作品はAmazon.co.jpからも購入できます(<a href="https://www.amazon.co.jp/gp/product/B083Z8WSWW?ie=UTF8&psc=1&linkCode=ll1&tag=see06-22&linkId=6da272b6fc1d1bda49b5b910d645d942&language=ja_JP&ref_=as_li_ss_tl" target="_blank">Amazonの商品ページ; アフィリエイトリンク</a>)。
</p>
<p>
<a class="series-link" href="https://www.deutschegrammophon.com/en/catalogue/products/last-and-first-men-johannsson-11130" target="_blank" rel="noopener noreferrer">Product Family | LAST AND FIRST MEN Jóhannsson</a>
</p>
<hr>
<p>
備忘録: Jóhann Jóhannssonさんの“ó”はアキュート・アクセントの「オー」。macOSでは<kbd>o</kbd>長押しからの<kbd>4</kbd>、あるいは<kbd>Option</kbd>+<kbd>e</kbd>に次いで<kbd>o</kbd>で入力できる。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-37551627668443536002023-03-28T11:05:00.001+09:002023-03-28T11:05:02.612+09:00PythonでXMLをパースする<h2 id="index">目次</h2>
<ul>
<li><a href="#environment">環境</a></li>
<li><a href="#xmltodict">XMLtoDictライブラリを使う方法</a></li>
<ul>
<li><a href="#xmltodict-samples">サンプルコード</a></li>
<li><a href="#unparse">DictionaryをXMLへ</a></li>
</ul>
<li><a href="#xml-etree">標準ライブラリを使う方法</a></li>
<ul>
<li><a href="#elementtree-and-element-type">ElementTreeとElement型</a></li>
<li><a href="#parse-methods">よく使うパースメソッドたち</a></li>
<li><a href="#xml-etree-samples">サンプルコード</a></li>
<li><a href="#element-methods">Element型のプロパティやメソッドたち</a></li>
<li><a href="#edit-elements">Element型を編集する</a></li>
<li><a href="#element-exists">Element要素の有無</a></li>
</ul>
</ul>
<hr />
<h2 id="environment">環境</h2>
<ul>
<li>Python 3.11.2</li>
<li>macOS Ventura 13.2.1</li>
</ul>
<div class="ps">
<var class="warning">注意</var>: この記録ではPython標準ライブラリxmlやXPathを使ったスクレイピングをご紹介していますが、悪意を持って加工されたXMLデータに対して脆弱であることが確認されています。信頼の置けないXMLデータを扱う場合や、プロダクトユースのコードを書く場合など、ある程度のセキュリティ水準を満たす必要がある場合は標準XMLライブラリの代替である(脆弱性対応された同等のメソッド類が用意されているライブラリ)<a href="https://github.com/tiran/defusedxml" target="_blank"><strong>defusedxml</strong></a>を利用する、バリデーション(検証)を噛ませる、そもそも脆弱な機能の利用を避けるなど、各自工夫ください。
</div>
<h3 id="xmltodict">XMLtoDictライブラリを使う方法</h3>
<div class="desc">
<p>
XMLを読み込んでPythonのDictionary型へ変換してくれる便利なライブラリ(<a href="https://github.com/martinblech/xmltodict" target="_blank">Githubページ</a>)。pipから簡単にインストールできる。
</p>
<code class="shell">
pip install xmltodict
</code>
<h4 id="xmltodict-samples">サンプルコード</h4>
<h5 class="code-title python">XMLtoDictのparse()</h5>
<code class="python">
<pre>import xmltodict
xml = '''<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>'''
root = xmltodict.parse(xml)
first_country = root['data']['country'][0]
print(first_country['@name']) # Liechtenstein
print(first_country['year']) # 2008</pre>
</code>
<p>
例ではXML文字列を<strong>parse()</strong>メソッドに渡しているが、ファイルパスでも良い。するともうDictionary型(辞書型)が返ってくるので、XML構造をDictionaryとして扱うことが出来る。ちなみに属性値はインデックスの頭に"@"をつけることで指定できる。
</p>
<h4 id="unparse">DictionaryをXMLへ</h4>
<p>
XMLtoDictの良い点はDictionary型とXMLが簡単に相互変換できること。
</p>
<h5 class="code-title python">Dictionary型からXMLへ戻す</h5>
<code class="python">
<pre>print(xmltodict.unparse(root, pretty=True)</pre>
</code>
<p>
これでXMLとして出力(<a href="https://docs.python.org/3/library/functions.html#print" target="_blank">print</a>)される。引数としてpretty=Trueも一緒に渡すことできれいにフォーマットされたXMLを受け取ることが出来る。デフォルトはFalse。
</p>
</div>
<h3 id="xml-etree">標準ライブラリを使う方法</h3>
<div class="desc">
<p>
Python標準ライブラリのAPI“<strong>xml.etree.ElementTree</strong>”(<a href="https://docs.python.org/3/library/xml.etree.elementtree.html" target="_blank">公式ドキュメント</a>)。簡易的な<a href="https://developer.mozilla.org/en-US/docs/Web/XPath" target="_blank">XPath</a>(HTMLで言うCSSセレクタ)も使えるので簡単なXML解析/スクレイピングにちょうどよい。
</p>
<h4 id="elementtree-and-element-type">ElementTreeとElement型</h4>
<p>
このAPIには<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree" target="_blank"><strong>ElementTree</strong></a>型と<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element" target="_blank"><strong>Element</strong></a>型がある。ElementTreeは“XML構造全体”を持った型で、これには階層構造となったXML要素も含んでいる。このXMLの“要素”情報自体をこのAPIではElement型と呼ぶ。
</p>
<h4 id="parse-methods">よく使うパースメソッドたち</h4>
<ul>
<li>ファイルを読み込む<strong>parse()</strong>メソッド → ElementTree型を返す</li>
<li>文字列を読み込める<strong>stringfrom()</strong>メソッド → Element型を返す</li>
</ul>
<p>
ファイルパスを文字列として渡すことで、そのXMLファイルをElementTree型として返してくれるメソッド
<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.parse" target="_blank"><strong>parse()</strong></a>、XML文字列を渡すとElement型として返してくれるメソッド<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.fromstring" target="_blank"><strong>fromstring()</strong></a>の2種類をご紹介。
</p>
<h4 id="xml-etree-samples">サンプルコード</h4>
<h5 class="code-title python">parse()メソッド</h5>
<code class="python">
<pre># sample - from XML files
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml') # return ElementTree
root = tree.getroot() # return Element
print(root.tag) # "data"</pre>
</code>
<h5 class="code-title python">fromstring()メソッド</h5>
<code class="python">
<pre># sample.py - from String variables
import xml.etree.ElementTree as ET
xml = '''<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>'''
root = ET.fromstring(xml) # return Element
print(root.tag) # "data"</pre>
</code>
<h4 id="element-methods">Element型のプロパティやメソッドたち</h4>
<p>
ファイルから読み込む場合、返ってきたElementTree型に<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.getroot" target="_blank"><strong>getroot()</strong></a>することでElement型のルート要素(例では<var><data></var>)を取り出せる。
</p>
<p>
<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.tag" target="_blank"><strong>.tag</strong></a>プロパティで要素のタグ名を、<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.text" target="_blank"><strong>.text</strong></a>で要素内の文字列を抽出できる。<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.attrib" target="_blank"><strong>.attrib</strong></a>プロパティにはDictionary型で属性値(例では{'name': 'Liechtenstein'}など)が入っている。
</p>
<p>
<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.iter" target="_blank"><strong>iter()</strong></a>メソッドを使うことで要素を順番に探っていくことができる。for inとの組み合わせはよく使う。
</p>
<h5 class="code-title python">iter()メソッドでイテレート</h5>
<code class="python">
<pre>for year in root.iter('year'):
print(year.text) # "2008", "2011", "2011"</pre>
</code>
<p>
<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.find" target="_blank"><strong>find()</strong></a>メソッド、<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findall" target="_blank"><strong>findall()</strong></a>メソッドを使うことで条件に一致する子要素を見つけ出すことができる。find()メソッドは条件に一致した“最初”の要素を返し、findall()は一致したすべての要素をList型(リスト型)として返してくれる。条件として渡す文字列は<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#supported-xpath-syntax" target="_blank">簡易的なXPath</a>となる。
</p>
<h5 class="code-title python">XPathによる要素の取得</h5>
<code class="python">
<pre>first_country = root.find('country')
print(first_country.get('name')) # "Liechtenstein"
print(first_country.find('year').text) # "2008"
neighbors = root.findall('.//neighbor')
print(neighbors[0].get('direction')) # "E"
first_west = root.find('.//*[@direction="W"]')
print(first_west.get('name')) # "Switzerland"
</pre>
</code>
<p>
<strong>get()</strong>メソッドで属性の値のみを取得できる。なお、使えるXPathの記法は通常のものと若干異なる点に注意。詳しくは<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#supported-xpath-syntax" target="_blank">公式ドキュメント</a>まで。
</p>
<h4 id="edit-elements">Element型を編集する</h4>
<p>
Element型を編集することも、もちろんできる。<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.text" target="_blank"><strong>.text</strong></a>プロパティに文字列を代入することで要素文字列を上書き出来たり、<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.set" target="_blank"><strong>.set()</strong></a>メソッドを使えば要素の属性値を編集することも出来る。
</p>
<h5 class="code-title python">要素の編集/変更</h5>
<code class="python">
<pre>first_year = root.find('.//year')
first_year.text = '2009' # "2008" -> "2009"
first_year.set('modified', 'yes') # adding "modified" attribute
print(first_year.text) # "2009"
print(first_year.attrib) # {'modified': 'yes'}</pre>
</code>
<p>
もちろん、ElementTreeやElementをXMLへ戻すことも出来る。文字列として戻す場合は<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring" target="_blank"><strong>tostring()</strong></a>メソッド、XMLファイルとして書き出す場合は<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.write" target="_blank"><strong>write()</strong></a>メソッドが使える。tostring()はElement型のみ、write()メソッドはElementTree型のみ対応している。これはパースするときと同じ。
</p>
<h5 class="code-title python">ElementTree/Element型からXMLへ戻す</h5>
<code class="python">
<pre>xml_str = ET.tostring(root, encoding='utf-8').decode(encoding='utf-8') # return XML as String
ET.ElementTree(root).write('country_data.xml', encoding='utf-8', xml_declaration=True)) # write to file</pre>
</code>
<p>
.tostring()や.write()のデフォルトエンコードは"US-ASCII"なので例のように"UTF-8"や"Unicode"などを指定したい場合は例のようにする。ちなみに、エンコーディングが"Unicode"ならString(文字列型)で返ってくるが、それ以外(ASCIIやUTF-8も含まれる)だとBytes(バイト型)で返ってくるので、例のように<a href="https://docs.python.org/3/library/stdtypes.html?highlight=decode#bytes.decode" target="_blank"><strong>.decode()</strong></a>でString型へデコードする必要がある。.write()のxml_declaration引数は<a href="https://developer.mozilla.org/en-US/docs/Web/XML/XML_introduction#xml_declaration" target="_blank">XML宣言</a>(XMLファイル最初の行にある<?xml version='1.0'…)を書き出すか否かを選べるが、デフォルトだとFalse(書き出さない)なので注意が必要。
</p>
<h4 id="element-exists">Element要素の有無</h4>
<p>
せっかくなので最後に、Element型を扱う上での注意点を。それは要素が存在するか否かif文などでチェックするときの条件文の書き方。
</p>
<h5 class="code-title python">存在する要素かチェックする方法</h5>
<code>
<pre>first_year = root.find('.//year')
if not first_year:
print('`first_year` does not exist OR `first_year` has no children!')
if first_year is None:
print('`first_year` does not exist.')
if len(first_year):
print('`first_year` has children.')</pre>
</code>
<p>
公式ドキュメントにも注意書きがあるように、<a href="https://docs.python.org/3/reference/expressions.html#not" target="_blank"><strong>not first_year</strong></a>でチェックすると、first_yearが存在しない<strong>あるいは</strong>子要素を持っていない、どちらでもTrueとなってしまう。もし、first_yearが存在しないことだけをチェックしたいならば<strong>first_year is None</strong>としよう。同様に、子要素の有無をチェックする場合は<a href="https://docs.python.org/3/library/functions.html?highlight=len#len" target="_blank"><strong>len()</strong></a>を使うと良い。len(first_year)とするとその要素の持つ子要素の数がInt(整数型)で返ってくる。
</p>
</div>
<p>
最後に、架空の天気予報APIから返ってくるXMLデータをパースする、XMLtoDictと<a href="https://requests.readthedocs.io/en/latest/" target="_blank">Requests</a>を組み合わせた簡単なサンプルコードを載せてお別れを。
</p>
<h4 class="code-title python">明日の天気</h4>
<code class="python">
<pre>import requests
import xmltodict
response = requests.get('https://weather.api', params={"location": "Land-of-Ooo"})
data = xmltodict.parse(response.content)
unit = data["data"]["unit"]
print(unit["temperature"]) # "Celsius"
print(unit["speed"]) # "Meter-per-second"
tomorrow = data["data"]["weather"]["tomorrow"]
print(tomorrow["condition"]) # "Sunny"
print(tomorrow["feelslike"]) # "24.5"
print(tomorrow["wind"]["speed"]) # "2.1"
print(tomorrow["wind"]["direction"]) # "North-east"
print(xmltodict.unparse(data, pretty=True))
# <?xml version='1.0' encoding='utf-8'?>
# <data>
# <unit>
# <temperature>Celsius</temperature>
# <speed>Meter-per-second</speed>
# ...
# </unit>
# <weather>
# <yesterday date="2023-03-27">...</yesterday>
# <today date="2023-03-28">...</today>
# <tomorrow date="2023-03-29">
# <condition>Sunny</condition>
# <feelslike>24.5</feelslike>
# <wind>
# <speed>2.1</speed>
# <direction>North-east</direction>
# </wind>
# ...
# </tomorrow>
# </weather>
# </data></pre>
</code>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-11097884448633372672023-02-10T11:17:00.003+09:002023-02-10T11:17:54.773+09:00minilogue Software Updaterのエラーとその対処<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg" imageanchor="1">
<img alt="" data-original-height="1440" data-original-width="1920" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg=w1440 2x" width="720" height="540">
</a>
</figure>
<p>
2020年ごろ購入したKorgのminilogue。先日、購入以来はじめてのファームウェアアップデートをした。そこでエラーに遭遇。起動せず、アップデートモードでの起動も出来ず。カスタマーセンターの方のご協力で無事に解決したまでを記す。
</p>
<a class="series-link" href="https://www.korg.com/jp/support/download/product/0/544/" target="_blank" rel="noopener noreferrer">ダウンロード | minilogue | KORG (Japan)</a>
<p>
minilogueダウンロードページへの直リンクを貼ってみた。macOS版のバージョン2.01をダウンロードしてアップデートを行った。アップデート時の環境はmacOS Ventura 13.1であった。ダウンロードしたアップデータをマウント。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWI2m0jVFp5q_MzH5H7wlTVgCoxcKGikBI7A3c6WvKoF_RULpoq-2B-g6a1II3IGXFvkJWCHzY-4-OkNKU5mjylH9hjOQUHJGGv2H0GHPtwRbUFH8XTDzL99BWQABzo-GiOb9fAFqpukVXGMC6QMQ5YyTEbVMwn1O93cfeTePXGeIVOv3rkzc5ZKQ/s1600/01%20minilogue%20Updater%200201.png" imageanchor="1">
<img alt="" data-original-height="1084" data-original-width="1384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWI2m0jVFp5q_MzH5H7wlTVgCoxcKGikBI7A3c6WvKoF_RULpoq-2B-g6a1II3IGXFvkJWCHzY-4-OkNKU5mjylH9hjOQUHJGGv2H0GHPtwRbUFH8XTDzL99BWQABzo-GiOb9fAFqpukVXGMC6QMQ5YyTEbVMwn1O93cfeTePXGeIVOv3rkzc5ZKQ/s1600/01%20minilogue%20Updater%200201.png=w720" width="720" height="564">
</a>
<figcaption>minilogue Updater 0201をマウントしたところ</figcaption>
</figure>
<p>
アップデートガイド(minilogue_Mac_JP.pdfなど)は一読。OSバージョンはOK。KORG USB-MIDI Driverは<a href="https://www.korg.com/jp/news/2019/112902/" target="_blank" rel="noopener noreferrer">macOS Catalina以降不要との記事が公式発表</a>されており、記事中のOS対応表からも不要であることが判ったためインストールはせず。ほか、インストール中は他のアプリケーションを終了させること、アップデート後のバージョンダウンはしないことなどを確認。アップデート方法はこのガイドの通りに行った。
</p>
<p>
minilogueとパソコンをUSB-B to Aケーブルで接続。minilogueの[6]と[8]ボタン(DelayとSideChainボタン)を同時に押しながら電源ボタンを長押ししてアップデートモードで起動。ディスプレイにKORG minilogue Version Up Modeの表示を確認。パソコンで「minilogue_Updater_0201_mac.dmg」を開く。現在のファームウェアバージョンが表示されていればOK。もしなければUSBケーブルを確認(交換がおすすめ)、Detectボタンでminilogueを再認識させる。
</p>
<p>
パソコン上にminilogueのバージョン番号も表示されておりUpdateボタンもクリック出来る状態であるので、クリックしてアップデート実行。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjniEBEojyIWHNl6l0kasBgAzsYbcZE7aOB_zewzyrTVl3eWS-MpvDdFG3iqIy0Ib6UaBKeP7skz9GVzn_mqyRrz-TU5udNIH40nuxreN4YCF-modoyC_rXluocfKsXhdMJEfPCwAt4SVQzhiHaDhR7XySVf91DHdnGRNxSbBn_t2e8toiOIVjIRQM/s1600/02%20Updating.png" imageanchor="1">
<img alt="" data-original-height="722" data-original-width="1232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjniEBEojyIWHNl6l0kasBgAzsYbcZE7aOB_zewzyrTVl3eWS-MpvDdFG3iqIy0Ib6UaBKeP7skz9GVzn_mqyRrz-TU5udNIH40nuxreN4YCF-modoyC_rXluocfKsXhdMJEfPCwAt4SVQzhiHaDhR7XySVf91DHdnGRNxSbBn_t2e8toiOIVjIRQM/s1600/02%20Updating.png=w720" width="720" height="422">
</a>
<figcaption>7割ほどまでアップデートは進んだ</figcaption>
</figure>
<p>
悲劇はここではじまった。プログレスバーが7割行ったあたりで次のようなエラーが表示されたのだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDJOsfTnGDuI9SR8EiHiV0QyrwggYSxHhpQ-619opYpq5kEBOr8SRn8cOWqYgovCSlJaYCfRRtE1iBV6nq2xJ5ZQAI5mjgT-G99-5ZGevOPsv4Rs0T7lE80nzkBFKfmadBDxh9XrdhrI8p43DqyvTFs43YobYnh5HbqFIGgTsxTWB6JpU6-LlTr4/s1600/03%20Error%20message.png" imageanchor="1">
<img alt="" data-original-height="634" data-original-width="744" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDJOsfTnGDuI9SR8EiHiV0QyrwggYSxHhpQ-619opYpq5kEBOr8SRn8cOWqYgovCSlJaYCfRRtE1iBV6nq2xJ5ZQAI5mjgT-G99-5ZGevOPsv4Rs0T7lE80nzkBFKfmadBDxh9XrdhrI8p43DqyvTFs43YobYnh5HbqFIGgTsxTWB6JpU6-LlTr4/s1600/03%20Error%20message.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDJOsfTnGDuI9SR8EiHiV0QyrwggYSxHhpQ-619opYpq5kEBOr8SRn8cOWqYgovCSlJaYCfRRtE1iBV6nq2xJ5ZQAI5mjgT-G99-5ZGevOPsv4Rs0T7lE80nzkBFKfmadBDxh9XrdhrI8p43DqyvTFs43YobYnh5HbqFIGgTsxTWB6JpU6-LlTr4/s1600/03%20Error%20message.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDJOsfTnGDuI9SR8EiHiV0QyrwggYSxHhpQ-619opYpq5kEBOr8SRn8cOWqYgovCSlJaYCfRRtE1iBV6nq2xJ5ZQAI5mjgT-G99-5ZGevOPsv4Rs0T7lE80nzkBFKfmadBDxh9XrdhrI8p43DqyvTFs43YobYnh5HbqFIGgTsxTWB6JpU6-LlTr4/s1600/03%20Error%20message.png 2x" width="720" height="614">
</a>
<figcaption>エラー「Sorry, Please Retry. (-10000)」</figcaption>
</figure>
<p>
エラーコード<var>-10000</var>。Please Retryと言われたらそれは再試行しちゃう。だが、minilogue Software Updater曰くすでにminilogueは最新のバージョンにアップデート済みと認識している模様。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUdNULyhfUL-hFZm8BmhwKdBq6EwrqK4Di0K8O-Mna6eFwChV9glCd25ztCTi68g34J8N67q_fId-1RgajzPw9mKZKx_yJMTkmxTNOYnvjF_tqd5L8l3b4FE_uJvYne1H2K0YmCZ3FKPUxoH8np0qhscQfItXOxLGvR-2X1fRBcXlOOj06qJgB08/s1600/04%20Already%20updated.png" imageanchor="1">
<img alt="" data-original-height="722" data-original-width="1232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUdNULyhfUL-hFZm8BmhwKdBq6EwrqK4Di0K8O-Mna6eFwChV9glCd25ztCTi68g34J8N67q_fId-1RgajzPw9mKZKx_yJMTkmxTNOYnvjF_tqd5L8l3b4FE_uJvYne1H2K0YmCZ3FKPUxoH8np0qhscQfItXOxLGvR-2X1fRBcXlOOj06qJgB08/s1600/04%20Already%20updated.png=w720" width="720" height="422">
</a>
<figcaption>2.01へアップデートされていると誤認</figcaption>
</figure>
<p>
ここで詰まった。Updateも出来ず、しかしminilogueのディスプレイにはアップデート完了を示す「Complete!」表示も無く、minilogue側はアップデート中だと思っている様子。禁断の一手。minilogueさん、おやすみなさい、長押しで電源を切る。minilogue側が気づいていないだけでアップデートは完了しているのかも、ならば再起動だ、ということでminilogueの電源を切ってしまう。当然再起動されず。アップデートモードでの起動も出来ず。行き詰まる…。
</p>
<p>
さて結論を先に記す。<strong>Force Update Mode</strong>を使うのだ。minilogue Software Updaterが「minilogueは最新バージョンだよ」と認識していても、メニューバーのOptions → Force Update ModeをクリックするとUpdateボタンをクリック出来るようになる。このモードでアップデートが成功するまで再試行。わたしの場合おそらくUSBケーブルの接続があまかったのだろうか、3回ほど試行してようやっとアップデートが完了、minilogueディスプレイに「Complete!」が表示された。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn37o-d-eoryE6taJROpx9WvdHgXo0qhlXTCLtCVf7S9AlZHtiUITmYx26e-YqAaveuQDKeuUqMZQlz3qMDRPUo_-XbbnsfFomhBagHlcu8C1w1IfiKAZ1CB6DUrl_1fIBcfjKyA-G-4TYUKE74A14eVsepfqoo6kovHt03XC_XFwh7tEEiW-wMHs/s1600/05%20Force%20Update%20Mode.png" imageanchor="1">
<img alt="" data-original-height="354" data-original-width="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn37o-d-eoryE6taJROpx9WvdHgXo0qhlXTCLtCVf7S9AlZHtiUITmYx26e-YqAaveuQDKeuUqMZQlz3qMDRPUo_-XbbnsfFomhBagHlcu8C1w1IfiKAZ1CB6DUrl_1fIBcfjKyA-G-4TYUKE74A14eVsepfqoo6kovHt03XC_XFwh7tEEiW-wMHs/s1600/05%20Force%20Update%20Mode.png=w720" width="720" height="527">
</a>
<figcaption>Force Update Modeのメニュー項目</figcaption>
</figure>
<p>
さて、起動できなくなったminilogueさん。カスタマーセンターの方にご相談させてもらったところ所見修理が必要とのことだった。しかし、「しばらく電源から切り離してもう一度起動を試みてみては?」とアドバイスをもらったので、minilogueの配線をACアダプタ含めすべて外し、丸一日放置。もう一度USBケーブル(パソコンへ)とACアダプタを接続し[6]と[8]を押しながら起動させたところUpdate Modeで立ち上がってくれたのだ!事前にカスタマーセンターの方からForce Update Modeについて伺っていたので試みたところ、無事アップデートに成功したという話。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg" imageanchor="1">
<img alt="" data-original-height="1440" data-original-width="1920" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ4QPrjnEro4Lhfw5tYEnQFNCHM5UwDhaNFAVtrpNw2pibZGIwoSz6uYz8h_S3-F6zTk75u2HQNaVQaE3Xa2XhOMjucqdOyFAt_wVFuNMVyzTPU7PGoRJUy-SEjdhAuaWA1dQpP_5JJ6VMpSS10oTIObctdHnBnVQeE0Cs2GZu0r4so71ULTtthp0/s1600/OGP_image.jpg=w1440 2x" width="720" height="540">
</a>
</figure>
<p>
アップデート後にminilogueを再起動させるときはだいぶドキドキしたものの、当然のように起動してくれ、パネルアップデート、次いでボイスアップデートも無事済んで、いまではminilogue Sound Librarianで音色も色々試せる日々。ありがとうカスタマーセンター、ありがとうminilogue…。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-43545373480374565842023-01-25T18:30:00.002+09:002023-01-26T11:30:55.151+09:00WE ARE REWIND レビュー<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg=w1620 2x" width="810" height="540">
</a>
</figure>
<div>
<a class="series-link" href="https://www.wearerewind.com" target="_blank" rel="noopener noreferrer">Audio Cassette Player | We Are Rewind</a>
</div>
<p>
2020年6月の中頃にローンチした<a href="https://www.kickstarter.com/projects/wearerewind/we-are-rewind" target="_blank" rel="noopener noreferrer" title="WE ARE REWIND by Romain Boudruche — Kickstarter">Kickstarterプロジェクト</a>『WE ARE REWIND』。80年代のノスタルジア=カセットテーププレイヤーを現代的に再解釈した製品だ。USB-C充電でき、Bluetoothにも対応している。けれどその機能は純粋にカセットテープの再生と録音だけだ。紆余曲折、2年以上の時を経てプロジェクトは実を結び、ついに昨年末は11月、わたしの手元にも届いた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXz9Rm46Dif53690wg1TITOZ0RX-Xvaix_QxYq6ePJeiTcpbFP9k-2ggqf4y4pSvZzxy6gwrIt6uPAqQVHtru5ixGCGTUQAN3WlG7n-Ck9iQpqPbUA_Xo_bFIsiJNHWLzIhChdvNehw6gyT1kC2tB9X4nCiAnrY2qxu5IY7GMKIhuDur-Bbq7Ny6I/s1600/IMG_4526.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXz9Rm46Dif53690wg1TITOZ0RX-Xvaix_QxYq6ePJeiTcpbFP9k-2ggqf4y4pSvZzxy6gwrIt6uPAqQVHtru5ixGCGTUQAN3WlG7n-Ck9iQpqPbUA_Xo_bFIsiJNHWLzIhChdvNehw6gyT1kC2tB9X4nCiAnrY2qxu5IY7GMKIhuDur-Bbq7Ny6I/s1600/IMG_4526.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXz9Rm46Dif53690wg1TITOZ0RX-Xvaix_QxYq6ePJeiTcpbFP9k-2ggqf4y4pSvZzxy6gwrIt6uPAqQVHtru5ixGCGTUQAN3WlG7n-Ck9iQpqPbUA_Xo_bFIsiJNHWLzIhChdvNehw6gyT1kC2tB9X4nCiAnrY2qxu5IY7GMKIhuDur-Bbq7Ny6I/s1600/IMG_4526.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXz9Rm46Dif53690wg1TITOZ0RX-Xvaix_QxYq6ePJeiTcpbFP9k-2ggqf4y4pSvZzxy6gwrIt6uPAqQVHtru5ixGCGTUQAN3WlG7n-Ck9iQpqPbUA_Xo_bFIsiJNHWLzIhChdvNehw6gyT1kC2tB9X4nCiAnrY2qxu5IY7GMKIhuDur-Bbq7Ny6I/s1600/IMG_4526.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>外箱</figcaption>
</figure>
<p>
かわいらしい箱。本体はSERGE(オレンジ)色を注文したのだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDErwZi7QFSyjCOEr4wuIH_zTDNY_qxvQbvqmuObfzbr6OenC_Wqr3pdLqp48qnwnqryA5CGNUiKvhUAJi4tBXcVemHvb4K-zfmI_rx9oUjBa4kOQKCl-QF7Ha17tG7A6BMj3HjGNXK4HuISBGHd7ENd-oXJKYxZc9hIWjXZqcTaXHZKwPADcnYeU/s1600/IMG_4529.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDErwZi7QFSyjCOEr4wuIH_zTDNY_qxvQbvqmuObfzbr6OenC_Wqr3pdLqp48qnwnqryA5CGNUiKvhUAJi4tBXcVemHvb4K-zfmI_rx9oUjBa4kOQKCl-QF7Ha17tG7A6BMj3HjGNXK4HuISBGHd7ENd-oXJKYxZc9hIWjXZqcTaXHZKwPADcnYeU/s1600/IMG_4529.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDErwZi7QFSyjCOEr4wuIH_zTDNY_qxvQbvqmuObfzbr6OenC_Wqr3pdLqp48qnwnqryA5CGNUiKvhUAJi4tBXcVemHvb4K-zfmI_rx9oUjBa4kOQKCl-QF7Ha17tG7A6BMj3HjGNXK4HuISBGHd7ENd-oXJKYxZc9hIWjXZqcTaXHZKwPADcnYeU/s1600/IMG_4529.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDErwZi7QFSyjCOEr4wuIH_zTDNY_qxvQbvqmuObfzbr6OenC_Wqr3pdLqp48qnwnqryA5CGNUiKvhUAJi4tBXcVemHvb4K-zfmI_rx9oUjBa4kOQKCl-QF7Ha17tG7A6BMj3HjGNXK4HuISBGHd7ENd-oXJKYxZc9hIWjXZqcTaXHZKwPADcnYeU/s1600/IMG_4529.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>外箱側面に機能紹介が</figcaption>
</figure>
<p>
ステレオサウンド、充電式バッテリー、Bluetooth接続、録音機能あり。モデルバージョンは「WE-001」シリーズの「W-JULY-2022」バージョンでした。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDCYj7VDWL0-5uKIGq8NdhPr5X_r1O2dvfTQGZJEpdIug0g0zh8yMzvIqKlgFV9bnPZlWcvFYia7KOjoT9D94lnj6yQ99vjGZgQTaCrgstSL1VS9U0SopeTvYDlpD8t_LmQiHGTaKQBX1Kkiww3hTN0Le_Lj46xbeaRkCXoI5go1nZ58YCF09TeMo/s1600/IMG_4530.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDCYj7VDWL0-5uKIGq8NdhPr5X_r1O2dvfTQGZJEpdIug0g0zh8yMzvIqKlgFV9bnPZlWcvFYia7KOjoT9D94lnj6yQ99vjGZgQTaCrgstSL1VS9U0SopeTvYDlpD8t_LmQiHGTaKQBX1Kkiww3hTN0Le_Lj46xbeaRkCXoI5go1nZ58YCF09TeMo/s1600/IMG_4530.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDCYj7VDWL0-5uKIGq8NdhPr5X_r1O2dvfTQGZJEpdIug0g0zh8yMzvIqKlgFV9bnPZlWcvFYia7KOjoT9D94lnj6yQ99vjGZgQTaCrgstSL1VS9U0SopeTvYDlpD8t_LmQiHGTaKQBX1Kkiww3hTN0Le_Lj46xbeaRkCXoI5go1nZ58YCF09TeMo/s1600/IMG_4530.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDCYj7VDWL0-5uKIGq8NdhPr5X_r1O2dvfTQGZJEpdIug0g0zh8yMzvIqKlgFV9bnPZlWcvFYia7KOjoT9D94lnj6yQ99vjGZgQTaCrgstSL1VS9U0SopeTvYDlpD8t_LmQiHGTaKQBX1Kkiww3hTN0Le_Lj46xbeaRkCXoI5go1nZ58YCF09TeMo/s1600/IMG_4530.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>開封すると説明書とえんぴつが</figcaption>
</figure>
<p>
開けましてこんにちは。鉛筆が入っている。なんでだろう。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU9r5A3BGi6fyj413omiCBn3U4A3-J6--zuQUXVFakKwbPTu9LyMlB7DLr-o6iVFw6LVfPwVL10F7a-TSmASvSCyqsBFl802hGcekTf4RpnM82ujvCbsJ4ijI0p3IoTjUFKpqtR81ULtNKUhGJp-VCE8rUI4rnAboRQ6tMwBoqxtfl-jawwhN6Am0/s1600/IMG_4532.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU9r5A3BGi6fyj413omiCBn3U4A3-J6--zuQUXVFakKwbPTu9LyMlB7DLr-o6iVFw6LVfPwVL10F7a-TSmASvSCyqsBFl802hGcekTf4RpnM82ujvCbsJ4ijI0p3IoTjUFKpqtR81ULtNKUhGJp-VCE8rUI4rnAboRQ6tMwBoqxtfl-jawwhN6Am0/s1600/IMG_4532.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU9r5A3BGi6fyj413omiCBn3U4A3-J6--zuQUXVFakKwbPTu9LyMlB7DLr-o6iVFw6LVfPwVL10F7a-TSmASvSCyqsBFl802hGcekTf4RpnM82ujvCbsJ4ijI0p3IoTjUFKpqtR81ULtNKUhGJp-VCE8rUI4rnAboRQ6tMwBoqxtfl-jawwhN6Am0/s1600/IMG_4532.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU9r5A3BGi6fyj413omiCBn3U4A3-J6--zuQUXVFakKwbPTu9LyMlB7DLr-o6iVFw6LVfPwVL10F7a-TSmASvSCyqsBFl802hGcekTf4RpnM82ujvCbsJ4ijI0p3IoTjUFKpqtR81ULtNKUhGJp-VCE8rUI4rnAboRQ6tMwBoqxtfl-jawwhN6Am0/s1600/IMG_4532.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>充電用USB-Cケーブルも付属</figcaption>
</figure>
<p>
付属品一覧: 本体、取扱説明書(英語・フランス語)、USB-A to C充電ケーブル、えんぴつ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Oz1siaHVUUZ0-EMkZWWecR5_hR2iAMepfLf-YK5mLqczAFx3j7p6iHkHuOaqqjdsHw9w3nFwWOFJDSa-mp9hxp2T99yw4iow7IV1xjqBdxlle10wONWIuGd5ppWgYmGhnC78DrCjERAKK_vgStL0oh-i45L6KxZ-V4sEvEnApYCgfJypF996PJU/s1600/IMG_4533.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Oz1siaHVUUZ0-EMkZWWecR5_hR2iAMepfLf-YK5mLqczAFx3j7p6iHkHuOaqqjdsHw9w3nFwWOFJDSa-mp9hxp2T99yw4iow7IV1xjqBdxlle10wONWIuGd5ppWgYmGhnC78DrCjERAKK_vgStL0oh-i45L6KxZ-V4sEvEnApYCgfJypF996PJU/s1600/IMG_4533.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Oz1siaHVUUZ0-EMkZWWecR5_hR2iAMepfLf-YK5mLqczAFx3j7p6iHkHuOaqqjdsHw9w3nFwWOFJDSa-mp9hxp2T99yw4iow7IV1xjqBdxlle10wONWIuGd5ppWgYmGhnC78DrCjERAKK_vgStL0oh-i45L6KxZ-V4sEvEnApYCgfJypF996PJU/s1600/IMG_4533.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Oz1siaHVUUZ0-EMkZWWecR5_hR2iAMepfLf-YK5mLqczAFx3j7p6iHkHuOaqqjdsHw9w3nFwWOFJDSa-mp9hxp2T99yw4iow7IV1xjqBdxlle10wONWIuGd5ppWgYmGhnC78DrCjERAKK_vgStL0oh-i45L6KxZ-V4sEvEnApYCgfJypF996PJU/s1600/IMG_4533.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>えんぴつの使い方</figcaption>
</figure>
<p>
取扱説明書を見て「あぁ!」と。えんぴつはテープを巻く時に使うんだ。ご無沙汰しておりましたテープさん。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD-N_sUWIk_bJBes8WFQM5yZp6OlX10DC-Xmb98W0FRgP5Nx2vH9yAdie3YzfE7GS6_wHAtzPo2OKrgtzl_oD5UYi133HcbyWLAdR3yUzkPb7V8LkP-NXaqC48kJAIiUrkAnVgMFg8S4lYEXF8MMMcS4Xep4DOjXuDloa-6dkH2FdGO6Vt_1LVfg8/s1600/IMG_4572.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>本体正面</figcaption>
</figure>
<p>
デザインよし、発色も良し。意外に重量あり、高級感あり。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtdbka00B2eQzaG5JXnfbqdLuAGdog8QgZxgLeFMrLGAEUPFMIH8eF-oAe6bMQAx3KCzcdA8DRFJ7obifabnSSXYQUn10FJZ1NS1UGeIJgNfiF11VfykEPBb46AuZopYqtC4kGs0yvWoUD-XpUj9PSLqDzMIhe8oPqQA7d-0bblK4P_ib_QhyYP0M/s1600/IMG_4574.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtdbka00B2eQzaG5JXnfbqdLuAGdog8QgZxgLeFMrLGAEUPFMIH8eF-oAe6bMQAx3KCzcdA8DRFJ7obifabnSSXYQUn10FJZ1NS1UGeIJgNfiF11VfykEPBb46AuZopYqtC4kGs0yvWoUD-XpUj9PSLqDzMIhe8oPqQA7d-0bblK4P_ib_QhyYP0M/s1600/IMG_4574.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtdbka00B2eQzaG5JXnfbqdLuAGdog8QgZxgLeFMrLGAEUPFMIH8eF-oAe6bMQAx3KCzcdA8DRFJ7obifabnSSXYQUn10FJZ1NS1UGeIJgNfiF11VfykEPBb46AuZopYqtC4kGs0yvWoUD-XpUj9PSLqDzMIhe8oPqQA7d-0bblK4P_ib_QhyYP0M/s1600/IMG_4574.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtdbka00B2eQzaG5JXnfbqdLuAGdog8QgZxgLeFMrLGAEUPFMIH8eF-oAe6bMQAx3KCzcdA8DRFJ7obifabnSSXYQUn10FJZ1NS1UGeIJgNfiF11VfykEPBb46AuZopYqtC4kGs0yvWoUD-XpUj9PSLqDzMIhe8oPqQA7d-0bblK4P_ib_QhyYP0M/s1600/IMG_4574.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>本体側面</figcaption>
</figure>
<p>
本体側面上から音量調整つまみ、ヘッドフォン端子(3.5mmステレオ)、録音用端子(3.5mmステレオ)、充電用USB-Cポート。さっそく充電する。バッテリーレベルランプが赤色に点灯。満充電されると消灯するらしい。ちなみに充電が必要になるとこのランプが点滅するらしい。5V、1.5A以上の充電器で充電しよう。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJJzqkNFrnJdXhx51K3tDFKMo7GDMXtRPNkc96FEx1uXJpkfRT6hEV3pJCGwEYziqtuitPhiTuPBM74ehucOiO0O7IVdsw-1XwEf3ViAIQnObWoeJHrfraArUZHFFza6xIJAMf_-jE8EaxD_de4NA1_WY-Z5pJAl9iGH02f_5riIcjSXIP7VJ7qs/s1600/IMG_4575.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJJzqkNFrnJdXhx51K3tDFKMo7GDMXtRPNkc96FEx1uXJpkfRT6hEV3pJCGwEYziqtuitPhiTuPBM74ehucOiO0O7IVdsw-1XwEf3ViAIQnObWoeJHrfraArUZHFFza6xIJAMf_-jE8EaxD_de4NA1_WY-Z5pJAl9iGH02f_5riIcjSXIP7VJ7qs/s1600/IMG_4575.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJJzqkNFrnJdXhx51K3tDFKMo7GDMXtRPNkc96FEx1uXJpkfRT6hEV3pJCGwEYziqtuitPhiTuPBM74ehucOiO0O7IVdsw-1XwEf3ViAIQnObWoeJHrfraArUZHFFza6xIJAMf_-jE8EaxD_de4NA1_WY-Z5pJAl9iGH02f_5riIcjSXIP7VJ7qs/s1600/IMG_4575.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJJzqkNFrnJdXhx51K3tDFKMo7GDMXtRPNkc96FEx1uXJpkfRT6hEV3pJCGwEYziqtuitPhiTuPBM74ehucOiO0O7IVdsw-1XwEf3ViAIQnObWoeJHrfraArUZHFFza6xIJAMf_-jE8EaxD_de4NA1_WY-Z5pJAl9iGH02f_5riIcjSXIP7VJ7qs/s1600/IMG_4575.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>本体底面</figcaption>
</figure>
<p>
認証マークや仕様などがプリントされている。そうだ…技適マーク無いんだ。ということで無線機能は使えず、Bluetoothは未使用。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0BV246XoyDo71x2snulujc2dQWebemzvgD_J3V7bOoHJkqIgDcDDKb7dTVGlS9NWW6_jXd_1iJYhQja8XvgsyCXcOEiLjxqrqxN41Gy6FQZRmgx-zkZJg470MHjF1OfQW-Y2_SJJyNSODbl6nnzFE89Wm7HhxMPGXfbTezrXrePKrzf2-oKjOxPo/s1600/IMG_4578.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0BV246XoyDo71x2snulujc2dQWebemzvgD_J3V7bOoHJkqIgDcDDKb7dTVGlS9NWW6_jXd_1iJYhQja8XvgsyCXcOEiLjxqrqxN41Gy6FQZRmgx-zkZJg470MHjF1OfQW-Y2_SJJyNSODbl6nnzFE89Wm7HhxMPGXfbTezrXrePKrzf2-oKjOxPo/s1600/IMG_4578.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0BV246XoyDo71x2snulujc2dQWebemzvgD_J3V7bOoHJkqIgDcDDKb7dTVGlS9NWW6_jXd_1iJYhQja8XvgsyCXcOEiLjxqrqxN41Gy6FQZRmgx-zkZJg470MHjF1OfQW-Y2_SJJyNSODbl6nnzFE89Wm7HhxMPGXfbTezrXrePKrzf2-oKjOxPo/s1600/IMG_4578.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0BV246XoyDo71x2snulujc2dQWebemzvgD_J3V7bOoHJkqIgDcDDKb7dTVGlS9NWW6_jXd_1iJYhQja8XvgsyCXcOEiLjxqrqxN41Gy6FQZRmgx-zkZJg470MHjF1OfQW-Y2_SJJyNSODbl6nnzFE89Wm7HhxMPGXfbTezrXrePKrzf2-oKjOxPo/s1600/IMG_4578.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>本体上部のボタン類</figcaption>
</figure>
<p>
本体上部左から停止ボタン、早送りボタン、巻き戻しボタン、再生ボタン、録音ボタン、Bluetoothボタン、Bluetoothランプ、バッテリーレベルランプ。ちなみに、説明書に依るとBluetoothボタンは長押しでペアリングモード(ランプ点滅=電波発信)になる模様。ペアリングは自動で行われ(ランプ点滅→常灯)、最大8デバイス登録できるので再接続が楽なのだとか。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip4pwwPgi20cSMwAnU2jwTwU8CklU1WLNGymtalIg1YDCAaFMH-5q4TNp-T0EJ0g9qiWHK8arN7-kugj2qhcKwMrBUkUmCKseKDjlbv0xvQNWUQHZA7YPBRCJ1DfJBDEuZzoGP6dU_n2yxQlzFjInFiE1jvNY4i5mA8oaoBEIv3DAJjNu-G2t4qYc/s1600/IMG_4581.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip4pwwPgi20cSMwAnU2jwTwU8CklU1WLNGymtalIg1YDCAaFMH-5q4TNp-T0EJ0g9qiWHK8arN7-kugj2qhcKwMrBUkUmCKseKDjlbv0xvQNWUQHZA7YPBRCJ1DfJBDEuZzoGP6dU_n2yxQlzFjInFiE1jvNY4i5mA8oaoBEIv3DAJjNu-G2t4qYc/s1600/IMG_4581.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip4pwwPgi20cSMwAnU2jwTwU8CklU1WLNGymtalIg1YDCAaFMH-5q4TNp-T0EJ0g9qiWHK8arN7-kugj2qhcKwMrBUkUmCKseKDjlbv0xvQNWUQHZA7YPBRCJ1DfJBDEuZzoGP6dU_n2yxQlzFjInFiE1jvNY4i5mA8oaoBEIv3DAJjNu-G2t4qYc/s1600/IMG_4581.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip4pwwPgi20cSMwAnU2jwTwU8CklU1WLNGymtalIg1YDCAaFMH-5q4TNp-T0EJ0g9qiWHK8arN7-kugj2qhcKwMrBUkUmCKseKDjlbv0xvQNWUQHZA7YPBRCJ1DfJBDEuZzoGP6dU_n2yxQlzFjInFiE1jvNY4i5mA8oaoBEIv3DAJjNu-G2t4qYc/s1600/IMG_4581.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>カバーを開けたところ</figcaption>
</figure>
<p>
カバーはそのまま手で開ける。内部底面にはシリアルナンバーも記してあった。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhft28DBzglBDjTgaRVsfV5XneYCfpg2FKg9I3ezW2Zy82UwKZdRF3GIn4JJ6YgEW8Qow9fHsdcTm7S8KgDcqHT6GRYl7sscZQqXtvOg_qAB6m8wYbbhXq0G-8T0kwN9DykeCHENO0TLwrFqomYQCMl_HXz8CGCluCWue7bAP3DRAMZmNjq7gXCJMk/s1600/IMG_4582.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhft28DBzglBDjTgaRVsfV5XneYCfpg2FKg9I3ezW2Zy82UwKZdRF3GIn4JJ6YgEW8Qow9fHsdcTm7S8KgDcqHT6GRYl7sscZQqXtvOg_qAB6m8wYbbhXq0G-8T0kwN9DykeCHENO0TLwrFqomYQCMl_HXz8CGCluCWue7bAP3DRAMZmNjq7gXCJMk/s1600/IMG_4582.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhft28DBzglBDjTgaRVsfV5XneYCfpg2FKg9I3ezW2Zy82UwKZdRF3GIn4JJ6YgEW8Qow9fHsdcTm7S8KgDcqHT6GRYl7sscZQqXtvOg_qAB6m8wYbbhXq0G-8T0kwN9DykeCHENO0TLwrFqomYQCMl_HXz8CGCluCWue7bAP3DRAMZmNjq7gXCJMk/s1600/IMG_4582.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhft28DBzglBDjTgaRVsfV5XneYCfpg2FKg9I3ezW2Zy82UwKZdRF3GIn4JJ6YgEW8Qow9fHsdcTm7S8KgDcqHT6GRYl7sscZQqXtvOg_qAB6m8wYbbhXq0G-8T0kwN9DykeCHENO0TLwrFqomYQCMl_HXz8CGCluCWue7bAP3DRAMZmNjq7gXCJMk/s1600/IMG_4582.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>テープ読み取り/書き込みヘッダー</figcaption>
</figure>
<p>
カバーの窓越しに見えるヘッダー。銀ピカが読み取り用、青色が書き込み用。本当は日本製のパーツが使われる予定だったようだが、世界規模でのパーツ不足や輸送遅延やらの影響で採用ならず、残念。ヘッダーのお手入れ方法はアルコールを綿棒に湿らせてポンポンする。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBcicSwBOpVMyrwWEdkSqZjyLCLonhdhQPYFsY3xj_rfCnACTGbixn_E_67-4NAODbYBODXUU4Qtu27b50W0lX6ZP-9-kFB-W1yjC_1UejxBFW-anQKyj_NgaeX1DG3izawmWV00pQnSjMKMmWnua8d2JQ41nDL-Ia4WL2sU_kPlAdOsXoycrCbqU/s1600/IMG_4585.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBcicSwBOpVMyrwWEdkSqZjyLCLonhdhQPYFsY3xj_rfCnACTGbixn_E_67-4NAODbYBODXUU4Qtu27b50W0lX6ZP-9-kFB-W1yjC_1UejxBFW-anQKyj_NgaeX1DG3izawmWV00pQnSjMKMmWnua8d2JQ41nDL-Ia4WL2sU_kPlAdOsXoycrCbqU/s1600/IMG_4585.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBcicSwBOpVMyrwWEdkSqZjyLCLonhdhQPYFsY3xj_rfCnACTGbixn_E_67-4NAODbYBODXUU4Qtu27b50W0lX6ZP-9-kFB-W1yjC_1UejxBFW-anQKyj_NgaeX1DG3izawmWV00pQnSjMKMmWnua8d2JQ41nDL-Ia4WL2sU_kPlAdOsXoycrCbqU/s1600/IMG_4585.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBcicSwBOpVMyrwWEdkSqZjyLCLonhdhQPYFsY3xj_rfCnACTGbixn_E_67-4NAODbYBODXUU4Qtu27b50W0lX6ZP-9-kFB-W1yjC_1UejxBFW-anQKyj_NgaeX1DG3izawmWV00pQnSjMKMmWnua8d2JQ41nDL-Ia4WL2sU_kPlAdOsXoycrCbqU/s1600/IMG_4585.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>カバーにロック機構は無い</figcaption>
</figure>
<p>
カバーはそのまま手で開ける仕組みなので再生中だろうとカバーを開けようと思えば開けられる。とは言えヒンジのおかげで開閉はしっかりしている印象。カバー左側上部に指をかけるための凹みがある。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0hZkKozj3uvfAetqohuVkDNEVoZNqgsy0BlvzdfqG1CUdZe4KckDB-DwbW20wDs5S3FmUN1glbGXdo2iX-nWaTvAjXl9BAFxA8npDmvVpiMnOQxGtWYfutwBLk1QMkb5tcABvZAPojQoW46S9ioDZuSodD0S0PqfAJ_f9ecTpA1pyL-ywZjy_LU/s1600/IMG_4587.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0hZkKozj3uvfAetqohuVkDNEVoZNqgsy0BlvzdfqG1CUdZe4KckDB-DwbW20wDs5S3FmUN1glbGXdo2iX-nWaTvAjXl9BAFxA8npDmvVpiMnOQxGtWYfutwBLk1QMkb5tcABvZAPojQoW46S9ioDZuSodD0S0PqfAJ_f9ecTpA1pyL-ywZjy_LU/s1600/IMG_4587.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0hZkKozj3uvfAetqohuVkDNEVoZNqgsy0BlvzdfqG1CUdZe4KckDB-DwbW20wDs5S3FmUN1glbGXdo2iX-nWaTvAjXl9BAFxA8npDmvVpiMnOQxGtWYfutwBLk1QMkb5tcABvZAPojQoW46S9ioDZuSodD0S0PqfAJ_f9ecTpA1pyL-ywZjy_LU/s1600/IMG_4587.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0hZkKozj3uvfAetqohuVkDNEVoZNqgsy0BlvzdfqG1CUdZe4KckDB-DwbW20wDs5S3FmUN1glbGXdo2iX-nWaTvAjXl9BAFxA8npDmvVpiMnOQxGtWYfutwBLk1QMkb5tcABvZAPojQoW46S9ioDZuSodD0S0PqfAJ_f9ecTpA1pyL-ywZjy_LU/s1600/IMG_4587.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>テープを入れ込んだところ</figcaption>
</figure>
<p>
カバーのガイドに沿ってテープを入れる。A面、B面が懐かしい。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGp5gLFddX2sNKzCMcKGtupb44f6OuSDzBCoQeMEL1x6VdX6g9HjYdhrXYni_dt-4JcTC9pn8P4A2i1GE-HW9bOVI9KV_I1jXYgGn46YT2XjddlI2XjWHwIHWqpxrf1teHwfvG6Lj3pzuw7K_9v3B04qJF_ZEsbh_HXRH2XMro-crW92YfTQ1F9d0/s1600/IMG_4588.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGp5gLFddX2sNKzCMcKGtupb44f6OuSDzBCoQeMEL1x6VdX6g9HjYdhrXYni_dt-4JcTC9pn8P4A2i1GE-HW9bOVI9KV_I1jXYgGn46YT2XjddlI2XjWHwIHWqpxrf1teHwfvG6Lj3pzuw7K_9v3B04qJF_ZEsbh_HXRH2XMro-crW92YfTQ1F9d0/s1600/IMG_4588.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGp5gLFddX2sNKzCMcKGtupb44f6OuSDzBCoQeMEL1x6VdX6g9HjYdhrXYni_dt-4JcTC9pn8P4A2i1GE-HW9bOVI9KV_I1jXYgGn46YT2XjddlI2XjWHwIHWqpxrf1teHwfvG6Lj3pzuw7K_9v3B04qJF_ZEsbh_HXRH2XMro-crW92YfTQ1F9d0/s1600/IMG_4588.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGp5gLFddX2sNKzCMcKGtupb44f6OuSDzBCoQeMEL1x6VdX6g9HjYdhrXYni_dt-4JcTC9pn8P4A2i1GE-HW9bOVI9KV_I1jXYgGn46YT2XjddlI2XjWHwIHWqpxrf1teHwfvG6Lj3pzuw7K_9v3B04qJF_ZEsbh_HXRH2XMro-crW92YfTQ1F9d0/s1600/IMG_4588.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>テープを入れてカバーを閉めたところ</figcaption>
</figure>
<p>
さて、聴こう!ヘッドフォン端子にヘッドフォンを接続し、再生ボタンを押すとテープが回りだして再生開始。音量調整つまみを徐々に上げていくと…いいね。テープのこすれでノイズがちょこっと乗っているけれど、却ってそれがノスタルジアだったりもする。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC9uFzvV7tSR-O1PoUyy5n-sEhxQaPp961mwmjGAotVqTt8mfW0N-8TUD3HvqQaMNDamZma4ixPVJTam9KWS23G5oGeYcjXy-jjuZWYFCjW56r4t0hEa3AXqDttshzuTZBVsDF_P1NgfyRB4giRYvszjVgeU9si8bs4jHNdv0PjbUVY94gx_b43uQ/s1600/IMG_4590.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC9uFzvV7tSR-O1PoUyy5n-sEhxQaPp961mwmjGAotVqTt8mfW0N-8TUD3HvqQaMNDamZma4ixPVJTam9KWS23G5oGeYcjXy-jjuZWYFCjW56r4t0hEa3AXqDttshzuTZBVsDF_P1NgfyRB4giRYvszjVgeU9si8bs4jHNdv0PjbUVY94gx_b43uQ/s1600/IMG_4590.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC9uFzvV7tSR-O1PoUyy5n-sEhxQaPp961mwmjGAotVqTt8mfW0N-8TUD3HvqQaMNDamZma4ixPVJTam9KWS23G5oGeYcjXy-jjuZWYFCjW56r4t0hEa3AXqDttshzuTZBVsDF_P1NgfyRB4giRYvszjVgeU9si8bs4jHNdv0PjbUVY94gx_b43uQ/s1600/IMG_4590.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC9uFzvV7tSR-O1PoUyy5n-sEhxQaPp961mwmjGAotVqTt8mfW0N-8TUD3HvqQaMNDamZma4ixPVJTam9KWS23G5oGeYcjXy-jjuZWYFCjW56r4t0hEa3AXqDttshzuTZBVsDF_P1NgfyRB4giRYvszjVgeU9si8bs4jHNdv0PjbUVY94gx_b43uQ/s1600/IMG_4590.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>今回聴いたテープは『her』Soundtrack</figcaption>
</figure>
<p>
A面の再生が終えたらカバーを開けてテープをひっくり返して再び再生。これでB面。いま考えてもこの仕組み良く出来てる。一通りB面も聴き終えればまたA面の最初になってるわけだもんね。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxsBKgs0VfsDYAtOxSc3CKN7m_murdQKnckgiNLgqBEUfTDelrHHSEvRqvFTNY4I1-eXoktCaGWiDJ2EgL4DC9MAaS16zuOK-biiR9zfs_Jz9O35htb1mDWNJghr18sTV8jOriEKxcIkxv1Kw0s3l3JLVRYgrge_cQHIlJS2P1Das2LTb0d8VblMM/s1600/IMG_4591.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxsBKgs0VfsDYAtOxSc3CKN7m_murdQKnckgiNLgqBEUfTDelrHHSEvRqvFTNY4I1-eXoktCaGWiDJ2EgL4DC9MAaS16zuOK-biiR9zfs_Jz9O35htb1mDWNJghr18sTV8jOriEKxcIkxv1Kw0s3l3JLVRYgrge_cQHIlJS2P1Das2LTb0d8VblMM/s1600/IMG_4591.jpg=w810" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxsBKgs0VfsDYAtOxSc3CKN7m_murdQKnckgiNLgqBEUfTDelrHHSEvRqvFTNY4I1-eXoktCaGWiDJ2EgL4DC9MAaS16zuOK-biiR9zfs_Jz9O35htb1mDWNJghr18sTV8jOriEKxcIkxv1Kw0s3l3JLVRYgrge_cQHIlJS2P1Das2LTb0d8VblMM/s1600/IMG_4591.jpg=w810 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxsBKgs0VfsDYAtOxSc3CKN7m_murdQKnckgiNLgqBEUfTDelrHHSEvRqvFTNY4I1-eXoktCaGWiDJ2EgL4DC9MAaS16zuOK-biiR9zfs_Jz9O35htb1mDWNJghr18sTV8jOriEKxcIkxv1Kw0s3l3JLVRYgrge_cQHIlJS2P1Das2LTb0d8VblMM/s1600/IMG_4591.jpg=w1620 2x" width="810" height="540">
</a>
<figcaption>WE ARE REWIND</figcaption>
</figure>
<p>
空テープが無かったので録音機能も試せておらず。説明書に依ると録音端子に音源を接続。音源のレベルは最大にすると良いとのこと。なお録音時、音量調整つまみは効かないらしい(内部の回路で自動調整されるらしい)。音源が入力されてテープが入っていれば、あとは録音ボタンを押すだけで録音されるとのこと。ちなみに、C-120(120分用テープ)の利用は“推奨<strong>しません</strong>”とのこと。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-57896131043235763662022-12-14T11:44:00.000+09:002022-12-14T11:44:29.623+09:00Peak Design Phone Mount V2レビュー<p class="intro">
違いは雰囲気だけ知れれば充分、という方のために1分弱のショートムービーをつくったのでどうぞ。
</p>
<div class="wrapper" style="position: relative; height: 0; padding-bottom: 56.25%">
<iframe width="720" height="405" style="position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 5px;" src="https://www.youtube-nocookie.com/embed/hmP0hbkCnao" title="YouTube video player" frameborder="0" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<h3>経緯</h3>
<div class="desc">
<p>
Travel Tripodを購入してからちょっとした時に付属のPhone Mountを活用していた。5,6回ほど利用したところだったか、ヒンジが欠けて壊れてしまったのだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkiVoVmWjqnAYyShGooU4RKj4ZBIfl-dYmxSgRVHlF7iMEQv8Uw-hby0jeVjROP6dU8ZPmzogruS26CVz5y4JIEl9Sa89iUFUtXcuknOJYBhvmIxLuI-2Cgl97gLLXbujsSmB48_aflapzoeQAUwhWKQA7kFkAWJKBk0HTszHy08LUzm3I3o6JnO4/s1600/IMG_4561.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkiVoVmWjqnAYyShGooU4RKj4ZBIfl-dYmxSgRVHlF7iMEQv8Uw-hby0jeVjROP6dU8ZPmzogruS26CVz5y4JIEl9Sa89iUFUtXcuknOJYBhvmIxLuI-2Cgl97gLLXbujsSmB48_aflapzoeQAUwhWKQA7kFkAWJKBk0HTszHy08LUzm3I3o6JnO4/s1600/IMG_4561.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkiVoVmWjqnAYyShGooU4RKj4ZBIfl-dYmxSgRVHlF7iMEQv8Uw-hby0jeVjROP6dU8ZPmzogruS26CVz5y4JIEl9Sa89iUFUtXcuknOJYBhvmIxLuI-2Cgl97gLLXbujsSmB48_aflapzoeQAUwhWKQA7kFkAWJKBk0HTszHy08LUzm3I3o6JnO4/s1600/IMG_4561.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkiVoVmWjqnAYyShGooU4RKj4ZBIfl-dYmxSgRVHlF7iMEQv8Uw-hby0jeVjROP6dU8ZPmzogruS26CVz5y4JIEl9Sa89iUFUtXcuknOJYBhvmIxLuI-2Cgl97gLLXbujsSmB48_aflapzoeQAUwhWKQA7kFkAWJKBk0HTszHy08LUzm3I3o6JnO4/s1600/IMG_4561.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption></figcaption>
</figure>
<p>
公式サイトを見に行くと同様の報告がレビューとして上がっていたので、同じような目にあった人が結構いるんだろうなぁ…と思ったことは記憶に新しい。特段無理をさせたわけでもなかったが、今度このパーツを買ったらもっと慎重にあつかおうと思っていた。やはりちょっとした時にPhone Mountがあると便利なんだよなぁ…と感じつつもしばらくの時は経ち今年の11月、Black Fridayが訪れる。Peak Design製品では他に欲しい物(Slideカメラストラップ)もあったので、せっかくならばと一緒に、Peak Design公式サイトで購入することに。するとそこには“Phone Mount <strong>V2</strong>”の文字が!Version 2にバージョンアップしてるじゃん。なおさら気になって購入した次第。
</p>
<figure>
<a href="https://www.peakdesign.com/products/copy-of-travel-tripod-phone-mount" rel="noopener noreferrer" target="_blank" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEhUl_RTYDzGxvmyMPvBYp-8j0WKP0iwvkEwlXfRjp-V4Ha-EQWXlqz9QfethSZkT-0G_LShG_GLkIq38Gk7U7CBl-nQJQTh6bAaS0nHE0Cc4qagK4E6ju32bM4Jejxj4A7pCVjSqt2U3gNImDS6dipxgNbhFh_d9DI-YnC9-DHVqNpELyWCBFMY/s1600/Travel%20Tripod%20Phone%20Mount%20V2%20%7C%20Peak%20Design%20Official%20Site%20Screenshot.png=w600" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEhUl_RTYDzGxvmyMPvBYp-8j0WKP0iwvkEwlXfRjp-V4Ha-EQWXlqz9QfethSZkT-0G_LShG_GLkIq38Gk7U7CBl-nQJQTh6bAaS0nHE0Cc4qagK4E6ju32bM4Jejxj4A7pCVjSqt2U3gNImDS6dipxgNbhFh_d9DI-YnC9-DHVqNpELyWCBFMY/s1600/Travel%20Tripod%20Phone%20Mount%20V2%20%7C%20Peak%20Design%20Official%20Site%20Screenshot.png=w600 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEhUl_RTYDzGxvmyMPvBYp-8j0WKP0iwvkEwlXfRjp-V4Ha-EQWXlqz9QfethSZkT-0G_LShG_GLkIq38Gk7U7CBl-nQJQTh6bAaS0nHE0Cc4qagK4E6ju32bM4Jejxj4A7pCVjSqt2U3gNImDS6dipxgNbhFh_d9DI-YnC9-DHVqNpELyWCBFMY/s1600/Travel%20Tripod%20Phone%20Mount%20V2%20%7C%20Peak%20Design%20Official%20Site%20Screenshot.png=w1200 2x" width="600" height="400">
</a>
<figcaption>https://www.peakdesign.com/products/copy-of-travel-tripod-phone-mount</figcaption>
</figure>
<p>
購入ページのスクリーンショットを撮った時点でレビューは0だったが、先程見に行ったら1の評価が1個あった。評価の写真からV1に対する評価だと判明。やはりヒンジが欠けたという報告レビューだった。今回比較をして判ったのだが公式オンラインショップの画像も未だにV1のものであった。新しくなったよ、とアナウンスしても良いのではないだろうか。URLも“copy-of-”てあるくらいなのでかなり応急的に対応した感は否めない。V2も、まだPeak Designさん的には納得いく出来ではないのだろうかと勘ぐってしまいたくもなる。
</p>
</div>
<h3>比較</h3>
<div class="desc">
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiESufwC-pWHqaQFspagwx_fCQGCLtvzAS6crHXe_iPLCX3nHCoVSHDEiqgluDvKAY_etIUehEgkGLHDCx_lRYhtG5WYVaOiLKSZ-n6_QmaXMNw4uaM4WILnLu0V9NjGet2qtGodXbl9rKEO0jrUyUhEu_ZGf-AMDU16D8-xU2HGRmF0sooOv-68us/s1600/IMG_4550.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiESufwC-pWHqaQFspagwx_fCQGCLtvzAS6crHXe_iPLCX3nHCoVSHDEiqgluDvKAY_etIUehEgkGLHDCx_lRYhtG5WYVaOiLKSZ-n6_QmaXMNw4uaM4WILnLu0V9NjGet2qtGodXbl9rKEO0jrUyUhEu_ZGf-AMDU16D8-xU2HGRmF0sooOv-68us/s1600/IMG_4550.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiESufwC-pWHqaQFspagwx_fCQGCLtvzAS6crHXe_iPLCX3nHCoVSHDEiqgluDvKAY_etIUehEgkGLHDCx_lRYhtG5WYVaOiLKSZ-n6_QmaXMNw4uaM4WILnLu0V9NjGet2qtGodXbl9rKEO0jrUyUhEu_ZGf-AMDU16D8-xU2HGRmF0sooOv-68us/s1600/IMG_4550.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiESufwC-pWHqaQFspagwx_fCQGCLtvzAS6crHXe_iPLCX3nHCoVSHDEiqgluDvKAY_etIUehEgkGLHDCx_lRYhtG5WYVaOiLKSZ-n6_QmaXMNw4uaM4WILnLu0V9NjGet2qtGodXbl9rKEO0jrUyUhEu_ZGf-AMDU16D8-xU2HGRmF0sooOv-68us/s1600/IMG_4550.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>V2パッケージ</figcaption>
</figure>
<p>
後述するがグリップの形状からパッケージ写真もV1のものであると判明。けれど中身はV2(だと思う)が入っていた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2JdfIT887oBlYSAnue9VkjRRlq2Pg88TvLxNd8bxasJfqpRGe5ZgZDbaQpO1LJrfYQ0OKHer8sc9YJv3hdxEX8L2w9S_bXwLLJcRmd5H3uuR6C9fHO5K9q4fz8ic_hLFCeno_O52wKqI-9mBhc4CbQXuCQuf_xY1kM9wcasBaQcWCGVHYIJJySPA/s1600/IMG_4552.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2JdfIT887oBlYSAnue9VkjRRlq2Pg88TvLxNd8bxasJfqpRGe5ZgZDbaQpO1LJrfYQ0OKHer8sc9YJv3hdxEX8L2w9S_bXwLLJcRmd5H3uuR6C9fHO5K9q4fz8ic_hLFCeno_O52wKqI-9mBhc4CbQXuCQuf_xY1kM9wcasBaQcWCGVHYIJJySPA/s1600/IMG_4552.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2JdfIT887oBlYSAnue9VkjRRlq2Pg88TvLxNd8bxasJfqpRGe5ZgZDbaQpO1LJrfYQ0OKHer8sc9YJv3hdxEX8L2w9S_bXwLLJcRmd5H3uuR6C9fHO5K9q4fz8ic_hLFCeno_O52wKqI-9mBhc4CbQXuCQuf_xY1kM9wcasBaQcWCGVHYIJJySPA/s1600/IMG_4552.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2JdfIT887oBlYSAnue9VkjRRlq2Pg88TvLxNd8bxasJfqpRGe5ZgZDbaQpO1LJrfYQ0OKHer8sc9YJv3hdxEX8L2w9S_bXwLLJcRmd5H3uuR6C9fHO5K9q4fz8ic_hLFCeno_O52wKqI-9mBhc4CbQXuCQuf_xY1kM9wcasBaQcWCGVHYIJJySPA/s1600/IMG_4552.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>正面</figcaption>
</figure>
<p>
正面(と呼ぶ)からの見た目。プロファイルは変わらず。もちろんTravel Tripodにもちゃんと収まる。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHp3V7g7yUA92IvE89_BGfM7g1o5YxyH1sp3Sc0w61wMR_XDe5hQ6YzTGR3TnbJtdTKWOrQeeC-6dYrFa2uP21eJvIbJjwTLyAPpLiWf7e1N036yXW6MNzd6fDWwOSSGsB813bknvuSdRTR2ybD9CgQHGKodmqgOoN7MxbylgI5OEVZPd1Q6u8qbw/s1600/IMG_4553.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHp3V7g7yUA92IvE89_BGfM7g1o5YxyH1sp3Sc0w61wMR_XDe5hQ6YzTGR3TnbJtdTKWOrQeeC-6dYrFa2uP21eJvIbJjwTLyAPpLiWf7e1N036yXW6MNzd6fDWwOSSGsB813bknvuSdRTR2ybD9CgQHGKodmqgOoN7MxbylgI5OEVZPd1Q6u8qbw/s1600/IMG_4553.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHp3V7g7yUA92IvE89_BGfM7g1o5YxyH1sp3Sc0w61wMR_XDe5hQ6YzTGR3TnbJtdTKWOrQeeC-6dYrFa2uP21eJvIbJjwTLyAPpLiWf7e1N036yXW6MNzd6fDWwOSSGsB813bknvuSdRTR2ybD9CgQHGKodmqgOoN7MxbylgI5OEVZPd1Q6u8qbw/s1600/IMG_4553.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHp3V7g7yUA92IvE89_BGfM7g1o5YxyH1sp3Sc0w61wMR_XDe5hQ6YzTGR3TnbJtdTKWOrQeeC-6dYrFa2uP21eJvIbJjwTLyAPpLiWf7e1N036yXW6MNzd6fDWwOSSGsB813bknvuSdRTR2ybD9CgQHGKodmqgOoN7MxbylgI5OEVZPd1Q6u8qbw/s1600/IMG_4553.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>裏面</figcaption>
</figure>
<p>
裏面(とする)で差が明らかに。板バネが無くなっている。そのため、後で写真を見せるが、持ち上げるとアームがぷらぷらする。板バネよりも強度を優先したと見た。機能性が強度へ転化。プラマイゼロの変化。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjip58jsnvktA5pCjrTWOgxxplRC8_sM7fD2GlnCceDr2DO1GJ1CM4lRgFp2rtHcsUizdalDC47kzupteaQU4JGFUZ6MsIS8Hr0quIzmx4qbtD2QLz7u2q3Bj4QCuYO9Uz91zekfHsScPsZPSf5xxEdXVYzF4VWL1Fl9AY8i4YxVIUkbx9vvXf2UT4/s1600/IMG_4554.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjip58jsnvktA5pCjrTWOgxxplRC8_sM7fD2GlnCceDr2DO1GJ1CM4lRgFp2rtHcsUizdalDC47kzupteaQU4JGFUZ6MsIS8Hr0quIzmx4qbtD2QLz7u2q3Bj4QCuYO9Uz91zekfHsScPsZPSf5xxEdXVYzF4VWL1Fl9AY8i4YxVIUkbx9vvXf2UT4/s1600/IMG_4554.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjip58jsnvktA5pCjrTWOgxxplRC8_sM7fD2GlnCceDr2DO1GJ1CM4lRgFp2rtHcsUizdalDC47kzupteaQU4JGFUZ6MsIS8Hr0quIzmx4qbtD2QLz7u2q3Bj4QCuYO9Uz91zekfHsScPsZPSf5xxEdXVYzF4VWL1Fl9AY8i4YxVIUkbx9vvXf2UT4/s1600/IMG_4554.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjip58jsnvktA5pCjrTWOgxxplRC8_sM7fD2GlnCceDr2DO1GJ1CM4lRgFp2rtHcsUizdalDC47kzupteaQU4JGFUZ6MsIS8Hr0quIzmx4qbtD2QLz7u2q3Bj4QCuYO9Uz91zekfHsScPsZPSf5xxEdXVYzF4VWL1Fl9AY8i4YxVIUkbx9vvXf2UT4/s1600/IMG_4554.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>側面</figcaption>
</figure>
<p>
側面も変化が見られる。V1は片方のヒンジ部が欠けているのだがそれにしてもヒンジ部がややガッシリとした印象。さらにスマートフォンを挟む箇所の凹みも深く大きくなっており、“グリップ”も大きく分厚くなっていることが判る。これはかなりプラスの変化。なお、グリップ(ゴムパーツ)の端は鋭角なカットから直角なカットへと変わっていることから、この部分を見ればおおよそV1かV2か判別できる。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEnYHj6_q4MB0wiBElRMfxdKCyBircOgDg1WWUSwk8eugzR-5JejGm-RLFESZJDX_ZWr0YIScYTHi84W3Dy1Tfz8auPOShC2wB-g1FOzuWGV-RmeL2K4qK73erd46znkw5e9o-vqCvOCXMblCIozwdc1WoGwLgG1d7HlEZPlLAeFwOTzgBlz9aw0/s1600/IMG_4567.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEnYHj6_q4MB0wiBElRMfxdKCyBircOgDg1WWUSwk8eugzR-5JejGm-RLFESZJDX_ZWr0YIScYTHi84W3Dy1Tfz8auPOShC2wB-g1FOzuWGV-RmeL2K4qK73erd46znkw5e9o-vqCvOCXMblCIozwdc1WoGwLgG1d7HlEZPlLAeFwOTzgBlz9aw0/s1600/IMG_4567.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEnYHj6_q4MB0wiBElRMfxdKCyBircOgDg1WWUSwk8eugzR-5JejGm-RLFESZJDX_ZWr0YIScYTHi84W3Dy1Tfz8auPOShC2wB-g1FOzuWGV-RmeL2K4qK73erd46znkw5e9o-vqCvOCXMblCIozwdc1WoGwLgG1d7HlEZPlLAeFwOTzgBlz9aw0/s1600/IMG_4567.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEnYHj6_q4MB0wiBElRMfxdKCyBircOgDg1WWUSwk8eugzR-5JejGm-RLFESZJDX_ZWr0YIScYTHi84W3Dy1Tfz8auPOShC2wB-g1FOzuWGV-RmeL2K4qK73erd46znkw5e9o-vqCvOCXMblCIozwdc1WoGwLgG1d7HlEZPlLAeFwOTzgBlz9aw0/s1600/IMG_4567.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>ヒンジ部の比較</figcaption>
</figure>
<p>
ヒンジ部をアップで比較。アップにするとヒンジ部のみならずその軸までもが太くカッチリしたことが伺える。とは言え一度ヒンジを壊した身として、この程度の変更ではまだどこか心もとない。ちょっとプラスの変化。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ILzeIOEK1a84XeJSN_VYadhmCUDQTwFsN9Ocpdbbhss6hUCHba-oXytvyHEEpr6B6XG--wPdTga0k-ZJycWElULcqxXO1AA5eaL3ULZQNgSyx-LjTUJz-_k6rndPW016IsY_r9EYvVwDqcYxtvnFp7WdqHX8W4lFK8tV7iNgfpeu4LmTBxNPOQo/s1600/IMG_4566.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ILzeIOEK1a84XeJSN_VYadhmCUDQTwFsN9Ocpdbbhss6hUCHba-oXytvyHEEpr6B6XG--wPdTga0k-ZJycWElULcqxXO1AA5eaL3ULZQNgSyx-LjTUJz-_k6rndPW016IsY_r9EYvVwDqcYxtvnFp7WdqHX8W4lFK8tV7iNgfpeu4LmTBxNPOQo/s1600/IMG_4566.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ILzeIOEK1a84XeJSN_VYadhmCUDQTwFsN9Ocpdbbhss6hUCHba-oXytvyHEEpr6B6XG--wPdTga0k-ZJycWElULcqxXO1AA5eaL3ULZQNgSyx-LjTUJz-_k6rndPW016IsY_r9EYvVwDqcYxtvnFp7WdqHX8W4lFK8tV7iNgfpeu4LmTBxNPOQo/s1600/IMG_4566.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ILzeIOEK1a84XeJSN_VYadhmCUDQTwFsN9Ocpdbbhss6hUCHba-oXytvyHEEpr6B6XG--wPdTga0k-ZJycWElULcqxXO1AA5eaL3ULZQNgSyx-LjTUJz-_k6rndPW016IsY_r9EYvVwDqcYxtvnFp7WdqHX8W4lFK8tV7iNgfpeu4LmTBxNPOQo/s1600/IMG_4566.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>板バネの有無</figcaption>
</figure>
<p>
このように持ち上げると板バネが廃止されたV2ではアーム(と呼ばせて)が自由状態。これは好みが分かれそう。個人的には気にならない部分だが、板バネがあればそりゃ嬉しい。このあたりもページ最初のショートビデオを観ていただくとより良く分かるはず。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeJpYd-zaOu54oNy9mvLqN_SerLy4f4yWkNJ2KTSaUmRBzVEo_mHdNM1TVjcx6h5LM1912C2QwtQHRI9l6KgJluLLrExkp0k926Cy0-SwAe1EHT6xULYCp7I5_JFswitGOjPR9hqQsHWH_kNrqw37u7m_J__SiSA26rySDH57LDS8NJBYL-quKXQ/s1600/IMG_4568.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeJpYd-zaOu54oNy9mvLqN_SerLy4f4yWkNJ2KTSaUmRBzVEo_mHdNM1TVjcx6h5LM1912C2QwtQHRI9l6KgJluLLrExkp0k926Cy0-SwAe1EHT6xULYCp7I5_JFswitGOjPR9hqQsHWH_kNrqw37u7m_J__SiSA26rySDH57LDS8NJBYL-quKXQ/s1600/IMG_4568.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeJpYd-zaOu54oNy9mvLqN_SerLy4f4yWkNJ2KTSaUmRBzVEo_mHdNM1TVjcx6h5LM1912C2QwtQHRI9l6KgJluLLrExkp0k926Cy0-SwAe1EHT6xULYCp7I5_JFswitGOjPR9hqQsHWH_kNrqw37u7m_J__SiSA26rySDH57LDS8NJBYL-quKXQ/s1600/IMG_4568.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeJpYd-zaOu54oNy9mvLqN_SerLy4f4yWkNJ2KTSaUmRBzVEo_mHdNM1TVjcx6h5LM1912C2QwtQHRI9l6KgJluLLrExkp0k926Cy0-SwAe1EHT6xULYCp7I5_JFswitGOjPR9hqQsHWH_kNrqw37u7m_J__SiSA26rySDH57LDS8NJBYL-quKXQ/s1600/IMG_4568.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>グリップ形状</figcaption>
</figure>
<p>
アームを90度展開すれば板バネの無いV2でも「ぐぬッ」と若干のクリック感があり、固定される。これもショートムービーを観ると分かってもらえるはず。しかし展開して比べると、グリップ部の形状変化がとても良い。iPhoneも12以降エッジが角張ったデザインになったため、その影響もあるだろうか。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhirj-l94NcapOZXIbvm0ViZNX7fZfJ8VT7017BlgAOlI82TXPvcrbAmqFEGB1npqbyqBY_Mu1s4lC-rUjkJVNzMlsiyQWuGN8E9t3cFBUBNB7WgnqjAklORCwClG890YAu7AvxwDSqB0Twx5Dyu2kvIOWo7oYRr5iMfU9-1zGyPpWxg8OAE8GUH8M/s1600/IMG_4556.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhirj-l94NcapOZXIbvm0ViZNX7fZfJ8VT7017BlgAOlI82TXPvcrbAmqFEGB1npqbyqBY_Mu1s4lC-rUjkJVNzMlsiyQWuGN8E9t3cFBUBNB7WgnqjAklORCwClG890YAu7AvxwDSqB0Twx5Dyu2kvIOWo7oYRr5iMfU9-1zGyPpWxg8OAE8GUH8M/s1600/IMG_4556.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhirj-l94NcapOZXIbvm0ViZNX7fZfJ8VT7017BlgAOlI82TXPvcrbAmqFEGB1npqbyqBY_Mu1s4lC-rUjkJVNzMlsiyQWuGN8E9t3cFBUBNB7WgnqjAklORCwClG890YAu7AvxwDSqB0Twx5Dyu2kvIOWo7oYRr5iMfU9-1zGyPpWxg8OAE8GUH8M/s1600/IMG_4556.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhirj-l94NcapOZXIbvm0ViZNX7fZfJ8VT7017BlgAOlI82TXPvcrbAmqFEGB1npqbyqBY_Mu1s4lC-rUjkJVNzMlsiyQWuGN8E9t3cFBUBNB7WgnqjAklORCwClG890YAu7AvxwDSqB0Twx5Dyu2kvIOWo7oYRr5iMfU9-1zGyPpWxg8OAE8GUH8M/s1600/IMG_4556.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>グリップ形状 別アングル</figcaption>
</figure>
<p>
アームを90度展開した状態で立ててみた。こう見るとヒンジ部工夫の努力が垣間見える気がする。何度も言ってしまうがグリップ形状の変化もご注目あれ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEJu_pPwXrco7sReiwK5XnziSMh2ySvn65EsU8ddWZITYs9BKGlrNpodzLwtA4s5JhibcQA-7BC5lFp62uFns-Qm-kxer3KrJP74LI82kcEAZZPoqo6nN9NsBardkzwH505NWW98wxHHWnw4fyUBbbRaZEvqL1cLqcm2QafLn5bkWz5pdyGMEaAxc/s1600/IMG_4555.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEJu_pPwXrco7sReiwK5XnziSMh2ySvn65EsU8ddWZITYs9BKGlrNpodzLwtA4s5JhibcQA-7BC5lFp62uFns-Qm-kxer3KrJP74LI82kcEAZZPoqo6nN9NsBardkzwH505NWW98wxHHWnw4fyUBbbRaZEvqL1cLqcm2QafLn5bkWz5pdyGMEaAxc/s1600/IMG_4555.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEJu_pPwXrco7sReiwK5XnziSMh2ySvn65EsU8ddWZITYs9BKGlrNpodzLwtA4s5JhibcQA-7BC5lFp62uFns-Qm-kxer3KrJP74LI82kcEAZZPoqo6nN9NsBardkzwH505NWW98wxHHWnw4fyUBbbRaZEvqL1cLqcm2QafLn5bkWz5pdyGMEaAxc/s1600/IMG_4555.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEJu_pPwXrco7sReiwK5XnziSMh2ySvn65EsU8ddWZITYs9BKGlrNpodzLwtA4s5JhibcQA-7BC5lFp62uFns-Qm-kxer3KrJP74LI82kcEAZZPoqo6nN9NsBardkzwH505NWW98wxHHWnw4fyUBbbRaZEvqL1cLqcm2QafLn5bkWz5pdyGMEaAxc/s1600/IMG_4555.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>展開</figcaption>
</figure>
<p>
上下両方のアームを展開したところ。V1は長い方のアーム(三脚の雲台に取り付ける側)が壊れているので純粋な比較が難しいのだが、V2の方がやや内側につぼんだ“コ”の字型に視えるのは気のせいか。これも強度アップへの工夫なのか。
</p>
</div>
<h3>使ってみて</h3>
<div class="desc">
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia4t7ATDbSZF_XPiuDLOH86ZMJkMgrCG1nkyTPuyDBJJByDffGRz0eVtdYhQBdC0Io-m7Y2ps0HHQmQTTtPwbg5laz4pegRWFLOFThJli2Gj58qtwmacg-2NzReog5MTukXPchfkfaONBxGVMqUAVTJFQiFDEOXbJRq1PiUfKVdTam8fUgrXp5NBw/s1600/IMG_4557.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia4t7ATDbSZF_XPiuDLOH86ZMJkMgrCG1nkyTPuyDBJJByDffGRz0eVtdYhQBdC0Io-m7Y2ps0HHQmQTTtPwbg5laz4pegRWFLOFThJli2Gj58qtwmacg-2NzReog5MTukXPchfkfaONBxGVMqUAVTJFQiFDEOXbJRq1PiUfKVdTam8fUgrXp5NBw/s1600/IMG_4557.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia4t7ATDbSZF_XPiuDLOH86ZMJkMgrCG1nkyTPuyDBJJByDffGRz0eVtdYhQBdC0Io-m7Y2ps0HHQmQTTtPwbg5laz4pegRWFLOFThJli2Gj58qtwmacg-2NzReog5MTukXPchfkfaONBxGVMqUAVTJFQiFDEOXbJRq1PiUfKVdTam8fUgrXp5NBw/s1600/IMG_4557.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia4t7ATDbSZF_XPiuDLOH86ZMJkMgrCG1nkyTPuyDBJJByDffGRz0eVtdYhQBdC0Io-m7Y2ps0HHQmQTTtPwbg5laz4pegRWFLOFThJli2Gj58qtwmacg-2NzReog5MTukXPchfkfaONBxGVMqUAVTJFQiFDEOXbJRq1PiUfKVdTam8fUgrXp5NBw/s1600/IMG_4557.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>角丸フォン代表としてiPhone 6Sで</figcaption>
</figure>
<p>
ラウンドエッジの代表としてiPhone 6Sを挟んだところ。まだ強度については実戦でも無いのでなんとも言えないが、グリップ感はしっかりしている。良い感じだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLceQ4IISHumKQM5jRppCbt7Y01p2GevY_tIt_W-ASeOVGT0USuApPTruQz1BZL-3rNeG_uT71ZMgaZ6KAlBDmnkwzZnlTb0zkaTeAg89t12OFLwz1q7qV0uuGag08oL-SffIZ2END0ZeJ3pclb7UAmgieSypvVkel10IpQnzZNDTXNO5PDI8L2Q/s1600/IMG_4558.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLceQ4IISHumKQM5jRppCbt7Y01p2GevY_tIt_W-ASeOVGT0USuApPTruQz1BZL-3rNeG_uT71ZMgaZ6KAlBDmnkwzZnlTb0zkaTeAg89t12OFLwz1q7qV0uuGag08oL-SffIZ2END0ZeJ3pclb7UAmgieSypvVkel10IpQnzZNDTXNO5PDI8L2Q/s1600/IMG_4558.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLceQ4IISHumKQM5jRppCbt7Y01p2GevY_tIt_W-ASeOVGT0USuApPTruQz1BZL-3rNeG_uT71ZMgaZ6KAlBDmnkwzZnlTb0zkaTeAg89t12OFLwz1q7qV0uuGag08oL-SffIZ2END0ZeJ3pclb7UAmgieSypvVkel10IpQnzZNDTXNO5PDI8L2Q/s1600/IMG_4558.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLceQ4IISHumKQM5jRppCbt7Y01p2GevY_tIt_W-ASeOVGT0USuApPTruQz1BZL-3rNeG_uT71ZMgaZ6KAlBDmnkwzZnlTb0zkaTeAg89t12OFLwz1q7qV0uuGag08oL-SffIZ2END0ZeJ3pclb7UAmgieSypvVkel10IpQnzZNDTXNO5PDI8L2Q/s1600/IMG_4558.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>グリップ感を横から</figcaption>
</figure>
<p>
iPhone 6Sのようなラウンドエッジでもぴったりとグリップされる素晴らしい形状。安定感抜群。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzQevLrCaFtoZGVXvThuj3OFk_4XpkhHO1pAVB-Ov90I0yw6Dpatbj1UoT-GpzBsjQYlb4CrjfJvj5GIsy3aILA0p680n27OQhz4y3cznE8qhIc27O1Dg-yTE8c3ybKjx90x5mMCBXyce8EqPNCWNld5FtkOERUd14NR-DgwX9gpeh3H_n1zpLk0/s1600/IMG_4559.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzQevLrCaFtoZGVXvThuj3OFk_4XpkhHO1pAVB-Ov90I0yw6Dpatbj1UoT-GpzBsjQYlb4CrjfJvj5GIsy3aILA0p680n27OQhz4y3cznE8qhIc27O1Dg-yTE8c3ybKjx90x5mMCBXyce8EqPNCWNld5FtkOERUd14NR-DgwX9gpeh3H_n1zpLk0/s1600/IMG_4559.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzQevLrCaFtoZGVXvThuj3OFk_4XpkhHO1pAVB-Ov90I0yw6Dpatbj1UoT-GpzBsjQYlb4CrjfJvj5GIsy3aILA0p680n27OQhz4y3cznE8qhIc27O1Dg-yTE8c3ybKjx90x5mMCBXyce8EqPNCWNld5FtkOERUd14NR-DgwX9gpeh3H_n1zpLk0/s1600/IMG_4559.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzQevLrCaFtoZGVXvThuj3OFk_4XpkhHO1pAVB-Ov90I0yw6Dpatbj1UoT-GpzBsjQYlb4CrjfJvj5GIsy3aILA0p680n27OQhz4y3cznE8qhIc27O1Dg-yTE8c3ybKjx90x5mMCBXyce8EqPNCWNld5FtkOERUd14NR-DgwX9gpeh3H_n1zpLk0/s1600/IMG_4559.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>Everyday Caseも!</figcaption>
</figure>
<p>
もちろんPeak DesignさんのEveryday Caseとも相性抜群!
</p>
</div>
<p class="outro">
終わりに。Peak Designさん自身も出来得る限りの強化はしたけれど、どの程度ユーザーが満足してくれるだろうか様子見するしか出来ない…と言った感じなのだろう。うかつに「強度を強くしました」なんて謳ってしまえば、よりタフに扱われてしまいかねず、本末転倒になりかねないだろうから。もちろんわたし自身、V2だろうとPhone Mountは今まで以上に丁寧に扱うつもりで、雲台に固定したらもうPhone Mount含めスマートフォン自体もシャッターボタン以外は触らないとマイルールも決めたのだ。しかし肝心な点は、Peak Designはユーザーの意見をすぐに反映してくれるメーカーであるということ。きちんとユーザーからのフィードバックを受け入れて次に繋げているのだ。一企業として当たり前のことだが、実践は難しい。それがこのスピード感で出来るのだからPeak Designは強いのだなぁ、とひとり感心してたり。まだまだお世話になりそうである。これからもよろしゅうどうぞ。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-810514691426008332022-11-16T20:50:00.001+09:002022-11-16T20:50:06.589+09:00シンネンハガキ2023 おやすみのお知らせ<p>
タイトル通り、今年のシンネンハガキはお休みします。本Weblog上での挨拶だけでもできるといいな、といった最近です。近況報告、おわり!
</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-15772372839907300182022-10-27T18:09:00.002+09:002022-10-27T18:09:41.677+09:00このタブがアクティブか、JavaScriptから確かめる方法<p>
いまユーザーはこのタブを見ているか?あるいは他のタブへ移動して(inactiveになって)しまったか?はたまたブラウザ自体からフォーカスが外れているか?こんなことをJavaScriptから確認(チェック)する術はないものかと調べてみると、あった!
</p>
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API" target="_blank" rel="nofollow noreferrer" class="series-link" title="Page Visibility API - Web APIs | MDN">Page Visibility API - Web APIs | MDN</a>
<p>
addEventListenerやonイベントで状態を確認できるという。<var>document.visibilityState</var>プロパティ(読み取り専用)からユーザーが見ている(visible)か見ていない(hidden)かも確認できる模様。
</p>
<p class="ps">
ただ、あまり古いブラウザへは対応していない様子なので、上記リンク(<a href="https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API" target="_blank" rel="nofollow noreferrer" title="Page Visibility API - Web APIs | MDN">Page Visibility API - Web APIs | MDN</a>)のExampleにはベンダープレフィックス付きAPIへのフォールバックに対応したコードが載っていた。
</p>
<p>
わたしは特にレガシーブラウザへの対応は不要であったため、次のようなコードで実装/対応できた。
</p>
<code class="js">
<pre>if ( typeof document.hidden !== 'undefined' ) {
document.addEventListener( 'visibilitychange', () => {
if ( document.visibilityState === 'hidden' ) {
console.log( 'ユーザーがどっかへ行ったよ' );
}
else {
console.log( 'ユーザーが見てるよ!' );
}
}, false );
}</pre>
</code>
<p>
onblurやonmousemoveイベントやらでWatchdogのようなことをしていたあの頃がなつかしい…。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-17277634127127600972022-09-30T22:34:00.001+09:002022-09-30T22:34:05.332+09:00ENDOCA CBD GUM<figure aria-hidden="true" style="display: none;">
<img alt="" data-original-height="630" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQF0nU_FgPRHGPn8QlZxkeRKX1x1jtLYAIS54E_qpfOCjwrXYqJQOan9n3GRTUCV1M3hxW4MR_fjAwlWZiuT_mYNvCn6rbJtECW83jHW6IUOv6P8jBHQRBZvMB0DpGXTUE_jblY2F-b2EG6zqIXmUXOk-tbIXyLKhSEBiOR4Lhl8_Hi4khWvb81p8/s1600/OGP_image.jpg" width="720" height="378">
</figure>
<p>
<a href="https://endoca.co.jp/lineup/cbd-chewing-gum-100mg/" target="_blank" rel="noopener noreferrer" class="series-link">CBDチューインガム 100mg CBD | オーガニックCBDのENDOCA</a>
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirLlUS7kinjtVPlAHxwpRNzjre4xaDltS9KoCoXBaAQh1Q0M2E30bSgPsSmMB_IByxgGu0cB5z4NeSahU7VwLuG1vIrUxpfHBHgtjkN28rAqqncd8NR5bBdsyz3WaULTDzJhAFgK1LDQWtgrhsnw-aUBrAHHaT--KiZ4yeYOBcmSCptuWvtu1RTuI/s1600/01.jpg" imageanchor="1">
<img alt="ENDOCA CBD GUM 10mg (エンドカ シービーディーチューイングガム 10ミリグラム)" data-original-height="4056" data-original-width="2704" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirLlUS7kinjtVPlAHxwpRNzjre4xaDltS9KoCoXBaAQh1Q0M2E30bSgPsSmMB_IByxgGu0cB5z4NeSahU7VwLuG1vIrUxpfHBHgtjkN28rAqqncd8NR5bBdsyz3WaULTDzJhAFgK1LDQWtgrhsnw-aUBrAHHaT--KiZ4yeYOBcmSCptuWvtu1RTuI/s1600/01.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirLlUS7kinjtVPlAHxwpRNzjre4xaDltS9KoCoXBaAQh1Q0M2E30bSgPsSmMB_IByxgGu0cB5z4NeSahU7VwLuG1vIrUxpfHBHgtjkN28rAqqncd8NR5bBdsyz3WaULTDzJhAFgK1LDQWtgrhsnw-aUBrAHHaT--KiZ4yeYOBcmSCptuWvtu1RTuI/s1600/01.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirLlUS7kinjtVPlAHxwpRNzjre4xaDltS9KoCoXBaAQh1Q0M2E30bSgPsSmMB_IByxgGu0cB5z4NeSahU7VwLuG1vIrUxpfHBHgtjkN28rAqqncd8NR5bBdsyz3WaULTDzJhAFgK1LDQWtgrhsnw-aUBrAHHaT--KiZ4yeYOBcmSCptuWvtu1RTuI/s1600/01.jpg=w1440 2x" width="720" height="1080">
</a>
<figcaption>パッケージ</figcaption>
</figure>
<p>
ENDOCAの販売するCBDチューイングガム。1粒にCBDが10mg含まれる。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWidW0F3P9DMHfsFyeyEMUFhgJHCEE0xO8LyZUHyr-LQRCGOh2Bv5Uvkm-wxn9q4KZ8dmljyodXXN3DZJqpVo3FRWM4XJnEfhTfm0vwZgyBVgB3zILzCtCH1N-V4g7FAaevqib4S4w_OmcFSO6Y41qnjRHfWgLENRH10V1iDRK4y2Diz9HoGF46w/s1600/02.jpg" imageanchor="1">
<img alt="原材料: 麻(茎・種子)、ガムペースト、甘味料(キシリトール)、香料(メントール、ペパーミント)。内容量: 14グラム (10粒)。原産国: デンマーク。" data-original-height="3781" data-original-width="2521" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWidW0F3P9DMHfsFyeyEMUFhgJHCEE0xO8LyZUHyr-LQRCGOh2Bv5Uvkm-wxn9q4KZ8dmljyodXXN3DZJqpVo3FRWM4XJnEfhTfm0vwZgyBVgB3zILzCtCH1N-V4g7FAaevqib4S4w_OmcFSO6Y41qnjRHfWgLENRH10V1iDRK4y2Diz9HoGF46w/s1600/02.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWidW0F3P9DMHfsFyeyEMUFhgJHCEE0xO8LyZUHyr-LQRCGOh2Bv5Uvkm-wxn9q4KZ8dmljyodXXN3DZJqpVo3FRWM4XJnEfhTfm0vwZgyBVgB3zILzCtCH1N-V4g7FAaevqib4S4w_OmcFSO6Y41qnjRHfWgLENRH10V1iDRK4y2Diz9HoGF46w/s1600/02.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvWidW0F3P9DMHfsFyeyEMUFhgJHCEE0xO8LyZUHyr-LQRCGOh2Bv5Uvkm-wxn9q4KZ8dmljyodXXN3DZJqpVo3FRWM4XJnEfhTfm0vwZgyBVgB3zILzCtCH1N-V4g7FAaevqib4S4w_OmcFSO6Y41qnjRHfWgLENRH10V1iDRK4y2Diz9HoGF46w/s1600/02.jpg=w1440 2x" width="720" height="1080">
</a>
<figcaption>パッケージ裏面</figcaption>
</figure>
<p>
チクルの木を原料とし、プラスティックは一切使用していない自然素材のガム。合成成分はもちろんのこと、砂糖も不使用。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WXwnjKTD0kKjz0_033JdkTZHk5bFKo3kCylMKWc1-Go5DucpO3-88J6qrCfUtJ7j37cJ--eLEP7OS0A5dL88hUP1-_qx91OTYcTf0jBzTb9V5btYz8kqV6DLfXvjNMu0c-v-d4fRPI6H84rTXj-lqb1gty94wuP9ydMZgghHTms18V1_vEbxDtg/s1600/03.jpg" imageanchor="1">
<img alt="オーガニック、ラボでの試験済み、プラスティックフリー、遺伝子組み換えでなく砂糖も不使用、GMP(医薬品の製造管理及び品質管理の基準)認定済み" data-original-height="3888" data-original-width="2592" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WXwnjKTD0kKjz0_033JdkTZHk5bFKo3kCylMKWc1-Go5DucpO3-88J6qrCfUtJ7j37cJ--eLEP7OS0A5dL88hUP1-_qx91OTYcTf0jBzTb9V5btYz8kqV6DLfXvjNMu0c-v-d4fRPI6H84rTXj-lqb1gty94wuP9ydMZgghHTms18V1_vEbxDtg/s1600/03.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WXwnjKTD0kKjz0_033JdkTZHk5bFKo3kCylMKWc1-Go5DucpO3-88J6qrCfUtJ7j37cJ--eLEP7OS0A5dL88hUP1-_qx91OTYcTf0jBzTb9V5btYz8kqV6DLfXvjNMu0c-v-d4fRPI6H84rTXj-lqb1gty94wuP9ydMZgghHTms18V1_vEbxDtg/s1600/03.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WXwnjKTD0kKjz0_033JdkTZHk5bFKo3kCylMKWc1-Go5DucpO3-88J6qrCfUtJ7j37cJ--eLEP7OS0A5dL88hUP1-_qx91OTYcTf0jBzTb9V5btYz8kqV6DLfXvjNMu0c-v-d4fRPI6H84rTXj-lqb1gty94wuP9ydMZgghHTms18V1_vEbxDtg/s1600/03.jpg=w1440 2x" width="720" height="1080">
</a>
<figcaption>パッケージ側面</figcaption>
</figure>
<p>
側面の表示から<a href="https://jbpma.gr.jp/bulk-pharmaceuticals/gmp" title="https://jbpma.gr.jp/bulk-pharmaceuticals/gmp" target="_blank" rel="noopener noreferrer">GMP</a>認証も取得済みであることが伺える。たとえ飲み込んでも体内で分解されるほど自然素材で満ちている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_nxx2846_3CXK19Z-VIA1W29NS0IwlWPj69YT7GEWtq8g0qfiXfTD2PyDbWjl587nRck_nOAuh7n7vQV78Ma11Kd2-aTrqdEht0VOS0KZnVr-HkyM7Iwfd901iTJrysrV40uZcvIBqTmcoVqOXgyTAFkFinKsFCrsqxHec1JXhnctyx9TFCVe5o/s1600/04.jpg" imageanchor="1">
<img alt="箱を開けると包みに包まれたガムが10粒入っている" data-original-height="3888" data-original-width="2592" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_nxx2846_3CXK19Z-VIA1W29NS0IwlWPj69YT7GEWtq8g0qfiXfTD2PyDbWjl587nRck_nOAuh7n7vQV78Ma11Kd2-aTrqdEht0VOS0KZnVr-HkyM7Iwfd901iTJrysrV40uZcvIBqTmcoVqOXgyTAFkFinKsFCrsqxHec1JXhnctyx9TFCVe5o/s1600/04.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_nxx2846_3CXK19Z-VIA1W29NS0IwlWPj69YT7GEWtq8g0qfiXfTD2PyDbWjl587nRck_nOAuh7n7vQV78Ma11Kd2-aTrqdEht0VOS0KZnVr-HkyM7Iwfd901iTJrysrV40uZcvIBqTmcoVqOXgyTAFkFinKsFCrsqxHec1JXhnctyx9TFCVe5o/s1600/04.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_nxx2846_3CXK19Z-VIA1W29NS0IwlWPj69YT7GEWtq8g0qfiXfTD2PyDbWjl587nRck_nOAuh7n7vQV78Ma11Kd2-aTrqdEht0VOS0KZnVr-HkyM7Iwfd901iTJrysrV40uZcvIBqTmcoVqOXgyTAFkFinKsFCrsqxHec1JXhnctyx9TFCVe5o/s1600/04.jpg=w1440 2x" width="720" height="1080">
</a>
<figcaption>ガム10包</figcaption>
</figure>
<p>
1箱にガムが10粒入っている。購入することでこのガムの素材であるチクルの木の農家さん含めアマゾンの森を支援することが出来る仕組みのよう。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh25re8hSoj36yFvTAM2lGyp_-2lXgIYQdNFM-yFz_jzgKbMZRncv6byvVpo_FbQHhGpCoZCicsFUgXS7nkUrgr3SAlxngZ01ptwkUmcGF7q_IsiiELf8ivhmqTUQdwBt2czgY6Y-etPz9PoFbldfIkTdjJ1H5yoJlmZl34pqpELRtvFoHCOZEJVjo/s1600/05.jpg" imageanchor="1">
<img alt="包みを開けたガムが一粒、手のひらの上に乗っている。ガムの色はオレンジ色(琥珀色)で筒状である。" data-original-height="3888" data-original-width="2592" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh25re8hSoj36yFvTAM2lGyp_-2lXgIYQdNFM-yFz_jzgKbMZRncv6byvVpo_FbQHhGpCoZCicsFUgXS7nkUrgr3SAlxngZ01ptwkUmcGF7q_IsiiELf8ivhmqTUQdwBt2czgY6Y-etPz9PoFbldfIkTdjJ1H5yoJlmZl34pqpELRtvFoHCOZEJVjo/s1600/05.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh25re8hSoj36yFvTAM2lGyp_-2lXgIYQdNFM-yFz_jzgKbMZRncv6byvVpo_FbQHhGpCoZCicsFUgXS7nkUrgr3SAlxngZ01ptwkUmcGF7q_IsiiELf8ivhmqTUQdwBt2czgY6Y-etPz9PoFbldfIkTdjJ1H5yoJlmZl34pqpELRtvFoHCOZEJVjo/s1600/05.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh25re8hSoj36yFvTAM2lGyp_-2lXgIYQdNFM-yFz_jzgKbMZRncv6byvVpo_FbQHhGpCoZCicsFUgXS7nkUrgr3SAlxngZ01ptwkUmcGF7q_IsiiELf8ivhmqTUQdwBt2czgY6Y-etPz9PoFbldfIkTdjJ1H5yoJlmZl34pqpELRtvFoHCOZEJVjo/s1600/05.jpg=w1440 2x" width="720" height="1080">
</a>
<figcaption>チューイングガムの粒</figcaption>
</figure>
<p>
粒は琥珀色をしている。噛んでいくうちに体温でやわらかくなり、広く流通するガムに比べ粘り気が強い印象。奥歯で噛んでいると口腔内に張り付く感覚あり。前歯あたりでコチョコチョ噛んでいるくらいがちょうど良いかも。麻独特の風味か、特徴的な風味はあるが、キシリトールやペパーミントが爽やかで、考え事をしながら眼を瞑って(思考の/芽を摘むって)いると、ほどよく脳細胞が活性化する(気がする)。
</p>
<p>
<a href="https://endoca.co.jp/lineup/cbd-chewing-gum-100mg/" target="_blank" rel="noopener noreferrer" class="series-link">CBDチューインガム 100mg CBD | オーガニックCBDのENDOCA</a>
</p>
<p>
ここ1年ほど常に手元に持ち歩き、ここぞというときに口にしてきた。自然素材であること、甘すぎないことなどが自分の好みに合致して、心を落ち着かせたいとき、精神の部屋で座禅を組むときなど、重宝している。
</p>
<p style="text-align:right;">
<i>筆: H.T.</i>
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-9562727028155042632022-08-08T20:56:00.008+09:002022-08-08T21:19:14.279+09:00DUNE Royal Ornithopter Statue<figure class="none">
<img aria-hidden="true" alt="" data-original-height="1260" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh44-caAuhfx7bIExXoQZgeEM_-RkgkXq9tQeJRXAa7HG34Cv2tGzXqUFOx8QMcHabP-CCrv48DaNQTBCLfcTSWiQp9OIXKuFbeSiLhEhNS8ZJiTKUqvTNwShq8dgM6qW-V11S4LGnaI9MZO5rWmUF40sZxBZKl6U-YaxlEajniE9pNYz0csGZc2Sc/s1600/00%20OGP_Image.jpg" width="720" height="378">
</figure>
<div>
<a href="https://www.darkhorsedirect.com/collections/new-products/products/dune-royal-ornithopter-statue" target="_blank" rel="noopener noreferrer" class="series-link">Dune: Royal Ornithopter Statue – Dark Horse Direct</a>
</div>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUfzFQNrhnQBScu2E-35gCc82Q_oddSBVkGDQ_WiFXgCGgXG9kZy2gOV1NJ5bdozJhJlLzB7Yf5DR6oWPokYGYH8Ho_zvf16Sygsrr2WPNmFigpFcyo1fRoBIc79G30rMPp3x22y0esDSlqOctF6hZLLfuKSq3xLz7zDmlicmYuq64QS7wu7TCepc/s1600/01%20Outer%20Box%20Front.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUfzFQNrhnQBScu2E-35gCc82Q_oddSBVkGDQ_WiFXgCGgXG9kZy2gOV1NJ5bdozJhJlLzB7Yf5DR6oWPokYGYH8Ho_zvf16Sygsrr2WPNmFigpFcyo1fRoBIc79G30rMPp3x22y0esDSlqOctF6hZLLfuKSq3xLz7zDmlicmYuq64QS7wu7TCepc/s1600/01%20Outer%20Box%20Front.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUfzFQNrhnQBScu2E-35gCc82Q_oddSBVkGDQ_WiFXgCGgXG9kZy2gOV1NJ5bdozJhJlLzB7Yf5DR6oWPokYGYH8Ho_zvf16Sygsrr2WPNmFigpFcyo1fRoBIc79G30rMPp3x22y0esDSlqOctF6hZLLfuKSq3xLz7zDmlicmYuq64QS7wu7TCepc/s1600/01%20Outer%20Box%20Front.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUfzFQNrhnQBScu2E-35gCc82Q_oddSBVkGDQ_WiFXgCGgXG9kZy2gOV1NJ5bdozJhJlLzB7Yf5DR6oWPokYGYH8Ho_zvf16Sygsrr2WPNmFigpFcyo1fRoBIc79G30rMPp3x22y0esDSlqOctF6hZLLfuKSq3xLz7zDmlicmYuq64QS7wu7TCepc/s1600/01%20Outer%20Box%20Front.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>外箱正面</figcaption>
</figure>
<p>
光の当たり方によってDUNEロゴの下に惑星のシルエットが。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIwIRYGMJIW3qE624gGgwya_JC5Wb-y55WZ4d4AjLBRjUc8hGy0_eB9jvv2-y_ySVsGd9r5iCNfbSWg9Yn_nvWRcEhp_dJvV5t5XHHEUvWew8zIrjiWY13VYXrfcUp4jL14QHW6DH5uhFHPst8hlMVPaDIDzHuMEpz3zYlcDHWM_zhjILRLpUqlLI/s1600/02%20Outer%20Box%20Side.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIwIRYGMJIW3qE624gGgwya_JC5Wb-y55WZ4d4AjLBRjUc8hGy0_eB9jvv2-y_ySVsGd9r5iCNfbSWg9Yn_nvWRcEhp_dJvV5t5XHHEUvWew8zIrjiWY13VYXrfcUp4jL14QHW6DH5uhFHPst8hlMVPaDIDzHuMEpz3zYlcDHWM_zhjILRLpUqlLI/s1600/02%20Outer%20Box%20Side.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIwIRYGMJIW3qE624gGgwya_JC5Wb-y55WZ4d4AjLBRjUc8hGy0_eB9jvv2-y_ySVsGd9r5iCNfbSWg9Yn_nvWRcEhp_dJvV5t5XHHEUvWew8zIrjiWY13VYXrfcUp4jL14QHW6DH5uhFHPst8hlMVPaDIDzHuMEpz3zYlcDHWM_zhjILRLpUqlLI/s1600/02%20Outer%20Box%20Side.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIwIRYGMJIW3qE624gGgwya_JC5Wb-y55WZ4d4AjLBRjUc8hGy0_eB9jvv2-y_ySVsGd9r5iCNfbSWg9Yn_nvWRcEhp_dJvV5t5XHHEUvWew8zIrjiWY13VYXrfcUp4jL14QHW6DH5uhFHPst8hlMVPaDIDzHuMEpz3zYlcDHWM_zhjILRLpUqlLI/s1600/02%20Outer%20Box%20Side.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>外箱側面</figcaption>
</figure>
<p>
アトレイデス家の紋章が光の反射で浮かび上がる側面。“Royal Ornithopter”という名の通り、アトレイデス家が使用するタイプのオーニソプター。ブクっとした見た目のハルコンネンタイプや、劇中後半でカインズ博士が用意してくれていた旧型オーニソプターとは違い、スリムな印象の機体だ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_ONeEyIdo8P__qIZcGjNtTPu2z2ZKRZzMXP2MsRd4JHms2YK9a_UxQs1wFdlGRazn5DPPJLqGHnyMhtU9Axz6qOfx1UucOACCekdh85I0J9AcT34FncTXi6vbJCbk_O4vXvVZkZAmsVX_ELZ_20YKMjqP5fDa5QG0nv3jOLLczOh9wrXloGGJcg/s1600/03%20Outer%20Box%20Back.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_ONeEyIdo8P__qIZcGjNtTPu2z2ZKRZzMXP2MsRd4JHms2YK9a_UxQs1wFdlGRazn5DPPJLqGHnyMhtU9Axz6qOfx1UucOACCekdh85I0J9AcT34FncTXi6vbJCbk_O4vXvVZkZAmsVX_ELZ_20YKMjqP5fDa5QG0nv3jOLLczOh9wrXloGGJcg/s1600/03%20Outer%20Box%20Back.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_ONeEyIdo8P__qIZcGjNtTPu2z2ZKRZzMXP2MsRd4JHms2YK9a_UxQs1wFdlGRazn5DPPJLqGHnyMhtU9Axz6qOfx1UucOACCekdh85I0J9AcT34FncTXi6vbJCbk_O4vXvVZkZAmsVX_ELZ_20YKMjqP5fDa5QG0nv3jOLLczOh9wrXloGGJcg/s1600/03%20Outer%20Box%20Back.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_ONeEyIdo8P__qIZcGjNtTPu2z2ZKRZzMXP2MsRd4JHms2YK9a_UxQs1wFdlGRazn5DPPJLqGHnyMhtU9Axz6qOfx1UucOACCekdh85I0J9AcT34FncTXi6vbJCbk_O4vXvVZkZAmsVX_ELZ_20YKMjqP5fDa5QG0nv3jOLLczOh9wrXloGGJcg/s1600/03%20Outer%20Box%20Back.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>外箱裏面</figcaption>
</figure>
<p>
ジオラマセットで撮影された製品写真がプリントされている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6tSX25MeQnqH8htZGBCra78dmQdQusMifYcjTgPRH-QHwiqF29KpvTuaviLFUO1fJUM52q58A8kaxQODmMvJRf9QHpnC84x1XRP0CXvRxxuuBQbDpcK1Dx1f33B1cosqb0DbOSnSGClYR51uLQ-fBSQhUKPSW3C0va611t8GxPWdqRsN1QvfNZGE/s1600/04%20Serial%20Number%20Card.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6tSX25MeQnqH8htZGBCra78dmQdQusMifYcjTgPRH-QHwiqF29KpvTuaviLFUO1fJUM52q58A8kaxQODmMvJRf9QHpnC84x1XRP0CXvRxxuuBQbDpcK1Dx1f33B1cosqb0DbOSnSGClYR51uLQ-fBSQhUKPSW3C0va611t8GxPWdqRsN1QvfNZGE/s1600/04%20Serial%20Number%20Card.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6tSX25MeQnqH8htZGBCra78dmQdQusMifYcjTgPRH-QHwiqF29KpvTuaviLFUO1fJUM52q58A8kaxQODmMvJRf9QHpnC84x1XRP0CXvRxxuuBQbDpcK1Dx1f33B1cosqb0DbOSnSGClYR51uLQ-fBSQhUKPSW3C0va611t8GxPWdqRsN1QvfNZGE/s1600/04%20Serial%20Number%20Card.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6tSX25MeQnqH8htZGBCra78dmQdQusMifYcjTgPRH-QHwiqF29KpvTuaviLFUO1fJUM52q58A8kaxQODmMvJRf9QHpnC84x1XRP0CXvRxxuuBQbDpcK1Dx1f33B1cosqb0DbOSnSGClYR51uLQ-fBSQhUKPSW3C0va611t8GxPWdqRsN1QvfNZGE/s1600/04%20Serial%20Number%20Card.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>シリアル番号カード</figcaption>
</figure>
<p>
外箱の蓋を開けるとシリアル番号の書かれたカードが入っている。Edition 500。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTYaZS5xZD7P0y9OWFO3bD2nZKZ4A51m0PxhtMuth2yGTpDGo-QmNeI2ECOVkQZC-ntz5MB0Ep6ef51ZmldriVWHYPJ8F2sHvPFF8zBgEUacppvXfkdkSrklLkVZdI_eSjVH3L-Do6muSKl1YXO4cx5RqhvzxNf96DFW34xMmgg2ueXLnTque-aaE/s1600/05%20Inner%20Box%20Front.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTYaZS5xZD7P0y9OWFO3bD2nZKZ4A51m0PxhtMuth2yGTpDGo-QmNeI2ECOVkQZC-ntz5MB0Ep6ef51ZmldriVWHYPJ8F2sHvPFF8zBgEUacppvXfkdkSrklLkVZdI_eSjVH3L-Do6muSKl1YXO4cx5RqhvzxNf96DFW34xMmgg2ueXLnTque-aaE/s1600/05%20Inner%20Box%20Front.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTYaZS5xZD7P0y9OWFO3bD2nZKZ4A51m0PxhtMuth2yGTpDGo-QmNeI2ECOVkQZC-ntz5MB0Ep6ef51ZmldriVWHYPJ8F2sHvPFF8zBgEUacppvXfkdkSrklLkVZdI_eSjVH3L-Do6muSKl1YXO4cx5RqhvzxNf96DFW34xMmgg2ueXLnTque-aaE/s1600/05%20Inner%20Box%20Front.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTYaZS5xZD7P0y9OWFO3bD2nZKZ4A51m0PxhtMuth2yGTpDGo-QmNeI2ECOVkQZC-ntz5MB0Ep6ef51ZmldriVWHYPJ8F2sHvPFF8zBgEUacppvXfkdkSrklLkVZdI_eSjVH3L-Do6muSKl1YXO4cx5RqhvzxNf96DFW34xMmgg2ueXLnTque-aaE/s1600/05%20Inner%20Box%20Front.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>内箱発泡スチロール</figcaption>
</figure>
<p>
発泡スチロールでできた内箱にもDUNEのロゴが凹凸で記されている。よく見ればDUNEロゴは“E”の文字にある光の筋まで見える。こんなに細かな模様も浮かび上がるんだ…。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQR61I2zRE6i5ZOJiSaQHQDcX1OhiN-sP22IkWVmhlIShyQV3EymoUVUMSoYkmjPDDEaFWz45rvL8CaPsT21GLBTA6jjuqMLAA13pWbdM5sPpMNMZx_lAmgT38SeMijvEH2xW5pgQmY_IUAPsy8Ks_2tIf7tCsS5OxOL7QK2der2X_frBS2dq2Wyg/s1600/06%20Inner%20Box%20Opened.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQR61I2zRE6i5ZOJiSaQHQDcX1OhiN-sP22IkWVmhlIShyQV3EymoUVUMSoYkmjPDDEaFWz45rvL8CaPsT21GLBTA6jjuqMLAA13pWbdM5sPpMNMZx_lAmgT38SeMijvEH2xW5pgQmY_IUAPsy8Ks_2tIf7tCsS5OxOL7QK2der2X_frBS2dq2Wyg/s1600/06%20Inner%20Box%20Opened.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQR61I2zRE6i5ZOJiSaQHQDcX1OhiN-sP22IkWVmhlIShyQV3EymoUVUMSoYkmjPDDEaFWz45rvL8CaPsT21GLBTA6jjuqMLAA13pWbdM5sPpMNMZx_lAmgT38SeMijvEH2xW5pgQmY_IUAPsy8Ks_2tIf7tCsS5OxOL7QK2der2X_frBS2dq2Wyg/s1600/06%20Inner%20Box%20Opened.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQR61I2zRE6i5ZOJiSaQHQDcX1OhiN-sP22IkWVmhlIShyQV3EymoUVUMSoYkmjPDDEaFWz45rvL8CaPsT21GLBTA6jjuqMLAA13pWbdM5sPpMNMZx_lAmgT38SeMijvEH2xW5pgQmY_IUAPsy8Ks_2tIf7tCsS5OxOL7QK2der2X_frBS2dq2Wyg/s1600/06%20Inner%20Box%20Opened.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>内箱をぱかり</figcaption>
</figure>
<p>
ビニールのベールに包まれたオーニソプター本体ときれいに並んだ羽が。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzA_JyrLT-A-PZm2OoSgF8K52qfUgAolI9KBzMUuqfh7_LSOFb9fC9XtAfy-1EPfxsm6sTEkJQxGArjxGh_pHmPJwWKoxV29noZr8C4pZ2iqLtT4B5o6t5rwY0AtDNqPEHqrb2k6fFrJvAn92H07CTALLbKLPggoACziaxHR1VsP5tR2XxHl7M1Cw/s1600/07%20Inner%20Box%20Contents.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzA_JyrLT-A-PZm2OoSgF8K52qfUgAolI9KBzMUuqfh7_LSOFb9fC9XtAfy-1EPfxsm6sTEkJQxGArjxGh_pHmPJwWKoxV29noZr8C4pZ2iqLtT4B5o6t5rwY0AtDNqPEHqrb2k6fFrJvAn92H07CTALLbKLPggoACziaxHR1VsP5tR2XxHl7M1Cw/s1600/07%20Inner%20Box%20Contents.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzA_JyrLT-A-PZm2OoSgF8K52qfUgAolI9KBzMUuqfh7_LSOFb9fC9XtAfy-1EPfxsm6sTEkJQxGArjxGh_pHmPJwWKoxV29noZr8C4pZ2iqLtT4B5o6t5rwY0AtDNqPEHqrb2k6fFrJvAn92H07CTALLbKLPggoACziaxHR1VsP5tR2XxHl7M1Cw/s1600/07%20Inner%20Box%20Contents.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzA_JyrLT-A-PZm2OoSgF8K52qfUgAolI9KBzMUuqfh7_LSOFb9fC9XtAfy-1EPfxsm6sTEkJQxGArjxGh_pHmPJwWKoxV29noZr8C4pZ2iqLtT4B5o6t5rwY0AtDNqPEHqrb2k6fFrJvAn92H07CTALLbKLPggoACziaxHR1VsP5tR2XxHl7M1Cw/s1600/07%20Inner%20Box%20Contents.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>内容物</figcaption>
</figure>
<p>
オーニソプター本体は砂漠を模した土台と一体となっている。羽は2枚1組で並んでおり、計8枚入っている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaxvjesGF6Xo0fOugPC8kHPH8S2cYbcn-szQkZDqd78i1iEcxMmIpOOxk0KRQ0jKGKod8qTw5b7Wb6pIEDKrjayY6frAktvb_lnLMCOX1jhBd9PxFpw6aZK7UhoIRplqi8aJIyzPjAghpN_S-_yN6HQtZaYIfhKjvCUNMaU4ZOGwtUNUWXTr0rNxg/s1600/08%20All%20Parts.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaxvjesGF6Xo0fOugPC8kHPH8S2cYbcn-szQkZDqd78i1iEcxMmIpOOxk0KRQ0jKGKod8qTw5b7Wb6pIEDKrjayY6frAktvb_lnLMCOX1jhBd9PxFpw6aZK7UhoIRplqi8aJIyzPjAghpN_S-_yN6HQtZaYIfhKjvCUNMaU4ZOGwtUNUWXTr0rNxg/s1600/08%20All%20Parts.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaxvjesGF6Xo0fOugPC8kHPH8S2cYbcn-szQkZDqd78i1iEcxMmIpOOxk0KRQ0jKGKod8qTw5b7Wb6pIEDKrjayY6frAktvb_lnLMCOX1jhBd9PxFpw6aZK7UhoIRplqi8aJIyzPjAghpN_S-_yN6HQtZaYIfhKjvCUNMaU4ZOGwtUNUWXTr0rNxg/s1600/08%20All%20Parts.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaxvjesGF6Xo0fOugPC8kHPH8S2cYbcn-szQkZDqd78i1iEcxMmIpOOxk0KRQ0jKGKod8qTw5b7Wb6pIEDKrjayY6frAktvb_lnLMCOX1jhBd9PxFpw6aZK7UhoIRplqi8aJIyzPjAghpN_S-_yN6HQtZaYIfhKjvCUNMaU4ZOGwtUNUWXTr0rNxg/s1600/08%20All%20Parts.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>並ぶ内容物</figcaption>
</figure>
<p>
すべて取り出して並べてみたところ。本体に対する羽の大きさや羽の枚数から、このサイズ感でも本当に飛べそうなデザインである。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFvod4vdq7MBJeQ2braqw953eIm-W3kILoC9IQH6XOo4d7E_RPPvocUrHXgjJDZRhBUSfGwz4bdhDKCPrvgTEh_cVo8p7IfH3T7Wcp_zjiBE7zIAsF01kGawNwkv_oC-QMSFoUaxlnnCIFCDJjHKG9yqJ5VSD1jOY4ktB_hf82ToJt7D86is3FiEU/s1600/09%20Main%20Body%20without%20Wings%20Front.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFvod4vdq7MBJeQ2braqw953eIm-W3kILoC9IQH6XOo4d7E_RPPvocUrHXgjJDZRhBUSfGwz4bdhDKCPrvgTEh_cVo8p7IfH3T7Wcp_zjiBE7zIAsF01kGawNwkv_oC-QMSFoUaxlnnCIFCDJjHKG9yqJ5VSD1jOY4ktB_hf82ToJt7D86is3FiEU/s1600/09%20Main%20Body%20without%20Wings%20Front.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFvod4vdq7MBJeQ2braqw953eIm-W3kILoC9IQH6XOo4d7E_RPPvocUrHXgjJDZRhBUSfGwz4bdhDKCPrvgTEh_cVo8p7IfH3T7Wcp_zjiBE7zIAsF01kGawNwkv_oC-QMSFoUaxlnnCIFCDJjHKG9yqJ5VSD1jOY4ktB_hf82ToJt7D86is3FiEU/s1600/09%20Main%20Body%20without%20Wings%20Front.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFvod4vdq7MBJeQ2braqw953eIm-W3kILoC9IQH6XOo4d7E_RPPvocUrHXgjJDZRhBUSfGwz4bdhDKCPrvgTEh_cVo8p7IfH3T7Wcp_zjiBE7zIAsF01kGawNwkv_oC-QMSFoUaxlnnCIFCDJjHKG9yqJ5VSD1jOY4ktB_hf82ToJt7D86is3FiEU/s1600/09%20Main%20Body%20without%20Wings%20Front.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>本体のみ 斜め前からのアングル</figcaption>
</figure>
<p>
羽を取り付ける前に記念写真をば。本体の塗装は控えめな色味でありつつも、砂粒に晒されたかのような粒子感あるディテールであることが伺える。いかにも軍用機といった地味な暗い色味だ。土台の砂漠は細かく波打った表現がなされている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd5eQ3vZom5xI1wkjJnSNtvjYOAftIUJxo4RAeU5nMYcN1c3lfLYy4ANfCu3Gq0GyWVwgf-JlMnt0sRbn_XLlm9D1i_mo0-2cHODxuHv443CjLWBI3WC90JGBgoXaTL9fj0mdSvd7KMkwFghIS_fk9jRdqWsHhX-8QVenIkF79pMKAUwPF612RwZY/s1600/10%20Main%20Body%20without%20Wings%20Back.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd5eQ3vZom5xI1wkjJnSNtvjYOAftIUJxo4RAeU5nMYcN1c3lfLYy4ANfCu3Gq0GyWVwgf-JlMnt0sRbn_XLlm9D1i_mo0-2cHODxuHv443CjLWBI3WC90JGBgoXaTL9fj0mdSvd7KMkwFghIS_fk9jRdqWsHhX-8QVenIkF79pMKAUwPF612RwZY/s1600/10%20Main%20Body%20without%20Wings%20Back.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd5eQ3vZom5xI1wkjJnSNtvjYOAftIUJxo4RAeU5nMYcN1c3lfLYy4ANfCu3Gq0GyWVwgf-JlMnt0sRbn_XLlm9D1i_mo0-2cHODxuHv443CjLWBI3WC90JGBgoXaTL9fj0mdSvd7KMkwFghIS_fk9jRdqWsHhX-8QVenIkF79pMKAUwPF612RwZY/s1600/10%20Main%20Body%20without%20Wings%20Back.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd5eQ3vZom5xI1wkjJnSNtvjYOAftIUJxo4RAeU5nMYcN1c3lfLYy4ANfCu3Gq0GyWVwgf-JlMnt0sRbn_XLlm9D1i_mo0-2cHODxuHv443CjLWBI3WC90JGBgoXaTL9fj0mdSvd7KMkwFghIS_fk9jRdqWsHhX-8QVenIkF79pMKAUwPF612RwZY/s1600/10%20Main%20Body%20without%20Wings%20Back.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>本体のみ 斜め後ろからのアングル</figcaption>
</figure>
<p>
羽付け根のすぐ後ろにある排気口、後部から乗り込むために開いた状態のタラップ(乗降口)、着陸用の脚に至るまで比較的精巧なつくりである。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI3xEA4OrC4xGwJx13a4a_3hZ4cJUNyCOBdLjtu4i0FbbCUf3HbASaqSx0eH97fOWnM9rdWNCSLL16i2zd4hbo-6kz-iKbedHqkT2fcl-GQrokNFU6GG1FBgA04oRPfB3u2PtgT_9nHaJuTX_CU-eGU2CL9ZATqoGpypD9Npd_X28xG4yonQHnh98/s1600/11%20Main%20Body%20without%20Wings%20Bottom.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI3xEA4OrC4xGwJx13a4a_3hZ4cJUNyCOBdLjtu4i0FbbCUf3HbASaqSx0eH97fOWnM9rdWNCSLL16i2zd4hbo-6kz-iKbedHqkT2fcl-GQrokNFU6GG1FBgA04oRPfB3u2PtgT_9nHaJuTX_CU-eGU2CL9ZATqoGpypD9Npd_X28xG4yonQHnh98/s1600/11%20Main%20Body%20without%20Wings%20Bottom.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI3xEA4OrC4xGwJx13a4a_3hZ4cJUNyCOBdLjtu4i0FbbCUf3HbASaqSx0eH97fOWnM9rdWNCSLL16i2zd4hbo-6kz-iKbedHqkT2fcl-GQrokNFU6GG1FBgA04oRPfB3u2PtgT_9nHaJuTX_CU-eGU2CL9ZATqoGpypD9Npd_X28xG4yonQHnh98/s1600/11%20Main%20Body%20without%20Wings%20Bottom.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI3xEA4OrC4xGwJx13a4a_3hZ4cJUNyCOBdLjtu4i0FbbCUf3HbASaqSx0eH97fOWnM9rdWNCSLL16i2zd4hbo-6kz-iKbedHqkT2fcl-GQrokNFU6GG1FBgA04oRPfB3u2PtgT_9nHaJuTX_CU-eGU2CL9ZATqoGpypD9Npd_X28xG4yonQHnh98/s1600/11%20Main%20Body%20without%20Wings%20Bottom.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>台座底面</figcaption>
</figure>
<p>
DUNEロゴに加えシリアル番号や製品名、各社ロゴ、コピーライト表記などが記されている。丸い滑り止めが4箇所にある。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy19uAytE6LtTTjbiJP1Ev5uV_LelsvDSMMkgs0UR2XTmnRI8MBLAPV_KYFUiSMYM8Lsgw8zF-BOzIp7PInEu1g2WZZwV83lL-DLCziKu4M5JfscK-oL0mBpTHob_X2-OQaoc00N5K0X-9tnD5kcEsxzCKJdO_XN-Purksw4tjcEa3W1xJ_wHH7pg/s1600/12%20Wings.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy19uAytE6LtTTjbiJP1Ev5uV_LelsvDSMMkgs0UR2XTmnRI8MBLAPV_KYFUiSMYM8Lsgw8zF-BOzIp7PInEu1g2WZZwV83lL-DLCziKu4M5JfscK-oL0mBpTHob_X2-OQaoc00N5K0X-9tnD5kcEsxzCKJdO_XN-Purksw4tjcEa3W1xJ_wHH7pg/s1600/12%20Wings.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy19uAytE6LtTTjbiJP1Ev5uV_LelsvDSMMkgs0UR2XTmnRI8MBLAPV_KYFUiSMYM8Lsgw8zF-BOzIp7PInEu1g2WZZwV83lL-DLCziKu4M5JfscK-oL0mBpTHob_X2-OQaoc00N5K0X-9tnD5kcEsxzCKJdO_XN-Purksw4tjcEa3W1xJ_wHH7pg/s1600/12%20Wings.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy19uAytE6LtTTjbiJP1Ev5uV_LelsvDSMMkgs0UR2XTmnRI8MBLAPV_KYFUiSMYM8Lsgw8zF-BOzIp7PInEu1g2WZZwV83lL-DLCziKu4M5JfscK-oL0mBpTHob_X2-OQaoc00N5K0X-9tnD5kcEsxzCKJdO_XN-Purksw4tjcEa3W1xJ_wHH7pg/s1600/12%20Wings.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>羽のディテール</figcaption>
</figure>
<p>
地味な色合いの本体に比べ、羽は砂丘を思わせる黄土色。こちらも本体同様、砂粒感のある塗装が良い味を出している。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR77RcFGcVpI7BBsYl_hlRS_vydi5q8kDDOe4xcEUTHuwwB4cVIUmfWO5MDKeKu4hRPRrGQhJPSCUqINZHWuntn43gYY4BR32rEUphkINMx7xe0G67cWcM26HEoS2c_JAJaneN0uVnZNtHIuE1MCxuNBbf8n2oljaGM6EhpKTV2cSxu374tOnoYaE/s1600/13%20Wings%20Joints.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR77RcFGcVpI7BBsYl_hlRS_vydi5q8kDDOe4xcEUTHuwwB4cVIUmfWO5MDKeKu4hRPRrGQhJPSCUqINZHWuntn43gYY4BR32rEUphkINMx7xe0G67cWcM26HEoS2c_JAJaneN0uVnZNtHIuE1MCxuNBbf8n2oljaGM6EhpKTV2cSxu374tOnoYaE/s1600/13%20Wings%20Joints.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR77RcFGcVpI7BBsYl_hlRS_vydi5q8kDDOe4xcEUTHuwwB4cVIUmfWO5MDKeKu4hRPRrGQhJPSCUqINZHWuntn43gYY4BR32rEUphkINMx7xe0G67cWcM26HEoS2c_JAJaneN0uVnZNtHIuE1MCxuNBbf8n2oljaGM6EhpKTV2cSxu374tOnoYaE/s1600/13%20Wings%20Joints.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR77RcFGcVpI7BBsYl_hlRS_vydi5q8kDDOe4xcEUTHuwwB4cVIUmfWO5MDKeKu4hRPRrGQhJPSCUqINZHWuntn43gYY4BR32rEUphkINMx7xe0G67cWcM26HEoS2c_JAJaneN0uVnZNtHIuE1MCxuNBbf8n2oljaGM6EhpKTV2cSxu374tOnoYaE/s1600/13%20Wings%20Joints.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>羽側 取り付け部</figcaption>
</figure>
<p>
取り付け部分には1から8までの数字が彫ってある。もちろん羽を取り付ければ数字は埋まって見えなくなる。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnRH4y4DV3Dwbn8Btpr5J0SfoZ0Oivgd43pdxBSlGVkHr-VTdq7mh-etT22qovjohAMM8ZTVqMmMorW-CJ_pX4fyb9tY3EUT-QuvYHOrAxZY_5GGzB2Bl9NmxNYhhAFo5fxzhrBFYDLPWvh8lDf7LZKMeaMBUATWjjtYMWP92K1i7Wzm71OXw0YQ/s1600/14%20Main%20Body%20Joint%20Numbers%20Left.jpg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnRH4y4DV3Dwbn8Btpr5J0SfoZ0Oivgd43pdxBSlGVkHr-VTdq7mh-etT22qovjohAMM8ZTVqMmMorW-CJ_pX4fyb9tY3EUT-QuvYHOrAxZY_5GGzB2Bl9NmxNYhhAFo5fxzhrBFYDLPWvh8lDf7LZKMeaMBUATWjjtYMWP92K1i7Wzm71OXw0YQ/s1600/14%20Main%20Body%20Joint%20Numbers%20Left.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnRH4y4DV3Dwbn8Btpr5J0SfoZ0Oivgd43pdxBSlGVkHr-VTdq7mh-etT22qovjohAMM8ZTVqMmMorW-CJ_pX4fyb9tY3EUT-QuvYHOrAxZY_5GGzB2Bl9NmxNYhhAFo5fxzhrBFYDLPWvh8lDf7LZKMeaMBUATWjjtYMWP92K1i7Wzm71OXw0YQ/s1600/14%20Main%20Body%20Joint%20Numbers%20Left.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnRH4y4DV3Dwbn8Btpr5J0SfoZ0Oivgd43pdxBSlGVkHr-VTdq7mh-etT22qovjohAMM8ZTVqMmMorW-CJ_pX4fyb9tY3EUT-QuvYHOrAxZY_5GGzB2Bl9NmxNYhhAFo5fxzhrBFYDLPWvh8lDf7LZKMeaMBUATWjjtYMWP92K1i7Wzm71OXw0YQ/s1600/14%20Main%20Body%20Joint%20Numbers%20Left.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>本体左側 羽取り付け部</figcaption>
</figure>
<p>
本体の左側は羽を取り付ける凹み部分には1から4までの数字が彫ってある。羽の数字と対応した箇所へ挿し込むつくりだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaVmBgjZf1ANysbJzLlGiL-DkBQjygmiHNcYvO_YHUXZgHOgeK_MMuleF-JCtgKRqPXR-VyP9Qshxg400SRpewKCgtJ--mbCwmcKJpmr7ughFOeT66BxFZiVGUfgdXiyJdur-Fa60GIY6EXrRl80qhs8hDzOou-xpxEqMn_XvrJkMcOiF88EwlIrs/s1600/15%20Main%20Body%20Joint%20Numbers%20Right.jpg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="2400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaVmBgjZf1ANysbJzLlGiL-DkBQjygmiHNcYvO_YHUXZgHOgeK_MMuleF-JCtgKRqPXR-VyP9Qshxg400SRpewKCgtJ--mbCwmcKJpmr7ughFOeT66BxFZiVGUfgdXiyJdur-Fa60GIY6EXrRl80qhs8hDzOou-xpxEqMn_XvrJkMcOiF88EwlIrs/s1600/15%20Main%20Body%20Joint%20Numbers%20Right.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaVmBgjZf1ANysbJzLlGiL-DkBQjygmiHNcYvO_YHUXZgHOgeK_MMuleF-JCtgKRqPXR-VyP9Qshxg400SRpewKCgtJ--mbCwmcKJpmr7ughFOeT66BxFZiVGUfgdXiyJdur-Fa60GIY6EXrRl80qhs8hDzOou-xpxEqMn_XvrJkMcOiF88EwlIrs/s1600/15%20Main%20Body%20Joint%20Numbers%20Right.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaVmBgjZf1ANysbJzLlGiL-DkBQjygmiHNcYvO_YHUXZgHOgeK_MMuleF-JCtgKRqPXR-VyP9Qshxg400SRpewKCgtJ--mbCwmcKJpmr7ughFOeT66BxFZiVGUfgdXiyJdur-Fa60GIY6EXrRl80qhs8hDzOou-xpxEqMn_XvrJkMcOiF88EwlIrs/s1600/15%20Main%20Body%20Joint%20Numbers%20Right.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>本体右側 羽取り付け部</figcaption>
</figure>
<p>
右側には5から8までの数字。組み立て順としては4, 7 → 3, 8 → 2, 5 → 1, 6が良さそう。取り付け中に羽同士が干渉せず組み立てられるからだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYmfHAdKjyboRRXEIPopMSNxqGe9X0ldbMks-fpe5Cyyxz39lpLEsVNzCSHlkJEqcmykvJMmj03nyVl0hhjwutXrTHFLMLG546NYkO2XNDS0qLBkZQNkPgb7K51QGyODup93T7jW_NpP-QsgiTrMtCvnhC-sKJNkUEB6EfJYe7uzW0YPoiDTtZ1Mc/s1600/16%20Ornithopter%20Head.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYmfHAdKjyboRRXEIPopMSNxqGe9X0ldbMks-fpe5Cyyxz39lpLEsVNzCSHlkJEqcmykvJMmj03nyVl0hhjwutXrTHFLMLG546NYkO2XNDS0qLBkZQNkPgb7K51QGyODup93T7jW_NpP-QsgiTrMtCvnhC-sKJNkUEB6EfJYe7uzW0YPoiDTtZ1Mc/s1600/16%20Ornithopter%20Head.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYmfHAdKjyboRRXEIPopMSNxqGe9X0ldbMks-fpe5Cyyxz39lpLEsVNzCSHlkJEqcmykvJMmj03nyVl0hhjwutXrTHFLMLG546NYkO2XNDS0qLBkZQNkPgb7K51QGyODup93T7jW_NpP-QsgiTrMtCvnhC-sKJNkUEB6EfJYe7uzW0YPoiDTtZ1Mc/s1600/16%20Ornithopter%20Head.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYmfHAdKjyboRRXEIPopMSNxqGe9X0ldbMks-fpe5Cyyxz39lpLEsVNzCSHlkJEqcmykvJMmj03nyVl0hhjwutXrTHFLMLG546NYkO2XNDS0qLBkZQNkPgb7K51QGyODup93T7jW_NpP-QsgiTrMtCvnhC-sKJNkUEB6EfJYe7uzW0YPoiDTtZ1Mc/s1600/16%20Ornithopter%20Head.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>羽の取り付け完了</figcaption>
</figure>
<p>
形になったオーニソプター。昆虫チックでありつつも重厚感を併せ持った、唯一無二のデザイン。なお、本製品はStatue(スタチュー:立像)なので可動部分は一切ない。羽も動かせないし、脚も動かない。この形をたのしむのだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd2ffHYUSxaOlgOIcBRARfbD34UyOLQ6JdgUYZcFV0gSbi7iXJs19Q5HQHajF11aQW4UQUAXxDoUZ8rUuSsXVYM7X2hcnZmIr_TkrJMrJj0Wbf8aMhJ9ZZaTc-uV26MsAvYjUhsfMFBU3upTHQjz5ghlHoOWcyLS9NLrx0y5w26Q5ZVLP5TgB5yZ8/s1600/17%20Ornithopter%20Tail.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd2ffHYUSxaOlgOIcBRARfbD34UyOLQ6JdgUYZcFV0gSbi7iXJs19Q5HQHajF11aQW4UQUAXxDoUZ8rUuSsXVYM7X2hcnZmIr_TkrJMrJj0Wbf8aMhJ9ZZaTc-uV26MsAvYjUhsfMFBU3upTHQjz5ghlHoOWcyLS9NLrx0y5w26Q5ZVLP5TgB5yZ8/s1600/17%20Ornithopter%20Tail.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd2ffHYUSxaOlgOIcBRARfbD34UyOLQ6JdgUYZcFV0gSbi7iXJs19Q5HQHajF11aQW4UQUAXxDoUZ8rUuSsXVYM7X2hcnZmIr_TkrJMrJj0Wbf8aMhJ9ZZaTc-uV26MsAvYjUhsfMFBU3upTHQjz5ghlHoOWcyLS9NLrx0y5w26Q5ZVLP5TgB5yZ8/s1600/17%20Ornithopter%20Tail.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd2ffHYUSxaOlgOIcBRARfbD34UyOLQ6JdgUYZcFV0gSbi7iXJs19Q5HQHajF11aQW4UQUAXxDoUZ8rUuSsXVYM7X2hcnZmIr_TkrJMrJj0Wbf8aMhJ9ZZaTc-uV26MsAvYjUhsfMFBU3upTHQjz5ghlHoOWcyLS9NLrx0y5w26Q5ZVLP5TgB5yZ8/s1600/17%20Ornithopter%20Tail.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>後方斜め上から見下ろす</figcaption>
</figure>
<p>
本体と羽の色によるコントラスト、砂粒感の効いたディテール、尻尾の先端に位置する推進装置までしっかりと表現されている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-6d5-KO7e8eb20UU_HWu8EqHm5tSjTIfM7Nw7tc081G_ura8JKUcKevOrPAEnj10ELLACaEpOYyj4FcxmORoQRds68ehcCKj7ma5Ytorw5MqFYfo81EslKrzO0WG1gC2YO7xS_wBYW9K8SbCe9-PCxLpJwiLTDguzQyI4e_zOUzdW9KsJhYROwX0/s1600/18%20Ornithopter%20Wings.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-6d5-KO7e8eb20UU_HWu8EqHm5tSjTIfM7Nw7tc081G_ura8JKUcKevOrPAEnj10ELLACaEpOYyj4FcxmORoQRds68ehcCKj7ma5Ytorw5MqFYfo81EslKrzO0WG1gC2YO7xS_wBYW9K8SbCe9-PCxLpJwiLTDguzQyI4e_zOUzdW9KsJhYROwX0/s1600/18%20Ornithopter%20Wings.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-6d5-KO7e8eb20UU_HWu8EqHm5tSjTIfM7Nw7tc081G_ura8JKUcKevOrPAEnj10ELLACaEpOYyj4FcxmORoQRds68ehcCKj7ma5Ytorw5MqFYfo81EslKrzO0WG1gC2YO7xS_wBYW9K8SbCe9-PCxLpJwiLTDguzQyI4e_zOUzdW9KsJhYROwX0/s1600/18%20Ornithopter%20Wings.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-6d5-KO7e8eb20UU_HWu8EqHm5tSjTIfM7Nw7tc081G_ura8JKUcKevOrPAEnj10ELLACaEpOYyj4FcxmORoQRds68ehcCKj7ma5Ytorw5MqFYfo81EslKrzO0WG1gC2YO7xS_wBYW9K8SbCe9-PCxLpJwiLTDguzQyI4e_zOUzdW9KsJhYROwX0/s1600/18%20Ornithopter%20Wings.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>羽の様子</figcaption>
</figure>
<p>
折りたたまれた状態からやや展開しかけているところを再現したのだろう。そのため羽は飛行中に後ろを向く側が外側を向いている状態。羽、動かしたい。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSs6aAobbGVrRIsSGqS-11Zlvvp1cOz-mF6QcZMwBSjdFKjBMiJmsZSSN6Y3ceS6xGw85wqSTKPpqX7w63XjhQBRBRlHD-n-uYki4PfjiP_qU7C1QHiRf_aiUvbe4Dr9nSSfezH-dJaP6cu29VtYZWrW8rI1xHnhYAWNaVZyNk8J5n93x0URlseo/s1600/19%20Ornithopter%20Low%20Angle%20Back.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSs6aAobbGVrRIsSGqS-11Zlvvp1cOz-mF6QcZMwBSjdFKjBMiJmsZSSN6Y3ceS6xGw85wqSTKPpqX7w63XjhQBRBRlHD-n-uYki4PfjiP_qU7C1QHiRf_aiUvbe4Dr9nSSfezH-dJaP6cu29VtYZWrW8rI1xHnhYAWNaVZyNk8J5n93x0URlseo/s1600/19%20Ornithopter%20Low%20Angle%20Back.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSs6aAobbGVrRIsSGqS-11Zlvvp1cOz-mF6QcZMwBSjdFKjBMiJmsZSSN6Y3ceS6xGw85wqSTKPpqX7w63XjhQBRBRlHD-n-uYki4PfjiP_qU7C1QHiRf_aiUvbe4Dr9nSSfezH-dJaP6cu29VtYZWrW8rI1xHnhYAWNaVZyNk8J5n93x0URlseo/s1600/19%20Ornithopter%20Low%20Angle%20Back.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSs6aAobbGVrRIsSGqS-11Zlvvp1cOz-mF6QcZMwBSjdFKjBMiJmsZSSN6Y3ceS6xGw85wqSTKPpqX7w63XjhQBRBRlHD-n-uYki4PfjiP_qU7C1QHiRf_aiUvbe4Dr9nSSfezH-dJaP6cu29VtYZWrW8rI1xHnhYAWNaVZyNk8J5n93x0URlseo/s1600/19%20Ornithopter%20Low%20Angle%20Back.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>低めの目線から 斜め後ろからのアングル</figcaption>
</figure>
<p>
台に乗せて目線を合わせて撮影。このタラップを駆け上がって操縦席へ乗り込みたい。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiViwIl1_2zeHGCxqX2JEN1wUt7rvMvWszrqVOW8Ci6BnWfEJe_LhD8YCzEyi6ocDH2GZh387OeApu3CfGSyuEq6zqiIsH7ZdnAUfzu7TszKuTLcNDmiMuANud9avAQuj75ZkSQcrg7T7D1hbDtWZGcrm72V9HGCXyPKZbTpV3aJAuESMzXyWr6cts/s1600/20%20Ornithopter%20Low%20Angle%20Right.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiViwIl1_2zeHGCxqX2JEN1wUt7rvMvWszrqVOW8Ci6BnWfEJe_LhD8YCzEyi6ocDH2GZh387OeApu3CfGSyuEq6zqiIsH7ZdnAUfzu7TszKuTLcNDmiMuANud9avAQuj75ZkSQcrg7T7D1hbDtWZGcrm72V9HGCXyPKZbTpV3aJAuESMzXyWr6cts/s1600/20%20Ornithopter%20Low%20Angle%20Right.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiViwIl1_2zeHGCxqX2JEN1wUt7rvMvWszrqVOW8Ci6BnWfEJe_LhD8YCzEyi6ocDH2GZh387OeApu3CfGSyuEq6zqiIsH7ZdnAUfzu7TszKuTLcNDmiMuANud9avAQuj75ZkSQcrg7T7D1hbDtWZGcrm72V9HGCXyPKZbTpV3aJAuESMzXyWr6cts/s1600/20%20Ornithopter%20Low%20Angle%20Right.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiViwIl1_2zeHGCxqX2JEN1wUt7rvMvWszrqVOW8Ci6BnWfEJe_LhD8YCzEyi6ocDH2GZh387OeApu3CfGSyuEq6zqiIsH7ZdnAUfzu7TszKuTLcNDmiMuANud9avAQuj75ZkSQcrg7T7D1hbDtWZGcrm72V9HGCXyPKZbTpV3aJAuESMzXyWr6cts/s1600/20%20Ornithopter%20Low%20Angle%20Right.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>低め目線から 右側</figcaption>
</figure>
<p>
こう見ると昆虫同様、脚が6本あることが分かる。タラップに4本、操縦席下に大きめの脚が2本。この製品はスタチューなので重心の都合上、本体中央に支えが1本あるが、デザインが良いのでさほど気にならない。確か映画の撮影に使われた実物大オーニソプターにも同じような位置に支柱があった気がする。ここがオーニソプターの重心であり、支えるべき箇所なのだろう。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKkqVZU6QeHh9VIlIzfv9VlkyBTi6NYnC4TJKC8ZEZ_BZUEM__IJuNeDq9Eri0b1j48dWJOtpJKiU-sbGqSY3pPNEUztv6G_rS3zLE5BJIrR5S-R3Jz0cpeOFdojrYS1Rer3B_aKEXZDm8tmRSE0btGxTvgjX2eFxIsAATWqQTVCdXHG1B-cDUjjM/s1600/21%20Ornithopter%20Low%20Angle%20Front.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKkqVZU6QeHh9VIlIzfv9VlkyBTi6NYnC4TJKC8ZEZ_BZUEM__IJuNeDq9Eri0b1j48dWJOtpJKiU-sbGqSY3pPNEUztv6G_rS3zLE5BJIrR5S-R3Jz0cpeOFdojrYS1Rer3B_aKEXZDm8tmRSE0btGxTvgjX2eFxIsAATWqQTVCdXHG1B-cDUjjM/s1600/21%20Ornithopter%20Low%20Angle%20Front.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKkqVZU6QeHh9VIlIzfv9VlkyBTi6NYnC4TJKC8ZEZ_BZUEM__IJuNeDq9Eri0b1j48dWJOtpJKiU-sbGqSY3pPNEUztv6G_rS3zLE5BJIrR5S-R3Jz0cpeOFdojrYS1Rer3B_aKEXZDm8tmRSE0btGxTvgjX2eFxIsAATWqQTVCdXHG1B-cDUjjM/s1600/21%20Ornithopter%20Low%20Angle%20Front.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKkqVZU6QeHh9VIlIzfv9VlkyBTi6NYnC4TJKC8ZEZ_BZUEM__IJuNeDq9Eri0b1j48dWJOtpJKiU-sbGqSY3pPNEUztv6G_rS3zLE5BJIrR5S-R3Jz0cpeOFdojrYS1Rer3B_aKEXZDm8tmRSE0btGxTvgjX2eFxIsAATWqQTVCdXHG1B-cDUjjM/s1600/21%20Ornithopter%20Low%20Angle%20Front.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>低め目線 正面から</figcaption>
</figure>
<p>
この特徴的な逆三角形のシルエットこそ、アトレイデス家御用達のオーニソプターだ。スタチューでは窓は透明ではなく本体と同じ素材。窓は凹凸と塗装で表現されている。下手に内部が見えるよりも重厚感があってよろしい。操縦席直下に、まるで小さな腕のようなライトが1対ついているのも分かる。よく出来ている。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYBm1xsmE41xcLiWMCnNRERPEo_f3EmNrC4x3lvZPVDB4pVW8QWoocjV1IHydA__Tme6PvcL90HBPNNOoijFQ1XJN3KVDP0jSnwPRbU3PMmy6AaNIOjNKyPmWBiyI5ixne5oMlj5Y5nCIrnmzjs7nyX_45PtqvEjNrhDgBTG3Xw8nOD5W77FMpEKU/s1600/22%20Ornithopter%20Low%20Angle%20The%20Atreides%20Symbol.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYBm1xsmE41xcLiWMCnNRERPEo_f3EmNrC4x3lvZPVDB4pVW8QWoocjV1IHydA__Tme6PvcL90HBPNNOoijFQ1XJN3KVDP0jSnwPRbU3PMmy6AaNIOjNKyPmWBiyI5ixne5oMlj5Y5nCIrnmzjs7nyX_45PtqvEjNrhDgBTG3Xw8nOD5W77FMpEKU/s1600/22%20Ornithopter%20Low%20Angle%20The%20Atreides%20Symbol.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYBm1xsmE41xcLiWMCnNRERPEo_f3EmNrC4x3lvZPVDB4pVW8QWoocjV1IHydA__Tme6PvcL90HBPNNOoijFQ1XJN3KVDP0jSnwPRbU3PMmy6AaNIOjNKyPmWBiyI5ixne5oMlj5Y5nCIrnmzjs7nyX_45PtqvEjNrhDgBTG3Xw8nOD5W77FMpEKU/s1600/22%20Ornithopter%20Low%20Angle%20The%20Atreides%20Symbol.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYBm1xsmE41xcLiWMCnNRERPEo_f3EmNrC4x3lvZPVDB4pVW8QWoocjV1IHydA__Tme6PvcL90HBPNNOoijFQ1XJN3KVDP0jSnwPRbU3PMmy6AaNIOjNKyPmWBiyI5ixne5oMlj5Y5nCIrnmzjs7nyX_45PtqvEjNrhDgBTG3Xw8nOD5W77FMpEKU/s1600/22%20Ornithopter%20Low%20Angle%20The%20Atreides%20Symbol.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>アトレイデス家の紋章</figcaption>
</figure>
<p>
操縦席側面は大窓の直ぐ後ろにはアトレイデス家の紋章がある。いいアクセント。しかし今にも動き出しそうなこの羽と脚よ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijo6UeIzqslUApefj3x3lVUm-VHq9kcBKYZHlNPAlm_ZD83kBwEmIWQMpIg_0U4cpJzRySO7IdxbfQ7jC90zAnlkIKSLB3CE48F9ZhZUKOEqfxdbIIC60YupFzKVfQhQF6VDEW6ne7hWdQmsXxB2-EWUyRtW0G_nkYhoB2DycC3YQzrYijREQZWzQ/s1600/23%20Ornithopter%20Low%20Angle%20Ramp%20Door.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijo6UeIzqslUApefj3x3lVUm-VHq9kcBKYZHlNPAlm_ZD83kBwEmIWQMpIg_0U4cpJzRySO7IdxbfQ7jC90zAnlkIKSLB3CE48F9ZhZUKOEqfxdbIIC60YupFzKVfQhQF6VDEW6ne7hWdQmsXxB2-EWUyRtW0G_nkYhoB2DycC3YQzrYijREQZWzQ/s1600/23%20Ornithopter%20Low%20Angle%20Ramp%20Door.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijo6UeIzqslUApefj3x3lVUm-VHq9kcBKYZHlNPAlm_ZD83kBwEmIWQMpIg_0U4cpJzRySO7IdxbfQ7jC90zAnlkIKSLB3CE48F9ZhZUKOEqfxdbIIC60YupFzKVfQhQF6VDEW6ne7hWdQmsXxB2-EWUyRtW0G_nkYhoB2DycC3YQzrYijREQZWzQ/s1600/23%20Ornithopter%20Low%20Angle%20Ramp%20Door.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijo6UeIzqslUApefj3x3lVUm-VHq9kcBKYZHlNPAlm_ZD83kBwEmIWQMpIg_0U4cpJzRySO7IdxbfQ7jC90zAnlkIKSLB3CE48F9ZhZUKOEqfxdbIIC60YupFzKVfQhQF6VDEW6ne7hWdQmsXxB2-EWUyRtW0G_nkYhoB2DycC3YQzrYijREQZWzQ/s1600/23%20Ornithopter%20Low%20Angle%20Ramp%20Door.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>タラップの先</figcaption>
</figure>
<p>
意地悪なアングルから撮影。タラップの先は当然真っ平らに塞がっており、内部は表現されていない。しかし、少し凹んだ部分が真っ平らになっているため、普通に見る分にはまるでタラップの先まで表現されているように錯覚する。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_y24VyEF4iD8o6A4GG2TYfXY9Sp2w8HJsydoLtrMEZn71cZIQVe4_VZaStcl5EiC_ktlWCJ3toPQj8mOfLkEptmphGpB8jc6NCiemPwHC6tgrlxsQ0C5Ueo3csVvCyolrpnfprdaafpPaoMMFvLPqQQui1Rx_cGQk_w7jMjYrfMsTa6hVmKF8OJw/s1600/24%20Ornithopter%20Cockpit.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_y24VyEF4iD8o6A4GG2TYfXY9Sp2w8HJsydoLtrMEZn71cZIQVe4_VZaStcl5EiC_ktlWCJ3toPQj8mOfLkEptmphGpB8jc6NCiemPwHC6tgrlxsQ0C5Ueo3csVvCyolrpnfprdaafpPaoMMFvLPqQQui1Rx_cGQk_w7jMjYrfMsTa6hVmKF8OJw/s1600/24%20Ornithopter%20Cockpit.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_y24VyEF4iD8o6A4GG2TYfXY9Sp2w8HJsydoLtrMEZn71cZIQVe4_VZaStcl5EiC_ktlWCJ3toPQj8mOfLkEptmphGpB8jc6NCiemPwHC6tgrlxsQ0C5Ueo3csVvCyolrpnfprdaafpPaoMMFvLPqQQui1Rx_cGQk_w7jMjYrfMsTa6hVmKF8OJw/s1600/24%20Ornithopter%20Cockpit.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_y24VyEF4iD8o6A4GG2TYfXY9Sp2w8HJsydoLtrMEZn71cZIQVe4_VZaStcl5EiC_ktlWCJ3toPQj8mOfLkEptmphGpB8jc6NCiemPwHC6tgrlxsQ0C5Ueo3csVvCyolrpnfprdaafpPaoMMFvLPqQQui1Rx_cGQk_w7jMjYrfMsTa6hVmKF8OJw/s1600/24%20Ornithopter%20Cockpit.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>操縦席 上からのアングル</figcaption>
</figure>
<p>
まるで翼を折りたたんで、今から急降下を始めんとばかりの写りである。思えばこの機体に操縦者含め計11人(5人+6人)乗れるのだから、実物はさぞかし大きなものなのだろう。とはいえ、このスタチューもなかなかのサイズ感である。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGhmEhhJLaUroPMXvfFnR1p2fu3TGqRTUfWdZUq6lW5HlWY49kbHixs4n14N-F5IgizUG4ZrQuJJvlP17Mg1lfwzn-pCStDZz-dJDfTiroY11aF1BW-XqrAwzRM-WzrsCyTUc-qEpcxopdI9utTZRdeMLx3N78oEvLG-oXOvAPDC9VhuBOa1cwcSc/s1600/25%20Ornithopter%20with%20Outer%20Box.jpg" imageanchor="1">
<img alt="" data-original-height="2592" data-original-width="3888" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGhmEhhJLaUroPMXvfFnR1p2fu3TGqRTUfWdZUq6lW5HlWY49kbHixs4n14N-F5IgizUG4ZrQuJJvlP17Mg1lfwzn-pCStDZz-dJDfTiroY11aF1BW-XqrAwzRM-WzrsCyTUc-qEpcxopdI9utTZRdeMLx3N78oEvLG-oXOvAPDC9VhuBOa1cwcSc/s1600/25%20Ornithopter%20with%20Outer%20Box.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGhmEhhJLaUroPMXvfFnR1p2fu3TGqRTUfWdZUq6lW5HlWY49kbHixs4n14N-F5IgizUG4ZrQuJJvlP17Mg1lfwzn-pCStDZz-dJDfTiroY11aF1BW-XqrAwzRM-WzrsCyTUc-qEpcxopdI9utTZRdeMLx3N78oEvLG-oXOvAPDC9VhuBOa1cwcSc/s1600/25%20Ornithopter%20with%20Outer%20Box.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGhmEhhJLaUroPMXvfFnR1p2fu3TGqRTUfWdZUq6lW5HlWY49kbHixs4n14N-F5IgizUG4ZrQuJJvlP17Mg1lfwzn-pCStDZz-dJDfTiroY11aF1BW-XqrAwzRM-WzrsCyTUc-qEpcxopdI9utTZRdeMLx3N78oEvLG-oXOvAPDC9VhuBOa1cwcSc/s1600/25%20Ornithopter%20with%20Outer%20Box.jpg=w1440 2x" width="720" height="480">
</a>
<figcaption>外箱とオーニソプター</figcaption>
</figure>
<p>
<a href="https://www.ghull.com/dune" target="_blank" rel="noopener noreferrer" title="Dune — George Hull Design">George Hull</a>氏の素晴らしいデザインを好きな角度から見ることができ、大変に良い。ブラックホークのような軍用機ならではの重厚感がありつつも、実際に羽ばたいて空を飛んでいても全く違和感のない現実味を併せ持っている優れたデザインだ。Denis監督の要望にこんなものがあった。「(わたしの)母が見てもこれなら空を飛べると信じられるデザイン。」劇中で羽ばたいている姿を見て、これなら飛べるよ!と思ったもの。あの世界ならば反重力装置もあるから、羽は補助のような小さなものでも良いはずなのに、しっかりとハチドリやトンボの如く羽ばたいていたので感動した。あの動きをVFXとして表現したアニメーター<a href="https://www.dneg.com/show/dune/" target="_blank" rel="noopener noreferrer" title="Dune - DNEG">Robyn Luckham氏含めDNEGのアーティストたち</a>へも敬意を。
</p>
<figure>
<iframe src="https://player.vimeo.com/video/684397591#t=15m6s?h=82e03bde5d" width="720" height="450" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
<figcaption>Beyond Sand & Spice: The VFX of Dune | DNEG Deep Dives (Chapter II: Ornithopters)</figcaption>
</figure>
<p>
VFXでは羽がどのように動けばピッチ、ヨー、ロールするか、実際にシミュレーションを行ったとのこと。また撮影時はヘリコプターを撮影し、その微妙な揺れをオーニソプターのモデルへ反映させることでより高いリアリティを持たせたのだという。また、あの羽のモーションブラー。誤魔化し無しで本当に、1フレーム中に何往復も羽ばたいた光の様子を、11近くにおよぶサブサンプリングステップを踏んで、しっかりとレンダリングしたのだそう。ハイライトの付与など見た目的な微調整ももちろん行ったようだが、あのモーションブラーには度肝を抜かれた。映画「ブラックホーク・ダウン」をオマージュしたワンカットは何度見ても鳥肌ものである。細かく知りたい方はDNEGアーティストによるVFX解説動画を観ることをおすすめしたい。
</p>
<p>
DUNE part IIのロケ撮影も今まさに進行中である。来年の公開が待ち遠しい…。いま一度、原作を読んでアラキスを夢見ようか。あぁ、part Iもいま一度IMAXで観たいなァ…。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-83376695107188282962022-07-27T21:20:00.003+09:002022-07-27T21:33:08.359+09:00WordPressログイン画面の表示崩れと403エラー<p>
WordPressで作成されたWebサイトの保守管理を任せられたときの話し。サーバーはさくらレンタルサーバであった。そしてわたしはmacOS MontereyのSafari 15.5でログインページを表示したところ、下図のようにまるでCSSが効いていないかのような崩れ方をしたログインページが表示された。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4g-HKDcCVBP3tQcYiKBDnU5Dq-ZRpk4JJaVDDLBbCC900PdDQebowX7hqj6usA_TJ9oP6t9PTYzOzngyHhgv0ZcjvnF3DT1lP1FFI2RcsAJz2lBuZ4eH7qinU1mOEYULMJ47jk3kQtCp24CJvXXqh5OjWPyuKuXwzmL_Vevst7Kr5ZxMrE3vL3JA/s1600/01%20@2x.png" imageanchor="1">
<img alt="WordPressサイトのログイン画面が表示崩れしている" data-original-height="1440" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4g-HKDcCVBP3tQcYiKBDnU5Dq-ZRpk4JJaVDDLBbCC900PdDQebowX7hqj6usA_TJ9oP6t9PTYzOzngyHhgv0ZcjvnF3DT1lP1FFI2RcsAJz2lBuZ4eH7qinU1mOEYULMJ47jk3kQtCp24CJvXXqh5OjWPyuKuXwzmL_Vevst7Kr5ZxMrE3vL3JA/s1600/01%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4g-HKDcCVBP3tQcYiKBDnU5Dq-ZRpk4JJaVDDLBbCC900PdDQebowX7hqj6usA_TJ9oP6t9PTYzOzngyHhgv0ZcjvnF3DT1lP1FFI2RcsAJz2lBuZ4eH7qinU1mOEYULMJ47jk3kQtCp24CJvXXqh5OjWPyuKuXwzmL_Vevst7Kr5ZxMrE3vL3JA/s1600/01%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4g-HKDcCVBP3tQcYiKBDnU5Dq-ZRpk4JJaVDDLBbCC900PdDQebowX7hqj6usA_TJ9oP6t9PTYzOzngyHhgv0ZcjvnF3DT1lP1FFI2RcsAJz2lBuZ4eH7qinU1mOEYULMJ47jk3kQtCp24CJvXXqh5OjWPyuKuXwzmL_Vevst7Kr5ZxMrE3vL3JA/s1600/01%20@2x.png=w1440 2x" width="720" height="506">
</a>
<figcaption>ログイン画面の表示崩れ</figcaption>
</figure>
<p>
どうしたことかとSafariの開発者ツールを開くと、一部のリソースが403エラーで届いていないことが判明。403は“権限なし”つまりWordPressかサーバーかにブロックされている可能性があることがわかった。
</p>
<p>
また、よくよく見るとリソースが来ていないものはすべて/wp-admin/配下のファイルであることが判った。セキュリティ系のプラグインか何かでブロックされてしまったのかと思い、FirefoxやChromeで同URL(ログインページ)を開くと正常に表示されるではないか。なぜSafariだけ…。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN3auVHY52B20zujLel6FthR37MAiz8kYxRuWJ4tLJ04o5A2bzilZltC1Q9tZqp9ePnGTkdZKRZWoO7cOqvjv7v_iiKsCcQAr1Lu7--DvThw-z1ou5D0FOM_fGG_X8Cn0m2VWzjEKRsSIEhH9m_M_DuZ6RpQcGd1_tOt3bUGsHxQNXBF8rLLSaUwQ/s1600/02%20@2x.png" imageanchor="1">
<img alt="Safariの開発者ツールの「ソース」タブ /wp-admin/配下のリソースのみすべて403エラーを吐いている" data-original-height="978" data-original-width="2040" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN3auVHY52B20zujLel6FthR37MAiz8kYxRuWJ4tLJ04o5A2bzilZltC1Q9tZqp9ePnGTkdZKRZWoO7cOqvjv7v_iiKsCcQAr1Lu7--DvThw-z1ou5D0FOM_fGG_X8Cn0m2VWzjEKRsSIEhH9m_M_DuZ6RpQcGd1_tOt3bUGsHxQNXBF8rLLSaUwQ/s1600/02%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN3auVHY52B20zujLel6FthR37MAiz8kYxRuWJ4tLJ04o5A2bzilZltC1Q9tZqp9ePnGTkdZKRZWoO7cOqvjv7v_iiKsCcQAr1Lu7--DvThw-z1ou5D0FOM_fGG_X8Cn0m2VWzjEKRsSIEhH9m_M_DuZ6RpQcGd1_tOt3bUGsHxQNXBF8rLLSaUwQ/s1600/02%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN3auVHY52B20zujLel6FthR37MAiz8kYxRuWJ4tLJ04o5A2bzilZltC1Q9tZqp9ePnGTkdZKRZWoO7cOqvjv7v_iiKsCcQAr1Lu7--DvThw-z1ou5D0FOM_fGG_X8Cn0m2VWzjEKRsSIEhH9m_M_DuZ6RpQcGd1_tOt3bUGsHxQNXBF8rLLSaUwQ/s1600/02%20@2x.png=w1440 2x" width="720" height="345">
</a>
<figcaption>wp-admin配下のリソースのみ403エラー</figcaption>
</figure>
<p>
別ブラウザでは403エラーも無く、何事もないかのように管理画面へログイン出来た。Safariで表示されたログインページは表示こそ崩れているがログインフォームはあるのでそのままログインを試みた。すると、nginxから403エラーが飛んできて、管理画面ページの閲覧は出来ず。そうだよね。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKRXIvPUCpqp9v8sZgTGShdGZz0rQK2gMpyLXD6vK0NHjK01CsxKWoHe-nJiGfJTPmj7yFUkQxp-guUUAecx2w881iMkc7_TSjER-T9N_uL2K3m-z2ASKtRHEiZMZCsZgK9euFkEEksqU9UHLS3AoTs8vFuqvDg1B924yV_qidPsJMhBQQAh8IE0/s1600/03%20@2x.png" imageanchor="1">
<img alt="nginxが返す403 Forbiddenエラーページ" data-original-height="1440" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKRXIvPUCpqp9v8sZgTGShdGZz0rQK2gMpyLXD6vK0NHjK01CsxKWoHe-nJiGfJTPmj7yFUkQxp-guUUAecx2w881iMkc7_TSjER-T9N_uL2K3m-z2ASKtRHEiZMZCsZgK9euFkEEksqU9UHLS3AoTs8vFuqvDg1B924yV_qidPsJMhBQQAh8IE0/s1600/03%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKRXIvPUCpqp9v8sZgTGShdGZz0rQK2gMpyLXD6vK0NHjK01CsxKWoHe-nJiGfJTPmj7yFUkQxp-guUUAecx2w881iMkc7_TSjER-T9N_uL2K3m-z2ASKtRHEiZMZCsZgK9euFkEEksqU9UHLS3AoTs8vFuqvDg1B924yV_qidPsJMhBQQAh8IE0/s1600/03%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiKRXIvPUCpqp9v8sZgTGShdGZz0rQK2gMpyLXD6vK0NHjK01CsxKWoHe-nJiGfJTPmj7yFUkQxp-guUUAecx2w881iMkc7_TSjER-T9N_uL2K3m-z2ASKtRHEiZMZCsZgK9euFkEEksqU9UHLS3AoTs8vFuqvDg1B924yV_qidPsJMhBQQAh8IE0/s1600/03%20@2x.png=w1440 2x" width="720" height="506">
</a>
<figcaption>そのままログインを試みると403エラー</figcaption>
</figure>
<p>
こうなるとログアウトするにも開発者ツールからCookieを削除するしか方法は無い。ひとまず、開発者ツールの「ストレージ」タブからCookiesを選択し、表示されるすべてのクッキーを削除。再びログインページのURLへアクセスすると先程の表示崩れしたページが表示された。振り出しに戻る。
</p>
<hr />
<p>
わたしはここでFTP/S経由でファイルを見に行ったり、.htaccess設定を調べたり、さくらレンタルサーバのサーバーコントロールパネルでアクセス許可がホワイトリスト形式になっていないかなど調べた。しかし、特にそれらしい原因は見当たらず、途方に暮れた時間がここにはあったことだけは記す。そう、いろいろ遠回りしてこそ発見があるのだ!
</p>
<hr />
<p>
Safariだけ弾かれるということはSafariの設定に原因がありそう、ということでSafari環境設定を見ていく。と、「プライバシー」タブの「IPアドレスを非公開」という設定項目が引っかかった。これが「トラッカー<b>およびWebサイト</b>に非公開」に設定されていたのだ。なんだかiCloudプライベートリレーが発表された後に設定した記憶がある…。なぜ今まで気づけなかったのか。盲点!
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjNtEBdIoYRVCPH1VOuML1WI9c34joyfAX0ITmdIud2481z1CyhnJG1TY-0KawOmAVZUphudKuYP3rM_HiZUprFNzB8ega0YO3ttTmLb5m8p1t_pkuEf1_7y-HUsuGAcG63ZGmhMUPlqSo8r_SPJS7HmPvVApFsTckNbDMrenBETeIQkdpPaGWZQ/s1600/04%20@2x.png" imageanchor="1">
<img alt="Safari環境設定の「プライバシー」タブ 「IPアドレスを非公開」設定が「トラッカーおよびWebサイトに非公開」になっている" data-original-height="1090" data-original-width="1808" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjNtEBdIoYRVCPH1VOuML1WI9c34joyfAX0ITmdIud2481z1CyhnJG1TY-0KawOmAVZUphudKuYP3rM_HiZUprFNzB8ega0YO3ttTmLb5m8p1t_pkuEf1_7y-HUsuGAcG63ZGmhMUPlqSo8r_SPJS7HmPvVApFsTckNbDMrenBETeIQkdpPaGWZQ/s1600/04%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjNtEBdIoYRVCPH1VOuML1WI9c34joyfAX0ITmdIud2481z1CyhnJG1TY-0KawOmAVZUphudKuYP3rM_HiZUprFNzB8ega0YO3ttTmLb5m8p1t_pkuEf1_7y-HUsuGAcG63ZGmhMUPlqSo8r_SPJS7HmPvVApFsTckNbDMrenBETeIQkdpPaGWZQ/s1600/04%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjNtEBdIoYRVCPH1VOuML1WI9c34joyfAX0ITmdIud2481z1CyhnJG1TY-0KawOmAVZUphudKuYP3rM_HiZUprFNzB8ega0YO3ttTmLb5m8p1t_pkuEf1_7y-HUsuGAcG63ZGmhMUPlqSo8r_SPJS7HmPvVApFsTckNbDMrenBETeIQkdpPaGWZQ/s1600/04%20@2x.png=w1440 2x" width="720" height="434">
</a>
<figcaption>IPアドレスを非公開にするオプション</figcaption>
</figure>
<p>
この設定を「トラッカーおよびWebサイトに非公開」から「トラッカーにのみ非公開」へ変更した。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk3c6101MOL6fqrKXGGmoAVgt9iITaLW4DyZ7PJsB52AR5zN3iHLxJRVbF3gpDIHKNruaS8lCsEMCaP9Ftf_eV5ulQ18hznyZ0Krw8vJeQm0zg74rWzX17aWaZnsv9KpcyVle6MO2HBgQI4_Qjc-U31oHh53FZsLBCQ_e3yHcNpqTxKXO1fM0vqPI/s1600/05%20@2x.png" imageanchor="1">
<img alt="Safari環境設定の「プライバシー」タブ 「IPアドレスを非公開」設定を「トラッカーにのみ非公開」へ変更" data-original-height="1090" data-original-width="1808" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk3c6101MOL6fqrKXGGmoAVgt9iITaLW4DyZ7PJsB52AR5zN3iHLxJRVbF3gpDIHKNruaS8lCsEMCaP9Ftf_eV5ulQ18hznyZ0Krw8vJeQm0zg74rWzX17aWaZnsv9KpcyVle6MO2HBgQI4_Qjc-U31oHh53FZsLBCQ_e3yHcNpqTxKXO1fM0vqPI/s1600/05%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk3c6101MOL6fqrKXGGmoAVgt9iITaLW4DyZ7PJsB52AR5zN3iHLxJRVbF3gpDIHKNruaS8lCsEMCaP9Ftf_eV5ulQ18hznyZ0Krw8vJeQm0zg74rWzX17aWaZnsv9KpcyVle6MO2HBgQI4_Qjc-U31oHh53FZsLBCQ_e3yHcNpqTxKXO1fM0vqPI/s1600/05%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk3c6101MOL6fqrKXGGmoAVgt9iITaLW4DyZ7PJsB52AR5zN3iHLxJRVbF3gpDIHKNruaS8lCsEMCaP9Ftf_eV5ulQ18hznyZ0Krw8vJeQm0zg74rWzX17aWaZnsv9KpcyVle6MO2HBgQI4_Qjc-U31oHh53FZsLBCQ_e3yHcNpqTxKXO1fM0vqPI/s1600/05%20@2x.png=w1440 2x" width="720" height="434">
</a>
<figcaption>IP非公開先を「トラッカーのみ」へ変更</figcaption>
</figure>
<p>
そうして更新をかけたところ、WordPressサイトのログイン画面が正常に読み込まれた!403エラーもなし。もちろんログインすると管理画面もきちんと表示され、種々の保守管理も行えた。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLMuuzHn62qA2Q7en7w_hToZjjeHSoC45yJfHRODnEzHxJ1lL8MCulv3iFrIvAF8gQ6sMFSvEFvQ5CmkXbasEEdKDWMLDGGxDZV7hs1oPhXS2bCjXwnh8Heq87ZCR37Kktm4kGmeadOEKrAIsqITPSr9qdFyw2-5P9wtiWQMtzwevGkSIhscWRQc4/s1600/07%20@2x.png" imageanchor="1">
<img alt="正常に読み込まれたWordPressサイトログイン画面" data-original-height="1440" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLMuuzHn62qA2Q7en7w_hToZjjeHSoC45yJfHRODnEzHxJ1lL8MCulv3iFrIvAF8gQ6sMFSvEFvQ5CmkXbasEEdKDWMLDGGxDZV7hs1oPhXS2bCjXwnh8Heq87ZCR37Kktm4kGmeadOEKrAIsqITPSr9qdFyw2-5P9wtiWQMtzwevGkSIhscWRQc4/s1600/07%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLMuuzHn62qA2Q7en7w_hToZjjeHSoC45yJfHRODnEzHxJ1lL8MCulv3iFrIvAF8gQ6sMFSvEFvQ5CmkXbasEEdKDWMLDGGxDZV7hs1oPhXS2bCjXwnh8Heq87ZCR37Kktm4kGmeadOEKrAIsqITPSr9qdFyw2-5P9wtiWQMtzwevGkSIhscWRQc4/s1600/07%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLMuuzHn62qA2Q7en7w_hToZjjeHSoC45yJfHRODnEzHxJ1lL8MCulv3iFrIvAF8gQ6sMFSvEFvQ5CmkXbasEEdKDWMLDGGxDZV7hs1oPhXS2bCjXwnh8Heq87ZCR37Kktm4kGmeadOEKrAIsqITPSr9qdFyw2-5P9wtiWQMtzwevGkSIhscWRQc4/s1600/07%20@2x.png=w1440 2x" width="720" height="506">
</a>
<figcaption>正常に読み込まれたWordPressサイトログイン画面</figcaption>
</figure>
<p>
なぜ今まで気づかなかったのか(二度目!)。さくらレンタルサーバの「サーバーコントロールパネル」へログインし、セキュリティ設定のページを見てなんとなく納得。「国外IPアドレスフィルタ」の「アクセス制限設定」が“有効(制限する)”になっていることを確認して、それは確信へと変わった。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOiHVzINFrk2G2aJyaa0RC648ktkWet9ru9QK_EABPFm4MxGXnl87ksrrr89tLJePbcHeWlb8yg0wET3ANzZALEgJocgrhMjDUtPLjYvXkJY-BwSIYikWu2NgQJcvGFqW_2A1TvusVeGDKG76GHN1pzjS0dj4Ba2p0O6pTEx7Z9CT1lGu_QT9d5c/s1600/06%20@2x.png" imageanchor="1">
<img alt="さくらのレンタルサーバコントロールパネル 「セキュリティ」タブの「国外IPアドレスフィルタ」設定ページ 「アクセス制限設定」が“有効(制限する)”になっている" data-original-height="1440" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOiHVzINFrk2G2aJyaa0RC648ktkWet9ru9QK_EABPFm4MxGXnl87ksrrr89tLJePbcHeWlb8yg0wET3ANzZALEgJocgrhMjDUtPLjYvXkJY-BwSIYikWu2NgQJcvGFqW_2A1TvusVeGDKG76GHN1pzjS0dj4Ba2p0O6pTEx7Z9CT1lGu_QT9d5c/s1600/06%20@2x.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOiHVzINFrk2G2aJyaa0RC648ktkWet9ru9QK_EABPFm4MxGXnl87ksrrr89tLJePbcHeWlb8yg0wET3ANzZALEgJocgrhMjDUtPLjYvXkJY-BwSIYikWu2NgQJcvGFqW_2A1TvusVeGDKG76GHN1pzjS0dj4Ba2p0O6pTEx7Z9CT1lGu_QT9d5c/s1600/06%20@2x.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOiHVzINFrk2G2aJyaa0RC648ktkWet9ru9QK_EABPFm4MxGXnl87ksrrr89tLJePbcHeWlb8yg0wET3ANzZALEgJocgrhMjDUtPLjYvXkJY-BwSIYikWu2NgQJcvGFqW_2A1TvusVeGDKG76GHN1pzjS0dj4Ba2p0O6pTEx7Z9CT1lGu_QT9d5c/s1600/06%20@2x.png=w1440 2x" width="720" height="506">
</a>
<figcaption>さくらレンタルサーバの国外IPアドレスフィルタリング設定</figcaption>
</figure>
<p>
iCloudプライベートリレーは現在ベータ版。「トラッカーにのみ非公開」設定ならば特に問題ないが、“Webサイトにも非公開”の設定にすることでこのiCloudプライベートリレーを経由するようになる。結果、さくらサーバはわたしのアクセスIPアドレスを国外のものと認識してしまったのだろう。
</p>
<p>
macOS環境設定を開き、「Apple ID」設定へ、「iCloud」タブ内の「プライベートリレー (ベータ版)」という項目にあるオプションボタンをクリックするとポップアップ画面が表示されるのだが、そこにはきちんと「ベータ版だからサイトに依っては問題が発生するかもよ。おまいさんのアクセスが別の地域と勘違いされたり(斯々然々)…」と書かれている。これだ。
</p>
<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidrCFlf5rpiRZ4488fxCXFQ2uwM3Y2Kzos3-_4l1R_R-Md2BcII44hOD9V_lB2PUpsqnk03_HA4m4GkdiNQXHHQBMDLgTViVGf7vpejfKtALFWa4vy3iTuv_IrfwDcyCWl8Qus4rCR7LV9BoHA-ycCRpZwxK7GbTqNP09Pi20K6YduegzPkhPTDj4/s1600/08%20@2x.png" imageanchor="1">
<img alt="macOS環境設定 「Apple ID」設定 「iCloud」タブ内 「プライベートリレー (ベータ版)」項目中のオプションボタンをクリックした際に表示されるポップアップ画面 そこにはプライベートリレーは現在ベータ版でWebサイトに依っては問題が発生する可能性がある旨記されている" data-original-height="1042" data-original-width="1114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidrCFlf5rpiRZ4488fxCXFQ2uwM3Y2Kzos3-_4l1R_R-Md2BcII44hOD9V_lB2PUpsqnk03_HA4m4GkdiNQXHHQBMDLgTViVGf7vpejfKtALFWa4vy3iTuv_IrfwDcyCWl8Qus4rCR7LV9BoHA-ycCRpZwxK7GbTqNP09Pi20K6YduegzPkhPTDj4/s1600/08%20@2x.png=w720" width="720" height="673">
</a>
<figcaption>今回はプライベートリレー<b>ベータ版</b>が原因と断定した</figcaption>
</figure>
<p>
もちろん、グローバルIPアドレスが静的であれば、さくらレンタルサーバは「国外IPアドレスフィルタ」のホワイトリストへ自IPアドレスを登録すれば問題を回避出来る。ただ、今回は作業範囲が小さかったためサーバーの余計な設定変更はせず、Safariの「IPアドレスを非公開」設定を都度いじることで対応した。
</p>
<p>
セキュリティ系プラグインが変にブロックしているのでは?とか、.htaccessに変な記述があるのでは?など、別の要因を難しく考えてしまいFTP/S経由でファイルを覗いて調べたりもしたが、結局はブラウザ、もといOSに搭載されたベータ版機能の問題だった。別ブラウザで開いて正常だった時に「おや?」と思ったあの気持ちをもっと大切にすれば良かった。こういうケースならば直感を信ずるも良しだ。常に柔軟であれ!
</p>
<p>
さぁ、悩みのタネは解決した。プライベートリレーが正式にリリースされた暁にはこのような問題も解消することを願って、Have a happy hacking life!
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-43370964161974375562022-06-18T18:48:00.002+09:002022-06-18T18:48:15.865+09:00reCAPTCHA v3とHTML5のフォームバリデーション<figure class="none">
<img alt="" data-original-height="630" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrmt7AwhC7tJvWkpZHYq6-4-xR8NljigAgrw496Uti-e6zmKGldf9uAI0n_SjvxfrYuWu9C0Oy7PMKvqmR1RYn4ZUlSewL0scORX8xP4Cv6xDVM8qdJy4UUAYiTybExSknt2KRouuwcTg2ic3zE_XA5F_1JYU8ifSCDWwVCreGRkDuO19dN8BMHac/s1600/reCAPTCHA_and_HTML5_Form_Validation.png=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrmt7AwhC7tJvWkpZHYq6-4-xR8NljigAgrw496Uti-e6zmKGldf9uAI0n_SjvxfrYuWu9C0Oy7PMKvqmR1RYn4ZUlSewL0scORX8xP4Cv6xDVM8qdJy4UUAYiTybExSknt2KRouuwcTg2ic3zE_XA5F_1JYU8ifSCDWwVCreGRkDuO19dN8BMHac/s1600/reCAPTCHA_and_HTML5_Form_Validation.png=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrmt7AwhC7tJvWkpZHYq6-4-xR8NljigAgrw496Uti-e6zmKGldf9uAI0n_SjvxfrYuWu9C0Oy7PMKvqmR1RYn4ZUlSewL0scORX8xP4Cv6xDVM8qdJy4UUAYiTybExSknt2KRouuwcTg2ic3zE_XA5F_1JYU8ifSCDWwVCreGRkDuO19dN8BMHac/s1600/reCAPTCHA_and_HTML5_Form_Validation.png 2x" width="720" height="378" aria-hidden="true" />
</figure>
<p>
<a href="https://www.google.com/recaptcha/about/" target="_blank" rel="noopener noreferrer" title="https://www.google.com/recaptcha/about/">reCAPTCHA v3</a>を設置したところHTMLフォームの<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required" target="_blank" rel="noopener noreferrer" class="https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required">required</a>や<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types" target="_blank" rel="noopener noreferrer" title="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types">type</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern" target="_blank" rel="noopener noreferrer" title="https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern">pattern</a>属性のような<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Constraint_validation" target="_blank" rel="noopener noreferrer" title="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Constraint_validation">バリデーション</a>が効かなくなった。「未入力ですよ」や「パターンにマッチしていません」、「メールアドレスに@を挿入してください」といったブラウザのポップアップが表示されずに画面が遷移してしまうのだ。それもそのはず、<a href="https://developers.google.com/recaptcha/docs/v3" target="_blank" rel="noopener noreferrer" title="https://developers.google.com/recaptcha/docs/v3">公式ドキュメント</a>通りの設置方法だと、ブラウザがHTML5のフォームバリデーションを行う以前に、フォームの内容がJavaScript経由で<a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit" target="_blank" rel="noopener noreferrer" title="https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit">submit</a>されるためである。
</p>
<p>
ということで設置コードを一部改善し、<var>.submit()</var>前にHTML5フォームバリデーションが呼び出されるようにした。
</p>
<code class="html javascript">
<pre><form method="post" id="contactForm">
<input type="email" required />
<button class="g-recaptcha"
data-sitekey="ooooooooooooooo"
data-callback='onSubmit'
data-action='submit'>送信</button>
</form>
<script src="https://www.google.com/recaptcha/api.js"></script>
<script>
function onSubmit( token ) {
var form = document.getElementById('contactForm');
if ( form.reportValidity() ) {
form.submit();
}
}
</script></pre>
</code>
<p>
<a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reportValidity" target="_blank" rel="noopener noreferrer" title="https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reportValidity"><var>.reportValidity()</var></a>を呼び出している点がミソである。これはフォーム要素内の子要素(inputやtextareaなど)がHTML5バリデーションの要件を満たしているか否かを<var>true</var>と<var>false</var>で返してくれるありがたい函数である。これによりJS経由で.submit()する前に各入力フォームが要件(requiredやtype属性の要件)を満たしているかをチェックでき、reCAPTCHA v3を導入してもフォームのバリデーションがクライアントサイドでもきちんと動くようになったのでした。
</p>
<p>
なお<var>.reportValidity()</var>は<a href="https://caniuse.com/?search=reportvalidity" target="_blank" rel="noopener noreferrer" title="https://caniuse.com/?search=reportvalidity">比較的新しいブラウザのみ対応</a>している模様。先日現役引退されたInternet Explorerさまはもちろん、Microsoft Edgeも比較的以前のバージョンだと非対応である点に注意いただきたい。ただ、<a href="https://gist.github.com/nuxodin/73a2c2423cbbf6818c28ad803985d5c7#file-htmlformelement-htmlinputelement-reportvalidity-js-L3-L12" target="_blank" rel="noopener noreferrer" title="https://gist.github.com/nuxodin/73a2c2423cbbf6818c28ad803985d5c7#file-htmlformelement-htmlinputelement-reportvalidity-js-L3-L12">Polyfill</a>を公開されている方も居るので対応ブラウザ枠を増やしたいケースならば活用して行きたい。
</p>
<p>
とは言えこれもあくまでユーザビリティへの配慮であるため、きちんとバックエンドでもバリデーションを実装した、セキュアな素晴らしいWebコンテンツにして行きたい所存。
</p>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-51094415752885686352022-05-14T18:47:00.008+09:002022-05-14T18:48:42.244+09:0011年のありがとう + 今後の展開<figure>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOhRBTJWefsgD3LtMWhaR6HIrmtSxTikloCNdHzgVUGw5RZmzZ5KPHl072K0FzaLdLcDruk1qufBDa7ax77KNWXlgSCqH61661wJo1zgRon89nvuW4MuJj0azfNpQlWcB6fPTH05xMtH06-m6rcodfrdx5bkl2eplZbGBbJuVhhyllTaLeEea_tMQ/s1600/11th-year-anniversary_thumb.jpg" imageanchor="1">
<img alt="" data-original-height="1600" data-original-width="3048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOhRBTJWefsgD3LtMWhaR6HIrmtSxTikloCNdHzgVUGw5RZmzZ5KPHl072K0FzaLdLcDruk1qufBDa7ax77KNWXlgSCqH61661wJo1zgRon89nvuW4MuJj0azfNpQlWcB6fPTH05xMtH06-m6rcodfrdx5bkl2eplZbGBbJuVhhyllTaLeEea_tMQ/s1600/11th-year-anniversary_thumb.jpg=w720" srcset="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOhRBTJWefsgD3LtMWhaR6HIrmtSxTikloCNdHzgVUGw5RZmzZ5KPHl072K0FzaLdLcDruk1qufBDa7ax77KNWXlgSCqH61661wJo1zgRon89nvuW4MuJj0azfNpQlWcB6fPTH05xMtH06-m6rcodfrdx5bkl2eplZbGBbJuVhhyllTaLeEea_tMQ/s1600/11th-year-anniversary_thumb.jpg=w720 1x, https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOhRBTJWefsgD3LtMWhaR6HIrmtSxTikloCNdHzgVUGw5RZmzZ5KPHl072K0FzaLdLcDruk1qufBDa7ax77KNWXlgSCqH61661wJo1zgRon89nvuW4MuJj0azfNpQlWcB6fPTH05xMtH06-m6rcodfrdx5bkl2eplZbGBbJuVhhyllTaLeEea_tMQ/s1600/11th-year-anniversary_thumb.jpg=w1440 2x" width="720" height="378">
</a>
</figure>
<p>
今日で本Weblogも11年が経ちました。2011年5月14日から始まり、毎月1投稿以上を目標に続けて来ました。今の所、目標は達成し続けております。これからもやってくよ!
</p>
<p>
本Weblogはわたしの脳内から忘れ去られる情報たちを救い出すための場所で、投稿している私本人が一番の恩恵を受けていることと自覚しています。本Weblogの存在理由、優先順位1は間違いなく自分のためです。みなさんのお役に立つというのは優先順位2であります。もっと言えばオマケ程度に考えています。そのため本Weblogはこれからも広告の付与は考えておらず、みなさんからの寄付とアフィリエイトによる運用費の工面くらいで、他の手段で収益を図るつもりはありません。今後も月1投稿以上を目標に、存続出来得る限り手入れを続けて行きます。
</p>
<a class="series-link" href="/p/about.html#donate" target="_blank">本Weblogのサポートはこちらから行えます</a>
<h4>今後について</h4>
<p>
今後について、どうでも良いお話をひとつ。本WeblogはブログシステムにGoogleのBloggerを利用していますが、そのBlogger Templateのアップデートを現在計画中です。現在すでに開発環境下で新しいテンプレートの開発中であります。このアップデートの主目的は現行テンプレートのリファクタリング、そしてよりモダンな技術の取り込みがはじめに挙がります。その中でこのアップデート以降、Internet Explorerのサポートも終了させていただきます。今後は最新版のFirefox、Chrome、Safariをはじめとしたブラウザで快適に閲覧できるよう、微調整を行っております。アップデートはブログの背景で動くコードを綺麗にすることが主目的であるため、このアップデートで見た目や使い勝手が大きく変わることは予定していません。良く訪れていただいている方にとっても、なんかちょっと見た目変わったかなぁ、くらいの変化になると思います。
</p>
<h4>〆</h4>
<p>
こんな感じで12年目に突入して行きます。11年ありがとうございました。これからもよろしくお願いします。
</p>
<a class="series-link" href="https://seeker5084.typeform.com/to/lWPNg0" target="_blank" rel="noopener noreferrer">ご意見やご感想はこちらのフォームより</a>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-9015453255922699.post-54937544072522864092022-04-29T18:02:00.002+09:002022-04-29T18:05:31.363+09:00UNIX時間による季節判定<h3 style="display: none;">正規化UNIX時間による季節判定</h3>
<figure style="display: none;">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvpMR5Nb5LyxVl-h4_6pXvOXjA8lJw_nE8bzO5mjfv7L6_C4IoaVNZskdpE_cbXL98dfAbO5gQq1hwB6Tly58cxB9LX79ZF_Zj8vvcdaPCtDdYji1M1TeVn5dN77nY8dFrHnIdi3lVq2IV1z_62annKKH1xVBaX6BEdtnbQnMGk6vkfojoV0rd65w/s1600/220429%20OGP%20Image.png" alt="正規化UNIX時間の計算式" aria-hidden="true" />
</figure>
<h4>UNIX時間とは</h4>
<p>
UNIX時間(UNIX time)とは1970年1月1日0時0分0秒(UNIX epochと呼ばれる時刻)から刻み続けられている“秒数”を単位とした正の整数である。仕様として閏年はカウントするが、閏秒はカウントせず1日は必ず86,400秒(60秒×60分×24時間)となるよう工夫されている。そのため閏秒の瞬間は閏秒1秒前と同じUNIX時間となることもある、そんなおもしろ時計だ。
</p>
<h4>季節判定する上でのサンプル範囲を設定</h4>
<p>
四季(春夏秋冬)を判別する用途においてならばUNIX時間の閏秒の扱いは無視できる。よって閏年だけを考慮すれば良いこととなる。ここでは1970年(UNIX epoch)から2038年(<a href="https://jpn.nec.com/cybersecurity/blog/210312/index.html" target="_blank" rel="noopener noreferrer" title="2038年問題はセキュア開発で防げるのか?: NECセキュリティブログ | NEC">32bitだとUNIX時間がオーバーフローする年</a>)までの69年間をサンプル範囲として季節判定用の定数を探って行くこととする。ここで2038年もまるっと1年分として計算して行く。
</p>
<h4>判定方法</h4>
<p>
先述のとおりUNIX時間とはUNIX epochから閏秒を無視した経過秒数なので、1年毎の年間平均秒数($ Y_{avg} $)で割った値を正規化することで、小数点以下が月を示すような数値となることが期待できる。ここでは便宜上その数値を「正規化UNIX時間」($ U_{norm} $)と呼ぶ。ならば、判定したいUNIX時間を$ U_{time} $とすると次の式で正規化UNIX時間を求めることができる。
</p>
<p class="hollow">
$$ \begin{aligned}
Y_{f} &= \frac{U_{time}}{Y_{avg}} \\[1.5em]
U_{norm} &= Y_{f} - \lfloor Y_{f} \rfloor
\end{aligned} $$
</p>
<p>
2つ目の式はノコギリ波を生成することで有名。ノコギリの波ひとつひとつが1年を表し、その高さが時の経過とUNIX時間との比例関係を意味する。さて、この正規化UNIX時間において1月のはじめは0.0、12月のおわりは1.0になるはずなので、この間、すなわち各月のはじめとおわりに対応する数値を算出すれば、それなりに季節判定できると考えた。
</p>
<p>
まとめると、これからやることは2つ。ひとつは年間平均秒数$ Y_{avg} $を算出すること。そしてもうひとつは正規化UNIX時間における各月のはじめとおわりに対応する数値を算出することである。
</p>
<h4>年間平均秒数の算出</h4>
<p>
通常1年は365日なので1日=86,400秒に365を掛ければ1年あたりの秒数が計算できる。
</p>
<p class="hollow">
$$ Y_{c} = 365days \times 24hours \times 60minutes \times 60seconds = 31,536,000 $$
</p>
<p>
問題は閏年だ。閏年は2月29日の存在する年。秒数にして平年より1日分多い数字となる。
</p>
<p class="hollow">
$$ Y_{l} = 366days \times 24hours \times 60minutes \times 60seconds = 31,622,400 $$
</p>
<p>
この閏年は4年に1度訪れる。ただし、“西暦年数が100で割り切れかつ400で割り切れない年は平年とする”という<a href="https://www.nao.ac.jp/faq/a0306.html" target="_blank" rel="noopener noreferrer" title="質問3-6)どの年がうるう年になるの? | 国立天文台(NAOJ)">例外が存在する</a>。
</p>
<p>
幸いなことに1970年から2038年の間ならば上手いこと4年に1度の間隔で閏年が訪れる期間なので、単純に考えると365.25日(365+1/4日)を平均UNIX時間とすれば良い。つまり31,557,600秒だ。しかし、1970年から2038年までの69年間で閏年は17年。1/4と考えるには0.25年(あと1年分)閏年が少ないのだ。そこできちんと計算をして、正確な平均値を算出することにした(ぴったり1/4となるよう2041年までサンプル範囲を延長すれば良いだけの話なのだがここだけは律儀に2038年へ執着してみた)。
</p>
<p>
計算は次の通り。サンプル年数69の内52年が平年で17年が閏年である。
</p>
<p class="hollow">
$$ Y_{avg} = \frac{ 52 \times Y_{c} + 17 \times Y_{l} }{ 69 } = 31557286.9565217 $$
</p>
<p>
ひとつ定数が出てきた。1970年から2038年までの1年毎の平均秒数($ Y_{avg} $)だ。
</p>
<h4>正規化UNIX時間と月ごとの対応値の算出</h4>
<p>
さて、ここから計算量はぐぐっと増えるのでコンピュータのチカラを借りる。正規化UNIX時間と、1970年から2038年までの1月から12月までのはじめ(0時0分0秒000)とおわり(23時59分59秒999)に対応する数値の平均値を算出するのだ。<a href="https://github.com/seeker5084/TSS/tree/master/Normalized%20UNIX%20Time" target="_blank" rel="noopener noreferrer" title="TSS/Normalized UNIX Time at master · seeker5084/TSS">JavaScriptでプログラムをゴリゴリと書いて</a>、nodeで実行。結果は2次元配列で表示されるようにした。親配列の要素12個はそれぞれが1月から12月に対応し、小配列にある2つの値はその月の“はじめ”と“おわり”の平均数値である。
</p>
<p>
計算式はもちろん次のもの。$ U_{time} $に各年各月のはじめとおわりのUNIX時間を入れ、69年分の数値を算出(計1,656データ)、そこから各月のはじめとおわりの平均値を算出している。
</p>
<p class="hollow">
$$ \begin{aligned}
Y_{f} &= \frac{U_{time}}{Y_{avg}} \\[1.5em]
U_{norm} &= Y_{f} - \lfloor Y_{f} \rfloor
\end{aligned} $$
</p>
<p>
そして結果は次の通り。季節は<a href="https://www.nhk.or.jp/bunken/summary/kotoba/gimon/194.html" target="_blank" rel="noopener noreferrer" title="放送での四季(春夏秋冬)の区分は? | ことば(放送用語) - 放送現場の疑問・視聴者の疑問 | NHK放送文化研究所">放送用語</a>を元に区分した。
</p>
<h5>1月 冬まっただなか</h5>
<ul>
<li>はじめ: 0.00000000000004131</li>
<li>おわり: 0.08487253133573748</li>
</ul>
<h5>2月 冬おわり</h5>
<ul>
<li>はじめ: 0.08487256302413952</li>
<li>おわり: 0.16220601016016947</li>
</ul>
<h5>3月 春はじめ</h5>
<ul>
<li>はじめ: 0.1622060418485715</li>
<li>おわり: 0.24702732063817395</li>
</ul>
<h5>4月 春まっさかり</h5>
<ul>
<li>はじめ: 0.24702735232657608</li>
<li>おわり: 0.3291057932461683</li>
</ul>
<h5>5月 春おわり</h5>
<ul>
<li>はじめ: 0.3291058249345702</li>
<li>おわり: 0.4139800095782059</li>
</ul>
<h5>6月 夏はじめ</h5>
<ul>
<li>はじめ: 0.41398004126660787</li>
<li>おわり: 0.4961163479640482</li>
</ul>
<h5>7月 夏まっさかり</h5>
<ul>
<li>はじめ: 0.49611637965245037</li>
<li>おわり: 0.5809905642960851</li>
</ul>
<h5>8月 夏おわり</h5>
<ul>
<li>はじめ: 0.5809905959844873</li>
<li>おわり: 0.6658647806281227</li>
</ul>
<h5>9月 秋はじめ</h5>
<ul>
<li>はじめ: 0.6658648123165247</li>
<li>おわり: 0.748001119013965</li>
</ul>
<h5>10月 秋まっさかり</h5>
<ul>
<li>はじめ: 0.7480011507023674</li>
<li>おわり: 0.8329365077397282</li>
</ul>
<h5>11月 秋おわり</h5>
<ul>
<li>はじめ: 0.8329365394281301</li>
<li>おわり: 0.915125751979603</li>
</ul>
<h5>12月 冬はじめ</h5>
<ul>
<li>はじめ: 0.9151257836680052</li>
<li>おわり: 0.9999999683116402</li>
</ul>
<p>
ご覧のように閏年の影響を受け1月のはじめと12月のおわりは0.0や1.0ぴったりではない(依って“正規化”という言葉も便宜上のものであることがお分かりいただけるだろう)。しかし、かなり近い数値を出力していることは驚くべきだ。
</p>
<h4>季節別</h4>
<p>
以下に季節別の数値も記す。ここは例えば春のはじめならば2月おわり($ M_1 $)と3月はじめ($ M_2 $)の平均値を計算することで、それを春はじめとしている。平均値( $ S_{avg} $ )の計算は次の通りである。
</p>
<p class="hollow">
$$ S_{avg} = \frac{ M_2 - M_1 }{2} + M_1 $$
</p>
<h5>春 (3月から5月)</h5>
<ul>
<li>はじめ: 0.16220602600437 (2月おわりと3月はじめの平均値)</li>
<li>おわり: 0.413980025422406 (5月おわりと6月はじめの平均値)</li>
</ul>
<h5>夏 (6月から8月)</h5>
<ul>
<li>はじめ: 0.413980025422406 (5月おわりと6月はじめの平均値)</li>
<li>おわり: 0.665864796472323 (8月おわりと9月はじめの平均値)</li>
</ul>
<h5>秋 (9月から11月)</h5>
<ul>
<li>はじめ: 0.665864796472323 (8月おわりと9月はじめの平均値)</li>
<li>おわり: 0.915125767823804 (11月おわりと12月はじめの平均値)</li>
</ul>
<h5>冬 (12月から翌年2月)</h5>
<ul>
<li>はじめ: 0.915125767823804 (11月おわりと12月はじめの平均値)</li>
<li>おわり: 0.16220602600437 (2月おわりと3月はじめの平均値)</li>
</ul>
<p>
double型の有効桁数を小数点以下15桁までとし、そこまで表示してみた。
</p>
<h4>UNIX時間だけを使った季節の判定</h4>
<p>
さて、必要な定数は全て揃ったので実践。例えば次のJavaScriptコードで四季を判別できる。
</p>
<code>
<pre>// let time = new Date( 2022, 4 - 1, 30, 12, 25, 30, 0 ).getTime() / 1000
let time = 1651289130 // 2022年4月30日12時25分30秒000
let frac = time / 31557286.9565217
let normTime = frac - Math.floor( frac )
if ( 0.915125767823804 < normTime || normTime <= 0.16220602600437 ) { // 最初に冬を判定しよう!
console.log( '冬' )
}
else if ( 0.16220602600437 < normTime && normTime <= 0.413980025422406 ) {
console.log( '春' )
}
else if ( 0.413980025422406 < normTime && normTime <= 0.665864796472323 ) {
console.log( '夏' )
}
else if ( 0.665864796472323 < normTime && normTime <= 0.915125767823804 ) {
console.log( '秋' )
}
else {
console.log( '摩訶不四季' )
}</pre>
</code>
<p class="codepen" data-height="300" data-default-tab="js,result" data-slug-hash="YzeKroa" data-preview="true" data-editable="true" data-user="seeker5084" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;">
<span>See the Pen <a href="https://codepen.io/seeker5084/pen/YzeKroa">
Untitled</a> by Hideyuki Tabata (<a href="https://codepen.io/seeker5084">@seeker5084</a>)
on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>
<p>
年をまたぐ都合上、冬をORで最初に判定する点が肝である。あとはANDで春夏秋を判定できる。月ごとの平均値もあるため、それを使えば、UNIX時間だけを使ってある程度の精度で何月かを判定することもできる。
</p>
<p>
以上がわたしの導き出した結果である。もっと良い考え方もきっとあるはずなので、何か思いのある方はじゃんじゃんコメントを送ってほしい。
</p>
Unknownnoreply@blogger.com