Archive for the ‘Linux’ Category

Evernoteからの脱却の一環として先日作った、WriteNoteの代わりのメモアプリ・システム BNoteを改良、というか何度も作り直して居た。いろいろ試したものの、結局、25年くらい前を彷彿させる※素っ気ないwebとなった。

※でも、marqueeやアニメGIFは使ってないので許されそうだw

僕にとって一番重要なのは、主に外出先で手軽に「サッと」ノート(タイムスタンプ付きメモ)を書くことができる、しかも、入力欄が大きくて見やすい・書きやすいということで、それらは充分に満たしているし、自分だけで使うものなので、やり過ぎるのは疲れるうえに馬鹿らしいから、とりあえずは良しとした。

以下にその変遷を書く。

  1. Automagic版
    • Automagicに問題はなかったが、この夏に終了になってしまったため、なるべく移行した方がいいと考えた。
    • また、入力欄が小さい(ほとんど調整できない)のがちょっと気に入らなかった。
  2. Automate版: 初期の機能確認まで
    • Automagicの代替アプリのひとつ、Automateを試してみた。
    • 機能的には使えそうなことは分かった(入力欄はAutomagicより良かった)が、有料だし面倒(グラフィカルなプログラミングはスマフォでしかできないので、結構疲れるし、何をするにもやり方が違う)なので止めた。
    • 入れたら電池消費が増えた(本当かは不明)気がしたのも、止めた理由の一つ。
  3. Web版 (作らなかったかも: 記憶が曖昧)
    • 試しに作って動いたが、ちゃんと使うには認証が必要なので、WordPress版に移行した。
  4. WordPress版
    • WordPress(以下WP)の非公開の投稿(ログインしないと表示できない)に無理やり(<pre>の中に入れた)HTMLとプログラム(PHP)を書いて、ノートが書けるようにした。
    • WPで認証できるメリットがあったため、やってみた。
  5. Web版 (WPで認証)
    • さすがに(中身が)綺麗でなかったので、単独のwebページにした。ただ、認証は必要なので、(無理やり)WPの認証を使った。
      • どういう仕組みかは分からないが、wp-load.phpを取り込むと、ログインしているかの確認ができる。
  6. Web版 (Joplinに保存): 中止
    • サーバにJoplinアプリ(コマンドライン版)をインストールすれば、自動でJoplinに取り込めて便利だと考えたが、以下の理由で中止した。
      • サーバにJoplinのストレージのNextcloud(以下NC)のアカウント情報を保存するのは良くない。
      • Joplinアプリのキャッシュ(Joplinのノート全部が入る)は暗号化されないが、それではNCのストレージを暗号化している意味がなくなる。
  7. Web版 (NC管理下に保存)
    • ノートのファイルをNCの管理下に保存し、NCでデスクトップPCに同期できるようにした。
    • NCの仕様により、ノートは平文で保存している。
      • BNoteのノートは量が少ないので、許容することにした。
  8. NCのFormsアプリ改造版: 断念
    • ファイルはNCに保存するのに認証がWPなのは変なので、NCの認証が効くNCのアプリを利用しようとしたが、断念した。
    • Formsアプリ(アンケートなどに使うアプリ)が結果が見やすいので試してみた。
      • Formsの入力ページを外のページのIFRAMEに入れて位置情報を追加しようとした。
        • しかし、どうしてもFormsの入力フィールドに位置情報を設定(自動記入)できなかった(設定してもサーバに届かない)ので、諦めた。
  9. NCの外部サイト版: 断念
    • NCから外部サイトを開ける機能にBNoteのweb版を指定して、NCの認証を利用しようとしたが、手軽に使える認証情報はなかった。
      • その情報(例: 外のNCのページのrequesttoken)とNCのDB内に保存された値を比較すれば、認証しているか確認できそうだと考えたが、DB内には見つからなかった。
    • NCのOAuth2機能が使えそうだったが、それほど手軽ではなかったので断念した。
  10. WP版 (Basic認証+α) ← 今ここ
    • 既にある手軽な認証機能を使うのを諦め、(昔ながらに)自分で認証することにした。
    • HTTPSなら、Basic認証は(カッコ悪いけど)それほど脆弱でないので、そうした。
    • また、愉快犯によるブルートフォース攻撃を避けるため、URLのパスを"bnote"のような分かりやすいものでなく暗号みたいな文字列にして、ログインを試すこと自体を難しくした。
      • 仮にログインできても、ノートが書けるだけで読めないので、(DoS攻撃は別として)致命的な問題は起こらなそう。
      • とは言え、変な引数やバッファオーバーフローなど、考慮していない脆弱性があるかも知れないので慎重を期した。

以下に、作った(出来た)ものについて書く。

BNoteの機能

  • スマフォで(PCでも)短いノート(タイムスタンプ付メモ)が書ける。
    • ブラウザで動くのでアプリのインストールは不要。
      • ただし、スマフォの場合、Operaでは位置が取れず、Firefoxはなぜかハングして表示できないので、事実上はChrome系しか使えない。
  • 各ノートには時刻と位置(取得可能な場合)が追加される。
    • 各ノート間は空行で区切られる。
    • その日の最初のノートの前には日付も入る。
  • 一日分のノートは1個のファイル(ファイル名に日付が入る)にまとめられる。
    • ユーザ(一人しか居ないが)・年ごとに別のディレクトリになる。
  • ノートのファイルはサーバに作成され、自動でデスクトップPCに同期される。
  • ノートを新規作成・更新したらメールで通知が来る。(Joplinへの転記忘れを防ぐため)

 

実装メモ

  • 認証: Basic認証
    • 上記のとおり、HTTPSならそれほど脆弱でないと考えた。
  • ノートの入力: HTML(FORM, textarea)
    • ノートをJavaScriptで送るためPOSTは面倒だったので、GETを使っている(URLのクエリー文字列にノートを含めている)。それぞれのノートは短いので、GETでも大きな問題はなさそうだと考えた。
  • 位置の取得: JavaScript
    • 送信ボタンを押した時に位置を取得し、ノートと一緒にサーバに送る。
    • 位置取得条件は「何でも可」(高精度でなくても可、無限に過去のものも可)にして、電池消費を増やさないようにしている。また、「あればいい」スタンスなので、取得タイムアウトを0.5秒と短めにした。
  • ノートへの時刻・位置情報の自動付加: PHP
    • ノートの送信時刻を各ノートの前に付け、位置(送られて来たら)を後ろに追加して、ファイルに記録する。
    • 時刻は、クライアント(ブラウザ)から送られて来たらそれを使い、なければサーバでの受信時刻を使う。
  • ノートの保存先: 通常のファイル (NCで同期)
    • NC(暗号化ストレージ)以外で作成・更新したファイルの取り込みを容易にするため、「外部ストレージ」の機能を使った。
  • ノートの同期: Nextcloudアプリ
    • 今までは別のファイルをrcloneで同期していたが、こちらのほうがリアルタイム性があって便利なので、全部を切り替えた。
  • 新規作成・更新ノートの通知: crontab+find
    • 定期的に検索している。
      • 最後に最新だったファイル名を保存しておき、それより新しいものを調べている。

問題点・TODO

  • サーバが停まっていたり、通信出来ない場合はノートが書けない。
    • そういう時は、エディタやJoplinを使うとか、手で紙に書けばいいか。。。
      • 通信できる場合は、元祖のWriteNoteを使ってもいい。
    • ブラウザのローカルストレージを使う手もありそうだが、なかなか面倒そうだし、やり過ぎだろう。
  • 複数のセッションで同時に書き込むと、きっと良くないことが起こる。
    • 対応するとすれば、書き込む時に排他制御するのだろうが、一人で同時に別の端末から書き込むことは物理的にできないので、対処しなくても大きな問題ではない。
  • 位置の取得条件などを変えられると便利かも。
    • そういう設定を付けても、いじることはまずなさそう・・・

その他

  • FirefoxのAndroid版は、上記のようにハングしたり位置が取れないだけでなく、viewportの動作がChromeやOperaと違っていた(textareaの幅がものすごく広くなった)ので、以前もそうだったが、相変わらず使えないと思った。
  • Operaで位置が取れないのは、navigator.geolocation.getCurrentPosition()のオプションの高精度("enableHighAccuracy")を有効にしていないからかも知れない。(未確認: これを指定すると電池を食いそうなので、余りしたくない)
  • 今はノートの記入にはChromeを使っていて、電池消費が気になるが、使いながら確認したい。
  • JavaScriptを使うと、(セキュリティ上の条件はあるが)iframeの親(外)や子(中)にアクセスできることが分かり、なかなか強力だと感心した。

 

PS. Evernoteからの脱却はほとんど終わったようなものだ。近頃はEvernoteでノートを書くどころか、全然アクセスしていない。あとは残りのノートをJoplinに移行する「だけ」だからロボットにでも頼めばいいが、適当なものがないのでw、やる気が出た時にやろうと思っている。ノートの数が多いので、重要なものだけは目で確認し、残りは一括処理しようと思っていて、その準備は大体できている。あとは一括処理するスクリプトを書く「だけ」だ。これもロボットに頼みたい(爆)

なお、Joplinは最高とは言えないが、少なくともEvernoteの10倍は いい。自分でいろいろ いじれるのもいい。ただ、Androidアプリはもう少し頑張って欲しい(大きいノートではビューア以外に使うのはキツい)。今はデスクトップ版に注力している感じなので、今後に期待したい。

  •   0
  •   1

今までにもひどいソフトは数多くあったが、近頃いろいろ出て来たので書く。

Snap(Linuxのソフト配布システム?): 自分勝手・押し付けで全くひどい。とりあえず使わない方がいい。

  • システムディスク(ルートパーティション)を食ううえに、好きなところに移動すらできない(どういう訳かsym-linkすら拒否される)。
    • 調べると、結構多くの人が嫌がっていて、移動しようとして苦労しているようだ。
  • ホームディレクトリに勝手に作られたディレクトリ(snap)も移動不可(sym-linkも不可)。
    • この下に各自のキャッシュ(.cache)なども(通常のものと重複して)作られるので、ディスク効率が悪いこと この上ない。
    • アプリの設定(.config)も別で、sym-link不可で通常のものと共用もできないから、とにかく使いにくい。
  • 上記以外に、snapのリポジトリのディレクトリが勝手に大量にマウントされる。Snapのアプリを増やしたら際限なく増えるのではないか?
    • Authyを使っていた時の例:
/dev/loop1 56704 56704 0 100% /snap/core18/1932
/dev/loop0 56704 56704 0 100% /snap/core18/1885
/dev/loop2 165376 165376 0 100% /snap/gnome-3-28-1804/128
/dev/loop3 63616 63616 0 100% /snap/gtk-common-themes/1506
/dev/loop5 31744 31744 0 100% /snap/snapd/9607
/dev/loop4 166784 166784 0 100% /snap/gnome-3-28-1804/145
/dev/loop6 31744 31744 0 100% /snap/snapd/9721
    • AppImageもアプリのファイルをマウントはするが、ちゃんと、見えないようになっている。
  • システムを重くするようで(サーバに通信するため?)、Linux Mint 20に更新後にパネルのメニューが出るのが遅くなったり、ターミナル(シェル)が時々遅くなったのはこれのせいだった。Snapをアンインストールしたら直った。
    • 以前書いたpreloadは関係なく、やっぱり不要だった。
  • 更にひどいのは、今までsnapでなかったパッケージが無断で・気付かされずにsnapに移行することがあることだ。それに気付かないと、自分で設定を変更しても反映されないことが起こりうる。
    • なぜかMintのテーマ(Mint-Y)もsnap版になっていたので(アンインストールする時に気付いた)、それでテーマの修正がうまく行かなかったのかも知れないと思っている。
  • これを作ったUbuntu(Canonical)はかなり邪悪、あるいは、技術力・センスがない。UNIX, Linuxの文化に明らかに合っていない・無視している。

なお、似たようなシステムのFlatpakは随分マシな感じだし、AppImageは全く問題ない。ただ、どれもディスク容量は食う。

CanonicalはSnapを押し付けたいようで、将来的にはサーバでも使わざるを得ないようになりそう(今でも一部そうらしい)なので、やはり、Ubuntuからの脱却は不可避なようだ。

 

Authy(ワンタイムパスワード(TOTP)生成ソフト): Snapでなければ良かったのに・・・

  • Linux版はSnap版しかない。
    • ディストリビューションごとのパッケージが無理ならAppImageにしてほしかった。
  • 上記のようにSnapがひどくて削除するため、Authyを使うのを止めてKeePassXC(PC)とKeePassDX(スマフォ)に換えた(あとで書く予定)。
    • 登録したアカウント情報のエクスポートができないので、全部のサービスを再登録する羽目になって面倒だった。

退会手続きをしたら、直後だけでなく翌日にも通知メール※が来たので、30日後の期限まで毎日メールが来るかと思って あらかじめムカついてw 迷惑メールのマークを付けたが、そうではないようだ。

※間抜けなことに、HTMLの背景?が大き過ぎるため、スクロールして文字を探さないと読めなかった。

 

MySQL(DB): MariaDBとグルで嫌がらせ? 互いにロックイン状態をキープして、持ちつ持たれつ?

  • Mint 20(Ubuntu 20)に上げたらバージョンが8に(勝手に)上がり、設定やDBの互換性がなくなり、MariaDBに容易に移行できなくなった。
    • 勝手にバージョンを上げたのはUbuntuなので、やっぱりCanonicalも悪い。
  • 8になったらデスクトップもサーバも結構遅くなった気がする。
    • クエリーキャッシュなど、5からなくなった機能があるせいか?
    • また自分で最適化しろってこと?

下記のMariaDBの件もあって気分が悪いので、デスクトップPCのdigiKamでMySQLを使うのを止めて、SQLiteに移行(逆戻り)中(これがかなり遅い・・・)。サーバはPostgreSQLに移行かな?? (すごく面倒そう)

 

MariaDB(MySQL互換だったDB): 不親切なうえに出来が悪い。これは駄目。

  • MySQL 8からの移行が至難の業。
    • なぜか、MySQLでダンプしたデータ(SQL)を取り込めない(エラーになる)。
      • InnoDBが悪いのだろうが。原因も出ないのでお手上げ。
      • 僕が詳しくないせいはあるだろうが、なぜか、デフォルトのストレージ(AriaだかSonataだか何だか忘れたが、まともに使えれば何だっていいよ)でなくInnoDBが使われてしまう。
    • その前に、互換だと思って「普通に」起動したら、DBが一部変更されたようで、MySQLに戻しても開けなくなった(FREEZE状態になった)。
  • そもそも、コマンド名をMySQLと同じにしているのだから、互換性を保証して何の苦労もなく移行できなくちゃ、それこそ偽物や詐欺ではないか?
    • まったく「馬鹿かな?」だ。
  • サイトはごちゃごちゃしていて分かりにくく、全く不親切。
  • 名前(作者のガキの名前らしい)もセンスがない!

昨日だったか、MySQLから移行しようと随分苦労したが、結局上記のエラーでできずに諦めてMySQLに戻した。

  •   0
  •   0

近頃はPCなどに掛かりっ切りで随分篭っていた感じなので、昨日散歩した。ふと思い出した、ちょっと離れた公園の銀杏がまだあれば、それを観たかった。あと、先日作った、WriteNoteの代替(BNoteと名付けた)の屋外での動作確認や使い勝手の評価も兼ねた(実はこっちが主な動機だった?)。

着いたら、間に合ったのが分かったので ちょっとうれしくなった。いつもながら、ここの銀杏は なかなか綺麗だ。多くはなかったが、紅葉も綺麗だった。

その並木の下で、中国のイケメン(?)と女の友達数組が、ポーズを付けて(銀杏の葉の上に脚を伸ばして座ったりなど)撮影会(ってこともないだろうが)をしていた。いかにも中華系の若い人たちの元気な雰囲気で、なかなか楽しそうだった^^

公園を歩いて居たら、小さい保育園児4人くらいが(全然うるさくなく)おとなしく※並んで縁石にちょこっと座って、保育士さんたちに話し掛けられながらおやつを食べていた。何とも のどかで良かった。

※まだ歩くのもおぼつかなくて、うるさく走り回れないだけなのかも知れない。確かに、その子たちの大半は、あの柵付きトロッコのような手押し車に乗って来たようだ。

それにしても、あそこまで無口でおとなしいと(実際には、内心はそうでもないのかも知れないが)、さすがの僕も不思議と優しい目で見てしまう。そして、そういう幼い子どもの行動は、実は自然の本能なのかも知れないと、余計な想像を巡らせて仕舞った。

歩きながら、ラフマニノフのピアノ協奏曲 第2番 第1楽章の行進曲のようなところ(指示が長いなーw)が浮かんで来た。そこら辺は以前はそれほど好きではなかったが、近頃はいい(うまい)演奏を聴いたせいか、なかなかいい感じに思える。短い和音が連続するのを いかに滑らかに弾けるか(これはすごく難しそうだ)、しかも、行進曲のようにはガチガチにせず、ロマンティックな感じを残す、それでもパワーはちゃんと出すのがポイントのような気がしている。

それから、眺めがいいだけあって、カメラ女子(昔の能年的な雰囲気)と同オヤジw(例: 一眼+一脚+帽子+ベスト)が結構居た。平日だけど若い子は休みなのだろうか? 多いと言えば、赤ちゃんや幼児や犬を連れた人も多かった。一方、猫連れはもちろん おひとりさまの猫も見掛けなかった。

帰路、ちょっと遠回りして川沿いを歩いたが、なぜか、以前良く見た鯉も鳥も居なかった。

全部で2時間くらい歩いた。なかなか気持ち良かった。帰ったら昼時だったが、暑かったので とりあえずブローリーを飲んだ。

AQUOS sense liteで撮影

 

BNoteは問題なく使え、動作していた。散歩の経路を記録したり写真撮影してGPSが頻繁に更新されたためか、ノートに記録される位置情報もほとんど正しかった。ノートが、撮影した写真と一緒にPCに取り込め、メールで通知もされて、(細かい改良に結構苦労した甲斐あって)なかなか便利だと悦に入ったw そして、そのノートをそのままJoplinの日記に貼り込み、更に、この投稿の元ネタにできているのも便利だ。

