Hatena::ブログ(Diary)

Hacking My Way 〜 itogのhack日記 RSSフィード Twitter

2012-02-09

eclipseで設定をインポート・エクスポートする

eclipseの素晴らしい点の一つに、emacsキーバインドをサポートしているということがあります。

Eclipse->PreferencesからGeneral->Keys

でSchemeをEclipseに変更すればあっという間に変更できます。素晴らしい。

落とし穴

emacsキーバインドにするといくつか使いづらいところもあるのでいくつか変えたりしますが

ごくたまに、eclipseのemacsキーバインドを確かめたくて、元に戻したいと思うことがあります。

このとき、"Restore Default"は絶対にやってはいけない!

これは、emacsキーバインドのデフォルト、に戻すのではなくて、すべてのキーバインドを"Default"のSchemeに変えてしまうのです。

で、元に戻すにはどうしたらいいんでしょうか?

なんのための"Export CSV"

このPreference画面に、Export CSVというボタンがあり、ここからキーバインドをCSVファイルで出力することができます。が、Importはありません。ImportできないのにExportだけできるって、、何が目的なんだ、、、ただ一覧にして人が見るだけの機能ってことかな。これが2個目の落とし穴。

Exportする

さて、実は設定ファイルはメニューからExportすることができます。

File->Export…からGeneral->Preferences

を選びます。次の画面でどの設定をExportするか選ぶことができます。

今回はキーバインドだけをExportしたいので"Kyes Preferences"にだけチェックを入れておきます。

"To preference file"で出力先をしていします。"Browse…"ボタンから適当なディレクトリ、名前をつけてSaveすると.epfファイルが指定されるので、これで"Finish"ボタン。

Importする

では上でExportした設定ファイルをImportしましょう。

File->Export…からGeneral->Preferences

を選びます。"From preference file"に先ほどExportしたファイルを指定します。"Import all"または"Keys Preferences"にチェクを入れて、”Finish".

これで、

Eclipse->PreferencesからGeneral->Keys

でScheme: emacsの設定内容がExportもとのものと同じになっていることが確認できます。ユーザ設定をしていた場合はその変更も含まれます。

2012-02-08

Androidで文字列をAES暗号化、復号する

Androidで文字列の暗号化、復号するサンプルを作りました。

コードはこちら。 itog/CryptoSample - GitHub

使い方

上のテキストボックスにテキストを入力して、真ん中左のencryptボタンを押すと暗号化された文章が下のテキストボックスに表示されます。

反対に真ん中右側のボタンを押すと文章が復号され、上のテキストボックスに表示されます。もし暗号化されてBase64エンコードされたデータがあるなら直接下のテキストボックスに入力してもOKです。

f:id:itog:20120208154653p:imagef:id:itog:20120208154654p:image

サンプルの解説

使い方

encrypt, decryptともスタティックメソッドなので、シードと暗号化・復号したいテキストを渡すだけです。

Crypto.encrypt(CRYPT_SEED, plainText);
Crypto.decrypt(CRYPT_SEED, encryptedText);

ちなみにサンプルでは"hoge"なんてSEEDを使っていますが、実際に使う場合はハードコーディングではなくて、簡単には読み取れないような処理をした値を使いましょう。

暗号化処理

暗号化の処理を実際にやっているのは以下のメソッドです。AESで暗号化しています。

	private static byte[] encrypt(byte[] raw, byte[] plain) throws Exception {
		SecretKeySpec keySpec = new SecretKeySpec(raw, "AES");
		Cipher cipher = Cipher.getInstance("AES");
		cipher.init(Cipher.ENCRYPT_MODE, keySpec);
		byte[] encrypted = cipher.doFinal(plain);
		return encrypted;
	}
暗号化データをテキストで見えるようにする

暗号化されたデータはバイナリデータなので、テキストとして表すことができません。これを英数字だけで表すBase64にエンコードすることで、今回のサンプルのように暗号化済みのデータをテキストとして扱うことができます。

	Base64.encodeToString(encrypted, Base64.DEFAULT);
復号

復号の処理は暗号化と逆、Base64デコードして、decryptしています。手順を逆にしただけなのでコードは省略します。

以上です。

2012-01-25

MPLAB XとPICkit3でPICベースADKを動かす

はじめに

以下ではマイクロチップが販売しているPIC用の開発キット

PIC24F Accessory Development Starter Kit for Androidの開発環境構築手順を説明しています。

マニュアル http://ww1.microchip.com/downloads/en/DeviceDoc/Android%20Library%20Help.pdf

PICkit3を使った環境の説明なので、PICkit3は必須です。

開発ボードはこのボードではなくても、PICベースの開発ボードであれば同様の手順で環境構築できると思います。

ソフトウェアライブラリのインストール

Microchipのライブラリダウンロードページから

Accessory Framework for Android

をダウンロードし、ZIPを解凍してInstallerを実行します。

  • Setup

"Next"をクリック

  • Lisence Agreement

利用規約に同意できれば "I acept the agreement"にチェックを入れて"Next"

  • Installation Directory

インストール先ディレクトリを選択する。デフォルトでは"/Users/username/microchip_solutions_v2011-12-05-beta"となる

選んだら"Next"

  • Select Components

コンポーネントを選択する。Android Accessoriesにチェックが入っていることを確認してNext

  • Ready to Install

"Next"ボタンクリックでインストールが開始される。

  • Completing Setup Wizard

"Finish"ボタンで終了。

デモプロジェクトを開く

MPLAB X のインストール方法はPIC開発環境 MPLAB X を Mac にインストールする - Hacking My Way 〜 itogのhack日記を参照して下さい。

