2010年2月3日水曜日

TwitterColorLabel

twiccaのカラーラベル機能をweb版ツイッターで再現するuserscriptを作りました。
http://userscripts.org/scripts/show/67855

How to use:
色を設定したいユーザのプロフィールページに行きます。
リストの管理ボタンの脇にカラーラベル設定のボタンがあるので、クリックして色を設定してください。
(本当はもっと手軽に設定出来るようにしたい。twiccaではユーザの発言のコンテキストメニューから設定できる)
そのユーザの発言に設定した色のラベルが付きます。

お願い:
バグを見つけたら、コメントかTwitterで@mstsskに教えてくれると助かります。

注意:
ユーザの表示名をキーに色の設定を管理するので、表示名が変わってしまうと色の設定が無効になってしまいます。

謝辞:
公開を快諾していただいたtwiccaの作者R246さん、ありがとうございます。

<追記 2010-02-04>
フォロー/フォロワーの一覧画面でもカラーラベルが設定出来るように改善。
(ただし、設定が反映されたかどうか分かり辛いのが今後の課題)
<追記 2010-02-06>
Listページでスタイルが崩れる不具合を修正。機能の変更はありません。
<追記 2010-02-11>
GoogleChrome対応。
それに伴いいろいろリファクタリング。jQuery→素のjavascriptというダウングレードみたいな感じなので、むしろ見辛くなっている気もする。
既知の不具合:
GoogleChromeで、httpとhttpsでアクセスした場合に別々の設定になってしまう。
GoogleChromeでは、設定を保存するためにHTML5のlocalStorageを使っているのだが、httpとhttpsで別のstorageとして扱う仕様?になっているため。
<追記 2010-02-12>
ツールチップの表示位置がずれる不具合修正。
<追記 2010-02-13>
Windows版のGoogleChromeで動作しない、という不具合を修正。style要素のinnerHTML属性にアクセスしようとすると駄目らしい。
<追記 2010-02-14>
フォロー/フォロワーの一覧画面でもカラーラベルが分かるように改善。
<追記 2010-02-16>
リストのフォロー/フォロワーの一覧画面でもカラーラベルが分かるように改善。
実際は前回更新で対応できていて、フラグ切り替え書き換えるだけだったのに、気付いてませんでした
<追記 2010-04-25>
フォロー/フォロワーの一覧画面で連続してカラーラベルを設定すると別のユーザに色が設定されてしまう不具合修正。こんなクリティカルなバグが残っていたとは…。(細かい修正もこれ以前にしたけど割愛)

2010年2月1日月曜日

Reset display settings

ライトニングトークをやった時に、プロジェクタに愛機を繋いだら「現在の画面解像度じゃ駄目よ。◯◯に変更してね」みたいなことをウィザードで促された。
で、適当にはいはい押して設定してやったら、画面解像度がプロジェクタ向きのサイズになったが、設定画面で元の解像度に戻せなくなってしまった。
使っているHPのnx6125は、1440x1050というあまり聞いたことがない解像度。
それでも、Ubuntuたんはちゃんと解像度を判別してくれていたのだが、設定を変更した時に自動判別がされなくなってしまった様。

/etc/X11/xorg.conf を見てみると
SubSection "Display"
  Virtual 1280 2048
 EndSubSection
というサブセクションがあったが、nx6125にインストールしているUbuntu9.04ではハードウェアのこういった設定はHALにやらせるので、xorg.confに設定を書き込んではいけない筈なのだ。それをウィザードで勝手にやっちゃうのかよ……
とはいえ、完全移行しきっていない過渡期のバージョンだというのは聞いていたのであまり気にせずに解決策を模索する。
まぁ、同じディレクトリ(/etc/X11/)に、自動でバックアップファイルが xorg.conf.20100129213825 という名前で残されていたので、こいつをxorg.confに書き戻してやればOK。
ログインしなおせばちゃんと解像度を判断してくれた。

Tohoku Android group 3rd session & Lightning Talks

第3回 日本Androidの会 東北支部 発信会に行ってきました。

初めてライトニングトークなるものをやってみたり^^
内容はほぼネタでしたが、まぁ好評で良かったです。

今度はちゃんと技術的な事で発表できればと思います。

2010年1月17日日曜日

Configure GNOME's browser command.

先日、Ubuntu9.04のブラウザをFirefox3.5にしたのだが、公式のリポジトリからapt-get installすると「firefox」というコマンドではなく「firefox-3.5」というコマンドで起動するようになっている。
9.04では「firefox」はあくまでFirefox3.0系という扱いになっているようだ。

まぁ「firefox-3.5」のエリイアスに「firefox」を設定すればいいのだけれど、端末での操作ではない解決策はないものかと思い、GNOMEの側の設定を弄ることにした。これならば設定エディタ(gconf-editor)でイケる。

設定エディタで
/desktop/gnome/applications/browser/exec
/desktop/gnome/url-handlers/http/command
/desktop/gnome/url-handlers/https/command
の3つの値の「firefox」となっている部分を「firefox-3.5」と書き換えてやればOK。

メッセンジャーソフトでURLをクリックしたり、GNOME-DoでURL文字列を入力するなどして、GNOMEの設定を見てブラウザを起動させる様なアプリから問題なく3.5が使えるようになる筈。

<追記>
↑こんなことしなくても、パネルメニューの
システム > 設定 > お気に入りのアプリ
で設定できますね。。。 orz

Color reply tweets in your tilmeline in Twitter

自分宛のリプライを色分けして表示するグリモンを作った。
ユーザスクリプトコマンドで、色指定を変更も出来る。

http://userscripts.org/scripts/show/66569

2009年12月26日土曜日

Remove tweets by hashtag from your time line in Twitter.

指定したハッシュタグをつけてるツイートは自分のTLには流れないように設定できたらいいと思わない?
というTwitterでの発言を受けて、思わずUserScript作ってみた。

removeTweetsByHashTag
http://userscripts.org/scripts/show/64964

消去する発言が一瞬見えてしまうのが玉に瑕。
Greasemonkeyはページの読み込みが完了した時点で実行されるので、これはどうしようもない……

Greasemonkeyの独自関数(GM関数)を使っているので、Firefox+Greasemonkeyな環境の他は動作想定外。
まぁ、SafariのGreasekitとか、かなり互換性が高いらしいのでいけるのかな?

How to use:
ユーザスクリプトのインストール後、Twitterにログインしている状態(もちろんTLのページにいる状態)で、Firefoxウィンドウ右下のGreasemonkeyのアイコンを右クリック。
「ユーザスクリプトコマンド」のところに
・Add hashtag[delTweetsByHashTag]
・Remove hashtag[delTweetsByHashTag]
・Reset hashtags[delTweetsByHashTag]
の三つのメニューがあるので、あとは何となく分かってください。

あと、unsafeWIndowを使っているのでセキュリティ的にアレですので、お気をつけてお使いください。

<追記>
入力したハッシュタグの扱いの処理バグがあったので修正。
あと、ページをリロードしなくても新しい設定を反映させるように改良。
出来れば、Reset hashtagsしてから上記ページでスクリプトをインストールしてください。

作るときも、特定の発言の要素を削除する処理はすぐ出来たけど、パラメータをユーザが設定出来るようにするところのが時間かかったわww。グリモンのGM_setValue関数とかすっかり忘れてましたよ

2009年12月20日日曜日

[memo]My envilonment of HT03-A(Android)

件の一件で環境を作り直羽目になったので、ちょこっとインストールするアプリの一覧などを覚書として残しておく。

無線LAN設定
 自宅のプラネックソWLANルータに接続出来るように
ロック解除パターン設定
データの同期設定(俺はカレンダーだけで充分)
目覚まし用にアラーム設定
電源管理ウィジェット
FlickWnn
 トグル入力無効
 かなQWERTYキーボード自動切換無効
 英字QWERTYキーボード自動切換常に有効
 数字QWERTYキーボード自動切換無効
 大きめキーサイズ(縦画面)
 Flick判定基準 Level5
 自分の名前を辞書登録
QRコードスキャナー
モバイルGoogleマップ(アップデート)
芋煮
 docomoのアカウント設定
MyQR:アドレス帳へ簡単登録
TaskManager(WingTsengさんの物・同名のアプリが複数ある)
ASTRO File Manager
Droid Comic Viewer
 Scale mode FitHeight
 Reading direction Rigth-to-left
 Load last comic無効
 CBR/RAR support有効
BatteryLife
tCalendarWidget
Sticky Note
自作笑い男ウィジェット

A bug in Android screen lock

日本Androidの会東北支部懇親会での出来事。
戯れにスクリーンロックを弄っていたらロックが解除できなくなりました……

Android機HT03-Aのスクリーンロックは、予め登録しておいたパターンで画面をなぞって解除するのですが、それを連続して何度も間違えると「30秒後にやり直してください」というメッセージが現れて一時的に入力が出来なくなります。その時画面に新たに「パターンを忘れた場合」ボタンが現れるのですが、これが曲者。
このボタンを押すと、GoogleアカウントのIDとパスワードの入力画面に遷移します。


ですが、この画面でいくら正しいアカウントを入力してもロックは解除できないというバグがあります。しかも一度この画面に来ると、再起動してもどうやっても通常のパターン入力画面に戻れない仕様です。
Twitterで嘆いていたら、米Googleのフォーラムで同じ現象に出くわした方の投稿があるのを教えていただきました。
http://www.google.com/support/forum/p/Google+Mobile/thread?tid=627eed11de37ecba&hl=en

ただし、全ての機でこのバグが出るわけではないようです。上のフォーラムの投稿へのレスでも、問題なかった、というものがあります。私のHT03-Aは標準ROMのver1.6だったのですが、標準ROMのver1.5では問題なくアカウント入力でロック解除できたという話も聞きました。

