tag:blogger.com,1999:blog-25643169423658475022024-03-18T23:47:16.127+09:00DiaryUnknownnoreply@blogger.comBlogger445125tag:blogger.com,1999:blog-2564316942365847502.post-75529783274971720662024-03-18T23:46:00.001+09:002024-03-18T23:46:23.280+09:00MPEG 2.5<p>
MPEG 2.5と言う表記を見掛けたのだが、どういうものか理解できなかった。
<code>/usr/pkgsrc/audio</code>を以下のように検索すると、
<code>/usr/pkgsrc/audio/libmad/DESCR</code>に、MPEG-2 extension to Lower Sampling Frequencies, as well as the so-called MPEG 2.5 formatという記述があった。
Googleで検索してみると、MPEG-2 Low Sampling Frequenciesという方が結果は多いようだったが、これがMPEG 2.5なのだろう。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-28701224596227710682024-03-18T23:06:00.005+09:002024-03-18T23:06:58.785+09:00フレッツ光のPR-500MIで、フレッツ網のIPv6のDNSサーバーを使わないようにするのに、失敗した。<p>
<a href="https://blog.onodera.asia/2024/01/pr-500miipv6dns.html">フレッツ光のPR-500MIで、フレッツ網のIPv6のDNSサーバーを使わないようにする</a>という記事を書いたが、
比較的長期で接続しておくと、やはりフレッツ網のIPv6のDNSサーバーを使うようになってしまって、この方法は解決策ではなかった。
</p>
<p>
仕方がないので、ローカルネットワークのDNSサーバーのIPv6アドレスをHGWに設定して、FQDNでアクセスすることにした。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-83951858219363022462024-03-18T23:03:00.001+09:002024-03-18T23:03:24.985+09:00Sennheiser PC 8 USBのイヤークッションを交換した<p>
<a href="https://www.amazon.co.jp/gp/product/B006J3CSES?&linkCode=ll1&tag=tetera-22&linkId=7c220282bfe45460b999a369fd8187f5&language=ja_JP&ref_=as_li_ss_tl">ゼンハイザー PCヘッドセット PC 8 USB</a>を使っていたのだが、早々にイヤークッションが劣化してしまった。
同じような薄いスポンジ製のイヤークッションに交換しても、すぐに劣化してしまうと思ったので、もう少し丈夫そうなイヤークッションを探してみた。
PC 8 USBのイヤークッションは直径50mmのものであれば良さそうだったので、<a href="https://www.amazon.co.jp/gp/product/B08NY4LBKV?ie=UTF8&psc=1&linkCode=ll1&tag=tetera-22&linkId=d8cc379362cd4a5e3ed6c8a5500620b6&language=ja_JP&ref_=as_li_ss_tl">イヤーパッド 50mm 直径 【2個入り】 ヘッドホン 交換用 イヤークッション 黒い PCduoduo (50mm)</a>というのを購入してみた。
</p>
<p>
無事に全く問題なく付けることができた。大きさも過不足なくちょうど良さそうである。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-22989521258573396032024-01-28T15:47:00.002+09:002024-01-28T15:47:42.695+09:00Huawei App Galleryのdeveloperアカウントについて調べてみた<p>
Huawe App Galleryにappをsubmitするには、個人としての登録としては
<a href="https://developer.huawei.com/consumer/en/doc/start/ibca-0000001062388135">HarmonyOS Developer - For Individual Developers</a>によると、
パスポートと銀行のキャッシュカードや通帳のコピーなどの書類をアップロードして審査を受ける必要があるようだ。
だが、銀行関係の書類は英語で書かれている必要があるそうなので、残高証明書か何かを発行してもらう必要がありそうだ。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-44615546250390622242024-01-28T15:30:00.000+09:002024-01-28T15:30:06.463+09:00中国本土の電子メールサービスで電子メールアドレスを取得しようとした<p>
中国本土のサービスで電子メールアドレスを取得しようと思ったのだが、
電子メールアドレスを取得するのは、なかなか難しかった。
結局は、<code>aliyun.com</code>の電子メールアドレスしか取得できるものはなかった。
</p>
<h2>中国本土でメジャーと思われる電子メールサービスを調べる</h2>
<p>
中国本土の事情に全く詳しくないのだが、ウェブで検索してみると、以下のようなサービスがあるようだ。
</p>
<ul>
<li>qq.com</li>
<li>163.com、126.com、yeah.net</li>
<li>sohu.com</li>
<li>sina.com、sina.cn</li>
<li>aliyun.com</li>
</ul>
<h2>qq.com</h2>
<p>
qq.comは、TencentのQQというサービスの提供する電子メールアドレスで使われているドメインのようだ。
Tencentのサービスである香港を含むSMSを受信できる中国国内の電話番号か中国国内版のWeChat appを
持っていないと、結局はアカウントは作れなかった。
</p>
<h2>163.com、126.com、yeah.net</h2>
<p>
中国国内のSMSを受信できる電話番号を持っていないと、結局はアカウントは作れなかった。
</p>
<h2>sohu.com</h2>
<p>
中国国内のSMSを受信できる電話番号を持っていないと、結局はアカウントは作れなかった。
</p>
<h2>sina.com、sina.cn</h2>
<p>
中国国内のSMSを受信できる電話番号を持っていないと、結局はアカウントは作れなかった。
</p>
<h2>aliyun.com</h2>
<p>
日本のSMSを受信できる電話番号でもアカウントを作ることができた。
ただ、これが当初目的としていた中国本土の電子メールサービスであるかと言うと、違うような気がする。
</p>
<p>
電子メールは、<code>47.246.174.177</code>で受信されるようだが、これはおそらく中国本土には所在していなさそうだ。
MXレコードの内容がCNAMEなので、それのために電子メールが送れないということはあるかもしれないが、
それは中国本土であることの制限とは違うだろう。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-38955637140310378902024-01-28T14:44:00.003+09:002024-01-28T14:44:53.460+09:00HP Pavilion Aero 13-be2010AUのBIOSの更新<p>
HP Pavilion Aero 13-be2010AUというlaptop PCをNetBSD/amd64-currentで利用していたのだが、
<a href="https://blog.onodera.asia/2023/03/hp-envy-13-ay1052au-x360bioswindows.html">HP Envy 13-ay1052AU x360のBIOSをWindowsを起動させずに更新する</a>と同様に操作すれば、Windows 11を起動させることなくBIOSを更新できた。
</p>
<p>
ただ、HP Pavilion Aero 13-be2010AUは、少なくともNetBSD/amd64 10.99.10ではNVMe SSDが定期的に一時停止してしまうし、
排熱の設計も良くない。HP Envy 13-ay1052AUの使用に戻すことにした。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-90590239696891171542024-01-28T14:36:00.003+09:002024-01-28T14:36:47.083+09:00Firefox 122.0 for Windowsで、Socks v5プロキシーサーバーとしてIPv6アドレスを設定する<p>
<a href="https://blog.onodera.asia/2021/08/opensshsockhttp.html">OpenSSHでsocksなプロキシーサーバーを実現する</a>として、
SocksサーバーとしてOpenSSHのport forwardingを使うことにしたのだが、IPv6なIPアドレスを指定する場合には、<code>[]</code>で
囲ってしまうと正常に利用できなかった。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-17082068528898547352024-01-28T13:28:00.004+09:002024-01-28T13:29:26.170+09:00フレッツ光のPR-500MIで、フレッツ網のIPv6のDNSサーバーを使わないようにする<p>
自宅でフレッツ光でIPoEによるIPv6を利用している。
自宅のネットワークは、ISC DHCPd (pkgsrc/net/isc-dhcpd)とBIND (pkgsrc/net/bind918)によるダイナミックDNSを利用している。
ダイナミックDNSでは、IPv4の正引きと逆引きのみ提供している。
</p>
<p>
しかし、Microsoft Windows 10をこのネットワークに接続しておくと、いつの間にかIPv6なDNSサーバーが設定され、
Windows 10はIPv6なDNSサーバーを優先して利用するので、自宅ネットワーク内のホストをDNSで引けなくなってしまう。
</p>
<p>
ホームゲートウェイ (HGW)であるPR-500MIに割り当てたIPv6アドレスがDNSサーバーとして設定されるので、
PR-500MIにある全てのDNSサーバーへの問い合わせをBINDのIPv6にフォワードする機能を使えば良いのかと思ったが、
IPv6なDNSサーバーのIPv6アドレスの他に、フレッツ網のDNSサフィックスも設定されてしまうので、
自宅ネットワークの各マシンのホスト名での正引きが面倒になってしまう。
</p>
<p>
いろいろ試してみると、「詳細設定」→「DNS」設定の画面にある、「DNS Proxy設定」の「IPv6 IPoE通信優先機能」を「優先しない」に設定
すれば、IPv6なDNSサーバーもDNSサフィックスも設定されないようになった。
自宅ネットワークのDHCPv4で配信しているDNSサーバーはIPv6なIPアドレスも返して来るので、これでIPv6な通信ができなくなることはない。
</p>
<p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXmb7VFsbGcYAPNKzwJXWexc0KZ8nrLh-aRh7tIAKv7QfXXBwJD0KuqLkhAW8XRCLLJnTzd_mEH76pvijvyhcWTirumvdM8b5VFVMpl4AUmTypqEJqpYv4RKFlE7tuj9042CquD19aC4rCoRRVtFiEMLMKwmWv-vYp3bm6091MY9ZPTpu6B96oLQUbVmfB/s769/20240128-PR-500MI.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="357" data-original-width="769" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXmb7VFsbGcYAPNKzwJXWexc0KZ8nrLh-aRh7tIAKv7QfXXBwJD0KuqLkhAW8XRCLLJnTzd_mEH76pvijvyhcWTirumvdM8b5VFVMpl4AUmTypqEJqpYv4RKFlE7tuj9042CquD19aC4rCoRRVtFiEMLMKwmWv-vYp3bm6091MY9ZPTpu6B96oLQUbVmfB/s320/20240128-PR-500MI.png"/></a></div>
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-86053142865256200752024-01-10T23:22:00.000+09:002024-01-10T23:22:29.924+09:00サンワサプライUSB-3TCH19RBKN<p>
NetBSD/amd64-currentをHP Pavilion Aero 13-be2000というラップトップで動かしているのだが、このPCのxhciはうまくNetBSD-currentにサポートされていないようで、axen(4)なデバイスはうまく使えないことが多い。
</p>
<p>
と言うことで、ure(4)またはcdce(4)で使えるUSB-Ethernetアダプターを探していたのだが、<a href="https://www.amazon.co.jp/dp/B0BCPKH2Z2?th=1&linkCode=ll1&tag=tetera-22&linkId=0f0a5b2226e08631e3184767e911f491&language=ja_JP&ref_=as_li_ss_tl">サンワサプライUSB-3TCH19RBKN</a>がUSB Type-C接続のUSB Type-Aのハブ機能を内蔵したure(4)として認識されるデバイスだった。
</p>
<p>
既に次の世代の製品が売られているようだが、それは調べられていない。
</p>
<pre class="prettyprint linenums">
uhub10 at uhub5 port 1: VIA Labs, Inc. (0x2109) USB3.0 Hub (0x0817), class 9/0, rev 3.20/90.a4, addr 2
uhub10: 4 ports with 4 removable, self powered
ure0 at uhub10 port 4
ure0: Realtek (0x0bda) USB 10/100/1000 LAN (0x8153), rev 3.00/30.00, addr 3
ure0: RTL8153 ver 5c30
rgephy0 at ure0 phy 0: RTL8251 1000BASE-T media interface, rev. 0
rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, auto
ure0: Ethernet address xx:xx:xx:xx:xx:xx
</pre>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-40124702860916601522023-12-28T00:48:00.002+09:002023-12-28T00:48:14.271+09:00NetBSD上のFirefoxで、KeePassXCと連携させてみる<p>
この記事は、<a href="https://qiita.com/advent-calendar/2023/netbsd">NetBSD Advent Calendar 2023</a>の17日目の記事です。
</p>
<h2>KeePassXCとは</h2>
<p>
KeePassXCは、クロスプラットフォームなパスワード管理ソフトウェアです。
<a href="https://freebsd-workshop.connpass.com/">FreeBSD Workshop</a>で、<a href="https://qiita.com/nanorkyo">重村さん</a>が紹介されていて、
それを聞いて詳しい機能を知ることができました。
</p>
<p>
パスワードをNetBSDデスクトップ環境で入力するのは、sudoやsuを使う時か、ウェブブラウザーでウェブサイトにログインする時が主だと思います。
sudoやsuで入力するパスワードの入力を補助してもらう必要はないので、入力補助が欲しいのはウェブブラウザー上のことになります。
KeePassXCは、Firefoxの拡張機能を経由して、KeePassXCアプリケーションと通信して、ユーザーIDやパスワードの情報を取得し、
ウェブフォームやBasic認証のポップアップに入力してくれる機能があります。
</p>
<p>
Firefoxにもパスワード管理機能はありますが、あくまでユーザーIDとパスワードの組み合わせを入力補助してくれる以上のことはできません。
3箇所以上に自動入力して欲しい時には、KeePassXCは役立ちそうです。
</p>
<h2>KeePassXCのインストール</h2>
<p>
NetBSDでは、pkgsrc/security/keepassxcとしてKeePassXCをインストールすることができます。
以下のように実行すれば良いでしょう。
</p>
<pre class="prettyprint linenums">
# cd /usr/pkgsrc/security/keepassxc
# make install
</pre>
<p>
pkgsrc/www/firefoxからインストールしてMozilla Firefoxで<a href="https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/">KeePassXC-Browser</a>
という拡張機能をインストールすれば、設定を開始する準備ができました。
</p>
<h2>KeePassXCの起動</h2>
<p>
KeePassXCの使い方は、<a href="https://keepassxc.org/docs/KeePassXC_GettingStarted">KeePassXC: Getting Started Guide</a>を読んでもらうのが一番です。
まずはパスワードデータベースを作成し、使う認証情報を登録してください。例えば下図のような感じです。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn9vTcXcuAOHBr_BASFkO-kQQdJVmR84WtZM8zyPGBSM4d1DB3NjT64PNF2hRrnmF3EkwKJfuMnRSm_0oj8ah0LFgE4ruGf5OWGxTdK2zoaWWu213ryuX48MqyDXIpuKCTjfVMVms89cVFnWOrEZWxtbBaw3LFUBiQnw-huBpJgmDAP-I5r0Racf3e3JZm/s992/app.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="813" data-original-width="992" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn9vTcXcuAOHBr_BASFkO-kQQdJVmR84WtZM8zyPGBSM4d1DB3NjT64PNF2hRrnmF3EkwKJfuMnRSm_0oj8ah0LFgE4ruGf5OWGxTdK2zoaWWu213ryuX48MqyDXIpuKCTjfVMVms89cVFnWOrEZWxtbBaw3LFUBiQnw-huBpJgmDAP-I5r0Racf3e3JZm/s320/app.png"/></a></div>
<p>
更に、設定画面からbrowser integrationを有効にし、Firefoxで使うように設定します。下図のような感じです。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrDBMkKXePKpikcm0n1ZfwAZLxODt-QzwV2hyphenhyphenLPRbxgLWOsd7CBFXcH-1vwxNc8mcIqbInng6CwWkpmf8VUWxNSoyh-zPp_vFiukJtYFxGGvkh9Sv0kflVIqxz9M-8OY_ZtL-1oa6cmt-ivReZ0G-cVKS1yutZLoc8Du46SDtBqNeEmfhpc6yww8hQxVzW/s992/settings.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="813" data-original-width="992" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrDBMkKXePKpikcm0n1ZfwAZLxODt-QzwV2hyphenhyphenLPRbxgLWOsd7CBFXcH-1vwxNc8mcIqbInng6CwWkpmf8VUWxNSoyh-zPp_vFiukJtYFxGGvkh9Sv0kflVIqxz9M-8OY_ZtL-1oa6cmt-ivReZ0G-cVKS1yutZLoc8Du46SDtBqNeEmfhpc6yww8hQxVzW/s320/settings.png"/></a></div>
<h2>KeePassXC-Browserの初期設定</h2>
<p>
まず、keepassxcコマンドでKeePassXCを起動させましょう。パスワードデータベースもロックを解除しておきます。
その上で、
ツールバーのジグソーパズルのピースのアイコンから、KeePassXC-Browserをクリックすると、最初にKeePassXCアプリケーションとの連携を設定する表示になります。
ここで、適当な識別子を入力して、Save and allow accessボタンを押してください。
これでKeePassXCアプリケーションとKeePassXC-Browser拡張機能がつながります。
</p>
<h2>KeePassXC-Browserを使ってみる</h2>
<p>
その上で、登録したウェブサイトを開くと、KeePassXCのアイコンが入力フォームに表示されます。同時に、どの情報を入力するかの選択のできるポップアップウィンドウが
表示されます。
ここで、利用したいものを選択すれば、自動的に認証情報が入力されます。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbfTBrGYeoOXeQtCOVLz0JUHlUKaeyohqkpjpkijRMdJnBB5BNFCSAahUKrk_S_S2zAoUVl1bh9eiiOw808FdL3K7q9OanaitebXfsyoxq1V3z1dVGI4XWdSp2meNBaUFl42O8fRjFRE2LbnjmDijGsw0XeDHKZW8v2_cV1N6oB1TDgEfPgZua9Zuc0uO4/s1156/yahoo.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="646" data-original-width="1156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbfTBrGYeoOXeQtCOVLz0JUHlUKaeyohqkpjpkijRMdJnBB5BNFCSAahUKrk_S_S2zAoUVl1bh9eiiOw808FdL3K7q9OanaitebXfsyoxq1V3z1dVGI4XWdSp2meNBaUFl42O8fRjFRE2LbnjmDijGsw0XeDHKZW8v2_cV1N6oB1TDgEfPgZua9Zuc0uO4/s320/yahoo.png"/></a></div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvSnlVGzPzqV6mTXSzQaPNIHP_OIxoFOF95zhXpWFwgmEyWDQnparzoN-WPRbEsB1swRBH4SQp5nyP5AjkQ92R0F8YGhk1Zgp66RnHJJgb_h0UNHbEn4g-KU-cV6D92JUykGMHpgMuOqglN8S9H6_GDTrrOmG3vQOF82KUaaZjIOcr9ZvXZTM0SGSzkOJS/s454/candidates.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="200" data-original-width="454" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvSnlVGzPzqV6mTXSzQaPNIHP_OIxoFOF95zhXpWFwgmEyWDQnparzoN-WPRbEsB1swRBH4SQp5nyP5AjkQ92R0F8YGhk1Zgp66RnHJJgb_h0UNHbEn4g-KU-cV6D92JUykGMHpgMuOqglN8S9H6_GDTrrOmG3vQOF82KUaaZjIOcr9ZvXZTM0SGSzkOJS/s320/candidates.png"/></a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-38687599815524526742023-12-20T23:58:00.002+09:002023-12-20T23:58:49.987+09:00NetBSDで最新のMozcを使う 2<p>
この記事は、NetBSD Advent Calendar 2023の20日目の記事です。
</p>
<p>
<a href="https://blog.onodera.asia/2023/12/netbsdmozc-1.html">昨日</a>に続き、Mozc 2.29.5268.102をNetBSD/amd64で使うまでの話を書きたいと思います。
ここで、NetBSD/amd64と書きました。
昨日は書き忘れてしまいましたが、Bazelは64ビットの環境でしかビルドできません。
ですので、NetBSD/i386に代表される32ビットの環境ではBazelが動かないので、
Mozc 2.29.5268.102をビルドすることはできません。残念です。
</p>
<p>
ちなみに、以前のMozcよりOSに依存するコードは格段に少なくなっているようです。
そういう部分はabseil-cppを利用することになったのかもしれません。
Bazelが良いためでないのは間違いありませんが…。
</p>
<h2>mozc-serverのビルド</h2>
<p>
Mozcのパッケージは、pkgsrc/inputmethod/mozc-serverからビルドしていくことになります。
実を言いますと、mozc-serverのビルドは難しくありませんでした。
潜在的なBazelの問題は、mozc-serverのビルドでは表面化しなかったのです。
</p>
<p>
ですが、以下のようにすれば、pkgsrc開発者的にはうれしいような気がします。
</p>
<pre class="prettyprint linenums">
do-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
${PREFIX}/bin/bazel \
--output_user_root=${WRKDIR}/bazel \
--client_debug \
build \
server:mozc_server \
--host_action_env=CWRAPPERS_CONFIG_DIR=${CWRAPPERS_CONFIG_DIR} \
--action_env=CWRAPPERS_CONFIG_DIR=${CWRAPPERS_CONFIG_DIR} \
--host_action_env=PATH=${PATH} \
--action_env=PATH=${PATH} \
--sandbox_debug \
--verbose_failures \
--subcommands \
--config oss_linux --compilation_mode opt
</pre>
<p>
ここで、--output_user_rootをWRKSRC以下に設定すれば、make cleanすることで
ビルドの過程で生成されたものは全て削除することができます。
また、--subcommandsを指定することで、どのようなコマンドが実行されたのか表示されるようになります。
ここで、oss_linuxというconfigを指定しているのですが、特にLinuxに特化したものではなく、
Unix-like OS全般に適用できるものでしたので、このままで大丈夫です。
--host_action_envや--action_envでcwrapperの変数を渡していますが、これは本当は不要でしょう。
Bazelはサンドボックス機能を持っているので、明示的に渡さないと環境変数も暗黙の内には引き継がれません。
</p>
<p>
これで、WRKSRC/bazel/bazel-out/netbsd-opt/bin/server/mozc_serverが生成できました。
</p>
<h2>mozc-rendererのビルド</h2>
<p>
次にはpkgsrc/inputmethod/mozc-rendererをビルドします。
pkgsrc以外のパッケージ管理の仕組みでは、mozc-rendererを個別のパッケージにしていない
場合もあるようですが、pkgsrcでは分けています。
この方が依存関係を解決するには良いと思うのですが…。
</p>
<p>
現在のMozcのmozc-rendererはQt6を利用しています。
Bazelではソースファイル(.cや.cxxなど)に加えて、そこからインクルードされる
ヘッダーファイルまでBazelファイル中で再帰的に依存関係として記載しておく必要があります。
個人的には、そんな必要があるような気がしないのですが…。
しかもBazelファイルを記述するドメイン固有言語であるStarlarkではdir/**という
そのディレクトリー以下のファイルを再帰的に指定する方法も提供されていますので、
自己否定しているような気もしてしまいます…。
</p>
<p>
いずれにしても、Qt6のようにツリー外の依存関係を解決するのは、Bazelでは少し面倒ですし、
一級市民ではないようです。
pkg-configの結果から、依存関係を自動生成する仕組みがMozc用に用意されていました。
ですが、少なくともNetBSD/amd64上のpkgsrcにとっては、指定されたパッケージでは
不足していました。WORKSPACE.bazelで、Qt6OpenGLとglもpkg-configで情報を
取得する対象にする必要がありました。
</p>
<p>
ここまでは、よくあることなのですが、実際にビルドしてみると、Qt6のヘッダーファイルが
不正に利用されているとしてBazelがエラーを多量に発生させてしまいます。
どうやら、cc -MDで生成される.dファイルの内容と、Bazelのサンドボックス機能で作られた
ヘッダーファイルのパスが一致しているかをチェックしているようです。
例えば、/usr/pkg/qt6/include/QtCore/QObjectが不正に利用されていると
エラーが発生していました。
</p>
<p>
いろいろと試してみると、2つのことが分かりました。
1つ目は、そもそも/usr/pkg/qt6という絶対パスはBazelファイルでの依存関係として
指定されていないと言うこと、2つ目は依存関係に絶対パスを指定するとBazelは絶対パスの
指定を許さずエラーになると言うことです。
</p>
<p>
Bazelは、ヘッダーファイルのパスを指定するのに、-Iではなく-isystemを利用します。
そして、各ヘッダーファイルは、シンボリックリンクでWRKSRC/bazel以下にBazelが配置します。
NetBSD/amd64-currentのGCC 10.5.0は、-isystemで絶対パスを設定し、それがシンボリックリンク
を含んでいる場合に、シンボリックリンクをたどった結果のパスを.dファイルに記載するような
挙動になっていました。clangはそうではありません。
</p>
<p>
ここまで、NetBSD baseのccを使ってビルドするようにbazelをブートストラップしていたのですが、
GCCの挙動ではBazelは気にいらないようです。
pkgsrc/lang/clangからインストールされるclang/clang++を使うようにすることにしました。
これで正常にビルドは完了するようになりました。
</p>
<h2>mozc-tool、fcits5-mozcのビルド</h2>
<p>
mozc-rendererがビルドできれば、mozc-toolもfcitx5-mozcも問題なくビルドすることが
できました。
</p>
<h2>今後について</h2>
<p>
Mozc自体はibus用のモジュールをビルドするようになっています。
私がfcitx5を利用しているので、今のところibus-mozcまでたどりついていませんが、
commitするまでには、ibus-mozcも用意しておきたいと思います。
</p>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-5610684310018006982023-12-20T01:25:00.003+09:002023-12-20T01:25:27.824+09:00NetBSDで最新のMozcを使う 1<p>
この記事は、NetBSD Advent Calendar 2023の19日目の記事です。
</p>
<h2>はじめに</h2>
<p>
私自身はSKKを常用しているので、連文節日本語かな漢字変換の世間の流れを良く知りませんが、
Google日本語入力のオープンソース版であるMozcが、NetBSDで利用できるなかで、
一番快適なのではないかと思っています。
</p>
<p>
ですが、最近のProtocol Bufferパッケージ(pkgsrc/deve/protobuf)のアップデートで、
pkgsrc/inputmethod以下にあるMozc関連のパッケージがビルドに失敗するようになって
しまったようです。
</p>
<p>
ちょうどpkgsrcは4半期のフリーズの時期ですので、実際にはアップデートはできていませんが、
Mozcを最新のタグである2.29.5268.102というバージョンにアップデートする準備が
だいたい整いましたので、アップデートのために実施したことを書いておきたいと思います。
</p>
<h2>最近のMozcのビルドの仕組み</h2>
<p>
最近のMozcは、Googleの提供しているBazelというビルド・オートメーション・システムを
利用するようになっています。
pkgsrcに現在含まれているMozc関連のパッケージは、GYPというビルド・オートメーション・ツール
を使っていましたが、少なくともNetBSDで利用する際にベースとなるLinuxでのビルドには、
GYPはもう使えないようです。
</p>
<p>
と言うことで、Bazelのパッケージを先に作成する必要があります。
</p>
<h2>Bazelのパッケージを作る</h2>
<p>
Bazelをビルドするには、2つの方法があるようです。
Bazelを使ってBazelをビルドする方法と、Bazelを使わずBazelをビルドする方法です。
NetBSD用のBazelバイナリーは配布されていませんので、後者の方法(ブートストラップする方法)を使うしかありません。
ブートストラップする場合には、Javaの.jarファイルが実行でき、Python 3も使えれば良いようです。
</p>
<h3>Bazelのソースコードを確認する</h3>
<p>
NetBSDでBazelをブートストラップしようとすると、NetBSDという選択肢がないとjavaコマンドに
文句を言われてしまい、先に進めません。
ブートストラップ用の配布物に含まれる.jarファイルがNetBSDに対応していないために、
このようなエラーが発生しているようです。
Bazelファイル(WORKSPACE、BUILD、*.bzl)と.javaファイルをLinuxやOpenBSD、FreeBSDでgrepし、NetBSDも同様に
定義をしたり、条件節を追加したりしてやります。
具体的な内容は、pkgsrc/wip/bazel/patches以下を見ていただければと思います。
この時点で気付いた以上のものが含まれてはいますが…。
</p>
<h3>Bazelのブートストラップ・キットを作り直す</h3>
<p>
.jarファイルの生成自体は、うまくBazelファイルを編集し、pkgsrc/pkgtools/libkverを
使えばNetBSDでもビルドできましたが、Linux/x86_64環境でビルドしてしまうのが一番簡単です。
bazel-distfileターゲットを実行すれば、.zipアーカイブでブートストラップ・キットが
できあがるはずと思うのですが、scripts/bootstrap以下のファイルが含まれていませんでした。
これも元のブートストラップ・キットからコピーして再度手動でアーカイブファイルを作成し直して、
これをNetBSD環境へ持って行きます。
LOCAL_PORTS/bazel-6.4.0-dist-netbsd.tar.gzから最終的なブートストラップ・キットは
入手できます。
これ以降、Bazelファイルの修正が不足していて修正する必要が出て来るのですが、Bazelファイル
を直しても、Linuxでブートストラップ・キットを作り直す必要はありませんでした。
修正して再度アーカイブ・ファイルを作成するだけで大丈夫でした。
</p>
<h3>Bazelの隔離機能とpkgsrcの隔離機能が競合する</h3>
<p>
Bazelは、一貫性のあるビルドを実行するために、ビルド用のサンドボックスを提供しているようです。
pkgsrcも、buildlink3という仕組みで、サンドボックス的な環境を提供しています。
ですが、2つの機能は少し発想が異なるようで、両立させるのは私には無理でした。
</p>
<p>
この時点で認識できた競合した事項を記載しておきます。
</p>
<ul>
<li>C/C++コンパイラーやstripコマンド等が絶対パスで埋め込まれてしまいます。
これによって、pkgsrcのcwrqapperのccコマンドやc++コマンド等をビルド時に使用すると、
WRKSRC以下の絶対パスがBazelコマンドに埋め込まれてしまい、実質的に使えないバイナリーに
なってしまいます。</li>
<li>できたbazelバイナリーを実行してみて、libjava.soが見付からないとエラーが出るため
JAVA_HOMEの設定がおかしい、あるいはどこかで上書きされているのではないかと、
この時は考えていたのですが、これは勘違いでした。</li>
</ul>
<h3>Bazelのランタイムエラーを解析し、修正する</h3>
<p>
生成されたbazelコマンドを実行すると、
</p>
<pre class="prettyprint linenums">
Error: could not find libjava.so
Error: Could not find Java SE Runtime Environment.
</pre>
<p>
と表示されて、動きません。
検索すると、
<a href="https://github.com/bazelbuild/bazel/issues/6655">Java error on AIX #6655</a>
に同じ問題に悩んでいるAIXへ移植しようとしている人がいたのですが、
解決することなくissueはクローズされてしまっています。
</p>
<p>
何もヒントがウェブ上にはないようなので、lang/openjdk11でこのエラーメッセージを
出している箇所を検索してみることにしました。
</p>
<p>
すると、
<code>jdk11u-jdk-11.0.21-9-1/src/java.base/unix/native/libjli/java_md_common.c</code>
の中の、以下の関数のdladdr()が想定されるlibjli.soのパスではなく、bazel()という文字列を
返しているのが良くないと分かりました。
</p>
<pre class="prettyprint linenums">
jboolean
GetApplicationHomeFromDll(char *buf, jint bufsize)
{
/* try to find ourselves instead */
Dl_info info;
if (dladdr((void*)&GetApplicationHomeFromDll, &info) != 0) {
char *path = realpath(info.dli_fname, buf);
if (path == buf) {
return TruncatePath(buf);
}
}
return JNI_FALSE;
}
</pre>
<p>
lang/oprnjdk11では、libjliは静的にリンクされています。
それがいけなさそうです。
</p>
<p>
<code>jdk11u-jdk-11.0.21-9-1/make/launcher/LauncherCommon.gmk</code>
を見ると、AIXとBSDの場合は、libjliを静的にリンクするようになっています。
さきほどのissueでAIXの人が同じように悩んでいたのも納得できました。
<a href="https://mail-index.netbsd.org/pkgsrc-changes/2023/12/09/msg288356.html">https://mail-index.netbsd.org/pkgsrc-changes/2023/12/09/msg288356.html</a>
のように変更し、lang/openjdk11でlibjli.soを動的にリンクするようにしました。
実際には、
<a href="https://mail-index.netbsd.org/pkgsrc-changes/2023/12/12/msg288501.html">https://mail-index.netbsd.org/pkgsrc-changes/2023/12/12/msg288501.html</a>
の適用も必要でした。
</p>
<p>
このopenjdk11を使えば、bazelコマンドは正常に動作しているように見えるくらいにはなりました。
</p>
<p>
時間の関係で、更にbazelを直しつつ、Mozcをビルドする話は次回に続きます。
</p>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-91296142384834095752023-12-01T19:15:00.005+09:002023-12-02T12:58:51.462+09:00NetBSD上のFirefoxで、text-to-speechを試す<p>
この記事は、<a href="https://qiita.com/advent-calendar/2023/netbsd">NetBSD Advent Calendar 2023</a>の1日目の記事です。
</p>
<h2>はじめに</h2>
<p>
最近のMozilla Firefoxには、text-to-speech機能を利用するための仕組みが組み込まれています。
しかし、Firefox自体がテキストの内容を発音する訳ではなく、speech-dispatcher経由でFestivalというtext-to-speechエンジンを利用します。
NetBSDでも、pkgsrcを使ってFirefoxやspeech-dispatcher、Festivalをインストールし、設定することで、この機能を利用できます。
ですが、音声の品質は良くないようです。
今回は英語のみ発音させることを考えます。
</p>
<h2>Firefoxのインストール</h2>
<p>
現在のpkgsrc/www/firefoxのバージョンは120.0です。
既定値ではspeech-dispatcherを使うオプションは有効化されていません。
今回紹介する手順を実施しておかないと、text-to-speechが使えないという警告が頻繁に表示されることがあるので、speech-dispatcherを使うオプションはtext-to-speech機能を利用したい人だけが有効化するのが良いと思います。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiejFZ2SALJhDwOzDItWFoNU0NDaE8WvnBwwatR-E6d9C4iRqhG86Hem-VCfp9TlNCDCuIynU7KM9WtRPLlgpuWPDhmob1zuaiDIPwZI43eBx_UOHNMpl4LeBhug-xrFcuEfy4MdkdpJLRimaMc0EZknflgJ5c9qgiI_mn6_2His36psnXtf395GRekt0y0/s1600/speechd-warn%202023-12-01%20134619.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="41" data-original-width="927" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiejFZ2SALJhDwOzDItWFoNU0NDaE8WvnBwwatR-E6d9C4iRqhG86Hem-VCfp9TlNCDCuIynU7KM9WtRPLlgpuWPDhmob1zuaiDIPwZI43eBx_UOHNMpl4LeBhug-xrFcuEfy4MdkdpJLRimaMc0EZknflgJ5c9qgiI_mn6_2His36psnXtf395GRekt0y0/s1600/speechd-warn%202023-12-01%20134619.png"/></a></div>
<p>
以下のように/etc/mk.confに記載して、speech-dispatcherを利用できるFirefoxをビルドできるようにします。
</p>
<pre class="prettyprint linenums">
# vi /etc/mk.con
PKG_OPTIONS.firefox=speechd
</pre>
<p>
これを設定した上で、pkgsrc/www/firefoxをビルドし、インストールします。
</p>
<pre class="prettyprint linenums">
# cd /usr/pkgsrc/www/firefox
# make install
</pre>
<p>
speech-dispatcherは、pkgsrc/audio/speech-dispatcherにありますが、自動的にインストールされます。
</p>
<h2>Festivalのインストール</h2>
<p>
Festivalは本体であるpkgsrc/audio/festivalだけではなく、発音データは音声データも必要です。
pkgsrcでインストールする場合には、以下の4つのパッケージをインストールすれば、Festival本体も含め必要なものは全てインストールできます。
</p>
<ul>
<li>pkgsrc/audio/festvox-kal16</li>
<li>pkgsrc/audio/festvox-ked16</li>
<li>pkgsrc/audio/festvox-rab16</li>
<li>pkgsrc/audio/festival-freebsoft-utils</li>
</ul>
<p>
以下のように操作すれば良いでしょう。
</p>
<pre class="prettyprint linenums">
# cd /usr/pkgsrc/audio/festvox-kal16
# make install
# cd /usr/pkgsrc/audio/festvox-ked16
# make install
# cd /usr/pkgsrc/audio/festvox-rab16
# make install
# cd /usr/pkgsrc/audio/festival-freebsoft-utils
# make install
</pre>
<p>
これにより、3つの音声を選択することができるようになります。
いずれもあまり質は良くないのですが‥、
</p>
<h2>speech-dispatcherの設定</h2>
<p>
speech-dispatcherは、標準ではespeak-ngを使うような設定ファイルになっています。
今回はFestivalを使いますので、そのように指定して行きます。
/usr/pkg/etc/speech-dispatcher/speechd.confに、以下のようなパッチを適用すれば良いでしょう。
</p>
<pre class="prettyprint linenums">
--- /usr/pkg/share/examples/speech-dispatcher/speechd.conf 2023-11-18 05:59:28.000000000 +0900
+++ /usr/pkg/etc/speech-dispatcher/speechd.conf 2023-12-01 12:33:15.988361377 +0900
@@ -114,6 +114,7 @@
# configuration.
# DefaultLanguage "en-US"
+DefaultLanguage "en-US"
# ----- MESSAGE DISPATCHING CONTROL -----
@@ -255,7 +256,7 @@
#AddModule "espeak" "sd_espeak" "espeak.conf"
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
-#AddModule "festival" "sd_festival" "festival.conf"
+AddModule "festival" "sd_festival" "festival.conf"
#AddModule "flite" "sd_flite" "flite.conf"
#AddModule "ivona" "sd_ivona" "ivona.conf"
#AddModule "pico" "sd_pico" "pico.conf"
@@ -287,7 +288,8 @@
# The DefaultModule selects which output module is the default. You
# must use one of the names of the modules loaded with AddModule.
-DefaultModule espeak-ng
+#DefaultModule espeak-ng
+DefaultModule festival
# The LanguageDefaultModule selects which output modules are prefered
# for specified languages.
@@ -295,6 +297,7 @@
#LanguageDefaultModule "en" "espeak"
#LanguageDefaultModule "cs" "festival"
#LanguageDefaultModule "es" "festival"
+LanguageDefaultModule "en" "festival"
# -----CLIENT SPECIFIC CONFIGURATION-----
</pre>
<h2>起動させる</h2>
<p>
Firefoxを起動させる前に、Festivalサーバーを起動しておく必要があります。
Festivalサーバーは、/etc/rc.d以下のスクリプトで起動させるのではなく、自分で起動させる必要があります。
</p>
<pre class="prettyprint linenums">
$ festival --server &
</pre>
<p>
続いて、Firefoxも起動させます。
</p>
<pre class="prettyprint linenums">
$ firefox &
</pre>
<h2>テキストを読ませる</h2>
<p>
テキストを読ませるには、リーダービュー機能が利用できるウェブページである必要があります。
例えば、https://edition.cnn.com/の個別の記事であれば、リーダービューを有効にできます。
アドレス欄の右端に下図のようなアイコンが表示されていれば、リーダービューを利用できるウェブページです。
これをクリックすると、リーダービュー画面に移動することができます。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTdqtz-lpLStUAFe6pVGqg9aweZmP_1zaigoCXwHAyu0YzZ6ZZvGwUvtWVv0gGw4PqspjRtCpwgwtZquS7RTedd6y_lzpHEpEC88_dm4bqAEMcjXG15JKviwjJtpbLwOxTN0kRsoTivXdPZswhlds806SayAYd1lniLgV4tnWp5MnRHqIfld6gMvHfMjQu/s1600/URL-bar%202023-12-01%20134301.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="50" data-original-width="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTdqtz-lpLStUAFe6pVGqg9aweZmP_1zaigoCXwHAyu0YzZ6ZZvGwUvtWVv0gGw4PqspjRtCpwgwtZquS7RTedd6y_lzpHEpEC88_dm4bqAEMcjXG15JKviwjJtpbLwOxTN0kRsoTivXdPZswhlds806SayAYd1lniLgV4tnWp5MnRHqIfld6gMvHfMjQu/s1600/URL-bar%202023-12-01%20134301.png"/></a></div>
<p>
リーダービュー画面では左上に、下図のようなコンソールが表示されています。
ヘッドホンアイコンをクリックすると、音声や再生速度の選択、再生・停止の指示のできるポップアップもできます。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuz1-MwF-DbKtMvNcBfjDz1xO5QAdbGZhhlxoz1oMg6Wjb6piKkjqfGnzcGr_7X9Zi4yyX1GV659iTZk7rWJhuxcf6pVd1fEfIQrfH6pitN64XP2yzcL4rSP3AoYFM7Yev8EeOAPowoOWP4y2ERRDZoDUlolAZR0KOOpwI07cSRW54BV-AR0FLjRe6dWGG/s1600/Screenshot%202023-11-07%20at%2022-02-25%20Introducing%20Ruvy%20%282023%29.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="375" data-original-width="335" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuz1-MwF-DbKtMvNcBfjDz1xO5QAdbGZhhlxoz1oMg6Wjb6piKkjqfGnzcGr_7X9Zi4yyX1GV659iTZk7rWJhuxcf6pVd1fEfIQrfH6pitN64XP2yzcL4rSP3AoYFM7Yev8EeOAPowoOWP4y2ERRDZoDUlolAZR0KOOpwI07cSRW54BV-AR0FLjRe6dWGG/s1600/Screenshot%202023-11-07%20at%2022-02-25%20Introducing%20Ruvy%20%282023%29.png"/></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-61577029000654657972023-11-02T13:54:00.002+09:002023-11-02T13:55:11.677+09:00macOS環境なしで古いMacにmacOS High SierraをインストールするUSBスティックを作成する<p>
iPhoneから写真を大量に取り出すためだけにMac mini mid2011 (Macmini5,1)を維持している。
当然最新のmacOSであるmacOS Sonomaが利用できる訳ではない。
サポートされているのは、macOS High Sierraが最後である。
</p>
<p>
トラブルがあってMac mini mid2011が起動しなくなってしまった。
そこでインターネットリカバリーでmacOS High Sierraをインストールしようとしたのだが、復元サーバーに接続できないとのことでインターネットリカバリーはできなかった。
出荷時にインストールされていたMac OS X Lionも同様にインストールできない。
おそらく、既にインターネットリカバリーでmacOS High Sierra以前をインストールすることはできなくなっているのだろう。
しかし、私はこのMac mini mid2011しかMacは持っていない。手元にある機材のみでmacOS High Sierraを再インストールすることができたので、書いておく。
</p>
<h2>macOS Sierraのインストーラーを入手する</h2>
<p>
macOS Sierraのインストーラーとは言っても、DVD-RやUSBスティックに書き込めるイメージファイルではない。
あくまでmacOS上で実行するためのアプリケーションである。これは.dmgファイルでダウンロードできる。
なぜmacOS Sierraなのかと言うと、.dmg形式でダウンロードできるもののうちインターネットリカバリーのターミナル上でインストーラーUSBスティックを作れる最新のものだからである。
</p>
<p>
ダウンロードは、Appleのウェブページ<a href="https://support.apple.com/ja-jp/HT211683">macOS をダウンロードしてインストールする方法 (HT211683)</a>からダウンロードできる。
「Web ブラウザを使う」の部分の、「Sierra 10.12」から<code>InstallOS.dmg</code>をダウンロードすれば良い。
</p>
<p>
この<code>InstallOS.dmg</code>をWindowsの<a href="https://7-zip.org">7-Zip 23.01</a>で展開する。その中に、<code>Install OS</code>ディレクトリーの中にある<code>InstallOS.pkg</code>が目的としているインストーラーである。
</p>
<h2>macOS Sierraのインストーラーを展開する</h2>
<p>
私の持っているmacOSの環境というと、インターネットリカバリー画面から使えるターミナルだけなので、ここで作業できるように考える。
Windows上でUSBスティックをexFATでフォーマットし、そこに<code>InstallOS.pkg</code>ファイルをコピーする。
</p>
<p>
Mac mini mid2011に接続したキーボードで、WindowsキーとAltキーとRキーを同時に押したまま電源を投入すると、インターネットリカバリーの画面になる。これは、macOS High Sierraのリカバリー画面であるはずである。
ここで、インストールする内蔵ストレージの設定と、インストール用のUSBスティックの作成を行う。
</p>
<p>
内蔵ストレージの設定として、HFS+のパーティションを作成する。macOS SierraはAPFSを扱えないので、macOS High Sierraのリカバリー画面でAPFS関係は全て消して、HFS+だけの環境にしておく必要がある。
ディスクユーティリティーで全て消して、HFS+のパーティションのみ作成すれば良い。
</p>
<p>
ここで、exFATでフォーマットし、<code>InstallOS.pkg</code>を格納したUSBスティックを接続する。
私の場合には、<code>/Volumes/Untitled</code>にマウントされた。
更にインストーラーにするUSBスティックも接続する。これは<code>/Volumes/32GB</code>にマウントされた。
インストーラーにするUSBスティックがマウントされない場合には、ディスクユーティリティーでApple partitioningのHFS+のパーティションを作っておけば間違いないだろう。
以下のように実行して、USBスティックからインストーラーを起動できるようにする。
</p>
<pre class="prettyprint linenums">
# cd /Volumes/Untitled
# pkgutil --expand-full InstallOS.pkg OSInstaller
# cd OSInstaller/InstallOS.pkg
# mv InstallESD.dmg Payload/Install\ macOS\ Sierra.app/Contents/SharedSupport
# plutil -replace CFBundleShortVersionString -string "12.6.03" Payload/Install\ macOS\ Sierra.app/Contents/Info.plist
# cd Payload/Install\ macOS\ Sierra.app/Contents/Resources
# ./createinstallmedia --volume /Volumes/32GB --applicationpath /Volumes/Untitled/OSInstaller/InstallOS.pkg/Payload/Install\ macOS\ Sierra.app
</pre>
<p>
ここで、2行目から4行目は、<a href="https://dortania.github.io/OpenCore-Install-Guide/installer-guide/mac-install-pkg.html">OpenCoreのLegacy macOS: Offline Methodのページ</a>を参照した。
</p>
<p>
ここで、5行目は、<a href="https://qiita.com/yosizo@github/items/3ff252b78efc54f7f6fa">qiitaの「macOS Sierraのインストール 用 USBメモリ作成方法の落とし穴」のページ</a>を参照した。
</p>
<h2>macOS Sierraをインストールする</h2>
<p>
Altキーを押しながらMac mini mid2011を起動させると、起動するデバイスやパーティションを選択できる。そこで「Install macOS Sierra」を選択する。
念のためターミナルで以下のように実行して時刻を合わせておいた上でインストールを継続する。
</p>
<pre class="prettyprint linenums">
# ntpdate time.apple.com
</pre>
<p>
今回作成したインストーラーUSBスティックでは、GUIでインストールしようとすると、整合性に問題があると言われてインストールをすることができない。
コマンドラインでインストールすればそのようなエラーにはならないので、以下のように実行してインストールする。
内蔵ストレージが<code>/Volumes/macOS</code>にマウントされている。
</p>
<pre class="prettyprint linenums">
# installer -pkg /Volumes/Mac\ OS\ X\ Install\ DVD/Packages/OSInstall.mpkg -target /Volumes/macOS
</pre>
<p>
これで、macOS Sierraをインストールできる。その後に、macOS Sierra上でmacOS High SierraのインストーラーUSBスティックを作成し、それを使ってクリーンインストールすれば良い。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-14203793044781945522023-08-08T02:01:00.000+09:002023-08-08T02:01:24.120+09:002023年10月10日まで有効なWindows 11 development environmentで、ファイルシステムとしてReFSが使えるようになっていた<p>
Windows 11 development environmentというのがあって、<a href="https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/">各種ハイパーバイザー用に仮想マシンがインポートできるようなファイルが配布されている</a>。
私はVirtualBox用のものを利用しているが、Hyper-V (V2)の方が良いのかもしれない。
</p>
<p>
ここで利用できるWindowsは約3カ月しかライセンスがないのだが、実態としてはWindows 11 Enterprise Evaluation64ビット版22H2だった。
そもそもWindows 11 Enterprise Evaluation自体が3カ月間利用できるので、実機にインストールしても、Windows 11を利用するという視点では
変わらないかもしれない。
各種開発環境がインストール済みであるのは、宣伝文句の通り利点かもしれない。
ちなみに、ディスクの空き容量は最低でも70GB必要と記載されているが、VirtualBoxの場合には、実際には40GB程度空いていれば利用開始することはできる。
</p>
<p>
この環境はWindows 11 Enterpriseであるということは、ファイルシステムとしてReFSを利用できるのではないかと考えて試してみると、
確かにReFSが利用できた。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-44872142619537641382023-08-02T23:41:00.000+09:002023-08-02T23:41:28.563+09:00第7世代Amazon Kindleと第10世代Amazon Kindle Fire HD 8で、EPUB3な電子書籍を読む<p>
少なくとも2023年8月1日の時点では、Amazon Kindle (einkな画面のタブレット)や、FireタブレットでEPUB3な電子書籍を読むことができる。
</p>
<p>
私の持っているEPUB3のファイルの容量は大きいので、電子メールで送って読めるようにするのは難しい。
調べてみると、<a href="https://www.amazon.co.jp/sendtokindle">Send to Kindleというウェブページ</a>からアップロードできるようになっていた。
最大200MBまでアップロードできるそうだ。
</p>
<p>
アップロードしても、<a href="https://read.amazon.co.jp">クラウドリーダー</a>では読むことはできなかった。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-6064465747582296962023-08-02T23:07:00.001+09:002023-08-02T23:07:38.873+09:00Amazon FireOS用のMicrosoft OneNoteアプリで、言語ファイルがダウンロードできるようになっていた<p>
しばらく前に、第10世代のAmazon Kindle Fire HD 8というタブレットを購入していた。
電子書籍を読むのに使っている訳だが、Amazonアプリストアというものも用意されていて、
Androidアプリをインストールできる。
まあ、十分なものはないので、F-Droidでもインストールしないと困ってしまうような気がする。
</p>
<p>
しかし、Microsoft OfficeとOneNoteのアプリはマイクロソフトから提供されていて、
OneNoteを少し大きな画面のタブレットで使うとどうなるのかは気になっていた。
しかし、インストールすると厳密には覚えていないが、言語ファイルがダウンロードできないと言う
エラーが起きていた。それでも、日本語のユーザーインターフェイスにはなっていたように思うが。
</p>
<p>
先週くらいに試したら、無事に言語ファイルがダウンロードでき、日本語フォントもダウンロードしたようだった。
OneNoteはあまり私のニーズには合わなかったように思うが、正常に使えるようになったのは良かった。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-85821011929492472272023-08-02T03:05:00.001+09:002023-08-02T03:05:34.478+09:00TOPPERSでメーリングリストが廃止されていた<p>
users@toppers.jpというメーリングリストを購読していたのだが、
<a href="https://www.toppers.jp/TOPPERS-USERS-mailman/2023-July/004770.html">2023年7月7日に廃止されていた</a>。
移行先は<a href="https://github.com/toppers/users-forum/discussions">GitHub Discussions</a>になるそうだ。
電子メールが流行っていないのは確かな気がするが、電子メールほどオープンな規格もない訳で、簡単には同じ決断はできない気がする。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-91685997264474447632023-07-19T06:14:00.002+09:002023-07-19T06:14:24.945+09:00ヘッドホンJVC STEREO HEADPHONES HA-RZ710のイヤークッションを交換する<p>
<a href="https://www.amazon.co.jp/dp/B00LXPAVQO?&linkCode=ll1&tag=tetera-22&linkId=9ef8cb1f8989d3f1d64ebee697b2a1f3&language=ja_JP&ref_=as_li_ss_tl">JVC HA-RZ710</a>というヘッドホンは
比較的安価で使いやすいものなのだが、それなりの期間使って来てイヤークッションがボロボロになってしまった。
</p>
<p>
大きさを測ってみると、<a href="https://www.amazon.co.jp/gp/product/B07DPQM4DJ?&linkCode=ll1&tag=tetera-22&linkId=59cfb98210cf57a30937946c61727f53&language=ja_JP&ref_=as_li_ss_tl">2個入り イヤーパッド イヤークッション 交換用耳パッド 105 MM 対応</a>が合いそうで、
実際に購入してみると、ちょうど良いサイズだった。
</p>
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=tetera-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B00LXPAVQO&linkId=811dfc1a6aa61a1da4d285ae5ee2a63f"></iframe>
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=tetera-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07DPQM4DJ&linkId=05e12a1d5120bfb3acabed40831c9836"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-78848612372089632242023-07-19T04:24:00.001+09:002023-07-19T04:24:02.256+09:00WindowsでPDFファイルのページ単位での加除をするソフトウェアを選ぶ<p>
PDFファイルを編集したいという場合には、何でもできるAdobe Acrobat DCを使えば良いと個人的には思うのだが、誰もが費用を負担できないし、
確かにAdobe Acrobatはおおげさ過ぎる用途というのもあると思う。
</p>
<p>
<a href="https://pdfsam.org/pdfsam-basic/">PDFSam Basic</a>は知っていて、便利であるとは思うのだが、Javaベースであることが
唯一Windowsユーザーにお勧めできない理由になっていた。
</p>
<p>
<a href="http://uchijyu.s601.xrea.com/wordpress/pdf_as/">pdf_as</a>が.NET Framework 4.6で動くものであり、Windows 10の環境では
導入しやすく便利だった。
<a href="http://itextsharp.sourceforge.net/">itextsharp.dll</a>を利用しているとのことだった。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-24461492189703728112023-07-19T04:15:00.000+09:002023-07-19T04:15:11.428+09:00WhatAppのcompanion機能<p>
WhatAppでは基本的には電話番号をベースにアカウントが作成されていると思うのだが、徐々に複数の端末で同時にログインできるようになって来た。
最初は、元となるスマートフォンがオンラインであれば、<a href="https://web.whatsapp.com">web.whatsapp.com</a>をデスクトップ版のウェブブラウザーで
開くとメッセージを参照・投稿できるようになった。
次には、そもそもSIMカードの入らないタブレット端末のWhatsAppアプリもweb.whatsapp.com同様に利用できるようになったり、
元となるスマートフォンがオンラインである必要がなくE2E暗号化して利用できるようになり、
現在は、1つの電話番号ベースのアカウントに対して、web.whatsapp.com、タブレット端末のWhatsAppアプリ、スマートフォン端末のWhatsAppアプリの中から
合計4端末が紐付けできるようになっている。
特に、複数台のスマートフォンで同時に共有して利用できるようになっている。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-46971556300138841362023-07-19T04:01:00.001+09:002023-07-19T04:01:33.135+09:00iPhoneのMessageアプリで、電話番号が+81から始まる表示になってしまい、連絡先アプリに登録されている電話番号と合致しなくなってしまった場合<p>
iPhoneを乗り換えた際に、Messageアプリでやりとりしているメッセージ(おそらくSMS)のやりとしている相手が+81で始まる電話番号になってしまい、
連絡先アプリに登録されている090-xxxx-xxxxのような電話番号と合致しなくなってしまい、困っているという話を聞いた。
遠方の方なので直接見る術はなかったのだが、とりあえず直せたので書いておく。
</p>
<p>
参考にしたのは、
<a href="https://www.softbank.jp/support/faq/view/11938">[iPhone]メッセージで携帯電話番号が「+81」からの表示になっています。何か設定が変わったのでしょうか?</a>という
ソフトバンクのFAQの記事である。
ここには、「iOSアップデート(ソフトウェア更新)する。」という対処方法が記載されている。
本当にこんな方法で解消するのかと疑っていたのだが、ソフトウェア更新が残っていたので実施してもらったところ、問題は解消されたとのことだった。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-1320685684591781642023-07-14T02:50:00.001+09:002023-07-14T02:50:30.840+09:00安価なメカニカルキーボードを購入した<p>
何年かFILCO Majestouchの青軸キーボードを使って来たのだが、これはどこかおかしく、DIPスイッチで設定を変更できない。
また、USB接続してから使えるようになるのに時間がかかるというのもあって不便だった。
Bluetooth接続機能もあるのだが、ついに一度も使ってみることはなかった。
今回それが故障してしまったので、安価なメカニカルキーボードを探していた。
</p>
<p>
<a href="https://www.amazon.co.jp/gp/product/B08JTCFQNY?&linkCode=ll1&tag=tetera-22&linkId=4d3d7e6cc5c507af1b5bd9e011a1d388&language=ja_JP&ref_=as_li_ss_tl">Merdia メカニカル式ゲーミングキーボード 全104キーボード US配列 USB有線キーボード LEDバックライト付き (青軸-ブラック) </a>を購入してみたら、
打鍵感は良かった。私には英語キーボード配列が望ましいので、そういう面でも問題ない。
1つ難点があるとすれば、キートップに表示された文字のフォントが見慣れない感じなので、若干違和感がある。
デフォルトでは相当派手にLEDが光るのだが、輝度を下げて行くと接続時以外は一切光らないようにできるので、おとなしい感じで利用できる。
</p>
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=tetera-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08JTCFQNY&linkId=dec76517aa1ca22f4270c18f996913e4"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-67974258923059177602023-07-14T02:36:00.001+09:002023-07-14T02:36:28.866+09:00郵便はがきに連名で宛先を印刷する<p>
郵便はがきに宛先を印刷したかったのだが、必要な条件として、連名が綺麗に印刷できるというのがあった。
姓の部分は重複せず、名の部分を揃えて印刷したい。
TeXとかでやれば良いのだろうが、そこまで手を掛けるほどの枚数でもない。
</p>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT883u3Bnbu4lKMDgC_o-R9kQ6AXtoKCY-i5B9s4Sc_cQIwgVxIwBF2CGjvF87nNcQsPTP13pv4PMJ1JkQgtSBHY2h0vlP9xclLuD0nvCEznEfK6IeZIeg1_R2VZd5vxilzYzH1BmmIot2opJg_wAjf_eVaxclX0XSpxB5aQi7K90oKgc7G5QiqGHfhXtB/s875/two-names-example.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" height="400" data-original-height="875" data-original-width="590" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT883u3Bnbu4lKMDgC_o-R9kQ6AXtoKCY-i5B9s4Sc_cQIwgVxIwBF2CGjvF87nNcQsPTP13pv4PMJ1JkQgtSBHY2h0vlP9xclLuD0nvCEznEfK6IeZIeg1_R2VZd5vxilzYzH1BmmIot2opJg_wAjf_eVaxclX0XSpxB5aQi7K90oKgc7G5QiqGHfhXtB/s400/two-names-example.png"/></a></div>
<p>
Windows環境でも良いと思って探すと、<a href="https://www.hagakisakka.jp/download/hag_free_dl.html">はがき作家16 Free</a>の、「はがき作家 あてな」が望みの印刷ができた。
無料版でははがきの宛名面に自分の住所を印刷できないようだが、今回は裏面に印刷するので不要だった。
</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-2564316942365847502.post-86651853756193321522023-06-10T15:47:00.000+09:002023-06-10T15:47:46.478+09:00Amazon.co.jpでuxcellの金属製支持金具(ダボ)を購入した<p>
とある棚で棚板を支えるのに使われている直径6mm、長さ19mmの金属製のサポートピンを探していたのだが、
全く見付からない。
Amazon.co.jpで探してみると、<a href="https://amzn.to/45WDGxh">uxcell シェルフブラケットペグ ニッケルメッキ ホルダー サポート ピン キャビネット 6x19 mm 20個入り</a>
というのが見付かった。だが、日本国外から発送されて来るらしい。
</p>
<p>
説明によると、日本国外からの発送には10日から14日かかるとのことだった。結果としては、2023年5月25日に注文して6月9日に届いた。
これは<a href="https://track.yw56.com.cn/en/index">Yanwen</a>と言う運送業者が取り扱っていることになっているのだが、
公式ウェブサイトのトラッキングは全く役に立たなかった。5月30日に運送業者に引き渡した時点で情報は更新されなくなってしまった。
</p>
<p>
到着してみると、中国本土からの発送かと思い込んでいたのだが、クルグスのビシュケクからの発送になっていた。
これまでクルグスからの発送の経験はなかったが、それでも15日で届くのだからおもしろい。
</p>
<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=tetera-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B07T1832Y1&linkId=dcb0826efc2edd9fc2fec2136ed43173"></iframe>Unknownnoreply@blogger.com0