Blog2Viewer

以前、Movable Typeで運用していたブログの内容を表示させるために作成したページです。
IPv6 申込
契約しているインターネット・プロバイダ、ASAHIネットから「IPv6ネットワーク先行受付」という葉書が届いた。なんかNTTのフレッツにv6オプションというIPv6接続のオプションがあるらしく、ASAHIネットが対応したらしい。

そんなん、ルータが対応しとるんかい、と思ったが調べると使用中の無線ルータAterm WG1200HSにもIPv6ブリッジとかの機能がある。まだ、よくわからないが、とりあえず申込む。
debian 7 wheezyから 9 stretch へ更新
サーバー機で使用しているdebianで、aptutude upgradeとかしても反応しなくなってきた。これは、debianのversionが古くなりすぎたのかと調べたら、メジャーバージョンが2つ上がっていた。使っているのはdebian 7 (wheezy)で、最新は debian 9(stretch)。

システムを残したままのバージョンアップも可能らしいがどうしよう。とりあえず予備機に最新のdebianをインストールし、そこに重要なデータをバックアップしてから考えようと作業を初めると、トラブルもなく、すんなりできたため、ついバージョンアップを始めてしまった。

一度に debian 7 -> debian 9は出来ないらしいので、まずは debian 8まで上げる。 ここまでは特にエラーも発生しなかったが、debian 9に上げるところでエラー頻発。インストール済のパッケージを手動で削除するなど、いろいろ試すが事態は悪化している感じ。ついにapacheのconfigtestも通らなくなり、原因もわからない。

この辺で諦めて、debian 9のクリーンインストールというか、クリーンインストール済の予備機への移行をすることにする。最初は apacheの"Require all granted"あたりにハマり、あとperlとMYSQLのversion upに伴う問題やDBD::Pgのutf8問題などにハマりつつ、大体移行できた。

debianをバージョンアップしても、不要なpackageなどが残り気持ちが悪いので、最初からクリーンインストールをすべきだったのかもと思う。

今回覚えた便利な機能。 df, duコマンドなどで -BG オプションをつけるとディスクの空き、使用量などがGbyte単位で表示される。
Sphinxを始めよう第2版のEbookを購入
ちょっとまとまった文書を作るのにSphinxを使おうかと思うが、使い方を忘れてしまったのでSphinxをはじめよう 第2版を購入した。

なんと、この本の販売はEbookと直販のみ。つまり書店には卸さない。なんか時代を感じる。

Ebookだと、すぐに読めるし、今回の使い方ではPCで読めるのも便利そうなのでEbookを購入。PDF版をダウンロードしAcrobat Readerで表示させると栞も使えて便利。

今回Sphinxまわりを整備していてautobuild というツールを知った。文書のソースの変更を検出し、自動でhtmlを更新し、表示するツールと説明されてるのだが、最初、よくわからなかった。動かしてみたら、それ自体がwebserverで、それにソース変更の検出、sphinx起動(htmlの更新)が追加されたものだった。なんか凄い。pythonだとwebserverもライブラリで、すぐに作れるから、こういうこともできるわけなのね。
AutoHotKeyでIME制御
Windowsを使っていて不満なのは、かな漢字変換のOn/Off切り替え。「半角/全角」キーを押せば良いのだが、このキーがブラインドタッチ(タッチ・タイピング?)しずらい。

以前は、日本語化EmacsでIME制御も出来ていたのでCtrl-Oに割り当てて満足していた。ところがIME制御ができるEmacsが手に入らなくなった。この場合Ctrl-OにはEmacs独自の入力メソッドの切り替え機能になり、WindowsのIMEとは別のものなので、とてもややこしいことになっていた。とても使いにくい。

昔は、Unix/Linu上のemacsでwnnやら使って、幸せにかな漢字変換できていたのに、何なのだろうと思う。

というわけで、このことは、かなり長い間、悩みのタネだったのだが、今回 思い切って AutoHotKeyでIMEのOn/Offを切り替え、この機能をCtrl-Oに割り当てることで、emacsだけでなく、Atomやブラウザでも日本語入力が楽になり幸せになった。Windows10ではIMEがどの状態に切り替えられたのかわかりやすくなったのも嬉しい。

参考にした記事は、今日もどっこい生きている: IMEのOn-OffをAutoHotkeyで行うで、2009年、8年も前の記事。

AutoHotKeyは、長いこと使っているが、何が出来て何ができないのか、まださっぱりわからない。
IPv6開通
なんかIPv6が開通したようで、プロバイダのasahi.netのIPv6接続確認ページで接続されていると出るし、nslookupで調べると v4のアドレスに加えてv6のアドレスが表示されるものも出てきた。

それなら、自分のところのサーバーも外部からIPv6で接続できるようにしたい。asahi.netでは固定IPアドレスサービスに入っているけど、v6のアドレスも固定されているのだろうか。調べると使えないらしい。

(IPv6接続機能で固定IPアドレスは利用できますか?(IPv6及びIPv6接続機能)|会員サポート|プロバイダ ASAHIネット)

近い将来 v6でも固定アドレスがサポートされることを期待しよう。
F-PLUG復旧
Debian更新後、bluetooth接続電力計 F-PLUGからデータを取得できない。しばらくはデータを取れていた気がするが、取れなくなった。

未インストールのライブラリを疑うが、みつからない。調べるうち、F-PLUGをWindows10で動かすにはファームウェアの更新が必要という情報を発見。windows10で使用しているわけではないが、Debianアップデート後使えなくなったので、これが怪しい。ファームウェアをアップデート。

