DebianでAndroid開発環境の構築方法をまとめた。
ここでやることは、
・Aptget経由でインストールするものは1つ、「JDK」
・ダウンロードするものは2つ、「Android SDK」「Eclipse」
・Eclipseの設定。
この3点。
○Javaのインストール&設定
1.aptパッケージの設定。
vi /etc/apt/sources.list
「main」の後ろに「non-free」を加える。
2.jdkインストール
apt-get update
apt-get install sun-java6-jdk
3.gij→javaに切り替える。
update-alternatives --config java
○"Android SDK"のダウンロード
http://developer.android.com/sdk/index.html
vi .bashrc
最後の行にパス設定を入れる。
export PATH=${PATH}:/home/user/android-sdk-linux/platform-tools
○"Eclipse IDE for Java Developers"のダウンロード
http://www.eclipse.org/downloads/
○Eclipseの設定
http://developer.android.com/sdk/eclipse-adt.html#installing
1.Eclipseを起動する。
2.ADT Pluginの設定
Help→Install New Software→Add「ADT Plugin、https://dl-ssl.google.com/android/eclipse/」
で表示されたパッケージをインストール。
もし、上記URLでエラーになるなら「http://dl-ssl.google.com/android/eclipse/」で試してみること。
インストール後再起動。
3.Android SDKとリンクする。
Android SDKの保存場所を選択。
4.Android SDKから必要パッケージをダウンロード。
もしSSL関係でエラーになった場合は、JAVAではなくGIJを使ってる可能性がある。
5.Window→Show View→Other...→Android→Deviceを選択。これでUSB接続した実機一覧が表示される。
インターネット上にある断片化された情報を切り取って、リブログする。 主にソフトウェア、Ubuntu関連、CPUなど気になったニュース、また、日々の面白い出来事やニュースもリブログします。
2012年6月12日火曜日
debianにAndroid開発環境をインストールする
VMWATR上Debian6にVMWareToolsを入れる
http://mo.kerosoft.com/0177
上記参考サイトを見ながら。
コンパイル環境を整えてインストールすれば良いのだが、
Kernelビルドする時gccのバージョンがずれているとインストールがうまく進まないようだ。
その点を気をつけること。
まず、端末内でsuでスーパーユーザでログイン。
aptitude install build-essential
aptitude install linux-headers-`uname -r`
./vmware-install.pl
上記コマンドを打ち込んでENTERでずっと進む。もちろん変更したい箇所あれば変更すること。
インストールが終わったら再起動する。
2012年6月7日木曜日
dhcpクライアントのタイムアウトするのは待ちたくない人向け
久しぶりの投稿になります。
mini2440を久しぶりに使い出す用事ができたので、LANケーブルをつなげないで起動したら2分くらいブート画面で固まっていらいらしてしまった。
そんな時にタイムアウト時間を短くしようかと思ったけど、もっといい方法を探したら
ifplugd
というものがあることを知った。
さっそく
aptitude install ifplugd
いつもなら動作確認して終わりといきたいところだけど、
今回はサイズミスマッチエラーになって使えなかった。
今日はここまで。
2012年3月26日月曜日
PyPy1.8を使ってみた
標準Pythonより高速といわれているPyPy1.8を使ってみた。
まず思った事は、Python2.7.2互換といわれているほど成熟されていないようだった。
djangoは動くけども、周辺モジュールのDjango-southを使えばRPythonのエラーが出でるし、
Win32APIを直接使うようなpyserialなどはまだ使えない。
という事で実用レベルになるまで様子見。
まず思った事は、Python2.7.2互換といわれているほど成熟されていないようだった。
djangoは動くけども、周辺モジュールのDjango-southを使えばRPythonのエラーが出でるし、
Win32APIを直接使うようなpyserialなどはまだ使えない。
という事で実用レベルになるまで様子見。
ラベル:
Python
2012年3月7日水曜日
スクリプトでUML図作成
UML図を簡単に使えそうなものを探していたら
sphinx拡張のseqdiagというものにたどり着いた。
Graphvizみたいにスクリプトを書くと図にしてくれるぽい。
ちなみにこれはPythonのモジュールです。
1.インストール
easy_install sphinxcontrib-seqdiag
2.図の作成
C:\work> actdiag -f C:\Windows\Fonts\msmincho.ttc test.diag
参考URL:
http://blockdiag.com/ja/seqdiag/sphinxcontrib.html
http://d.hatena.ne.jp/torutk/20110522/p1
sphinx拡張のseqdiagというものにたどり着いた。
Graphvizみたいにスクリプトを書くと図にしてくれるぽい。
ちなみにこれはPythonのモジュールです。
1.インストール
easy_install sphinxcontrib-seqdiag
2.図の作成
C:\work> actdiag -f C:\Windows\Fonts\msmincho.ttc test.diag
サンプルデータ:test.diag
---
diagram {
クライアント -> サーバー [label="要求"];
クライアント <- サーバー [label="応答"];
}
参考URL:
http://blockdiag.com/ja/seqdiag/sphinxcontrib.html
http://d.hatena.ne.jp/torutk/20110522/p1
ラベル:
Python UML
2012年3月2日金曜日
django-southの使い方。
Models変更をSQLiteなどDBに反映するツールsouthの操作手順をまとめておく。
前提条件
・south導入する前に、modelsの変更は含まないものとする。
~導入~
1.southインストール
2.プロジェクト(settings.py)にINSTALL_APPに「south」を加える。
3.「python manage.py syncdb」コマンドでDBにsouthテーブルを作成。
~最初のMigrate(既にテーブルが存在する場合)~
1.既にDBにテーブルが存在する場合、「python manage.py convert_to_south」を実行。
注意1:特定Models内のclass Metaにあるapp_labelを書き換えてあるModelは、APP名ではなくapp_label名になる。
注意2:一度convert_to_southをすると2回目以降は変換済みとなる。
注意3:app/migration/0001_initial.pyファイルは捨てないようにする事。(fakeでmigrateされた初期値)
注意4:0001_initial.pyを作るコマンド「python manage.py migrate --initial」
2.最初の「0001_initial」が適用されているかチェックする。「python manage.py migrate --list」
注意1:もし、適用されていなかったら「python manage.py migrate 0001 --fake」コマンドを実行する。
~2回目以降~
1.Models.pyに変更を加える。
2.「python manage.py schemamigration --auto」を実行する。
modelsフィールドにdefault値を設定していない場合は、
コンソール操作で初期値を入れる必要がある。
操作を終えると、migrate用ファイルが作成される。
3.「python manage.py migrate」実行。
参考サイト
South
South v0.7 documentation(英文)
South v0.7 documentation(日本語訳)
前提条件
・south導入する前に、modelsの変更は含まないものとする。
~導入~
1.southインストール
2.プロジェクト(settings.py)にINSTALL_APPに「south」を加える。
3.「python manage.py syncdb」コマンドでDBにsouthテーブルを作成。
~最初のMigrate(既にテーブルが存在する場合)~
1.既にDBにテーブルが存在する場合、「python manage.py convert_to_south
注意1:特定Models内のclass Metaにあるapp_labelを書き換えてあるModelは、APP名ではなくapp_label名になる。
注意2:一度convert_to_southをすると2回目以降は変換済みとなる。
注意3:app/migration/0001_initial.pyファイルは捨てないようにする事。(fakeでmigrateされた初期値)
注意4:0001_initial.pyを作るコマンド「python manage.py migrate
2.最初の「0001_initial」が適用されているかチェックする。「python manage.py migrate --list」
注意1:もし、適用されていなかったら「python manage.py migrate
~2回目以降~
1.Models.pyに変更を加える。
2.「python manage.py schemamigration
modelsフィールドにdefault値を設定していない場合は、
コンソール操作で初期値を入れる必要がある。
操作を終えると、migrate用ファイルが作成される。
3.「python manage.py migrate
参考サイト
South
South v0.7 documentation(英文)
South v0.7 documentation(日本語訳)
ラベル:
python django south
2012年2月27日月曜日
djangoの解析メモapp_lanel
models.pyのclass Metaにapp_labelとdb_tableで定義できる。
southでmigrateする時はapp_labelの名前で行う。(もちろん他のモデルと一緒にmigrate)
django上ではこのあたりの処理を、
django\db\loading.py
あたりがメインぽい。
ちなみにここ、1.4のソースやトラッカー見てしばらく解析しないと分からなかった部分。
southでmigrateする時はapp_labelの名前で行う。(もちろん他のモデルと一緒にmigrate)
django上ではこのあたりの処理を、
django\db\loading.py
あたりがメインぽい。
ちなみにここ、1.4のソースやトラッカー見てしばらく解析しないと分からなかった部分。
ラベル:
django
2012年1月24日火曜日
django管理画面の一覧をCSV出力する。
ここの記事を見て自分もこれ導入しようと思いさっそくインストールしてみた。
コマンドライン上で
easy_install.exe https://bitbucket.org/tokibito/django-csvutils/get/6c2ddaf1e92f.zip
これを打つだけ。いたって簡単。
CSV出力を設定したいAdmin.pyを編集すればComboxに削除しかなかった欄に「export to CSV」が追加される。
この名称はローカライズ対応になっているんだけど、Localeファイルをどこに入れればいいんだろうなあ。
コマンドライン上で
easy_install.exe https://bitbucket.org/tokibito/django-csvutils/get/6c2ddaf1e92f.zip
これを打つだけ。いたって簡単。
CSV出力を設定したいAdmin.pyを編集すればComboxに削除しかなかった欄に「export to CSV」が追加される。
この名称はローカライズ対応になっているんだけど、Localeファイルをどこに入れればいいんだろうなあ。
ラベル:
django
2012年1月23日月曜日
djangoの翻訳テキストをカスタマイズする。
Windows上で翻訳テキストをコンパイルするには、
gettext ver0.15以上が必要のようです。
1.まずは必要なライブラリをダウンロードする。
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/
上記サイトから
gettextのver0.17をダウンロード。
ダウンロードしてきた
gettext-runtime-0.17-1.zip
gettext-tools-0.17.zip
を展開してbinフォルダ内の中身を全てpython.exeと同じフォルダに入れた。
2.翻訳テキストを編集する。
拡張子.poファイルが編集する翻訳テキストになっていて、
拡張子.moファイルがコンパイルされた翻訳テキストという構成になっている。
まず変更したいアプリ内にある翻訳ファイル.poを編集する。
3.編集した翻訳テキストをコンパイルする。
コマンドライン上でアプリフォルダまで移動してから
python manage.py compilemessages -l ja
と打ち込むとdjango.moを作ってくれる。
例:
.\django\contrib\admin\locale\ja\LC_MESSAGES\django.po を編集した時は
コマンドライン上で
.\django\contrib\admin
まで移動してからコマンドを打ち込めばOK。
gettext ver0.15以上が必要のようです。
1.まずは必要なライブラリをダウンロードする。
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/
上記サイトから
gettextのver0.17をダウンロード。
ダウンロードしてきた
gettext-runtime-0.17-1.zip
gettext-tools-0.17.zip
を展開してbinフォルダ内の中身を全てpython.exeと同じフォルダに入れた。
2.翻訳テキストを編集する。
拡張子.poファイルが編集する翻訳テキストになっていて、
拡張子.moファイルがコンパイルされた翻訳テキストという構成になっている。
まず変更したいアプリ内にある翻訳ファイル.poを編集する。
3.編集した翻訳テキストをコンパイルする。
コマンドライン上でアプリフォルダまで移動してから
python manage.py compilemessages -l ja
と打ち込むとdjango.moを作ってくれる。
例:
.\django\contrib\admin\locale\ja\LC_MESSAGES\django.po を編集した時は
コマンドライン上で
.\django\contrib\admin
まで移動してからコマンドを打ち込めばOK。
ラベル:
django
2012年1月5日木曜日
中華タブレット tPad P76 Ti
あけましておめでとうございます。
相変わらず更新が遅いですが、ネタが尽きたわけじゃないです。
そういうわけで久しぶりの更新、タイトルの通り、中華Pad買いました。
中華パッドも何世代かグレードも上がり、ハードもソフトも一通りこなれて来た頃だろうと
思いきって1万円を切る中華タブレット「tPad P76 Ti」を買ってみた。
OSはAndroid 2.3.4がプリインストール済み。
この端末の凄いところは、Youtubeがサクサク再生できて1万円切る値段。
しいて言えば、ボタンの押しやすさやBluetoothやGPSは無いけど、マーケットアプリも使えるし悪くない。
もう少し使いこなしたらフォーム更新や、USBを使って色々遊んでみようと思う。
相変わらず更新が遅いですが、ネタが尽きたわけじゃないです。
そういうわけで久しぶりの更新、タイトルの通り、中華Pad買いました。
中華パッドも何世代かグレードも上がり、ハードもソフトも一通りこなれて来た頃だろうと
思いきって1万円を切る中華タブレット「tPad P76 Ti」を買ってみた。
OSはAndroid 2.3.4がプリインストール済み。
この端末の凄いところは、Youtubeがサクサク再生できて1万円切る値段。
しいて言えば、ボタンの押しやすさやBluetoothやGPSは無いけど、マーケットアプリも使えるし悪くない。
もう少し使いこなしたらフォーム更新や、USBを使って色々遊んでみようと思う。
ラベル:
Android
2011年12月5日月曜日
Pythonでバーコード作成
昔から使われてる線が一杯並んでる一次元バーコードや、最近流行りの二次元バーコードを
印刷したかったり、しなかったりする時どうしたら良いか。
解決策はPythonでhubarcodeを使うこと。
いつもeasy_installやpipで楽にインストールしていると、
Readmeやexampleを見ずに環境が整ってしまうわけなんだけど
「一体どんな機能があるの?」という部分で盲目になってしまいがちであるこの頃。
hubarcodeって1次元でしかもEAN13(13桁)だけじゃないの?って自分一人で思っていたら
実はCode128もQRコードも使えてしまうわけです。
ココ参照。
https://github.com/hudora/huBarcode
使い方はいつもの手順で。
Step.1
easy_install -U hubarcode
Step.2 コードを書く。
これで怖いものなし。
印刷したかったり、しなかったりする時どうしたら良いか。
解決策はPythonでhubarcodeを使うこと。
いつもeasy_installやpipで楽にインストールしていると、
Readmeやexampleを見ずに環境が整ってしまうわけなんだけど
「一体どんな機能があるの?」という部分で盲目になってしまいがちであるこの頃。
hubarcodeって1次元でしかもEAN13(13桁)だけじゃないの?って自分一人で思っていたら
実はCode128もQRコードも使えてしまうわけです。
ココ参照。
https://github.com/hudora/huBarcode
使い方はいつもの手順で。
Step.1
easy_install -U hubarcode
Step.2 コードを書く。
from hubarcode.ean13 import EAN13Encoder from hubarcode.qrcode import QRCodeEncoder from hubarcode.code128 import Code128Encoder #バーコード画像作成 _barcode1 = EAN13Encoder(bcode) _barcode1.save(fname) _barcode1 = Code128Encoder(bcode) _barcode1.save(fname) _barcode1 = QRCodeEncoder(bcode) _barcode1.save(fname)
これで怖いものなし。
ラベル:
python barcode
2011年9月24日土曜日
PDCruseをコンパイルしてみた
Windows/Linuxともに使えるTUI(Text user interface)が使いたくて探してみたら
PDCursesというものを見つけた。
http://pdcurses.sourceforge.net/
VC++2010でコンパイルする方法は
まず、スタートメニューからVC2010のDOSプロンプトを起動する。
次に、上記サイトからダウンロード・フォルダ展開した場所へ移動して
set PDCURSES_SRCDIR=C:\pdcurs34
nmake -f vcwin32.mak
を実行するだけ。
生成されるのはスタティックライブラリで
pdcurses.lib
panel.lib
の2つで
curses.h
panel.h
をあわせた4ファイルをどこかにまとめておけばおk。
使っているうちにボールドやブリンク機能、256Colorに対応とかカスタマイズしたくなってくると思う。
そんな機能を追加した人がいて
http://www.projectpluto.com/win32a.htm
ここのパッチを使うとより見栄えの良いTUIが使える。
余談だけど、PDCrusesで下記サイトのような事が出来たらいいなって思ってる(願望)
http://code.google.com/p/bashsimplecurses/
<コンパイル編>
VC++2010環境でサンプルプログラムをコンパイルできるかチェックしてみた。
VC++で新規作成:コンソールアプリケーション
インクルード・ライブラリパスと
使用するライブラリ:pdcurses.lib、panel.lib
を設定する。
firework.cからコピペしてコンパイル。
PDCursesというものを見つけた。
http://pdcurses.sourceforge.net/
VC++2010でコンパイルする方法は
まず、スタートメニューからVC2010のDOSプロンプトを起動する。
次に、上記サイトからダウンロード・フォルダ展開した場所へ移動して
set PDCURSES_SRCDIR=C:\pdcurs34
nmake -f vcwin32.mak
を実行するだけ。
生成されるのはスタティックライブラリで
pdcurses.lib
panel.lib
の2つで
curses.h
panel.h
をあわせた4ファイルをどこかにまとめておけばおk。
使っているうちにボールドやブリンク機能、256Colorに対応とかカスタマイズしたくなってくると思う。
そんな機能を追加した人がいて
http://www.projectpluto.com/win32a.htm
ここのパッチを使うとより見栄えの良いTUIが使える。
余談だけど、PDCrusesで下記サイトのような事が出来たらいいなって思ってる(願望)
http://code.google.com/p/bashsimplecurses/
<コンパイル編>
VC++2010環境でサンプルプログラムをコンパイルできるかチェックしてみた。
VC++で新規作成:コンソールアプリケーション
インクルード・ライブラリパスと
使用するライブラリ:pdcurses.lib、panel.lib
を設定する。
firework.cからコピペしてコンパイル。
#include "stdafx.h" #include "curses.h" #includeマルチバイト対応する場合は、下記定義を入れておくこと。#include #define DELAYSIZE 200 void myrefresh(void); void get_color(void); void explode(int, int); short color_table[] = { COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_CYAN, COLOR_RED, COLOR_MAGENTA, COLOR_YELLOW, COLOR_WHITE }; int _tmain(int argc, _TCHAR* argv[]) { int i, start, end, row, diff, flag, direction, seed; #ifdef XCURSES Xinitscr(argc, argv); #else initscr(); #endif nodelay(stdscr, TRUE); noecho(); if (has_colors()) start_color(); for (i = 0; i < 8; i++) init_pair(i, color_table[i], COLOR_BLACK); seed = (int)time((time_t *)0); srand(seed); flag = 0; while (getch() == ERR) /* loop until a key is hit */ { do { start = rand() % (COLS - 3); end = rand() % (COLS - 3); start = (start < 2) ? 2 : start; end = (end < 2) ? 2 : end; direction = (start > end) ? -1 : 1; diff = abs(start - end); } while (diff < 2 || diff >= LINES - 2); attrset(A_NORMAL); for (row = 0; row < diff; row++) { mvaddstr(LINES - row, row * direction + start, (direction < 0) ? "\\" : "/"); if (flag++) { myrefresh(); erase(); flag = 0; } } if (flag++) { myrefresh(); flag = 0; } explode(LINES - row, diff * direction + start); erase(); myrefresh(); } endwin(); return 0; } void explode(int row, int col) { erase(); mvaddstr(row, col, "-"); myrefresh(); --col; get_color(); mvaddstr(row - 1, col, " - "); mvaddstr(row, col, "-+-"); mvaddstr(row + 1, col, " - "); myrefresh(); --col; get_color(); mvaddstr(row - 2, col, " --- "); mvaddstr(row - 1, col, "-+++-"); mvaddstr(row, col, "-+#+-"); mvaddstr(row + 1, col, "-+++-"); mvaddstr(row + 2, col, " --- "); myrefresh(); get_color(); mvaddstr(row - 2, col, " +++ "); mvaddstr(row - 1, col, "++#++"); mvaddstr(row, col, "+# #+"); mvaddstr(row + 1, col, "++#++"); mvaddstr(row + 2, col, " +++ "); myrefresh(); get_color(); mvaddstr(row - 2, col, " # "); mvaddstr(row - 1, col, "## ##"); mvaddstr(row, col, "# #"); mvaddstr(row + 1, col, "## ##"); mvaddstr(row + 2, col, " # "); myrefresh(); get_color(); mvaddstr(row - 2, col, " # # "); mvaddstr(row - 1, col, "# #"); mvaddstr(row, col, " "); mvaddstr(row + 1, col, "# #"); mvaddstr(row + 2, col, " # # "); myrefresh(); } void myrefresh(void) { napms(DELAYSIZE); move(LINES - 1, COLS - 1); refresh(); } void get_color(void) { chtype bold = (rand() % 2) ? A_BOLD : A_NORMAL; attrset(COLOR_PAIR(rand() % 8) | bold); }
#includesetlocale( LC_CTYPE, "jpn" );
ラベル:
pdcurses
2011年8月20日土曜日
squeezeアップデートしたら起動しなくなった。
udevd[803]: unable to receive ctrl connection: Function not implemented
こんなエラーが出た場合、Kernelの設定不足らしい(詳しくは見ていない)
とりあえず動くように戻したいのでダウングレードの手法を取ってみた。
やり方は、udevのバージョンを戻してあげれば元通り動くようになります。
例:
dpkg --install libudev0_164-3_armel.deb udev_164-3_armel.deb
こんなエラーが出た場合、Kernelの設定不足らしい(詳しくは見ていない)
とりあえず動くように戻したいのでダウングレードの手法を取ってみた。
やり方は、udevのバージョンを戻してあげれば元通り動くようになります。
例:
dpkg --install libudev0_164-3_armel.deb udev_164-3_armel.deb
ラベル:
debian
登録:
投稿 (Atom)