Archive for the ‘日記’ Category

ちょっと思い付いて、(普段使わないから全然減ってないが、いざという時のため)モバイルバッテリーを充電しようと思ったら、なぜかケーブルが挿さらなかった。見ると、バッテリーの受け口はmicro B、使おうとしていたのはCだ。サイズは似ているが違う。大量のケーブルを放り込んでいる箱を探したが、普通の(A-B)以外はA-mini Bしかなかった。

更に探したら、缶コーヒーか何かの景品だったと思われる、しょぼいケーブル(長さが15cmくらいしかない)があった。一抹の不安はあったが、他にないのでそれで充電した。日本の飲料メーカーなら、景品だって簡単に発火するようなものは出さないだろうと期待した(でも、今は全然甘いかもね)。

それにしても、確かに整理はしたが、少しは残したはずだ。きっと、知らないうちに捨ててしまったのだろうと思い、仕方ないから買おうかと通販サイトを探したら、300円くらいのがあった。ケーブルの他にB→micro Bの変換コネクタもあったので、それなら邪魔にならないし、安い(150円くらい)からポイント利用で0円で買えると思って決めたのだが、やっぱり物を増やしたくないので、もう一度探してみた。

すると、あった! 古いスマフォをまとめた箱に入っていた。ケーブルをぐちゃぐちゃに入れている箱に一緒にすると壊れたり捨てたりするとか、使う時や手放す時に素早くまとまるので好都合だと思ってそうしたのだろう。すっかり忘れていたw 何をどこにしまったかのメモをEvernoteなどに書いておくといいだろうが、毎回書くのはどうも面倒だ。

まったく、野放図にコネクタ(下記参照)を作り出して来た連中(USB-IF)に、「どうしてこんなに多いんだ?!」と小一時間問い詰めたい。

参考: USBコネクタの種類

  • Type-A, B
  • mini Type-A, B
  • micro Type-A, B
  • USB 3.0のType-B, micro B
  • Type-C

余談: 今のところ合計9種類だ。一見、莫大ではないように思えるが、異なる種類間を繋げる要求があり、しかも、それぞれの端にはF(プラグ)/M(ジャック)の種類もあるので、そういう変換コネクタ・ケーブルの種類は膨大になる。どういう計算をすればバリエーションの数が出るのかは、僕には分からない。(9!)2だと恐ろしい数になるが、そこまでは行かないだろう、きっと。でも(9!)×2だって72万だ・・・ まあ、部品業界への需要を生み出すという点では役立っているのか?

結局、賢そうな顔(見たことないがw)しているけど、全く先見の明がないバカだったと思う。コネクタだけじゃなく、仕様だってすごく増えたじゃないか。今は、外見はCでも中が違うから調べないとちゃんと使えないとかいうこともあるらしい。これでは、我田引水的な規格をドヤ顔ででっち上げては捨てる林檎社やMS(ソフト面)と似たようなものだ。だいたい、最初のコネクタ(A, B)からして、どうして、いつも逆に挿そうとして失敗してしまう(しかも、直して反対にしても挿さらず、やっぱり最初が正しいことすら多い)形をしているのかと思う。

実は僕は、昔USB関係の仕事もしたのだが、その時はこんなことは全然思いもしなかった。「USBはいい・すごい! 是非広めよう」とかいうナイーブな気持ちだけ(= 技術馬鹿)だったしw、そもそも、仕様で逆に挿さらないことを知っていたから注意していたし、開発の時はコネクタが見やすいところに機器を置くせいか、挿し間違いすることはまずなかった。が、やっぱりただ作るだけでは分からないことが多いものだ。

PS. そういう点では、例えば、Ethernet(*base-TX)のモジュラーコネクタ(RJ-45)はすごく優秀だ。確かに、初期のEthernetのコネクタは2-3種類だったが、10base-Tが出てからは何十年も同じものが使い続けられている。「ギガビットだからコネクタが違う」ってことはない(と書こうとしたら、実は違うコネクタもあるし、高速なものはケーブルの本数や品質が違うことはあるが、一般人が使うものは大体同じだ)。固定電話のコネクタも同様だ。そろそろ固定電話自体がなくなってしまうがw そもそも、例えケーブルが違ったって、挿し間違えることがまずないだけでもありがたい(しかも、C以外のUSBと違ってケーブルの向き(A/B)もないから、合計で4倍?ありがたい)。

あの系統(RJコネクタ)はちゃんと考えられたのだろうか? コンシューマ系と違って通信系の人は(頭が)堅い(無駄かも知れないのに何十年も先のことまで考える)から、いろいろ考えたのが(今回は)良かったかも知れないな。ちょっとかっこ悪いけど、USBだってあれにすれば良かったのに・・・

そして、「USBが出たばかりの頃は、分からないことが多かったからああなった」とは言えない。そのずっと前からRJコネクタはあったのだから。そういう経験を軽んじた業界が馬鹿だったのだ。

まあ、将来は無線になって、こういうつまらないイライラはなくなってほしい(実は、USBは昔無線の仕様を出したが、なぜか失敗している。次は別の団体が別の規格でやればいいだろう。同じことの繰り返しかも知れないがw)。

PS2. USB-IFはカスだが、それよりも更にカスなのは、某国の国営だった電話会社だ。USではとっくにRJコネクタを電話機に使っていた(らしい)頃でも、延々とバラ線でネジ止めしていて、それをやるには資格が要るから、「お前らは勝手にやるな!」、「勝手な電話機も許さん!!」とのたまわっていたのだから。外圧に負けてようやくモジュラージャックを認めた頃が懐かしい。

それ以外にも、さまざまな役に立つのかどうか不明な独自規格を制定していたようで(これが「ガラパゴス化」の発端の一つかも)、ある時、現場の経験が少ない人が、特殊な工具がないと電話線を端子に接続(挿入)することらできないのを知らずに現場に行ったら大変慌てたが、偶然、古参の人が持っていて助かったという話があるかも知れないし、ないかも知れないw

