オープンソースな現像ソフト、darktable のppa版がアップデートされました。LinuxMint18 (ubuntu xenial)でのバージョンは2.4.4です。

 

以前のバージョンはウィンドウ幅が固定で、ディスプレイの解像度が低いと画面からはみ出してしまい使いにくかったのですが、今回はきちんと調整されました(1280x800で確認)。

 

現像出力例。

D40, DX35/1.8 低解像度のカメラでは撮るものも限られる。

 

 

後は、作業中に落ちないことを祈るのみです。

LinuxMint18.3のリポジトリにあるのはちょっと旧いので、flatpakから入れてみたのだが起動しない。

 

端末から起動してエラーメッセージを見てみたら、「gnomeがないよーん」とのこと。

 

さしものflatpakも、PCのオーナーに黙って別のDEをインストールする等という暴挙は控えたようだ。

 

 

というより。

 

darktableって何時からgnome必須になったんだろうね。ウィンドウ制御とか最初から変態なところはありましたけど。オープンソースでそこそこ使える現像ソフトだったので個人的には残念。まあ、新しいカメラに対応しなくなったら自分で対処すればいいだけなんですが。

 

ああ、アドビ以外のフォトツールなんて誰も真面目に使わないですか、そうですか。そうかも知れませんねえ。

 

自分宛てメモ

 

初心者には混乱の元、新しいパッケージシステム flatpakを試す。

 

LinuxMint18では最初から対応しているので、ソフトウェアの管理からflatpakを選んで実行すれば良い。

 

試しにgimpを入れてみる。事前に、インストールしてあったgimpはremoveした。
flatpakに用意されているのは2.10である。LinuxMintはポイントリリースで新し目のパッケージを使うにはppaを探すか、自分でビルドしかなかったので、flatpakで導入できるのはいいかも知れない。

 

但し、ダウンロードにはかなり時間がかかる。

 

関連ファイルは/var/libとかに格納される模様。詳しくは調べていない。

 

 

なお、gimp2.10ではLinuxMint18.3のibusが使えなかった。コンテキストメニューからinputメソッドをXに切り替えれば入力できる。

 

 

追記

画像を追加。

gimpに続いて Spotifyを試してみたがインストールに失敗する模様。途中で回線が切れた可能性もあり。


参考URL
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0513

自分宛てメモ


症状

 

bluetoothを使ってスピーカーと接続中、PC側をサスペンドさせた後、復帰させるとスピーカーが認識されない。
デバイスを削除して最初から登録しなおうとしても無視される。

blueberryの再インストールでもこの状況は変化しない。

 

 

とりあえずの対策

 

blueberryをremoveして代わりにbluemanをインストールする。

 

 

その他

 

blueberryはLinuxMint純正なので外したくない一方、UIが最近のGnome準拠でXfce4のテイストとは微妙に合わないことも確か。
なお、blueberryはGnome-bluetoothに依存している。

 

 

ソースはここ。
https://github.com/linuxmint/blueberry

自分宛てメモ

 

今までまじめに取り組んでこなかったので。

 

固定小数点形式


有限長のビット列に整数部と小数部をもたせたもの。境目となる小数点は固定。
例えば符号付き16ビット固定小数点で、符号1ビット整数部2ビット小数部13ビットに振り分けた形式をQ13とか呼ぶらしい。
整数部が2ビットしかないので0〜±4未満までしか格納できないが、これでも円周率や三角関数あたりならそれなりに使える、のかも知れない。

 

 

浮動小数点形式からの変換

 

単位1を乗じて溢れた桁は捨てる。即ち、Q13なら(1<<13)を乗じてキャストする。
int16_t n = (int16_t)(3.141592 * (1<<13));

 

 

丸め(四捨五入の類)

 

10進だと5がしきい値で四捨五入となるが2進数なのでその桁のビットのオンオフを見るだけである。
n += n & (1<<12); // 小数第1位を見る
小数第1位で丸めると四捨五入になる(この桁は固定2進では1の2分の1、即ち0.5)が、他の桁だとそうはならない。

 

 

小数点の位置

 

乗算・除算の時、10進数で筆算する時と同様に小数点の位置について常に留意しなくてはならない。

 


10進表記を得る

 

