見てるページのコメントをTwitterに投稿できるGreasemonkeyスクリプトを更新しました。

前回のエントリで公開したGreasemonkeyスクリプトには、ブログ主なりサイト管理者なりが自分のTwitterIDをページ内に埋め込んでくれていないと動かないという欠点がありました。

その辺なんとかならないかなーって思いながらも公開したんですが、そのエントリに付いたはてブにヒントが!

2008年06月25日 mattn サイト管理人のtwitter-idを調べるのにtako3を使う手もありかなー

おおお・・・!すばらしい!tako3っていうサービスがありましたね!
このサービスは、ある人が他にどんなサービス使ってるか情報を共有する他己紹介サービスです。昔見て「ほぉ~」って思ったのに忘れていた。

というわけで早速ググって見たところ、

tako3.comとFooo.nameのAPIを叩くユーザスクリプト - cameraLady:
http://june29.jp/2007/10/12/profile-urls-findr-powerd-by-tako3-and-fooo/

というものを発見!
tako3だけじゃなく同様のサービスであるFooo.nameにも対応しているようで、大いに参考にさせてもらいました。

というわけでtako3、Fooo.name対応版が完成しました!
これによって、ブログ主やサイト管理者がページに何かを埋め込んだりする必要なく、tako3やFooo.nameに登録さえされていれば、その人のサイト上でその人のTwitterアカウントに向けてコメントを記入することができます。
CodeReposに置いてあるので、ぜひ使ってみてください。
また、気に入らないところがあればぜひいじってください。

いや~、やっぱ何か作ったら恐れず公開すべきだねぇ。アイデアを下さったmattnさんありがとうございました。

なお、このエントリは、稚作サービスの「ぶっこめ!」を用いまして、上記ブックマークコメントを頂きましたmattnさんのブックマークへのトラックバックエントリとなっております。
はてなのIDコールを使ってmattnさんにこのエントリを知らせる仕組みになってるはずですが気づいてもらえましたか?

Twitterに見てるページのコメントを投稿できるグリモン作った。

インスパイア元:

Going My Way: ブログのエントリーへのコメントを Twitter に投稿できるボタン
http://kengo.preston-net.com/archives/003745.shtml

上記エントリでしてることは、ただのLinkを用意するだけだったので、
もうちょっとなんとかしたいなーってことで、Greasemonkeyの勉強も兼ねて作ってみました。

インストールはこちらから。

<div id="_cvt_twitterId" style="visibility: hidden;">hoge</div>

という要素が表示しているページに存在していると、ウィンドウ下部にTwitterへの投稿Formが出現します。
投稿ボタンを押すと、@hogeさんへの返信という形で、表示してるページのURLとともにコメントがTwitterへ投稿されます。

なので、この要素をまず、ブログ主なりサイト管理者なりが埋め込んでおかないと意味がないです。
この辺なんとかしたいんだけど無理かなぁ。
ちなみに、当ブログでは上記要素を埋め込んでいるのでこのGreasemonkeyをインストールすれば、Twitterへの投稿Formが出現するはずです。

Twitterへの投稿時の認証はブラウザによるBASIC認証なので、初回はID/PASSを聞かれると思います。

念のため、ソースコードも貼っときます。初Greasemonkeyなので、突っ込み大歓迎です。
ライセンスはNYSLです。
(追記) CodeReposにコミットしました。
http://svn.coderepos.org/share/lang/javascript/CvT/comment_via_twitter.user.js

// ==UserScript==
// @name           Comment via Twitter
// @namespace      com.mesolabs
// @description    Comment via Twitter
// @include        *
// ==/UserScript==

(function () {

    var cvtElement = document.getElementById("_cvt_twitterId")
    if (cvtElement) {
        var form = //
        <form action="#" id="_cvt_form">
            Comment via Twitter: <input type="text" id="_cvt_text" />
            <input type="button" value="投稿" id="_cvt_submit" />
        </form>;

        var div = document.createElement("div");
        div.setAttribute("id", "_cvt_div");
        div.innerHTML = form.toSource();
        document.body.insertBefore(div, document.body.firstChild);
        setStyle();

        document.getElementById("_cvt_submit").addEventListener("click", submit, false);
    }

    function setStyle() {

        var style =
            <><![CDATA[
                #_cvt_div {
                    font-family: Arial, Helvetica, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "MS Pゴシック", sans-serif;
                    font-size: 14px;
                    color: #000000;
                    bottom: 0pt;
                    left: 20%;
                    right: 20%;
                    z-index: 255;
                    background-color: #9ACCFF;
                    position: fixed;
                    padding: 10px;
                    margin: 0px;
                    display: block;
                    opacity: 0.75;
                }
                #_cvt_text {
                    width: 500px
                }
            ]]></>;

         GM_addStyle(style);
    }

    function submit() {

        var status = encodeURIComponent(
            "@" + cvtElement.textContent + " (" + document.location.href + ") " +
            document.getElementById("_cvt_text").value);
        var url = "http://twitter.com/statuses/update.json";

        document.getElementById("_cvt_text").value = "sending…";

        GM_xmlhttpRequest({
            method: "POST",
            url: url,
            data: "status=" + status,
            headers: {
                "Content-Type":"application/x-www-form-urlencoded",
                "X-Twitter-Client": "Comment via Twitter",
                "X-Twitter-Client-Version": "0.1"
            },
            onload: function(xhr) {
                document.getElementById("_cvt_text").value = "send";
            }
        });

    }

})();

