2010年12月4日土曜日

Android App: Kanji Viewer

拙作のAndroidアプリ「漢字ビューワ」の紹介
字をでっかく表示します。それだけです。

横表示とかも。

白黒反転したり、フォントを変更したりできます。
スクリーンショットは筆順フォント(http://sites.google.com/site/nihilistorguk/)を使いました。

ダウンロード:
http://market.android.com/details?id=jp.mstssk.kanji_viewer
(published for japanese Android market only.)

TODO:
・Galaxy Tabなど画面サイズがアレな端末への対応

<追記 2010-12-12>
何故かiPhone版が出来ました。
http://mkkptechnote.blog12.fc2.com/blog-entry-9.html

Android app's selector.xml

Androidアプリで自前でボタン用の画像なんかを用意した場合に、
・フォーカスがあった状態
・押された状態
・通常の状態
を定義するのには、以下の様なXMLファイルを作ってやったりします。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- bad order -->
    <item android:state_focused="true" android:drawable="@drawable/item_focused" />
    <item android:state_pressed="true" android:drawable="@drawable/item_pressed" />
    <item android:drawable="@drawable/item_normal" />
</selector>

そして、ここで落とし穴。

ファイル中のitem要素はボタンの状態が変化した際に上から順に評価されていき、状態に合致するものを見つけたら、それ以降のitemは見に行きません。

http://developer.android.com/intl/ja/resources/tutorials/views/hello-formstuff.html
Note: The order of the elements is important. When this drawable is referenced, the s are traversed in-order to determine which one is appropriate for the current button state. Because the "normal" image is last, it is only applied when the conditions android:state_pressed and android:state_focused have both evaluated false.

具体的には、上のitemの順序の場合には、「フォーカスがあった状態で押す」という事をした時には、state_focusedが選択されてしまい、「押してんのに押した場合用のエフェクトにならない」という不具合が起きてしまいます。
対応策としては、state_pressedの優先順位を上げたいので、まぁ順序を変えてやればいいだけの話。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- correct order -->
    <item android:state_pressed="true" android:drawable="@drawable/item_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/item_focused" />
    <item android:drawable="@drawable/item_normal" />
</selector>

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ユーザさんはポチっても損はしませんよ

2010年7月28日水曜日

How to grow grass of laugh in Lucid with Ibus.

やっとのことさ、Ubuntu 10.04 Lucid Lynxを導入したんですが、IMEがIbusになってて困ったことがひとつ。

草が生やせない。

wキーを押しつづけると、「っっっっっっw」になっちゃうんですよね。
ちょっとメニューを見たところでは、SCIMでは出来たローマ字変換テーブルへの追加・編集がIbusでは出来ない模様。

どうしたもんかと思っていたら、ローマ字テーブルの変更について解決策を見出していた方がいらっしゃいました。

iBus-Anthyを使って "xn" で "ん" と打てるようにする
http://d.hatena.ne.jp/tettou77-2/20091108/1257689047

Ibusはローマ字の変換テーブルをPythonのスクリプトコードの中にそのまま持っちゃってるので、いっそそのコードを書き換えてしまえばOKというわけ。

wキー入力による「っ」の出力については、私の今の環境だと /usr/share/ibus-anthy/engine/tables.py の309行目に
u"ww" : (u"っ", u"w"),
というところがあったので、行頭に#を追記してコメントアウト。
あとはIbusを再起動してやると、
「wwwwwwwwwwwwwwwwwwwwwww」
この通り。

P.S.
半角なのはご愛嬌。

2010年6月16日水曜日

Tohoku Android group 6th session.

5月30日に行われた日本Androidの会東北支部第6回発信会に行ってきたんですが、すっかりブログに書くのを忘れてそのまま半月経過。

とりあえず、何故かiPad尽くしの会だったことは書き残しておきます…

<追記>
第6回じゃなく第7回になってたのを修正

2010年5月27日木曜日

twicca's functions

Androidで動作するTwitterクライアントソフトで、一番気に入っているtwicca(実はまだBETA版)というアプリの機能まとめ
(あんまり当たり前な機能は、独断と偏見により一覧から省いてます)

※この記事の内容はもう古くなっています。
 この記事執筆後のアップデートにより、さらに機能が追加されたり、または削除されたりしています。
 参考程度に読んでください。

・カラーラベル機能
 ユーザを色分けして表示
・会話を表示する
 ツイートの返信履歴を辿り一覧表示
・ツイートの共有
 他のアプリに発言内容のテキストを渡す。
 発言者名、発言日時、使用クライアント名、URLも渡る。
・一つのツイートに含まれる全ユーザ宛にツイート
・ツイートを複数選択して全ユーザ宛にツイート
 TL画面でそれぞれのツイートを長押しで複数選択可能
・TLに公式RTを表示しない設定
・非公式RTに返信先情報を付与するかどうかの設定
 ツイート設定画面で

・非公式RT時に返信先情報を付与するかどうかを選択可能(v0.7.20から)
 「引用して返信する」
  … 返信先情報付き。返信と同様に、返信先ユーザーとの共通のフォロワに見える。
 「引用してリツイート」
  … 返信先情報無し。通常のツイートと同様に、フォロワ全員に見える。
・非公式RTの形式の選択
 RT,QT,viaをツイート設定画面で
・画像/動画の投稿
 標準はyfrog。twitpic,はてなフォトライフにもプラグインで対応
 作者自身の手によるプラグイン … yfrog(twicca本体に組込み), twitpic, はてなフォトライフ
 有志の手によるプラグイン   … facebook, flickr, picasa
・yfrog,twitpic,twitgoo,携帯百景などの画像プレビュー
 画像リンクを踏むとブラウザに遷移せずに画像を表示可能
 http://〜.jpg のようなただの画像ファイルへのリンクにも対応
・ツイート中の短縮URLの展開
 ツイート選択メニューでURLを長押しでサブメニュー表示
・URLを短縮URLに変換
 ツイート入力画面で、矢印が向き合ったアイコンを押下
・オートコンプリート機能
 「@〜」と入力した時にユーザ名を前方一致で入力補完するダイアログ表示
・140字を越えるツイートをTwitLongerで投稿、または文字数自動調整。
・使用したハッシュタグを保存し、ツイート画面/検索画面で呼び出し
 ハッシュタグを含むツイートをすると保存。非公式RT時には保存しない設定も可。
 ツイートのサブメニューでハッシュタグ長押しでも保存。
 保存済みハッシュタグ一覧で長押しすると削除可能。
・音量ボタン/検索ボタン/カメラボタンなどのハードウェアキーに操作を指定可
 デフォルトは音量ボタン上下でスクロール、検索ボタンで検索画面に遷移。カメラボタンは忘れた。
・非同期post
 ツイート送信処理中でも他の操作が可能
・ツイートにフッターを自動挿入
・返信時に@の前にドット記号を自動挿入する設定
・現在地情報を付与してのツイート
 地図表示して現在地を選択可能
・他のアプリからのURLの共有時に、Webページタイトルを取得
・TL/自分宛のツイート/DM それぞれの更新チェック
 定期チェックとTL更新時に同時チェック。
 更新があった場合の通知方法は、通知音・LED・バイブをそれぞれ選択可能。LED色も選択可能。
・ブロック中のユーザ一覧表示
・友達を検索
・ユーザを直接表示
 ユーザ名を直接入力して詳細表示。オートコンプリートする
・検索画面にて検索キーワードをプラグインから取得
 現在、buzzterプラグイン/音声入力プラグインがある
・詳細なプロフィール設定
 アイコンのアップロード/現在地ジオタグの挿入
・各画面へのショートカットをホームに設置可能
 ツイート画面、選択したユーザの画面、選択したリストの画面、選択した検索ワードの検索結果画面
 (検索ワードは保存した検索ワードとtwiccaの保存済みハッシュタグから選択)
・ショートカットウィジェットをホーム画面に設置可能
 ツイート画面、ホームTL、自分宛TL、DM画面、検索画面
・選択したユーザ宛の発言(返信)を検索
 返信のみを表示(ツイートが@〜で始まるもののみ)。こんな感じ
・Verified Accountなユーザに✹マークが付く
・リスト機能全般
 リストの新規作成・編集、リストへのユーザの登録/削除
アイコン解像度選択
 TLに表示するアイコン画像を高解像度または低解像度に変更できます。
 表示するサイズが変更されるわけではありません。
ユーザープラグイン機能
 ユーザー情報からゴニョゴニョする機能。
 現在、twiccaの作者様自身の手によるfavotterFavstarのプラグインがある。twiccaのユーザー情報画面からそれらのサービスのWebページにサクッと移動できる。
 ちなみに拙作のTwistarプラグインもあったりします。機能は同じ。
FroYoでのSDカードへのインストールに対応
 現在は、SDカードへのインストール機能は仕様上の都合により削除されています。

このエントリを最初に書いたとき:ver 0.7.19
最後に確認したばーじょん:ver 0.7.31
(ただし、SDカードインストールの削除については更にその後の追記です。)

公式ページ http://twicca.r246.jp/
スマフォ向けページ http://lab.r246.jp/twicca/

<追記 2010-05-28>
読みやすいように少し書式を変更。いくつか追記。
今後も気づいたことがあったら追記する。面倒なのでchangelogはいちいち残さない。(2010-09-19 面倒臭がらない限りにおいて残します)
<追記 2010-09-05>
非公式RT時の返信先情報について更新
画像アップロードプラグインについて追記
<追記 2010-09-19>
v0.7.31のユーザープラグインとSDカードへのインストールについて追記
<追記 2010-12-19>
SDカードへのインストール許可の無効化について修正。

2010年5月1日土曜日

Tohoku Android group 5th session.

第5回 日本Androidの会 東北支部 発信会に行ってきました。
第4回は仕事の都合がつかず出席できませんでしたが、今回は休日開催という事もあり遅刻せず出席出来て、懇親会の3次会までいました。今考えると、テンションがおかしかったと思います。

今回の発信は2本。以下、感想

・「Android vs iPhoneOS~アプリ開発者から見たプラットフォームの違い~
旦那さんがiPhone、奥さんがAndroid担当というご夫婦での発表。どうにも話の内容がiPhoneの方が濃かった気がするのはご愛嬌。
現在の各々の販売台数、マーケットへの登録アプリ数、さらにアプリのうち有料/無料の割合などの数値を出しての比較は、改めて現状を知ることが出来てよかったです。

印象に残ったのは、有料アプリの割合の比較。
台数とマーケットのアプリの登録数の比率はiPhoneもAndroidも大差ないにも関わらず、iPhoneでは有料アプリがおよそ25%なのに対してAndroidは50%程、という大きな違いがあったこと。「AndroidはFREEの文化が色濃いのでは」という話も出ていましたが、私は「単純に日曜プログラマの比率が多く、ビジネスとしてアプリを公開している割合が少ないだけなのでは」という気がしました。

発表で使われた資料には、AndroidマーケットとApp Storeだけでなく、Ovi Store(Symbian向け)などについても載っていました。アプリのマーケットのローンチはどのプラットフォームも最近と言えますが、Android以外は何年も前から普及しているプラットフォームです。そういったプラットフォーム向けのマーケットの有料アプリの比率が20〜25%程度だったので、Androidへのビジネス参入が増えればAndroidマーケットの有料アプリの比率も同じ程度に落ち着くのではないでしょうか。

ただし、有料アプリ販売モデルとは違う、AdMobの様な広告モデルの話題も耳にするので、後追いのAndroidは他と違う発展を遂げるのかもしれず興味深いです。

・ライトニングトーク「アプリ開発からMarket登録まで
「磯野ー! アプリ作ってマーケットに公開しようぜー!」ってお話。

アプリ公開までの手順は、ファイルに電子署名をしたりする必要があったりなど見落としがちな事があるから、未経験者はぶっつけでやるよりは何か習作的なアプリ作って一度公開するまでの手順をやってみるべきだそう。

それに、実際アプリを公開してみると「市場は正直」というのがよく分かる、と。
1ツ星付けられる事もあれば、スペイン語で「素晴らしいよ!」みたいな興奮したメールが飛んできたりもするそうな。

あと、意外と手こずるのがアイコン作成。(そういえば別の某ライトニングトークで、1日で作ったアプリのアイコンを作るのに3日かかったなんて話も聞きました)
AndroidアプリのアイコンについてはAndroid Developersサイトにガイドラインが載っているので、一応はそれに沿って作るべき何でしょうけども、正直言って面倒くさいよね、と。
今回のライトニングトークの中では「とりあえずGimpでそれっぽく作っとこうぜ」という感じ。

AdobeのPhotoshopやIllustratorを持ってる人はそれを使えばいいんでしょうけども、無くともGimpとInkscapeを使えばまぁまともなアイコンは作れると思います。

ちなみにVer 1.x系と2.x系ではアイコンのガイドラインが大きく変貌していて驚愕しました。

以上、感想。

発信会の後は懇親会。
1次会:飲み屋 2次会:ダイエー地下 3次会:焼肉屋 という、不思議な流れでした。
あ、あと、Androideaという東北支部のサブグループに正式に参加することになったりしました。

参考:
某ライトニングトークってのはたしか、Android Developers Forum in Tokyoでのタオソフトウェアの谷口社長のだったと思います。
http://itpro.nikkeibp.co.jp/article/COLUMN/20100420/347292/?ST=android-dev&P=3

2010年4月14日水曜日

TwitterFollowingChecker

Twitterで、相手がフォローしてくれているかどうかを表示するグリモンを作りました。
http://userscripts.org/scripts/show/74291
GoogleChromeでも動きます。

フォローしてくれているユーザには ☑ を、そうでなければ □ を表示します。

フォロー関係を調べるには、TwitterのAPIのこれ(http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-friendships-exists)とかを使うとtrue/false帰ってくるんですが、別に技術的な事を知らなくても手軽に相手がフォローしてくれているかどうかを確認する方法があります。
Twitterのダイレクトメッセージはフォローしてくれている相手にしか送信できないので、ユーザごとのメニューにダイレクトメッセージの項目があるかどうかを見れば簡単に確認できます。
ですが、いちいちボタンをクリックしてプルダウンメニューを表示させるのも面倒なので、このグリモンを作りました。

実装としても、ユーザごとにダイレクトメッセージの項目があるかどうかを確認しているだけなので、APIを使っていません。APIの制限が気になる人にも優しい作りです。
(実際には、ユーザの情報があるHTML要素にdirect-messageableというクラスが付いているかどうかを見ています。)

既知の問題:
・自分にも☑が出る。
→ 害は無いし別にいいや、と思って放置。
・そもそも☑ってマークが分かり辛い。
→ そのうちそれっぽいシンボルを描く。または誰か描いて。
・Twitter Follower Checker(http://www.sukechan.net/labs/follower_checker/)と名前が紛らわしい。
→ 最初その名前にしようとして、ググってみたらだだ被りだったので今の名前に。英語として意味が通じているかどうかは怪しい。

<追記>
Actionsにmessage usernameがあるかどうかでも分かるのね……
まぁ、他人やリストのフォロー一覧とかユーザ検索の結果一覧なんかでも使えるのでどうぞ。

2010年4月1日木曜日

Shuzo Matsuoka!

TL上をshuzo matsuokaだらけにするgreasemonkeyスクリプトを作成しました。
http://userscripts.org/scripts/show/73030

これで、熱くなれよォォォォッ!

<追記>
Twitterのデザインが変わって、今は動きません。

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