Archive for 3月, 2008

新年度を前に、今の僕の現状を振り返り。

僕が、現状興味がある技術を整理してみた。
長くなったから、感想を先に書く。

なんていうか、浮気しすぎだな、うん。
これっ!って決めたものに対して集中して究めるということが出来ないタイプのようだ。
とはいえ、これだけの技術に興味を持つ好奇心とアンテナの高さはなかなかのものだ。
って、なぜか自己分析してしまった。

優先順位も日々変動しちゃってるんだよね。あ゛~~~!ホントは全部究めたいのに!
僕だけ一日48時間にならんかな。必要睡眠時間はそのままで。
業務で使われることのない技術がほとんどだから、これらを勉強したくても業務時間外にするとなると時間が全然足りない。
中途半端にリア充だから平日帰宅後や休日にも自分の時間なんてほとんど取れないし。

っていうか、僕、業務でWebサイト作ったことなんて一度もないんだけど、なんで興味がそっちに偏ってんだろ?
興味の方向性を修正すべき?仕事を修正すべき?

こういう幅広い技術を(ある程度)知っているから多方面の技術者とそれなりに意味の通じる会話ができて、新しいサービスを考え出す発想力と実装して公開しちゃう実行力もあって、コミュニティにも積極的に参加する人材が是非欲しいってとこありませんかね。
あ、メールアドレスは上のWHOに載ってますよ!

それはそれとして、みんなどう整理してんだろ?興味のある技術いっぱいだよね?時間全然足りないよね?どうやって優先順位決めて勉強してる?
よかったらやり方を伝授してください。

あ、あとこれは絶対勉強しとけ!とか、これは廃れるから勉強しなくていいよ、とかあれば是非教えてください。

言語

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • Java
    • Ruby
    • JavaScript
    • C
    • Scala
    • SQL
  • 今現在は使っていなくて理解もまだまだ
    • C++
    • Objective-C
    • Python
    • Common Lisp
    • Scheme
    • ActionScript 3.0

Java関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • Apache Wicket
    • Echo 2
    • Google Guice
    • EJB 3.0
    • ActiveObjects
    • Restlet
    • JBoss
    • Tomcat
    • GlassFish
    • Jetty
    • Ant
    • Maven 2
  • 今現在は使っていなくて理解もまだまだ
    • Echo 3
    • Click
    • JSF
    • GWT
    • DWR
    • jMaki
    • ZK
    • Ajax4JSF
    • Facelets
    • Spring
    • Seasar2系
    • JBoss Seam
    • JPA
    • Hibernate
    • iBatis
    • Cayenne

Ruby関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • Ruby On Rails
    • JRuby
  • 今現在は使っていなくて理解もまだまだ
    • Merb
    • Waves

JavaScript関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • Ajax
    • Aptana Jaxer
  • 今現在は使っていなくて理解もまだまだ
    • Comet
    • jQuery
    • Ext.js
    • Prototype.js
    • Script.aculo.us
    • Yahoo! UI Library
    • Google Gears

Python関連

.

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • なし
  • 今現在は使っていなくて理解もまだまだ
    • Django
    • TurboGears
    • web.py

Scheme関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • なし
  • 今現在は使っていなくて理解もまだまだ
    • Gauche
    • Kahua

Common Lisp関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • なし
  • 今現在は使っていなくて理解もまだまだ
    • SBCL
    • Weblocks

Scala関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • Lift
  • 今現在は使っていなくて理解もまだまだ
    • なし

ActionScript関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • なし
  • 今現在は使っていなくて理解もまだまだ
    • Flex 3
    • AIR

データベース関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • PostgreSQL
    • SQLite
    • NeoDatis ODB
    • MyOODB
  • 今現在は使っていなくて理解もまだまだ
    • Oracle
    • MySQL
    • H2
    • eXist
    • MonetDB

XML関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • XPath
  • 今現在は使っていなくて理解もまだまだ
    • XQuery
    • XSLT

