2012年6月22日

Android: クリック時にボタンの画像を回転させる方法

押されるとカクッと画像の角度が変わるボタン。

ちょっと調べるのに時間がかかったので一応メモ。

まず res/drawable の下に例えば button_stateful.xml という名前でXMLファイルを作る。





あとは画面レイアウトのXMLファイルの中でボタンを下記の様に定義すればOK。













.

2012年6月9日

Windows/Mac/LinuxでSugarSyncの代わりに使えそうな4つのクラウドストレージ

いつまで経ってもSugarSyncからLinux用クライアントが出て来ない。

そのためしびれを切らしてSugarSyncから離れて他のサービスへ移行するユーザーも多いみたいだ。
SugarSync for Linux . Archive (504) . Feature Request . Forum . SugarSync Community

僕はと言えば以前にも書いた通り、Wine上でWindows版のクライアントを動かして凌いでいる。でもやっぱりネイティブなクライアントがあった方が良いに決まっている。

実際、Wine上のSugarSyncだと同期対象のフォルダ内でファイルを作成・変更してもリアルタイムにアップロードされないという問題がある。(SugarSyncクライアントを一旦終了して起動し直せばアップロードが開始される。)
SugarSync on Linux - Computer

単にLinuxユーザーの絶対数が少ないから開発費をかけるメリットが無い、という理由で切り捨てるのは馬鹿げている。Linuxだけを使っているユーザーよりも、WindowsやMacと併用しているユーザーの方が断然多いはずだからだ。

Windows/MacとLinuxを併用している場合、全ての環境で同じクラウドストレージを使いたいという要望が出て来るのは当然だ。DropBoxではかなり前からこれが実現出来ているし、他の多くのクラウドストレージサービスにも当たり前の様にLinuxクライアントが用意されている。


SugarSyncが何故これほどまでにLinux用クライアントを出さないのか、ここまで来るともうあきれるのを通り越して一種興味深いものがある。もしかすると水面下でMicrosoftと買収交渉でも進行中なのかな、と勘繰りたくもなってくる。(Microsoftは既にSkyDriveやLive Meshを提供しているので多分それは無いだろうけれど。)


さて、ここからが本題だ。

現時点で、Windows/Mac/Linuxで使える他のクラウドストレージサービスを探すとすれば、どんな選択肢があるのだろうか。

ざっと探したところ下の4つが見つかった。
















































さて、では実際にどれを使えば良いのだろうか。

上記のサービスについて、「運営会社の知名度・信用度」、「使われているセキュリティ」、「無料で使える容量」の3つの観点から比較してみた。

サービス名 運営会社 セキュリティ 無料容量
Wuala LaCie クライアント側で暗号化 5GB (+紹介ボーナス)
SpiderOak SpiderOak Inc. クライアント側で暗号化 2GB (+紹介ボーナス)
DropBox Dropbox Inc. サーバー側で暗号化 2GB (+紹介ボーナス)
4shared 4shared.com サーバー側で暗号化(?) 15GB


WualaをやっているLaCie社というのは、フランスのストレージ装置メーカー。米Seagate社に買収されるらしい。もしSeagateの一部門になれば資本規模も万全だし会社としての信用度はかなり高いと思って良いのではないだろうか。(買収後に切り離されたりしない限りは。)

セキュリティ的な観点から見ると、クライアント側での暗号化はぜひ欲しい。サーバー側での暗号化だと、従業員の不正やなんらかのミス、あるいは不具合などで暗号化前のファイルが流出してしまう可能性がどうしても否定出来ないからだ。

これを考えるとDropBoxは選択肢に入れづらい。
参考: Dropboxが約4時間すべてのアカウントのロックを解除してしまう事故が発生 : ライフハッカー

4sharedについてはセキュリティに関する説明があいまいで今ひとつ信頼出来ない印象を持ってしまったので個人的には選択肢からは外したい。

無料容量も出来ればSugarSyncと同等の5GBは欲しい。


以上の事から考えると、現時点ではWualaが最も有力な選択肢になりそうだ。

早速これから試してみようと思う。





追記1: 紹介ボーナスでWualaの初期容量が6GBになるリンクはこちら。→ Wuala


追記2: こちらの記事にも参考になる情報がたくさんあった。
Dropbox vs 他社オンラインストレージ:アナタに一番合っているのはどれ? : ライフハッカー[日本版]












.

2012年6月1日

UbuntuでFIT-PC2iの無線LANを有効にするには?

去年の1月から使っているFIT-PC2i。

前から気になっていた超小型省電力PCを試してみた
前から気になっていた超小型省電力PCを試してみた - その2 リベンジ編
超省電力な上に有線LANポート2つと無線LANが付いている面白いマシンだ。
8GBのUSBメモリに入れたUbuntu 10.04 Serverで順調に稼働している。

ただ、Ubuntu 10.04 Serverをインストールした直後の状態だと無線LANを認識してくれなかった。そのため今まで2つの有線LANポートを使って運用して来たのだけれど、やっぱりそろそろ無線LANも有効にして3つのLANをつなぐFirewallとして動作させてみる事にした。

無線LANを有効にする為の手順は次の通り。
  1. 無線LANチップのLinux用ドライバーをダウンロード。
  2. ドライバーのソースをコンパイル&インストール。
  3. wpa_supplicantの設定を追加。
  4. /etc/network/interfaceファイルに無線LANインターフェースの設定を追加。
  5. ネットワークサービスを再起動する。

1. 無線LANチップのLinux用ドライバーをダウンロード。


メーカのサイトからLinux用ドライバーをダウンロード。
http://www.ralinktech.com/en/04_support/support.php?sn=501
FIT-PC2iのハードウェア仕様を確認すると無線LANのチップは「RaLink RT3070」との事だったので、それに対応したものを選ぶ。


2. ドライバーのソースをコンパイル&インストール。


ダウンロードしたファイルを解凍して README_STA_usb というファイルを読むと、「Makefileを編集しろ」それから「 os/linux/config.mk」も編集しろ、と書いてある。
Build for being controlled by NetworkManager or wpa_supplicant wext functions
Please set 'HAS_WPA_SUPPLICANT=y' and
'HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y'.
とりあえず wpa_supplicant の wext を使うと行けそうなので、上の通りに編集しておく。


3. wpa_supplicantの設定を追加。


/etc に wpa_supplicant.conf というファイルを作って無線LANアクセスポイントへの接続方法を指定すれば良いらしい。
WPA2を使ったセキュリティ設定のやり方がなかなか見つからず、この設定で一番ハマってしまった。

結局このページにたどり着いて同じ様にしたらなんとかつながった。
nlog(n): Linux で無線 LAN の成功と挫折: WPA Supplicant の導入
/etc/wpa_supplicant.confの内容:
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
network={
        ssid="MYSSID"
        scan_ssid=1
        proto=WPA2
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
psk=xxxxx….xxxxの部分は、先にwpa_passphraseコマンドを使って暗号化しておく。


4. /etc/network/interfaceファイルに無線LANインターフェースの設定を追加。


これはいつも有線LANでやっている静的アドレス指定とほぼ同じ。最後の2行が増える点だけが異なる。
auto ra0
iface ra0 inet static
  address 192.168.1.10
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255

  wpa-driver wext
  wpa-conf /etc/wpa_supplicant.conf


5. ネットワークサービスを再起動する。


/etc/init.d/networking restart


これで無線LANが動いた!

さてここから次はFirewallとして使う為の iptables との格闘が始ったのだけれども、それはまた別の話だ。

ネットワークは本当に面白い。







.