ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2013年1月14日月曜日

UbuntuでGooglePlayの映画を視聴する

UbuntuでGooglePlayで映画見ようと思ったら全然再生できなくて、ググって初めてGooglePlayの映画の「システム要件」ページの存在を知ったのでメモ。何でサイトフッタにリンク置いておかないんだろう。

環境

  • Thinkpad x201s
  • Ubuntu 12.04.1 LTS Precise Pangolin
  • Google Chrome 24.0.1312.52

再生するには

Ubuntu または Linux OS をお使いの場合は、HAL モジュール(リンク先は英語)もインストールする必要があります。

というわけで、Ubuntuで一瞬採用されて2バージョン後くらいにすぐ使われなくなったあの hal をインストールする必要があるそう。
引用内のリンク "HAL モジュール" はAdobeのFlash Playerで保護されたコンテンツを視聴するための要件についてのヘルプページになっている。
Google PlayではDRMにAdobe Flash Accessを使っていてその動作にHALが必要、という事なんだろう。

以下、そのページ「Problems playing protected video content | Ubuntu Linux, Flash Player 11」の内容をざっくりと。

保護されたコンテツを再生する準備


halをインストールする。
sudo apt-get install hal

インストールした後、ブラウザを閉じてから、Adobe Accessのキャッシュをクリアしておく。
cd ~/.adobe/Flash_Player
rm -rf NativeCache AssetCache APSPrivateData2

この他、別のディストリビューションや64bit環境向けの説明もあるので、適宜実施。

保護されたコンテツを再生出来るかテスト


http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html を開いて、画面上部の"Input the video URL:"というテキストボックスにhttp://drmtest2.adobe.com:8080/Content/anonymous.f4vを入力してから、「Play」ボタンを押す。

上手く行けば、ランセンス情報などをロードする処理の後にデモ動画が再生される。

GoogleChromeで再生できない場合


ここまでやっても、GoogleChromeでは再生できなかった。
今回だけではなく、GoogleChrome内蔵のFlashプラグインの挙動が怪しいことは以前からあり、その度に「内蔵プラグインを無効にして、システムにインストールされてる方のFlashを使うようする」という対処をしていたので、今回も実施。
  1. chrome://plugins/にアクセス。GoogleChromeのプラグイン設定画面が表示される。
  2. 画面右端のリンクを操作して詳細表示にする。(もともと詳細表示ならそれでOK)
  3. Adobe Flash Playerの項に、2つプラグインが表示されているので1つ目(Chrome内蔵のPepperFlashプラグイン)を無効にする。
  4. 先述の「保護されたコンテツを再生出来るかテスト」を実施して確認する。内蔵プラグイン無効化後に、テストページはリロードしておくこと。

2013年1月5日土曜日

UbuntuでSublimeText2の入力補完が出来ない時

# ハマったので、備忘録としてと同じ轍を踏む人のためのエントリ

問題

Q. あれ? UbuntuのSublimeText2で ctrl+space で入力補完出来ないぞ!?
A. 落ち着け。Linux版だと入力補完のキーバインドの初期値は alt+/ だ

何故?