なお、電池消費が少し多いようだったので、ノートのDropboxへの保存は止め、スマフォ内だけに保存するようにしてみた(でも、GPSやカメラの方が電池を食うので、変わらない気はする)。ただ、ミッションクリティカルな場合(例: 潜入取材)にはDropboxにも保存した方が確実そうだが、果たしてそういう機会はあるだろうか?w

 

PS. 歩いている途中で、埃っぽかったり目が痛くなることがあったので、部屋でたまに少し臭うのは(環境騒音と同様に)仕方ないのかも知れない。ただ、ジジイが吸って居た電子(加熱式)タバコの臭いは、部屋でもしたように思う。あの臭いも結構強く、しかも、煙草とは違った特性があるようで、始末が悪い感じだ。

  •   1
  •   0

昨日なんとか終わった、サーバのOS更新。12時間近く掛かった。そのあとも細かい修正をしていた。

デスクトップと同様、サーバもバージョンを2つ(Ubuntu 16 → 18 → 20)上げるため なかなか大変だったが、最初から思わぬトラブルばかりだった。

まず、もしもの時のため※、サーバ(VPS)の仮想コンソールが開けることを確認しようとしたら、そのログインのためのデスクトップPCの二要素認証のアプリが起動せず、そこから対処する羽目になったw (少し前に、そのアプリが使っている、snapという大嫌いなクソシステム(Ubuntu(Canonical)謹製)の設定を変えたのだが、それが悪かったようだ。)

※「まあ、使わないだろう」と高をくくっていたら、大活躍する羽目になったw

それから準備して、最初の更新を始めた。Ubuntuのリリースノートに書かれているようにdo-release-upgradeコマンドを実行したら、パッケージのダウンロードが途中で失敗してしまった。。。 サーバを変えようかと思ったが、面倒だったので、少し待って再実行したら成功したように見えたが、インストール中にハングしてしまった。。。

仕方なく強制再起動して、仮想コンソールで更新を再実行したら、途中でカーネルパニックで落ちた。これは、以前問題になって暫定対処したもの(telinitというコマンドを実行すると落ちる)を、更新の邪魔になるかも知れないと思って元に戻したせいだ。それで、その暫定対処を再度入れた。

それから、再び、更新の準備としてインストールされているパッケージの更新をしようと"sudo aptitude upgrade"をしたら、ハングはしないが全然進まない。どうやらメモリフルになっている感じで、途中でaptitudeが強制終了されてしまった。さっき途中で落ちたせいでシステムが壊れてしまって、最初からインストールかと思ったが、ダメ元で"apt-get upgrade"としたら、嘘のように処理が進み、なんとか通ってしまった。僕の思い込みだったのだが、aptitudeはapt-getの上位互換ではないようだ。全く馬鹿だった。

それで、今度こそ本来のOSの更新をしようとdo-release-upgradeを実行したら、パッケージの更新はしたつもりなのに、"Please install all available updates for your release before upgrading."と出る。調べて、関係ないとは思ったが、"sudo apt autoremove"をして再起動してみた。

すると、また起動中に落ちた。やれやれである。今度は、plymouth-upstart-bridgeとかいう初めて見たものでパニックになっていた。検索したら既知の問題で、それを起動しているスクリプトに待ちを入れると何とかなるとのことだったが、そうしたくても起動中に落ちるのだが・・・ 使いにくいリカバリモードで起動して対処するか、0から再インストールしかないのかと思いつつ、まさに勘で起動時のブートセレクタで別のモード(Extendedの上から2番目の"systemd"とかいうもの)を選んでみたら何とか起動し、その修正を入れられた。ただ、systemdの方が筋が良さそうなので、そっちをデフォルトに変更した。

ただ、再度do-release-upgradeを実行しても、やっぱり駄目だった。それで、もしかしてと思ってOSのバージョンを調べたら、Ubuntu 18(一段目の更新先)になっていた。どうしてかは分からないし、それが正しいのかも分からないが、正しいとすればapt-get upgradeでOSが更新されたようだ。。。

更に調べてみたら、do-release-upgradeの前に、インストールされているパッケージの更新をするために、"sudo apt dist-upgrade"が必要とのことだった("sudo aptitude upgrade"ではなかった)。そんなのリリースノートに書いてなかったはずだが・・・ 確かに前回(Ubuntu 16にした時)はそうしたが、今回は書いてなかったので しなくていいと思ったのだ。

それで、とりあえず、二段目のUbuntu 20に更新しようと、"sudo apt dist-upgrade"と"do-release-upgrade -d"を実行したら、今度は妙にスムーズに終わってしまった。ここまでで7時間くらい掛かった。。。 さすがに疲労困憊だ。

それから動作確認と修正をしようとしたら、sshで繋がらなかった。また仮想コンソールで調べたら、ネットが動いていなかった。どうやら、パケットフィルタリングに使っている、iptablesコマンドの場所が/sbinから/usr/sbinに変わって、それを使っているスクリプトがエラーになったためのようだ。聞いてないんですが・・・ 理由は分からないが、ネット周りの標準が従来のifupからnetplan.ioとかいうシステムになったせいだろうか(最初は、このせいでネットが有効にならないのかと思った)。ちなみに、なぜかnetplan.ioの設定やコマンドではなく、従来の設定が有効だった。謎とイライラは多い。

それからは、概ね細かい修正ばかりだった。例によってmysqlもphp-fpmも起動しなかった。前者はバージョンが上がったらなぜかクエリーキャッシュという機能が減って(マジでクソだと思う)※、その関連の設定がエラーになったため(余計な設定だったら警告でいいと思うのに、全くセンスが悪い)、後者はwebサーバと通信するためのソケットのファイル名が変わったためだった。

※確証はないが、デスクトップのdigiKam(mysqlを使っている)が近頃遅いのは このためのせいの気がする。

それから、更新で上書きされた設定ファイルを探して自分の変更した設定とマージして ようやく更新工程が終わり、動作確認・修正してようやく終了となった。ここまでで11時間くらい掛かった。

やれやれ。

だったのだが、今朝、更に思わぬ問題も発覚した。DNS関係のdigやhostやnslookupコマンドが動かないのである(それでよくOSが起動したものだ・・・)。SSL証明書の更新スクリプトがエラーになっていて気付いた。検索しても余り出て来ないので全然分からなかったが、それらのコマンドが参照している、問題のコマンドやその参照しているライブラリが参照しているライブラリの場所を調べたら、驚くべきことが分かった。

libuv.so.1というライブラリが、標準のものでなく、(おそらく何かのために自分で入れたであろう、)古い版になっていた。標準のライブラリは正しい位置にあるのだが、古いものが/usr/local/libにあって それらしく動いていたので、気付かなった。それで、その古いライブラリを削除したらdigなどが動くようになったので、/usr/local関係を綺麗にしてOSを再起動した。

これは自分が忘れた、かつ、事前準備を怠ったせい(/usr/local/binはチェックしたが、libは関係ないと思い込んでいた)だが、まったく溜息しか出ない。そしてきっと、これ以外にもこれからもちょこちょこ出そうだ。まあ、仕方ない。

そして、前にも書いたが、OSの更新を溜めると変更点が増えて失敗の確率が高まるうえに、更新にまつわる作業が増えて良くない。※ かといって、こんな、つまらないうえに疲れることなんて毎年やってられないし・・・

※溜めると言っても、(LTSなので)元のバージョンだってサポート期間内なので、こんなに問題が起こる方がおかしいと思うのだが、それは甘いのだろうか? 甘いとして、それはどうしてだろう。甘いのは作っている方じゃないか? こんなんだったら"LTS"なんて言うなって思うわ!

 

僕の印象では、OSの更新で一番安心そうなのはmacOSだ。いかにも堅そうだ。(もちろん、使う気は1000%なしw) でもまあ、あれだけ自由(カスタマイズ)を制限していれば、ユーザ側のバリエーションが減るから、更新が失敗する確率は随分下がって当然と思う。

 

それにしても、毎回書いているが、更新でこんなに苦労するようでは、ユーザーが増えるどころか どんどん減って、マニアしか残らなくなるように思う(もう既にそうか)。それでいいのだろうか? 今はいいけど、明るい未来はないと思う(これって、日本の出生率が低下し続けていて未来がないのと近いものがあるのでは?) Linux開発者は、自分たち(お友達?)の世界に閉じこもって好き勝手なことをしていて(一方、バグも要望も長年放置ばかり)いいのだろうか?? 特別、みんなに使ってもらいたいとは思っていないのだろうか?

とは言え、有料のWindowsも似たようなものだから それよりはいいとは言えるか。でも、ものすごく低レベルな比較だ。

(11/13 7:27) 昨夜、書いたあとで"snap s*cks"や"snap f*cking"とか"Ubuntu fuc*ing"で検索したらw、Hackner newsのなかなか深いスレッド"Ubuntu 20.04 LTS’ snap obsession has snapped me off of it (jatan.blog)"が出て来た。2/3くらいまでしか読まなかったが、「(もちろん)snapはクソ。押し付けるな!」、「(だから・そして)Ubuntuもクソ。なにを考えている・どこに進もうとしているんだろうか?」、「UbuntuはWindowsに近付いている」、「Debianはまとも」、「Appleは更新でがらっと変えてしまうから、ユーザは対応するのが大変」といった意見(僕の意見で色付けしてまとめたw)があって、なるほどと思った。

あと、何人かが"Pop! OS"という(僕が嫌いな系統の名前の)なんか怪しいOS(ディストリビューション)がいいと言っていたが、賛同する人がほとんど居なかったのが妙で笑えた。でも、Ubuntuよりはましかも知れない。

(11/13 15:20) 詳しくは分からないが、近頃、macOSは更に自由がなくなったようで、ここまで来ると個人用コンピュータと言えるのか疑問だ。信心が試されるってことだろうが、僕には関係のないシロモノであることは確かだ。

 

いろいろ嫌になり、また、考えさせられた一日だった。

 

PS. この前はLinux Mintはイマイチだと思ったが、Ubuntuもかなりクソだと思った(寄付したのは無駄だったと思うくらい)。近頃はレベルが落ちているのかも知れないな。

そういう点で、Mintが嫌になったからディストリビューションを変えようと思っている件は、変化は大きいものの、Ubuntu系以外のカッチリしたものを選びたい気がしている。そういうものがあるとしてだが・・・ 全然分からないが、Arch系や(気乗りはしないが)CentOSとかなのだろうか。あとは全然気乗りしないが、BSD系??

  •   1
  •   0

数日前には「やらない」と書いたのだが、やっぱり、できそうなことはやってみたいので、WriteNoteの代わりを作ってみた。

最初は、書いた内容をオープンなフォーマットのファイル(例: プレーンテキスト)に保存できるチャットとかメモアプリがあればいいと思ったが、そういう都合のいいものはなかった。チャットだと受け側のログをコピー・ペーストすればいいが、書き始める時に相手(= 受け専用の自分)を指定するのが面倒だし、間違って他の人を指定する可能性もあるので止めた。メモアプリは内部データの場所が分からないのと、わざわざ「エクスポート」しなければ外部フォーマットのファイルには書き出せないものばかりだった。

それで、Automagicで作った。処理は簡単で、以下のようなものだ。

  1. [僕] アイコンをタップして起動する。
  2. [僕] ノートのテキストを入力する
    • "CANCEL"を押すと書き込まれない。
  3. (GPSで)現在の位置を取得する。
    • 新しく位置を取得するのに時間が掛かるので、通常はそれ以前に得られた位置を使うようにした。
    • ただ、移動中など、特別に正確な位置を取得したい場合に備えて、位置の取得を待てるようにもした。
  4. 入力されたテキストに現在時刻(※)を前置し、位置を追加して、毎日分のファイルに追記する。

※書いていて誤りを見つけた。前置するのは時刻だけでいいのに、日付も入れている。まあ、その方がJoplinに転記する時に日の間違いが起こりにくいからいいか。あとは、その日の一番最初に日付を書くのも良さそうだ。 → そうした。

更に、PC側は既存の自作の画像自動取り込みプログラムでノート取り込めるようにした。そうすれば、外から帰宅したら、撮影した画像(あれば)と一緒に自動で取り込まれる。まだやっていないが、取り込んだノートの有無や更新を調べて通知すれば、Joplinに取り込み忘れることもない。

この方式の欠点は、ノートを書くたびにクラウドサーバに送られる訳ではない(帰宅してPCに転送するまでスマフォの中にある)ので、何かのトラブル(スマフォの故障・紛失、プログラムの誤動作※)でノートが消える心配があることだ。その代わり、ずっと通信できなくても問題ないので一長一短だろう。

※誤動作に関しては、追記する前にノートのバックアップを作るようにした。

あと、テキストの入力欄が小さくてちょっと不便かも知れないが、使って試してみたい。

(11/12 16:16) その後、ノートをDropboxに送信するようにして、ローカルだけでなくクラウドへの保存も可能にした。まあ、単なる興味からで、オーバースペックであるw

それから、Automagicの入力欄をカスタマイズできないか調べていたら、この夏にAutomagicが提供終了してしまったことを知った。便利に使っていたのに残念だが、仕方ないので代わりを探すことにした。すると、早くもAutomateというのが良さそうな感じだ。外観や機能がAutomagicより整理されているのがいい。もう一個、Taskerというのがあるが、多くの人が使いにくいと言っているので余り使いたくない。

ただ、今度はなるべくこういうツールを使わず実現できる方法を探したい。PCではいろいろ作り込むとしても、スマフォ側はなるべく標準機能だけで実現したい。今回のノート記録は(散々探してなかったので)難しそうだが、もう一つの用途の、画像のPCへの自動転送では、Automagicは基本的にはPCに転送できる(Wi-Fiで通信可能な)ことを通知しているだけなので、できそうな気がする。

 

(23:50 わずかに加筆・修正)

  •   0
  •   1

下記のOS更新作業が どうにかこうにか、大変つつがありながらもw終わりましたので、運用を再開します。

あとで書きたいですが、いつもながら、思わぬことがいくつも出て来て大変でした(これをすんなりできる人が、世界中に何人居るのかと思います)。しかし、今は検索すれば大抵分かるので助かります。

それにしても、公式のリリースノートに書いてある手順のとおりにしてもエラーになるって、一体どういうトラップかと思います・・・

 

2020/11/11 16:20

れんと@これで安心して年越しができます^^(ってことはないw)


本サーバのOSを更新するため、以下の日程で一時停止します。

2020年11月11日 早朝から夜まで (完了後、ここに記載)

※一日で終わるはずですが、手間取ったりして伸びるかも知れません。今のところ、大きな問題はなさそうですが、大体いつも多少の問題は起こります。

 

変更がありましたら更新します。

れんと

 

PS. 早くやりたくて うずうずなんて全然してませんwww

(11/9 20:38 日程を記載)

  •   1
  •   2

マークダウン(MD)を使うクラウドノートツール(≒ Evernoteの代替) Joplin。もちろん名前が大嫌いな系統だけどw※、中身はなかなかいい。検索すると、近頃Evernoteの代わりに使い出した人が多い印象だ。