Webデザイン関連

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • (X)HTML
    • CSS
  • 今現在は使っていなくて理解もまだまだ
    • HTML 5
    • canvas

その他

  • 仕様を完璧に理解している
    • なし
  • 実際に使ったりしているけどまだ仕様をキチンと理解しているとはいえず中途半端
    • Linux
    • Windows
    • Mac OS X
    • Apache HTTP Server
    • Subversion
    • HTTP
    • TCP/IP
    • SOAP
    • REST
    • 正規表現
    • Eclipse
    • NetBeans
    • xyzzy
    • Emacs
    • Vim
    • screen
    • zsh
  • 今現在は使っていなくて理解もまだまだ
    • Mercurial
    • OpenSocial
    • Facebook Platform
    • Android
    • iPhone SDK

全部リンクを張ろうかと思ったけど、めんどくさすぎたんでやめた。

id:naoya氏のやろうとしてることって

僕が「ぶっこめ!」でやろうとしてることとモロ被りなんだけど。

津田大介が伊藤直也に聞く、「はてなブックマーク」の今と未来(中編)
http://ascii.jp/elem/000/000/119/119638/

特に4ページあたりね。
本家にやられると、困っちゃうね。でもまあ、先見の明があったってことで喜ぶべきなのかな。

ちなみにこのエントリは、上のページのid:naoya氏のブックマークコメントへのトラックバックエントリです。
http://server.mesolabs.com/bukkome/url/http://ascii.jp/elem/000/000/119/119638/#1206498845000

java-jaでBuriの話を聞いてきました

java-jaの第7回に参加してきました。
第8回よりも後で、第6回よりも前に行われる第7回。

java-jaのアルファスーツ、はぶあきひろさんのビジネスプロセスの話とBuri(escafeFlow)作者のまこたんさんのBuriの実装とか今後とかの話。
そして、LTとしてYouchanさんのTwitter的な何かの話と矢野さんWicket-jaの宣伝。

はぶさんのビジネスプロセスの話はすごくためになった。こんな話聞ける機会なんて本当にないだろうしすごくいい経験をした。
社会人3年目ぐらいの人には、エンジニア・営業・総務とか関係なしにみんなに見てもらいたい。
資料も公開される予定だし、Ustreamには録画が残ってるし、boseさんがデジタルビデオカメラで録画したデータもそのうち公開されるはずなので、是非是非見てください。

これはっと感じた名言の一部

  • 「従業員を大事にする」とか言うが、お客様をだいじにしない従業員を大事にしてどうするんだ!
  • 価値連鎖こそがビジネスの本質である。社内にも価値連鎖がある。
  • 作り2分に売り8分
  • 改善はやりっ放しじゃ意味がない。トヨタはそれを数字でモニタリングしているからすごい。
  • 会計とはお金という切り口でビジネスプロセスをモニタリングするためのメーターである!
  • 原価削減を伴わない改善は改善ではない!
  • 日本の会社員の一人当たりの年間平均売り上げは、中小企業は平均2000万円、上場企業は平均5000万円
  • お客様からしかお金がもらえないのに、誰をお客様にしたいのか決まっていないから、ものにならないものが多い
  • 提案の基本はドラえもん。のび太くんを探せ!
  • B2Cをやるならライバルはディズニーランド
  • 車のCMは買った人を後悔させないために流している。
  • いけてない組織が作ったサービスはいけてない
  • 業務アプリ開発では、作る人が使う人の意図をソースコードにコンパイルしているのだ。その時点でズレてしまっていればプログラミング言語の優位性なんて関係ない。
  • ドキュメントなんて意味がない。どんなときにどこを変更してはいけないかが書かれていないから。

今までの人生で誰も教えてくれなかったことばかり。むちゃくちゃ勉強になりました。