PS3. とはいえ、「つまらないことでこんな長い文章を書く気力があるなら、その時間で『どこに何があるかリスト』でも書けっ」てのはごもっともですw

そして、つい、スマフォやバーコードとかで自動化したくなってしまうという技術馬鹿精神が出て来ると(爆)

  •   0
  •   0

僕にしては珍しく、一週間くらい書かずにいた。ある方が入院されているので、(自分の禁を犯してw)twitterでやり取りしている。その流れで細かい投稿をそっちにしていたら、こっちに書かなくても満足できていたようだ。何もしていなかった訳ではなく、以下のようなことをやっていたので、詳しくは追って書きたい。

  • 画像管理アプリのdigiKam5からXnViewMPへの移行
    • digiKamに移った時と同様、コメントとカテゴリ(メタデータ)を引き継ぐ(普通に表示できるようにする)のがかなりの手間と苦労だった。
    • ちょっとした(でも面倒な)残件と謎があるものの、概ね終わった。
    • XnViewMPは軽くていい。が、将来もまた何かに移りそうだw
    • それでも、データ仕様(EXIF)がオープンなので、(Linuxなら)ツールを使ったりスクリプトを作ったりすれば、いくらでも移行できるのがいい。
    • ついでに、過去にし忘れていた画像のカテゴリ分け(タグ付け)もした。そのために更新ファイルが増えて、オンラインバックアップのデータ量が半端ないw
    • ただ、オンラインバックアップの履歴保存のおかげで、XnViewMPで気づかずに上書きしてしまって失われたコメントを復活できたのは良かった。ちゃんと過去の版がリストアできることが分かった。
      • 履歴は頻繁に使うものではないが、いざという時には便利だ。今は3か月までにしているが、1年くらい残すといいかも知れない(お金次第ではある)。
      • ただ、復活させたコメントはどれも大したものではなく、「そこまで頑張る意味あった?」というオチではあったw
  • スマフォの地図アプリのデータ量と電池消費率の最適探し
    • 概ね結論が出た。「いつもNAVI」がいい感じだ。ただ、電池消費率はもう少し詰めたい。
  • 生活費の削減方法の検討
    • とりあえず、10-12万円/年(約1万円/月)の削減が目標。手段は分かり、意外に簡単そうだが、実行は難しそう。
    • 更に、年間数十万円減らす策もあるのだが、結構な手間が掛かる。
  • 大掃除 (まだ残りありw)
    • TODOの作成日を見たら、随分長ーーく掃除してなかったのだが、本当なのか? 確かに、あの埃の量はそうだったかも・・・
  • (昔の写真を整理していて思い出した)白黒画像のカラー化手法がすごい。
    • 以前にも書いたが、画像によってはすごく自然にできる。
    • どうやっているのか興味はあるが、(論文を読んで)調べる気は起こらないw
  • 地図アプリの評価にヨドバシへ散歩して
    • 有機ELテレビが紙のように薄くて感動した。「買いますか?」→「まさか!」だけどねw
      • 技術バカの極地と言えよう。気持ちは分かるけど、ほとんど意味がない。
    • (naokiさんに教えて頂いた、)無制限Wi-Fi(ポケットルータ)は大体約5千円/月で手頃だが、3日で10GBの制限が惜しい。あと、電話が使えなさそうなのも惜しい。光回線をなくせるのはもう少し先だ。
    • (モバイルデータ量をケチるために試した、)ヨドバシの無料Wi-Fiが使えなかった。いくらやっても、認証だの証明書だのの文句を言われてwebが見られなかった。プロキシのせい? 全く惜しい。

並べてみると大したことではなく、先進性も生産性のかけらもないが、いろいろおもしろくやって、いい暇つぶしではあった。この調子で50年くらい一気に過ぎると、いいかも知れないw

  •   0
  •   0

僕のモバイル回線は500MB/月というケチケチ契約なので、可能な限り通信データ量を減らす必要がある。それで、昨年末から試行錯誤してある程度の目処が立ったので、書く。

基本的には、不要なモバイルデータ通信(以下、モバイル)をせず、必要な通信でもデータ量を減らせばいいので、アプリやOS(Android)でそのように設定すればいい。

ここで問題というか疑問なのは、僕のスマフォ(AQUOS sense lite)は長い(数時間)スリープ時にWi-Fiがoffになり、その時に通信が発生するとモバイルが使われてしまうのだ(その後、Wi-Fiに切り替わるのかも知れない)。AndroidはWi-Fiは「スリープにしない」にしているのだが、なぜかoffになってしまう。検索すると、Wi-Fiにもう一個設定(Wi-Fiの自動有効化)があるはずなのだが、なぜか僕のにはない。OSのバージョンが微妙に違うのだろうか。そして、Wi-Fiを自動でoffにするのはAndroidのディープスリープ(Doze)機能なのか、AQUOS固有の省電力機能なのかと思っている※。それでも、可能な限りモバイルを使わないようにしてみた。

※更に調べたら、Androidの既知の(ずっと無視され続けている)問題のようだ。(→ 参考1, 参考2) Android 8 Oreoでは設定の体系が変わってスリープ時のWi-Fi動作の設定がなくなった(→ 参考)ために問題が隠れてしまったが、僕のにはまだ設定があるので効かないことが発覚しているのか。一旦設定を解除して再設定すれば直るという情報もあったので、それを試してみたが駄目だった。。。 → Wi-Fiをonにし続けるアプリ(例: Best WiFi Keeper)を使うといいようだが、電池消費が増えるのは望ましくない(結構矛盾した要求だw)が、どうだろうか?

(1/12 7:51) Best WiFi Keeperなど、Wi-Fiをonにし続けるアプリをいくつか試したが、どれも効果はなかった(30分から1時間でWi-Fiがoffになる)。また、Automagicで同様の機能を作ってみたが、完全にonにし続けることはできなかった(タイマー(exact timer)が指定時間間隔で起床しないようで、処理自体ができない。「電池の最適化」をoffにすればいいのかも知れないが(→ 参考)、更に電池消費が増えそうだ)。AndroidはどうしてもDozeしたいようだ。それに、Wi-Fiをonにし続けていると若干電池消費が増えて(約1.5倍になる)好ましくないので我慢することにし、モバイルを使うアプリを更に減らすことにした。

