2013年2月7日木曜日

UbuntuでのEclipseのツールチップの色を変更する

Unity採用以後のUbuntuで使われているGnomeのAmbianceテーマは、Eclipse上でのツールチップ表示の背景が真っ黒になってしまって見辛いったらありゃしない。
背景色を変更する方法を見つけたのでメモ。

テーマの色を変更する方法

themes - How to change tooltip background color in Unity? - Ask Ubuntu
http://askubuntu.com/questions/70599/how-to-change-tooltip-background-color-in-unity
上記Q&Aでは、回答として大別して3つの方法が寄せられている。
  1. テーマの設定ファイルを直接書き変える
  2. gnome-color-chooser を使う
  3. ~/.gtkrc-2.0 に記述する
今回は3つ目を採用。/usr/の下を直接書き換えるのは気が引けるし、~/.gtkrc-2.0 は作ってあってコピペできる記述例もあったので、gnome-color-chooserをインストールするより早いだろう、と。

設定ファイルの内容

~/.gtkrc-2.0 に以下を記述する。
style "gnome-color-chooser-tooltips"
{
  bg[NORMAL] = "#FFFFAF"
  fg[NORMAL] = "#000000"
}
widget "gtk-tooltip*" style "gnome-color-chooser-tooltips"

参考ページにある例では、~/.gtkrc-2.0-gnome-color-chooserという別ファイルに記述して、そのファイルを読み込む設定(include ".gtkrc-2.0-gnome-color-chooser")を~/.gtkrc-2.0に記述するようになっているが、手っ取り早く直接記述した。
これでツールチップが見覚えのあるクリーム色になった。

環境

  • Thinkpad x201s
  • Ubuntu 12.04.1 LTS Precise Pangolin
  • Eclipse 3.7 Indigo

2013年1月23日水曜日

GoogleChromeはページを指定してPDFを開ける

GoogleChromeの内蔵PDFビューワはページを指定してPDFを開けます。

PDFのURLの末尾に「#page=5」とか付けるだけ。

↓の場合なら、PDFの4ページ目を開いてくれます。
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf#page=4

ページ番号は0から始まるので注意。

2013年1月18日金曜日

ちょっと賢いgit graph

git logコマンドは--graphオプションなどの組み合わせで、良い感じにコミットグラフを表示させる事ができます。
git log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
Gitのちょっと便利な使い方 (ゆめ技:ゆめみスタッフブログ) http://yumewaza.yumemi.co.jp/2010/07/git.html より

git config --global alias.graph 'log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=iso'
1 Entry per Day: git graph http://mstssk.blogspot.jp/2012/03/git-graph.html より

ブランチやオプションの指定をしたい

上記のままでも良い感じですが、普通のgit log同様にブランチを指定したりなどしたい。
そこで、シェルスクリプトを作ってそれをgit graphというエイリアスで実行できるようにしてみる。

gitのエイリアス設定は、!マークを先頭に付けると任意のシェルコマンドを実行させられる。
git config --global alias.graph '!~/.git-graph.sh'
※設定出来るシェルコマンドはあくまで1つだけらしい。コマンドをパイプで繋ぐ事は可能だったが、セミコロンが使えないので制御文をワンライナーで記述したりは出来ない。

.git-graph.sh の中身

実行例1:オプション無しなら--allオプションを自動で付加して実行する
$ git graph 
* <b4840e1> 2013-01-16 22:38:56 +0900 [mstssk]  (HEAD, master) F
* <93d7f2c> 2013-01-16 22:38:50 +0900 [mstssk]  E
| * <659324a> 2013-01-16 22:38:28 +0900 [mstssk]  (experiment) D
| * <1210e5e> 2013-01-16 22:38:18 +0900 [mstssk]  C
|/  
* <3251633> 2013-01-16 22:32:08 +0900 [mstssk]  B
* <4264244> 2013-01-16 22:31:56 +0900 [mstssk]  A
* <4a0ab4a> 2013-01-16 22:28:16 +0900 [mstssk]  first commit

実行例2:ブランチ名を指定すれば、そのブランチのlogだけを表示
$ git graph experiment
* <659324a> 2013-01-16 22:38:28 +0900 [mstssk]  (experiment) D
* <1210e5e> 2013-01-16 22:38:18 +0900 [mstssk]  C
* <3251633> 2013-01-16 22:32:08 +0900 [mstssk]  B
* <4264244> 2013-01-16 22:31:56 +0900 [mstssk]  A
* <4a0ab4a> 2013-01-16 22:28:16 +0900 [mstssk]  first commit