※どういう由来か知りたくもないから調べてないが、なんか名前がフランス的なので、直感で作者はフランス人だと思っていたが、どうもそんな感じだ。フランスにJoplinという有名な人が居た・居るのかも知れないが、全然知らない。 → 調べたが、2人居てどちらもUSの音楽関係の人(Scott- (c.1867-1917), Janis- (1943-1970)のようだ。作者が好きなのだろうか。だとしたら後者かな。

まだ一週間も使っていないが、日記や買い物リストなど、毎日使うものを移行して実際に使っているが、まだ大きな問題(「こりゃ駄目だ!」ってもの)はない。

また、Evernoteからの乗り換えがほとんどできた。もちろん全部のノートを移した訳ではなく、各種ツールを作って、やろうと思えばできる状況になった。あと、懸案だったWriteNoteの代替については、無理に代わりを用意するのでなく、WriteNoteを使って書いたノートを容易にJoplinに転載(インポート)できるようにした(詳しくは後述)。

以下に、使った感想とtipsなどを書く。

  • 試し始めた時にも書いたが、MDは面倒だけど、ショートカットやボタンやメニューである程度のフォーマットができてプレビューが横に出るので、それほど大きな手間ではない(そういう使い方はWordPressに近いので馴染みがある)。
    • ただ、ショートカットなどのない書式(例: 取り消し線 → <s>..</s>または~~で囲む)には難儀する。近頃は結構覚えてしまい、まんまと はまった感があるw
  • Evernoteのweb版(Evernote web)と違って、見たり書いたりしている時にノートやアプリがおかしくなることがまずないので、ストレスは少ない。
    • ノートの表示が簡素なのもいい。
  • 大きいノート(例: サイズが3MBなど)の操作性はEvernoteのwebやそのAndroidアプリよりいい。「かなりいい」とは言えないが、見ているだけなのに気付くとノートがおかしくなってしまうことがあるEvernote webやAndroidアプリのようなイライラはなく、安定感・安心感がある。
  • MD特有の癖はあるが、Evernoteよりは論理的で好ましい気がしている。
    • 昔のLaTeXのような感じ。
    • 例えば、空白や空行の扱いがEvernoteよりずっと「まとも」(プログラマー?に親和的とかTeX的)。
      • 例: HTMLと同様に、空白や空行を何個入れても1個の扱いになって不便なことはあるが、それはそれで理解できる。
    • MDはフォーマット(書式)の機能が少なくて不便な点はある(MDはプログラムなどの資料を書くにはいいが、普通のドキュメント・ノートを書くには不充分なので失うものが少なくなく、ダウングレードだと思うから、決して満足していない)が、オープンなフォーマットなので、「つぶしが利く」し自動化しやすいのもいい。ENEXでは全然駄目だ。しかも、web版ではそのエクスポートすらできない。
  • Linuxデスクトップアプリについて
    • "(“などを入れると自動的に閉じ”)"が出るのが便利。(こういうのを書いている時のように、)不便なこともあるが、ほとんどの時は便利。
      • もちろん、日本語の「」などには対応していないw
    • Evernote webは、ノートが大きい場合、表示が文字入力に追いつかなくて入力が激遅になったり、ブラウザの状態が変になってイライラすることが多いが、そういう問題は今までのところない。
      • ただし、プレビューを表示している時や、同期が開始した場合は若干遅くなる。
        • プレビューしながら大きいノート(の途中)を変更していると、表示のリフレッシュとリンクするせいか、勝手にスクロールして今書いているところが見えなくなるのが惜しい。
        • それでも、Evernote webのもたつきよりはいい。
    • プレビュー表示をコピーして、フォーマットを維持したままWorPressにペーストできるのが便利。
      • Evernote webは変なタグ(<div>がやたらに多い)が大量に付いてしまって書式がおかしくなるため、プレーンテキストでペーストして再度書式を付けるのが不便だった。
      • また、ブラウザからのペーストもフォント情報(サイズ、使用フォント)が無視されるので気楽・便利(MDにはそういう属性がないため)。
        • 例えば、タイトルのような大きな文字をそのままペーストしても全く問題ないw
    • 他のノートの参照がEvernoteのようにはできない? できるとして、どうやってする? HTMLのリンクにようにする? → 左側のノート一覧ペインのノート名で右クリック → "Copy Markdown link"で可能。 (11/7 6:41)
      • もう少し調べれば分かるかも知れない。
    • 変更したノートは、文字入力が終わってから30秒くらいで自動的にサーバに同期されるようだ。
      • この点はEvernote webと同様だが、同期の状態が分かるのがいい。
      • Evernote webは、「同期が終わりました」などと出ても まだサーバにないことがある(数分遅れる)。
    • ローカルに保存されたノートや設定はDB(sqlite3)に入っているので、Joplinのコマンドになくても手軽に閲覧・操作できる。
    • 正しい使い方かは分からないが、デスクトップ版とコマンドライン版のDBを(sym-linkで)同じものにすると、コマンドライン版でデスクトップ版にノートをインポートしたり(DBが別々でも、サーバ経由で双方は同期される)、コマンドライン版でデスクトップ版の情報が取得できるので便利だし、ディスク使用量を節約できる。
      • また、画像ファイルなどを置くリソースディレクトリも同じものにすれば、ディスク使用量を節約できる。ただ、何らかの競合が起こる可能性はある。
      • DB: $HOME/.config/joplinとjoplin-desktopのdatabase.sqlite
      • リソースディレクトリ: $HOME/.config/joplinとjoplin-desktopのresources
    • まだまだ不足な点やバグがあるが、かなり熱心に開発している感じ。毎日のように(仮)リリースがある。
      • この状態がずっと続くとありがたい。
    • 今までに気付いたバグ・問題など
      • タグでのノートのフィルタリングができないことが多い。 → 一旦別のタグを選択すると直る(= タグが2個以上ないとフィルタリングできない)。
        • そのタグを持つノートが表示されている時が駄目?
      • 取り消し線(~~)がうまく動かない場合がある。なぜか<s>はOK。
      • メモリリークしているのか、使っていると使用量が大きくなる。
        • 簡単に1GBを超え、大きく減ることはなさそう。
      • DBにノート保存先サーバ(クラウド)のパスワードが平文で入っている。
        • 最新では直したようだが、Linux版では対応していないのか、新たに登録する必要があるのか。
      • インポート直後などに書式を設定できなくなる(ボタンなどが無効になる)。 → 一旦ノートを変えると直る。
      • フォーマットのショートカットやボタンを増やして欲しい・増やせるようにして欲しい。
        • 特に取り消し線。
      • 日本語(と英語の混じったテキスト)の処理には対応していないようで、例えば、英単語を選択するつもりでダブルクリックすると、それを含む1行全体が選択されてしまう。まあ、無理もないと思う。
        • もしかして、僕が英語(+一部日本語)環境で使っているせいか?
  • Androidアプリについて
    • 電池消費はそれほど大きくない。
      • 長時間スリープ時に動作が停まって同期しないためか。
        • 電池の「最適化」を無効にしても、長時間スリープ中は全然同期しないが、電池消費が少ない方がいいので、僕は気にしない。
    • (Evernoteと違い、)ノートを見ている時に間違って編集にならないのが すごくいい。
      • 編集ボタンを押さないと編集にならないため。
    • 大きいノートも待てば表示されるようなので、(永遠に出ない)Evernoteよりもずっといい。
      • ただ、メモリは食うようで、最大で1GB近くまで使っていた。
    • 一度、アプリを開いても暗いままのことがあったが、他のアプリもそうだったので、OS全体がおかしくなっていたようだ(それで、スマフォを再起動した)。
      • その原因がJoplinかは不明。
    • 時々、ノートが同期しないことがある。
      • データ量が多い場合に途中で止めているのかも知れない。
      • 試しに省電力(最適化)をoffにしてみたが、消費電力は増えなかったものの、長時間スリープ中に同期していなかったので、意味がないようだ。
    • アプリにはデスクトップ版のようなフォーマット(書式設定)のボタンやメニューがないので、MDを手で入れるのだろうか。今はスマフォでは見るのが主だし、書くのはWriteNoteが主だし、Joplinで書くとしてもプレーンテキストが主だからまず問題ないが、仮にフォーマットを付けたい場合は面倒だ。
      • そのうちフォーマットボタンが付くのを期待する。
    • AndroidでのWriteNote(Evernoteに手軽にメモするアプリ)の代わりが要る。 → なんとかした。下を参照のこと。
      • 例えば、ノートの編集時にノートの一番上に行くのが面倒。
      • あと、現在時刻を自分で入れるのも面倒だし、Mazec(手書き文字入力)では「いま」を変換して現在時刻が出ないのも不便。
  • Joplinではないが、pandoc(ドキュメントフォーマット変換プログラム)はすごく大きい。コマンド1個で80MB近くもある・・・
    • あと、いろいろな癖があって、使う時に苦労した。
  • EvernoteからJoplinに移行する場合にノートのデータ量が気になる(大き過ぎるとサーバが容量不足になる)が、Evernoteのバックアップディレクトリは約600MB、約800ノートなので、まあ大丈夫そうだ。
    • ただ、手で一個ずつインポートするのは現実的でないので、いつかは一括処理する必要がある。

という訳で、Joplin(とMD)にはいろいろ癖などがある(だから、誰にでも勧められる訳ではない)が、Evernoteのクソさに比べれば充分我慢できる(それどころか3倍くらいいい※)っていうのが、今の感想である。

※例えば、書くことに集中できる度合いとかイライラの少なさはそのくらい上に感じる。あと、コマンドライン版があってフォーマットがオープンなので、プログラムとの親和性(→ 自動処理の可能性)や将来Joplin後の何かに移る場合の楽さは、100倍いいと言えよう。

それから、僕はブラウザ(= JavaScript)で まともに文書作成をするのはすごく無理があるし※、使い勝手が良くないと思う。Firefoxで使っているとメモリ使用量は10GB近くに膨れ上がり、上に書いたように大きなノートの操作性は最悪だし、しばらく使っていると動かなくなってしまってウインドウを一旦閉じなければならない。そんなのものは実用には程遠い。

※書いたあとで調べたら、デスクトップ版のJoplinもJavaScript(正確にはTypeScript)で書かれているので、JavaScriptかどうかは大きな問題ではないのかも知れない。あと、大量のメモリを消費するのはそのせいかも知れない・・・

 

以下、僕の考えた作業手順や作ったプログラムなどについて書く。

EvernoteからJopplinへの移行方法

JoplinはEvernoteのエクスポートファイル(ENEX)をインポートできるが、そもそもWindowsを起動して今の全ノートを同期するのは面倒だし、ENEXからだとMDでなくHTMLになってしまって※、(外見では分からないが、)ソースが汚くて あとあと不便なので、MDで取り込むことにした。

※実はENEXからMDにインポートできることに今気付いたがw、(ノートを更新・インポートするたびに)Windowsを起動したくないし、既にLinuxにバックアップが揃っていて自動更新されるのでなかったことに良しとする。

そのため、自作のEvernoteバックアッププログラム(en-backup)の作成したENMLもどき(EvernoteのHTMLもどき)をMDに変換し、それをJoplinにインポートするようにした。以下に手順の概要を書く。なお、Joplin(デスクトップ)は1.3.15、pandocは2.11.1を使った。

  1. バックアップしたEvernoteのノート(ENMLもどき)をHTMLに変換する。
    • バックアップしたノートをブラウザに表示するビューア(enb_viewer: 自作)を改造し、ファイルに出力できるようにした。
    • EvernoteのインデントとチェックボックスのMDへの変換のために特別な処理をするようにした。
      • インデントはMDに丁度いいものがなさそうだったので、">"(Block quote)を使うことにした。
        • Evernoteはインデントを"<div style="padding-left: Xpx>"のように書くので、インデント量(px)を">"の個数に変換した。
        • ただし、HTMLとして見た時(実際にはそんな機会はまったくないが・・・)もおかしくしたくなかったので、この段階では特別な目立たない記号("﹎﹍﹎"にした)に変換し、MDへの変換後(pandocの後)に">"に変換することにした。
      • インデントと同様に、チェックボックス(実際には不便なので全然使っていないが・・・)は、HTMLでは特別な記号("☐"と"☑"にした)に変換し、MDへの変換後(pandocの後)にMDのチェックボックス([ ], [X])に変換することにした。
  2. そのHTMLをpandocでMDに変換する。
    • 使用可能なMDのフォーマットはいくつかあるが、markdown_mmdやgfmがいいようだ(最新版の場合。古い版ではmarkdown_mmdが良かった)。
      • 少し比較したところ、gfmだと、Linuxのコマンドなどアルファベット・記号が羅列している時に文字が斜体になってしまうことがあるので、markdown_mmdを使っている。
      • それに、自動改行を止める--wrap=preserveオプションを指定した。
    • pandocはHTMLのチェックボックス(<input type="checkbox" ...>)をMDに変換できないようなので、上述のとおり、pandocの前後に処理を追加して、うまくMDに変換できるようにした。
    • Evernoteは空の<div>を大量に付けているので削除する。
    • 画像(<img src=...>)のパスを修正する。
      • pandocはimgタグにwidth(heightも?)が指定されているとMDの画像("![]()")に変換せずにそのまま出すようなので、変換前にwidthまたはheightを削除するようにした。
      • 画像の指定を絶対パスから相対パスに直す。
        • pandocでMDへの変換後にMDの記述を修正するようにした。
        • 画像をMDと同じディレクトリに置き、[](image.png)のように書けばいい。
        • ただし、Joplinは画像はsym-linkでなく実体でないと駄目なようなので、バックアップディレクトリから作業ディレクトリにコピーするようにした。
        • また、Joplinはインポートする画像にsuffix(".png"など)がないと駄目なようなので、追加した。追加すべきsuffixはHTML(ENML)中のimgタグに書かれているもの(例: "type=image/png")を抽出して設定した。
          • ただ、MIMEタイプがsuffixにならない特別な場合(例: svg: ただし、Evernoteでは使われていないと思う)は、別途、テーブルで定義した。
    • Evernoteとpandocの相性なのかどちらかが悪いのか、HTMLのネストした箇条書き・リスト(ulやol)の最上位がなくなってしまうので、暫定的に"</li>"(リストの項目の終わり)を削除して対応した。
      • HTML的には全然正しくなく、構造を正しく修正すべきだが、中間的なものなので良しとした。
      • 調べた感じでは、Evernoteが入れる"</li>"の位置が正しくないようで、子のリストの<ul><ol>が始まる前に入っているのが良くないようだ。
        • EvernoteはENMLであってHTMLでないと言うことは可能だが、であれば、「そんな変な物を作るのはセンスがないし無駄だし迷惑だから止めろ!」と言いたい。。
  3. できたMDをJoplinにインポートする。
    • メニューのFile → Import → MD - Markdown (file)に上でできたMDを指定する。
    • コマンドライン版では"joplin import -f --format md MD-path"でインポートできるはずだが、未確認。

オーバースペック・やり過ぎなところ、逆に間抜けなところはいろいろあるが、趣味とMD(、そしてsedも!)の勉強には丁度良かった。こういうのを作っておけば、今後もいろいろできそうな気がする。

それから、ENMLからMDへの変換を手軽にするため、Evernoteのバックアップの一覧・プレビューページに変換ボタンを追加し、それを押せば自動的に上の1と2の作業が行えるようにした。3のインポートもやれば可能だが、変換処理に誤りや問題があるかも知れないので、今のところは手で行うようにしている。

 

JoplinでのWriteNoteの代わりについて

Evernoteを完全に止めること自体に大きな意味はない(使えるところ・使える間は使えばいい)ので、外出時などに手軽にメモするのにはWriteNote(とEvernote)を使うことにした。そして、帰宅後に、外で書いたノートを忘れずにJopplinに取り込めるような仕組み(以下に概要を書く)を作った。

  • 定期的(今は1時間に1回)にEvernote中のWriteNoteで作ったノートを検索し、見付かったらそのノート名(タイトル)やGUIDなどをメールで通知する
  • 同じノートが何度も通知されるのは嫌なので、検索した日時を記録しておき、次回はそのあとに作成されたノートだけを検索する。
    • なお、上にも書いたが、ノートの作成・更新がEvernoteに反映されるのに数分間の遅れがあるため、今回検索した時刻の数分(今は5分)前を次の検索開始時刻として記録している。
  • この仕組みはclinote(3rdパーティ製コマンドライン版Evernote)とcrontabで(結構な力技でw)実現した。
  • 通知があったノートは、上述の手順でJoplinに取り込む。
    • ノートが既にバックアップされていたら、一覧からMDに変換できる。
    • 自動でJoplinに取り込むようにもできるが、いつノートの編集を終えたかの判定が難しいので、通知だけにした。
      • WriteNoteのノートができるのは高々1日1個で多くないので、通知だけで充分だと考えた。

 

(11/8 21:20, 11/9 11:35 [画像] WriteNoteの通知メールのコマンド列にバグがある件を追記, その内容を本文に更新)

  •   0
  •   0

僕が学生の頃に流行った「よろしくメカドック」という漫画(アニメもあったらしいが)は、どういう訳か名前は知っていたが全然読む・観る気がしなかった。おそらく、画とか雰囲気が嫌いだったからだと思う。※ 実際、今調べて画を見ると やっぱり嫌いだ。あと、当時はバイクが好きで車には興味がなかったこともありそうだ。だから仕方ない。

※書く時に思い付いた表現は、「画(特に人物)とか雰囲気が『いかにも当時らしい』から嫌い」なのだが、当時の作品なんだから当時らしくて当たり前だ。でも、なんかそう言いたくなるのだ。僕は へそ曲がりなのでw、もっと「らしくない」、「変なの」、「先進的なもの」?が好きなんだろう。当時の作品だと「ストップ!! ひばりくん!」は大好きだが、本当に「らしくなかった」かは分からない。

と 長々と書きつつも、本題は全く違う話であるw

 

先日ちょっと書いたが、結構前から止めたいと思って居たEvernoteの代わりを再び探した。決定版はなかったのだが、今回は少し条件を緩和して、2つの有望な候補、一つの次点、そしてもう一つの期待の星?が残った。条件を緩めた結果、嫌いで全然使いたいと思って居なかったMD(マークダウン)を使うシステム・アプリが最有力候補となった。

僕の条件は以下のとおりだ(上が一番優先度が高い)。全部「必須」としたいが、今回は総合的な評価(特に使い勝手)を重視した。

  • 使うのが容易(例: 書く時に余計なことを考える必要なく、神経を遣わずに済む)。
    • MDの書式を思い出しながら書くのはまっぴら。
    • Evernoteだって、web版が頻繁にハングしたり(これがすごくイライラする!!)、ちょっと間違うとノートがなくなったり、変なタイミングで同期して(web版はいつも同期しているから無駄もいいところだし、重い)、ひどいと競合するのが気に入らない。あと、端末数やアップロードデータ量の制限とか余計なことが多い。
  • WYSIWYGエディタがある。
    • Evernote同様、見たままに手軽に書けるのがいい。
  • LinuxとAndroidのアプリがある。
    • ブラウザのものが多いが、やっぱり使いにくいところがあるので、アプリが望ましい。
    • 特に、Androidのアプリは必須。
  • 大きいノートの編集が遅くならない。
    • Evernoteではいつも苦労・イライラしている。
  • ノートのバックアップ・エクスポート・インポートが容易。
    • オープンなフォーマットに対応していることが望ましい。
  • Evernoteからの移行が容易。
  • Androidアプリの電池消費が多くないこと。
  • なるべく無料。有料の場合、安いこと: USD 3-4/月以下
  • 自サイトで運用できる。
    • 今は無料でもそのうち有料になったり、勝手にサービスが終わったりするのは嫌なので、なるべく自分で運用できるものがいい。

以下に、今回探して検討・試したものと評価などを書く(長い)。

  • △ Joplin: MDだが、全体的に使いやすい。スクリプトでいろいろできそう。
    • Linux, Androidアプリあり。: Androidアプリがイマイチ(大きいノート)
    • エディタ
      • MDだが比較的使いやすい。
        • メニュー(ボタン)やショートカットでフォーマット(例: 太字)でき、リアルタイムでプレビューが表示される。
      • WYSIWYGエディタも"experimental"であり。 → 将来は正式版が期待できる。
      • ファイルマネージャからの画像のドロップ可, ペースト不可 (ファイル名が表示される)
      • Evernote webからのノートのペースト → ペーストよりインポートした方がいい。
        • フォーマットの維持: NG (リストなどの構造は維持されるが、太字などの文字装飾がなくなる)
        • 画像: NG (表示されない)
      • 大きなノート(Evernote webから約3MB, 約26万文字のノートをペーストして作ったノート)の編集: Androidが駄目
        • [Linux] 文字を挿入後、プレビューが出るのが若干遅い。
        • [Android] ノートが表示されるまでかなり時間が掛かる。なぜかノートがTODOに変わってしまった(その後直った)。挿入もかなり遅くて実用的でない。
      • Page downキーが正しく動くか: OK
    • Androidアプリ
      • 電池消費: 多い? (設定の「電池」の上位には出ないが、減りが速い気がする): 確認中
      • ノート作成時の位置情報を記録できる。
    • さまざまな形式でインポート・エクスポート可能
      • JEX(独自形式), RAW(Joplinのディレクトリ), MD, ENEX(Evernote: インポートのみ), JSON(エクスポートのみ), HTML(エクスポートのみ), PDF(エクスポートのみ)
    • 自サイトで運用可能 → 定期的な認証やブラウザによる不具合は起こらない。
    • 無料
  • △ Zoho Notebook: サービスや無料の継続性に不安あり。Linuxアプリはイマイチ(webならOK)
    • Linux, Androidアプリあり。: Linuxアプリはイマイチ
      • Linux版のDLが遅かった(一度失敗した)。
    • エディタ
      • WYSIWYGエディタ
      • 画像のドロップ可, ペースト不可 (ファイル名が表示される)
      • Evernote webからのペースト: フォーマットの維持: OK, 画像: OK
      • ただし、(webで)ペーストした画像はLinuxアプリでは表示されない。
      • 大きなノートの編集: Androidが駄目
        • [Linux] 挿入が若干遅い。
        • [Web] 表示されるまでかなり時間が掛かるが、挿入は速い。
        • [Android] 表示も挿入もかなり遅くて実用的でない。
      • Linuxアプリ
        • スクロールバーが出ないのでジャンプできない。(Androidも)
        • ノート情報の内容がおかしい。
      • Page downキー: Webは一番下に行ってしまう。
    • インポート・エクスポート可能
      • Evernoteからのインポート可能
      • 独自形式かHTMLでのエクスポートが可能 (以前はできなかった)
    • Androidアプリ
      • 電池消費: 未確認
    • 無料 (継続性に不安)
  • △- Carnet: フォーマット・エディタ・アプリがイマイチ。
    • Linux, Androidアプリあり。: どちらも少々問題あり。動作もなんか変な感じ。
      • Linuxアプリはイマイチ。
      • Androidアプリは別の同期アプリ経由でないとサーバに繋がらない。
    • インポート・エクスポート: 機能なし。自分でできそうではあるが・・・
    • エディタ: 貧弱
      • WYSIWYGエディタだが、箇条書きなどの機能がない。
      • PC: Evernote webからのペースト: フォーマットの維持: NG(変になる), 画像: NG
      • 大きなノートの編集: AndroidがNG
        • PC: 速い。
        • Android: 表示されない(ハングはしない)。
    • 自サイトで運用可能
  • △- Cryptee: ブラウザのみ。Androidでの操作性に難あり。大きいノートには弱い。サービスの継続性に不安あり。
    • ブラウザのみ: Androidでの操作に難あり。
    • 毎回暗号化キーを入れるのが面倒。(何とかなるとは思うが)
    • エディタ
      • WYSIWYGエディタ
      • Evernote webからのペースト: フォーマットの維持: OK, 画像: OK(Androidでは出ない)
      • 大きなノートの編集: ペーストを中断したら成功したように見えたが、その後の操作がおかしい。→ 待つしかない。
        • Linux:
          • ペーストがかなり遅い。ブラウザの警告が出る。
          • 挿入は遅いがZohoよりは速いかも。
        • Android: 読み込みが終わらない。
      • Android: ブラウザで「戻る」してしまうと、再度暗号化キーを入れるのが面倒。
    • インポート・エクスポート
      • インポート: ENEX, MD, HTML, 独自
      • エクスポート: PDF, MD(beta), Word(beta), HTML, 独自
    • 有料: USD 3/月 (10GB)
    • 問い合わせへの返事が遅い。(週末は休み?)
    • おもしろい会社だとは思うが、継続性に不安あり。
  • × Dynalist: エディタが駄目。高い。
    • Linux, Androidアプリなし。
    • エディタ: Web: 日本語入力で誤動作する。(例: 「あああああ」と入れると途中までしか表示されない)
    • 有料は高い: 無料, 有料: USD 9.99/月
  • × SimpleNote: エディタが面倒。
    • Linux, Androidアプリあり。
    • エディタ(MD)
      • フォーマットのメニューなし。 → MDを手で打ち込む。。。
      • プレビューなし?
    • 無料?
  • × Laverna: Androidで使えない。
    • Linuxアプリあり, Androidアプリなし。
  • × Turtl: プレビューが別画面で面倒。
    • Linux, Androidアプリあり。
    • エディタ(MD)
      • フォーマットのメニューなし。 → MDを手で打ち込む。。。
      • プレビューは別画面
    • 有料: USD 3/月  (10GB)
  • ×(△-) SilentNotes: Linuxアプリやweb版が出れば有望
    • Linuxアプリなし(ブラウザも不可), Androidアプリあり。
    • 無料(自分でストレージを用意する) → 自サイトで運用可能
  • × QOwnNotes: Androidで使えない。
    • Androidアプリなし。
    • 自サイトで運用可能
    • 無料
  • × Notion: エディタがコマンド式で面倒。高い。
    • Linuxアプリなし, Androidアプリあり。
    • コマンド式エディタ(コマンドを打ち込む)
    • 無料と有料: USD 4/月
  • × Nimbus note: 高い
    • Linuxアプリなし, Androidアプリあり。
    • WYSIWYGエディタ
    • Web
      • 画像のドロップ・ペースト不可
      • Evernote webのペースト: OK (画像も)
      • Page downキー: OK
      • 大きなノートの編集: NG
        • ペーストがかなり遅い。ブラウザの警告が出る。
    • 高い: 無料(100MB/月)と有料: USD 5/月  (5GB/月)
    • 以前試したが、バグ(日本語?)があって直らなかったので止めた。
  • × Notejoy: 高い
    • 有料: 高い: USD 4/月  (5GB)
  • × Box Notes: 高い
    • Linux, Androidアプリなし。
    • 無料と有料: 1200円/月 (仕様・違い不明)
  • × Amplenote: 高い
    • 有料: 高い: Basic: USD 5.84/月  (10GB)
  • × Quip: 高い
    • 有料: Starter: USD 12/月
  • × DEVONthink, Keep it, UpNote: Appleのみ
    • いずれもLinuxアプリなし, Androidアプリなし。
  • × Zotero: Androidで使えない。
    • Linuxアプリあり, Androidアプリ: まともなものがない
    • 本来は文献管理システムだが、そのノート機能が使える。
    • 以前試したが、問題があって直らなかったので止めた。

全体的は評価結果は ほぼ上のリスト順となり、以下が残った。

  • 有望なもの
    1. Joplin
    2. Zoho Notebook
  • 次点: Carnet
  • 将来有望: SilentNotes (Linuxアプリかweb版が出れば)

試した中では、(特にAndroidでは)大きいノートはどれも駄目だったので、諦める・我慢することにした。あと、MDには文字に色を付ける機能がない(HTMLを書けばできる)が、そもそも灰色くらいしか使っていないので、大きな問題ではないと思う。

それから、Evernote webからのペーストで画像が出ないのは、Evernote中の画像へのURLになっているためのようだ。ペーストされたURLにアクセスして画像を取得しようとしても、Evernoteの認証が通らないのでDLできず、表示できないためのようだ。ただ、Nimbus noteのように表示できるものがあるのが不思議だ。クリップボードの別のプロパティを使っているのだろうか?

そして今は、いくつかのノートをJoplinに移して、実際に使ってみ始めたところだ。これで問題がなければ、他のノートも順次移そうと思っている。

EvernoteからJoplinにノートを移す(インポートする)場合は、EvernoteでエクスポートしてENEXにする必要がある。それはWeb版Evernoteではできないが、Windowsを起動してエクスポートするのは面倒なので、自作のEvernoteバックアッププログラムが生成したバックアップファイル(ENML準拠?)をJoplinのRAW形式(ノートディレクトリ)に変換して使おうと考えている。実際に手で変換してみたら、試行錯誤はしたが それなりにインポートできた。

今のところ大きな問題はないが、気付いたのは、Evernoteで便利に使っていたWriteNote相当のアプリがないことだ。そもそもWriteNoteはEvernoteでは大きなノートが全然使えない(表示も追記もほぼ不可能)から使っていたので、とりあえずは、外出時にそれ用のノートを新たに作ってそこに書けばいいかと思っている。あと、実際にやるかどうかは分からないが、Automagic(Androidのグラフィカルプログラミング言語)でWriteNote相当のアプリを作れるかも知れない。

もう一つ気になったのは、外出前などにノートを同期しないままPCをスリープすると、スマフォでは更新されたノートが取得できないことがあることだ。それで、Joplinのコマンドライン版を使ってPCのスリープ前にノートを同期するようにした。※ コマンドライン版があると いろいろな自動処理ができるから便利だ。

※その後、Joplinの挙動やDBの内容を見ているうちに、ノートを更新してから1分以内(約30秒?)に自動的に同期(サーバに送信)されるようだ。ただ、念のため、最後の同期の後にノートが更新されていたら同期するようにした。これなら無駄な同期が行われず、スリープが遅くなることもほとんどない。 (11/2 7:13)

それから、そもそもMDを書くのは面倒だけど、Joplinだとボタンやメニューやショートカットでフォーマットできる(→ Evernoteと同様の感覚で使える)し、良く使うノート(例: 日記、買い物リスト)ではフォーマットはほとんど設定しないから、普通に書けばそれで普通に見える(→ プレビュー不要)ので、結構何とかなりそうだ。

なお、いくつか「本当の」(プレビュー表示でない)WYSIWYGのMDエディタがあるので、見たままで直接書きたい場合にはそれが使えそうだ。無料のものをいくつか試した中では、Typora(オープンソースではない)が一番、次はAbricotineが良さそうだ。ただ、上述のように まだ必要な場面がないので、実際に使っては居ない。

 

(11/2 7:13, 7:23 若干加筆・修正)

  •   1
  •   0

Linux Mint 20への更新では、すべてそれに起因する訳ではなく、僕がいろいろ いじっているせいもあるだろうが、さまざまな問題が起こっている。

昨日、あるページの表示がおかしいのに気付いた。9が"—"になっているのだ。そういえば、同様なことが少し前にも起こったが、ページ側の誤りやバグ(プログラムで月の数字を出していて、たまたま"9"で桁溢れのようになった?)だと思って済ませて居た。でも、そうではないようなので、調べてみた。

まず、Linuxの言語設定を英語にしているせいかと思って、環境変数LC_CTYPEなどを日本語に設定してブラウザを起動して試したが、直らなかった。※ そこで、何かの間違いでブラウザ内で変わっている可能性もあるので、(ブラウザを使わずに)wgetコマンドで ページのファイルを取得してソースを見てみたが、ちゃんと"9"と書かれていた。

※それはそうで、いくら言語が違っても、(特別な文字でなく)特定の数字を別の文字に変える必要は全くないだろう。そんなことをしたら、世の中の基本的なことが成り立たない。 → もしかして、数字が0-8までの、9進数の世界(異世界?)のフォントが紛れ込んだ??www

それで、フォントが悪いのかと思って、ブラウザの設定でページの指定するフォントを使わないようにしたら正しく表示されたので、そこが関係していることが分かった。次に、開発者ツールでそのページのフォント指定を調べたら、先頭は"Lucida Grande"というもので、調べたらPCに(自分でインストールして)入っていた。なお、そのあとに指定されているフォントはWindows・Mac用で、最後のsans-serifを除いて入っていない。

もしやと思ってLucida Grandeの字形一覧を見てみたら、確かに9が"—"になっていた(その他に、9の隣の":"が空白になっていた)。もしかしたら、元々そういう(何に使うのだ?)フォントなのかも知れないので、念のためダウンロードサイトで本物の字形を調べたら、普通に9と : が入っていた。それで、試しに(Font Managerで)Lucida Grandeを別のフォントに代替する設定をしたら、ちゃんと9が表示されるようになった

僕のPCのLucida Grandeがおかしい(壊れている)ことが確定したので、他の使わなそうなフォントと一緒に削除して対処が終わった。

検索してみたら、他にも同様の問題が起こっている人が結構居り(→ )、しかも、僕と同じLucida Grandeで起こっている人も居た(→ )。だから、僕のPCでだけ壊れているのでなく、元々おかしかったようだ。いつ・どういう理由か記憶にないのだが、これは自分でダウンロードしてインストールしたものだ。今まで分からなかったということは、Mint 20に更新したあとに、ダウンロードしたままでインストールはしていないものを見つけて、「折角だからついでに」インストールしたのか、以前から入っていたけど問題が起こらなかったか気付かなかったかである。

それにしても、なぜ、こんな変なフォントが出回ったのだろうか。全く不思議だ。調べると、少し(結構?)前まではLucida GrandeはMacのアルファベット用に指定することが当たり前だったようだ(それで、上のソースのようなフォント指定が多いようだ)。そして、このフォントは売り物のようなので、無料でダウンロードできたのがおかしかったのではないか。僕のPCに入っていたものの著作権表示を見ると、1997年と かなり古い。どこかから「パクった」中途半端なものや「パチモン」を出していたのだろうか? 確かに、本物と字形を比べると違うところがある(例: "@")。ただ、今でも無料でダウンロードできるサイトはあり、そこのはちゃんとしているから、そんなことをする必要もないように思える。

真相は謎だが、僕を含めて結構多くの人が「壊れたLucida Grande」の"9"で困って居たようだ。そしてちょっと思い付いたのは、これはある種のマルウェアで、有名なフォントを改変して流通させることで、システムを誤動作させたり使っている人(主にLinuxユーザ?)の判断を誤らせて社会を混乱させることを目的にしていたのではないか。あるいは、一種の社会実験とか長期的なハッキングの準備※だったのか。あとは愉快犯??

※フォントを改変して流通させると、どのくらいの速度でどのくらい広まり、どのくらいの人が気付いて、どのくらいの影響が出るか調べていたとか? "Font poisoning"とでも言うのだろうか。

まあ、いくら追っても本当のことは分からないし、「おや、誰か−」になるのも嫌なのでw、ここら辺で止めておく。

それにしても近頃は謎が多い。

 

いやいやいや。それ以前に、良く言われていることだが、無料だからって良く考えずに安易にインストールしちゃいかんね^^ 最初に、「使わないから入れない」と判断していれば、そもそも こんな問題も謎も起こらなかったのだ。やっぱり、

ただより高いものはない。

 

PS. 本題とは関係ないが、webページ(CSS)でデフォルトフォントを細かく指定するのはどうなのかと思う。特に、上に挙げた参照ページのように、「Macの(特定)フォント(の特定字種)が汚いから代わりを指定する」ってのは本末転倒ではないか。

まあ、web(ブラウザ)から各ユーザの標準フォントを変更できる訳ではないから、多くの人に綺麗なページを見てもらいたいのは分かるが、特別な表現上の意図なしで指定するのはおかしいと思う。更に、そこまで気を遣っても、MacとWindows(Linuxは蚊帳の外らしいw)で別のフォントを使う(= 見え方が異なる)のは許せるのだろうか? (→ そこを突き詰めるとwebフォントになっちゃうんだろうが、今見たら激遅だ。。。) でも、そんな努力もブラウザの設定で解除されれば水の泡なのだ。

とはいえ、このページだってWordPressのテーマがフォントを指定しているはずで(どうだったか忘れたw)、まず自分でそれを確認・解除してからでなければ、偉そうなことは言えない。

PS2. 書いてから気付いた。題は"#9 dream"※でも良かったなとw

※YouTubeにあるこの曲(1974)は、どれも音が綺麗になり過ぎていて(だけど、少し聴くだけで耳が痛くなる)、手持ちのCDからのとはかなり印象が違う(特に高域)。なんとも妙だ・・・ 近年の、Ono様による新しいミックスだのリマスターのせいか? 上はオリジナルと思われるものにした。

  •   1
  •   0

近頃は謎が多いのだがw、また二つ湧いた。

一つ目は、(文句はありつつも)愛用しているEvernoteだ。利用条件が変わったそうで、10月からweb版も「端末」としてカウントされるようになったそうだ。ただ、早速チェックしてみたら、端末にはAndroidアプリしか出てない。Web版以外にWriteNote(手軽にEvernoteにメモできるAndroidアプリ)や自作のEvernoteバックアッププログラム(clinoteを利用)も使っているはずなのだが(それらは「アプリケーション」には出ている)・・・

気になって調べたら、どうやらサードパーティー製アプリは対象外だそうだ(ただ、公式ページでないので、本当かは不明)。それでもweb版がカウントされていないのが謎だ。推測だが、次のログイン(前回ログイン時に指定した期限(= 30日後))まではカウントが増えないのではないか。

あと、web版を同じPCの複数のブラウザで使ったらどうなるのかも不明だ。まあ、それは調べれば分かるかも知れないが、いずれにしても おいおい分かってムカつくことになりそうだw そして将来は、web版どころかサードパーティー製アプリも「端末」としてカウントされるようになって、更にムカつき、また別のサービスを探して放浪しそうな悪寒がする。まあ、仕方ない。

いつの間にかなくなってしまった「プラス」なら値段が手頃だった気がするので入ってもいい気がしたが、プレミアムはちょっと高いから入れない。

ところで、今年の頭に偉い人が「作っている」と言っていたLinux版Evernoteアプリはどうなったんでしょうか??? 新しいアプリはweb版をベースにしているらしいので、web版が完成してから移植するのかな(希望)。

 

もう一つの謎は、Thunderbirdの代わりにスケジュールアプリとして使っているSeaMonkeyである。これをXfce4の起動(デスクトップへのログイン)時に自動起動すると、Todayペインが表示されない。メニュー(「表示」)で表示させようとすると、有効な(表示されている)状態でグレイアウトされていて操作できない。エラーなどは出ない。いろいろ調べたところ、ログイン処理中はSeaMonkeyが必要なサービスが起動していないためにそうなるようだ。具体的には、以下の全部またはどれかのようだ。

  • gnome-keyring-daemon --daemonize
  • gnome-keyring-daemon --start
  • dconf-service
  • gconfd

gconfdの可能性が高い(後述のサービス待ちに追加したら表示されるようになったので)が、調べるのにいちいちログインし直すのが面倒なので、完全には分かっていない。それで、起動スクリプト(SeaMonkeyの起動後にマウスを操作してカレンダーとToDoタブを表示する)に、上記サービスが起動するまで待つ機能を追加して※、なんとかTodayペインが表示されるようになった。

※最初はログイン開始から30秒くらい待ってから起動するようにしていた。調べてみたら、なぜかgconfdだけは起動が他より随分遅いようで、それが20秒くらいだった。 ← 後述の起動が遅いことも合わせて、ログインしてからSeaMonkeyのウインドウが表示されるまでにかなり時間が掛かるので、その間待つように通知を出す機能も追加した。全く手の掛かる奴である。

不思議なのは、SeaMonkeyはgconfもdconf※も使っていない(それらの設定プログラムに出てこない)し、おそらくgnome-keyringも使っていないのに、なぜ必要なのかだ。もしかすると、SeaMonkeyはそれらを使っているサービスか何かに依存しているのだろうか?

※この二つはどちらもGNOME系の設定サービスなのだが、なぜか別になっており、それらの片方だけに出るものもあれば両方に出るものもあって、これも謎(というか、「いい加減にしろ!」)ではある。

 

あと、SeaMonkeyもThunderbirdも、カレンダー(Lightning)を使っていると起動がやたらに遅い(僕の場合、SeaMonkeyの起動まで約20秒掛かる)問題もあるが、これは既知(原因不明かつ長年放置状態。最新のThunderbirdでは直った?)のようで、呆れつつも我慢している。

  •   0
  •   0

(僕も含めてw、)コンピュータ界にはオレサマ(「自分の考えが正しい・当たり前」)的な奴が多い・・・

Linux Mint 20に更新した直後に気付いたのだが、lsコマンドの仕様・デフォルトの動作が変わっていた。以下に気付いた(嫌な)点を書く。

  • 空白などを含むファイル名を ' で囲む(クォートする)。
  • -fオプション(元々は「ソートせずに表示する」だった)は-aオプションの機能(. で始まるもの、いわゆる「隠しファイル」も表示する)も含む。
    • 書いたあとで調べたら、FreeBSDやOpenBSDのlsでもこの動作になっていた。だから、僕の記憶違いか、大昔はそうだったけどいつか変わったようだ。
    • 良く考えると、下に書いたソート順の変更(これも誤解かも知れないが・・・)のために、 . で始まるファイルが目立って誤解したのかも知れない。 (→ 調べて解決した。下のソート順の項に書いた。)

それから、-aオプションのソート順も変わった(「隠しファイル」の最初の . を無視している)気がするが、まだOSを更新していない このサーバでも同じだったので、もっと以前からか気のせいか(あるいは、BSD系では僕の記憶どおり(最初に . で始まるファイルがまとまる)なのかも知れない)。

更に調べたら、lsのマニュアルやGNU Coreutilsのマニュアル(2019)のlsの項脚注で謎が解けた。

    • いつからかは不明だが、lsやsortは環境変数LC_ALLまたはLC_COLLATEとLC_CTYPEの設定に従ってソートするようになった。
    • 僕のシステムでは、LC_ALLもLC_COLLATEもLC_CTYPEも設定していないので、LANGかシステムの設定(= "en_US.UTF-8")が参照されて変なソート順になってしまったようだ。 → LC_ALLかLC_COLLATEを"C"や"POSIX"や"ja_JP.UTF-8"にしたら直った。
      • それにしても、USはこんな変なソートを許容しているのだろうか? まあ、USのことはどうでもいいかw
      • ただ不思議なのは、LC_COLLATEが"en_US"(エンコーディング指定なし)なら まともにソートされることだ。ここは謎の領域なのかも知れない。

勝手なクォートはすっっっごく嫌らしい(これ、bashが、頼んでも居ないのにファイル名補完で特殊文字の前に \ を入れるのと同じ考えか)なんか小賢しい。言ってみれば「日本人的なきめ細かさ」wだが、意外にも外国の人がやったのだろうか。以下に実行例を示す(適宜整形した)。

元(ver. 8.25):

$ /bin/ls Music
My Waves Waves

$ /bin/ls -lL Music
total 76
drwxr-xr-x  33 abcde abcde  4096 Nov 12  2019 My Waves
drwxr-xr-x 599 abcde abcde 40960 Oct 21 21:05 Waves

今(ver. 8.30):

$ /bin/ls Music
'My Waves' Waves

$ /bin/ls -lL Music
total 76
drwxr-xr-x  33 abcde abcde  4096 Nov 12  2019 'My Waves'
drwxr-xr-x 599 abcde abcde 40960 Oct 21 21:05  Waves

上はファイルが少ないからまだいいが、多いと ' がちらちらして汚く見にくい。更に小賢しいのは、' はファイル名の前の余白に表示される(だから、最初は本当に、ディスプレイにゴミが付いているのかと思った)ことだ。全く間違っている!

お前はいつからそんな小賢しいやつになっちまったんだ?

と言いたい。

ただ、元の仕様にも問題はあって、上の例の場合、ファイルは"My Waves"と"Waves"なのか"My"と"Waves Waves"なのか すぐには分からない(下に載せているが、これを改善したいというのが変更の一因のようだ)。ただ、普通はもっとファイルが多いので、列の余白の幅で判別できる。

それから、そもそもlsコマンドには(小賢しい)オプションが多過ぎて余りUNIX的でないから、正常進化したとも言えるw だから、これからもどんどん変わっていくのかも知れない。

検索してみると ほとんど出て来ず、意外に文句を言っている人が少ないようだ。ただ、唯一見付かったページによれば2016年には変更されていたようで随分経っているから、みんな慣れてしまって、文句は淘汰されてしまったのかも知れない。

読むと、やっぱり当時は問題になったようで、Debianは ' を付ける変更を戻すパッチ(no_ls_quoting.patch)を出している(それが今はどうなっているかや、パッチ版が手に入るかはまだ調べていない)。変更理由も載っているが、やっぱり小賢しい。以下に引用する。

The reasons we changed the default was:

  • It only happens when outputting to terminals
  • It disambiguates the output for users
  • Output can be pasted back in the shell for further processing
  • Users can get back to the old format by adding -N to their ls alias

最後は盗人猛々しいとか日本の政治家的な感じすらする。普通は新しい動作は新しいオプションにする(この場合、例えば-Nにする)か、デフォルトでoffにする(この場合、環境変数QUOTING_STYLEが設定されていたら、新しい動作にする)だろうが・・・

それに、-fオプションの動作は戻せない(オプションを-Uに変えるしかない)のはどうすればいいのだろう。目で見るならまだいいが、スクリプトで使っている場合、結構大惨事になりそうだが・・・ (上記のように、これは以前からの仕様のようなので取り消した)

例: いわゆる「隠しファイル」(. で始まるファイル・ディレクトリ)を処理対象外にしているスクリプトが、lsの-fオプションに従来の . で始まるものを出さない動作を想定して、ファイル・ディレクトリ一覧を出していたら・・・

それで、"bsdls"のようなコマンドがないか探したがなさそうだったので、仕方ないので(暇だったせいもあるがw)、元のlsの動作に戻す(直す)スクリプトを作り、それをlsのaliasにした。以下に動作を書く。

  • デフォルトではクォートしない。 → -Nオプションを追加する。
    • ただし、環境変数QUOTING_STYLEを"literal"に設定する方が良さそうなので、QUOTING_STYLEが設定されていない場合だけする。
  • -fオプションが指定されていたら-Uに変える。
    • --形式のオプションの単語中にfが含まれることもあるので、それも考慮した。

書いたあとで調べた(上述)結果、実はこのスクリプトは不要で、環境変数QUOTING_STYLEを"literal"に、LC_COLLATEとLC_CTYPEを"C"または"POSIX"(←日本語が化けるので良くない) "ja_JP.UTF-8"に設定すれば大きな問題(違和感)がなくなることが分かった(ただ、それに伴う副作用が出て来るかも知れない)。

まあ、本当に昔のままのlsを使いたいならBSDのを動かした方が良さそうだが、できるのか?

それにしても、ちょっと前からGNUの嫌らしさにも辟易しつつあったが、"GANG is Absolutely Not GNU."※なんて出ないだろうか? もちろん、LinuxはGNUがなければ にっちもさっちも行かないからすぐには無理だろうが。結局、それはBSD系なのか?

※"GNU is Not UNIX"への反抗w

でも、(Linux登場前の大昔は大好きだったものの、)今のBSD系はなんか違うんだよな。コマンドだけならいいかも知れないが、僕には何か合わない。その「何か」は気分とか好みとかで、特に詳しく調べた訳ではないから、どちらの機能・性能がいいとか言っている訳ではない。ただ、BSD系もGNU同様に、彼らの思想で凝り固まっている感じはしている。それが嫌なのかも知れない。

あと、以前の会社の大嫌いなジジイが使っていたのは大きい(爆)

 

PS. 書いたあとで、元々のlsコマンド(BSD版)のマニュアルを探していたら、おもしろい本「オープンソースソフトウェア - 彼らはいかにしてビジネススタンダードになったのか」(1999)のオンライン版が見付かった。いろいろな意味で、そうそうたるメンバーが書いている。付録AのTanenbaumとLinusの論争もおもしろそうだ。

なかなか大変そうなのでw、あとで読もう。

論争は最初の1往復(ここまでしか読んでない)で「勝負あり」って感じだ。僕は(偉そうなジジイに真っ向から反論した)Linusの側だ。

  •   0
  •   0

大嫌いになりつつあるLinux Mintの次のディストリビューションを探そうと ちょっと検索していたら、日本のもあったのだが(もちろん、僕にとっては、日本だからというだけでは何のアドバンテージもない。逆に、だらだら日本語を出されると邪魔なのでハンディになる)、しょうもないものばっかりで呆れた。

歴史はあるが、十年一日のごとく進歩がなく、古いソフトしか入ってなくて終わっているかのようなもの(いや、そんなんだったら止めた方がいいと思う)、新しいものでは、なぜか開発者・元が名乗らず、自分のサイトどころかドメインもなく(検索しても、レビューページしか出てこない)、他者のダウンロードサイトからダウンロードさせるものばかりだった。

僕は、そういうのは実はCとかRとか「北」国製で、情報を抜き取るとかマルウェアの拡散などが目的ではと心配する・疑うが、使っている人(が居るとして)はそうは考えないのか? 「日本製」とあれば(といっても、大抵は他人が書いているだけなのだが・・・)信用するのか? そもそも開発者・元が不明なのに、どうやって日本製と分かるのか?

そもそも(続くが)、自分のサイトすら作れ・らない人・人たちに、果たしてまともなLinuxのディストリビューションが作れるのか、大変疑問だ。

更に、サイトがないから、そのディストリビューションの主張とか意図とか考えとかメリット・長所・得意なことなど、そして、出所が何も分からないのに、他人のレビューを信じて のこのこ使う連中が居ること(居るとすればの話)がすごく不思議だ。平和ボケの典型だ。

不思議なのは、そういうのは最初はどうやって存在を広めたのだろうか? 昔の2ちゃんねるみたいなところに「作ってみた」とか出したのだろうか?

そして、その一つに、どういう訳かオーディオの音質にこだわっているものがあったが、その いい音質をどうやって実現しているか書いてなくて、ひたすら、マニア向けオーディオ製品のポエムようなもの(+ 設定の羅列)が書いてあるものもあった。もちろん、見た限り、特性の数値なんてなかった。

もちろん、そういうのは試すまでもない。

そして、「やっぱり日本は駄目だ」と実感した。

 

PS. エゴサされると面倒だし(でも、議論するのはおもしろそうだ)、そもそも枝葉末節とか泡沫候補みたいなのはどうでもいいので、それぞれの名前は出さない。

PS2. 日本だけじゃないが、なぜ、ただでさえディストリビューションが多過ぎるのに、新たに出すのだろうか? みんなそんなに馬鹿で暇で自己中心的なのかと思う。僕に言わせれば、まったくの無駄だ。止めとけ。

  •   0
  •   0

性根の悪いMozilla※製品から脱却しようと、先日からメールとカレンダーをEvolutionにして試していた。メールは悪くないが、カレンダーは今一つだった。最初に感じたように、未完成で実用には向かない感じだ。一番気に入らないのは、予定の時刻や通知の有無を変更しても、変更前の通知も出ることだ。どこかに変更前の予定が残っていて消えない感じだ。折角変更したのに、のこのこ古い通知が出るのは鬱陶しいし頭に来るので、断然やっつけたくなった。

※こいつらは、林檎や窓と違って碌にシェアもないくせに自己満足をやりたい放題しているが、どういう了見なんだろうか? 本当に先は長くないよ。

そこで、更に探してみたら、SeaMonkeyというのが候補に上がった。

正確には、最初はブラウザ(Firefox)の代わりを探していて、SeaMonkeyが見付かり、それがメールやカレンダーも含んでいた。

"SeaMonkey"という名前からしていかにも古臭そうだが、実際、これは「いにしえのFirefox+Thunderbird」とでも言えるものだ。外見もそんな感じだ。

実は、SeaMonkeyより「古い」ものがある。Pale Moonというブラウザ(やっぱり古いFirefox)は、サイトを見るだけで敬遠するほど古めかしい。それでも一応試そうとしたら、ダウンロードがすごく遅かったので(一度失敗すらした)、試してすらいない。

使ってみると、ほとんど、僕の好きだった(許せていた)頃のThunderbirdでまあ悪くなかったのだが、起動する時に、終了時に開いていたタブ(例: カレンダー)が開かれないのが気に入らなかった。調べてみると十年近く放置されている問題のようで、なかなか心証が悪い(作った人たちは本当に使っているのか???)。この調子では、もちろん改良なんてされないどころか いつ「無事死亡」してもおかしくない気がした。

それでThunderbirdに戻ったのだが、ちょっとひらめいて再びSeaMonkeyを試す気になった。それは、X11の自動処理プログラム(xdotool)で、SeaMonkeyの起動直後に(マウスを自動操作して)カレンダーとToDoのタブを開くことだ。やってみたら、随分試行錯誤したけどうまく行った。それで、SeaMonkeyを試すことにした。

のだが、良く考えれば、そこまでしてSeaMonkeyを使う価値はない(結局、「劣化版Thunderbird」なので)気がしたので、やっぱりThunderbirdに戻ったのだが、使ってみると、さっそく、頭に来た問題の一つ(Todayペインに今日の予定が表示されなくなる)が起こってやっぱり不便なので、再びSeaMonkeyを使ってみることにした。

ただ、上記のように特にSeaMonkeyが好きな訳ではなく(CardDAVに対応していないなど中途半端なメールはともかく、カレンダーは最新のThunderbirdと同じ外見なので)、Thunderbirdの問題が直ればそっちを使いたいから、バージョンアップされるたびに直ったかチェックしようと思い、定期的に、(webページのスクレーピングで)サイトからダウンロードできるThunderbirdのバージョンをチェックする処理を作った。 ← 今ここw

参考までに、そのThunderbirdの更新チェックの処理(crontabに書いたもの)を載せる。メンテ困難な判じ物、やっつけ仕事である。

tb_lverf=$HOME/tmp/tb-latest-ver; ver_pat='/^.*product=thunderbird-([0-9\\.]+)(-[^&]+)?&.*$/'; lver=`wget -q -O - https://www.thunderbird.net/ja/ | sed -nr "$ver_pat {s$ver_pat\\1/p; q}"` 2>/dev/null; echo "Thunderbird's latest ver.=$lver" > /dev/null; if [ -f "$tb_lverf" ]; then prev_ver=`cat "$tb_lverf"`; if [ "$prev_ver" != "$lver" ]; then echo "Thunderbird has been updated from $prev_ver to $lver."; echo -n "$lver" > $tb_lverf; fi; else echo -n "$lver" > $tb_lverf; fi

余談: 僕はまだまだsedにはひ弱な坊やでw、「一度だけ置換して終わる」ってのが難しかった。同じパターンを2回書くのがどうしても許せなかった。最初は、sedよりはずっと親しみ深いawkを使いたかったのだが、特殊文字をcrontabに書くのが難しくて、sedに逃げた。

 

それから、少し書いたように、ブラウザもいろいろ試したが、やっぱり「昔のFirefox」が多いが、まともなアドオンが少ない(Mozillaが古いものをダウンロードできなくしている! そのため、過去のアドオンのアーカイブ("ca-archive")からインストールするようになっている)など結構面倒で馬鹿らしいし、保守の点でも心配がある。

どこかのフォーラムに、Firefoxアドオンがなくなってしまった問題を"apocalypse"と表現している投稿があった。言葉のイメージ(語感)は分からないが、「地獄の黙示録」("Apocalypse Now"(1979), 特に、あの怖いおっちゃんw)を連想し、みんなひどいと思っていそうな気がした。いやマジで正気の沙汰じゃないよ。

古いせいか ある種独自(を主張している)なせいか、webサービスとの互換性も悪いようで、SeaMonkeyやBasiliskではEvernote webは開けなかった。User Agentを普通のFirefoxに変更したら開けたが、古いEvernote webしか使えなかったので、いつか使えなくなってしまうだろうから、それでは乗り換えられない。

他はOperaは機能的には結構いいのだが、勝手なUIを押し付ける(しかも直せない)のが気に入らない(多くの人が文句を言っているのに無視しているようだ)。あとは、Chrome系だが、メモリを大食いする以外に、(ページによるが)Linuxだと日本語入力が今一つなことが多い(例: Evernote, Twitter)ので、難しそうだ。

もし仮に、今すぐ乗り換える必要があるとしたら、・・・・・、Chromeしかないだろう。

もちろんGoogleは好きじゃないが、他と違って阿呆じゃない。むしろスマートだ。だから、限られた選択肢の中では選ばざるを得ない。。。

(10/19 13:28) と思って居たのだが、「モバイルサイトのないサイトは来春インデックスから消える? Googleアナリストが明言」などと、彼らも随分押し付けがましいから大嫌いだw あー面倒くせえ・・・

 

PS. ついでにデスクトップのテーマについて。: Linux Mint 20にしたら いろいろな箇所の色がおかしくなってしまった件は、大分対処出来た。どうやら、それまで使っていたテーマのMint-X-Sandの系統(Mint-X)は棄てられてしまった感じで、今はMint-Y系が「推し」のようだ。※ ただ、試してみると、アイコンはモダンだが、パネル(タスクバーに相当)の背景がほとんど黒で目立って・目障りで嫌だ(僕にはそれがいいと言う感覚が理解できない。最初もそれで選ばなかった気がする)。それで、パネルの色を明るく(ウインドウのタイトルバーや枠に近い灰色に)した。そうすると、パネルの一部のアイコン(黒い背景を前提にしている)が見えなくなったりして、なかなか調整に手間が掛かった。

※中身(CSS)の話だが、作者が違うようで、Mint-Xは綺麗に整理されていたのに、Mint-Yの中身はひどい。全部押し込まれて、定数も使ってなくて、ぐちゃぐちゃ・書きっぱなしって感じだった。これだと保守が大変そうだ。

更に、自分の好みが変わったのか、Mint-Y-Sandだとベージュ・茶系が多いせいか、なんとなくドン臭いとかもっさりしている気がして来たので、Mint-Y-Grayにして基本は灰色にし、それだとちょっと味気ないので、アイコンはMint-Y-Sandの茶系にしてみた。

Mint-Yの場合、Firefoxの要素(例: ラジオボタン)はちゃんとテーマの色になった。はずだったのだが、今見たら青に戻っていて がっかりだ。。。 (← Firefoxを再起動したら直ったが、もう信じられないな) 更に、Chromeの要素は相変わらず青の一方で、お気に入りはテーマの色(灰)なのが謎だ。それから、Mlhiで使っているrange要素のスライダーの背景が見えなくなってしまい、そこも調整を余儀なくされた。

他にも調整できない箇所がいろいろあってGTKの謎は深いが、ちょっと付き合い切れないな・・・

  •   0
  •   0

大大大(数十回繰り返し)大っ嫌いになったのでwww、ThunderbirdからEvolutionに乗り換えようとして、ほぼ完全に(正確には7/8くらいw)できた。この前試した時、カレンダーにいくつか気に入らない点があったのでメールだけ使って実感したのだが、「当たり前の感覚」で使える点でEvolutionのカレンダーの方がずっと筋が良さそうなことに気付いた。※ だから、多少の欠点はなんとかしたいと思った。

※例えば、Evolutionは基本的にプラグイン(またはアドオン)はない(あることはあるが、両手で数えられるくらいしかなく、ないに等しいうえに、ほとんど使ってない)けど、Thunderbirdと違い、それで大きな不満も問題もない。つまり、基本がしっかりしている、「分かってる」のだ。

Evolutionで一番気に入らないというか不便なのは、メールモードでウインドウの右端に縦に出せるTo Do Bar(ThunderbirdのTodayペインを意識していると思われる)が残念にも

  • 現在時刻でスクロールしない。
  • 時刻が小さくて読めない。
    • こちらは、おそらく、前回のようにGTK3のCSS(gtk.css)で変えられると思う。

ために、「今」はリスト中のどこかや今後の予定が分からないことなのだが、それは今までのように、(Evolutionの下にThunderbirdを出し、)Evolutionの脇にThunderbirdのTodayペインを表示することでしのごうと思う。

それ以外の下記の問題は、使い方や我慢でカバーできる。

  • デフォルトの通知はダイアログだけで、音を出さない。出したい時は、予定を作るたびに音のファイルを指定する必要がある。
    • → 基本的に、音はうるさいから要らないと思って居た(だったら、この文句は何だったんだ・・・w)。あと、机上にスマフォがあるので、画面を見ていない時でもそのバイブの音で分かる(可能性が高い)。
  • 色遣いがイマイチな場合・箇所がある。
    • → 一番(かつ、おそらく唯一)イマイチなのはカレンダーのTasksだが、カレンダーの色を薄くしたら、まあまあになった。
      • 色の濃度を交互に変えるのを止めるとか濃度の変化を少なくできればいいのだが、残念ながらできないようだ。
      • これもGTK3のCSS(gtk.css)で変えられればいいが、プログラムで固定かも知れない。

なお、検索したらたまたま出たEvolution関係の掲示板をいくつか見てみたが、(欧米らしくなく?)なかなか頑固でフレンドリーでもオープンマインドでもない(ぶっきらぼう? ホリ○モン的??w)方が多い感じで(GNOMEってそういう文化なのだろうか? いや、UNIX・Linux系は大抵そういう気がする)、要望を出してもサラっと(あるいは、鼻で笑われて)却下されている感じなので、期待できない。それよりは自分で何とかした方が良さそうだ。

それから、次の問題は再発しなくなった。おそらく、Evolutionの前に試したRainlender2がおかしくしていたのだろう。全くひどいソフトだ。

  • 予定の編集後のサーバへの保存に失敗することがある。繰り返すものが駄目な感じ。

そして、Thunderbirdから完全に脱却するために、Todayペイン相当を自作したくなった。やり方は分かった(下に概要を書く)ので作るだけなのだが、やっぱりそれなりに手間が掛かるので、ちょっと保留している(サボり先輩ーーーw)。

Todayペイン代替プログラムの基本機能・動作

  • 直近の予定を一覧表示する。
    • 予定のデータは、Evolutionのキャッシュ(sqlite3)から読める。また、evolution-data-server(EDS)からDbusで取ることもできそうだし、SyncEvolutionというソフトを使えばサーバからも取れる。
      • キャッシュが一番手軽そうだが、問題も起こりやすい。
      • なぜか、キャッシュ中のカラムsummaryなどの日本語の濁点がない(例: 「資源み」)のだが、バグなのだろうか? だとしたら器用だw
        • でも、本物(カラムECacheObj, VEVENT)は正しいので問題ない。
  • 現在時刻に合わせてスクロールする。
  • 予定が追加・更新されたら、それを反映する。
  • 下にTODO一覧も表示したい。
  • 予定やTODOの項目にマウスオーバーすると内容を表示し、ダブルクリックするとその編集画面を出したい。 (後者はすごく難しい)

 

Thunderbird(Mozilla)もEvolutionも独りよがりなのは変わらないのだが、Mozillaは頼んでも居ないことをして(しかも頻繁に!)ユーザーを困らせる点が一番クソ(f*cking)だ。ある時点で気に入って(というか、他になかったから)使っていても、突然大きく(不便に、でも、もともと使いにくいところはそのまま・・・)変えてしまって、ドヤ顔で「今度の最高でしょ? これからももっと良くするよ」って言うような感じだ。まるで劣化版林檎だ。

「そんなんだったら何もしなくていいよ!」と思うが、それ(何もしない)がEvolutionなのだ。いいのか悪いのか・・・。 (まあ、クソじゃないだけいいと思う。)

そんな訳で、同様のことをしているブラウザFirefoxも捨てたい気分なのだが、なかなか代わりが難しい・・・ ChromeかOperaかなぁ。

つくづくMozillaは馬鹿だと思う今日この頃。このままなら長くないね。

 

参考: 森高千里 「これっきりバイバイ」 (1989)

 

PS. こ、これは・・・ 好きだけど、一体どうして??

そして、こっちも強烈だwww

  •   0
  •   1

数日前に、またLinix Mint 20 Xfceの問題が発覚した。preloadを入れたら直ったと思って居た、パネルのアプリのメニュー(Whisker)が開くのがすごく遅くなる現象が再発したので、試しにxfwm4(ウインドウマネージャ)のcompositing(画面への描画の仕方)をoffにして使っていたら、いくつかのアプリのウインドウの周囲(枠)が赤くなるのだ。

最初は たまたまかと思ったが、そのままにしていても直らなかったし、もちろん原因は分からず、結構目立って嫌らしいから放置できないので、今日、起こる条件などを調べたら、どうやら古いGNOMEのアプリで起こるようだ。以下に例を示す。

  • dconf Editor 3.36.0
  • Archive manager 3.36.2
  • gThumb 3.8.0
  • Celluloid 0.19
  • Calculator 3.36.0
  • Disks 3.36.1
  • Fonts 3.34.0※

※Fontsには別の問題もある。頻繁にハングする上に、ひどい時はデスクトップ全体がハングする。クソだ。 → Font Manager (font-manager)なら大丈夫そうだ。ただ、先日気に入ったAvantGarde LTが出て来ないのが謎だ・・・ ← 忘れて居たが、2016年に自分で追加したようだ。どこから取って来て、なぜ入れたのだろうか??

不思議なのは、GNOMEでも大丈夫なものもあることだ。例えば、Rhythmbox 3.4.4とGNOME Screenshot 3.36.0は大丈夫だった。Rhythmboxのリリースは2019年なので、新しいものは大丈夫なのかと思う。

普通の設定では直らず、例によっていろいろ調べ・試行錯誤し、GTK3のCSS(gtk.css)に設定を追加したところ、全く完全ではないが まあ許せるようになった。※ ただ、中には上の角に赤が残るものもある。そこの処理が違うのだろうか。 → 更に調べて、赤が残らないようにできた。また、枠の明るさと太さを微調整して、普通のウインドウに近づけた。

※赤が消せたとはいえ、角ばっているところが昔のMotifみたいな感じで気に入らない。でも、頻繁に使わないから我慢する。

参考までに、gtk.css(~/.config/gtk-3.0/gtk.css)の修正(追加)内容を書く。

 decoration {  
    /* Necessary to avoid red border. */
    margin: 0;
    padding: 0;
 
    /* Outer border */    
    border-width: 6px;
    border-top-color: #e8e8e8; 
    border-left-color: #e0e0e0;
    border-right-color: #d0d0d0;
    border-bottom-color: #c8c8c8;
}

/* Remove red areas on top corners. */
headerbar:first-child,
headerbar:first-child:backdrop,
headerbar:last-child,
headerbar:last-child:backdrop {
    border-radius: 0px;
}

ウインドウの余白(margin, padding)をなくすと赤枠が消える。そして、ウインドウに枠(border-width)を追加してウインドウの周囲にサイズを調整する部分を付け、それらに今のテーマ(Mint-X-Sand)に近い色(border-*-color)を付けてそれらしく見せた。これが分かった切っ掛けは、検索して、decorationという要素でウインドウの装飾が設定できることが分かったことと、BreezeというテーマのCSS(/usr/share/themes/Breeze/gtk-3.0/gtk.css)を見て設定例が分かったことである。

なお、border-radiusを設定すると枠の角が丸くできるが、その外側に黒い部分が残るので止めた。

また、ウインドウ上部の角(枠の内側)が赤くなることがあるのを防ぐため、headerbar:*でその角の丸みをなくした。

原因を推測すると、問題の赤い枠はxfwm4がcompositingでウインドウの周囲に影を付ける部分で、compositingをoffにするとその部分が描画されなくなって、なぜか赤くなってしまうのではないか(実際、スクリーンショットを取るとウインドウの周囲が結構広く画像に入る)。ただ、大丈夫なものもあるのが不思議だ。Xfce4のバージョンが上がって互換性がなくなったのか。

更に調べたところでは、GTK3のテーマの未知の要素のデフォルトスタイルは、黄・マゼンタに太い赤枠(yellow-magenta with thick red border)とのことなので(→ 参照)、それなのだろう。だが、未知の要素とは何か、そのスタイルはどうやって指定するのか?? 余りにも謎が多く、いい加減にしろって感じだ。

それにしても、Mint 20に更新してから かなり多くの問題が起こっており、どれもMintが原因のような気がする。前の版(19)のように、"20.3"のような中間リリースでないと落ち着かないのだろうか。それにしても問題が多くて、さすがに嫌になってきた。※ リリースノートにそういうことが書いてあれば許せるが、なかったので頭に来る(ベースになっているUbuntuのを参照しろってことなのだろうか)。

それにしたって、そもそも標準・純正のアプリなのに、設定を変えただけでちゃんと動かないのはけしからんではないか!

※嫌いになった原因のもう一つに、Mintに寄付しようとしたらできなかったので、何か方法はないか問い合わせても返事がないことがある。PayPalの制限のせいだとは思うが、寄付したいと言っているのだから、代替策くらい考えてくれてもいいではないか。

そういう訳で、ちょっとディストリビューションも乗り換えたくなって来た・・・ ただ、他もベースは同じなので、やっぱり同じことなのかも知れない。MintというよりXfceが駄目なのかも知れない。だから、同じMintでもウインドウマネージャを変えるだけで良くなるかも知れない。

Xfce4で手軽に切り替えられるウインドウマネージャを試した(compositingがoffで、上記のgtk.cssの追加設定をしない場合)。

  • Metacity: Compton (compositingのモジュール)がありでもなしでも、すべてのアプリが赤枠になる。
  • xfwm4+Compton: 今まで(Compositor)と同様に赤枠が出る。 ← "compositing"はxfwm4のCompositorの設定のようで、これをonにするとComptonは起動しない。また、影の有無はComptonの設定で行うため、何も指定しないと赤枠になるようだ。
    • Comptonの設定で影を付けると、赤枠が出るアプリの影が大きくなって奇異。

結局、手軽にうまくは行かないようなので、いい方法が見付かるまでは上記の方法(xfwm4(compositingはoff)とgtk.cssの追加設定)でしのぐことにした。

 

(10/13 7:52 少し修正・加筆)

  •   1
  •   0

またしても徒労・・・ → 少し収穫があった。

近頃Mozilla製品の劣化(バグやデグレや自己満足の押し付け)が甚だしく、どうにもイライラするので、(何度目か分からないが)ThunderbirdとFirefoxからの脱却計画を開始した。のだが、Thunderbirdですら代替アプリがなく、(今のところは)どうしても無理なのを早々に再確認して頓挫してがっかりしている。(→ その後、Evolutionのメールが使えそうなことに気付いて試している。) MozillaはMSやAppleに劣らずひどい連中のような気がして来た。

今回の発端は、(「更新しろ」とうるさいので、仕方なく)Thunderbirdを最新版に更新したら劣化がひどかったことだ。いろいろあるが、3つの大きな問題がある。

  • メールアカウントのアイコンとアカウント名が青くなってしまって、テーマに合わなくてすごく目障りだ。はっきり言って、「出しゃばるな!」だ。
    • アイコンは常に青く、アカウント名は新着メールがあると青くなる。
      • アカウント内のフォルダのアイコンの色はプロパティで設定できるが、アカウントはできない。
    • 今まではデスクトップのテーマの色だったのが、最新版(78)から反映されなくなってしまった。
    • カスタムCSSで直せるかと思ってやってみたのだが、アイコンの色は変えられなかったし、フォルダ名の色は、(上記のように)動的にを変えているので直せないことが分かった。
    • 他の要素では、変にテーマに合わせたのか、ボタンの色が灰色になって無効になっていると誤解するなどの不便がある。
    • そういえば、FirefoxもHTMLの要素(例: チェックボックス、ラジオボタン)を勝手に青くしたを思い出した。 → ChromeやVivaldiも青いので、もしかしたら、更新したLinux Mint 20が悪さをしている?? → なんかそんな感じで、Linux MintのテーマがFirefoxやThunderbirdに反映されない。MintとMozillaのどちらが悪いのかは分からない。 (頭に来るのは確かだ) → 調べたら、両方悪そうなことが分かった。付録の「FirefoxとThunderbirdのアイコンなどの色がおかしい(青い)件について」に書く。
  • ウインドウ右端に出せるTodayペインの予定の今日の内容が表示されなくなることがある。
    • 一つ前(68)から起こった気がする。
    • 時刻が過ぎたと思っている? → その後、表示する日数を7日から6日に減らしたら消えないようになった感じなので、様子を見ている。
  • 同Todayペインの予定にマウスオーバーしても内容が出なくなってしまった。
    • 以前は出ていたのに、一つ前くらい(68)から出なくなってしまった。
    • 予定の下に出るToDoでは出るので、バグだと思われる。
    • 開発者ツールで、その部分のHTMLにマウスオーバー時の動作を追加すると出るのだが、スタイルでないのでカスタムCSSでは直せない。

それ以前に、バージョンアップのたびに使えるアドオンがどんどん減って行くのも勘弁して欲しい。以前は10個近く入れていたが、今では動くものは3つしかなくなってしまって我慢を強いられている。そもそも、アドオンを入れないとまともに使えないってものひどい話ではあるが・・・

 

それで、ブラウザの乗り換えは難しいし候補の状況もが分かっているので、まずはメール・スケジュール(カレンダー)アプリを探し、試してみた。のだが、結論を先に書くと、結局どれも使いものにならなかった。

ただ、唯一、Evolutionだけは惜しかった。メールだけならそこそこ使えるし、Thunderbirdを超えている部分もあったが、総合的・俯瞰的に見るとw実用には程遠い感じだった。以下、それぞれの必須条件、試したものと結果概要を書く。

メール

  • 必須条件
    • 無料。有料でもいいがサブスクリプションでない。
    • アドレス帳がCardDAV対応
    • IMAP対応
    • GUI
    • 開発またはサポート継続中
  • 試したものと結果概要
    • Evolution: メーラーとしては大きな問題はないが、PIMとしては今一つ使いにくい。 (スケジュールの項を参照のこと)
      • 以下のいい点があった。Thunderbirdではできないことができる場合が結構ある。
        • 色遣いがまとも(デスクトップのテーマに従っている)なことが多い。
        • メールアカウントのドラッグによる並べ替えなど、(Thunderbirdではできないが、)当たり前のことができる。
        • HTMLとテキストメールの切り替えが容易 (これもThunderbirdでは容易でない)
        • テキストメールの長い行の折返しがまとも? (未確認 → 送信はちゃんとしているが、表示はウインドウの幅による) (Thunderbirdでは予測不可)
        • メールにメモが付けられる。 (Thunderbirdではできない)

スケジュール

  • 必須条件
    • 無料。有料でもいいがサブスクリプションでない。
    • 予定などの開始時刻に通知が出る。
    • TODO対応
    • CalDAV対応
    • GUI
    • 開発またはサポート継続中
  • 試したものと結果概要
    • MineTime: 情報収集するのが気味が悪い。
      • 試してみようとしたが、MineTimeのアカウントを作らないと先に進めないので止めた。
    • Focal: 未完成
      • 週表示しかない。
      • クリックするだけで落ちる。
      • 完成したら いいかも知れない。
    • Rainlendar2: 出来がひどい。
      • 使いにくい
        • 定期的な予定の一回だけの編集ができない。
          • 削除すると、問答無用で全部消える。
        • 使っているうちにサーバのカレンダー(定期的な予定)がめちゃくちゃになった。
        • 添付のスキンがどれも見にくく、使いにくい。 (上記製品ページを見れば、推して知れる)
          • かなり苦労して見やすく・使いやすくしたが、とても無理がある。
      • 指定したアラームの音が出ないなど、バグが多い。
    • Evolution: 今一つ(かなり)実用的でない。未完成??
      • デフォルトの通知はダイアログだけで音を出さない。出したい時は、予定を作るたびに音のファイルを指定する必要がある。
        • 音を出すようにすると通知ダイアログが出ない。出すには、予定を作るたびにダイアログも出すように指定する必要がある。
      • 予定の編集後のサーバへの保存に失敗することがある。繰り返すものが駄目な感じ。
        • 失敗した予定を削除できない。 → Lightningで削除した。
      • メールモードでウインドウの右端に出る「To Doリスト」が現在時刻でスクロールしない。
        • しかも、リストの時刻が小さくて読めない。 → 今どこかや今後の予定が分からない。
      • 色遣いがイマイチな場合・箇所がある。
      • 以下のいい点もあった。
        • Lightningのようなスマフォの重複通知がない。
        • 色遣いがまともな(デスクトップのテーマに従っている)ことが多い。
        • 予定の通知が出ている時に変更しても、Lightningと違って「競合」とか文句を言われない。
    • KOrganizer: まともに動かない。
      • 余りにも多くの依存パッケージがある(70個以上)。
      • (Ubuntuの正規パッケージを)インストールしても起動すらしない。
        • mysqlサーバが起動しない。
      • 最新版は独自のインストールシステムのため、インストールできない。

 

今回のわずかな成果があるとすれば、一時的にEvolutionに乗り換えて試していた時に、ThunderbirdのTodayペインと違って今日の日付が出なくて不便なので、Xfce4のパネル(タスクバー相当)の最上部に出すようにし、それに合わせて時刻のフォントもかっこ良くしたことだ。AvantGarde LT Mediumというのにした(それまでは、Liberation Sansだった)。最終的にはThunderbirdに戻したので日付表示は消したが、時刻はかっこいいままで残している。

Xfce4のパネルに日付も表示させ、
ついでにかっこいいフォントにした。

 

結局、こういう領域で使えるアプリはMozilla製しかなく、それにしたって、どうしてかユーザーの使う気や外部開発者のやる気を削ぐことばかりやっているので、残念ながらLinuxデスクトップの将来は暗そうだ・・・ とても困るし認めたくないのだが、本当のことなので仕方ない。誰かさんのように「なかったこと」にはできないし、使いにくいものを根性で使い続けたくもない。消滅するまでに対策を考える必要がある。

 

(10/11 11:34) いろいろ書いた後で思ったが、鬱陶しいThunderbirdのメールの代わりにEvolutionのメールだけ使うのは悪くなさそうだ。スケジュールと違って特に悪いことがなく、いいことが多かった。「どうせなからスケジュールも一緒に」と欲張らなければいいのだ。ただ、メールとスケジュールのアプリが別になるので、画面配置的になかなか難しい。でも、ちょっと考えよう。

→ とりあえず、Evolution(メール)をThunderbird(スケジュールでTodayペインだけ見せる)に重ねて、一見一つのアプリのようにしてみた。※ 色がうるさいThunderbirdだけの時よりは落ち着いた感じで、悪くない。ただ、実際に使うとウインドウの上下関係が煩雑になるかも知れない。

※僕としてはThunderbirdのTodayペインだけ(縦に細長く)表示させたいのだが、当然ながら、Thunderbirdに そういう柔軟なことは全くできないw 複数のウインドウを、WindowsのMDIアプリのようにまとめて扱えるようにするものがあると便利そうだ。

 

付録: FirefoxとThunderbirdのアイコンなどの色がおかしい(青い)件について

問題: FirefoxとThunderbirdののアプリ内の要素(例: HTMLのラジオボタンやチェックボックス、メールアカウントの小さいアイコン、TODOの優先度の下矢印)の色が青になってしまう。

原因: なぜか、それらのアプリにデスクトップ(Xfce → GTK)のテーマが反映されない。どうも、バージョンや配布元によってテーマを反映するものとしないものがあるようだ。以下に調べた結果を示す。

Firefox

  • Linux Mint 20の版(81.0+linuxmint1+ulyana): NG(ラジオボタンなどが青)
  • Mozillaからダウンロードした最新版(81.0.1): OK(ラジオボタン、チェックボックスがテーマの色)
  • 同Mint 20と同じ版(81.0): OK(81.0.1と同じ)

Thunderbird

  • Linux Mint 20の版(= Ubuntu 20の版: 1:68.10.0+build1-0ubuntu0.20.04.1): OK(アカウントのアイコンがテーマの画像、下矢印がテーマの色)
  • Mozillaからダウンロードした最新版(78.3.2, 日本語版): NG(アカウントのアイコンなどが青)
  • 同最新の英語版(78.3.2): NG
  • 同最新のベータ版(82.0b2, 日本語版): NG

上の結果より、FirefoxはMint版がおかしい(テーマを無視する)、Thunderbirdは最新の系列(81)がおかしいと推測される。どちらも変更するときにしくじったのだろうか。Mint版は勝手に検索エンジンをDuck Duck Goに変えている(初期状態ではGoogleは削除されていて出ない)うえにバグってテーマを反映できなくしてしまったとは、全くどうしようもない・・・

その後更に調べたら、最新のThunderbirdのアイコンが青いのは最新版の売り(「ベクターにして綺麗にした」だとさ)のようで、売りだからテーマなんて無視して切り替えすらできなくなっている。押し付けがましいにも程がある。結局、僕のシステムの問題ではないことが分かった。やっぱり嘆いている人が居た。

Firefoxはダウンロードしたものを使えばいいが、Thunderbirdはオリジナルが駄目(他の問題もあるので質が低いようだ)なので対処しようがないうえに、古い版に戻すのは容易でない。待って直ればいいが、報告しないと直らないのかも知れない。難儀だ。。。

あと、ダウンロードしたFirefoxにしても、Favorites(お気に入り)の★が青いのが気になる。これもテーマの適用が今一つ完全ではないのか。

それにしても、Mozillaとは全く関係ないはずのVivaldiやChromeでも同じ問題(ラジオボタンなどが青)が起こるということは、Mint 20やXfceにも何か問題があるのか世の中の流れなのか分からんが、どっちも好かん!!!

 

おまけ

本文には全く関係ないけど、小さいネタで個別に出すのが面倒なのをまとめて。

  •   0
  •   0

Linux Mintを更新する時(更新後だったか)に、外部パッケージ(いわゆるPPA)はなるべく削除した方がいいということで、大掃除も兼ねてざっくりと消した。(数えてはいないが、)100個以上(一覧の画面キャプチャで3枚)あったのが20個以下(同1枚)にまで減った。最新のOSだと、PPAでなく純正(標準? 正規?)のパッケージになっているものが多いので、PPAを消しても純正をインストールすれば問題ないのだ。調子に乗って、その前後に目に留まった、使ってなさそうな純正のパッケージまで消した。

これ、いつどういう考えで消したのか はっきり分からない(ノリで消した??)ところが怖いw

消す時に文句は言われなかったし、その後ちゃんと動いているように見えたので、消してまずいものはないと思って居たのだが、落とし穴があった。

アプリ起動時にウインドウシステム(Xfceの「パネル」)のメニューを開く時や、ファイルマネージャでファイル一覧を見る時やターミナルでの文字入力の時にワンテンポ遅れる(昔のPCのような感じ)ことがある気がした。最初は気のせいだと思って居たのだが、しばらくしても直らないので、新しいOSは(僕の古いCPUには)かなり重いのかと不安になったのだが、直感で、上に書いた 調子に乗って消した純正のソフトの中に重要なものがあるように思った。

すぐに浮かんだのは、"preload"とかいうソフトで、その名のとおり、良く使うデータを前もって読み込むものだ。消す時は、別の"ureadahead"(OS起動時の先読み)と混同したのと、「今は こういう昔ながらのソフトなんて必要ないよな」と勝手に思い込んでしまった。

念のために再度入れても効果がなかったので、「そりゃそうだ」と思い掛けたのだが、再起動したら嘘のように効果が出た。メニューは以前のようにスパッと開き、その他も遅れることがなくなった。

全く迂闊だった。

重要なものを消したので、そのあとで起動しなくなるおそれもあったのだ。。。

ちなみに、ureadaheadは本当に不要なようで、これも入れ直そうとしたら、不要だとか言われて入らなかった。

※Linux Mintのフォーラムを読むと、不要なようだけど未だに「必要」と出て、ユーザー(僕もw)を混乱させているようだ。まあ、新規インストール時には入らないと書いてあるので、本当に要らないのだと思う・・・

他にもそういうのがありそうで怖いので一応調べたが、今のところは大丈夫そうだ。でも、あとで問題が出て、よくよく調べたら 消したソフトのせいだったってことがあるに違いない。が、まあ、今のところは問題ないし、調べても分からなかったから良しとする。でも、もう一度ちゃんと確認したい。

その後再確認したら、6個くらい重要そうなものがあったので入れた。チェックは以下のように、インストールされていない優先度(Priority)の高いパッケージで、i386用でないものを検索した。コマンド中の優先度"required"をimportantやstandardに変えてもチェックした。requiredのものは大丈夫(インストール不要)だったが、それ以外のものがあった。

aptitude search '!~i?priority(required)' | grep -v :i386

なくても動くところが謎だ。

あと、必須ではないが、Wine(運が良ければw、LinuxでWindowsのプログラムを動かせるソフト)も削除していたのだが、たまに使うアプリ(Standwave2: 定在波シミュレーションプログラム)が動かなくなってしまった。それは32ビットアプリのため、動かすには大量の32ビットライブラリが要るが、余計なものは入れたくないので使う時に入れることにした。 (10/4 10:37記)

 

以下、ついでに二つ。

OSの更新後にKeePass2(パスワードマネージャ)の動きが少しおかしくなった(FirefoxのBasic認証のダイアログにホットキーで記入できない)のは、KeePass2でなくFirefoxがおかしくなったようだ。Vivaldiでは問題なかったからだ(正確には、KeePass2でなく下記のKeePassXCで試した)。

KeePass2の最新版では問題はどうかと探したら、もっといいソフト(KeePassXC)の紹介が見付かり、試してみたら なかなか良かったので早速乗り換えた。ただ、残念ながら上記のBasic認証の問題は起こる。それでも、ウインドウが見やすくなって日本語が文字化けしないだけでも充分いい。※

※KeePass2はWindows用のソフトをMonoとかいうもので無理にLinuxで動かしているようなので、いろいろな不都合があった。

 

最後に、今朝ちょっと思い付いて、PCの置き方を変えた。今までは、普通に机の右に並べて正面を僕に向けて置いていたのを90°回転させてスピーカーの前に置き、側面が僕に向くようにしてみた。最初は机の奥のスピーカーの間のデッドスペースに置きたかったのだが、中の掃除が不便になるので止め、この置き方を思い付いた。特に必要性やメリットはなく、見た目がすっきりした程度であるw (あと、左右のスピーカー前の状態が近くなるので、わずかに音が良くなりそうな気がした。)

近頃は全然光ディスクを使わないので、こういう置き方でも問題ないことに気付いた。不便なのは、せいぜいUSBメモリを使う時だけであるが、それもほとんど使わない。

その他の不便は、PCの上に載せたティシューが遠くなることだ。これはどうにかして机の横に(浮かせて)置きたい。きっと そういううまい小物(例えば、ティシューの箱を机の横に貼るようなもの)がありそうだが、もちろん買わないw → 試しに長い輪ゴムで机の脚にくくり付けてみた。ずり下がるので、下部をPCの前面スロットのレールを加工したもので押さえてみた。

その結果PCの上にティシューがなくなったので、ヘッドフォンが載せられるようになった。 (10/4 10:22)

ただ、それからなぜか足がちょっと暑い気がすると思ったら、PCのファン(足に向いている)から内部の熱風が吹き出しているせいのような気がして来た。これからの冬には丁度いい(実際、近頃は足が寒かった)が、夏はどうだか来年の楽しみではあるw

  •   0
  •   0

全く異なる2つのソフト(Tcl/Tk, digiKam7)に関する話だが、どちらも小さいこと(でも、すごく苦労したものもある)なので一つの稿に書く。いずれも、本来はそれぞれのソフトのフォーラムなどに書くべきだが、フォーラムがなかったり(digiKamにはバグ報告の手段はあるが、KDEのBTSなので なんか気軽に書けない雰囲気だった)、ソフトが余りにも古くて(Tcl/Tk)、フォーラムがあるか調べるのも無駄そうだし(→ 現代的なフォーラムはなかった。大昔の「ニュース」(アーカイブ?)だけだった)、連絡しても修正されそうもない気がするので、とりあえずここに書くことにした。

こうして書けば、少なくとも日本(語)の人には検索されるだろうし、今は海外でもキーワードが翻訳されて検索にヒットするようなので、全くの無駄ではないと思う(そもそも、本文に英語のキーワードも書いてあるから、やる気のある人は そこだけ見ればパッと分かりそうだw)。それから、題やカテゴリではLinuxとしているが、実際にはどちらも他のOSでも動く。が、Linux以外で問題が起こるかは不明だ。

(10/4 15:53 その後もう一個対処したので、3として追記する。)

 

1. Tk(wish)のtextウィジェットの高さがおかしくなる。

問題の詳細

一つのtextウィジェット(ワードラップ)にサイズの異なる(タグで指定する)数種類の文字列を入れて表示すると、Tkの認識する高さ(表示行数)と実際が食い違って、高さが低く表示され、文字列の終わりの方が表示されない場合がある。一行が長くて自動改行(wrap)される場合に起こりやすいが、一つのtextウィジェット中に複数のサイズの文字列が存在することが大きいようだ。

以下のような3つの部分からなる内容(各部分を指示しやすくするために、それぞれの頭に番号を付けた)のtextウィジェットを約250pxの幅、ワードラップで表示すると、最後の3の部分(アルバム名)が途中(ラップで改行する手前)で切れる

  1. 北ウイング - 30th anniversary mix
  2. 中森明菜
  3. ベスト・コレクション 〜ラブ・ソングス&ポップ・ソングス〜 (2012)

表示例(左側がおかしい)

原因(推定)

一つのtextウィジェット内で複数のフォントサイズを使い、ワードラップをさせている場合に、Tk内部の表示行数(displaylines)の計算・処理がおかしくなるようだ。

上の例の場合、textウィジェットのdisplaylinesは6(この値は表示されている行数の5より多いので、ある程度はサイズの違う文字列への対応がされているが、完全でないように思える)だが、それを高さ(configure -height)に設定すると不足する(この場合は7でないと完全には表示されない)。

対処

textウィジェットのフォントサイズの異なる部分ごとに高さ(displaylines)を求め、それらの合計を高さに設定する。

上の例では、1(曲名)、2(アーティスト名)、3(アルバム名)の各部分で高さ(部分の先頭から最後の文字までの表示行数: 例: .textWidget count -displaylines 1.0 end)を求めたら、それらの合計は7行(上: 3, 1, 3)となり、正しい高さで表示された。ただ、2の部分は改行を除外しないと1行高くなってしまうので、謎はある。

また、正しい高さで表示されれいる場合でも、全体の高さ(表示行数)を求めると6行のままなので、Tk内部の行数の処理がおかしいようだ。

なお、表示が完全か(目視以外で調べる)は、textウィジェットの外側(親)の高さ(なぜか正しい)とtextウィジェットの高さ(どちらもpx単位)の比較と、textウィジェットのyviewの内容から判定している。

この時、textウィジェットのsyncコマンドでは表示(内部的な処理?)が完全に終わらないようで、取得できる値がおかしいことがあるので、Tcl(Tkでない)のupdateコマンドを実行する必要がある(最初はこれが分からずに苦労した)。

上の例では、textウィジェットはgridウィジェットで配置しているので、外側(親)の高さはgridのtextウィジェットを配置している行(row)のbboxから求められる。また、textウィジェットの高さはyviewから求められる。また、yviewが空だったり、yviewの最初と2番目の要素が0, 1.0でない場合(例: 0.0, 0.8)には表示が完全でない(欠けている)。ただ、2番目の要素(最後に表示されている文字列の割合)はいつも1.0になる訳ではなく、1.0に近い値(例: 0.98)でも「完全」とみなす(許容する)必要がある(あるいは、最下部に広目の空白が入ること許容することで1.0(全く欠けがない)を守れるが、見た目が良くない)。

結果

以下のように、Minispの表示が正常になった。30曲くらい再生して表示を確認しているが、今のところ問題が起こっていない。備考に書いた高さの調整処理も行われていない(最初に設定した高さのままで完全に表示されている)。

備考

簡単に書いたが、何が原因で表示がおかしくなるのか分からず、調査にも対処にもとても苦労し、時間が掛かった。

なお、上記のようにまだ謎があるため、textウィジェットの高さの計算がうまく行かなかった場合に備えて、表示(高さ)を調整する処理も実装した(実はこれを先に作った)。基本的は処理としては、textウィジェットが完全に表示されているかを調べ(上記の方法)、そうでなかったら、完全になるまで1行ずつ高さ(行数)を増やすものである。また、高さが高過ぎた場合には減らす必要があるので、その処理も実装したが、今は使っていない。

この問題は、PCのOSをLinux Mint 20に更新した時に自作のSpotifyのミニプレーヤー(Minisp)で再発した問題である。以前は原因が分かっていなかったので、対処が不充分・不的確だった。

 

2. digiKam7でGoogle mapsの地図が表示されない。

問題の詳細

位置情報のある画像の地図をGoogle mapsで表示しようとすると、地図ペインが空白のまま。また、小さいおかしなウインドウが出て消えない。

なお、地図がMarble Virtual Globeの場合は問題ない。

原因(推定)

digiKam7がルート証明書(libnssckbi.so)がロードできない。digiKam7の想定するディレクトリ構造と実際の位置が異なるためのようだ。

Ubuntu 20系の場合、libnssckbi.soは/usr/lib/x86_64-linux-gnu/nssにあるが、digiKam7は/usr/lib/x86_64-linux-gnuを想定しているようだ。

digiKam7のログに以下のように出るので分かる。

[12345:23456:1234/23456.34567:ERROR:nss_util.cc(748)] After loading Root Certs, loaded==false: libnssckbi.so: cannot open shared object file: No such file or directory
[12345:23456:1234/23456.34567:ERROR:cert_verify_proc_nss.cc(969)] CERT_PKIXVerifyCert for maps.google.com failed err=-8179

対処

ライブラリのパスにlibnssckbi.soのあるディレクトリ(Ubuntu 20系でx86の場合、/usr/lib/x86_64-linux-gnu/nss)を、以下のいずれかで追加する。

  • digiKam7を起動するシェルなどの環境変数LD_LIBRARY_PATHに追加する。
    • 例: export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/nss:$LD_LIBRARY_PATH
  • AppImage中の起動スクリプトAppRun内のLD_LIBRARY_PATHに追加する。
    • 例: export LD_LIBRARY_PATH=$DIR/usr/lib/:/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/nss:$LD_LIBRARY_PATH

念のため、上では/usr/lib/x86_64-linux-gnuも追加した。

AppRunを見るには、AppImageのファイルに--appimage-mountオプションを指定して起動する。 → マウントポイント(/tmp/.mount_digika*)直下にAppImageがある。

修正したAppRunでdigiKamを起動する方法は各自で考えること(一番簡単なのは、AppImageを展開して修正することである)。

なお、消えない小さいウインドウは、地図表示がエラーの時に出るようなので、一旦、地図を表示しないようにしてdigiKam7を再起動すれば出なくなるし、地図が正常に出ていれば出ない。

結果

digiKam7の地図のペインにGoogle mapsの地図が表示されるようになった。

備考

digiKam5の時も同様な問題があり、その時はGoogle mapsのAPIキーが期限切れで出なくなっていたので、今回もそれかと思ったが違っていた。digiKam7は今年の7月に出て、落ち着いてから移行しようと思って居て、もういいかと思ったのだが、まだ早過ぎたようだ。

こういう問題が起こるのは、digiKam7がOSのパッケージでなく、AppImageという(良く分からないけど、)手抜き的なパッケージで配布されているからだ。もちろん、数多くのディストリビューションごとにパッケージなんて作ってられないのは分かるが、始末が良くない話だ。実際、digiKamはAppImageのために日本語入力できないという問題もある(これも、以前自力で解決した)。

その後、PS2の問題(マウスカーソルがおかしい)を調べているうちに、どうもdigiKam 7はまだ駄目な気がして来た。digiKam 7にして良くなったことは特にない(むしろ、悪いことが多い)ので、digiKam 6に戻した。もう少ししたら試してみたい。 (10/2 13:31)

 

3. Spotifyの音量がなぜか下がることがある。

問題の詳細

Xfce4のパネルやJACKを再起動すると、Spotifyの音量が下がる(大体7dB以上下がるので、半分以下になる)。

原因(推定)

パネルのPulseAudioプラグイン(実体はlibpulseaudio-plugin.so)が再起動する時に悪さをするようだ。それを無効にしたら、パネルやJACKを再起動してもSpotifyの音量が下がらなくなったので。

ただ、なぜJACKを再起動するとPulseAudioプラグインが再起動するのかは不明(正確には、この時はPulseAudioプラグインが再起動したかは確認しなかったので、別の経路なのかも知れない)。

対処

PulseAudioプラグインを使うのを止め、同等の機能のアプリ(pavucontrol)を使うことにした。僕はJACKを使っているからPulseAudioの調整はほとんどしないので、アプリで充分だ。

結果

パネルやJACK(、もちろんpavucontrolも)を再起動してもSpotifyの音量が下がらなくなった。

備考

どうも、Mint 20のXfce4にはいろいろバグが多い感じだ。digiKamの外に こっちも早まった感じ・・・

余計かつまともに動かないものは入れておきたくないので、PulseAudioプラグインなど(下記)を削除(アンインストール)した(PulseAudioプラグイン以外は動くが余計)。

xfce4-pulseaudio-plugin xfce4-xapp-status-plugin xfce4-eyes-plugin xfce4-verve-plugin

(10/4 15:53 追記)

 

PS. 書いたあとで気付いたが、BTSとかTkとか、偶然だけど音楽の意味もあって なかなかおもしろいw

PS2. digiKam7にはもう一つ気に入らないことがある。マウスをサムネイルに載せた時のカーソルが酷いのだ。6では普通だったのに、「1980年代ですか?」って感じだ。いつも思うが、KDEの(アプリ以外も)センス(デザイン以外も)は全然好みでない。でも、他にいいアプリがないから使っている。

ちなみに、このカーソルのファイルがどこにあるのか分からず、なかなか直せない。 (10/2 4:58)

気に入らないdigiKam7のマウスカーソル

(10/2 11:19) いろいろ調べたり試したりしてみたのだが、直接的には、digiKam7が使うQt5のアイコン(Qt::PointingHandCursor: 指で指す形状)が見つからないようで、その代替としてX11のcursorフォントの文字hand1(0x3a)が使われているようだ(だから、80年代は当たっていたw)。

どうも、digiKam7のAppImageとOS(Linux Mint 20)の折り合い・相性が悪い感じだ。ただ、digiKam6では同じ環境で問題なくそのカーソル(実は、このカーソルもそんなにいいとは思わないが)が出るので、(本文に書いた)Google mapが出ない問題と同様にdigiKam7側に何か問題があるように思う。それが何かはまだ分からない。

いずれにしても、ちょっと早まってしまったようだ。。。

  •   0
  •   0

先日更新したLinux Mint 20のデスクトップ環境Xfce4の見栄え(特に、タスクバーやドックに相当する「パネル」)が気に入らないので、いろいろ調整した。気に入らなかった点と対処した内容を書く。

  • パネル
    • PulseAudio(サウンドシステム): アイコンが大き過ぎる(スピーカー)。
      • アイコンの周囲にマージンを追加して小さく見えるものを作った(スピーカー)。 ← その後、CSSの調整で不要になった(下を参照)。
        • アイコンがパネルの幅一杯に拡大されてしまうのが原因。しかも、スケーリング(SVG)なのでいくらでも拡大されてしまう。
        • CSSで調整できそうだが、この時はできなかった。 → その後できた。GTKのCSS(~/.config/gtk-3.0/gtk.css, 下に例)でアイコンを小さく表示し、上下の余白を減らし、通知エリア(上の部分)と中央を合わせた。 (9/27 7:28)
#pulseaudio-button image {
  margin: -14px 2px -6px 0;
  -gtk-icon-transform: scale(0.5, 0.5);
}
    • NWマネージャ: アイコンが大き過ぎる(スピーカーの下)。
      • 余計なプラグイン(XApp Status Plugin: システムリポートに推奨された)を使うのを止めたら、トレイに入り(インジケータープラグインに入った)、小さくなった(上から2番目)。
    • センサー(温度): バーが細過ぎて見にくい("Temp"の下)。
      • CSS(~/.config/xfce4/panel/xfce4-sensors-plugin.css, 下に例)で太くした("Temp"の下)。