ただ、いろいろ変える前にデータ通信量を調べるアプリを入れて、どのアプリが(いつ)どのくらいモバイルを使っているかを調べ、多いものから対処する必要がある。また、変更後に効果を見る必要もある。僕は通信量チェッカーとデータモニターを併用している。基本的には前者で充分だが、たまに変なことがあるので、その時には後者でも確認する。

通信量チェッカーで見ると、予想外のアプリが通信している(→ モバイルを使っている)ことが分かった。それぞれの量は少ないのだが、そういうのをカットしていれば残量が貯まって繰り越されて、どうしても必要な時に使える(チリも積もれば山となる(キロを笑うものはメガに泣く?))ので、小まめに切るのは重要だ。それから、知らずに素行の悪いアプリを入れていて、こちらの情報を流出させる場合もあるから、そういう点でも小まめに確認して切るのは良さそうだ(この用途には、後述の通信ブロックアプリの方がいい)。そうして余計な通信を減らすと電池消費量も減る可能性があるから、なお良い。

以下に、モバイル通信データ量を減らせる可能性があることを列挙する。

  • アプリの設定
    • 「自動同期」を止める、「Wi-Fiのみ使用」にするなど。 (例: Evernote)
    • 「データ節約モード」にする。(例: Spotify)
  • Androidの設定のアプリのモバイルデータなどの設定
    • 「バックグラウンドデータ」をoffにする。
    • 「バックグラウンドアクティビティ」をoffにする。: バックグラウンドでのアプリ実行が不要な場合に設定すると、更に通信をしなくなりそう。
  • データ量の少ないアプリを選ぶ。 (例: 地図アプリ)
  • データ圧縮するアプリを選ぶ。 (例: ブラウザ)
  • 通信ブロックアプリで通信を制限する。 (例: NetGuard)

一番有用なのは、不要ならアプリの「バックグラウンドデータ」をoffにすることだ。丹念に各アプリをoffにすると、大分減る。Androidを「データセーバー」に設定するのでも良さそうだ。この場合は、モバイルが必要なアプリにデータセーバー時にもモバイルを使う設定をする必要がある。

アプリごとの話を書くと、Spotifyのデータ節約モードは効く。

地図アプリのいつでもNAVIは、大抵は少ない(1回数百KB程度)のだが、たまに多い(5MBくらい)場合があって謎だ。それでも、Googleマップよりはずっと少ない(ただし、使い勝手は少し劣る)。

Evernoteもたまに数MBの通信を行う。それで自動同期を止めると、他のデバイスとの同期がうまく行かない場合があるので、そうはせずに「バックグラウンドデータ」をoffにした(これでも駄目かも知れない)。

Operaブラウザの圧縮機能は悪くはないがすごく効く訳ではないので、僕は使っていない。圧縮時は通信が一旦Opera社を通るのも、ちょっと気に入らない。

NetGuardは最後の砦にいい。アプリごとにモバイルだけでなくWi-Fiも切断できるので、意図しない通信をカットできる。それで、元々通信しないアプリでは広告がほとんど出なくなって(広告は外部から取ってくることが多いが、それが取れないため)、うれしい(→ : 最下部は広告の領域)。ただ、何となく、スリープからの復帰が遅いことがある気がするのと、VPN機能を使っているので、通信時に電池を食う可能性を心配している(未確認)。なお、同様の機能はGoogleのDatallyにもあるが、Datallyはモバイルしか設定できない。

そのような設定をして、今は、余り外で使わなければ一日3MB以下に収まるようになった。

  •   0
  •   0

全くつまらない話です。が、僕には理解不能なので、もし分かる方が居れば教えて頂きたいです。

前の会社でどうやって住所を調べたか、毎年賀状を送って来る人(若い。30代)が居た。送って来るのは彼だけだった。手書きで「昨年はお世話になりました」とか書いてあったので、こちらも(毎年、本意ではなく他のついでに)送っていたが、退職したらなしのつぶてだ。本当にお世話になったと思っていたなら、辞めた時に何か言って来ても良さそうなものだが、そうではなかったようだ。単に、慣習とかで送っていたのか。そうだったら、馬鹿そのものとしかいいようがない。そんなんだったら、最初から送って来るな!

仮に、本心からお世話になったと思っていたら、勝手に送付する紙なんかじゃなくて、こっちに迷惑を掛けないように、日々少しずつ努力するとかで返して欲しいね。だから、そんな賀状は無駄の極みだと僕は思う。良く言われる、人間関係を円滑にするとかいう意味なんてない。紙切れ一枚で円滑になる関係なんてあるのか?w

まあ、本人の考えは分からないから、どういう論理なのか小一時間聞いてみたい気はするw

でもまあ、結局深い考えなどなくて、「そうは言っても、(田舎なんだから、)『会社の人』には賀状を出すのが当たり前なんだよ」ってのが本当のところなんだろう。でも、今って、1980年代じゃなくて2010年代なんだけど、そこは分かってる?w

PS. そもそも、僕の住所をどうやって調べたのかと思う。まあ、会社の社員情報DBが開放だったんだろうが、さすが田舎だねw だから、やっぱり田舎の会社は嫌だな・・・

 

全然話題が違うが、論理不明なことがもう一個ある。良く見るニュースサイトの「女子」の欄は大抵、

のような感じで、いかにも「どうしたら男にモテるか・男ウケが良くなるか」※とかしか目当てでない(= 男に媚びている)ように感じるのだが、それはこのpolitically correctな世の中でも許されるのだろうか? なぜ炎上しないのか不思議だ。読み手が若いから特に問題視されないとは思えない。というのは、これは誰だって目にするから、ターゲット以外の人が目にして問題視する可能性は高いからだ。女性向けに女性が書いている(ように見せている)から問題ないのだろうか(→ 少しでもオヤジ臭がしたら炎上するのか?)。単に僕が古くて、そういう風に読んでしまうだけなのか。