アップデートにはWindows8以前のマシンが必要とある。前に使っていたThinkPadを引っ張り出すが電源が入らない。1年半使っていなかったので仕方ない。ネットにはCMOSバックアップ電池を一度外してやると復旧する、という情報が多数。ブラウザで手順を見ながら、バッテリー、9つの小さいネジ、キーボードとパームトップを外す。電池のコネクタを抜き30秒放置。キーボード、パームトップ、ネジ、バッテリーを元に戻して、電源スイッチを入れる。無事起動。

[gallery link="file" ids="11602,11604,11603"]

起動したのは Windows 7だった。バッテリーがだめになっているそうで充電が全く行なわれない。バッテリーは3,000円ぐらいで買えるらしい。どうするか、ちょっと悩む。買えば数年使えそう。でも、どうせ使わない...

Windows7で、F-PLUGのファームウェアを更新。Windows上のソフトとの接続を確認。しかし、Linuxとは、接続できない。

その後、Debian側のbluetooth関係のコマンドが変わったことや、ペアリングをやっていないことに気がき、いろいろ試しているうち接続できた。何が原因だったのか結局わからない。

bluetooth接続の電力計は便利。もっと欲しい。RATOCのREX-BTWATTCH1しか見つからない。Linuxに接続できないかと、改めて調べたら、Armadilloに接続している例を発見。これはいけるかもしれない。試してみたい。

Amazonで4,976円。買うか?
ESP8266WebServer用ファイルシステム・表示ハンドラ
ESP8266 Arduinoでは特にWebServerのライブラリが気に入っている。

これを使うとESP8266を使った機器をブラウザから、とても簡単に操作・参照できる。サンプルプログラムも、よくできていて、独自機能の追加も簡単だ。

ESP8266WebServer葉にSDメモリーや内蔵ROM内のファイルシステム(SPIFFS)をWeb経由で参照、アップロードなどできるハンドラを使って使用してきたのだが、次に作るプログラムで、また使いたくなったので、ライブラリ化を行いGitHubで公開した。

h-nari/FsHandler: arduino library to access spiffs/sd via webServer

ブラウザでアクセスするとこんな感じ。



最終的な製品で、ファイルシステムを全て公開して良いのか、ということは置いて置くとして、開発段階では大変便利。ファイルの中身が簡単に見れるし、アップロードも簡単。

まだ、いろいろ問題はあるかもしれないが、とりあえず公開。
けもの足
この数日、とても寒い。仕事をしていても足元が冷えるので、けもの足、ではなく極暖 足が出せるロングカバーを購入した。1,737円。

最初、ズボンタイプの足温器を探したのだが、1万円前後と結構高いし、レビューを見てると問題もありそうなので、他を探したところ、このロングカバーを見つけた。値段も安いし、レビューでも良さそうな感じなので買ってみた。

今日、届いたので、装着してみたところ、良い感じ。寒くない。歩ける。恥ずかしがらなければの話だが。

見た目がケモノというか、動物のヌイグルミっぽい。けものフレンズ・タイアップ商品とか出せば売れるのではなかろうか。





esp8266-arduinoでSD::remove()が固まる件
fsHandlerを作成している際、表記の問題に遭遇した。
原因は、SD.hの108-109行

[cpp]
// Delete the file.
boolean remove(char *filepath);
boolean remove(const String &filepath) {
return remove(filepath.c_str()); }

[/cpp]

remove(filepath.c_str())でremov(char *filepath)が呼び出されそうだが、
filepath.c_str()の型は (const char *)つまり書換不可文字列。これを (char *)書換可文字列として関数に渡すわけにはいかない。

不幸なことに String型にはconst char *型引数1つだけのコンストラクタがある。このコンストラクタにより、const char *型の文字列はString型に変換され、remove(const String &filepath)、つまり自分自身を呼び出し続けることになるのであった。

SD::exists,mkdir,rmdirも全く同じなので、固まるはず。

ちなみに、version 2.4.0-rc1では修正されている。

[cpp]
boolean remove(const char *filepath);
boolean remove(const String &filepath) {
return remove(filepath.c_str()); }
[/cpp]

回避策は簡単、(char *)にキャストすれば良い。

[cpp]
SD.remove((char *)path.c_str());
[/cpp]

気持ち悪いのは我慢.

秋月電子で0.96インチOLED発売
秋月電子で0.96インチOLEDが発売されたことをtwitterで知る。I2C接続タイプで値段は580円。

aitendoやAliExpressで入手可能だが、aitendoは在庫数量が不安。AliExpressだと到着まで3週間ぐらい待つことになる。秋月で買えれば、いつでも使える感じがする。

この0.96インチOLEDは、コントローラがSSD1306で使いやすい。接続はI2Cで簡単だし、ライブラリも沢山公開されている。画素数が128x64dot,表示が鮮明で、凄い表現力。使う側のセンスが問われる。 

ちなみに私が使っているものは、速度にこだわってSPI接続タイプ。AliExpressで購入した。
動画表示をやりたかったのでI2C接続に不安を感じたのだ。 



改めて転送速度について調べてみる。SSD1306のデータシートによると SPIのクロック上限は10MHz, I2Cは400kHz。単純化のため、データ転送速度をそれぞれ10Mbps, 400Kbpsとすると 1画面(128x64dot, 8Kbit)のデータ転送にかかる時間はSPIで 0.8mS, I2Cで20mSとなる。 I2Cでも十分高速な気もするが、転送だけでこれだけ時間を食われると高速な表示は難しいかもしれない。実際はどうなのだろう。試してみるしか無いか.. このRSS表示プログラムみたいな感じの表示ができれば満足なのだが。

秋月電子にSPI接続タイプのOLEDの取扱をお願いする、という手もある。

ちなみに、OLEDというと寿命が気になるかもしれない。上記のRSS表示プログラムを数ヶ月、表示させたままにしているが、いまのところ、暗くなるとか、そんな感じは全く無い。