levelbar block {
  min-height : 4px;
  min-width : 10px;
  border: 0px none;
  margin: -2px;
  padding: 0px;
}
    • Fcitx(多言語入力システム): トレイアイコンが細い線だけで見にくい(上から2番目)。
      • 設定で、文字を斜体にするアイコン(a: 非アクティブ時)と太字にするアイコン(a: アクティブ時)に換えた(一番上)。
    • Mozc(かな漢字変換): トレイアイコンが小さく見え、また、ぼやけた感じで汚い(左, 一番上)。
      • 大きいアイコンを縮小して作り直し、右下に突き出た部分(「あ」と色しか見ないので、あってもなくても関係ないw)を削った(右, 一番上)。 (まだ不充分)
      • → その後、どうも微妙なボケが嫌なので、自分で作ってみたが、表示する時に縮小されてボケてしまうようだ(文字の線の太さの加減も微妙だ)。まあ、右の余白がないから少しは大きくなったはずだ。あと、色をデスクトップのテーマに合わせた。 (9/27 16:21)
    • jack_mixer(オーディオのミキサー): トレイアイコンが真っ黒。しかも、小さいアイコンになったら何だか分かりにくい(下から2番目)。
      • 大きいアイコン(まあまあ分かる)を明るくし、縮小したものを作った(下から3番目)。
    • タイマー: タイトルがない。上下が空き過ぎ("Timer"の下)。
      • 時計のプラグインでタイトル("Timer")を出すようにした。日時のカスタムフォーマットを使い、タイトルは下側の時刻の部分に入れ、上側の日付の部分にタブ(空白の代わり)を入れて、上の隙間を作った("Timer")。
      • GTKのCSS(~/.config/gtk-3.0/gtk.css, 下に例。)で上のマージンを減らした("Timer"の下)。 (下部はできていない。)