※横道に逸れるが、今は昔ながらの男-女じゃない関係(LGBT)も大いに認める風潮なのに、ここではそんなことが一切なくて、昔ながらなのはどうなのよ・欺瞞はないか?とも思うが、僕は良く分からないので、ここでは触れないでおく。

まあ、これも本人たちに聞かないと分からないが、理解不能なことである(でも、記事はおもしろく読んではいるよw)。

  •   0
  •   0

先日書いたように、XnViewMPでは日本語入力ができず、OSやlibsslのバージョンによってはウインドウ内のGoogle mapsの地図表示もできない場合があるので、それぞれできるようにしたので書く。なお、XnViewMPのバージョンは0.92を、OSはLinux Mint 18.3 (x86 64bit)を想定する(Ubuntu 16.04 LTSでも同様と思われる)。

日本語入力

現象: コメントなどの入力フィールドで日本語(全/半)キーを押しても、Mozcなどの日本語変換モジュールが起動しない。

原因: XnViewMP添付のライブラリ(/opt/XnView/lib)にQt5の日本語入力関連のプラグイン(例えば/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts下にあるもの)が不足しているため。

対処: XnViewMPが不足するライブラリを参照できるようにする。

詳細

  • 基本的には、環境変数QT_PLUGIN_PATHにQt5の日本語入力関連のプラグインのディレクトリを追加すればいい。
  • しかし、/usr/bin/xnview(シェルスクリプト)の中でQT_PLUGIN_PATHに/opt/XnView/libを指定(上書き)しているので、単に設定するだけでは有効にならない。
  • そのため、QT_PLUGIN_PATHにOS本来のディレクトリとXnViewMPのディレクトリを設定するようなスクリプトを作るか、xnviewを修正すれば良い。
  • XnViewMPを起動するスクリプト例:

#!/bin/sh

export LD_LIBRARY_PATH=/opt/XnView/lib

export QT_PLUGIN_PATH="/usr/lib/x86_64-linux-gnu/qt5/plugins:\
/opt/XnView/lib"

/opt/XnView/XnView $*

  • 未確認だが、使われていないスクリプト/opt/XnView/xnview.shは設定済みのQT_PLUGIN_PATHを参照するので、それを使えばいいかも知れない(XnViewMPのディレクトリが前に来るので、駄目かも知れない)。

地図表示

現象: 位置(GPS)情報付き画像を選択し、GPSのペーンを開いても、空白のまま地図が出ない(出ることもある)。

原因: XnViewMP添付のライブラリ(/opt/XnView/lib)のQt5は古いSSLライブラリ(libssl1.0.0)を参照しているようで(→ 参照)、新しいOSやPHP 7.3をインストールしたシステムなどでは、libssl1.1がインストールされているためにlibssl1.0.0を参照できないことが多いために、地図表示が不安定になる。なお、システムにはlibssl1.0.0もインストールされているのだが、参照できない(できることもある)理由は分からない。

対処: XnViewMPがlibssl1.0.0を参照できるようにする。