ダウンロードページにあるchangelogに書いてある。正式にVersion 2.0になったタイミングで変わったらしい。 ctrl+space だとIME切り替えのキーバインドと被るからね。
  • Linux: Show Completions has changed from ctrl+space to alt+/, to not interfere with IMEs
  • 「Sublime Text - Download http://www.sublimetext.com/2」から

    普段は半角/全角キーを使うか、mac風に変換キーのキーバインドを変えてIMEのon/off出来るようにしてるので、これにハマった時になかなか思い至らなかった。

    workaround

    今は、以下のような設定をPreferences -> Key Bindings-Userに記述している。
    [
      { "keys": ["ctrl+space"], "command": "auto_complete" },
      { "keys": ["ctrl+space"], "command": "replace_completion_with_auto_complete", "context":
        [
          { "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
          { "key": "auto_complete_visible", "operator": "equal", "operand": false },
          { "key": "setting.tab_completion", "operator": "equal", "operand": true }
        ]
      }
    ]
    

    Preferences -> Key Bindings-Defaultから入力補完の設定部分の記述をコピーして ctrl+space に書き換えただけ。

    2012年1月8日日曜日

    FLASHゲームがクリア出来なかった腹いせにswf中のファイル抜くシェルスクリプト作った

    FLASHゲームがクリア出来なかった腹いせにswf中のファイル抜くシェルスクリプト作った。
    swfファイルを指定すると、swfextractコマンドで抜けるファイルをすべて抽出します。

    githubに置いた。
    https://github.com/mstssk/utils/blob/master/swfextractall.sh

    swfextractコマンドが必要。
    swftoolsインストールしてから使ってね。( $ sudo apt-get install swftools )

    <追記> ファイル置き場を変えたのでurl修正

    2011年6月21日火曜日

    Commit to github with Egit(Eclipse plugin) on Ubuntu10.10

    備忘録

    環境
    ・Ubuntu 10.10
    ・Eclipse 3.5
    ・Egit 0.4.9

    gitはインストール済み。
    Eclipseは日本語化してません。

    ■ gitの設定(必須ではない)
    $ git config --global user.name "yourname"
    $ git config --global user.email "your.email@address.com"
    この設定は、Eclipseの起動時に(Egitがインストール済みなら)読み込まれて、Egit上でコミットする場合も使用される。
    Eclipse起動前に変更しないと、反映されない気がする(多分)。

    ■ ssh-keygenコマンドで公開鍵作成
    パスフレーズとか聞かれる
    id_rsaとid_rsa.pubの2つのファイルが生成されるので、~/.ssh/に移動しておく。
    id_rsa.pubの中身をコピペして、githubのAccount Settings > SSH Public Keysで追加しておく。
    titleは何でもいいらしいので、適当に。

    ■ Egit(Eclipseのgitクライアントプラグイン)のインストール
    update-site → http://www.jgit.org/update-site/

    ■ Eclipse上でgitのリポジトリ生成
    パッケージエクスプローラで、対象のプロジェクトのコンテキストメニュー > Team > Share Project
    ダイアログでGitを選択(多分EclipseにデフォルトでCVSが入ってるので、CVSかgitかどちらを使うか必ず聞かれる気がする)
    次のダイアログでリストから対象のプロジェクトを選択 > リスト下に選択したものが表示されるので「Create」ボタン押下 > finishボタン押下

    ■ プロジェクトのファイルをstage
    リポジトリを生成したプロジェクト下の、コミットしたいファイルのコンテキストメニュー > Team > Add to Version Control

    ■ ファイルのローカルコミット
    コンテキストメニュー > Team > Commit...

    ■ リモートリポジトリの生成
    githubでリポジトリを生成しておく、リポジトリのURIが表示された事を確認する。
    そのURIはリモートリポジトリへのコミット時に使用する。↓

    ■ リモートリポジトリ(github)へのコミット
    プロジェクトのコンテキストメニュー > Team > Push to...
    URIにリモートリポジトリのURIを入力。
    ただし、Protocolはgit+sshに変える。
    Userは「git」
    Passwordは空のままで良い。
    以下のスクリーンショットを参考に。
    Nextボタン押下
    公開鍵のfingerprintとか、~/.ssh/known_hostsファイルを作っていか、とか確認される
    パスフレーズを求められるので入力。
    次のダイアログでコミット(Push)先の設定をして、Next/Finish

    次回以降も、同じ手順で。

    □ 問題
    リポジトリのURIが保持されてくれないので、仕方なくコミットの度にgithubのリポジトリ情報ページからコピペしてるけど、他の人はどうなの?

    □ パッケージエクスプローラのフィルタ設定
    パッケージエクスプローラは初期設定で、いくつかのファイルを表示しない設定になっている。(ドットファイルとか)
    それらを表示しstageしたいなら、パッケージエクスプローラペインの右上の▽からFiltersを選択し、ダイアログでフィルタ設定を変更する。


    □ 参考
    http://womo.nconc.net/2010/03/04/github
    http://blog.katsuma.tv/2009/02/first_github.html
    http://d.hatena.ne.jp/keita_yamaguchi/20080409/1207752188

    2010年8月12日木曜日

    Ubuntu 10.04 LTS Lucid Lynx on Thinkpad X201s

    遂に先月Thinkpad X201sを買っちゃっいました。
    そして、即座にUbuntu10.04を入れて使用中。

    ビックリするぐらい何もしなくても普通に動いてくれました。
    ウルトラベースのDVDドライブもちゃんと認識して動作する(ただ、少し挙動がおかしい気もする)し、そのウルトラベースのホットプラグも大丈夫でした。
    Trackpointも初めっからマウスとしてちゃんと動いてくれます。
    ただし、中ボタン押しながらのスクロールをするにはgpointing-device-settingsをインストールして設定してやる必要がありました。
    http://live.gnome.org/GPointingDeviceSettings

    特定のボタンだけ認識してくれないなんて問題もありません。
    電源ボタンは長押ししないといけない仕様だって気付くのに半月かかりましたが… orz

    あとは、DVDが再生できないって問題がありました。
    忘れがちですが、DVDドライブってリージョンコードを設定してやらないとDVDを再生できないんですよね。
    市販のメーカー製PCを買って使う分にはリージョンコード設定された状態で出してたりして問題無いし、もしくはWindowsだとDVDプレイヤーが勝手に設定しちゃったりしてるのかな。
    まぁ、Thinkpadを直販で買って速攻でUbuntu入れた馬鹿にだけ降りかかる問題です。
    リージョンコードの設定にはregionsetってのを使うとOK。
    http://linvdr.org/projects/regionset/

    ともかく、X201sを買おうか迷っているUbuntuユーザさんはポチっても損はしませんよ

    2009年10月31日土曜日

    How to remove(uninstall) Adobe AIR application, and where is it's profile?

    Ubuntu9.10がリリースされましたが、まだ様子見で9.04のままです。
    まぁ、TwitterでJapaneseTeamの中の人が「鯖に負荷がぁ!」と戦々恐々としているのを見たのもあるんですが。

    で、そのUbuntu 9.04ですが、先ほど始めてAdobe AIRアプリをインストールしてみたのです。

    TwitterのクライアントアプリSpaz(http://getspaz.com/)です。
    サイトのDOWNLOADページで、SpazだけでなくAdobe AIRランタイム本体のインストールも一息にやってくれました。

    で、肝心のSpazをちょっと動かしてみたのですが、どうにももっさり。。。
    4年使っているHP nx6125のスペックがアレな気がするのですが、いずれにしても「こんなんじゃとても使えない!」というわけでさっさとアンインストールを決め込みました。

    で、どうやってアンインストールするんだ?

    パネルのアプリケーションメニューには、Spaz・Adobe AIRアプリを追加するためのインストーラ・Adobe AIR自身のアンインストーラ のショートカットはありますが、アプリ単体をアンインストールする手段が見当たりません。

    Adobeのヘルプページにも、窓と林檎の場合の手段しか書かれていません。
    ・AIR アプリケーションのアンインストール
    http://help.adobe.com/ja_JP/AIR/1.1/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7e5f.html#WS5b3ccc516d4fbf351e63e3d118666ade46-7e4e

    試しにAdobe AIR自身のアンインストーラを立ち上げてみると、ウィンドウが出て「ランタイムをアンインストールすると以下のアプリが動かなくなるよ!」見たいな感じでSpazがリストアップされてました。
    そういえばインストール時も、Spazは自前のインストーラでなくAdobe AIRのインストーラによってゴニョゴニョされてる様でした。で、AIRランタイム側でインストールされているAIRアプリを把握してるんだろうな(この場合ランタイムという表現は違う気がするけど)と思い、AIR本体アンインストールすればSpazも一緒に消してくれるかも!で、即実行。

    で、まぁ消えたのはAIR本体だけだったわけです orz

    インストール時の確認ダイアログで、/opt以下にインストールするよ!となってたので、見てみたら見事にSpazディレクトリがあって、その中身も無事(?)でした。。。

    Adobeのヘルプページの林檎の場合のアンインストール方法(インストール場所から app ファイルを削除します。)を見る限りでは、/opt/Spazを削除しちまえば問題ないだろう、ということで
    $ sudo rm -rf Spaz/

    あとはプロファイルだな、と思いホームディレクトリ直下のドットファイルを見てみます。
    .adobeなんてのがありましたが、この中身はFlash Playerのキャッシュでした。
    で、どこにあったのかと言うと、.appdata という個性の欠片もないディレクトリ名。
    ls .appdata としてやるとAdobe、Spaz.AIR.〜16進文字列〜.1、cookie_file.txtの三つのファイル&ディレクトリがありました。

    つーわけで、
    $ rm -r .appdata
    として終了。

    <追記>
    端末でapt-getでremove出来ました。
    spaz.air..〜16進文字列〜.1 って感じのパッケージ名になってる様です。

    コメントありがとうございました。

    2009年9月7日月曜日

    Develop Android apps with HT-03A(HTC Magic) and Ubuntu 9.04

    ついに買っちゃいました HT-03A

    そんでもって、さっそくアプリ作りをちょろっとやってみようと思い、EclipseにAndroid Development Toolを導入。この辺は他のEclipseプラグインと変わりはしないので割愛して説明する。とりあえず、実機(HT-03A)でHello Worldを表示させるところまで。
    (エミュレータもあるけど、ウチのマシンには荷が重かったようで、起動画面のANDROIDロゴから全然進みませんでした orz)

    ・参考
    http://developer.android.com/intl/ja/sdk/1.5_r3/installing.html
    http://developer.android.com/intl/ja/guide/tutorials/hello-world.html
    http://developer.android.com/intl/ja/guide/developing/device.html
    このブログを読まなくても、これらのオフィシャルの解説ページを読めば大丈夫だと思うけど、3つめの実機でのデバッグを解説しているページはまだ日本語版が無いようなので、このブログが参考になれば幸い。

    ・環境
    HP nx6124
    Ubuntu 9.04 Jaunty Jackalope

    Android SDK
    http://developer.android.com/intl/ja/sdk/1.5_r3/index.html
    からLinux版をDLして適当なディレクトリに展開。

    Eclipse IDE for Java Developersのver3.5(Galileo)でPleiades1.3.0を導入済み。
    そこにAndroid Development Tool(以下、ADT)をインストール。udpate siteは
    https://dl-ssl.google.com/android/eclipse/
    <追記>
    どうにもEclipse起動時に渡すPleiadesのjarファイルへのパスがうまく通らない場合がある様で、gnomeパネルのランチャからeclipseが起動できない問題にぶち当たりました。潔くPleiadesを諦めるのも手です。
    <追記終わり>

    ・初期設定
    EclipseにADTをインストール後、一度Eclipseを再起動。
    Eclipseの設定画面で、Android の SDK ロケーション にAndroid SDKのディレクトリを指定してやって、「適用」。

    実機をUSB接続してデバッグツールとして使用するが、設定ファイルを一つ書いてやる必要がある。
    ファイルパス:/etc/udev/rules.d/51-android.rules
    内容:
    SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"

    そしてこのファイルに実行権限を付加するために、次のコマンドを実行
    sudo chmod a+rx /etc/udev/rules.d/51-android.rules


    ・実機側の設定
     設定 -> アプリケーション -> 開発 -> USBデバッグ
    のチェックを入れる。

    ・プロジェクト作成
    Eclipseのプロジェクトの新規作成画面で「Androidプロジェクト」を選択。
    「新規Androidプロジェクト」画面で、
    プロジェクト名:Hello
    アプリケーション名:Hello, Android
    Create Activity:HelloAndroid
    ビルドターゲット欄で、Android 1.5を選択(Min SDK Versionが自動で3になる)
    「完了」ボタン押下。

    プロジェクト作成直後、プロジェクトアイコンに×マークが付いてたりするが、選択してF5キーで表示内容の更新をかけてやればOK(Pleiades1導入済みのEclipse上ではリフレッシュと表記されている筈)

    ・実機でのデバッグ
    一応、PC側の設定ファイル・実機側のUSBデバッグ設定、がちゃんと行われているかどうかを改めて確認しておこう。
    実機をPCにUSB接続しマウントする。PC画面上では何も起きない(または、通常のUSBメモリなどのように認識される)が、先ほどの設定が活きていれば既にEclipseのデバッグ操作が可能になっている。
    Eclipseで、プロジェクトが選択された状態で、「実行」または「デバッグ」を行う。方法の選択ウィンドウが表示されたら、「Androidアプリケーション」を選択しよう。
    実機側の画面に「Hello Android」と表示されたら成功!

    ・後始末
    「実行」を行う場合、アプリケーションを実際に実機にインストールしてしまうようです。
    そうなった場合、通常のAndroidアプリケーションと同様に、
     設定 -> アプリケーション -> アプリケーションの管理
    から「Hello, Android」を探してアンインストールします。

    2009年7月26日日曜日

    Remove pppoeconf

    ひと月ぶりの更新。いつものとおり、一番の読者ターゲットは自分自身。

    ----------------

    Ubuntuでフレッツ光のPPPoE接続をするためには、pppoeconfというコマンドを使うと自動でネットワークの設定ファイルを書き換えてくれます。
    しかし、先日無線LANのブロードバンドルータを購入し、この設定が不要になりました。

    さて、ここで面倒なことが。
    pppoeconfは設定ファイルへの書き込みは行ってくれても、設定を差し戻すのはやってくれないみたい。

    ネットワーク接続をUbuntuデフォルトのNetworkManagerに返えしてやるには、一部のファイルを直接弄ってやる必要があります。(他に手段があったらごめんなさい)

    /etc/network/interfaces
    pppoeconfを使った後は、次みたいな感じになってると思います。
    auto lo
    iface lo inet loopback
    
    
    auto dsl-provider
    iface dsl-provider inet ppp
    pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
    provider dsl-provider
    
    auto eth0
    iface eth0 inet manual
    デフォルトの状態は最初の2行だけです。それ以降の行はざっくり削除します。
    これで、あとは再起動。
    通知パネルのNetworkManagerのアイコンを見て、元の状態に戻っているか確認しましょう。

    とりあえずここまででもいいのですが、まだPPPoEの認証情報が設定ファイルに残っています。そこらへんも消してしまいたい、ということもあるでしょう。
    私が気づいた限りでは、
    /etc/ppp/pap-secrets
    /etc/ppp/chap-secrets
    に書かれていました。(他にもあるかも)

    環境:Ubuntu9.04 Desktop

    <追記>
    「networking 書き換えただけじゃあ、init.dとかの初期処理でppp走っちゃってんじゃね?」と思ったけど、上の記事のを行う前に、ppp 関連のパッケージをごっそりpurgeしちゃったので検証しませんでした。

    2009年6月26日金曜日

    Run Emesene and Skype quietly.

    私は、メッセンジャーとしてEmesene、加えてSkypeも使っていて、ログイン時に自動起動するようにしています。
    自動起動させるには、パネルメニューの
    システム > 設定 > 自動起動するアプリ
    で、好きなアプリの起動コマンドを追加してやれば良い。

    しばらくはそれで満足していたのだけれども、この設定のままだとログインの度にEmeseneとSkypeのウィンドウが現れる。。。
    別にウィンドウはいらないのよ。パネルにアイコン出しておいてくれればいいだけなのよ。

    というわけで、EmeseneとSkypeでウィンドウを表示させずに起動する方法

    Skypeの場合はわざわざ記事にするほどでもない気がするほど単純。
    Skypeの設定ウィンドウを見れば、もうそこには「システムトレイ内で最小化したSkypeを開始」のチェックボックスが待っています。

    Emeseneでは、起動オプションに「-m」または「--minimized」を付けてやると、最小化した状態で起動してくれます。
    (ver 1.0だと、GNOMEパネルの通知スペースにしまわれた状態・ver 1.5だと、ウィンドウが最小化した状態)


    ちなみに、私 Pidgin使ってません。。。

    Show update notification icon in GNOME Panel with Ubuntu 9.04

    先日やっとUbuntu 9.04をクリーンインストール。
    アップデートの通知方法が変わって、以前のようにパネルの通知領域にアイコンが出るのではなく、いきなりアップデートマネージャが開くようになりましたが、以前のように使いたい、という人は結構いるんではないかと

    JauntyJackalope/ReleaseNotes/ja アップデートの通知方法が変更されました
    https://wiki.ubuntu.com/JauntyJackalope/ReleaseNotes/ja#%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AE%E9%80%9A%E7%9F%A5%E6%96%B9%E6%B3%95%E3%81%8C%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F

    上記のように説明されてはいますが、「コマンド一発叩けばいいよ」でUbuntuがターゲットにしている筈のユーザ全員が満足できるわけが無い!そんなのUbuntuの信条じゃないやい!と勝手に考えて、コマンドを使わない別の方法を紹介します。

    1. パネルメニューで
     アプリケーション > システムツール > 設定エディタ
    を起動。(設定エディタが見当たらないなら、パネルメニュー上で右クリック「メニューの編集」で、設定エディタの「表示」にチェックを入れましょう)

    2. 設定エディタで/apps/update-notifier/を見つけて、auto_launchのチェックを外す。(これと同じことをコマンドでやるのが、リリースノートで紹介されている方法なのです。)

    3. 次回ログインからパネル右上の通知領域に、8.10以前のバージョンの様に通知アイコンが表示されます。


    ・おまけ

    通知アイコンを右クリックした時に現れる「通知の表示」チェックボックスですが、このチェックを外すと、/apps/update-notifier/に勝手にno_show_notificationsとdefault_actionという値が増えます。どちらも、8.10以前では標準で使ってた値なんでしょうが、9.04からはスキーマすら無くなってます。

    auto_launch:false
    no_show_notifications:true
    の状態にしておくと、アップデート通知が分からなくなってしまいますのでご注意を。(default_actionの値にもよるかな?)

    2009年6月20日土曜日

    Comix accepts directory as a command line argument

    Ubuntuのリポジトリにも入ってる、Comixという漫画ビューアを使っています。
    そして、つい先日やっと重い腰を上げてUbuntu9.04をクリーンインストールしたのです。
    もちろん、Comixも再びインストールしたのですが、以前ならば端末で
    $ comix ディレクトリ
    とすれば、ディレクトリ内の画像を表示してくれたのに、何故か「ディレクトリは開けません」とエラーを吐かれてしまうようになっていました。

    http://comix.sourceforge.net/changelog.html
    Comixのchangelogを見ると、Ubuntu8.10で提供されていたver3系ではディレクトリを指定してやることが可能になっていたようです。
    しかし、Ubuntu9.04で提供されているComixはver4.0.1です。changelogを見ると、ディレクトリ指定ができるのは、ver4系では4.0.3からだというのが分かります。

    http://sourceforge.net/tracker/index.php?func=detail&aid=2604916&group_id=146377&atid=764987
    このページを参考に、ディレクトリを弾いているコードを書き換えてやってもいいのですが、実はgetdebに最新版のdebファイルが上がってるのでそっちを使いましょう。
    (それと、上記ページの書き換えるように指定しているソースコードはちょこっと間違ってます)

    http://www.getdeb.net/
    getdebは、アクセスしたユーザのUbuntuのバージョンを判別します。9.04なら9.04に対応しているとして登録されているパッケージしか出てきません。「comix」で検索しても、見つからない、と言われますが、その画面の下に検索対象のバージョンを変更する案内が出てますので、8.10(Ubuntu Intrepid)を選べば、comixが出てきてくれます。(8.10向けとして登録されていますが、9.04でも問題なく動きます。)

    2009年6月15日月曜日

    GNOME Panel config


    パネルメニューまわりの設定の設定について調べてたら、なんだかちょこっと複雑っぽいので、まとめ。

    デフォルトだと左上にある「アプリケーション」メニュー内の、各種ショートカットの実体は
    /usr/share/applications/ 以下の.desktopファイルとしてシステムにインストールされている(/usr/local/share/applications/ にも入ってたりする)。
    ただし、「アプリケーション」メニュー上で右クリックの「メニューの編集」から編集を行うと、
    ~/.local/share/applications/ にシステム側から.desktopファイルがコピーされて、それに編集内容が書き込まれる。さらに、メニューで削除をしても、.desktopファイル自体は残りつづけて、ファイル中のHidden値がtrueに設定するのでメニューに現れなくなるだけ。
    (ちなみに、「メニューの編集」ウィンドウは実は alacarte というアプリケーション。参考:http://mstssk.blogspot.com/2008/11/gnome-panel-2alacarte.html

    パネル上のランチャショートカットやアプレットは、GNOME Panelの設定として~/.gconf/apps/panel/以下に保存される。これらの設定にアクセスするには設定エディタ(gconf-editor)を使う。
    ただし、パネルの設定のデフォルト値は /etc/gconf/schemas/panel-default-setup.entries に記述されている。

    パネル上のランチャショートカットの設定内容は、起動するアプリケーションの実行ファイルを直接指定している訳ではなく。前述の.desktopファイルを指定している。設定は/apps/panel/objects/以下にアイコンごとにある。
    パネル上のランチャショートカットを右クリックから編集すると、編集内容を反映した.desktopファイルは ~/.local/share/applications/ ではなく
    ~/.gnome2/panel2.d/default/launchers/
    以下に保存される。
    システムや~/.local/share/applications/以下の.desktopファイルを指定している時は、フルパスが/apps/panel/objects/以下の各アイコンごとの設定項目に書き込まれるが、編集した後の~/.gnome2/panel2.d/default/launchers/以下のファイルを指定している時は、ファイル名のみが書き込まれている(ただ、firefox.desktopとだけ書かれていたりする)。

    2009年6月6日土曜日

    List directories in current directory.

    「echo *」を実行するとどうなる?
    http://itpro.nikkeibp.co.jp/article/COLUMN/20090602/331173/

    echo *
    を実行すると、あんなことが出来るらしい。

    じゃあ、
    echo */
    とすると……
    実はlsだとこれ出来ないんだよね。まさか、echoで代替出来るとは。

    参考(その他の方法)
    linuxでディレクトリだけを表示させる方法 - 教えて!goo
    http://oshiete1.goo.ne.jp/qa2760104.html

    <追記>
    「ls -d */」で出来るそうです。。。嘘付いてごめんなさい。
    コメントくれた方ありがとうございました。

    2009年6月1日月曜日

    Configure shortcut key with Windows Key(Super Key).

    Windowsで私がけっこう使っているWin+Mのショートカット。開いているウィンドウをすべて一発で最小化して、デスクトップを表示してくれます。
    Ubuntuでも同じ機能がちゃんと付いていて、デフォルトでは下側パネルの左端にアイコンがあり、これをクリックするか、Ctrl+Alt+Dで出来ます。

    ただ、Win+Mに慣れちゃってるので、Ctrl+Alt+Dはなんか押しづらい。。。

    というわけで、Win+Mに変えてしまえばいいじゃん、と思い立ったが吉日。
    パネルメニューの システム > 設定 > キーボード・ショートカット から設定だぁッ、、、あれ? 出来ない。。。

    (WinキーはUbuntuではSuperキーという表示になっている。)

    左Winキーを押しながらMを押そうとするんだけど、この設定ツールだとWinキーはCtrlやAltのような組み合わせ用のキーとしては認識してくれず、ほかのアルファベットキーなどのように扱われてしまう。

    どうしたもんかと思ったら、launchpadで対処法が投稿されてた。
    https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/194979/comments/16

    ホーム・フォルダを開くショートカットの設定方法を説明してます。

    方法 1:
    ========
    1)システム->設定->キーボード->レイアウト->Other options
    Alt/Win キーの挙動: "Meta を両側の Windows キーに割り当て" を選ぶ。

    2)システム->設定->キーボード・ショートカット
    "ホーム・フォルダを開く" を選び、好きなキーの組み合わせを押す。

    例えば、Win+Eなら"Mod4+E"と表示されるでしょう。

    方法 2:
    ========
    1)"設定エディタ(gconf-editor)"を起動する。

    2)"/apps/metacity/global_keybindings" で
    "run_command_1" の値を "<Super>E" に変更。

    3)"/apps/metacity/keybinding_commands" で
    "command_1" の値を "nautilus" に変更。

    (これは、Alt/Winキーの挙動が"デフォルト"か"Meta を両側の Windows キーに割り当て"(訳注)に設定されている場合のみ有効です。方法1を見て、適宜対応してください。)

    方法 3 (コマンドラインでの操作):
    ====================================
    gconftool-2 --type string --set /apps/metacity/global_keybindings/run_command_1 'E'
    gconftool-2 --type string --set /apps/metacity/keybinding_commands/command_1 'nautilus'

    P.S: "/apps/panel/global/menu_key" に関するコマンドラインでの操作を検索しているうちに、gconfに関する別の面白い情報も見つけました。
    http://docsun.cites.uiuc.edu/sun_docs/C/solaris_9/SUNWgndoc/GNOMEADMIN/p5.html

    とても面白い。(^_^)

    訳注:私の環境だと、設定項目は英語のままで"Super is mapped to Win-keys"と表示されていましたが、一応ここも訳しました。

    私は極力少ない設定で済ませたいので、方法2を選択。
    上記の解説だと、"command_1"にnautilusコマンドを割り当ててますが、デスクトップを表示させる動作は"show_desktop"として既に値が存在しているので、そいつを編集して<Super>Mとしてやります。


    ちなみに、"ホーム・フォルダを開く”の設定エディタ上の項目は "/apps/gnome_settings_daemon/keybindings" にあります。けど、そこに"<Super>E"としてやってもショートカットは動作してくれず、しかも勝手に画面テーマが切り替わるという現象が。。。

    ※ Ubuntu 8.10環境で確認しました。バージョンが違うと設定の位置が違ってたりするのはご愛嬌。

    2009年5月22日金曜日

    I wana just add VBR-header to mp3 files...

    ffmpegを使って
    ffmpeg -i smile.flv -acodec copy output.mp3
    ってな感じでflv動画から音を抜いてるんですが、これをやったあとに付きまとう問題点。。。

    元の音声がVBRだろうと何だろうと、-acodec copyでとにかく抜き出せるのは良いものの、抜き出して出来たファイルにはVBRヘッダが無いので、プレーヤによっては再生時間がとんでもないことになっちゃったりします。
    例えば、実際の再生時間は4分程度の筈なのに、32分として扱われちゃったり。

    なので、VBRヘッダをファイルに付加する方法を探してたんですが、linux環境向けのツールを見つけられませんでした。。。

    なので、とりあえずWindows向けのVBR Header Makerをwineで使用。
    うわぁ、、こんな簡単に出来るのになぁ。。。

    2009年5月16日土曜日

    'conffiles' in deb packgage.

    リポジトリに入ってなかったり、GetDebなんかにもdebファイルが無かったりするソフトは、tar.gzなソースを落としてきて自分で適当な箇所に置いてやる必要がある。
    PHPの開発にAptanaを使おうかと思ってるんだけど、そうですdebファイルが無いんです。
    後々の管理のことを考えると、debでインストールしてやったほうが楽だと思うんだけどなぁ。。。

    そんな訳で、「じゃあ自分でdebファイル作っちまえばいいじゃねぇか」と思って調べてたら、ちょうど以前のエントリにコメントを頂いた。
    Skype error[Ubuntu8.10][pulseaudio]
    http://mstssk.blogspot.com/2009/01/skype-errorubuntu810pulseaudio.html
    akira さんのコメント...
        purgeなら設定も消去されました。


    そういえばこの、removeでは設定ファイルが残って、purge指定してやると設定ファイルまで消えるってのはどうなってるんだろうと思い、そこらへんも調べてみた。

    $ sudo apt-get -d install pulseaudio
    -dオプションを付けてapt-getを実行し、インストールせずパッケージのダウンロードのみをさせる。debファイルは /var/cache/apt/archives に落ちてくる。このやり方だと依存関係が解決されて、他のパッケージもいろいろ落ちてくるけど、、、まぁいい。

    debファイルの実態はただのアーカイブなので、file-rollerとかで開けちゃう。
    中身は、
     debian-binary … ただのテキスト。debファイルのフォーマットverが書かれている。
     data.tar.gz … インストールされるファイルが収まっている。
     control.tar.gz … インストール時に必要な依存関係etc.etc.の情報が収まっている。
    の三つ。

    control.tar.gzの中身を見てみると、
     control … 依存関係やパッケージ概要などなど書かれている。
     md5sums … data.tar.gzの中身のハッシュ値が書かれている。
     postinst,postrm,preinst,prerm …… インストール/アンインストール時に実行されるスクリプトなど。
    ここまでは知ってたんだけど、もう一つconffilesというファイルがあった。中を見てみると、件の記事で扱った/etc/X11/Xsession.d/70pulseaudioや、他にも設定ファイルっぽいパスが書かれている。
    conffilesが何なのかと言うと、
    http://www.debian.org/doc/manuals/maint-guide/ch-dother.ja.html#s-conffiles
    conffilesにパスを書いておけば、設定ファイルとして扱われ、removeでは削除されず、purgeで初めて消えてくれるそうだ。

    ところで、これらを調べていて思ったのは「purgeしなかったパッケージの設定ファイルは全部残っちゃってるんじゃね?」ということ。
    removeして設定ファイルだけ残ってしまっているパッケージを簡単に調べる方法は無いもんかと思い、取り合えずSynapticを開いたら、、、あったあった。
    Synapticの左ペインを「状態」別表示にして「未インストール(未設定)」を選択すればいい。。。うわ、結構ある。。。


    <雑記>
    「未インストール(未設定)」って誤訳だよねぇ。「未設定」だと「設定されていない」という意味になっちゃう。LANG=Cな状態での表示は「Not installed(residual config)」。residualの意味は「残っている(もの)」「余り」とかいう意味だから、やっぱり「未設定」ではない。「未インストール」もニュアンスが違うよなぁ。。
    でも良い訳が思い浮かばないんだよなぁ。。。

    2009年5月11日月曜日

    How to create deb package simply.

    http://www.aptana.com/dev/index.php/Creating_a_Debian_Aptana_IDE_package
    Aptanaのサイトにあったdebファイル作成の解説がシンプルでいい感じだったのでメモ。
    上記ページ中では説明が省かれてるけど、run-aptana scriptってのは、Aptanaのための環境変数を設定しながらaptanaを起動させるスクリプトのこと。詳細はAptanaのインストール解説ページとかに任せる。

    追記……するかなぁ……

    2009年4月16日木曜日

    What's "LANG=C" ?

    コマンドを、日本語環境でなく英語環境で実行したいとき、LANG=Cと付けて実行してやったりする。
    $ date$ LANG=C dateのそれぞれの実行結果を見比べると一目瞭然。

    しかし、このCってのがよくわからん。英語環境を表すのにはenというのも用意されていて、実際に$ LANG=en dateとやると、やはり英語で表示してくれる。

    じゃあ、Cって何なのよ。と思い調べてみた。
    それで見つけたのが、次のページのこの記述
    http://mailman.linuxchix.org/pipermail/techtalk/2002-November/013691.html
    'LANG=C' sets the locale for gnumeric to the C locale. The 'C' locale is
    defined as the "default" locale for applications, meaning that their
    strings are displayed as written in the initial code (without passing
    through a translation lookup).
    それっぽい和訳
    「'LANG=C'はgnumericのロケールをCに設定してくれる。この'C'ロケールというのは、アプリケーションにとっての"デフォルト"のロケールと定義されている。つまり、(翻訳をせずに)ソースコードに書かれているそのままの文字列を表示してくれるという訳だ」

    注釈1)引用元ページでは、たまたまgnumericで実行した場合を例にあげているだけであって、上でやってるようにdateコマンドとか、もちろんその他のコマンドでもLANGの役割は同じ。
    注釈2)Unix系OSでのアプリケーションの多言語対応は、素のままの表示メッセージの翻訳を各ロケールごとに作成し、アプリケーションの実行中に逐一対応するメッセージを翻訳ファイルから探してきて表示する。LANG=Cではそれをしない、ということ。

    つまり、"英語で表示"というわけではなく、"翻訳しない"というだけの意味だそうだ。
    もし、元々スワヒリ語のメッセージ表示を行うように作られたソフトがあったなら、LANG=Cを付けて実行した場合の表示はもちろん英語でなくスワヒリ語表示になるだろう。

    結局、何故'C'という文字が当てられているのかはわかりませんでした。。。

    <追記 20090430>
    C言語のCみたいです。(コメントありがとうございました)
    http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html
    This is the standard C locale. The attributes and behavior it provides are specified in the ISO C standard.

    2009年4月15日水曜日

    eval command in bash shell script

    シェルにevalコマンドっていうのがある、受け取った文字列を展開してそれを実行する、っていうイマイチよくわからない説明がよくされる。
    それが、今回やっと理解出来たのでメモ

    たとえば次の様な実行例
    $ hoge="foo"; eval "echo $hoge"
    foo
    具体的にはどういう流れでこうなるのかというと、
    evalは「echo $hoge」という文字列を受け取る。そして、文字列中の展開出来る箇所を展開する。
    この場合は、シェル変数hogeにfooという文字列が入っているから、$hogeの部分はfooと展開される。
    展開後にはその文字列が実行される。
    $hogeはfooに展開されているから、実際に実行されるのは「echo foo」となる。
    なので、表示結果は「foo」となったわけだ。

    ところで、シェルスクリプトでは1次元配列しか扱えないのだけれど、
    このevalを使うことで、2次元配列(多次元配列)を擬似的にだけれど、扱うことが出来る。

    例として、3行3列の配列にランダムな値を入れていく。
    #!/bin/sh

    #declareコマンドでシェル変数iとjを整数値として生成。
    #ただi=0とやると、0という文字を代入していることになってしまう。
    declare -i i=0
    declare -i j=0

    #2重ループで、array_${i}_${j}の各要素にランダムな値を入れていく。
    while [ $i -lt 3 ]
    do
    while [ $j -lt 3 ]
    do
    eval array_${i}_${j}=\$RANDOM
    j=$j+1
    done
    j=0
    i=$i+1
    done

    #各要素の内容を表示
    i=0
    j=0
    while [ $i -lt 3 ]
    do
    while [ $j -lt 3 ]
    do
    eval echo array_${i}_${j}=\$array_${i}_${j}
    j=$j+1
    done
    j=0
    i=$i+1
    done

    結果
    array_0_0=17314
    array_0_1=30499
    array_0_2=5518
    array_1_0=19522
    array_1_1=7919
    array_1_2=2510
    array_2_0=8634
    array_2_1=31473
    array_2_2=5638

    「eval echo array_${i}_${j}=\$array_${i}_${j}」の行がわかりづらいので注釈。
     echo array_${i}_${j}=\$array_${i}_${j}
      ↓展開(i,jともに0の時点だとして)
     echo array_0_0=$array_0_0
    表示結果は
    array_0_0={要素[0][0]の数値}

    それと、array_${i}_${j}のように、大括弧を入れて書くこと。
    array_$i_$jでは、iの次のアンダーラインまで変数名の一部として展開しようとしてしまう。

    2009年4月11日土曜日

    IPA Font lisence changes!

    IPAフォントが2009年4月中旬にもオープンソース・ライセンスへ,改変と再配布が自由に
    http://itpro.nikkeibp.co.jp/article/NEWS/20090403/327784/

    私なんかは、Ubuntu8.10で$ sudo apt-get install ipamonafontってやって使ってるクチなんですが、このライセンス変更のおかげで9.04からはまた標準でIPAモナーフォントが入ってくれないかしら? ……時期的に無理か。ぃゃ、でも9.10には入るんだろうなぁ。

    モナーフォントは初期のIPAフォントのバグを抱えたまんまらしいって聞いたんですが、それでもMSゴシックと同じ文字幅ってのは"使える"と思うんですけどね。
    Linux+OOoな法人/自治体もありますし、外部とやりとりするような文書作成なんかでは良いんじゃないかしら? 素人考え?