コンピュータ周りとか近況

腰痛よりも肩こりがやばい感じのTAMですどうも。

そう言えば一昨日くらいにplasmaをアップデートしたら激しく重くなってなんぞーと調べてみたらこいつにクリーンヒットしたみたく。opensuseならkserviceパッケージを無理やり先っぽにするなりコンパイルするなりしてみるといいかもですねえ。とりあえずうちではそれでなんとかなってるみたい。5.14.2待ですかね。5.14.0でも発生しないぽいのでダウングレードもありかな。

さておき。
自分の環境にownCloudが2つ程あるんだけど、SQLite3で運用してるところをMySqlへ移行とかしました。結論から言いますと、別個RDBMSを容易する必要の無いSQLiteは魅力なんですが「いいからおとなしく最初からMySql使っとけ」って感じですねえ。マイグレーション諦めたしねえ。
そう言えばちょっと前にクライアントがバージョン2になってものすごくいい感じになりましたよねえ。複数のサーバのアカウントを同期できるとか、cronでowncloudcmdを叩いてた身としては感激でございます。

ところでですよ。
chromeをずっと使ってんですが、いい加減ふざけんな糞重いんだよ氏ねと言う感じです。軽量でシンプル、と言うのが売りだったような気がしますが、だめですねえ。「調整すれば速くなるんだよ!」とか言われましても調整しなきゃ速くならない時点で軽量ではないのよねえ。
と言うわけで他のブラウザをちょっと試してみました。

FireFoxがない?!、いやまあ、趣味で集めてみました。Konquerorとかいいでしょう。右下はmidoriと言うらしいです。初めてさわりました。
で、結局今はQupZillaを使ってみています。Qtなのがいいですねえ。クライアント認証の方法がちょっと分かんないので全部移行ってわけにはいかないんですが、軽くていいですねえ。Windows版も使おうかな。

そいえば全然関係無いですが、肩こり腰痛の薬で最近のおすすめはボルタレンです。効いてるーって感じがあまりしませんが、痛みは確かに和らぐ感じですねえ。これから寒くなりますしいいの探しておきたいところ。