まこたんさんのBuri作成の動機となった「if文が嫌い」という話も面白かった。「要件のif」「設計のif」「実装のif」の3つifがあるという話。その通りなんだけど今まで意識なんてしたことなくって目から鱗だった。
Buriのバージョンを1.0にしないのは、使う人が増えすぎないようにする意図もあるらしい。
Buriを使って業務アプリを開発する場合、ツール使ってビジネスプロセスを図に書いてそれをXPDLというXMLに変換して、そのXMLをBuriに食わせてJavaのクラスを吐かせてそれをS2のコンポーネントとして登録し、それを呼び出すBAOというインタフェースを作成し、画面からBAOを叩くという流れになるんだと理解したんだけど、そのBAOを作るのが手作業なのが気になった。XPDLから自動生成できるんだろうけど別にそれをやる予定はないみたいな話をしていて、僕としてはやっぱりBAOは自動生成させるべきなんじゃないかなって思ったから懇親会で話聞いてみたら、だってスタロジではBAO使ってないもんって言われた。なるほど。

YouchanさんのLTも興味深かった。
Twitterってサーバ集中型だけど、FollowersとかFriendsの関係ってP2P的だよねってことから、P2Pによる落ちない分散メッセージングアプリケーション兼Twitterクライアントみたいなの作ってますという話。SkypeAPI使ってるらしい。
プロジェクトページ教えてもらったけど、TwitterのDMで教えてもらったんで公開していいのかわかんないのでとりあえず秘密。

矢野さんのLTは、Wicket-jaの宣伝。Wicket-jaのページのコードを誰かまともにしようよって話。後で矢野さんにDBのテーブル定義とかしてもらわんことにはコードいじりようがないって言っといた。

んで、メインの懇親会。

実は、java-ja主催者のYoshioriが勉強会会場に来てませんでした。もう終わりかけのときにようやく起きたらしく、懇親会の途中からやってきました。
懇親会に向かう途中に、boseさんに「mixiによると今日Yoshioriの誕生日らしいぞ」と聞いたので、Yoshioriがやってきたときにみんなで「Happy Birthday」を熱唱。
・・・が、「あぁ、それ嘘だから!」という予想外の反応。ブーイングの嵐でした。

そっからまた色々カオスな状況に。yuripopの太ももがNekopによって10連射ぐらいの勢いで写メ撮られるし、ニコ動にあるにぽたんのコンドーム講座鑑賞会始まるし、今回は自重が合い言葉だったのに結局会計一人7000円超えてるし・・・。
そういえば、NekopとYuripopは家が近いとのことで一緒に途中で帰ったんだが、大丈夫だったんだろうか。

んで、その後勉強会会場に戻って朝まで語り合い。朝になって電車で帰る途中でもboseさんと一緒に熱く語り合い。
家に着いたら相方に強烈にdisられました。あー楽しかった。とても勉強になった。

会場提供はいつものようにATL Systemsさまでした。ありがとうございました。

「ぶっこめ!」更新情報

ぶっこめ!」へのブクマコメントとしてこのようなコメントがありました。

al001@はてなブックマーク
「相手が自分のブックマークコメントへのトラバを確認しなかったらこれまでと同じ?」

http://server.mesolabs.com/bukkome/url/http://server.mesolabs.com/bukkome/#1205727877000

(このエントリはこのブックマークコメントへのトラックバックエントリになっています。)

このコメントは至極ごもっともで、いくらトラックバックエントリを書こうが、ブクマコメントを書いた人がトラバを確認してくれなければ気づかれることもなくこれまでと同じ状況でした。
これは、構想を練っているときから気づいていた問題点で、結局解決できずまま先走って公開したわけですが、公開したおかげで矢野さんから次のようなアドバイスをいただくことが出来ました。

ぶっこめ!は、はてなに「ぶっこめ!」という名前のダイアリーを作って、ぶっこめ!にトラバが来たら自動的にトラバ先アカウントをid:記法で、トラバ元URLと一緒にダイアリーに書き込むようにしたら、自動idトラックバックできるよね。

http://twitter.com/t_yano/statuses/772457453