詳細

  • 基本的には、環境変数LD_LIBRARY_PATHに、libssl1.0.0のライブラリのあるディレクトリを追加すればいい。libssl1.0.0のライブラリは以下である。
    • /lib/x86_64-linux-gnu/libssl.so.1.0.0
    • /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
    • /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/*
  • libssl1.0.0だけのディレクトリになっている訳ではないため、親ディレクトリ(/lib/x86_64-linux-gnuなど)をそのまま指定するのでは指定する意味がなさそうだし、XnViewMP添付のライブラリと競合するかも知れないと考え、XnViewMPの追加ライブラリ用ディレクトリを作って、その下に参照させたいライブラリへのsym-linkを作り、そのディレクトリをLD_LIBRARY_PATHに設定した。また、上述の日本語入力用に追加するQt5のプラグインも同様にsym-linkした。
  • その他は日本語入力と同様である。
  • XnViewMP用追加ライブラリディレクトリディレクトリの準備(場所は$HOME/.local/lib/XnViewとした):

cd
mkdir -p .local/lib/XnView
cd .local/lib/XnView
ln -s /lib/x86_64-linux-gnu/lib{ssl,crypto}.so.1.0.0 .
ln -s /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/* .
mkdir qt5-plugins
cd qt5-plugins
ln -s /usr/lib/x86_64-linux-gnu/qt5/\
plugins/platforminputcontexts .
cd

  • XnViewMPを起動するスクリプト例(日本語入力対応も含む):

#!/bin/sh

export LD_LIBRARY_PATH="$HOME/.local/lib/XnView:\
/opt/XnView/lib"

export QT_PLUGIN_PATH="$LD_LIBRARY_PATH"

/opt/XnView/XnView $*

※32ビット版ではライブラリのディレクトリ名が異なる(上のx86_64i386)ので、適宜読み替えること。

動作例

(1/8 9:25 わずかに修正)

 

PS. 本題とは関係ないが、XnViewMPはかなり柔軟にレイアウトをカスタマイズできるのだが、結構惜しいところがある。例えば、ファイル・画像情報のペーンの名前と値のカラム幅が変更できないので、見やすくするには幅を広くする必要がある(そうしないと、左右のスクロールが頻発する)。試行錯誤して、情報ペーンなどをまとめて下部に置いた。本当は左右どちらかの端に置きたいが、使いにくくなってしまうので仕方ない。

筆者のXnViewMPのレイアウト

とはいえ、どうも使い勝手が悪いので、やっぱり情報ペーンなどを左右に置いてみた。結局、ありきたりなレイアウトに落ち着いた感じだ。これはdigiKamにも似ている気がするから、要は馴染みのUIを変えたくないのだろう。 (1/8 9:27)

筆者のXnViewMPのレイアウト (出戻り?版)

PS2. これはもう全くの余談だが、上の2つのキャプチャ画像、幅は同じなのに大きさが全然違って見える。錯覚なんだろうか。全く不思議だ。 (1/8 20:36)

  •   0
  •   1

PCを使っていて、気付いたら空きが半分くらい(= 約16GB使用)になっており、ブラウザをFirefoxに換えたにも関わらず、想像以上に空きメモリが減るので調べたら、Spotifyやブラウザ(Vivaldi)の他にもメモリを大量に使っているアプリがあった。昨夜に分かったのは、NixNote2とdigiKam5である。まとめるため、以前から分かっていたものも合わせて、以下に示す。

  • ChromeとVivaldi: メモリをふんだんに使う作り。
  • Spotify: メモリリーク: 長時間動かすと数GBに増え続け、全く減らない。
  • NixNote2: メモリリーク: データベースのバックアップをすると1GB以上に増えて、減らない。
  • digiKam5: メモリリーク: タグでの検索(例: タグのタブを開いて、あるタグを選択する)をすると数GB程度に増えて、減らない。

対処の方針としては、別のアプリを使うか回避策を見つけるかである。

ブラウザについては、Firefoxに移ることで緩和・軽減した。Spotifyは使用量が一定以上になったら自動で再起動するようにした。

新しく見付かったNixNote2については、データベースのバックアップは頻繁には行わない(定期的なバックアップ時のみ)ので、バックアップ後に再起動するか、(NixNote2ではバックアップせず)Windows版のEvernoteでバックアップ(エクスポート)することを考えている。

同じくdigiKam5(以下、digiKam)については、(自動で再起動するために)外部からプロセスを停めると画像やDBが壊れる可能性があるので、別のアプリとして、以前検討して止めたXnViewMPを再度試した。あれから改良されたのか、今回は結構いい感じだったのだが、いくつか問題があったので以下に示す。

XnViewMPの問題(不満な点)

  1. [済] コメントなどに日本語が入力できない。
    • Qtのライブラリの問題だったので、AppImage版digiKamと同様に追加して入力できるようにした。
    • これは、今まで採用を見送っていた最大の理由である。
  2. [TODO] 画像の日付でのフィルタリングができない(日付などでの検索は可能)。
    • 元々、画像の格納ディレクトリを年月日で分けているので、この機能はほとんど使っていなかったので、大きな問題ではない。
    • 追って、改良できるか検討したい。
  3. [概ね済] 画像内に設定されたカテゴリの反映が自動でない。
    • 新規追加したファイルのカテゴリは、それらのファイルをXnViewMPで読み込まないと反映されない。そのため、ファイルの格納場所が分からないと、カテゴリで検索できない。
    • アプリの作りの問題なので、どうするか検討中。 → 以下のようにして対応した。 (1/7 9:17)
      • 問題となっている、「格納場所が分からない新規追加したファイル」は、自作の取り込みプログラムでカメラなどから取り込んで日付のディレクトリに振り分けたものなので、取り込んだファイル一覧を作成し、それをXnViewMPに指定して起動することで反映されるようにした。なお、既存のファイルを外部プログラムでカテゴリを変更した場合の更新は、この方法ではできない。
      • 以下のような処理のスクリプトを作成し、XnViewMPのツールバーのコマンドに登録して、そのボタンを押せば自動で取り込んだ画像を反映できるようにした。その時使っているものとは別のXnViewMPのプロセスで画像DBを更新しても、ちゃんと反映された。
        1. (画像取り込みプログラム: 取り込んだファイル一覧を作成する。 → img-list.txt)
        2. XnViewMPに一覧を指定して起動する。: xnview -filelist img-list.txt
        3. 少し待ち(0.5秒程度)、XnViewMPを最小化する。
        4. XnViewMPのDBへの反映が終わるまで待ち(余裕をみて3秒程度)、XnViewMPを終了させる。
        5. ファイル一覧を削除する。
  4. [TODO] ファイル・ディレクトリ名での除外ができない。
    • 余計なファイルやディレクトリが表示されて使い勝手が悪いので、どうするか検討中。
    • なお、ファイル名の拡張子では除外可能。
  5. [TODO] コメントの格納フィールド(タグ)がdigiKamと違う。
    • digiKamで書いたコメントはXnViewMPの"Edit comment"では出ず、"Edit IPTC/XMP"の"Caption"に出る。
    • ただし、サムネイル一覧のラベル("Comment")には出せる。
    • 場所は違うが見られるので大きな問題ではないが、追ってどうするか検討する。
  6. [済] 画像内に格納された位置情報(GPS情報)で地図が表示されない(地図ペーンが空白になる)。
    • ライブラリのバージョンの問題だったので、対応した。
      • 新しいライブラリ(libssl1.1)では廃止されたと思われる、SSL2やSSL3を使っているようだ。(このままだと、将来はGoogle mapsに接続できなくなりそうだ)
      • なお、libssl1.1はPHPの7.3への更新時にインストールした。
    • なお、外部サイト(GeoHack)での表示機能は問題なく動作する。
  7. [済] 画像回転の処理・結果がdigiKamと違う?
    • (EXIF情報だけで回転させるモードの場合、)画像を(論理的に)回転させても埋め込みサムネイルは回転しないために誤解していた。 → 埋め込みサムネイルを使わない設定にして回避した。 (1/8 9:10追記) それでも駄目な場合があるので、EXIF情報だけで回転させるのは止めた。
  8. [保留] 類似画像検索や顔認識機能がない。
    • これらの機能は使っていなかったので、大きな問題ではない。
    • なお、若干機能が違うものの、類似画像検索はあった。

探すと結構多かったのだが、重要なものについては対処できた。そして、確かに問題は多いものの、XnViewMPには以下のようなメリットがあり、それがdigiKamでは実現できずずっと不満だったので、対処に手間を掛けても移行する価値は大きいと感じた。

  • 起動が高速で操作も軽い。
  • メモリ使用量がとても小さく(起動直後は300MB以下)、使用量の増加速度が小さい。
    • なお、増える場合も減る場合もあり、増減の条件はまだ分かっていない。
    • (1/8 9:10) サムネイルをキャッシュすると、表示した画像(サムネイル)数に応じてメモリ使用量が増え続けて減ることがないようだ。そのため、キャッシュを行わないようにした。
  • 良く使うディレクトリをFavorites(お気に入り)に登録できるのが、とても便利。
  • ESCキーで画像表示が閉じるなど、使い勝手がいい。
  • ウインドウのレイアウトを柔軟にカスタマイズできる。
  • マウスホイール加速への追従性はdigiKamより良い。

なお、日本語入力とGPSの地図表示の対応方法については別途投稿する予定である。

PS. XnViewMPの一番の問題は、ドキュメントやサポートがすごく貧弱なことだ。コマンドラインオプション一覧すら出ない・存在しないし、マニュアルもヘルプもなく、使い方は、想像するかwebやwikiの少ない記述やフォーラムを見るか検索するしかない。フォーラムのlibsslの件を見る限り、不具合を報告しても直ることは少なそうだ(言ってみれば、「悪魔対応」だw)。。。 まあ、それでも他のアプリ同様、自分で何とかできるから良しとしている。

ただ、これでは本当に、物好きとかプロしか使いこなせない。基本的にはいいアプリなのだから、サポートをちゃんとすればユーザーがもっと増えると思うのに、全くもったない。 (1/7 9:33)

(19:54 わずかに加筆; 1/7 9:34 加筆・修正, 15:55 わずかに加筆, 16:03 題に追加; 1/8 9:10加筆)

  •   0
  •   1

昨年、事件になったカショギという人の名前を見た時、どうも見覚えがあった。クイーンの曲に出て来た覚えがあったので昨夜調べてみたら、"The Miracle"(1989)というアルバムの中の"Khashoggi's Ship"という曲だった。

ただ、ずっと、「カショギ」(当時は「カショーギ」と読んでいた)は、なんか親しみがあるようなないような妙な名前ではあるが、中東には多いのだろうと思っていて、事件があった時も、歌とは特に関係はないと思っていたのだが、調べたらそうでもなさそうで、「へえ」と思った。

公式な情報ではないのだが、このページこのページによれば、歌のカショギはアドナン・カショギというアラブの武器商人で、Wikipediaによれば、殺害された人の甥だそうだ。この人は、アルファイダやイメルダ・マルコスとも繋がりがあったようだし、Wikipediaや前掲のページによれば、歌の船(大型ヨット)は最後はトランプに売られたそうで、なかなかすごい(& 恐ろしそうだ)・・・

PS. ちなみに、僕は昨夜調べるまで、長年この歌の名前を"Khashoggi's Shop"(カショギの店)と誤読していた(そのうえ「カショギ」の綴りも分からなかったため、プレーヤーではなかなか検索できなかったw)。そして、(詞を分かろうと思ったことがないので)「中東の人の経営するお店で、何か楽しいことやおもしろい物でもあるのだろう」と思い込んでいた。なに、良くあることだw

  •   0
  •   1

今日は、トイレの他にもう一つうまく行った。先日、思わぬ問題が見付かって仕切り直しにした、PHPのバージョンアップである。問題は、最新版PHPをインストールするためのPPA(公式パッケージ以外のソフトを手軽にインストールできる非公式パッケージ)に、PHP以外の余計なパッケージ(→ PPAのページ下部の一覧を参照)が沢山入っていたことだった※。そのPPA(以下、ondrejのPPA)を使うのは一般的なようだが、セキュリティ上のリスクが高いように思えるので避けたかった。

※今考えると、余計に思えたものはいずれかのPHPのモジュールが依存するものなのかも知れない(だから、全部のPHPモジュールをインストールした時には余計なものがなくなるのではないか)。そうならなおさら、自分が使うモジュールに必要なものだけをインストール・更新対象にしたい。

それで、今日までは、OS(Linux Mint)を更新してそれ(公式パッケージ)に含まれるPHPに更新することを考えていたのだが、良く考えたら、最新のOSに含まれるPHPは最新ではないため、すぐにサポート期間が切れてしまうことに気付いた。以下にその関係を示す。

Linux MintとPHPのサポート期間の関係

  • Linux Mint (→ 参照)
    • 18.3(現在使っている版): 2021/4まで
    • 19.1(最新版): 2023/4まで
  • PHP (→ 参照)
    • 7.2(Linux Mint 19.1(Ubuntu 16 LTS)のパッケージで入るもの): 2020/11末まで
    • 7.3(最新版): 2021/12頭まで

OSをLinux Mint 19.1に更新するとPHPは(最新の1つ前の)7.2にできるが、それは来年終わり頃にサポート期間切れになってしまうので、また今回のような状況になる。しかも、それがOSの期限切れまでに何度も起こるので、そのたびに必要もないのにOSを更新することになって無駄だ。それで、代わりの案を考えたら、以下の2とおりになった。

  1. ondrejのPPAの中のPHPだけを抜き出して使う。
  2. 自分でPHPをビルドしてインストールする。

2の自分でビルドするのはさまざまな問題や手間がありそうなので、却下した。1の、PPAからPHPだけを抜き出して使う方法を考えたところ、以下のいくつかの方法が浮かんだ。

  1. OSの設定を調整して、ondrejのPPA中のPHP以外のものを無効にして、PHPだけがインストールできるようにする。 (→ 参考1, 参考2)
  2. ondrejのPPAからPHPだけを抜き出した、「自分のPPA」を作る。 (→ 参考1, 参考2)
  3. ondrejのPPAのサイトからPHPのパッケージファイル(deb)だけをダウンロードして、インストールする。その処理を自動化する。

1番目はPinning(aptの設定ファイル中にPinという設定を記述する)でできそうだが、間違えると、前回のように厄介なことになりそうだ。2番目は、抜き出すだけでなく、抜き出したものをパッケージにするための情報を再度作成する必要があって面倒そうだ。3番目は一見簡単で、やればできるのだが、自動処理するにはOSのパッケージのインストールの仕組みを自分で作るようなものなので、間違いやトラブルのリスクが増えそうだ。

結局、1番目(Pinning)を採用することにした。試行錯誤でシステムを壊さないように、仮想環境で試した。すると、意外にうまく行った。以下のような手順で設定すれば良い。

  1. ondrejのPPAをOSに追加する。
  2. aptの設定ファイルを修正する。(→ /etc/apt/preferences.d/ondrej-php.pref)
  3. PHP 7.3のインストールに必要な依存モジュールを調べて、上記設定ファイルに追加する。
  4. 余計なパッケージがインストール対象になっていないか確認する。

1は、検索するとすぐに出て来る方法で、例えば以下である。

sudo sh -c "export LC_ALL=C.UTF-8; \
add-apt-repository ppa:ondrej/php"

2は、参考ページを参考にして、以下のようにした。

/etc/apt/preferences.d/ondrej-php.pref:

# ondrejのPPA中の全パッケージを無効にする。
Package: *
Pin: release o=LP-PPA-ondrej-php
Pin-Priority: -1

# ondrejのPPAのPHP7.3のパッケージを有効にする。
Package: php7.3*
Pin: release o=LP-PPA-ondrej-php
# 公式パッケージがない時だけ、ondrejのPPAのパッケージを使う。

Pin-Priority: 400

# ondrejのPPAのPHP7.3が依存するパッケージだけを有効にする(下線部は自分が使うPHPのモジュールによって変わる)。
Package: libargon2* libpcre2* libsodium2* libssl1*
Pin: release o=LP-PPA-ondrej-php
# 他にパッケージがない時だけ、ondrejのPPAのパッケージを使う。

Pin-Priority: 50

なお、上のPin指定の"o="に指定する名前(提供者名)は、1の後に以下のコマンドを実行すれば確認できる。

apt-cache policy | grep -i php | grep "o="

3の追加パッケージを調べるには、必要なPHPのモジュールをaptitudeに指定して、インストールをシミュレートするモード(-sを指定)で実行する。以下にコマンドの例を示す。

sudo aptitude -s install php7.3 \
php7.3-{common,cli,cgi,curl,mbstring,wddx,\
xml,xmlreader,xmlwriter,xsl,opcache,json,\
readline,exif,posix}

上のコマンドを実行すると、依存するパッケージlibargon2-0, libpcre2-8-0, libsodium23, libssl1.1が不足していると出るので、ondrej-php.prefの3番目のPackage指定に追加する(下線部。指定にはワイルドカードが使用可能)。

4の、余計なパッケージがインストール対象でないか確認するには、apt-cacheコマンドやアップデートマネージャーを用いる。以下にapt-cacheコマンドでの確認の例を示す。

apt-cache policy | grep -i php | grep -v sury
apt-cache policy | grep -vi php | grep sury

1番目はPPAの説明が出ればOK、2番目は追加した依存パッケージのみ出ればOKである。

実際のPHPのインストールは、3のコマンドに-sを指定せずに実行すれば良い(私はインストールの前に現在のPHPをアンインストールした)。インストール後に、PHPのバージョン(php -v)やモジュール(php -m)を調べて、想定どおりならOKである。その後、既存のプログラムの動作確認や調整などを行う。

書くと長くなったが、意外に簡単にPHP 7.3に更新することができた。作業時間(事前検討などは含まず)は30分程度だった。これで、再来年の頭までは(大きな問題がない限り、)今のOSでも行けそうだ。

PS. OSをバージョンアップする際は、設定ファイルのPackageで追加したモジュール(libargon2など)はおそらくOSに含まれているだろうから、バージョンアップの前に設定を調整(php7.3*だけにする)した方が良さそうだ(バージョンアップ後でも大丈夫だと思う)。 ← その後、PHP7.3や依存モジュールのPin-Priorityを下げることで、仮に公式パッケージが出た場合やOSのバージョンアップ後には公式のものを優先させる設定にした。

(1/5 6:21 ondrej-php.prefの設定を改良)

  •   0
  •   0

昨日の早朝、突然、トイレの水が出なくなった。便器を流す水は出たのだが、タンクの上の手を洗うところから出ないのだ。最初は寒さで凍ったのかと思ったが、別の蛇口は大丈夫だったし、いくら寒くてもトイレが氷点下になるとは思えなかったので、謎だった。

それで、タンクの中や説明書を見て、フィルタ(構成図中の赤線の部品、写真のオレンジ色の蓋の中にある)が詰まっているのかと思って掃除した。タンク内の部品はほとんどプラスチック製で、古いせいか取り付けが堅かったので、割ったり折ったりしないように慎重に作業した。フィルタを外して見たら、確かに砂や粘土のようなゴミで汚れていたので、掃除して付け直した。そうしたら、見事水が出るようになって、めでたしめでたし。

なんてことは全然なかったw

次に流したら、やっぱり水が出なかったのだ。確かに、フィルタは水が通らないほど詰まってはいなかった。それで、フロートの動きが悪いのかとも思ったが、問題なかった。そして、上から水は出ないものの、中ではすごく弱くちょろちょろと出ていて、長時間掛ければ水が溜まることに気付いた。それで、そういう状況を念頭にネットを調べてみたら(→ 参考1, 参考2)、いくつかの可能性があることが分かった。以下に検討したものを挙げる。

  • フィルタの目詰まり
  • フロートが動かない・引っ掛かっている。
  • ダイアフラムの劣化
  • ボールタップの故障

ダイアフラム(構成図中の「黒いゴム部含む」と書かれた部品)は、ボールタップ(構成図中央の縦長の部品)の中にあるゴム部品である。また、ボールタップの故障の実態は、ほとんどダイアフラムの問題だろうと思われる。更に検索したら、ほとんど同じ症状の方が何人か居た(→ 参考)ので、今回の故障はダイアフラムが原因であることが間違いなさそうなことが分かった。

それで、本来は大家さんに連絡するところなのだが、昨日は三が日で、お休み気分なのを邪魔したくなかったし、業者も休みだろうし、それ以前に、部屋が汚くて掃除しないと人を入れられない問題があったw 翌日まで待つ&掃除するか、自分で交換するかの選択になった。考えつつ調べたら、親切なことにメーカーが交換の手順を公開してくれているので自分で交換できそうだったし、部品も千円未満と安そうだったので、やってみることにした。

早速、散歩がてら最寄りのホームセンターに行ってみたが、ダイアフラム(TOTO TH405S (または HH11113))はなかった(取り寄せで2週間掛かるくらいとのことだった)。。。 仕方ないので、別のもっと大きな店に(あらかじめ聞いてから)行くかヨドバシで買うかだが、別の店はどうもDQNや高齢者が多い感じで、車は危ない気がして余り行きたくなかったのと、ポイントがあったし、他に近場では買えない物(無香料の洗濯洗剤)も買いたかったので、ヨドバシにした(上に書いたように、全く使えない訳でなく、長目に待てば水が貯まって使えるようになるので、数日なら待っても大丈夫だった)。ダイアフラムは約600円だったが、ポイントを使って実質420円くらいになった。

それが今朝届いたので、さっき交換した。分解はもう3回目だから手慣れたもので、10分も掛からずに交換でき、無事に上から水が出るようになった。念のため2回流したが、大丈夫だった。おもしろかったのは、交換して組み付けたら、残った圧力で、小さい穴から水が噴水のようにピューっと吹き出たことだ(圧が弱かったので、水浸しにはならなかった)。駄目だった時は、その辺りから弱々しく水が漏れていたので、理由は不明だが、気密性が重要で、それが回復したことは分かった。その噴水はいいのか分からないが、とりあえず、今は問題ない。

不思議なのは、古いダイアフラムを見ても特に破れたりしていないことだ(小さい穴2個は元からあるもの)。新しい物と比べても違いが分からない。確かに、ゴムが劣化していて、触ると指が真っ黒になったので、プラスティック部との継ぎ目に見えない隙間ができているのだろうか。もしかして、古い物は中央が白いが、そこはゴムが破れて中が見えているのだろうか? それにしては綺麗だし、参照ページの方の物も新品で白いので、違うだろう。ただ、この継ぎ目が弱くて良く故障するため、新いものでは全部カバーするように改良したのかも知れない。

それから、なぜこの部品が要るのかが不明だ。ボールタップ内に気密性が要る理由が知りたい。しかも、小さい穴が空いているのも謎だ。とは言っても、プロには当たり前のことなのだろう。調べれば分かりそうだが、まあいいやw

PS. 壊れた箇所を探す時にはスマフォが大いに役に立った。Webページを見ながら確認し、写真を撮り、Evernoteに結果を記録した。まったく便利なツールである。

  •   0
  •   0

前に書いた、去年から二年越しで続いている、僕の好きな色の猫の運送会社にまつわるトラブル。トラブル本体もすごくムカつくのだが、まだ置いておくとして、ここで書きたいのは、日本も常識が通じなくなって来たのかということだ。

まあ、「常識」と言っても人それぞれ違うことすら常識だが、それでも、日本なら最低レベルの線は確保されていると思っていたのだが、どうもそれも怪しい感じだ。以下に、今回呆れたことを書く。

トラブル対応でそこの人が来ることになり、僕が「※日の午前か午後*時までなら大丈夫」と伝えたら、先方は「当日、ドライバーが連絡して、(僕)の都合を聞いて、ご都合の良い時に行きます」ということを伝えて来た。

僕は、午前も指定したから、その日の「朝一」(どんなに遅くとも10時)に電話が来ると思って待っていたが、全然来なかった。風邪で調子が悪かったのだが、仕方なく11時まで待っても来ないので、寝てしまった。そうしたら、電話が11:30頃に入っていた。

普通だったら、待っても電話が来なかったらこちらから掛けるだろうが、今回は荷物の受け取りではなく、純然たる向こうのミスを向こう内部の都合で事後処理するのに付き合わされているので、こちらが電話代(フリーダイアルではない)を負担する義務なんてないし、メールだってエラーだので面倒だから、意地でも連絡しないことにしている。

大体、そんなに重要な処理なら、その担当者あるいは代理の人がすぐに来ればいいのに(時間帯を伝えた時、それを想定していた)、荷物の配送のついでにドライバーに来させるさせるってのが甘い。危機感とか連帯意識がないというか、本社もそうだが、下に丸投げする体質が強い気がする。

これはどうなんだろう? 確かにどこにも嘘はないのだが、この方式であれば、僕は、「都合がいい」と言った何時間もの間、ずっとどこにも行かず、寝もせずに電話を待っている必要がある訳だが、向こうの担当者あるいはドライバーはそれを期待していたのだろうか?

想像するに、僕が連絡した相手は「朝一の電話」を想定したが、ドライバーには、「午前か*時まではいいって言ってるから、前もって電話しろ」程度の指示しかしておらず、ドライバーは「行く前に聞けばいいんだな」と思ってこうなったのではないか。

いずれにしても、今後は、都合がいい時間帯を教えても、実際に来る時刻の調整の電話は「朝一」(これだって危ない。「10時まで」とか言わないと駄目だ)を念押しするか、電話が掛かって来る時間帯を教えてもらうか指定しないといけないようだ。なかなか面倒だ。

皮肉なのは、調整に人間が絡んでいない、webでの配達時刻の指定・変更などは全く問題なく、何のストレスもなく使えていることだ。今回だってそのシステムを使えば、全く問題なく調整できたと思うのだが。なぜ、これが全社的に汎用的に利用できないのかが不思議だ(実際には無理なのも分かるけど・・・)。 要は、その担当のおっちゃん(かどうかは不明)は不要ってこと??

 

(18:23 正確さを増すため、若干修正)

  •   0
  •   0