サブ嘔吐王者(sub AUTOLOAD)

Perlの仕事でDAO的なものを作る用事を振られた。
Bean的なものを作る際にアクセサをいちいち作るのが面倒なのでAUTOLOAD関数を使ってみた。初めて使ってみた。便利だった。
凄く気に入ったので、「さぶおーとろーどスゲェよ!」と吹聴してまわった。
これが昨日までのお話。
今朝、sub AUTOLOADって、漢字当てるとスカトロ専門のガチホモさんがチャンピオンみたいだね、とふと思った。
もうさぶさぶ言うのは止めることにした。

Seasar Conference 2009 Autumn

9月12日(土)にSeasar Conference 2009 Autumnが開催されます。

Seasar Conference 2009 Autumn - 9/12(SAT), Tokyo
日時:2009年9月12日(土)12:30〜17:45(12:00開場)
開場:法政大学市ケ谷キャンパス 外濠校舎3F(アクセスマップへ
主催:特定非営利活動法人Seasarファウンデーション
後援:法政大学情報科学部
参加費用:無料

ひがやすおさんのSlim3の三縦ぶち抜き講義とか、T2プロダクトの「全部出し切る」セッションとかが凄そうな感じです。
今週土曜日は用の無い人はもちろん是非、用の有る人もとりあえず置いておいて是非、来場すると面白いと思います。

個人的にはScala入門とか、S2Robotとか、お家でいじりながら楽しめそうなプロダクトに興味津々です。

テーマデザイン変えてみた

なぜか夜中に起きてきた絵の具のキャップです。こんばんは。
冷や飯を電子レンジであっためてインスタントみそ汁にお湯を注いだら目が覚めてしまったので、日記のテーマデザインを変えてみました。明るい緑でよい感じです。

Seasar Conference 2009 Spring に行ってきました。

遅くなっちゃいましたが、先週土曜日にSeasarConferenceに行ってきたので振り返ってみます。
今回は会場スタッフとしてのお手伝いをさせていただきました。

朝、ちょっと早めにつきすぎたのですが、おかげでid:c9katayamaさんからSDLoaderの新機能についてのお話を聞けたり、以前からちょっと怖くて話しかけづらかったid:bose999さんとお話できたりと、いろいろ得しちゃいました。しばらくしてid:m-hashimotoさん、id:yone098さんがいらっしゃったんですが、お二人ともお疲れ顔。印刷物の用意とか準備とか大変だったんだろうなぁ・・・と感じました。少しでもラクにできるように頑張るぜ!と気合を入れました。うん、気合は入っていたと思う。

設営が整ったあとはホールでタイムキーパーをさせていただきました。前の方に座っていたみなさん、ちょろちょろと動くやつがいて気が散ったりしたと思います。すみません。今度はちゃんと黒子ウォークをマスターして風も無く音も無くタイムキーパーに臨もうと思います。
思うだけですけど。

さて、タイムキーパーをしながらセッションを聞いて勉強させていただいたので、忘れないうちに受け取ったことを書いておこうと思います。

より詳しくはITProさんが記事に取り上げてくださったようなので、そちらをご覧になるときっととてもいいです。
「Slim3はGoogle App Engineに最適化したフレームワーク」---SeasarConでひが氏が披露 | 日経 xTECH(クロステック)
「早く帰れるようになった,開発が楽しくなった」---SeasarConで7社が採用事例を発表 | 日経 xTECH(クロステック)


Slim3

ひがやすおさんのセッション。
GoogleAppEngineに最適化されたフレームワーク、それがSlim3とのこと。
GAEはPythonではアカウントとれたけど、Javaは乗り遅れちゃってまだ使えない僕ですが、そのうち使えるようになったらSlim3を使って簡単なWebAppでも作成してみようかな、と思いました。

Seasar2の使用状況について

Seasarプロダクトの簡単な紹介と、OSSについての説明、そして使用状況。
マクロな視点で使用状況を概観して、続くミクロな事例を楽しんでね的な内容でした。

電通国際情報サービスにおける事例

iSIDの渥美 俊英さんと公門 和也さんのセッション。
iSIDさんのなかでも、Seasarが浸透していくにはいろいろとあったんだなぁ、と感じました。
実業務の事例ではS2JMSがデータ連携部分で非常に強力だったとのこと。ノーチェックだったので、ちょっと触っておこうと思いました。

S2ClickをはじめとするSeasarファミリーを活用したアジャイル

竹添 直樹さん(NTTデータ先端技術株式会社)のセッション。
公門さんがSeasarとSpringは大規模開発では開発効率はさほど変わらないとおっしゃってたのに対し、小規模開発では規約ベースのSeasarのほうが強力とのこと。またS2JDBCは現時点でもっともアジャイルに適したO/Rマッパだとのこと。力がこもってました。
また、品質確保のために仕様変更可能期間を別途事前に決めておくべきだという意見にはなんども肯いちゃいました。

Seasar入門から始めた300機能のシステム開発

関野 伸一郎さん(株式会社データサービス)のセッション
みんなでよくなろう。
スペシャリストさんへの負荷集中の避け方が為になった感じです。
ちょいと固めの、味のあるセッションでした。

携帯コンテンツ開発とSeasar

盛岡 尚記さん(フリュー株式会社)のセッション
S2導入で早く帰れるようになった!とのこと。すごいですね。Seasarはスパゲッティ化を防ぐ、ソフトウェア開発のBダッシュになる、
新人さんの教育コストに課題が残っているというお話も興味深々でした。

Seasar2 みんなでやれば こわくない

足立 智広さん(株式会社ロックオン)のセッション。
えびすくん、インパクト大きい!
流れるインタフェースが特に有効だったとのこと。「困った・はまった」の辺りも参考になりました。やっぱ複雑なページはテンプレートでの実装は難しいですよね。
LLよりJavaがいいよ!という意見にはうならされました。

Web サービスの育て方 - チョイスタディの場合 

染田貴志さん(株式会社チョイスタジオ)のセッション。
ひがさんをのぞいてただ一人、ディスプレイの前から離れてトークを展開されてました。かっこよかったっす。
Webサイトとして大事なことは、定期的に動きがあることと品質とが両立されていることだ、というご意見にはなるほど、と思いました。リリースを安全に済ませるために自動化を進めるという点とか、S2よりも仕事の進め方について参考になる意見がおおいセッションでした。

ここまでできる Teeda & DBFlute

高橋 剛さん(株式会社ハウインターナショナル)のセッション。
規約ベースは学習コストがかかるので学習コストの低減のために専任のアーキテクトさんを用意することや、サンプル機能の実装をしっかり行うことがいいとのことでした。なるほどですね。

ライトニングトーク

タイムキーピングが忙しく、あまりよく聞けなかったのが残念。
今日はid:mastaka_kさんの話は聞けないのかと思ってたのですが、聞けました。NPO法人のお話。
杉山さんの事例もおもしろかったです。その手の仕事があったときには文章を長めにしようと思いました。あと、OSACをチェックしようと思いました。
ここでハプニング発生。電池残量が1になったため、携帯のストップウォッチが起動しなくなってしまいました。やばい!超やばい!と思ったらid:c9katayamaさんが携帯を貸してくれました。ありがとうカタヤマン!すごいぜカタヤマン!日本一のいい男!!と思いました。ほんと助かりました。
でもそんなこんなであたふたしていたおかげで、ライトニングトーク三番手の方の内容はほとんど聞けてませんでした。残念。。。
最後はid:happy_ryoさんが自信満々のトークで締めてました。うーん25には見えない・・・・でも年をとると若く見られるタイプだと思います。

BigtableとJDOの勝ちパターンアンコール!

アンコールとか普通ありえないです。すごいですひがさん。

あと片づけ

あれよあれよと終了し、ほとんど手伝えませんでした。id:y-komoriさん、最後に扉開けるくらいしかしないですみません。

その後

打ち上げに行く気満々だったのですが、家においてきたかみさんの風邪が悪化していることを確認したため帰ることにしました。ご挨拶できなかったみなさん、すみません。

振り返って

技術的なこと意外のところで得るものが多かったイベントでした。
前に進んだかどうかはわかりませんが、イベント前よりちょっと違うステージに立てているような気がします。

ありがとうございました

来てくださったみなさん、ありがとうございました!
スピーカー、スタッフのみなさんお疲れさまでした!ありがとうございました!

 フォント名は同じだけど中身が異なる複数のフォントを使用するには

最近仕事ではまったので。
.Net FrameWorkで印刷イメージデータを作成してプリンターに投げる、というのを最近作ったのですが、そのときにたーくさんの外字を出力するために複数のフォントを切り替えて印刷イメージデータに出力する、というのをやりました。

このとき最もネックとなったのが、「このフォントを切り替えて出力してください」と渡されたフォントが複数あったんだけど、そのフォント名がかぶってること。
Windows外字エディタで「すべてのフォントにリンクする」を選んだときに作成される「EUDC」というフォント名で、個々のPCで外字を作成する際には多分標準。
これを制御コードが直前に付与してある文字はフォント1で、付与してない場合はフォント2で出力する必要がありました。

フォント名が同じなので、実行環境にはひとつしかインストールできず、さぁどうする?というところで結構はまった・・・

解決策はわかってみれば簡単でした。システムにインストールされたシステムフォント群(システムフォントふぁみりーというそうな)とは別に、アプリケーション固有のフォント群をインスタンスとして生成することができるので、それをまた複数生成し、それぞれに別のフォントファイルを割り当てればいけました。

超適当コード例(適当なので注意)
/* EUDC1.TTE、EUDC2.TTEの二つの外字フォントファイルがある場合。 */

void futatsunoFontdeKaiteokureyo(Graphics argGraphics) {
    PrivateFontCollection pfcEUDC1 = new PrivateFontCollection();
    pfcEUDC1.AddFontFile("EUDC1.TTE");// フォント名はEUDC
    Font eudc1 = new Font(getFontFamily("EUDC", pfcEUDC1), 9);

    PrivateFontCollection pfcEUDC2 = new PrivateFontCollection();
    pfcEUDC2.AddFontFile("EUDC2.TTE");// このフォント名もEUDCだけど、ファイルが違う
    Font eudc2 = new Font(getFontFamily("EUDC", pfcEUDC2), 9);

    Brush brush = new SolidBrush();
    argGraphics.DrawString("EUDC1で表示するべき文字", eudc1, brush, 10, 10 );
    argGraphics.DrawString("EUDC2で表示するべき文字", eudc2, brush, 10, 20 );
}

FontFamily getFontFamily(string fontName, PrivateFontCollection pfc) {
    return pfcをforeachでぶん回してfontNameのフォントファミリーを返却;
}

以上メモ。

遅ればせながらBuri勉強会行って来た記

先週末日から3日ほど、39度越えの熱を出しながら生死の境をさまよっていたEnogunoCapです。
みなさんこんばんは!こんばんは!生きてる喜びでテンション高いです。
もうね、びっくりしたですよ。いつもなら聞こえもしない遠くの電車の音とかが聞こえてうるさく感じて寝られなかったり、夜中寝汗びっしょりになって目が覚めたらなんか暗いのに物がよく見えて(明るくて物が見えるのとは違う感じ)あれおかしいな?月がでてるのかな?と思って外を見てみたら曇ってて、雲の向こうに死兆星が見えたら大変だから急いで着替えて布団に戻ったり、そんなこんなの3日間でした。以上、当ブログエントリーが遅れた言い訳終わりです。

Buriで苦労したとこ(一合目) いまいさん(id:imai78)

当勉強会での理解をスムーズに進めるために、Buriの基礎的な事柄を纏めてくださいました。
なんでも基礎から先にすすむのが難しい僕にとってはこういうのがあるとホントに助かります。感謝!
以下メモ。

  • リアルBuriは80cm越えのものを指し、ワカナゴは九州での呼称だということがよく分かりました。
  • Buriの中での状態の表現としての「パス」を知りました。パッケージ/プロセス/アクティビティでそのエンティティの状態が一意に定まるのね。なるほど。
  • IF文(分岐)はフロー、デリベーション、バリデーションとに大別することができ、Buriはこのうちのフローを外に出すことができますね。切り出すことによってコードはすっきりと分かりやすくなり、切り出されたフローはJPEdなどのフロー記述ツールで絵を描くことで視覚的に記述することができる、と。
  • And-Join=コンバトラーV

差し入れタイム さしいラー id:htadaさん

GJです!ご馳走様でした。

ぶりべん はぶさん

はぶさんの熱いトークが1時間・・・と思いきや、まさかのグループディスカッション形式!
一方通行でお話を聞いてるよりもあーだこーだと話合いながら実践して、その結果をすり合わせたほうがアタマに入ることを考えると、「今日はなんとしてでもぶり脳の種をみんなの頭に植えてってもらう」という意気込みが感じられました。
やってみると結構自分が勘違いしてることに気づかされたりして、やっぱり勉強になったですね。
以下メモ。

  • 人間系のフローとシステム上のフローは別。
  • 状態≒箱。伝票を入れておく箱をイメージすると理解しやすい。
  • プロセス脳で考えなくてもいいことを考えがち。ぶり脳で素直に表現すること。手続きを知っていることが状態の考え方を妨げる。
  • Autoの□はBuriに見えるように心の目を磨くこと。

まこたんさんのデモ

Buriを動かしながら、DB上のパスがどうなっていくかを見せていただいちゃいました。
ちょっと遠かったのでコードがよく見えなかったんだけど、And-Joinで一つのエンティティの状態(パス)が2タプルになってるところとか直に見れたので今日自分が学んだことの再確認とかできました。感謝!

夜の部

はぶさんを囲む会開催席を向こうにBuriコミッタの方々がBuri次バージョンの話をしてるのを聞かせてもらったり、GrailsがGroovyのフレームワークだということを恥ずかしながら初めて知ったり、サーブレット仕様に関する指令を受けてきたり、FamilyManagementExceptionをcatcheしそこねてあたふたしたりしました。楽しかった!

ああ、、、昼休みが終わってしまった・・・
とにかく遅ればせながらですが、みなさんお疲れ様でした!&ありがとうございました!