「お前それkubuntuでも同じこと言えんの?」

 って言うAAを思いつきました。まあどうでもいいですね。

 OSのアップグレードを即やるなんてモグリですよ多少あらが出きってからアップデートするのが通でしょ推奨されてますし。と、俺も思うのですけど、なら何故しつこくなんども「新しいディストリビューションアップデートが利用できます押せ」と定期的に通知されるんですかやめてくださいよ押しちゃうでしょう。
 と言うわけで。押しました。
 
 で、kubuntuの13.04のアップグレードのお話をするわけですが、俺はひねくれておりますゆえ以下のような前提があることは留意していただきたい。
 まず、ATOKX3ユーザでございます。
 そして、Qt大好きっ子でございます。
 以前のバージョンでもKDEのアップデートはちゃんとしていたので最新KDEの乗った12.10からのアップグレードです。
 ではどうぞ。
 
 今回のアップデートは普通のubuntuだとちょっと速くなったくらいの差だそうです。まあ、使ってないのでそのへんはわかりませんが、kubuntuの場合さり気なく大きな違いが出てきております。
 それは何か。簡単な話です。Qt5がまざっとります。
 
 Qt5が混ざること自体は大した問題じゃない、ぶっちゃけどこに混ざったのかもよくわかんないかもしれないし気にならない人には全くどうでもいいことに思えるかもしれませんが、先に上げた「前提」を見て頂ければ簡単な話ではないと言うのはなんとなく想像つくかと。
 具体的に言いますと、Qt5でどうやってATOKX3で入力するんでしょう?と言うお話です。結論から言ってしまうと、俺はibus-mozcへ渋々移行することとなりました。
 
 実はアップグレードする前からQt5向け開発環境の整備を渋ってたのも理由はこれだったんですよねえ。まあ、来るべき時が来ちゃったのかなあと受け入れることにしますが、もしもそれでもATOKを使いたいのであればQt5のみibusを使うかたちにしてgtkとQt4はiiimとximでーって方法も、できなくはないですねえ。/usr/share/im-config/data/あたりのファイルをごにょごにょ・・・。
 で、このQt4/Qt5の壁にぶちあたるアプリケーションはなんだ!って話なんですが、ぶっちゃけますとqtcreatorです。やべえ俺的にchromeに継いで使うアプリケーションじゃないですか。因みにchromeは主に可愛い眼鏡の女の子のイラストを見るのに使われていますとかそんなことはどうでもよろしい。
 
 まあ、Qt5とQt4ってぶっちゃけそんな大幅なコード修正を強いられることも無く移行できる感じで、過去にあったQt3→Qt4の思い出すだけで血の涙が出そうな感覚とは随分違います。このへんは皆様誤解しないで頂きたいところです。対応するプラットフォームも増えましたし、Qt4からQt5に移行するのは全く問題ない、むしろ推奨されるべきところかとも思うのですが、やはり混在となると色々問題がねえ。そしてこのバージョンのkubuntuは、ちょっとばかし混在しとります。まあQt4向けのqtcreatorをコンパイルして突っ込むってのもありなんですけどね。
 ただまあ、Qt5でximが使えるように整えられるかどうかはわかんないし、正直整える方向が正しいのかどうかも俺にはちょっとわかんないですねえ。まあどっちにせよ、iiimqcfもありませんからQt5でATOKX3使った入力は諦める方向になりますねえ。
 
 で、それはおいといて。
 
 kubuntuのページを見ていただくとドヤ顔で「新しいスクリーンマネジメントツールだぜヒャッハー!」と紹介されているツールがありますが、すいませんapt-get remove kscreenとかさせて頂きました。理由は今までのディスプレイ設定で調整してあるデュアルモニタ構成を起動時に毎回キレイに上書きして下さるからです。ぱっと見とてもわかりやすいツールに見えますが、何故既にあるものを作りなおしたのかは俺にもまあよく分からないところですねえ。とりあえず余計なことされるのは困っちゃう。
 
 もうひとつ。
 これはkubuntuのアップグレードでってことではないのですが、スクリーンロックがどうやっても無効化できないって謎の問題を抱えているような気がしますねえ。正直KDEのコントロールセンターの配置って物凄くわかりにくいところがあるんですが、例えばスクリーンロックやスクリーンセイバーに関する設定って「ディスプレイとモニタ」以下にあったりする(以前はまた別のとこにあった気がするなあ)わけですけど、こことは別に電源管理のところにもロックに関する項目があります。前者は単に一定時間触らなかったときのソフトウエア的?な設定かと思うのですが、後者に関しては例えば電源状態に合わせて一定時間触らなかった時の設定ってのができる・・・・ってわけわからんでしょもうw。
 で、この後者のほうがどうも設定反映されないところがあるような感じですかねえ。On AC Power時のタイムアウト時間を無効にしても開きなおすとやっぱり元にもどってる。powermanagementprofilesrcあたりに記録されるんだろうなあと見てみてもどうも残っていなかったり。
 電源管理の方はActivity SettingsでUse separate settingsを選んでチェックを外していけば一応無理やりロックかかるのは外せるみたいな感じですねえ。この辺、謎です。まあ、設定が反映されないのはバグなのかなあ。ちょっと探ってみたいところ。
 
 あとちょっと気になった点としては、果たしてibusをremoveしたい人がいるかどうかは別として、ibus消そうとするとkde-l10n-jaも消しにかかるのはちょっと驚いた。いやまあ、組み合わせとしては大多数が使うんでしょうけどさあ・・・。
 
 まとめます。
 
 えっと、今までのkubuntuですんなりすべてがスムーズに進んだことがありましたか?と言う前提でお話しますと、今回も今までと変わりません。以前までを上出来とするならば今回も上出来。
 kubuntuのいいところはubuntuの便利さの上でそれなりに最新のKDEをぶん回すことができると言う点だと思うのです。とはいえ、もちろんkubuntuにしかない実装もちょろちょろあるわけですし(muonとかもそうですねえ)完全な生KDEではありませんがそれらがとにかく使えるように整備されているってところは相変わらず素敵。KDEのアップデートも比較的簡単につっこめますしねえ。
 今回はTAMはATOKを諦めると言う悲しい選択にはなったのですが、正直これレアケースのような気がします。12.10をそんなにいじらずに使ってたならそのままアップグレードでいいんじゃないですかねえ、わかんないけど。
 まあ、もしもQt5が入ってきて過去のKDE4.0とかをフラッシュバックしちゃったりする人がいるなら、そのへんはATOKX3使ったりしてない限りは安心していいんではないでしょうかねえ。まあ、KDE5が出たらまたわかんないですけど、少なくとも自分で書いたQt4向けコードはほとんどが小さな修正でコンパイルできて動いてますからねー。楽観視しておりますよ。

KDE上でのQtのフォントおかしいよね

 おひさ。
 と言うわけでお題の通りでKDE上でのQtアプリケーション(KDEアプリケーションを除く、ね)のフォントってなんかちょっとおかしくね?を直すパッチ。ばっつりかいつまむよ。
 因みに対象はkubuntu 11.10、Qt-4.7.4でございます。
