有職故実

UbuntuとiPhoneと生活と

2013-05-30

[]Ubuntu11.10で開発統合環境を試したメモ書き

エディタと言えばEmacs一択の数年だったが、自動構文チェックや補完機能の便利さにショックを受け、開発統合環境(IDE)の使用を検討することとした。

Eclipse3.7.0の使用は断念

Ubuntu11.10のリポジトリからインストールできるEclipseのバージョンは3.7.0である。

結論から言うとこのバージョンを使おうとは思えなかった。

  • とにかく設定の反映が重い

何か設定した後にOKや適用を押すとしばらく待たされる。このため設定のカスタマイズは苦行となる。

  • 不安定

Javaアプリのせいなのか不安定で、設定の変更が時間差で反映されたり、また下に述べるような不具合が再現したりしなかったりする。

設定→キー→スキームに「Emacs」があるがC-fで前へ移動することなどはできず、別に「Emacs+」というスキームをインストールした上で*1、かつ個別にキーアサインをしなければEmacsライクなキーバイントで操作することはできない。

  • キー入力を受け付けなくなる不具合

エディタにフォーカスがあるとき、一旦別のアプリケーションにウィンドウ切り替えて戻ってくるとキー入力を受け付けなくなる不具合がある。

Altメニューの入力は受け付けるので、メニューをW→G→Vと辿り、一旦次か前のビューに移った上でエディタに戻れば反応するようになるが、ウィンドウを切り替えて戻る度にこのキー操作をしてエディタにフォーカスを戻す苦行を強いられることになり実用的とは言えない。

設定に3時間半を要したあげく、使えないということが分かったことだけが収穫だった。実に不毛なことである。

素直にUbuntu12ないし13を使って最新版を入れればこのような面倒も不毛も無く、快適な環境だったのかもしれない。

NetBeans7.3でもUIの不具合が再現

NetBeans(バージョン7.3)を落としてきてインストールしたところEmacsキーバインドの設定も簡単だったし、カラースキームも簡単に変更することができた。唯一フォントが汚ないことだけが難点だったが、設定ファイルを変更することで解決できた*2。最初からこちらを使えば良かった…と思いきや、こちらでもフォーカスを失ないショートカットも含めてキー入力を一切受け付けなくなる問題が再現した(マウスクリックすればキー入力を受け付けるようになる)。Javaアプリはキーボードベースの操作が弱いことは把握していたが、これはもうOSネイティブアプリでない以上どうしようもない制限というか宿命なのだろうか。

NetBeans7.3でのUIの不具合を姑息な手段で回避

ウィンドウをAlt+Tabで他のアプリケーションに切り替え、再びNetBeansに切り替えるとフォーカスを失ないショートカットも含めてキー入力を一切受け付けなくなる上記不具合だが、このまま諦めるのも口惜しいので姑息な手段ながら不具合を回避するべく方法を調査した。

マウスでメニュー等をクリックさえすればキー入力を受け付けるようになるので、マウス入力を代行してくれるようなコマンドがあればよい。それがこちら*3で紹介されているxautomationパッケージのxteコマンドである。

xte 'mousemove x y'のようにすることでマウスがx,yに移動しxte 'mouseclick 1'とすることで右クリックとなる。NetBeansのウィンドウ位置を固定とする必要があるが、これによりこの問題を当座回避することができる。

可能であればxwininfo的なコマンドでウィンドウ座標を取得し、そこからの相対座標でクリック位置を指定したいところだ*4

*1Eclipse への Emacs 風キーバインド設定 - snufkonの日記

*2NetBeans/フォントを綺麗にする - TOBY SOFT wiki

*3xautomation自動マウス&キーボード操作マニュアル | 外道父の匠

*4:xwininfoコマンドは-nameオプションにより端末からウィンドウを指定することができるが、ワイルドカード及び正規表現を使うことができない

2013-05-17

[]Okular(Version 0.13.3)でキー操作が効かなくなった場合の対応