まず、絶対値にして符号をはずす。~(n-1)
次に整数部と小数部に分ける。が、実際はビットシフトで取り出すだけである。

 

整数部
1の位から求める
10で割って余りを格納する。
商が10より小さくなるまで繰り返す。

 

小数部(小数第1位から求める)
10を乗じて積の整数部分を格納する。
小数部が0になるまで繰り返す。

 

 

いろいろ弄って判ったのは、

  • 小数部は桁数の割に精度がでない。Q13で3桁程度。(16ビット符号付き整数では凡そ±32000、16ビット符号付きQ13だと整数部は±3だから、小数部3桁はだいたい合っている、と思う)
  • 10進変換とかの変換がものすごく手間。
  • 小数点の位置を常に意識しなくてはならない。

一方、

  • いわゆるキャストは簡単かも知れない。
  • 同様に整数×固定小数の計算は簡単である。但し桁溢れに注意しなくてはならない。

 

 

自分宛てメモ。

 

多くのメディアプレイヤーは、dbus経由でのリモートコントロールができるようになっている。

 

MopidyにはMopidy-mprisというプラグインが用意されているのだが、うまく機能しないようだ。

 

 

LinuxMint18での様子。曲名は正しく表示されている。しかし再生中にも関わらず、コントロールボタンはそのまま。トラックの移動もできない。

 

debianでは停止はできたが、それ以外は不可だった。

 

なお、見た目はよく似ているがLinuxMintとdebianとでは動いているUIが異なる。LinuxMintはUnity由来のindicator-soundというもの、らしい。debianのほうはxfce4のパネルプラグインである。

 

ドキュメントに従ってpython(python2.7のシェル)から少し操作してみたが、仕様通り制御できるようだ。であれば、UI側(xfce4-pulseaudio-plugin等)を弄らないとならない。

 

LinuxMint18では、このサウンドメニューの登録内容は dconf-editorで参照できる。(com->canonical->indicator->sound)

例えば表示したくないプレイヤーはblacklisted-media-playersに記述する。debianでは試していない。

 

LinuxMintでの該当パッケージはこの辺(違うかも知れない)

indicator-sound
indicator-sound-gtk2

 

ソースを眺めてみたが、うんざりしたので眺めただけで終わる。

 

LinuxMint18にて、xfce4-pulseaudio-pluginが代替にならないか試してみたが、0.2.4はプレイヤーの制御ができなかった(上記indicator-soundをアンインストールしてから、xfce4-pulseaudio-pluginをリポジトリから入れた)。 0.3系は0.4系と同じくgtkのバージョンが合わずにビルドできない。

 

indicator-soundはtrusty以降、大きな改変はないように見える。

 

 

weather-plugin の時のように、動作に支障をきたした、とかではなく。単に新しいバージョンが出ていたので。

 

 

 

LinuxMint18ではDEにxfce4を選択していても、このpluginは導入されていないようです。インストールできないことも無いと思いますが(※)、万が一挙動不審になっても困るのでパスして、今回はdebian9(stable32bit)で試してみました。
なお、debianはtestingで用意されているようです。そのうちパッケージになるでしょう。

新しいバージョンで追加になったのはマイクロフォンのコントロール。試したマシン(Panasonic CF-R2)に内蔵マイクはついていないので、特に有り難みはありません。

 

※追記
LinuxMint18ではGTK3のバージョンが追いつかずビルドできませんでした。

 

 

インストール上の注意点

  • 既存のバージョンを外そうとするとDE(xfce4)全体を外そうとするので、そのままにして上書きインストールする。
  • ./configure に --libdir=/usr/lib/(arch)を忘れないこと。

 

見た目が少し格好良くなったかも。

 

 

以前、leafpad に lua5.1をくっつけてluaの実行環境(luapad)を作りました。
それなりに重宝して使っていたのですが、時々何も言わずに実行を終了することがあることに気づきました。

 

計算結果が表示されずに終了している。よく見ると5行目にカーソルが移動しているので、ここで何らかの不具合が発生していることは判る。

 

起きるのはwebからコードをコピペ、あるいはコピペした後修正して実行した時が多いので、文字コードの問題ではなかろうか、と思っていました。実際、コピペを止めて同じ内容を手打ちすると通常の動作を示します。

 

