<PreferenceScreen
android:title="[タイトル]"
android:summary="[サマリ]">
<intent android:action="android.intent.action.VIEW"
android:targetPackage="[パッケージ名]"
android:targetClass="[パッケージ名].[クラス名]" />
</PreferenceScreen>
2009年10月28日水曜日
XML の Preference で Intent 呼び出し
ちょっとハマったのでメモ
2009年8月14日金曜日
android ソース入手。(CentOS 5.3 yum git-1.5.4)
簡単なことですが、すぐ忘れるのでメモ投稿です。
android ソースを入手したくて repo コマンド実行しようとすると、git 1.5.4 以上が必要なんですって。
私は yum(rpm)派なんですが、rpmforge には 1.5.2 しかなくてどうしようと思ってたら git 本家に yum リポジトリがあったのでそれを使いました。
git は 1.5.4 の最新と思われるものを指定してます。
あとは repo というスクリプトをダウンロードして
git config で user.email, user.name を設定して、repo init、repo sync でソースコードのダウンロードがはじまります。
android ソースを入手したくて repo コマンド実行しようとすると、git 1.5.4 以上が必要なんですって。
repo init -u git://android.git.kernel.org/platform/manifest.git
fatal: git 1.5.4 or later required
私は yum(rpm)派なんですが、rpmforge には 1.5.2 しかなくてどうしようと思ってたら git 本家に yum リポジトリがあったのでそれを使いました。
git は 1.5.4 の最新と思われるものを指定してます。
wget http://kernel.org/pub/software/scm/git/RPMS/git.repo -O /etc/yum.repos.d/git.repo
yum install git-1.5.4.6-1
あとは repo というスクリプトをダウンロードして
mkdir ~/bin
wget http://android.git.kernel.org/repo -O ~/bin/repo
chmod 755 ~/bin/repo
git config で user.email, user.name を設定して、repo init、repo sync でソースコードのダウンロードがはじまります。
git config --global user.email "メアド"
git config --global user.name "名前"
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync
2009年7月3日金曜日
論理削除とユニークキー制約
ども。久々に時間ができたのでぼちぼち日記書いてみようかなと。
技術ネタですが。。
データベース設計を行うとき、論理削除を採用することが多いです。
論理削除用のカラムとしては boolean 型もしくは小さい数値型を使います。
item(商品)テーブルに一意な code(商品コード)という人が認識しやすい番号を任意に設定できるテーブルを設計するとき、ユニークキー制約をつけてしまうと一度論理削除した商品コードが使いまわせない問題が発生します。仕方なくデータベース側のユニークキー制約は外していました。
このテーブルを使うアプリケーション側では、挿入、更新前にユニークキーチェックを行いますが、アプリケーションサーバが複数台あったり、バッチ処理が平行して実行される可能性があったりでなかなか厳密な整合性はとりづらいです。
最近になってふと、論理削除用のカラムをユニークキー制約に含めてインクリメントすればいいじゃんと思いつきました。そして、主キーが 1つあるタイプならばインクリメントとかしなくてそのまま使えるなーと。
論理削除するときは、
通常の検索時には where 句に removed = 0 を指定します。
まだ実践で使ってないですが多分大丈夫なはず。
いやースッキリした。
技術ネタですが。。
データベース設計を行うとき、論理削除を採用することが多いです。
論理削除用のカラムとしては boolean 型もしくは小さい数値型を使います。
create table item (
id int not null,
code varchar(40) not null,
name varchar(240) not null,
removed boolean not null default false,
constraint item_pk primary key (id) /* ,
constraint item_code_uk unique key (code) 本当はユニークキー制約をつけたいが。。 */
);
item(商品)テーブルに一意な code(商品コード)という人が認識しやすい番号を任意に設定できるテーブルを設計するとき、ユニークキー制約をつけてしまうと一度論理削除した商品コードが使いまわせない問題が発生します。仕方なくデータベース側のユニークキー制約は外していました。
このテーブルを使うアプリケーション側では、挿入、更新前にユニークキーチェックを行いますが、アプリケーションサーバが複数台あったり、バッチ処理が平行して実行される可能性があったりでなかなか厳密な整合性はとりづらいです。
最近になってふと、論理削除用のカラムをユニークキー制約に含めてインクリメントすればいいじゃんと思いつきました。そして、主キーが 1つあるタイプならばインクリメントとかしなくてそのまま使えるなーと。
create table item (
id int not null, -- 0 以上の主キー
code varchar(40) not null,
name varchar(240) not null,
removed int not null default 0,
constraint item_pk primary key (id) ,
constraint item_code_uk unique key (code, removed)
);
論理削除するときは、
update item set removed = id where id = ?
通常の検索時には where 句に removed = 0 を指定します。
select * from item where removed = 0
まだ実践で使ってないですが多分大丈夫なはず。
いやースッキリした。
2009年4月6日月曜日
2009年1月20日火曜日
Java のフレームワークどうしましょ
あけましておめでとうございます。
次の受託開発案件で Java を使うことになりそうなのでフレームワークの比較検討しています。
私が今まで使ったことのあるフレームワークは
・Struts 1、2系 → EC など
・Tapestry 3系 → 業務システム
・Click Framework → 自社サービス(openidea.jp)
の 3つです。
一言にフレームワークといっても色々な役割がありますが、私は次の 4つが主要な機能だと考えます。
・URI マッピング
・フォームのバリデーション
・テンプレート
・データベースアクセス
表にするとこんな感じでしょうか。かなり昔の記憶で書いているものあって、正確でなかったり、当時スキル不足や調べ切れなかったものもありますが。。
この 3つはどれもぴったりハマることなく、気に入らないところは色々いじって使ってました。それぞれの使った感想を簡単にあげます。
Struts:
・設定ファイルが面倒。設定ファイルにして便利だったことはほとんどない。
・*Form, *Action とたくさんのクラスができて管理が面倒。
・学習は比較的容易?情報がたくさんある。
Tapestry:
・業務システムで採用したのが間違いだったかもしれないが、複雑な画面になるとイベントの制御がかなり難解になる。
・カスタムコンポーネントを作り始めると面白い。
・ページ制御側の学習コストは非常に高くつく。HTML テンプレートはスッキリ。
Click Framework:
・拡張子 *.htm が固定で変更できないのが痛い。
・学習は容易。
ほとんどのフレームワークはテンプレート部分や、データベースアクセスは他のプロダクトに変更することが可能です。実はここの選定が肝だったりします。別途テンプレートやデータベースアクセス部分のことは書きたいなと思います。
これらの今まで使ってきたフレームワークの追加調査に加え、Wicket も調査したいです。Spring Framework、S2 など DIコンテナを含むものは今回はパスしようと思います。
ここ 2、3年は Perl、PHP 案件がほとんどだったので忘れていましたが、Java 案件は
→ 新しいフレームワークの選定
→ 開発スタートしてから新しいフレームワークの細かい部分の調査ハマる
で遅延しがちなので要注意ですねー。
次の受託開発案件で Java を使うことになりそうなのでフレームワークの比較検討しています。
私が今まで使ったことのあるフレームワークは
・Struts 1、2系 → EC など
・Tapestry 3系 → 業務システム
・Click Framework → 自社サービス(openidea.jp)
の 3つです。
一言にフレームワークといっても色々な役割がありますが、私は次の 4つが主要な機能だと考えます。
・URI マッピング
・フォームのバリデーション
・テンプレート
・データベースアクセス
表にするとこんな感じでしょうか。かなり昔の記憶で書いているものあって、正確でなかったり、当時スキル不足や調べ切れなかったものもありますが。。
| URI マッピング | バリデーション | テンプレート | データベースアクセス | |
|---|---|---|---|---|
| Struts | サーブレットフィルタ *.do 標準 | 独自 | JSP 2.0 標準 | なし |
| Tapestry | サーブレットを /app などにマッピング | 独自 | 独自 + ognl 形式 | なし |
| Click Framework | サーブレットフィルタ *.htm 変更不可 | 独自 | Velocity 標準 | Cayenne、Spring サポート |
この 3つはどれもぴったりハマることなく、気に入らないところは色々いじって使ってました。それぞれの使った感想を簡単にあげます。
Struts:
・設定ファイルが面倒。設定ファイルにして便利だったことはほとんどない。
・*Form, *Action とたくさんのクラスができて管理が面倒。
・学習は比較的容易?情報がたくさんある。
Tapestry:
・業務システムで採用したのが間違いだったかもしれないが、複雑な画面になるとイベントの制御がかなり難解になる。
・カスタムコンポーネントを作り始めると面白い。
・ページ制御側の学習コストは非常に高くつく。HTML テンプレートはスッキリ。
Click Framework:
・拡張子 *.htm が固定で変更できないのが痛い。
・学習は容易。
ほとんどのフレームワークはテンプレート部分や、データベースアクセスは他のプロダクトに変更することが可能です。実はここの選定が肝だったりします。別途テンプレートやデータベースアクセス部分のことは書きたいなと思います。
これらの今まで使ってきたフレームワークの追加調査に加え、Wicket も調査したいです。Spring Framework、S2 など DIコンテナを含むものは今回はパスしようと思います。
ここ 2、3年は Perl、PHP 案件がほとんどだったので忘れていましたが、Java 案件は
→ 新しいフレームワークの選定
→ 開発スタートしてから新しいフレームワークの細かい部分の調査ハマる
で遅延しがちなので要注意ですねー。
2008年12月22日月曜日
仕事でつながるサービス
どもどもー。起業して半年以上たちますが、未だに一人で受託案件こなしてます。
今期は何とか黒字でしたが、そろそろこの一人受託開発スタイルから脱却しないとだめですね。
つまり、社員を雇ったり仕事の一部を外注していきたいのですが。。
そんなときに見つけたサービス「ランサーズ」さん。最近できた様子です。
http://www.lancers.jp/
楽天ビジネスっぽい仕組みは、世の中に無ければ作りたいなーと思ってましたが、これ大変分かりやすくて良いです。どんどん発展していきそうな予感です。
試しに仕事の依頼をしてみようかなー。
今期は何とか黒字でしたが、そろそろこの一人受託開発スタイルから脱却しないとだめですね。
つまり、社員を雇ったり仕事の一部を外注していきたいのですが。。
そんなときに見つけたサービス「ランサーズ」さん。最近できた様子です。
http://www.lancers.jp/
楽天ビジネスっぽい仕組みは、世の中に無ければ作りたいなーと思ってましたが、これ大変分かりやすくて良いです。どんどん発展していきそうな予感です。
試しに仕事の依頼をしてみようかなー。
登録:
投稿 (Atom)