/* 注: "-10"はプラグインを追加した順番で変わる。 */
#xfce4-timer-plugin-10 box {
  margin: -18px 0 0 0;
}
    • [以前やったもの] デジタル時計: 縦表示(デスクバー)のパネルを細くすると、文字を小さくせざるを得なくなって見にくい。
      • カスタムフォーマットで、上に表示される日付の部分に時と":"を、下に表示される時刻の部分に分を出すようにした(一番上)。
    • [以前やったもの] ランチャーのアイコン(ネズミ)がダサい。
  • 画面キャプチャ: Xfce4の画像保存先に、全く使わないImgurが増えてしまって消せないのが鬱陶しい(左の保存先一覧の一番下)。
    • GNOMEの(gnome-screenshot)に換えた。 → シャッター音がうるさいが、設定はないので消せない。 → 音のファイル(/usr/share/sounds/freedesktop/stereo/{screen-capture,camera-shutter}.oga)を消した。
      • GNOMEの設定で消すこともできるようだが、Xfceのせいかできなかった。
    • → gnome-screenshotを使っていて気付いたのだが、キャプチャ時にマウスカーソルが変わるなど、キャプチャとしての挙動が今一つ良くないので、ひとまずオリジナル(xfce4-screenshooter)に戻した。あとで、zenityなどで(Imgurの入っていない)自分のUIを作りたい。 (10/2 4:15)