取り敢えず手打ちで回避できるので今まで放ったらかしにしていたのですが、時間が出来たのでバグ潰しに掛かりました。

 

このバグが発生するまでの流れは次の通りです。

 

  1. gtksourcebuffer上のテキストを取り出し(text)、
  2. err = luaL_loadstring(L,text)||lua_pcall(L,0,LUA_MULTRET,0);でluaにかける。
  3. text上にコンパイル出来ない文字が含まれているとluaは通常の手順(luaスタックにエラーメッセージを積んでエラーコードを返す)で終了する。
  4. errをチェックし、エラーであればluaスタックからエラーメッセージを取り出す。また、gtksourceview上の該当行にカーソルを移動して行をハイライト表示する。
  5. 実行結果表示用のgtktextbufferにエラーメッセージを流し込んでエラー表示しようとする。
  6. しかし、メッセージにUTF-8で許されない文字が含まれていると何も表示せずに終わる。この際、luapadを端末から起動していると、g_utf8_validateが失敗した、とのメッセージが出ます。


対策としては、luaが返してくるメッセージをUTF-8に変換してgtkに渡せば良いのですが、gtkに用意されている関数 g_convertは元々の文字セットが何であるか分かっていないと変換できません。
主だった文字コードを総当りでチェックしようかと思いましたが、たかがエラーメッセージを出すのに大げさ過ぎるので、自家製のメッセージを表示することでお茶を濁すことにしました。

 

gtktextbuffer的には「変なもの飲ませるな!」ということ何でしょうが、「文字化けでも何でもいいから表示するオプション」が欲しかったです。

 

発生している状況をそのままメッセージにしたが、使う側としては然程アリガタミのある内容ではない。

 

自分宛てメモ

※2018年5月25日 加筆修正

 

LinuxMintにてアップデートマネージャを有効にしておくと、パッケージの更新を知らせてくれて便利である。
しかし、時折挙動不審になることがある。

 

症状
インストールした覚えのないchromium-browserの更新が通知される。
チェックをはずさないとインストールされる。
放置すると何時までも通知される。

 

原因
追加でインストールしたコーデックスによる(未検証)

LinuxMintはライセンスの都合でマルチメディアコーデックスがデフォルトでインストールされないので、必要に応じてユーザーが選択しなくてはならない。
この中に chrmium-codecs-ffmpeg-extra が含まれている模様。(ちなみに、これをSynapticで削除しようとするとmint-meta-codecs及びmint-meta-codecs-coreも削除しようとする。)

 

対策1
アップデートマネージャでchromium-browserをブラックリストに移す。
この方法だと、後日chromium-browserをインストールした場合、忘れずにブラックリストから戻しておかないと更新通知を受け取ることが出来ない。

 

対策2
chrmium-codecs-ffmpeg-extraを単独でアップデートする。

 

sudo apt-get upgrade chromium-codecs-ffmpeg-extra

 

依存関係のない、他のパッケージのアップデートを引き込む場合は単にインストールする。

 

sudo apt-get install chromium-codecs-ffmpeg-extra

 

その他
パッケージ毎の依存関係を無視して特定のジャンルだけ抜き出してmetaでまとめている(と思う)ので、このような状況に陥ってしまう。なかなか難しい問題だと思うが、ブラウザ等使用頻度の高いアプリケーションについてはもう少し配慮があっても良いのではなかろうか。なお、LinuxMintのデフォルトブラウザはFirefoxである。

 

自分宛てメモ

 

問題
他のハードにおいて問題なく使えた無線LANカード「BUFFALO AirStation WLI3-GB-G54L」だが、何故かThinkPad R500では動かなかった。このハードでも他のLinuxディストリでは動いていた(例えばPuppyLinux)のでハードそのものには問題は無い。

 

原因
モジュール不足

 

対策
リポジトリからfirmware-b43-installer をインストール。
続いて以下を実行
sudo modprobe -r b43 ssb
sudo modprobe b43

 


Search

Calendar

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
<< June 2018 >>

Archive

Mobile

qrcode

Selected Entry

Link

Profile

Search

Other

Powered

無料ブログ作成サービス JUGEM