Okularはviライクなキー操作でpdfを閲覧できて快適だが、Version 0.13.3では他のウィンドウと切り替えをした後に、時折キー操作を受け付けなくなることがある。

このような時は一旦Okularを最小化すればまたキー操作が可能になる。

2013-02-03

[][]epgrecが動作しない件(解決)

epgrecが動作しない件1/番組表が表示されない(解決)

  • 使用環境
    • Ubuntu 11.10
    • LAMPP(Linux 1.7.3a)
    • epgrec(090814)
    • recpt1(pt1-c44e16dbb0e2)
    • pt1-7662d0ecd74b、pt1-b14397800eae(2013年2月現在最新版)は./configureでパスを通しているはずのlibarib25が見つからないと言われ使用できず。
    • epgdumpr2_20111001

  • 状況

インストールstep5を済ませても番組表が全く出ず、番組名が「no epg」のままとなっている。

直接./getepg.phpを実行してもsegmentation faultとなる。

  • 原因
    • DocumentRootがwindows環境時に設置していたWebサーバのProgram Files以下にあり、パスに半角文字を含んでいたため。
    • getepg.phpの冒頭のシェバング(#!/usr/bin/php)がphpパッケージをインストールしたときのパスとなっているが、lamppでの運用のためここにphpの実行ファイルが存在しないため
  • 対応
    • DocumentRootをパスに半角を含まないディレクトリに変更
    • /usr/bin/phpへ/opt/lampp/bin/phpのシンボリックリンクを作成
  • 検証(php5-cliパッケージを使用した場合)

lamppのphpではなく、php5-cliパッケージをインストールして動作確認したところ、後にEPG番組表が取得できなくなった。tsファイルをgetdumpしたところxmlは正常に生成されている。

/usr/bin/phpをlamppのphpからのシンボリックリンクに直したところ取得できるようになった。

  • 動作確認用のメモ書き
    • epgrec-090814.tar.gz(2009年8月14日版)
      • 番組表が取得できないとき
      • ./getepg.phpをしても、すぐ端末に入力が返って来てしまい、カードリーダのランプは点灯したままで、/tmpには何も生成されない。
      • 正常動作時
      • ./getepg.phpを実行するとしばらく入力は返って来ない。カードリーダのランプは点滅し/tmpにはepg用の一時ファイルが生成されている。
    • epgrec_20111001.tar.gz(記事作成時の最新版)
      • 正常動作時
      • すぐに端末に入力が返る。カードリーダのランプは点滅し、/tmp/__temp.ts.grxx が生成されている。

付記:recpt1のcpu使用率は5%程度(4コアでは1.25%程度)

epgrecが動作しない件2/録画予約ができない(解決)

  • 状況

予約ボタンを押しても"Error:get:無効なid"とのダイアログが出て予約が実行されない

システムログには"Reservation::custom job番号の取得に失敗"と出ている。

  • 原因

apacheがnobodyユーザ権限で動いていたため

lamppの/opt/lampp/etc/httpd.confのUserを参照したところ,User nobody Group nogroupとなっていた。

nobodyは/etc/at.denyに含まれているユーザーである。

  • 対応

/opt/lampp/etc/httpd.confのUser/Group設定を以下のように変更し、/etc/at.denyからwww-dataを削除した。

 User www-data
 Group www-data

epgrecが動作しない件3/予約録画が実行されない(解決)

録画予約をして待つが一向に録画が開始されない。

  • 原因

参照先リンク1のページによるとmsg_get_queue()というSystemVのメッセージキューを得る関数がPHPのコンパイル時に使用可能になっていなかったこと…らしい。

  • 対応

PHPをソースからコンパイルするのもオプション設定が大変そうなので*1、msg_get_queue()関数を使用していない、epgrecの旧版を利用する。

リンク先で紹介されているepgrec-090814.tar.gz(2009年8月14日版)を使用したところ問題無く動作した。

また、一応www-dataユーザをvideoグループに追加している。追加していない状態での動作は確認していない。

(所要時間:全て合わせて19時間)

今後の課題

  • 録画した番組をmpeg4へエンコード

tsのままではサイズがかさばるためサイズを小さくしたい

参照リンク

1.--CentOS5.4録画サーバ機にEPG対応録画フロントエンド(epgrec)を入れる: tadachi-net 出張所

epgrec-090814.tar.gz(2009年8月14日版)を使用したインストールの手引き

2.--Ubuntu Music Hour KTV-FSPCIE + EPGrecで予約録画1/2【LAMP環境の構築,他、前準備】

インストールの手引き

上記サイトの録画できない場合のトラブルシューティングリスト

      • do-record.shが使えるか?
      • チューナデバイス使用ユーザーとしてwww-dataをvideoグループに追加を忘れてないか
      • sudo atqでジョブが登録されているか
      • LAMP環境の構築でミスが無いか
      • パーミッションは大丈夫か

他トラブルシューティングへのリンク

3.PT3の設定(ubuntu12.04) - わすれないうちにメモしよう

インストールの手引き。

recpt1でライブラリがロードできないというエラーが出る場合の対処法、録画エラー時の原因特定のためのrecpt1実行時ログの出力設定、録画できるのに「重複予約があるため録画ができない」と表示される場合への対処など。

4.--○○的な気まぐれ日記 » PT3でepgrec UNA

php5パッケージはLAMPとは別に入れた方が良いらしい?

apacheの実行ユーザをvideoグループへ追加する

epgrecにはUNAという派生版があるようだ

5.--PT3、UbuntuLinux12.04、epgrecで録画サーバを作る。 - Linux 開発日誌

スマートカードリーダのバグ回避・バージョン固定の方法。

記述されているjaistのmaverickレポジトリには既に該当するライブラリが無いため、debパッケージを個別に入手しなくてはならない。

6.--transitive.info - Ubuntu 12.04 で PT3 と epgrec で録画する

インストール方法・復号に失敗した録画を視聴する方法・シャットダウンから自動復帰して録画する設定

録画予約が消えないときは以下SQL文で削除できるとのこと。

delete from Recorder_reserveTbl where id=9999;

7.要望/コメント/いろいろ - 録画予約システムepgrec

公式サイトの掲示板。録画予約が消えないときの対応方法について等ケーススタディが色々あり

8.Hello,World atコマンド

atコマンドの出力はメールで返るためatでecho hogeなどとしても何も表示されず、端末に表示させるには、atコマンドの標準出力を端末に指定して出力する必要があるとのこと。ただしログインユーザ以外の、ウェブサーバユーザなどではこのように標準出力を指定してもechoの出力は得られなかった。ただし、シェルスクリプトは問題なく動作した。

*1:lampp 1.7.3aのPHP Version 5.3.1のphpinfoで表示されるconfigure commandをクォートを除いてコピペしてもapx関係のエラーが出る

2013-01-19

[][]Ubuntu11.10にてタイトルバーが消える 18:43

以下のコマンドで復旧した。

$ compiz-decorator

デスクトップ環境がUbuntu 2Dのときは以上のコマンドでも復旧しなかった。

  • 状況
    • Compiz Fusion Iconを実行してもタスクバーにアイコンが出ない
    • $ compizを実行しても直らない

前回はcompiz設定全消しで復旧させた。

関連リンク

2013-01-13

[]Adobe Readerで端末からpdfをページ指定して開く方法 18:04

例えば15ページを開きたいなら、端末から以下のようにして起動する。

acroread /a "page=15" "hoge.pdf"

/aのオプションがまるでmsdosのようだが、これで動作する。

ダブルクォートはシングルクォートでも構わない。

確認したのはUbuntu11.10上のAdobe Reader9.4.2だが、おそらく他のバージョンやプラットフォームでも動作するのではないかと思われる。

(解決時間:45分)

資料

37012

ユニークカウンタ(2011/6/26〜)