2009年12月
2009年12月26日
以前、JavaでWebアプリを作成したときは、struts2というフレームワークを使いました。struts2をうまく使えば、綺麗にプログラムを書けます。しかし、struts2は若干癖があって、たまに常識外の動作をすることがありました。
Google Apps EngineでWebアプリを開発するにあたって、今回は、struts2を使うのではなく、軽量のフレームワークを自作することにしました(二つのブラックボックスの干渉によって、不可解な現象に悩まされるのを防ぐためです)。
JavaでWebアプリを開発するときの一つの問題は、JSPのコードが混沌となりがちなことです。
struts2の面白いところを一つ挙げるとしたら、ActionがJSPのモデルになるというところだと思います。これにより、JSPではプログラム処理を行わず、Actionで用意されたデータを表示するだけというポリシーでプログラムを書くことができます。
今回、この思想にそって簡単なフレームワークを自作しました。
遷移のルールとして、以下の三つに対応させました。
・Actionから、同一ディレクトリのJSPへの遷移(Forward)
・Actionから同一ディレクトリのActionへの遷移(Chain)
・Actionから他のディレクトリのActionへの遷移(Redirect)
Chainの場合は、遷移元のpublicフィールドの値が、遷移先のpublicフィールドに引き継がれるようにしました。
ちなみに、Java Beansのプロパティの引継ぎは、BeanUtilsライブラリを使うと簡単にできます。しかし、私は、データ構造のクラスを作るときに、Java Beansにしないことが多いので、フィールドの値を引き継ぐ機能を自作しました。
さらにロギングやエラー時の遷移などに色々工夫を加えて、私が良くやる書き方の範囲に関しては、struts2を使うよりも便利にしたつもりです。これを使って、簡単なプログラムを作ってみようと思います。
Google Apps EngineでWebアプリを開発するにあたって、今回は、struts2を使うのではなく、軽量のフレームワークを自作することにしました(二つのブラックボックスの干渉によって、不可解な現象に悩まされるのを防ぐためです)。
JavaでWebアプリを開発するときの一つの問題は、JSPのコードが混沌となりがちなことです。
struts2の面白いところを一つ挙げるとしたら、ActionがJSPのモデルになるというところだと思います。これにより、JSPではプログラム処理を行わず、Actionで用意されたデータを表示するだけというポリシーでプログラムを書くことができます。
今回、この思想にそって簡単なフレームワークを自作しました。
遷移のルールとして、以下の三つに対応させました。
・Actionから、同一ディレクトリのJSPへの遷移(Forward)
・Actionから同一ディレクトリのActionへの遷移(Chain)
・Actionから他のディレクトリのActionへの遷移(Redirect)
Chainの場合は、遷移元のpublicフィールドの値が、遷移先のpublicフィールドに引き継がれるようにしました。
ちなみに、Java Beansのプロパティの引継ぎは、BeanUtilsライブラリを使うと簡単にできます。しかし、私は、データ構造のクラスを作るときに、Java Beansにしないことが多いので、フィールドの値を引き継ぐ機能を自作しました。
さらにロギングやエラー時の遷移などに色々工夫を加えて、私が良くやる書き方の範囲に関しては、struts2を使うよりも便利にしたつもりです。これを使って、簡単なプログラムを作ってみようと思います。
2009年12月23日
今日は、引っ越したばかりの友人の家に遊びに行きました。新大阪の近くのマンションだったのですが、家賃が手ごろでいいところでした。(私が住んでいる京都南区より安いくらいです。)
ちなみに、その友人は、転職を考えているらしく、私も相談も受けたのですが、私の会社は今は土台がしっかりしていない状態ですので、人を入れるのは難しいと感じています。(これまでは、いい加減な経営でも適当に仕事をやっていくことができたのですが、今後は無理だと感じていますので。。。)
自分以外の人と一緒に仕事をすると、気持ち的にはだいぶ楽になります。何とか土台ができたら人を増やしたいですが、土台を作るところまでは、自分一人でやる必要があるかなと思っています。
ちなみに、その友人は、転職を考えているらしく、私も相談も受けたのですが、私の会社は今は土台がしっかりしていない状態ですので、人を入れるのは難しいと感じています。(これまでは、いい加減な経営でも適当に仕事をやっていくことができたのですが、今後は無理だと感じていますので。。。)
自分以外の人と一緒に仕事をすると、気持ち的にはだいぶ楽になります。何とか土台ができたら人を増やしたいですが、土台を作るところまでは、自分一人でやる必要があるかなと思っています。
2009年12月22日
現在、一つ実験的に作ろうと考えているサービス(できれば商用化につなげたい)があるのですが、データ構造を考えたところ、RDBじゃなくても自然に実現できそうな気がしてきました。
したがって、Linux+MySQLで実現する代わりに、Google App Engine (Bigtable) で実現することを、一つの選択肢として検討しています。
RDBのいいところは、物事の概念モデルや論理的なモデルを、自然な形で実装できる(物理モデルに落としこめる)ということだと思います。物事の概念を、ほぼそのままテーブルの集合として表現することができて、それをどう使うか(何をどう検索するか)は、検索の方法(どのテーブルをどうJOINさせるか)によって自由にできるということがRDBの強みだと思います。
一方で、実装上のテクニックとして、JOIN検索をなるべく避けるということがあります。というのも、JOIN検索を行う場合はSQLを書かないといけませんが、単なるテーブル検索を行う場合はORマッピングツールを利用して簡単に(高い保守性を保ったコードによって)実現できますので。
例えば、データが二つのテーブルに分かれて格納されている場合に、JOIN検索では1回で検索できる場合でも、2回のテーブル検索処理で実現することも多いです。(N回の検索が必要とか、NxM回の検索が必要になる場合は、間違いなくJOIN検索を行いますが)。
そういうことを念頭において、データのモデリングをしていたら、今回のサービスで必要となるデータ構造は、RDBで実現しなくても実現できるような気がしていました。
Google App Engineが使えるのならば、MySQLの障害に頭を悩まされることがなくなります。
というわけで、Google App EngineとBigtableについて調査したいと思います。
したがって、Linux+MySQLで実現する代わりに、Google App Engine (Bigtable) で実現することを、一つの選択肢として検討しています。
RDBのいいところは、物事の概念モデルや論理的なモデルを、自然な形で実装できる(物理モデルに落としこめる)ということだと思います。物事の概念を、ほぼそのままテーブルの集合として表現することができて、それをどう使うか(何をどう検索するか)は、検索の方法(どのテーブルをどうJOINさせるか)によって自由にできるということがRDBの強みだと思います。
一方で、実装上のテクニックとして、JOIN検索をなるべく避けるということがあります。というのも、JOIN検索を行う場合はSQLを書かないといけませんが、単なるテーブル検索を行う場合はORマッピングツールを利用して簡単に(高い保守性を保ったコードによって)実現できますので。
例えば、データが二つのテーブルに分かれて格納されている場合に、JOIN検索では1回で検索できる場合でも、2回のテーブル検索処理で実現することも多いです。(N回の検索が必要とか、NxM回の検索が必要になる場合は、間違いなくJOIN検索を行いますが)。
そういうことを念頭において、データのモデリングをしていたら、今回のサービスで必要となるデータ構造は、RDBで実現しなくても実現できるような気がしていました。
Google App Engineが使えるのならば、MySQLの障害に頭を悩まされることがなくなります。
というわけで、Google App EngineとBigtableについて調査したいと思います。
2009年12月16日
久しぶりに親と会ったのですが、いつまで賃貸暮らしなのかと聞かれました。
私としては、数年先はどうなっているか分からないということもあり、これまで、不動産を持つことに魅力を感じたことはありませんでした。
ちなみに、今住んでいるところは家賃の割りに便利ですので、あと五年くらいは住むかなあと漠然と思っています。
しかし、夜に、ふと競売物件というのを思いついたので、以下のサイトで、競売物件を調べてみました。
http://bit.sikkou.jp/
過去の売却結果を調べてみたら、今の家賃の五年分くらいの金額で購入できるところがちょくちょくあることが分かりました。
もしかしたら、不動産を競売で購入するというのはありなのかもしれませんねー(親にお金を借りて(笑))。
私としては、数年先はどうなっているか分からないということもあり、これまで、不動産を持つことに魅力を感じたことはありませんでした。
ちなみに、今住んでいるところは家賃の割りに便利ですので、あと五年くらいは住むかなあと漠然と思っています。
しかし、夜に、ふと競売物件というのを思いついたので、以下のサイトで、競売物件を調べてみました。
http://bit.sikkou.jp/
過去の売却結果を調べてみたら、今の家賃の五年分くらいの金額で購入できるところがちょくちょくあることが分かりました。
もしかしたら、不動産を競売で購入するというのはありなのかもしれませんねー(親にお金を借りて(笑))。
2009年12月13日
日々、一人で仕事をしていると、どうしても仕事のペースが乱れがちになります。
毎日10分くらい電話やSkypeで定期的に打ち合わせができるようなコーチがいたら雇いたいところです。
ただし、個人で出せる金額としては、10分1000円くらいでしょうかね。月20日で20000円です。
これが成立するかどうか考えてみたのですが、コーチング業務は、10分2000円は取らないと成り立たないと思いました。
私は、コーチを雇ったことはないので、コーチがどういう能力を身に着けているのかは良く分かりません。しかし、マネージメントには、二種類のマネージメントがあると思います。コーチにもこの二種類のコーチがいるのではないでしょうか。
(1) クライアントの問題解決を助ける
(2) クライアントのモチベーションを上げる
(1)のタイプの特徴は、クライアントの課題を一般化して、適切な手助けをするということだと思います。それに対し、(2)のタイプの特徴は、話しを聞くことが上手くて、クライアントのモチベーションを下げることを言わない(具体的には、一般論を言わない)ということだと思います。
(1)のタイプのコーチングを行う場合、どうしてもクライアントの業務について理解を深める必要があります。コーチングの時間が10分間でも、実際には倍くらいの時間が必要となることになります(それで、10分2000円と計算しました)。一方で、(2)のタイプのコーチングは、人間性でコーチングを行うことになりますので、クライアントの業務についての理解を深める必要はそれほどないのかもしれません。
というか、(2)のタイプのコーチが10分1000円で雇えたら雇いたいですね。
毎日10分くらい電話やSkypeで定期的に打ち合わせができるようなコーチがいたら雇いたいところです。
ただし、個人で出せる金額としては、10分1000円くらいでしょうかね。月20日で20000円です。
これが成立するかどうか考えてみたのですが、コーチング業務は、10分2000円は取らないと成り立たないと思いました。
私は、コーチを雇ったことはないので、コーチがどういう能力を身に着けているのかは良く分かりません。しかし、マネージメントには、二種類のマネージメントがあると思います。コーチにもこの二種類のコーチがいるのではないでしょうか。
(1) クライアントの問題解決を助ける
(2) クライアントのモチベーションを上げる
(1)のタイプの特徴は、クライアントの課題を一般化して、適切な手助けをするということだと思います。それに対し、(2)のタイプの特徴は、話しを聞くことが上手くて、クライアントのモチベーションを下げることを言わない(具体的には、一般論を言わない)ということだと思います。
(1)のタイプのコーチングを行う場合、どうしてもクライアントの業務について理解を深める必要があります。コーチングの時間が10分間でも、実際には倍くらいの時間が必要となることになります(それで、10分2000円と計算しました)。一方で、(2)のタイプのコーチングは、人間性でコーチングを行うことになりますので、クライアントの業務についての理解を深める必要はそれほどないのかもしれません。
というか、(2)のタイプのコーチが10分1000円で雇えたら雇いたいですね。
2009年12月12日
2009年12月11日
ある業界の社長向けの本を読んでいたら、「Webサイトの構築を自分でできるようにせよ」と書かれていました。
Webサイト作成を外注すると、色々と自由がきかないのがその理由です。PhotoShopを使えるようにして、自分で綺麗なWebサイトを作れるところまでなるのもそんなに難しくないと書かれていました。
私は、今まで、Webサイト構築は、拾ってきた素材を駆使して騙し騙しやっていました。それに、いざとなったら外注できると軽く考えていました。しかし、この際、ちゃんと勉強しよう思っています。
最近思ったのですが、IT技術者が手っ取り早くビジネスを始める場合は、「○○業界向けのWebサイト構築事業」という形で業界に入り込んでいくのが、一番やりやすいのではないでしょうか。その後、
「○○業界500社の実績」とか謳ったり、
「○○業界向けの新サービス」を開発して使ってもらったり、
「○○業界向けのコンサルタント」を始めたり
などの成長の可能性があると思います。
というわけで、以下にリストアップされている本を一通り読んでいるところです。
プログラマが1ヶ月でWebデザイナーに転身する方法(やねうらおさんのブログ)
その他、動画マニュアル.comというところで、Fireworks, DreamWeaver, PhotoShopの使い方を一通り見ています。
Webサイト作成を外注すると、色々と自由がきかないのがその理由です。PhotoShopを使えるようにして、自分で綺麗なWebサイトを作れるところまでなるのもそんなに難しくないと書かれていました。
私は、今まで、Webサイト構築は、拾ってきた素材を駆使して騙し騙しやっていました。それに、いざとなったら外注できると軽く考えていました。しかし、この際、ちゃんと勉強しよう思っています。
最近思ったのですが、IT技術者が手っ取り早くビジネスを始める場合は、「○○業界向けのWebサイト構築事業」という形で業界に入り込んでいくのが、一番やりやすいのではないでしょうか。その後、
「○○業界500社の実績」とか謳ったり、
「○○業界向けの新サービス」を開発して使ってもらったり、
「○○業界向けのコンサルタント」を始めたり
などの成長の可能性があると思います。
というわけで、以下にリストアップされている本を一通り読んでいるところです。
プログラマが1ヶ月でWebデザイナーに転身する方法(やねうらおさんのブログ)
その他、動画マニュアル.comというところで、Fireworks, DreamWeaver, PhotoShopの使い方を一通り見ています。
2009年12月03日
少し古い話題なのですが、MYUTAというサービスが、裁判で負けて停止に追い込まれたことがありました。
MYUTAは、自分が持っている音楽ファイルを、携帯の着うたの形式にして、利用できるようにするサービスです。データの変換は、利用者が自分のPC上で行います。その後、PCから携帯のデータの受け渡しをするのですが、そのときにサーバのストレージを経由するということが問題と見なされてしまったようです。
以下のブログに、裁判で証言したMYUTAの開発責任者のコメントがありました。
http://d.hatena.ne.jp/slayer845/20081017/1224239125
ちなみに、今は、似たようなサービスで、海外のドメイン名で運用しているものがあるようです。MYUTAとは異なり、個人の方が運営しているようです。
http://3gp.fm/
日本の著作権では、「個別制限規定」と言って、著作権の効力の範囲が、個別の事例ごとに定められています。一方、アメリカなどでは、フェアユースと言って、著作権の効力の範囲が抽象的に定められていて、ようするに、「公正な使い方だったらOK、だけど問題がありそうだったら、個別に裁判で争うよ」ということになっています。
一見何でもないことでも、考えようによっては、著作権に違反していると捉えることができることは多いです。例えば、ここに書いてあるように、本をオークションで売るために、本の写真をとってオークションサイトに掲載することは、厳密にはアウトなんですよね。
これが、日本で新しいサービスを始めることを難しくしているように思います(慣例がないことは、とりあえずアウトと考えざるを得ず、サービスを始められない可能性があります)。
日本版のフェアユースも検討されているようなのですが、しかし、文化審議会著作権分科会の議事録を見ていると、何というか、、、革新的なことは遅々として進まない様子が感じられます。どこかの団体の偉い人たちが、Googleを熱く批判しているいうシーンが良く見られました(笑)。
MYUTAは、自分が持っている音楽ファイルを、携帯の着うたの形式にして、利用できるようにするサービスです。データの変換は、利用者が自分のPC上で行います。その後、PCから携帯のデータの受け渡しをするのですが、そのときにサーバのストレージを経由するということが問題と見なされてしまったようです。
以下のブログに、裁判で証言したMYUTAの開発責任者のコメントがありました。
http://d.hatena.ne.jp/slayer845/20081017/1224239125
ちなみに、今は、似たようなサービスで、海外のドメイン名で運用しているものがあるようです。MYUTAとは異なり、個人の方が運営しているようです。
http://3gp.fm/
日本の著作権では、「個別制限規定」と言って、著作権の効力の範囲が、個別の事例ごとに定められています。一方、アメリカなどでは、フェアユースと言って、著作権の効力の範囲が抽象的に定められていて、ようするに、「公正な使い方だったらOK、だけど問題がありそうだったら、個別に裁判で争うよ」ということになっています。
一見何でもないことでも、考えようによっては、著作権に違反していると捉えることができることは多いです。例えば、ここに書いてあるように、本をオークションで売るために、本の写真をとってオークションサイトに掲載することは、厳密にはアウトなんですよね。
これが、日本で新しいサービスを始めることを難しくしているように思います(慣例がないことは、とりあえずアウトと考えざるを得ず、サービスを始められない可能性があります)。
日本版のフェアユースも検討されているようなのですが、しかし、文化審議会著作権分科会の議事録を見ていると、何というか、、、革新的なことは遅々として進まない様子が感じられます。どこかの団体の偉い人たちが、Googleを熱く批判しているいうシーンが良く見られました(笑)。
2009年12月02日
ノ´⌒ヽ,, :
: γ⌒´ ヽ,
//""⌒⌒\ ) : ないと信じていたし、
: / ") / ー ヽ ) 今でもないと信じていたい・・・
/ / (>)` ´(<i〈 :
: 〈 〈 U (__人_) | 〉
\ \ ' // :
: 〉 /
/ /
〈  ̄ ̄)  ̄)
7 / /
ノ´⌒ヽ,, \
γ⌒´ ヽ, \
// ""⌒⌒\ ) 由紀夫〜
i / ⌒ ⌒ ヽ ) お小遣いよ〜
/ !゙ (・ )` ´( ・) i/ はーい♪ /
/ | (__人_) | /
/ \ `ー' /
/ ヽ
/ / |ヽヽ
(、、) / (__)
\ 、/
ε= ε= / >、 \,-、 スタスタ
ヽ_/ \_ノ
なんだか、やる夫のように憎めないところがあります。これは、支持率が高いのもうなずけますね。
: γ⌒´ ヽ,
//""⌒⌒\ ) : ないと信じていたし、
: / ") / ー ヽ ) 今でもないと信じていたい・・・
/ / (>)` ´(<i〈 :
: 〈 〈 U (__人_) | 〉
\ \ ' // :
: 〉 /
/ /
〈  ̄ ̄)  ̄)
7 / /
ノ´⌒ヽ,, \
γ⌒´ ヽ, \
// ""⌒⌒\ ) 由紀夫〜
i / ⌒ ⌒ ヽ ) お小遣いよ〜
/ !゙ (・ )` ´( ・) i/ はーい♪ /
/ | (__人_) | /
/ \ `ー' /
/ ヽ
/ / |ヽヽ
(、、) / (__)
\ 、/
ε= ε= / >、 \,-、 スタスタ
ヽ_/ \_ノ
なんだか、やる夫のように憎めないところがあります。これは、支持率が高いのもうなずけますね。





