いずれもとても些細なことなわりに、設定などで手軽に調整できるものではないし、調整方法もすぐには分からないとか普通はできないものがほとんどだったため、結構手間が掛かったが、ようやく「許せる」感じになった。

書いたあとで、一部のアイコンが大き過ぎる問題の原因に気付いた。実際には大き過ぎないのである。

というのは、アプリ以外の通知や設定関係のアイコン(例: Fcitx)は「通知エリア」というプラグインがまとめて表示しているために少し小さくなる(その意識で、上では「トレイアイコン」と書いた)のだが、通知エリアが対応していないもの(例: PulseAudio)は、通常のアプリの扱いで大きくなってしまうのだ。

これはパネルや通知エリアのしょぼさによるとしか言えない。例えば、通知エリアが扱うアプリを設定できるとか、アプリごとに見え方を調整できればいいのにと思う。

Xfceを作っている人たちは、どうも、雑で美意識がなく、押し付けがましく狭量な感じだ。というのは、タイマーなんて、タイトルがなく(付けられず)上下のマージンが広過ぎるまま何年間も放置しているが、そんなのありえない。試した時におかしいと思わないのだろうか。それから、画面キャプチャアプリにはなぜかImgurだけを追加し(追加するなら他のサービスもすべきだし、on/offできるべきだ)、多くの人が文句を言って、パッチを提供した人すらいるのに無視している。他にもそういう苦情を放置していることがあったと思う。(まあ、そういう態度を取る開発者・団体は多いが・・・)