Scala勉強会@関東-1行ってきました。

いかんなー。しばらくBlog書かないでいると、なかなか書こう!って気にならない。

4/30にもJJUGのクロスコミュニティカンファレンスに参加して、岡崎さん(一緒にお食事できました)や櫻庭さん(懇親会の最後に名刺交換だけできました)他、沢山の方々にお会いできたりしたんだけど、Blog書くのメンドクサくてほったらかしてました。すみません。

んで、Scala勉強会@関東-1
これは、関東でやるって決まった瞬間に参加表明をだしました。
余りに早かったので、懇親会の参加表明が幹事を抜いて1番だったほど。
まあおかげで、自己紹介のいいネタになったんですが。

当日開始前に会場に到着。
到着してまず笹田さんが目に入り、「うぉ、Rubyの有名な人がいる!」とミーハーに興奮。
思えば場所提供が笹田さんなんだから、居るのは当然か。

そんなこんなで開始。
まずは自己紹介。参加表明をしていたYoshioriは当然のようにまだ寝ている模様。
まあおかげで、自己紹介のいいネタにさせてもらいましたが。

最初は水島さんScalaチュートリアルから。
Scalaの文法を基礎から多少マニアックなところまでカバーする内容なんだけど、笹田さんをはじめ多くの方の突っ込みが入る入る。僕も多少の突っ込みを入れる。
いやー、大学のゼミを思い出しましたね。
まあ、会場は東大のキャンパスだし、笹田さんは東大の講師だし、水島さんは大学院生だし、ゼミの雰囲気になるってのも当然っちゃあ当然か。

でも突っ込みのおかげで、ただPDF見ていただけの段階よりはずっと理解が進んだ気がする。
Scalaってとっても変態的。よく考えられた行き当たりばったりさというか、なんというか。
まあ、いじっていて楽しい言語には間違いない。
でもJJUGで言われてたような、Next Javaとなり得るかというと、やっぱりそれはまだ微妙な気も。

そんなこんなで、時が経つのを忘れて発表が進み、結局懇親会の開始を1時間遅らせることに。
soutaroさんの発表と水島さんの残りの発表を駆け足気味で終わらせ、懇親会へ。

懇親会では恐れ多くも笹田さんの真向かいの席に陣取らせていただきました。
横にいたYoshioriが会話を盛り上げてくれてとても楽しかった。
1次会が終わった段階で僕は用事があったので珍しく大人しく帰宅。

今回はjava-jaとは違って、Java系じゃない人が沢山いたから知り合い増やしたかったんだけど、そういえば懇親会中に名刺交換のターンがなかったなぁ。
東大院生、筑波大院生、Googleの中の人とかが多かった気がする。

第2回があればまた是非参加したいと思うのでよろしくお願いします。

197Xsの第1回オフパーティに

行く予定だったけど風邪ひいていけなかったよ!

LTの資料だけあるから、喋る予定だった部分とか付け加えてUPしたんでよかったら見てください。
http://server.mesolabs.com/197Xs_1/


次回は必ず参戦するぞ!

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

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

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

優先順位も日々変動しちゃってるんだよね。あ゛~~~!ホントは全部究めたいのに!
僕だけ一日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でアクセスする)と発生する不具合だと判明。修正しました。)

Java-jaと1000speakers

先週末は怒涛のイベントラッシュだった。
まず金曜日。Java-ja第5.7回ということで、元薬剤師/現在ニート/もうすぐプログラマなSeasarコミッタのダイチャンの家に会社帰りに突撃。
えびちゃんNAGASEYASUHiTOさんとのっちさんgakkiyさんせとあずささん(男)にお会いして、飲みながらもはや高齢恒例のえびちゃんの自作のボロネーゼを食し、色々しゃべった。
次の日もイベントあるから朝までご一緒せずに帰ったけど、boseな人は予告どおり午前3時にやってきたそうで、その行動力は心底見習いたいと思った。