いずれにしろ、ロックされたままになってしまった私のHT03-Aにはリセットという手段しかありません。。。
ファクトリリセット(工場出荷状態にリセット)の手順は
・Homeキーを押しながら電源ON(Homeキー+終話キー)
・リカバリユーティリティの画面(HT03-Aと!マークの絵の画面)が現れる
・再度 Homeキー+終話キーで、リカバリメニューが表示
・「wipe data/factory reset」を選択
 リセット処理は10秒ちょっとくらいで完了します。
・完了したら「reboot system」を選んで再起動

参考:Taosoftware: Android 工場出荷状態に戻す(Factory Reset)方法:(http://www.taosoftware.co.jp/blog/2009/07/android_factory_reset.html)

Tohoku Android group 2nd session

第2回 日本Androidの会 東北支部 発信会&懇親会に行ってきました。

今回は日本Androidの会幹事の渡辺知男さんのお話を聞きました。
私に東北支部の発足を教えてくださった方です^^

Androidで組み込みっぽいことをやってみよう、というお話。
Android機とGainer(http://gainer.cc/)を繋いでゴニョゴニョと……。
まぁ、モノホンの組み込みをやるとなるとこんなのとかこんなのとか、こんなのを使う訳で、実際素人が手出し出来るレベルじゃないよ。ちょっと触ってみる程度ならGainerでよくね?などなど
それと、その時使われた資料は日本Androidの会の技術資料ページにあるそうなので、興味がある方はどうぞー。

話の初めの方はメモしながら聞いてたんですが、いつの間にやら手が止まって聞き入ってしまってました。

発信会の後は懇親会/忘年会
会場が、私が学生時代に酔っ払ってご迷惑をお掛けしたお店だったことに妙な因縁を感じたり……
実際、今回も酔っ払って唾飛ばしまくりながら喋ってた気がします orz

加えて、懇親会の最中に愛機HT03-Aにアクシデント。
帰り道ツイッター出来ずにウズウズする自分に気付いて、すっかり依存症だと再認識。

2009年12月9日水曜日

TwitterUserProfileExtension


なんとなく作ったかんたんGreasemonkeyスクリプトを公開。

http://userscripts.org/scripts/show/63833

Twitterのユーザのプロフィールページに、関連サービスへのリンクを付加します。
・付加するサービス
Favotter
TwitPic
vidly
携帯百景(movapic) ※Twitterと同じユーザ名の場合だけ有効

気が向いたら追加していきます。

Special Thanks to Pasta-K

<追記>
勘違いしてましたが、携帯百景ってTwitterのアカウント使う訳じゃないんですね。。。そりゃユーザ名が違ったりする筈だわ。。。

<追記2>
Twitgoo追加
それとふぁぼったーのアイコンをデータスキームで埋め込みに変更。これ以上あそこが落ちる要因増やしちゃあかんわな。

書き忘れてたけど、Googleマップへのリンクも付加します。
「iPhone〜ジオタグ〜」みたいなのも対応してます。

2009年12月5日土曜日

Same shortcut key...



これはひどい。

Ubuntu 9.04 Gnome Terminal

<追記>
ディスクブートしたUbuntu 9.10ではこんな感じだった。


つーわけで、未訳の「C_lose Terminal」を訳しておいた。
https://translations.launchpad.net/ubuntu/karmic/+source/gnome-terminal/+pots/gnome-terminal/ja/431/+translate

2009年12月4日金曜日

Skype updates failed?

まだUbuntu9.04な私です。
ついさっき、アップデートマネージャでSkypeをアップデートしようとしたらskype-commonパッケージでエラーが出てアップデート失敗。
とりあえず、再度アップデートをかけてみたら今度は問題なくインストール完了。
なんだったんだろ?

一応バージョンを書いておく
2.1.0.47-0medibuntu0.9.04.1 (jaunty)

2009年11月25日水曜日

Tohoku Android Group 1st Session.

第1回 日本Androidの会 東北支部 発信会に行ってきました。

今回のメインは、有限会社エボテックの畠山さんのセッション。
エボテックでは様々な組込み開発の実績があるそうですが、「Androidでなら何が出来るだろう」というところから始まってプロジェクトが立ち上がり、ET2009ではAndroidを使ったデジタルサイネージのデモを出展したそうです。(ET2009行きたかった…… orz)
ET2009のエボテックの紹介ページ
http://imyme.chicappa.jp/ET2009/exhibitor/exhibitor.cgi?no=199

内容は、畠山さんが実際にAndroidでの組み込み開発に携わってみての感想を元にした、3つの視点から見たときのAndroidのお話。

・技術者目線
Androidを技術面で大雑把に言ってしまえば、「携帯電話向けの顔を持ったLinux」。
なので、既存のLinux開発のノウハウを流用できる。オープンソースなので、開発の初期コストが節約できる。しかもGUIセットでお得!
実際の開発としては、階層分けして作業が出来る。アプリ屋・ミドルウェア屋・ドライバ屋という具合。

・事業者目線
先日のET2009ではAndroidで盛り上がっていて、エボテックの他にもAndroid関連の出展が多かったそうです。
実際にAndroidで組み込みの技術に関係したビジネスをやるとするなら、ポーティングとかミドルウェア/ドライバの高速化やカスタマイズなどがあるだろう(もちろんアプリなどコンテンツ提供も)。

・利用者目線
メモ忘れ

とりあえずこんな感じでした。

「携帯機器向けのAndroidを組み込みで扱うのは余計な手間がかかるしどうなの?」という意見も出ましたが、今のAndroidを取り巻く市場に足りないのはこういう事業者目線なのかなと思いました。正直なところ、今まではAndroidを見るのは技術者目線ばかりという印象があったんです。それが最近になって、Android搭載端末が続々と登場し、日本でもHT-03A(HTC Magic)が発売されて、やっとAndroidが「ビジネス」として認知されだしているのは喜ばしいことだよなぁ、と。

次回の東北支部の活動は12月19日土曜日で、早めに発信会を終わらせて忘年会行こうぜ! という具合。

それと、エボテックさんが1月19日に仙台のイベントに出展するそうです。(イベント名聞き漏らして、ググってもそれらしいのが見つからず。。。)

<追記>
ご本人からコメントで補足情報いただきました。
ありがとうございます!

「ものづくりの集い」
平成22年1月19日(火)
 12:00~17:25
プラザ仙台ホテル 松島(東西)

まぁ、平日なので行けそうもないのですが…… orz

2009年11月15日日曜日

Alice Carroll problem in Tohoku IT Security study session.


第2回東北情報セキュリティ勉強会に行ってきました。

講演したのは、HASHコンサルティングの徳丸浩さんと、MS09-047脆弱性の謝辞の犯人のnig_luceさん。
あと、お菓子。
講演の後にディスカッションなんかも行ったり。
それとあと、お菓子とか。

徳丸さんの講演内容は、この記事を読んでもらう方が早かったり → 発注者のためのセキュリティ http://www.hash-c.co.jp/d/20090906.html

一応、記憶をつらつらと書き出してみる。

Webアプリケーションのセキュリティとかって、契約に十分に盛り込まれていなかったりする。発注側としてはもし問題が起きた場合に責任の所在が曖昧になるのは避けたい。
ただし、「脆弱性が全くないこと」なんて契約に盛り込めるわけが無い。抽象的な記述のくせに、不可能だと一発で分かる記述なんて、どうしようもない。そもそもそれは、バグの範疇だったりする。
対応策としては、具体的な実装・検収方法を指定するなどある。ただし、諸刃の剣。コストが高くなってしまう。発注側が実装まで指定してしまうのは、開発側のノウハウを潰すことになったりするので。

では、他にコストを下げられる箇所があるか。
仕様策定時に、情報資産を個々にいちいち洗い出したりするが、それって毎度毎度やる必要があること? セキュリティに関する脅威とか、いちいち再確認してもどうせ決まりきってる。
また、絶対問題が起きない製品を作るなんて不可能。ならば、逆にリスクの許容範囲はどこまでか、を考える。問題を起点にして考えるのではなく、ベストプラクティスなセキュリティ対策でどこまで対応出来るのか、から考える。そして、ベストプラクティスなセキュリティ対策なんてのも、決まりきっている。

開発側としては、安全対策を施したライブラリを使ったり等々、開発標準を決めておけば良い。(IPAなどが開発標準のモデルを公開している)

そして、セキュリティに関して発注側が直接負担しなければならないコストは大したことがなかったりする。
(面倒くさくなったので残り割愛)


nig_luceさんの講演は、所謂ID3v2タグのアリス・キャロル問題(全然所謂じゃない点に付いてはご愛嬌)。

フザケた呼び方してますが、実は結構深刻だったりする。
講演では実際に、タグ情報に細工をしたMP3ファイルを再生しようとするとどうなるか、というのも行ってくれた。結果、Windows Media Playerが死亡。
ExplorerでもファイルアイコンにマウスオーバーしただけでMP3ファイルのタグ情報を読みにいくし、詳細表示モードでもそう。そして、内部ではタグ情報を得るためにWindows Media Playerと同じ処理をしようとするので、Explorerも死亡。

ちなみに言うと、報告から対応パッチが出るまで、8ヶ月経過してたそうな。


ディスカッションは殆ど雑談。でも、一応内容はセキュリティのこと言ってたよ!

というわけで、とても有意義な勉強会でした。
主催したまっちゃだいふくさん、スタッフの方々、他の参加者の方々、ありがとうございました。

第3回が楽しみだなぁ!!

参考:アリス・キャロル(Alice Carroll)ARIAの登場人物 - Wikipedia

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年10月29日木曜日

Japan Android Group Tohoku Hub KickOff Meeting!

日本Androidの会(http://android.siprop.org/)東北支部のキックオフミーティングに参加してきました。

「立ち上げたはいいものの。で、これから何しよう?」という感じなので、
今回は参加者が各々意見を出していく、ちょっとしたディスカッションだけでした。
これから東北支部をやっていく上で、どんな組織?、どんな事をするの? ってなもんで。

「東北でAndroidを発展させていこう」
「東北からAndroidでビジネスを広げていこう」
「教育の現場でもAndroidを活用しよう」
「東北って括りじゃ広すぎるから、各県のグループのハブ的役割でもいいなじゃないか」
(この記事タイトルもわざとaffiliateとかlimbにせずhubとしてみました)
などなど、、、細かいところはうろ覚えですが

とりあえず、月イチくらいで集まりを持とう、ということになりました。
次は11月の第4水曜日……になる…筈

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年9月5日土曜日

How to management my books...

読んだ・持っている 本を管理するWebサービスをつらつらメモしていく。

読書管理ツール Bookboard.jp
http://www.bookboard.jp/

読書メーター
http://book.akahoshitakuya.com/

みんなの本棚 by BOOK OFF
http://www.mindana.jp/

ブクログ
http://booklog.jp/

to be continued ..?

2009年9月4日金曜日

add Twitter public timeline link(Greasemonkey script)

Twitterのページにpublic_timelineへのリンクを付けるGreasemonkeyスクリプト。
javascriptすっかり忘れて、調べながらチマチマ書いたら、こんなもんに10分以上かかっちまった。
// ==UserScript==
// @name           Twitter public_timeline link
// @namespace      mstssk
// @include        http://twitter.com/*
// ==/UserScript==

var li = document.getElementById("header").getElementsByTagName("li").item(0);
var newli = document.createElement("li");
var a = document.createElement("a");
var txt = document.createTextNode(" Public Timeline ");
a.href = "http://twitter.com/public_timeline";
a.appendChild(txt);
newli.appendChild(a);
li.parentNode.insertBefore(newli, li);

2009年7月26日日曜日

WPA mixid

ただのメモ
http://supportwiki.cisco.com/ViewWiki/index.php/What_is_WPA_mixed_mode_operation,_and_how_do_I_configure_it_in_my_AP%3F

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年5月9日土曜日

Seagate HDD strikes me!

Seagate 3.5インチ内蔵HDD 1.5TB 7200rpm S-ATA/300 32MB ST31500341ASSeagate 3.5インチ内蔵HDD 1.5TB 7200rpm S-ATA/300 32MB ST31500341AS

Seagate
売り上げランキング : 2547

Amazonで詳しく見る
by G-Tools


発症は稀とのフレコミでしたが、大当たりでした。
http://gigazine.net/index.php?/news/comments/20090118_seagate/
http://wikiwiki.jp/buyhdd/?7200.11%C9%D4%B6%F1%B9%E7
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207931&NewLang=ja
http://pc11.2ch.net/test/read.cgi/jisaku/1240139074/l50

ファームウェアを更新すれば良いらしいですが、それは内臓SATA接続が前提なので、ノートPCしかない私にはどうすることも出来ない orz
大学行ってる友人に話したら、研究室のお遣いで4つ買ったら、全部当たりということがあったらしいです。

流れ
・1.5TBのHDDを買って大喜びで帰宅
・一緒に買った外付け用HDDケースにHDDを入れる
・Gparted起動
・パーティションテーブル作成。(この最初の1回だけ認識できた)
・おっとntfsでフォーマットするにはntfsprogsを入れる必要があるのか
・ntfsprogsをインストール
・さぁてGpartedを起動して今度こそフォーマット……
・HDD認識されねぇEEEEEEE ←いまここ
・買ったパーツショップに連絡予定「フォーマットもしてないのにロックされました orz」
to be continued...

<追記>
原因が判明。
HDDケース付属のUSBケーブルの接触不良でした。斜め上な肩透かし orz

2009年5月8日金曜日

Aptana PHP memo

Aptana Studio
http://www.aptana.com/

Aptana PHP
http://www.aptana.com/php

Aptana PHPの現行バージョンは1.0だが、Alpha版の1.1はSmartyテンプレートの作成などにも対応している。
Aptana PHP 1.1のインストール方法
http://www.aptana.com/docs/index.php/Aptana_PHP_Plug-In_1.1

php.iniのinclude_pathの内容を、Aptana PHPの設定のPHP Libraliesに指定してやる。これをしないと、デバッグ時にSmartyをrequireしようとするところでNot Foundエラーが出る。

http://aptana.com/docs/index.php/Installing_Aptana_on_Linux
http://andrewbleakley.com/blog/2008/11/01/installing-and-running-aptana-on-ubuntu-810/

2009年5月7日木曜日

PHP Smarty tips

最近PHPをちょこっとずつ勉強中。
Smartyのテンプレでよく使うであろうパターンの覚書。

escape修飾子と予約変数$smartyの組み合わせ

Smartyのテンプレでは、変数に修飾子というものを付加して表示結果を弄れる。escape修飾子は文字列中の記号などをエスケープしてくれる。
また、予約変数の$smartyを使うと、テンプレート内からPHPの定義済み変数にアクセスできる。
よくあるwebの入力フォームでは、入力エラーの場合に入力内容をそのまま表示仕返してやったりする。それを、Smartyを使えば次のようにテンプレートに記述することで済む。
<input type="text" name="hoge" value="{$smarty.post.hoge|escape}">

関数も修飾子として使える

escapeなどSmartyで用意されているものだけでなく、PHP側の普通の関数もテンプレート内から修飾子として呼び出せる。
例えば、入力内容をそのスクリプト自身にsubmitさせてやるようなフォームなら、basename関数を修飾子として使い、actionの指定もテンプレート内で動的に書き出せる。
<form action="./{$smarty.server.SCRIPT_NAME|basename}" >

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な法人/自治体もありますし、外部とやりとりするような文書作成なんかでは良いんじゃないかしら? 素人考え?

2009年4月3日金曜日

dot is separator

NTTドコモ、メールアドレスのルールを変更 〜 ピリオド連続などが使用不可に
http://www.rbbtoday.com/news/20090403/59059.html

メールアドレスを決める時、本来は次はアウト
・ドットから始まる
・ドットで終わる
・ドットの連続

だけど、docomoとauは今まで上記のルールから逸脱したアドレスでも登録出来るようになってた。世の中には、ルールから外れたメールアドレスが無効なものだとして、そういうメールを受け付けないメールサーバもあるので、docomo/からのメールを受信できない、またはdocomo/auへ送信できないっていう場合があったりする。

まぁそれは知ってたんだけど、でも何で?とふと思った。
で、ちょっと調べたら、当たり前な事実が出てきて、そんなことにも気づけなかった自分にorz

ドットって、メールに限らずアドレスでは基本的に区切りの文字として使うんですよね。
なので、区切り文字が先頭や最後尾にあったり、区切り文字が連続していたりするのはアウト、っていうわけ。

例えば、mixi.jpとか。mixi.jpというドメインの中で、ccTLD(国別コードトップレベルドメイン)のjpの部分を切り分けてる。

2009年3月18日水曜日

Install Chromium in Ubuntu 8.10

https://launchpad.net/~chromium-daily/+archive/ppa

LaunchpadにChromiumのリポジトリが追加されてたので試してみました。

とりあえず言いたいのは、
タブ表示が出来ないんですけど。。。 orz

まぁ、どうせテストバージョンだし

2009年3月15日日曜日

Shortcut key for Subscript and Superscript in OOo

論文の作成で、解説に記号類を多用するのは理系の性なのだけど、OpenOffice.orgでの上付き文字と下付き文字のショートカットに今更気がついたのでメモ

上付き(Superscript)
Ctrl+Shift+P

下付き(Subscript)
Ctrl+Shift+B

これで作業が楽になってくれます。

2009年2月26日木曜日

How to burn mp3 files to audioCD with K3b in Ubuntu 8.10

音楽CDを焼こうとしたら、Braseroが音楽プロジェクトの作成画面で焼きたいmp3ファイルを選択しようとすると固まってしまう。
そこで、他の適当なライティングソフトを使おうと思い、「アプリケーションの追加と削除」でK3bを見つけた。

さっそくインストールしていざmp3ファイルを焼こう。。。って、対応してない形式のデータって言われてしまい、書き込みリストに追加できない。

どうやら、ライセンスどうこうでmp3には標準では対応していないらしい。
探してみると、libk3b3-extracodecsというソレっぽい名のパッケージがあったので、さっそくインストール。

$ sudo apt-get install libk3b3-extracodecs

これでmp3ファイルがK3bで直接mp3ファイルが扱えるようになりました。

2009年2月17日火曜日

Unix Time:1234567890

Unix時間が12334567890になる瞬間を思いっきり逃してしまったので
$ sudo date -s '2009/2/14 08:31:30' && date '+%s'

とやってみた。

余計に虚しくなったよママン

2009年2月3日火曜日

Apache+mod_ssl failed to run when booting.

Apache+mod_sslがサーバー機の起動時にだけ起動がコケる、という問題に直面。
まぁ、凡ミスだったのだけれど。同じ轍を踏まないようにメモメモ。
環境:Ubuntu 8.10 Server

http://openssl.robata.org/
上記ページの通りに、証明局とサーバを作った。

サーバーの秘密鍵を作成する段で、パスワード入力を省略できるようにした秘密鍵(nopass_server.key)を作成している。
Apacheの設定でSSLCertificateKeyFile(サーバの秘密鍵)を指定する箇所にはこのnopass_server.keyを指定してやり、Apache起動時のパスワード入力を省略させることができる。
パスワード入力が必要な方の秘密鍵を指定してやると、サーバー(マシン)起動時にはパスワード入力なんか出来ないので、Apacheの起動がコケてしまう。

端末からsudo /etc/init.d/apache startとかやる分にはパスワード入力を促すメッセージが出るけど、起動時にはそんなん無理だ。

2009年2月2日月曜日

Ubuntu has HL-4050CDN(brother) driver.

大学の研究室でLinuxからでも容易に使えるようにと考えた結果、費用対効果などからbrotherのHL-4050CDNを購入。しかし、届いてからずっとほったらかしていた。
卒業研究の発表間近で参考にするためウェブページを印刷するところで、やっと重い腰を上げた。まぁ、研究で頭パンクしそうなので気分転換の意味もあったんですが。

以前使っていたプリンタを撤去して空いていたスペースに設置し、トナーをぶっこむ。
ネットワーク対応なのでおもむろにLANケーブルを繋いで、ちっさな設定画面でIPアドレスを固定してやる。

こっから先は、Ubuntuの賢さに涙が出そうになった。
メニューの「プリンタの設定」で、[新規]ボタンをクリックするとネットワーク上のプリンタを探してきて表示してくれる。HL-4050CDNもちゃんと見つけてくれているので、選択肢して次へ。
HL-4050CDNのプリンタドライバが標準で備わっているので、あとはダイアログを次へ次へと。(Ubuntu8.10)

「プリンタの設定」ウィンドウにHL-4050CDNが追加されたので、プロパティから「テストページの印刷」を選ぶと、、、印刷サレター!


簡単過ぎて、すぐ卒業研究という現実に戻されてしまったのはしょうがない。

2009年2月1日日曜日

What's "~/.wapi"?

HDD上のいらないものを整理してたらなんかホームディレクトリによくわからんドットディレクトリがあった。

~/.wapi

wapiでググってみても中国の独自無線LAN規格とか関係ないものが出てくるんだけど、キーワードにubuntuを追加してみたらUbuntuのフォーラムに同じ疑問を投稿してる人がいて、そのレスポンスのおかげで答えがわかった。

http://ubuntuforums.org/showthread.php?t=1000647

ようするにLinux上などで動作するMonoという.NET互換の環境を作るソフトがあり、そのソフトに関するデータを格納するディレクトリがDebian環境では.wapiとして作成されるそうだ。
WindowsAPIって意味かなぁ。

2009年1月29日木曜日

Matz's talk! in "World of OSS" symposium



1月27日にせんだいメディアテークで催された「オープンソースソフトウェアの世界」というイベントに行ってきました。内容は、IPAの三浦広志氏とRubyの作者であるまつもとゆきひろ氏(Matz)の講演。
買ったばかりの、というか出版されたばかりのオライリーのRuby本にサインしていただきました。

軽く緊張してて、帽子被ったままサインを貰いに行ったのは良い(?)思い出。

2009年1月24日土曜日

OSC 2009 Sendai

オープンソースカンファレンス2009仙台
http://www.ospn.jp/osc2009-sendai/

行ってきました。
LiveCDとかいろいろ貰ったり^^


Ubuntu9.04のコードネームはJaunty Jackalope。Jauntyは素早い(ササっとした動作)という意味で、Jackalopeは角ウサギという空想上の生物。ウサギには角のような突起物が頭に生える病気があるらしく、角ウサギ伝説はそこから来たんじゃないかということらしいです。
「病気のウサギ」というコードネームにJapanese Teamの方が不安を抱いてることを漏らしたり。。。セミナーで「ササっと死んじゃうって事ですか?」と言ったのは私です。失礼しました orz

2009年1月22日木曜日

Skype error[Ubuntu8.10][pulseaudio]

昨日、友人とSkypeしようとしたら通話が出来ないという状況に陥った。
「オーディオプレイヤーに問題があります」というエラーが出て、コールすることが出来ない。

ググったらUbuntuのフォーラムで既に解決策が
http://forums.ubuntulinux.jp/viewtopic.php?id=3413

Skypeとpulseaudioが相性悪いらしい。
なので、pulseaudio関係を一期に削除
$ sudo apt-get remove pulseaudio*
$ sudo rm /etc/X11/Xsession.d/70pulseaudio

Xの起動プロセスからもpulseaudioを削除する必要があるので、2つ目のrmもちゃんと行うこと。怠るとXが起動しなくなる。(その場合にはubuntu-desktopパッケージをインストールすれば良いらしいけど)

<追記>
apt-getはremoveじゃなく、purgeでも良さそう。後者の場合、/etc/X11/Xsession.d/70pulseaudioも勝手に削除してくれる……?(未検証です)

2009年1月15日木曜日

How to use GETOPT function in C

端末で使ういろいろなコマンドは大抵はオプションを付けていろいろな機能を使うことが出来る。そういったプログラムをCで書くのに必要なgetopt関数の覚書。
unistd.hをインクルードしておくこと。

引数を取るプログラムをCで書くとき、mainの宣言は
 int main(int argc,char *argv[])
こんな感じに書くのが普通。*argv[]が**argvとなってるコードも見たことがある。

で、getoptの使い方。
while ((ch = getopt(argc, argv, "ab:")) != -1){
switch (ch){
case 'a':
-aオプションの処理
break;
case 'b':
-bオプションの処理
この時、-bの次の引数へのポインタがoptargに収まっている
break;
}
}


初めてgetoptを使おうとしたときに見落としていてちょっと躓いたのが、getoptの引数"ab:"の部分。
これはaは引数を取らない、bは引数を取る、という具合になる。使うオプションを""で括ってずらずらっと書いてやり、引数を取るものの後ろにだけ:(コロン)を付けてやればいい。
引数を取るオプションを見つけたときにgetoptはgetargというcharポインタに引数を与えてくれる。例えばコマンドに「-b hogehoge」というオプションが与えられていたならば、getoptがbを見つけたときに、hogehogeという文字列がoptargに収まる。

2009年1月7日水曜日

Compile error of Rockbox's sendfirm.c with libmtp0.3[Ubuntu8.10][libmtp0.3]

作業環境はUbuntu8.10。検索で来たWindowsユーザはこの記事見ても無意味だと思います。悪しからず。

gigabeatSにRockboxをインストールするには、現時点(20090107)では全て手動でコンパイル〜ファームウェア書き込みを行わなければいけないみたい。同じgigabeatでも、FやXシリーズは解析/開発されきってインストールユーティリティのソフトが用意されているのだけど、まだSシリーズは開発途上。

まだ実際にgigabeatSにRockboxをインストールした訳ではないのだけれど、作業時に必要になるsendfirmプログラムをコンパイルする時点で躓いたのでちょっと書いておく。

sendfirmにはlibmtpが必要になるので、
$ sudo apt-get install libmtp-dev
こんな感じでlibmtpのdevelopmentパッケージをインストールしておく。

http://www.rockbox.org/twiki/bin/view/Main/GigabeatSInstallation#A_Compile_the_sendfirm_utility
Rockbox wikiのgigabeatSへのインストール指南に書かれている通りに、現行ビルド一覧ページ(http://build.rockbox.org/)からソースコードをDL。
アーカイブを展開し、端末でその中のutils/MTPディレクトリに入りmakeすると、sendfirmがコンパイルされる。
rockbox-3.1/utils/MTP$ make
gcc -Wall -lmtp -o sendfirm sendfirm.c
sendfirm.c: In function ‘sendfile_function’:
sendfirm.c:94: error: too many arguments to function ‘LIBMTP_Send_File_From_File’
make: *** [sendfirm] エラー 1
$

LIBMTP_Send_File_From_File関数への引数が多すぎるとエラーを吐かれてしまった。

これはどういうことだろうと思い、ソースを見てみる。
エラーが出ているsendfirm.cの94行め付近は
ret = LIBMTP_Send_File_From_File(device, from_path, genfile, progress,
NULL, parent_id);
となっていて、6つ引数が与えられているのが分かる。
で、Ubuntuのリポジトリから落ちてくるlibmtpのver0.3のソースを見てみる。
http://libmtp.sourcearchive.com/documentation/0.3.0/group__files_g552e760a429b0e47a593b8ade20bb763.html#g552e760a429b0e47a593b8ade20bb763
int LIBMTP_Send_File_From_File(
LIBMTP_mtpdevice_t * device,
char const *const path,
LIBMTP_file_t *const filedata,
LIBMTP_progressfunc_t const callback,
void const *const data
)
与えるべき引数の数は5つだ。そりゃエラーになる筈。

今度はver0.2系のソースを見てみる。
http://libmtp.sourcearchive.com/documentation/0.2.1/group__files_gfaf21159580eef716b24da3a257b3060.html#gfaf21159580eef716b24da3a257b3060
int LIBMTP_Send_File_From_File(
LIBMTP_mtpdevice_t * device,
char const *const path,
LIBMTP_file_t *const filedata,
LIBMTP_progressfunc_t const callback,
void const *const data,
uint32_t const parenthandle
)
こっちは6つになってる。
つまり、libmtpのver0.2系(0.1系も引数は6つだった)を考えて書かれたソースだったのね。

んでまぁ、libmtpの0.2系を持ってきてやるのが正当なんだろうけど、面倒なのでいらなそうな6つ目の引数を削除してみる。sendfirm.cの94行め付近「device, from_path, genfile, progress,NULL, parent_id」となってる箇所からparent_idを抜いて、「device, from_path, genfile, progress, NULL」としてから、改めてmake。
rockbox-3.1/utils/MTP$ make
gcc -Wall -lmtp -o sendfirm sendfirm.c
sendfirm.c: In function ‘sendfile_function’:
sendfirm.c:67: 警告: unused variable ‘parent_id’
$
警告出たけど、案の定parent_idが宣言されたけど一度も使われてないよ、ということなのでキニシナイ。

まぁ、肝心のこっから先をやってないんだけどね。

2009年1月5日月曜日

Happy New Year!/[memo]Rcokbox for gigabeat S/Leap second error of Zune&gigabeat

明けましておめでとうございます。
いきなりですが、暫くの間1日1更新できるか怪しくなります。だって、大学の方で卒論の締切りが迫ってきてますから。。。

というわけで、今日のところはちょっと覚書程度に愛機gigabeatSをRockbox化するために必要なページをbookmark。

Gigabeat S Port - Rockbox
http://www.rockbox.org/twiki/bin/view/Main/GigabeatSPort

Rockbox for Gigabeat S
http://audio-p.hp.infoseek.co.jp/

今までMTPデバイスとして扱う方法をいろいろ試してきましたが、Rhythmboxで楽曲を転送した時にVideoフォルダに入れられるという新たな不具合に出くわし、いよいよRockbox試してみるかという心境になったのです。


ところで、閏秒問題について

Zuneとgigabeatが閏年の処理の問題でフリーズ
http://slashdot.jp/it/article.pl?sid=09/01/01/1247219

記事中ではgigabeatのTとVのシリーズしか触れられてませんが、それらと同じPortable Media Centerをファームウェアとして使っているSシリーズも同じ症状で固まりました。もうサポート終わってるとはいえ、除け者にしなくたっていいじゃない(´・ω・`)
症状は起動画面から進まない、とかの筈らしいんですが、私のは故障メッセージが出てたのでこの問題とは関係なく故障したのだと思ってました。以前にも同じメッセージが出て修理に出したことがあったので、さっくり諦めたわけですハイ。
でも、閏秒後にバッテリを放電しきった後に再起動〜〜という対処法を行ったら何故か直っちゃいました。。。(実際にはバッテリが悪くなってるので勝手に放電しきってしまったのですが)

2008年12月25日木曜日

Bacolicio.us

ITmedia ねとらぼ:Webページにベーコン画像を貼り付けられる「Bacolicio.us」
http://www.itmedia.co.jp/news/articles/0812/22/news068.html
http://bacolicio.us/

要するにこんな感じ↓


クリスマスだとかそんなことは関係なく粛々とエントリを更新するこのブログ。
でも、冬休みは取らせていただく予定。


<追記>
クリスマス限定バージョンになってた。

2008年12月24日水曜日

encode video with h264+aac codecs by ffmpeg on Ubuntu8.10 Intrepid Ibex

Ubuntu8.04まではMedibuntuのリポジトリを入れていれば、h264,aacなどのコーデックに対応した版のffmpegがaptでインストール出来たのですが、8.10からやり方が変わったようです。

ffmpegでPSP用に動画をエンコードしようとして、「h264なんてエンコーダ知らないよ」とエラーメッセージを吐かれてびっくらこきました。
確かに、ffmpeg -formatsの出力結果のCodec欄を見ても、h264の行にエンコード可を示すEの字がありません。

Medibuntuの8.04Hardy用のパッケージ一覧ページを見るとちゃんとffmpegがあるのが分かりますが、8.10Intrepidのページではffmpegがそもそもffmpegがありません。
Intrepidでは、ffmpeg本体は公式リポジトリのものを使い、h264などのエンコードには外部ライブラリで対応するという形のようです。


IntrepidのMedibuntuリポジトリを入れた状態で、libavcodec-unstripped-51,libavdevice-unstripped-52,libavformat-unstripped-52,libavutil-unstripped-49,libpostproc-unstripped-51,libswscale-unstripped-0の6つのパッケージをインストールします。
$ sudo apt-get install libavcodec-unstripped-51 libavdevice-unstripped-52 \
libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 \
libswscale-unstripped-0


Ubuntu公式のリポジトリにはlibavformat52といったパッケージがありますが、これらのMedibutu版が〜-unstripped-〜と名前についたパッケージ達です。ffmpeg本体は公式のもののままで大丈夫のはずです。

これでffmpeg -formatsを実行すると、h264のところはそのままですが、「 EV libx264」という行が追加されている筈です。libx264というのはh264コーデックでエンコードするためのffmpeg外部のライブラリです。(libx264パッケージは勝手にインストールされます)
実際にエンコードを行う場合には、以前なら「-vcodec h264」としていた箇所を、「-vcodec libx264」とすれば良いです。aacも、libfaacとします。
この他にも、外部ライブラリとして対応するようになったものがあります(ogg,xvidなど)。ffmpeg -formatsで確認してください。

試しに、一つ動画をPSP用にエンコードしてみましたが問題なく再生出来ました。

$ ffmpeg -i smile.flv -acodec libfaac -ab 256kb -vcodec libx264 -b 256kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -aspect 360:272 -s 360x272 -r 30000/1001 -f psp -flags loop -trellis 2 -level 30 -threads 2 output.mp4 -y

2008年12月23日火曜日

OpenSource/LinuxKeywords:ITpro

オープンソース/Linuxキーワード - 索引 : ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070105/258133/

地味に勉強になります。

あと、こっちも
Linuxコマンド逆引き大全 Index : ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230579/

ブックマーク必須

2008年12月22日月曜日

特定電子メールの送信の適正化等に関する法律[column-spammail]

法改正でメール送信はこう変わる : ASCII.jp
http://ascii.jp/elem/000/000/198/198595/
 今回の法改正の重要な点として、広告・宣伝メールを送る場合に従来の「オプトアウト方式」からメール送信側が受け取り手から事前に送信することに対しての承諾を受けなければいけない「オプトイン方式」への移行が挙げられる。


受信者に無断で広告メールを送る事自体を禁じるらしいです。ってか、既に施行されてるのね。
加えて、送信者は受信者のメールアドレスをどこから入手したのかを証明できるように記録しておく必要がある、と。

無断で送信する行為自体を違法にしたのはグッジョブとしても、これが実効力があるかどうかは別の話だよね。。。

元々無断で広告送るような業者は、法律とか関係ないぜ、という感じな気がするし。実際に違法な広告メール送信が見つかった場合に、どこまで捜査できるの?
あと、PCでメールを使っている人にとっては、海外からの広告メールのほうが多いんじゃないかなぁ。

結局やっぱり自己防衛を徹底するのが一番だと思う。

怪しげなポイントが貰えるケータイサイトの「ご登録いただいたお客様の情報は本サービス提供のためを除き使用致しません。」とかなんとかの文言をアッサリ信じて、メールボックスの8割が広告メールという状態の友人がいるので、決してこういう業者はいなくならないんだろうなぁ、と思います。

2008年12月21日日曜日

A Standard for the Transmission of IP Datagrams on Avian Carriers

こんな動画を見つけたので今日の記事。




今更な話ですが、ジョークRFCの中でも名高い「鳥類キャリアによるIPデータグラム送信標準」(RFC1149)を実際にやった人たちがいます。

The highly unofficial CPIP WG
http://www.blug.linux.no/rfc1149/

要するに、OSI参照モデルの物理層を生体パケット……つまり鳥(実験では伝書鳩が使われた)にやらせよう、というもの。
んはアホなという感じですがちゃんとメリットもあります。

  • コリジョン(信号の衝突)の心配が無い

  • 1次元でしかない銅線の電気信号経路上ではどうしてもコリジョンが発生してしまいますが、3次元空間を利用出来、さらには生体パケットは自身がコリジョン回避機能を持っています。
  • ワームの除去機能

  • キャリアの自己修復機能



さらにはQoSを追求した「IP over Avian Carriers with Quality of Service」(RFC 2549)も存在しています。

2008年12月20日土曜日

How to use mtp-albumart command[mtp-tools][Ubuntu8.10]

GigabeatSを、Ubuntu上でlibmtpを使ったソフトで接続する際は、必ず一度USBケーブル繋ぎなおし&GigabeatSの電源入れ直し(本体下の主電源スイッチではない)しないと、次の接続セッションを開始することが出来ない。これはもう仕様と思って諦めるとして、接続セッションを極力切らずにやれば少しでも楽になるはず。

と言うわけで、あるもので間に合わせる限り、GigabeatSに音楽CDアルバムを取り込む場合の最低限の手順はこんな感じじゃないかと。
既にCDのリッピング/楽曲ファイル作成は済んでいるとします。mtp-sendtrコマンドは一曲ずつしか転送出来ないので使いません。

  1. Rhythmboxでファイルをまとめて転送

  2. GigabeatS繋ぎ直し

  3. mtp-tracksコマンドで楽曲ファイルのIDを調べる

  4. GigabeatS繋ぎ直し

  5. mtp-albumartでアルバム情報作成&アルバムアート転送

こんな感じでしょうか。

Rhythmboxでの操作は、楽曲一覧から転送したい曲をまとめて選択しつつGigabeatSのアイコン(何故か旧iPod Nanoアイコン)にドラッグ&ドロップしてやるだけです。

mtp-tracksコマンドはGigabeatSを繋いだ状態で、
$ mtp-tracks > tracklist.txt
と打って、mtp-tracksの表示結果がtracklist.txtに保存されるようにします。tracklist.txtをgeditあたりで開いて、アルバム分けしたいトラックのIDだけを別にメモしときます。GigabeatSにトラックを転送したのが新しい順番になってるので、転送したばかりのは上のほうにあるはずです。

mtp-albumartコマンドは
$ mtp-albumart 
libmtp version: 0.3.0

You need to pass a filename.
Usage: albumart -i <fileid/trackid> -n <albumname> <imagefile>
で、usageを見る限り1曲ずつしかIDを指定できなさそうですが、実は複数イケます。こんなんソース見ないとわかんねぇよ。。。(http://libmtp.sourcearchive.com/documentation/0.3.4/albumart_8c-source.html)
今回、Number Girlのベストアルバムで試したんですが、こんな感じで指定してやる必要がありました。カレントディレクトリにアルバムアートのファイル(Folder.jpg)があるとします。
$ mtp-albumart -i 16778654 -i 16778655 -i 16778656 -i 16778657 -i 16778658 \
-i 16778659 -i 16778660 -i 16778661 -i 16778662 -i 16778663 -i 16778664 \
-i 16778665 -i 16778666 -i 16778667 -i 16778668 -i 16778669 -i 16778670 \
-i 16778671 -n "OMOIDE IN MY HEAD 1~BEST & B-SIDES~ [Disc 1]" ./Folder.jpg
IDは私のGigabeatSに実際に転送した際に割り振られたもの。いちいち-iオプションをすべての番号の前に付ける必要がありますが、少なくともmtp-albumartコマンドではこれで複数ファイルを指定できます。

地味に面倒くさいのが、IDを抽出する作業という。

2008年12月19日金曜日

Authentication & Authorization

jmblog.jp - 認証と許可
http://jmblog.jp/archives/219

引用


  1. 認証(ユーザーが誰かを確認する)

  2. 許可(そのユーザーがアクセスを許可されているかどうかを確認する)


引用終わり

あぁ、確かにこの違いって実は重要。気をつけないと。

にしても、AuthenticationとAuthorizationってぱっと見同じに見えてしまう俺日本人。何故か、最初に間違えて読んでしまって俺の頭の中でAuthenticationがAuthentificationになってしまってる。そして時折Certificationが混ざり込む。

2008年12月18日木曜日

Picasa 3 for Linux Beta[Ubuntu8.10]

ググって来た人向けに肝心な情報だけ頭に書いときます。
・Picasa3でメニュー回り日本語が豆腐(□)に文字化けするのを解消する方法
(2.7系でもイケるかもしれませんが、試してないです。)
一度環境変数LANGをen_US.UTF-8としてPicasaを起動する。
$ env "LANG=en_US.UTF-8" picasa
Picasaを終了し、その後通常通り起動させれば何故か豆腐が直ってる。

- - - 以下本文 - - -

Windows版のPicasa3が正式リリースされました。
http://picasa.google.co.jp/

なんか悔しかったので、Picasa2.7をapt-get removeして、Picasa 3 for Linux Betaのdebを持ってきてインストール。
http://picasa.google.co.jp/linux/

インストールされるディレクトリが/opt/picasa/〜から/opt/google/picasa/3.0/〜に変更されてます。
アプリケーションメニューにショートカットが作成されなかったので、メニューの編集ウィンドウで2.7の時と同じように作成。フォントの設定ツールは/opt/google/picasa/3.0/bin/picasafontcfg。アイコン画像は/opt/google/picasa/3.0/desktop/にあります。

初めに起動した時に、もし旧バージョンのプロファイルが残っていたらそれを引き継ぐかどうかの確認メッセージが出ます。プロファイルが無い、というか旧バージョンを使った事が無いならこのメッセージは出ません。


その次には、カメラなんかを接続した時に自動でPicasaに取り込むかどうかの確認。


そして、予想通りに文字化けして豆腐状態の利用規約。
この次にも英語で別の規約が表示されますがスクリーンショットは割愛。

ようやくPicasaが起動。勝手にHDDの中を画像を検索してライブラリに加えていきます。ここでは初めから日本語が文字化けせずにいてくれます。


ウィンドウメニューなどは英語表示ですが、大して困らないので別に……と思ったら変な箇所で豆腐が。
設定ウィンドウの、おそらく「キャンセル」「適用」「閉じる」とか表示されるであろう箇所です。

どうもメニューまわりだけ日本語に対応していないのに、環境変数から日本語環境だと読み取って表示出来やしないくせに対応しようとしてます。

Font設定ツールでも表示は文字化けしてますが、設定自体はPicasaのウィンドウ(上述の設定ウィンドウは除く)でちゃんと生きてくれます。Addボタンを押して表示される、代替に指定できるフォントの一覧がちゃんとシステムにインストールされているものも表示してくれて嬉しい限り。もっとも日本語名のフォントは豆腐なので面倒臭いですが。



で、どうにも設定ウィンドウの豆腐が気になったので、Picasaを起動するときだけ環境変数を英語にしてやりゃあ、「キャンセル」が「□□□□□」にならずに「Cancel」となっていっそスッキリするじゃあないか、と思ったので即実行。
アプリケーションメニューに作成したPicasaのショートカットのプロパティのコマンド欄を次の用に書き換え
env "LANG=en_US.UTF-8" picasa
フォント設定ツールのほうも
env "LANG=en_US.UTF-8" /opt/google/picasa/3.0/bin/picasafontcfg

言語環境を表す環境変数LANGは日本語環境なら「ja_JP.UTF-8」なんですが、それをそれぞれの起動時のみ「en_US.UTF-8」で英語に設定。
結果は次の通り


これでいい感じだ〜、と思いながらさらに弄っていると……あれ? 豆腐が直ってる!!


もしや……と思いながら、一度rm -rf ~/.google/picasaでPicasaのプロファイルを削除。
改めて、
素のままpicasaと打って起動……豆腐文字化け。
env "LANG=en_US.UTF-8" picasaで英語表示で一度起動した後に素のままpicasaで起動……日本語が表示される!!

なんだか回りくどくなりましたが、とりあえずPicasaで豆腐を回避する方法を見つけました…… orz

2008年12月17日水曜日

libmtpの覚書

Amarokで同期できなかったので、仕方なく久方ぶりにWindowsXPを起動してWMPで同期しようとしたら、Microsoft Updateやらウィルススキャンやらが勝手に動いてまともに使えやしない。
おまけにWMPはGripでリッピングしたmp3のタグが読めないと来たもんだ。

結局Rhythmboxで転送したよ orz
アルバム分けしてくれないのが難なんだけどね。Amarokではアルバム分けしてくれるのになぁ。

少なくとも、一度GigabeatSとの接続セッションを切ると、デバイスを接続しなおさなきゃ(ソフトウェア上の操作でなく、実際にUSBケーブルを抜き差しする)再接続できないみたい。
同じlibmtpを使っていても、接続セッションを保ちつづけるソフトなら使えるが、一度何かを実行する度セッションを切ってしまうような物は少なくとも私のGigabeatSでは使えないだろう。mtp-toolsも結局一つ一つ別々のコマンドだから、シェルスクリプトで扱うにも駄目だろう。

GigabeatSでは、楽曲ファイル転送時に一緒に送るタグ情報のアルバムの項目には目もくれない。曲の転送とは別にアルバム情報のデータをGigabeatS上に作成してやらなきゃアルバム分けしてくれない。曲ファイル単体のタグの中のアルバム情報と、MTPデバイス上で扱うアルバム情報が明確に分けられている。そしてGigabeatSでは後者だけを使用する仕様みたい。

mtp-albumartコマンドでGigabeatS上の曲ファイルにアルバムアートを付加してやると、何故アルバム分けしてくれたのかというと↓

mtp-albumartコマンドのソースはこれらしい
http://libmtp.sourcearchive.com/documentation/0.3.4/albumart_8c-source.html
本来はlibmtpに付いてくるサンプルコードみたい。

このコード中では、LIBMTP_Create_New_Album関数でアルバム情報をデバイス上に作成してから、そのアルバム情報に対して、LIBMTP_Send_Representative_Sample関数でアルバムアートのデータを転送している。

アルバムアートを扱う専用の方法があるんじゃないかと思い込んでいたのだが、Send_AlbumArtみたいな関数は存在しない。
Representative_Sampleというのは、アルバムを「代表するサンプル」という名前の通り、そのアルバムについてのサンプルとなる情報を設定するものだそうだ。要するに、サムネイル(アルバムアート)とか、プレビュー用に楽曲のサビの部分だとかを扱うもの。(参考:MTPの仕様書 http://www.usb.org/developers/devclass_docs/MTP_1.0.zip)
それが今回の場合はアルバムアートという訳。
LIBMTP_Send_Representative_Sample関数の説明を読むと、iRiverやCreativeのデバイスでもJPEGデータ(要するにアルバムアート/サムネイル)を扱うらしい。

ちなみにこのコードでは、既にアルバム情報が存在しているかどうかを確認せずに、必ず新たにアルバム情報を作成している。なので、コマンドを実行する度に新たなアルバムが出来る。まったく同じ内容を指定して実行すると、まったく同じ内容が作成されるだけだ。

既に存在している場合にそのアルバム情報を更新するには、LIBMTP_Get_Album_List,LIBMTP_Get_Album,LIBMTP_Update_Album,あたりの関数を使えば良いだろう。


libmtpのサイトを見ると、libmtpを使ったソフトの例が載っている。
http://libmtp.sourceforge.net/downstream.php

RhythmboxやAmarokなどのソフトや、RubyとPython向けのlibmtpのwrapperもある。

2008年12月16日火曜日

GigabeatS syncs with Amarok

以下のエントリを書いて、一晩明けたら同期できなくなっていた。
なんなんだよチキショウ

機嫌があるのか

- - - - - - - -

AmarokでGigabeatSに同期出来るようになってました。
以前にやった時は全然だめだったんですけど、いろいろアップデートされたんでしょうねぇ。

Rhythmboxでファイルを転送した場合みたいに、タグからアルバムだけ抜けてたりせずに、ちゃんと同期してくれます。

ただ一つ難点が。
アルバムアートもちゃんと同期してくれるのは嬉しいんですが、Gigabeat上で見るアルバムアートが何故か著しく画質が著しく劣化しています。
試しに、mtp-albumartコマンドでアルバムアートを転送してみたりしましたが、そちらでは元のファイルの画質そのままにでした。

せっかくすっきり転送出来るのに絵が汚いのはなんだかなぁ……
いっそ転送用スクリプトを自分で書くのが早いか……

2008年12月15日月曜日

EasyTagでAnthyが動かない

EasyTagをインストールしているのだけれど、いつのまにか日本語入力が出来なくなっていた。
半角/全角キーを押してもAnthyが呼ばれない。Ctrl+Spaceでもダメ。

EasyTagのバージョンを確認したら、2.1.5……これテストバージョンじゃん orz
Ubuntu8.10にアップグレードしたあたりで、勝手にいろいろアップデートされたのだろうか。

http://easytag.sourceforge.net/
公式サイト曰く、2.1が安定バージョンで、2.1.xはまだ開発バージョンということになってる。
何故そんなのがリポジトリから落ちてきたのかは分からんけど、これは既知のバグの様で一時的な回避方法がlaunchpadに載っていた。

https://bugs.launchpad.net/ubuntu-jp-improvement/+bug/295068/+activity

$ GTK_IM_MODULE=scim easytag
でとりあえずはイケるらしい。
アプリケーションメニューのランチャのプロパティでは、単に環境変数を書いただけではエラーになるので(そういう名前のコマンドとして実行しようとする)、envコマンドを使ってやる。

env "GTK_IM_MODULE=scim" easytag %F
これで、バグを気にかけずにEasyTagが使える。

2008年12月14日日曜日

HTC TouchでAndroid

動画:HTC TouchでAndroidを起動 : Engadget日本版
http://japanese.engadget.com/2008/12/10/htc-touch-android/

上記事中の動画
Android on HTC Touch
http://jp.youtube.com/watch?v=6iKje_0lUYg


AndroidがHTCのWM機上で動作してる動画です。ヤヴァイ、HTC機欲しくなってきた。。。

Touch Diamondで動作してる動画もあります↓

Using Android 0.8 on HTC Diamond
http://jp.youtube.com/watch?v=Oc6w0z_MxUI


やってみたい人はこのサイトを参考に
http://www.myhtcphone.com/
ググったらもっと別の情報も出てきそう。

2008年12月13日土曜日

Firefoxでmailtoリンクをクリックした時にGMailを開く方法

Firefoxでmailtoリンクをクリックした時にGMailを開くようにしたい。
最新版のFirefox3あたりでは、設定画面でプログラムの一覧の中からmailtoに関する項目を見つけると、既にGMailを使用するという項目が存在している。

だが、私は以前からのプロファイルを使いまわしているからなのか、項目にはYahoo!メールしか無かった。
手動でGMailを追加するにはどうしたら良いか。

参考にしたのは次のページ
http://cybernetnews.com/2008/05/21/use-yahoo-mail-or-gmail-for-mailto-links-in-firefox-3/

手順は

  1. 一時的に外部からの環境変数の登録を許可する
  2. about:configでgecko.handlerService.allowRegisterFromDifferentHostを見つけて、値をtrueにする。
  3. mailtoのハンドラとしてGMailを登録する
  4. 次のリンクをクリックしてjavascriptを読み込む。
    javascript:window.navigator.registerProtocolHandler("mailto","https://mail.google.com/mail/?extsrc=mailto&url=%s","Gmail")
    ページ上部に登録についての確認メッセージが現れたら、ボタンを押して登録させる。
  5. 環境変数の登録の許可を不許可の状態に戻す
  6. about:configのgecko.handlerService.allowRegisterFromDifferentHostの値をリセットしておく。
  7. mailtoの取扱い方法を切替
  8. 設定ウィンドウのプログラムタブで、mailtoリンクの取扱い方法を設定する。さっき追加したGMailやYahoo!メールが選べる。リンククリック毎に確認させることも出来る。

javascriptはロケーションバーに貼り付けても良いはずなのだけれど、何故か上手くいかなかったので、リンクからクリックしたほうが無難。

<追記>
javascriptのhrefが間違ってたのを修正しました。

2008年12月12日金曜日

HALたん その2

昨日の続き。

https://wiki.ubuntu.com/X/Config/Input
https://help.ubuntu.com/community/Logitech_MX610

この辺りを参考に、fdiファイルを書いてみたりしたんだけど、どうにもそれが反映されない。
横チルトを左右逆にさえしてくれないっていうの... orz
/var/log/Xorg.0.logを見る限りでは読み込まれてはいるみたいだけど、実際の動作がそのまんまじゃあ意味が無い。xevで見てみても横チルトのボタンが入れ替わって無いのが分かる。

……と、ここまで書いてから、またちょっとググってみたらどうやら/var/log/syslogの方を見た方が良いみたい。
こんな感じで、fdiファイルのどこにエラーがあるのか教えてくれてた。
Dec 12 22:27:20 machinename hald[7915]: error in fdi file /etc/hal/fdi/policy/lx3mouse.fdi:5: Bad rule: unknown type_merge
(lx3mouse.fdiが作成したfdiファイル)
とは言え、なんか面倒くさくなってしまったのでまた次の機会に。

2008年12月11日木曜日

HALたん

今回はメモだけ。

Ubuntu8.10や、Fedora9以降なんかでも同じみたいだけど、xorg.confにデバイス情報書き込んでゴニョゴニョというのは既にスタンダートな方法では無いらしい。

デバイスの管理はHALというデーモンが引き受けていて、今までxorg.confに書いていたデバイスセクションの内容を/etc/hal/fdi/policyにfdiファイルの形式(中身はXML)で書いてやるようになっているらしい。

なんでこんなこと調べているのかというと、愛用のLogicool LX3マウスをHALがちゃんと横チルト付きと認識してくれるのは素晴らしいのだが、どうにも左右逆にされてしまうのをどうにかしたかったからだ。
どうにも逆なのが慣れなくて、自分の感覚の方が世間一般と逆なんじゃないかと思ってしまうくらい。(だけど、何故かFirefoxは対応してくれていた)

参考:
https://wiki.ubuntu.com/X/Config/Input
https://help.ubuntu.com/community/Logitech_MX610

ちなみに、HALという名称はHardware Abstraction Layer(ハードウェア抽象化層)の頭の字をとって付けられているが、あくまで名前はHALみたい。まぎらわしい。

2008年12月10日水曜日

標準のブラウザを変更[Ubuntu8.10]

今回はLinux初心者(もちろん私自身も含む)向けの薀蓄(?)。

XlinkKaiをいろいろ弄っていて、気がついたこと。

kai7.4系ではWebUIを採用していて、操作をブラウザ上から行うことになる。GNOMEパネルの通知スペース上に現れるKaiのアイコンからUIを呼び出そうとすると、勝手にブラウザが立ち上がりKaiのUIとなるページ(http://localhost:34522/)を開く。

この時起動するブラウザというのはどう指定されているのか。

普段はFirefoxを使っているのだけれど、試しにOperaを入れていたりWebkit版Epiphanyを入れていたりしていた。で、KaiはFirefoxでなくOperaを起動したり、Epiphanyを起動したり。。。これは、どうなっているのかなぁと思っていた。

で、答えは/etc/alternatives/ディレクトリにあった。alternativeの名の通りこのディレクトリには様々なアプリケーションを呼び出す際に代替となるシンボリックリンクが置かれている。

XlinkKai7.4のようにWebブラウザに依存するアプリケーションなどは、ユーザがどんなWebブラウザをインストールしているかなど分かるはずが無い。なので、「Webブラウザを起動して」と言うと、その環境で設定されているブラウザが(それが何であれ)ちゃんと起動してくれる仕組みが必要というわけ。

具体的には、端末などからx-www-browserを起動すると/etc/alternatives/x-www-browserというシンボリックリンクが指しているアプリケーション(ブラウザ)が起動する。ls /etc/alternatives/とやってみればシンボリックリンクばっかりなのが分かると思う。ここのリンクを弄ってやれば標準(という言い方は違うのかもしれないけど)のブラウザを変更できるというわけだ。

で、直接シンボリックリンクを書き換えるというわけではなく、ちゃんとユーティリティが存在している。
それにはupdate-alternativesを端末から使用する。

詳細は--helpで参照してもらうとして、とりあえずx-www-browserの設定を弄るには次の様にする。
$ sudo update-alternatives --config x-www-browser

`x-www-browser' を提供する 2 個の alternatives があります。

選択肢 alternative
-----------------------------------------------
1 /usr/bin/firefox-3.0
*+ 2 /usr/bin/epiphany-webkit

デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください: 1
Using '/usr/bin/firefox-3.0' to provide 'x-www-browser'.
$

それにしても、「さもなければ」という訳はどうにかならんかったのか。。。英語版を見ると、単に「or」となってるんだけど。

2008年12月9日火曜日

奇を衒ったようなデザインは嫌いじゃない[WalkmanPhoneXmini]

KDDIが超コンパクトなウォークマンケータイ「Walkman Phone,Xmini」を発売、高音質音楽配信サービスにも対応
http://gigazine.net/index.php?/news/comments/20081208_walkman_phone/

カーソルキー無いじゃん!
って思ったら、ディスプレイ下の名にもない部分はタッチセンサーになってるらしいです。

auのSportioとかMediaSkinとかのデザインは割と好きだったりするんですけど、どうにも「それだけ」感がしちゃったり。

2008年12月8日月曜日

linuxでも XLinkKai その3

環境はUbuntu8.10。

なんか、7.4系でも7.0系でもうまくいかないので、今までは面倒くさがってやっていなかったソースコードからのビルドを試してみる。

このページの指南の通りにやってみる。
http://www.teamxlink.co.uk/wiki/doku.php?id=evo7:brief_guide_to_building_running_kaid_7.0.0.7_in_ubuntu

だがしかし、socketccをmakeするところで、「src/ipaddress.cpp:312: error: ‘strcpy’ was not declared in this scope」とかいろいろエラーを吐かれる。strcpyが宣言されていないよ、と。
ipaddress.cppを見てみると、string.hをincludeしていない。そりゃ、strcpyが無いと言われるわけだ。他の環境では勝手に補完してくれるのかもしれないが、しょうがないのでエラーが出てるソースファイル(ipaddress.cppの他にもいくつか)に「#include <string.h>」を追記してやる。
これで、makeが通るようになる。kai本体のmakeの時も同じようなエラーを吐かれるので、適宜必要なヘッダのinclude文を追記してやる。

だけど、結局PSPとの接続は出来なかった orz

これもちゃんとチェックしたんだけどねぇ
http://jbbs.livedoor.jp/bbs/read.cgi/game/38087/1179601999/986
986 CAS [] Date:2008/02/29(金) 13:31:50 ID:???0 Be:
新型PSPでkai出来ない人、旧PSPで新型の人が見えない人の対処法

XLink-kaiのシステムコンフィングが対応していないために新型PSPが(で)見えない人は
下記の対処をして下さい。

kaiSystemConfig の場所(デフォルト)
英語版では、C:\Program Files\XLink Kai Evolution VII\kaiSystemConfig.txtを
日本語版では、C:\Program Files\XLinkKaiClientBeta\engine\kaiSystemConfig.txtを
それぞれ以下の方法を参考にして追加、または公式サイトから取得し置換えしてください。

① パソコン上級者

XLink kaiフォルダ内のkaiSystemConfig.txtに
"KaiConsole=Sony;PSP;〜"ってあるから。
文の最後に、新型PSPのMACアドレスの上6ケタ「001C26」を追記すればOK

② パソコン中級者

kaiSystemConfigを上書き保存
下記URLからテキストファイルをDLして、同ファイルを上書き保存。

URL: http://www.teamxlink.co.uk/kaiSystemConfig.txt

③ パソコン初心者

 Xlink-Kaiの再インストールをして下さい。

上記対処を実行した後、kaiを再起動すれば、新型でも見えるはずです。
記事の作成に当たり、所々を各スレッドから引用。


ネットワークマネージャアプレットを信用するならば、どうやらPSPとの接続が出来ないみたい。無線LANドングルとの相性とかあるらしいし、どうしようもないのかなぁ……

2008年12月7日日曜日

Ubuntu8.10xVirtualBox2.0でUSB機器を使う

それぞれ最新バージョン(2008年12月7日時点)のUbuntu8.10とVirtualBox2.0で、USB機器を使うにはちょっと以前のバージョンとは違う手順になるのでメモ。

パネルのメニューで、システム > システム管理 > ユーザとグループ で、VirtualBoxのインストール時に作成されている筈のvboxuserとうグループに自ユーザを追加し、かつvboxuserのID番号を控えておく。

/etc/fstabに以下を追記
#Make USB Work in Sun VirtualBox
none /proc/bus/usb usbfs devgid=XXX,devmode=664 0 0
XXXにはvboxuserのグループIDを入れる。

再起動(またはsudo mount -a)。

2008年12月6日土曜日

Picasaで文字化け[Ubuntu8.10]

Ubuntu8.10だと何故かPicasa2.7で日本語が文字化け(というか文字が表示されない)してしまう。そもそもGoogleが公開しているのはUbuntu7.04向けのものなので、動くだけでも僥倖と考えるべきか。。。
いろいろやってみた結果、どうやらPicasa(正確にはPicasaを動かしているwine)からUbuntuのシステム側にインストールされているフォントが見えていない事が問題だったらしい。8.04までは大丈夫だったんだけどなぁ。

んでまぁ、そうと分かればwineへの日本語フォントの設定方法ならいくらでもGoogle先生に聞けば良い。

とりあえず、シンプルかつ不具合が無いだろうなぁと思う方法をメモ。

まず、UbuntuにインストールされているフォントがPicasa側に見えるようにシンボリックリンクを張ってやる。ここではIPA UIフォントを使うが、もちろん他のフォントでも構わない。
$ sudo ln -s /usr/share/fonts/truetype/ipafont/ipagui.ttf /opt/picasa/wine/drive_c/windows/fonts/ipagui.ttf
(Ubutnuのフォントのディレクトリまるごとを指定しても良いが、やってみたらウィンドウメニューが明朝体になったりしたので、使いたいものだけを指定)

これで、ウィンドウメニューのあたりは文字化けが解消される。
だが、その他の部分についてはTahomaフォント(言うまでもなく英字のみ)が直接指定されているみたいなので、Windowsよろしく代替フォントの設定をしてやる必要がある。
代替フォントの設定はアプリケーションメニューにあるPicasa Font Settingsで出来るのだが、ここで代替フォントに指定出来るフォントはwineのレジストリに登録されたものだけの様。
そこで、
$ gedit ~/.picasa/system.reg
で[Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts]という箇所を探す。そこに既に登録されている値を見てみると、Picasa Font Settingsで代替フォントとして指定できる一覧(Add Font Dialog)に表示されるものと同じなので、ここに値を加えてやれば代替フォントに指定できるはず。
というわけで、そこに
"IPA UIGothic"="ipagui.ttf"
の1行を追加。
そして、Picasa Font Settingsを開き、Tahomaの代替フォントとしてIPA UIGothicを加えてやる。

これで、Picasaが文字化けせずに使える筈。

<追記>
こちらも
Picasa 3 for Linux Beta[Ubuntu8.10]
http://mstssk.blogspot.com/2008/12/picasa-3-for-linux-betaubuntu810.html

2008年12月5日金曜日

Songbird1.0リリース!



Songbirdの1.0がリリースされてたのでさっそくインストール。
http://www.getdeb.net/app/SongbirdからdebファイルをDLしてきてダブルクリック〜。

wmaをちゃんと楽曲ファイルとして認識してくれる/再生してくれるのはありがたいんですが、タグを読み込んでくれないのはどういうことなの……。
0.6あたりまでは、一度再生するとなんとかタグが読み込まれてライブラリが更新されるという具合で、なんとかなったんですがねぇ。

2008年12月4日木曜日

DualDiamondが惜しい

イー・モバイルNEWS
ケータイ感覚で使える国内最小*1のスタイリッシュなスマートフォン
「Dual Diamond」(S22HT)を12月20日より発売
http://www.emobile.jp/cgi-bin/press.cgi?id=601

イー・モバイルの隠し球、フルキーボード搭載の最小スマートフォン「Dual Diamond」速攻フォトレビュー:GIGAZINE
http://gigazine.net/index.php?/news/comments/20081204_dual_diamond/

惜しいです。
側見た瞬間一目惚れしたのに、ディスプレイがQVGAだなんて……

2008年12月3日水曜日

スクリプト言語でちょっと短いコードを試してみる時のTips

RubyとかPerlでちょっとした短いコードを書いて(あるいはコピペして)試す場合、いちいちファイルに書き出すのは面倒です。
で、今まで知らなかったのが恥ずかしいくらいなのだけれど、簡単にちょちょっと試す方法があったのでTipsとして覚書。

  $ ruby
hoge = 12
puts hoge #ここまで入力してCtrl + D
12 #実行結果の表示が出てくれる
$

Perlでも同様にイケる。

この動画見て気づいたってのが、まぁ何だかなぁ、って感じ。

2008年12月2日火曜日

930SH気になる……けど


ケータイWatch 「930SH」レビュー
http://k-tai.impress.co.jp/cda/article/review/43023.html

ちょっと気になってる930SHがレビューされてました。
8Mpxカメラなど申し分ない性能なんですが、ひとつ気になる点が。というか、930SHだけの話じゃないんですけどね。


このキー配置に関してです。

930SH(左上図)ではA/a(大/小文字変換)キーと文字(文字種切替)キーが10キーから受話キー/終話キーを隔てた位置にあります。
一方私が長年使ってきた903SH(左下図)では同キーが1キー/3キーのすぐ上にあります。

あくまで個人的な意見でしかないのですけど、後者のほうがあるべき姿じゃない?
文字入力時に頻繁に使うことが予想されるキーが、何故わざわざ他のキーから遠い位置に配置されているのかが不思議でならない。デザイナーを小一時間問い詰めたい。

ついでに言うと、後者のキー配置なら「さ行の悲劇(注)」も防ぐことが出来る。。。それはどうでもいいか。

まぁ、ベル打ちユーザなのでベル入力を搭載してくれるシャープ様にはぜひ頑張ってもらいたいのだけれどねぇ。でもZERO3シリーズに10キー搭載するなら何故ベル打ちも実装してくれなかったのかと嘆く日々です。Willcom 03に手が出せない隠れた理由。

(注:さ行の文字を入力しようとしてその上の終話キーを押してしまって、、、)

2008年12月1日月曜日

Willcom頑張れ

ウィルコムが携帯参入? ドコモMVNOで、一部報道:ITmedia
http://plusd.itmedia.co.jp/mobile/articles/0812/01/news056.html

これでとにかく知りたいのが、既存ユーザ(上記サービス開始前までの契約者含む)もちゃんとその恩恵を受けることができるのかってこと。WILLCOM COREについてもそう。

WILLCOM 03のアカデミック0円キャンペーンでちょっと揺れてるのだけれど、Willcomの現状の通信サービス範囲と通信速度ではやはり買う気になれない(田舎住まいの私にとって得に前者が切実)。

それが、数ヶ月後にもデータ通信の範囲が広くなってくれるのなら買っちゃうかもなぁ、という気持ち。記事読む限りはあくまで、データ通信だけらしいけど、もともとサブ機を考えてるので気にしない。