--- a/src/gui/kernel/qapplication_x11.cpp
+++ b/src/gui/kernel/qapplication_x11.cpp
@@ -936,6 +936,7 @@
             // Override Qt font if KDE4 settings can be used
             if (X11->desktopVersion == 4) {
                 QSettings kdeSettings(QKde::kdeHome() + QLatin1String("/share/config/kdeglobals"), QSettings::IniFormat);
+                kdeSettings.setIniCodec("UTF-8");
                 fontDescription = kdeSettings.value(QLatin1String("font")).toString();
                 if (fontDescription.isEmpty()) {
                     // KDE stores fonts without quotes
 見ての通り1行です。お疲れ様でした。
 kubuntuならパッチ当ててlibqtgui4だけ入れ替えればいいかと思います。

KDEのwacomtablet設定が便利

 先日久々にIntuos2ひっぱりだしたよー!って話をしたのだけど、まあ設定が面倒臭い。なんと言っても最近のワイド画面と古いタブレットのセンサー部分の比率が合っておらず、ここを調整するのがすこぶる面倒くさい。xinputコマンドとにらめっことか泣ける。
 で、こう言うのをぱぱーっとGUIでさあ…って感じなのだけど、KDE向けのものがちゃんとあります。が、kubuntu11.4のそれはどうも認識すらしてくれない。xorg.confに書かないとダメ?、えー、もっとめんどいよう。
 
 と言うわけで最新版をゲット。「ソースからコンパイルしたら負けかなと思ってる」と言うよく分からない方針を軽く曲げてインストール。
 ちょwww一撃で調整完了かよう…。素晴らしいなちきしょう。
 
 持ってないのでわからないのだけど、3以降のIntuosのボタンの設定とかも簡単にできるみたいなスクリーンショットを見かけました。こう言うの、ほんと有り難いです。

KDE4.7がやってきた

と言うわけで我が家にもKDE4.7がやってきました。Qtのバージョンに追いついたぜヒャッハー!とか一人で喜んでいますが、まあそんなことは置いておいて。

ちょっとばかしupgradeに手こずったりとかですが、もしもplasma回りでエラー出て起動しないよう、なんて方は~/.kde/share/config/以下にあるplasma*ってなファイルを一度消してデフォルトの画面で起動してみるのが良いかと。手になじんだデスクトップを作り直すのはちょっとしんどいけどなー。

って言うかKDEと心中すゆっ!とか宣っているくせに今回知らないうちに4.7出てて変更箇所なんかもノーマークで恥ずかしい限りです。またちゃんと調べておきます。

気になるところとしてはkubuntuでupgradeかけるとまたpulseaudioが投入されちゃったとこかなー。まあ消せばいいところなんですけど、無くても問題無く動く(個人的には居ると厄介なレベル)ものがなんで入れられてしまうのか良く分からないところ。まあ多分何かしら理由があるのでしょう。

nepomukの使い方

KDEを入れたらまずnepomukを止める!、なんて人もいるやも知れませんが、それはちょっと悲しいぜ。

nepomukを使うことでKDEはタグとかレーティングとかを手に入れることができます。しかもそれが、dolphinなんかでそのまま使えてしまう。

ただ、いまいち対応したソフトが少ないなーと言う気もします。ざっと見たところではdolphin、gwenviewとかでしょうか。ただ、やってることはKIO経由なので実は対応しているしていないに限らずKDEのアプリケーションなら全体的に使えんこともない、と言うことにもなりますな。

てなわけで、ざざっとコード的な話とか。

 

 


 

タグとかを付ける話から。

nepomuk自体は色々複雑なしくみだったりしよるんやも知れませんが、ファイルなんかに追加情報を付けるのは至って簡単です。

#include <KDE/Nepomuk/Resource>
#include <KDE/Nepomuk/Tag>
{
    Nepomuk::Resource r("/file/name.txt");
    Nepomuk::Tag tag("ぶにぶに");
    r.addTag(tag);
}

 

とまあ、こんな感じ。簡単です。タグ以外にもsetAnnotationやらsetRatingなんてのがあります。簡単ですよね?。

 


 

次。読み出し。

これも要は書き出しと同じことです。

 

#include <KDE/Nepomuk/Resource>
#include <KDE/Nepomuk/Tag>
{
    Nepomuk::Resource r("/file/name.txt");
    QListIterator<Nepomuk::Tag> tags(r.tags());
    while(tags.hasNext()) qDebug() << tags.next().genericLabel();
}

とまあ、こんな感じ。ファイルが特定されているのであればこうやって読み出したり書き込んだりできます。

 


 

ではファイルが特定されていない場合はどうなのか。

例えば「ぶにぶに」タグが付いているファイルどこにあるの?と言うのを探し出したいとか言う場合。ぶっちゃけこの用途が最も多いと思うのですが。

このページの「Query Examples」ってとこにいろいろと細かく書いてあるのですが、これだけ見ると「え?ややこしくね?」と言う話にもなろうかと。だがしかし、最後の方を見ていただければ。要はKIO経由なわけでございます。

実際にdolphin(konquerorでもいいよ)で「nepomuksearch:」から始まるURLを叩いてただければ同じことができるわけです。Nepomuk::Queryでそれら検索用のクエリを作って.toSearchUrl()で検索クエリを含むURLを出せば…と言う話。

だから最初に言った「KIO経由なのでKDEアプリケーションなら…」と言う話になるわけです。

試しにkwriteなんかのファイルを開くダイアログでファイル名なんかに「nepomuksearch://?query=hasTag:ぶにぶに」なんて叩いてやると、実はちゃんと「ぶにぶに」タグの付いたファイルリストが出ます。

…っと、query=でやるのは時代遅れで最近はsparqlっつーSQLみたいなのを使うのが主流のようですが。「nepomuksearch:/?sparql=select ?r where {?r nao:hasTag <nepomuk:/ぶにぶに>}」とかになるようです。

 


 

とまあ、意外に使うのは簡単だと思います。もしもKDEアプリケーションを作る予定があるのであれば、ちょっとこの辺も考慮してnepomuk対応を実装しちゃったりするとかっこいいんじゃないかな?なんて思う次第ですよ。

てか日本語の資料がほとんどないのよね。

 

 

yakuake

yakuake

誰にでも「これだけは譲れんなあ」と言うお気に入りアプリケーションはあると思うんだけど、TAM的なそれはこれ。yakuake。

ボタン一つで飛び出すシェル。ちょうどquakeのコンソールみたいなのを想像していただければ。

シェルは手放せないけどデスクトップにコンソールが常駐してるのはちょっとなんか違うんだよなあ…と言う中途半端な俺には最適なものでございます。まずこいつをインストールすることからはじまるよ。

皆様も是非。

utouchとやら

Maverickで入ってきたutouch。マルチタッチとかジェスチャとかなんかそんな感じのもの。
ざっと手順。

  1. geis_init()で初期化してインスタンスゲッツ。
  2. geis_input_devices()でデバイス周りのコールバックをセット。
  3. geis_subscribe()で監視するジェスチャとコールバックをセット。
  4. geis_event_dispatch()をイベントループにぷちこんで準備完了。
  5. 終わりはgeis_finish()で賢者タイム。

んでコールバックに送られるジェスチャはTapやDrag、RotateにPinch等々。それぞれにGeisGestureAttrの配列が渡されてそっから値を取り出していく感じ。シンプルですね。

指が触れてから完全に離れるまでが1つのジェスチャと取られるわけで、最初に触れたところがstart、途中の動作がupdate、最後がfinishつうコールバックになると。わかりやすいと言えばわかりやすいですね。実装もそんなに難しくないです。

で。

感想としてはシンプルで分かりやすくていいなーと言う反面、やや面倒くさいなーと言うのもあったりとか。start/update/finishのコールバックが別々なのは何かしら意味があるのかなと思ったり。ある意味startやfinishもupdateと言えなくもないような気もします。

こいつを使ってガリガリとgtkやQt使ってプログラム書いていくのもいいのですが、正直なところツールキット上での対応があると楽だよねこれ。QtにはQGestureEventなんてクラスも既にあるわけで、普通にタッチイベントを処理できるようになると楽しそうです。既存のプログラムのタッチ対応なんかも楽だろうしね。

さて。

で、マルチタッチに対応して何が面白いのー?って根本的な話なわけですが、正直俺も当初は疑問でございました。小型デバイスならまだしも、ノート型とかでマルチタッチとか誰得…と思ってたわけです。画像ビューアとか以外に使い道思いつかない的なね。

ところが冷静に考えてみたら、ソフトウエアキーボードとかでこれその性能を発揮するんじゃないの?と思ったり。マウスのようなシングルポイントでは不可能な「キーリリース前のキープレス」を正しく認識してくれるようなものができる気がします。アニメとかでぺぺぺぺっと画面をキーボードのように叩いてる感じで。

問題は対応するデバイスを用意しないといけないとこでしょうか。開発やるにしても試すにしても。まあそれは何でも同じですが。