んで土曜日。こちらは第2回1000speakersが13時から新橋のミラクル・リナックス本社で行われるということで、ちょっと前に着くぐらいの予定で12時過ぎに家を出た。
が、新橋が敷居高すぎて迷ってしまい、ついたのは13時20分すぎ。ビルの入り口でThinkPadにGoogleMap表示しながら急いで歩いてる丸刈り長身の人がいたので、「1000speakersですか?」って聞いてみた。あとでその人がitkzさんだとわかった。
会場につくと吉岡さんの講演の最中でした。会場前に、なんか学生服着た少年がいた。1000speakersに参加しにきたという中学生だった。itkzさんが親切に話を聞いていた。いい人。
吉岡さんの講演後に会場内にずかずか入っていったら、cactusmanさんが席をつめてくれて電源確保できた。cactusman++
個々の発表とかはcactusmanさんのこのまとめが詳しいので任せる。
発表終わって、ピザ食べてビール飲んで自己紹介して記念撮影して、2次会で新橋に飲みに行って、その後amachangに連れられてサイボウズラボに。
サイボウズラボに芋焼酎一本持ち込んだんだけど、朝までに空になってた。いつの間にかに飲み干してたらしい。
みんなそれぞれに好きなことしてたけど、僕はMacでの開発に慣れてなくて乗り切れなかったからUst流してた。気づいたらみんな結構寝てた。学生組はほとんど起きてたけど。
以下、個人的な感想。

  • Java-ja多すぎ。30人ぐらいしかいないのに、7人ぐらいはJava-jaだったような。
  • 必然的に発表内容もJavaなのが多かった。今は動的言語ブームだと思うのにこれはどうしたことか。ただ、Java-jaなonkはJavaには触れずunkとJavaScriptについて語ってたけど。
  • 学生多い。上述したコンパイラ書いてる中学生とか。上野氏(笑)は言うに及ばず。僕が学生のころにもこういう集まりあったらよかったのに。
  • Ustの画面を発表資料の横に映してるのもいいよね。Java-jaでもできないかな。

んで、日曜日。朝家に帰って相方にDISられながら就寝。11時に起きて13時からのJava-ja第8回への参加の準備。第6回よりも第7回よりも先に行われる第8回。
だが、前日飲み過ぎたのか胃が気持ち悪くなかなか準備できず。結局ちょっと遅刻ぐらいの時間で出発。
そしたら強風で電車狂いまくってて結局開始が30分ずれ込んでたので開始に間に合った。
こちらは、ペアプロとTDDの実践ということで和田卓人さんを先生に講義+実践を行った。
講義中にMacのEclipseに慣れなくて苦戦する僕とダイチャン。でもなんとか慣れてきた。っていうかEclipseのショートカットを全然使いこなしていなかったことに気がついた。Eclipseすげー。空気読めるIDE。
実践ではペアプロでWicket-jaのNewsをRSS配信する機能を実装してみた。でもやっぱペアプロもTDDも難しい。ってかTDDは完全に出来てなかったし、ペアプロも1分で書く人交代するとか出来てなかった。でもなぜかRSS配信機能は完成した。整形してからコミットする。
その後、懇親会。これがヤバかった。もうカオス。あっちこっちで爆発しまくってた。リア充なyamashiroさんが店員のおねーさんに絡みまくってるし、高井さんはえびちゃんの腹筋崩壊させたり嫁さらしを強要されたりしながらクネクネしてたし、yoshioriさんが過去の恋愛を暴露したり、矢野さんが酔拳発動させたり、「お客様のサービスを作るより自社製品・サービスを作りたいなー」って言った僕は高井さんと和田さんにすごい勢いでDISられるし、cojiさんid:yuripopと「付き合ってんの?」って見当違いのこと言われるし、お会計のレシートがこんなことになってるし。
面白すぎた。Java-jaの一員になって本当によかった。

各イベントの会場提供をしてくださった皆さま、企画運営をなさった皆さま、そしてお金を貸してくれたyamashiroさんとonkさんに深く御礼申し上げます。

そして、明日はlalhaさんの会社の見学に行ってきます。たのしみ~。

はてなスター始めました

今更だがBlogにはてなスター付けてみた。はてなのサービス使うのはこれが初めて。

今まで知らなかったんだけど、はてなのアカウントなくても、はてなスターの設置できたのね。
さらに、はてなスターポチってすんのもlivedoorアカウント等のOpenID対応サービスのアカウントでいいのね。

ってことで、まだはてなのアカウントは持っていない。

« 前のページ次のページ »