MPLAB Xで

File->Open Project

から

/Users/username/devel/tools/microchip_solutions_v2011-12-05-beta/Android Accessories/Basic Communication Demo - OpenAccessory Framework/Firmware/MPLAB.X

を選択して "Open Project"ボタンをクリック。

これでプロジェクトが読みこまれるので、"Build Project"ボタンを押してビルドしましょう。

問題なければOutputに"BUILD SUCCESSFUL"と表示されます。

実行

PICkit3、Starter Kitを接続します。

PICkit3をUSBでMacに接続します。次にPICkit3とボードをコネクタの矢印の位置をそろえて接続します。そしてStarter Kitに9VのACアダプタを接続します。

参考)

MPLAB Xのメニューから、

Run->Set Project Configuration

で、

ADK_PIC24F_Accessory_Development_Starter_Kit_For_Android

を選択します。

"Make and Program Device"ボタンを押すと初回はどのツールでデバッグするかを選択する画面がでるので、PICkit3を選択してOK。

問題がなければ以下のように出力されます。

Programming...

Programming/Verify complete

Androidアプリの準備

インストールしたMicrochipのライブラリの中にAndroidアプリのソースが入っているのでそれをビルドするか、ただ動かすだけならマーケットに公開されているのでこちらからインストールすることもできます。

以下ではソースからのビルド方法について説明します。

Androidアプリのビルド

Android開発環境の整ったeclipseNew->Project...からAndroid Projectを選び、"Create project form existing source"

microchip_solutions_v2011-12-05-beta/Android Accessories/Basic Communication Demo - OpenAccessory Framework/App Source Code/v2.3.x または v3.xを選択して作成する。SDKはAPI Level10のGoogle APIsを選択します。。

問題なければ自動ビルドが通るので実行します。

USBでStarter Kitに接続すると、LEDの制御、ボタン・ポテンションメーターのステータス取得ができます!

これで開発環境の構築は完了です。

2012-01-24

PIC開発環境 MPLAB X を Mac にインストールする

MPLab X はNetBeansベースのPIC用IDEです。Java上で動くので、どのMac/Win/Linuxで同じように使うことができます。つい最近このMPLAB Xが出る前まではWin専用のオールドスクールなIDEがデファクトだったのですが、やっとモダンな開発環境でPICの開発が出来るようになりました。

インストールはインストーラで"Next"をクリックしていくだけなのでとても簡単です。

ここではMac上にIDEとPIC24のコンパイラをインストールする手順を紹介します。Javaの実行環境はすでにある前提です。

ダウンロード

ダウンロードページ

http://ww1.microchip.com/downloads/mplab/X_Beta/index.html

※解説動画が自動でループ再生されて、止めることができない(Chrome on Mac)のはなんとかならないのかな、、、

Select Platform: で

Windows/Linux/Mac

を選択する。

Select Development Toolsで、

MPLAB IDE X と MPLAB C30 Lite Compiler for PIC24

を選択する。

コンパイラのインストール

mplabc30-v3.30c-osx-installer.dmg をダブルクリックして展開してできるインストーラーを実行します。

ユーザパスワードを要求されるので入力します。

  • Setup

Nextボタンをクリック

  • License Agreement

規約を読んで、同意できれば"I accept the agreement"にチェックを入れて"Next"

  • Installaction Directory

インストールディレクトリを選択します。デフォルトで"/Applications/microchip/mplabc30/v3.30c"になっているので通常はそのままでNext

  • Ready to Install

Nextボタンクリックでインストールが開始されます。

  • Completing

問題なく終了したら完了画面になるので、Finishボタンクリックで終了します。

MPLAB X のインストール

mplabx-ide-v1.00a-osx-installer.dmg

ユーザパスワードを要求されるので入力します。

  • Setup

Nextボタンをクリック

  • License Agreement

利用規約に同意できれば"I accept the agreement"にチェックを入れてNext.

  • Installation Directory

インストールディレクトリを選択します。デフォルトで"/Applications/microchip/mplabx"担っているので通情はそのままでNext

  • Ready to Install

Nextボタンクリックでインストールが開始されます

  • Completing the MPLAB X IDE

問題なく終了したら完了画面になるので、Finishボタンクリックで終了します。

起動

先ほどインストールしたディレクトリからMPLAB Xを起動します。

簡単ですね。

2012-01-19

ADISアップデートしました!

昨日のエントリ(Android Open Accessoryの理想と現状と自分の取り組み - Hacking My Way 〜 itogのhack日記)にも書いたけど下のほうにちょろっと書いただけなので改めて。

ADISとは

Androidのデバイス情報共有するアプリ&サービスです。

アプリを起動してシェアの許可をすると、その端末の情報を取得してサーバにアップロードします。シェアされた情報はアプリか、ブラウザから見ることができます。

アプリのインストールはこちらから。

https://market.android.com/details?id=com.itog_lab.android.adis

情報のブラウズはこちらから。

http://adis.pigmal.com/

モデル名で検索もできます。今のところ大文字小文字区別で完全一致にしてます。

http://adis.pigmal.com/search

アップデート

最新のアップデートで、PackageInfoという情報を追加しました。端末でサポートしているfeature, library情報が追加されています。

これにより、例えば2.3.4以降の端末でUSB Accessory Modeをサポートしているかどうかが分かります!

そして、ADIS公式Twitterアカウントできました。

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

新規にデバイス情報が追加された時、情報が更新されたときに直リンクつきでツイートします。

要望も随時受け付けてますよー

あわせて読みたいブログパーツ テクノラティのお気に入りに追加する