結局、Xfceは敢えなくても「カスである!」としか言えないw 以前も苦労して、その時はもっといいもの(パッと綺麗に出るものw)がないか探したのだが、いくら見た目が綺麗でも使い勝手も合わせると許せるものがなかった。それで今もXfceのパネルを使っている。しょうもないものを無理して使うためにいろいろな細工をするから、OS更新で苦労する訳で・・・ でも、こういうことができないOSなんて使いたくない。言ってみれば、「靴を足に合わせるか、足を靴に合わせるか」だ。いくら前者がしょうもないとしても、後者はその百倍クソだ。もちろん一番いいのは「足に合った靴」だが、滅多にないんだよなあ・・・

 

以下、パネルの改良前から現在までの変遷と、(余計なものが入れられた)画面キャプチャの保存画面。

 

(10/2 4:15 キャプチャプログラムをオリジナルに戻した件を追記)

  •   1
  •   0

今までもそうだったが、Linuix Mint 20への更新作業中に、Linuxの日本語(主にコマンドラインでのメッセージ)にどうにもイライラするので、システム全体を英語に切り替えた。まあ、そういうメニューで一発で切り替えられるので手間要らずだし、駄目だったらちゃんと戻せる(はず)。もちろん、昔じゃないので、(プログラムのメッセージやメニューは英語になるけど、)日本語はこうやって問題なく読み書きできる。