なるほど。
そもそも、僕ははてなIDを持ってなくて、idトラックバックってものもよくわかっていなかったのですが、この矢野さんの一言を見て即はてなIDを取得し、実現可能性を検討しました。

んで、まあ結局は、はてダはXML-RPCなどでの投稿を受け付けてないことや、JavaMail使うのめんどかったことや、AtomPub(もどきのAtomAPI)を使ってみたかったことなどから、はてブに書き込むことで自動idトラックバックするようにしました。

結果、全体の流れはこうなります。

  • Aさん(非はてなユーザでも可)がブログにエントリaを書く。
  • Bさんがはてブにaをブックマークし、コメントbを書き込む。
  • bのコメントに対して反論したいAさんは、「ぶっこめ!」を使い、b宛てのトラックバックエントリaaを書く。
  • aa投稿時に、「ぶっこめ!」ではトラックバックを受け付けると同時にid:bukkomeとしてaaをブックマークし、コメントに「id:Bさんのブクマコメントへのトラックバックエントリ」と書き込む。
  • Bさんは、idトラックバックされるので、自分のブクマコメントへのトラックバックが存在することを知る。

これでどうでしょう。

まあ、但し、現状だとAさんが1エントリで複数のブクマコメントへのトラックバックを打ったとしても、1つしかブックマークできないため1人にしかidトラックバックが飛ばないという問題がありますが。

というわけで、このエントリは先ほど引用したブクマコメント主のid:al001さんへidトラックバックが飛んでいるはずです。
気づいてもらえましたか?

はてブやLDCのコメントにトラックバックを打てるサービスを公開しました。

ネット実名論争やらはてブのネガティブコメント論争やらが起こったり沈静化したりする今日この頃ですが皆さまいかがお過ごしでしょうか。

さて、めそらぼでは、表題の通り、はてブやlivedoor Clipのコメントにトラックバックを打てるサービス「ぶっこめ!」を公開しました。
これによって、反論を受けないところから安全に暴言を吐いてくるからソーシャルブックマークサービスなんて嫌いだ!という池田信夫先生のような方々も反論をすることができるようになります。精神衛生上よろしいのではないかと思いますので、是非使ってみてください。

例えば、拙作サービスのランチオフったーへのブックマークコメントのページは
http://server.mesolabs.com/bukkome/url/http://server.mesolabs.com/lunchofftter/
になります。
また、このエントリ自身が、執筆時点での最新コメントである
http://server.mesolabs.com/bukkome/url/http://server.mesolabs.com/lunchofftter/#1203802507000
へトラックバックを打っています。どのように表示されているかご確認いただけると思います。

なお、まだまだ全くブラシュアップ出来てない状態での公開ですので、不具合/バグ等は沢山あると思います。実装されてない機能等もございます。
どうか、生暖かく見守ってやってください。

さて、今回もJavaのみで作成しました。Web層のフレームワークはもちろんApache Wicketを使いました。
また、ソーシャルブックマークサービスとの連携のクライアントとして、またトラックバックを受け付ける処理の窓口としてRestletも使ってみました。
さらに、今回はデータベースとして、オブジェクトデータベースであるNeoDatis ODBを使ってみました。
その辺の技術的な話に関してはまた改めてエントリを書きたいと思います。

なお、このサービスによって生じたいかなる不具合や不利益に関して一切の責は負いかねます。自己責任でお使いください。
また、問答無用で予告なくサービスを終了させたり、データベースを初期化したりすることもございます。ご了承ください。
不具合や要望等ありましたら、このエントリへのコメントやTwitter@mesoへお願いします。

(追記:3/17 10:10 現在、上記ランチオフったーへのブックマークコメントのページはエラーが表示されています。原因究明中…)
(追記:3/17 10:50 とりあえずエラー原因のデータを削除して復活させました。)
(追記:3/17 11:20 トラックバックURLにブラウザでアクセスする(GETでアクセスする)と発生する不具合だと判明。修正しました。)

次のページ »