実行例3:日付形式を変更。※シェルがテキトーなので--allが付かなくなる。
$ git graph --date=local 
* <b4840e1> Wed Jan 16 22:38:56 2013 [mstssk]  (HEAD, master) F
* <93d7f2c> Wed Jan 16 22:38:50 2013 [mstssk]  E
* <3251633> Wed Jan 16 22:32:08 2013 [mstssk]  B
* <4264244> Wed Jan 16 22:31:56 2013 [mstssk]  A
* <4a0ab4a> Wed Jan 16 22:28:16 2013 [mstssk]  first commit

tab補完もしたい

ここまで来たらtab補完もしたい。
git logと同じ補完をしてくれるようにするには、以下の設定ファイルを ~/.bash_completion という名前で置いておく。
既に ~/.bash_completion があるなら、追記すれば良い。

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年12月28日金曜日

    drawable.xmlで遊んでみる #androidadvent2012

    これはAndroid Advent Calendar 2012の12月28日<表>のエントリです。

    @kinnekoさんの<裏>記事もどうぞ。
    Supersonicで自前のGoogleMusicを実現する http://d.hatena.ne.jp/kinneko/20121228/p1



    こんにちは。最近、公私共に全然Androidの開発やってない@mstsskです。

    昨年のAndroid Advent Calendar 2011では、先にJPPの太鼓持ちjsonというテーマを決めていたので、「Androidアプリで使えるJSONライブラリ比較」という記事を書きました。

    ですが、今回は記事に出来るような事がなーんにもない状態で、勢いでAdvent Calendarに参加を決めちゃいました。

    ううむ。どうしよう…

    そうだ! Androidと言えば、drawableがある。Shape Drawableを使えば、画像ファイルを用意せずともxmlの記述だけで画面解像度に依存しない図形を描画できる。 #小芝居
    でも、描けるのはあくまでも簡単な図形だけらしい… そこで、drawable.xmlで絵が描けるか試してみました。


    ドロイド君を drawable.xml だけで描いてみた



    はい。読み飛ばした方、こんにちは。

    いかかでしょうか。ドロイド君くらいならxmlの記述だけで描けてしまいます。
    colors.xmlだけは作りましたが、1ソースで済ませるという縛りでやってみたので大分冗長になっちゃってるのはご愛嬌。
    まぁ、ちゃんと分けたとしてもあまり綺麗にはならなそうだったというのもありますけど。




    ふー。終わった終わった。これで肩の荷が降りたわー。あー良かった。

    ん。そういえば、他にも同じ事やってる人いたりしないよな… まさかな…


    ………………

    [drawable ドロイド君][検索]

    …………

    検索結果に…

    ……

    XML Drawable onlyでドロイド君を描いてみた - ReDo



    だだ被りじゃねぇか!!!!! ( Д ) ゜ ゜

    XML Drawable onlyでドロイド君を描いてみた http://greety.sakura.ne.jp/redo/2011/12/xml-drawable-only.html via @youten_redo

    しかも、Advent Calender主催者の、Advent Calender関係ない、1年も前のエントリと。


    このままじゃヤバい。ヤクい。これは、何かしら差別化しないと…

    そうだ! 以前にやったこれをdrawable.xmlでやってみたらどうだろう!


    というわけで↓

    わかめねこを drawable.xml だけで描いてみた


    はい、結局いつものネタに走りました。
    drawable.xmlになってもわかめねこのプリチーさは変わりませんね。



    解説のようなもの

    めんどくさい満足したので、これで終わりにしてもいいんですが、一応解説。

    viewを内包せず、全部1つのdrawable.xmlの中でshapeで済ませるにあたって、ミソになったのが以下
    1. layer-listのitemの子要素として直接shapeを書ける
    2. 最も外側のitemを基準にしたpaddingによる相対的なサイズ・位置の指定
    3. itemとshapeの間にrotate要素を入れて回転を設定
    4. ovalのshapeはstrokeのdashGap,dashWidthを調整すれば円弧が描ける


    layer-listのitemの子要素として直接shapeを書ける


    item要素のandroid:drawable属性で別ファイルのdrawableを指定しなくても、子要素としてshapeを記述できます。


    最も外側のitem要素を基準にしたpaddingによる相対的なサイズ・位置の指定


    item要素のandroid:top,bottom,left,rightの各属性は、各辺ごとに一番外側の部分からの距離(padding)を指定します。
    そこで、適当なsize指定をしたitem要素を外枠として、その内側に収まるように他のitem要素のpaddingを記述して位置や大きさを指定しました。
    各itemのpaddingを、外枠にしたitem要素のsizeより大きくなるようにしてしまったり、item要素の大きさが負になるようなpadding指定をしてしまうと、全部のitemが思っきり崩れます。

    これは、ソースからドロイド君の胴体部分と外枠部分の記述だけを抜き出したものです。


    itemとshapeの間にrotate要素を入れて回転を設定


    shapeを回転させるには、item要素の直下にshape要素を置かずに、 item → rotate → shape という具合にrotate要素を挟み、その属性で回転角度・回転軸(pivot)を指定します。


    ovalのshapeはstrokeのdashGap,dashWidthを調整すれば円弧が描ける


    shapeは本来は、矩形・丸・線・円の4つの簡単な図形しか描けませんが、無理やり円弧を描くこともできます。
    stroke要素のdashGap属性,dashWidth属性の記述によって、ある程度は円の切れ方を指定できるので、それを利用します。

    これは、わかめねこの鼻の部分のソースです。
    2つの円弧をずらして配置し「ω」という形にしています。

    これらの手段を組み合わせれば、わかめねこの様なイラストもdrawable.xmlで描けてしまう、という訳です。


    Gingerbread以前では?

    ちなみに、これらのコードはICS以降向けです。
    Gingerbread以前のバージョンでも動きますが、rotate指定の回転の基準点が全く違う箇所になる様で、rotateを使っているshapeがずれてしまいます。※ Honeycombで試してない(てへぺろ


    上記はレイアウトエディタのスクリーンショットですが実機でも同じ様な表示となります。
    左アンテナは上にずれ、右アンテナは下にずれて胴体の下に隠れてしまっています(マウスカーソルのある辺りにあります)。

    ちゃんと確認してはいないんですが、どうやら以下のような違いがあるのでは、と考えています。
    ICS以降
    paddingの内側の描画されている範囲の左上が回転軸の基点
    Gingerbread以前
    paddingの外側の一番大きい要素の左上が回転軸の基点



    まとめ

    勢いだけで、大分役に立たない記事と相成りました。

    ただ、png画像など用意せずにxmlの記述だけでもここまで描けるというのがわかっていただけと思うので、今後アプリを作ったりデザインしたりする方々には是非覚えておいていただきたいです。上手く使えば様々な画面解像度への対応が捗るんではないでしょうか。今後もハードウェアの技術向上は続きますから、HTC J butterflyのxxhdpiみたいなショックが来るかも知れませんからね。

    「Androidもうええねん」なんて声も聞こえますが、まだまだAndroidは続きますよ!
    オレはようやくのぼりはじめたばかりだからな。このはてしなく遠いAndroid坂をよ…

    さて、明日は @awwa500 さんと @takke さんの担当です。
    何故か新年までカウントしていくAndroid Advent Calender 2012。どうぞ大晦日の大トリ記事までよろしくお願いします。



    今回作ったもの

    2012年11月21日水曜日

    わかめねこをCSS3を使って描いてみた

    @vvakame さんのアバターをCSS3で描けるか試してみた。
    一部ズルっこいことしてるけど、かなりの再現度になったと思う。


     ↓に触発されてやってみた。
    CSS3のみで書かれたアイコンセットがすごいな | IDEA*IDEA
    http://www.ideaxidea.com/archives/2012/11/css3_icons.html

    2012年10月27日土曜日

    ソニーのNFC+FeliCa両対応チップはISO/IEC15693タグを読めない[ICT ERA+ABC2012東北]

    ※ 結論はタイトルの通り

    過日行われた「ICT ERA + ABC 2012 東北」に行って来ました。

    バザールブースでは各メーカーさんが今秋冬発売予定モデルを展示していて、喜び勇んで触って来ました。
    いずれの機種もAndroid 4.0系が載っていて、NFC対応(一部除く)です。
    以下、見かけて触った機種

    ソニーモバイル
    モトローラ
    • RAZR M(FeliCa)
    • RAZR i(NFC)※展示していたのはintelブース
    シャープ

    上記のうち、NFC+FeliCa両対応している機種で手持ちのNFCタグが読めるかどうか試したところ、どの機種も同じく以下の結果になりました。
    両対応な機種が使っているNFCのチップは、すべてソニー製のNFC+FeliCa両対応チップを使っているそうです。
    このソニー製のチップは、以前からISO/IEC 15693に対応していないという噂があったらしく、今回はそれを確かめる形になりました。
    という事は、ソニーのチップはNFC IP-2ではない??

    ちなみに、Galaxy Nexusなどに乗っているNFCチップはNXP製のチップで、ISO/IEC 15693もちゃんと読めます。

    参考

    2012年9月11日火曜日

    FabCafe行ってきた

    最近のナウなヤングはレーザーカッターのあるカフェでアフター5を過ごします。

    と、いうわけで渋谷にあるFabCafeでいっちょ切ってもらって来ました。

    自分がTwitterで使っているアイコンと、@vvakameさんの同じくTwitterのアイコンをFabしてもらいました。





    2012年8月3日金曜日

    NFClab7月定例会

    NFCラボ7月定例会に参加してきました。
    会の様子はめんどくさいのでATNDやTogetterから察していただくとして、ここでは所感を。

    痛感したのは「NFCってやっぱり知ってる人少ないよね」という事。

    そりゃあ、2012年7月現在で国内に2機種(SC-04DISW16SH)しか対応しているものが無い規格なんてそんなものなんでしょうけど、本格的に普及させようという声があまり聞こえて来ません。
    今回の会の会場になった新宿周辺に、社会実験としてNFCタグを埋め込んだポスターがあったそうですが、NFCがいったい何なのか・何をどうすればいいのかという所が分かりづらい・分からない不親切なものだったそうです。
    felica…というよりおサイフケータイと言った方が世の人には通じやすいんでしょうが、それが普及した現在までの間にどれだけの社会活動があったのかが気になってなりません。何か纏まっている資料があれば誰か教えて下さい。

    少なくとも、ユーザー側の環境は来年頃には整ってくる様だ、という点は会場でも話されました。
    NFCを搭載したAndroid機は増えてくるし、WindowsPhoneにもNFCのAPIがあり実証機も存在するそうです。さらにはiPhone5がNFC対応するのでは、という予測もあります。
     
    あとは、サービス提供側がどれだけNFCに対応してくるか、という所が不安です。
    実際の所、既に普及しているfelicaよりNFCという汎用規格を選択するメリットが今の所見えていないです。

    小規模なレベルでNFCを使ったサービスはちらほらありますが、おサイフケータイ並にユーザに普及するにはもっとクリティカルな点で消費者生活に浸透させる必要があるんではないでしょうか。
    そしてその点でfelicaは「おサイフケータイ」として金銭の代替としてのアフォーダンスを獲得しています。(ここで言っているアフォーダンスは、本来の意味ではなく、Wikipediaでノーマンの誤用と紹介されている方)
    NFCも「NFC」なんて説明されなきゃ分からないような略語なんかより、もっと「何が出来るのか」という点に訴求するようなニックネームが必要じゃないでしょうか。

    まだまだ先の見えないNFCですが、いちユーザー・いち開発者としては、NFCで遊ぶ気マンマンです。
    東京駅近くの「RFID/NFC Real Touch Shop」には、多くのNFC関連製品が置いてあります。一度足を運んでみる事をオススメしておきます。




    ※上で紹介している内容を発表された方のスライドの公開場所がわからないor見落としている為、勝手に妄想で書いてるような形になってしまっていて orz

    2012年7月25日水曜日

    PITAT-USB3.0/EC34を購入

    今まで使ってた外付けHDDの容量を使いきってしまったので、新たに2TBの外付けHDDを買って来ました。
    そして、買おうと思った物がUSB3.0対応だったので、ちょっと人柱やってみるかと思い、USB3.0のExpressCardアダプタも購入。
    ちゃんと動きました。
    <追記>
    カードがホットプラグで動いてくれず。挿した状態で起動させる必要がありました。

    購入物


    環境

    • ThinkPad X201s
    • Ubuntu12.04 Precise Pangolin

    速度

    • 読み … ディスクユーティリティ(palimpsest)で測定
      最小速度 62.2 MB/s
      最大速度 108.5 MB/s
      平均速度 96.6 MB/s
    • 書き … 約8GBのファイルを内蔵HDDからコピーした際の進行ダイアログ表示から
      最大速度 83.5 MB/s
    実はTouroとPITATを別個に購入して先にTouroを使い始めていたので、ディスクユーティリティの「書き込み速度計測はHDDが空の状態でないといけない」という制限のため、↑こんな測定内容です。

    購入前にちょっとググってもUbuntuでの使用例が見当たらないPITAT君でしたが、ひとまず使えたのでありがたいことです。いっそ2口あるタイプを買っておけば良かったかも。

    ただ、使用中は多少発熱するのが玉に瑕。X201sはExpressCardスロットがパームレストの左側にあるので、使ってると左手が熱いです…


    出っ張りは1mm程度。むしろVGAポートに付けた防塵キャップの方が飛び出てるくらい。

    2012年7月23日月曜日

    株式会社ウサギィにお邪魔してきました

    先日*、株式会社ウサギィに訪問する機会が得られたので、喜び勇んで行って来ました!

    マンションの一室にある社内はシャレオツな雰囲気でした。(全景を撮るのを忘れた… orz)




    都合により短い間でしたが、ウサギィ社員の方々や一緒に訪問した方たちと歓談し楽しいひとときを過ごしました。


    *実際に訪問したのは2ヶ月近く前なのは内緒

    2012年7月22日日曜日

    githugでおべんきょう


    gitの使い方を実際にコマンド叩きつつ勉強出来るgithugが面白そうだったのでメモ。

    参考:



    githugはgemで公開されてるそうなので、Ubuntuなら
    $ sudo apt-get install gem ←gemがインストール済みなら不要
    $ sudo gem install githug
    ってな具合でインストール。

     あとは、githug叩くごとに色々指示(問題)が出されるので、それをこなしてからまたgithug叩く、ってのを繰り返していく。
    gitコマンド叩いてゴニョゴニョするだけじゃなく、場合によっては問題への回答を求められたりもする。

    2012年7月15日日曜日

    Ubuntu12.04を10.04以前のデスクトップ環境で使いたい

    Ubuntuを10.04のデスクトップ環境に戻したかったので、gnome-session-fallbackをインストール。
    だが、gnome-session-fallbackをインストールしただけだと、細かいところでぐぬぬとなる。
    sudo apt-get install gnome-session-fallback
    sudo apt-get install gnome-system-tools
    sudo apt-get install compizconfig-settings-manager
    
    インストール終了後、compizconfig-settings-managerで設定をする。
    alt+tabによるウィンドウ切り替えが使えなかったりするので、アプリケーション・スイッチャーを有効にするなど。

    以前は、デスクトップのパネル上で右クリックすると、パネルにアプレットを追加するメニューなど表示されたが、それは Super+Alt+右クリック になっている。

    とりあえずこれくらいで、まぁ使える感じになる。
    あとは、外見テーマまわりが変な感じだがとりあえず我慢して使ってる次第。

    あとはMATEとか入れてみるしかないのかな…
    MATEについて参考: http://ankyo.blog.so-net.ne.jp/2012-05-17

    2012年4月30日月曜日

    Ubuntu12.04インストールメモ

    Ubuntu 12.04 LTS Precise Pangolin を ThinkPad X201s にインストール
    今まで使ってた10.04LTSから大分変わって、見たい情報への動線もかなり変わってる。
    「ソフトウェアソース」:Ubuntuソフトウェアセンターのウィンドウメニューの「編集」から
    以下、クリーンインストール後にやったことのメモ書き
    # Japanese Teamによる追加パッケージ
    # http://www.ubuntulinux.jp/japanese
    wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
    wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
    sudo wget https://www.ubuntulinux.jp/sources.list.d/precise.list -O /etc/apt/sources.list.d/ubuntu-ja.list
    sudo apt-get update
    
    sudo apt-get upgrade
    
    # タスクバーからIBusの設定画面出して、IME切り替えのキーボードショートカットを変更。
    # Ctrl+Space を削除して、代わりに Henkan_Mode を追加
    # (Macっぽく、キーボードの[変換]キーでIMEのon/off出来るようにする)
    
    # Medibuntuのパッケージ
    # http://medibuntu.org/repository.php
    sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update
    sudo apt-get install app-install-data-medibuntu apport-hooks-medibuntu
    
    # ubuntu-restricted-addonsのインストール
    # flashプラグインとかIcedTea(OpenJdk)とかコーデックとか
    # 参考:http://smash.nobuto-murata.org/2010/11/ubuntu-restricted-extrasubuntu.html
    sudo apt-get install ubuntu-restricted-addons
    
    # Google Chromeのインストール
    # http://dev.chromium.org/getting-involved/dev-channel
    # 上記ページから「Dev channel for 32-bit Debian/Ubuntu」のリンクのdebファイルをインストール
    # (あえてunstableを使ってる)
    # Google Chromeはdebをインストールするとリポジトリも勝手に追加されるので、他のアプリ同様にアップデートが落ちてくるようになる。
    # 追加されるリポジトリ(を記述したファイル)→ /etc/apt/sources.list.d/google-chrome.list
    
    # mozcのインストール
    # https://launchpad.net/~japanese-testers/+archive/mozc
    # 参考: http://blog.goo.ne.jp/minoh_edubuntu/e/632a79175331b039aa116109b76a6378
    # ※ 参考ページでは「ppa:japanese-testers/ppa」を追加しているが、ここではmozcだけ欲しいので「ppa:japanese-testers/mozc」を追加している。
    sudo add-apt-repository ppa:japanese-testers/mozc
    # ↑を叩くと、PPAリポジトリの追加をするかの確認をされる。OKならENTER。キャンセルならCtrl+C
    sudo apt-get update
    sudo apt-get install ibus-mozc
    # 再起動(一度ログオフするだけでもいける?)してから、タスクバーのIBus設定でmozcを有功にする。
    
    # ホームディレクトリにあるディレクトリの名前を英語にする
    # 参考: http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a077changelang.html
    # 「ドキュメント」→「Document」とか、「公開」→「Public」って具合に
    LANG=C xdg-user-dirs-gtk-update
    # 上記コマンドを叩くと、確認ダイアログが表示されるので「Don't ask me this agein」にチェックを入れてから「Update names」ボタン押下
    # この時、既に各ディレクトリ内にファイルがある場合、ファイルを保持してディレクトリが残ったままになるので、適宜ファイルを移動してから不要なディレクトリを削除する。
    # ※ デスクトップは、再ログインするまでは「Desktop」ではなく「デスクトップ」ディレクトリを参照し続ける。
    
    # Dropbox
    sudo apt-get install nautilus-dropbox
    # 怖い雰囲気のダイアログが出るけど、ちゃんとインストールされる。
    
    # Skype
    # https://wiki.ubuntulinux.jp/UbuntuTips/Application/HowToInstallSkype
    
    # CompizConfig設定マネージャー
    sudo apt-get install compizconfig-settings-manager
    
    # ファイル検索
    # nautilusの検索はドットファイルを検索したり出来ないので、検索ツールをインストール
    sudo apt-get install gnome-search-tool
    
    ところで、マルチディスプレイの時、隣りのディスプレイとの境界でマウスカーソルが引っかかるのはどこで無効にすればいいんですかね?
    うざったくてしょうがないんですが。

    2012年4月1日日曜日

    ミニ四駆ハッカソンに行ってきました

    3月31日に行われた「ドキッ!開発者だらけのミニ四駆大会!!」に行って来ました。
    第1回ミニ四駆ハッカソン
    http://atnd.org/events/26576


    ハッカソンと銘打ってありますが、中身は本当にミニ四駆で遊ぶだけ。

    想像してみてください。大の大人が寄り集まって、
    「俺のアバンテが…!」
    「ナローワンウェイホイールは…」
    「膝にXシャーシを受けてしまってな…」
    「ミニ四駆は横Gが凄いから壁を走っているようなものなんだ…」
    「スタビライザーを…」
    「レギュレーション上は…」
    とか、マジで語り合いつつミニ四駆を走らせるんです。

    ゾクゾクするでしょう?

    ちなみに愛車はブロッケンGブラックスペシャル
    現場で後先考えず手を入れて、↓こんな姿になりました。。。

    今回分かった事

    • 基本的にミニ四駆PROのマシンの方が速い。
      ただしチューンナップ次第で旧タイプでも十分戦える。
    • あまり安定性を求めるより、まずスピード重視に組むべき。
    • でも、そうするとコースから飛び出したマシンを膝に受けてしまうので、スタビライザーなどの横転防止策は必須。
    • ローラーはゴム無しの方が無難っぽい。(摩擦?)
    • 電池は思いの外早く減る。本線前には新しい電池に入れ替えるべき。
    • ミニ四駆PRO用のFRPプレートは、付けようと思えばブロッケンGのボディに付けられる。(上画像参照)
    • 今回の様なイベントを開催する際は、レンタルスペースの床が絨毯だったりしないか要確認。(軸受け六角ベアリングが1つ消えました)
    • FRPプレートの一番外側に大径ローラー付けるとコース幅ギリギリ。コースが歪んでいたりすると、ものの見事に引っかかる。

    第2回があるかは謎。

    2012年3月22日木曜日

    電話番号プラグイン for twicca

    電話番号プラグイン for twicca
    https://play.google.com/store/apps/details?id=jp.mstssk.twiccaplugins.telnum

    twiccaでツイート中の電話番号にサクッと電話がかけられるプラグインを作りました。
    これで携帯電話店のお得情報ツイートから即座に取り置きを頼めるね。

    ↓ソースはgithubに突っ込んだ。
    https://github.com/mstssk/twiccaTelephoneNumberPlugin
    minSdkVersion="4"で、かつデザインとか全く無視して作ってるのでなんかアレ。
    ICSではHoloテーマで表示したりしたいので、コンパチの勉強がてら弄って行こうかと思ってる。

    2012年3月20日火曜日

    Andru USB Power Charger購入

    Andru - Android Robot USB Cell Phone Charger
    http://www.powerbygen.com/USB-Phone-Charger_p_8.html

    GIGAZINEで紹介されて、ちょっと話題になったAndru君を買っちゃいました。

    充電中は目が光る。

    付属のUSBケーブルもちょっとカッコイイ。偶にある、充電専用のUSBケーブル(多分、データ用の線を短絡させてる?)ではなく、ちゃとデータ通信も出来るものでした。

    パッケージはこんなの。調子に乗って2つ購入。片方は、ちょうど誕生日が近かった友人にあげちゃいました。

    3月4日に注文し、届いたのは3月12日でした。
    注文は公式ページから。ただし、米国外からの注文はInternationalCheckoutを使うことになります。まぁ、カートへ追加後の案内に従い「International CHECKOUT」のボタンを押してから、InternationalCheckout側の決済ページで支払い情報や送付先住所を入れてやればOK。

    内訳

    • 本体:50USD (単価25USD)
    • 配送料&手数料:28.42USD

    計:78.42USD(6,525円 1円=0.0119269USD)

    2012年3月19日月曜日

    AndroidプロジェクトでJUnit失敗する場合

    EclipseのAndroidアプリのプロジェクトで、JUnitを使ってテストしようとしたら、JUnit自体がfatal errorでコケた。
    テスト対象のクラスは、AndroidのAPIに依存しない形で作ってたやつだったので「あれー?」とか思ったんだけど、どうやらテスト時のclasspathにandroid.jarが入ってるだけで駄目らしい。

    環境
    ・Ubuntu 10.04 LTS
    ・JDK 1.7
    ・Eclipse 3.7 Indigo

    問題

    ↓みたいなエラーメッセージがEclipseのConsoleに表示されてJUnitが動かなかった。
    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  Internal Error (classFileParser.cpp:3470), pid=12159, tid=3063847792
    #  Error: ShouldNotReachHere()
    #
    # JRE version: 7.0_01-b08
    # Java VM: Java HotSpot(TM) Server VM (21.1-b02 mixed mode linux-x86 )
    # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
    #
    # If you would like to submit a bug report, please visit:
    #   http://bugreport.sun.com/bugreport/crash.jsp
    #

    解決

    1. Run Configulationsを開く
    2. 対象のJUnitテストの設定を選ぶ
    3. Classpathタブでandroid.jarをremove

    ↑これでOKだと思うけど、参考にしたページでは、ちゃんとjunit.jarがプロジェクトのBuild Pathに入ってるかどうかも確認してるので、まぁ適宜確認する。

    参考:
    JUnit - うぃっきうぃき - livedoor Wiki(ウィキ) http://wiki.livedoor.jp/hiromi_u/d/JUnit

    2012年3月12日月曜日

    git graph

    git config --global alias.graph 'log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=iso --color'
    
    ってgitのaliasを設定しておくと、 git graph って叩いた時にいい感じにローカルブランチの状態を表示できる。
    参考ページでは --date=short になってるけど、時刻が表示されないのは嫌なのでisoにしている。

    参考:
    <追記 20121205>
    --colorオプションを追加