日本語の設定で一番イラついたのは、コマンドの出力が日本語になっていて、出力を処理するプログラムが誤動作するし、訳が今一つなことが多くて分かりにくい(日本語を信じると馬鹿を見るので、いつも日本語から元になった英語を想像している)し見にくい。例えば、dateコマンドは

2020年 9月 24日 木曜日 21:03:06 JST

と出て、いつも「何だかなあ」って気分になる。やっぱり

Thu Sep 24 21:15:58 JST 2020

だろう。

と思っていたのだが、これを書く時にコピペしようと試したら、

Thu 24 Sep 2020 09:03:39 PM JST

と12時間制で出て、全然想定していなかったのでびっくりした(下の誤動作の説明を途中まで書いて、ようやく気付いたwww)。調べたら、なぜか、時刻の書式がUS英語(LC_TIME=en_US.UTF-8)だとそうなるようで、イギリス英語(en_GB.UTF-8)では24時間制になった。しかも、ブログサーバはen_USでも24時間制なので なかなか謎だが、とりあえずPOSIXに設定した(Cでもいいようだ)。

日本語よりずっとキリッとしている(気がするw)。まあ、僕がUNIXを使い始めた頃は英語しかなくて、それに慣れているせいもあるが。

違和感(や、見た瞬間にイラっと来る)の原因を考えてみると、「2020年 9月 24日 木曜日 21:03:06 JST」は全く日本語じゃないからだと思う。取って付けた感がすごいのだ。自然なのは「2020/9/24 (木) 21:03:06」だろうが、それだと英語の設定と かけ離れるので、せいぜい「2020年 9月 24日 (木) 21:03:06 日本標準時」か。(もちろん、dateの書式はいくらでも変更できる。ここでは標準設定を自然にするにはどうすべきかの話をしている。)

いずれにしても、英語とは順序とかが違って そのままではプログラムでは処理できないのだから、最初の案にタイムゾーンを追加して「2020/9/24 (木) 21:03:06 (日本)」辺りが良さそうだ。

それから、上述の「誤動作」について説明すると、上の例だと、普通(英語)のdateコマンドでは、日付(年月日)は2, 3, 6番目の単語だが(今となっては「その並びはどうよ?」って気がするが・・・)、日本語では1-3番目と食い違う。時刻も4番目と5番目で食い違う。

他には、ログを検索する時に、日本語だといちいち日本語入力をonにして入れてまたoffにしなくちゃならないし、英語のメッセージも混在している場合には、同じ意味のメッセージを探すにも検索すべきパターン・回数が2倍になってしまう。しかも日本語の訳がアレなので、実物を見ないと想像できないなど、結構効率が悪くなる。

それ以上に嫌なのは、やたらに日本語が出ると思考の妨げになって効率が落ちることだ。全部日本語ならまだしも、ほとんどが英語なのに取ってつけたように日本語が混じるのが良くない気がする。

あと、コマンドのエラーメッセージの訳がクソなこともあった。具体的には、aptitudeコマンドの使い方を間違えると、最後に、英語だと

This aptitude does not have Super Cow Powers.

と出て、この意味合いとか雰囲気は分からないが、日本語だと、

この aptitude にはスーパー牛さんパワーなどはありません。

と出て、見るとすごくイライラする。まあ、原文の感じを正確に訳しているのかも知れないが、「スーパー牛さんパワー」なんて全くのクソだ。

どうも、「スーパー牛さん」てのが大きく違う気がする。それだとなんか、コメディタッチ、あるいは ゆるキャラ的になってしまうが、英語はもう少し冷たい気がする。もちろん冗談なのには違いないのだが、もう少しクールな(UNIX的な)笑いなのではないかと想像する。

少し調べたら、元々apt-getコマンドが

This APT has Super Cow Powers.

と出すので、aptitudeは

This aptitude does not have Super Cow Powers.

と、「aptitudeにはそれはないよ(期待しないでね)www」という感じのようだ。しかも、apt-getも"This APT"なので、もっと前からの繋がりを感じさせる。であれば、やっぱり「スーパー牛さん」は違う気がする。どうでもいいことだが、どうでも良くないのだw

英語の設定にして今のところ大きな問題はないが(実は、上に書いたdateの書式が結構大きかったw)、KeePass2というプログラムのファイル選択ダイアログが、日本語のファイル名で文字化けする。まあ、これでいろいろファイルを開く訳ではないから大丈夫だろう。

 

その後、ロケール(上の英語・日本語他の切り替えシステム)の環境変数を調べたら、時刻以外に紙のサイズ(LC_PAPER)や電話番号(LC_TELEPHONE)、測定単位(LC_MEASUREMENT)に関するものなどがあり、全部英語(US式)にするのもまずい気もした。まあ、各プログラムがどこまでちゃんとサポートしているか はなはだ疑問ではあるが、例えば、PDFで保存する時に、紙のサイズにLetterやインチが最初に来るようになったら今一つ不便かと思い、そこらは日本式にしてみている。難しいのは名前(LC_NAME)で、日本にすると、きっと、(ローマ字で)姓, 名の順になりそうだ。でも、今はそれが正しいことになったからいいのか。でも、いつかその正しい順序がLinuxに反映されたら逆になってしまうのか。

でもまあ、全く気分の問題だろうw

 

PS. この話になると、やっぱり言いたいことは山ほどある。例えば、印刷などで複数のページがある時に、クソみたいなメッセージが出る。英語だと

Printing page 1 of 10...

のような感じだが、日本語だと、例えば、

印刷しています。ページ 1 うちの 10・・・

とか、「何やってんだかなあ・・・」になってしまうことが多い。自然な日本語にしようとしたら、「10ページのうちの1ページ目を印刷しています・・・」だろう。大抵、元のソフトがそういうのに対応できないせいもあるだろうが、そこは力の見せどころなんだよな。

ここはせめて、

印刷しています (ページ 1 / 10)・・・

にして欲しい。

要するに、

英語の代わりに日本語(風)の文字列が出ていればいい。

なんてことは全然ないってことだ。それで誰がうれしいのだろうか?

PS2. 日本語化の話になったので、出す機会のなかったネタをついでに書く。

Googleですら全然駄目だ。(以前も貶した)ニュースで、中身(ニュース)が新しくなったのを知らせる通知が以下のように出る。おかしいけどいつか直るだろうと思って待っても、全然直る雰囲気がないので、日本のGoogleの連中は余程能無しなのか、これは全部機械で作っているのかと思って諦めている。

Googleニュースの「あっ」な更新通知・・・

見てないけど英語版なら問題ないのだろうが、それを直訳して終わりかい!! (9/25 19:13)

  •   1
  •   0