jfluteの日記 このページをアンテナに追加

2016-12-01

お世話になってる先輩が登壇する勉強会くらい行ってみたら?

|

機会損失の積み重ね

DBFluteフェスが終わったので、
言いやすくなったので言います。
(フェス前だとフェスに来いと
言ってるように聞こえてしまうから...)

なかなか勉強会に行こうとしない人がいます。

とはいっても...

別に勉強会に行かなきゃいけないわけじゃないし、
勉強会に行かないと成長しないわけでもないです。

ただ、"機会損失" になるかもしれないね、
って思うのです。

一番の教師がいる

特に...

「お世話になってる先輩が登壇する勉強会先輩は成長の宝庫です

これは言うまでもありません。

// こうはい extends せんぱい | jfluteの日記
http://d.hatena.ne.jp/jflute/20131124/extendsmaster

先輩の技術に対する、
「触れ合い方、考え方、解釈の仕方」

社外の人に話をするということで、
いつもとは違ったニュアンスや視点で
聞くことができるかも。
普段、見ない先輩の姿を見るかも。

より先輩から吸収するチャンスでもあり、
時間を共有したことによって、
先輩からさらなる技術話を聞くきっかけになります。

そして何よりも、
互いのことをよく知っている、
同じ職場にいる身近な人...

一般的な話と現場の話を
つなげて話ができる一番の教師

と言えるわけです。
他にそんな人いないわけですから。

勉強会に行かないという決断!?

成長したい、できるようになりたい、
って言ってる人は多いけど、

「お世話になってる先輩が登壇する勉強会」

にすら行かない人、

その分、違うことでめっちゃ成長してるんならいいけど、
もしそうでないなら、
「勉強会に行かないという決断」
はどうやってしたんだろう?

もちろん、これはセンシティブな話です。
実際に、行こうとして行けない人もいますから。
様々なプライベートな事情を抱えている人もいるでしょう。
だから、あまり誰も強くは言わないのです。

でも中には、あまり深く考えずに行かない決断を
している人もいるかもしれない。
その人には、伝えてみたいな。

お世話になってる先輩が登壇する
勉強会くらいは行ったら?

もちろん毎回じゃなくてもね。
もし行かないなら、
機会損失をした分を賄う別の行動をしよう。

行動力のちから

// 成長するかしないかは選べる | jfluteの日記
http://d.hatena.ne.jp/jflute/20160316/selectgrowth

ってブログを書いて、
多くの若者に読んでもらって、
良い反応もたくさん頂きました。

でも、果たして、
みんな行動を見つけることはできているだろうか?

...

ってな生意気なことを言っているjfluteを
打ちのめすくらい成長して欲しいです。

f:id:jflute:20161003123246j:image

2016-11-27

幸せのDBFluteフェス2016終わり

|

終わったー

f:id:jflute:20161127114019j:image

10歳になってのDBFluteフェス。
つまり、10周年記念!

// DBFluteフェス2016 | Connpass
http://connpass.com/event/43457/

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

まずは、会場を提供してくれました、
ビズリーチ さんに感謝。

いつもいつもありがとうございます。

☆★☆★☆★☆★☆★

...

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

そして、SolrFlute, KvsFlute
をコントリビュートしてくれました
U-NEXT さんに感謝。

(詳しくは後で出てきます)

☆★☆★☆★☆★☆★

...

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

そして、バーガーとコーラ代を寄付してくれました、
N2SM さん(Fess, sugayaさん) に感謝。

jflute自費イベントなので、とってもとっても助かります。

☆★☆★☆★☆★☆★

f:id:jflute:20161127115438j:image

昨年に引き続き、
1000円取る方式、いきなり懇談会方式、
やってみました!

ただ、どうしても日曜日開催になってしまい、
参加したくてもできなかったという声も
多く聞こえて来たのでごめんなさい。

それでも40人近くの方にご来場頂きました。
ありがとうございます!

...

※このブログ、日付が27日になっていますが、
11月30日に書き終わりました...。

いきなり懇談会

中目黒レインボーバードランデヴー
(Rainbow Bird Rendezvous)
のごはん!

今年も「とっても美味しい」と評判でした。
レインボーのみなさんありがとうございます!

f:id:jflute:20161127120455j:image

今回はいきなりひとりひとり自己紹介!
なので最初からそれなりに会話も弾みました。
でも時間なくなっちゃって、
Small Session はスキップm(_ _)m。
(まあ交流が進んだということで結果オーライ...)

f:id:jflute:20161127120508j:image

今回も、常連の方だけでなく、
初めての方もたくさんいらしてくださいました。
このほどよいバランスが、
DBFluteユーザーの特徴かもしれませんね。

f:id:jflute:20161127120934j:image

それにしても、色々なところで
DBFlute 使われてるんだなぁと、しみじみ。
話を聞くと、けっこうびっくりするようなことばかりで...

f:id:jflute:20161127125552j:image

"DBFluteを使ってくれている" ということは、
必ず試練を乗り越えて来たという証拠です。

「なにそれ聞いたことない、使って大丈夫なの?」

その試練を乗り越えて現場で使ってくれている、
本当に感謝ですね。

一時限目A: "ESFlute"

ESFluteによるElasticsearchでの
O/Rマッパーを用いた開発 | Slideshae

Big Artist の sugaya さんのセッション、
この一年でさらにパワーアップしたESFluteが
やってまいりました。

f:id:jflute:20161127130730j:image

Elasticsearchのスキーマから、
BehaviorやConditionBeanを自動生成!
タイプセーフなElasticsearch検索ライフを。

f:id:jflute:20161127130710j:image

興味のある方は、スライドと共に、
Exampleをぜひご覧ください(^^。

lastaflute-example-waterfront | Github

一時限目A: "LastaJob"

LastaFlute の Job Scheduler "LastaJob"
のお披露目。

すでに、オープンソース全文検索サーバー Fess にて、
がっつり利用されています。

f:id:jflute:20161127130617j:image

レアセッションになる予定が、
思ったよりも興味ある方が多くてビックリ!

開発当初は、もうただ時間が来たら動くだけ、
そのくらいでおしまいの予定でしたが、
あれよあれよと実装が進み、
わりといっちょまえの Job Scheduler まで成長。
機能や使い方を紹介しつつそのストーリー語りました。

まあ、ちゃんと Job Scheduler となったら、
最低限これくらいの機能は必要なんだなぁと。

o 時間が来たら動く
o DBFlute/LastaFluteとの連携
o DBFluteっぽい例外ハンドリング
o 二重起動防止 (待ちの挙動を選択できる)
o Jobの追加や時間変更、削除
o Jobへのパラメーター追加

LastaJobの存在意義は、
単なる Job Scheduler というだけでなく、
やはり DBFlute/LastaFluteとのスムーズな連携です。
本来、バッチで色々とこさえてあげないといけない連携部分、
これらがデフォルトで入っているのですごく楽です。
(その代わり別のフレームワークでは使えません)

詳しく知りたい方は、ぜひドキュメントを(^^
 => LastaJob | LastaFlute

二時限目A: "MailFlute"

MailFluteでメール送信を楽しもう! Slideshare 

f:id:jflute:20161127140909j:image

メールテンプレートライブラリまで作っちゃいました。
実際に、登壇者のawaawaさんは、
MailFluteを使って実際のサービスでメールを飛ばしています。
しかも、添付ファイルまで...

f:id:jflute:20161127140930j:image

こちらも人気セッションとなりました。
LastaJobといいMailFluteといい、
みんな地味なの好きですね(^^。
まあそりゃそうですね、DBFluteの集まりですから笑

詳しく知りたい方は、ぜひドキュメントを(^^
 => タイプセーフメール送信 (MailFlute) | LastaFlute

二時限目B: Effective ConditionBean

さて、しっかり DBFlute のわりと初歩的なセッション。
でも、せっかくなので DBFlute の Java8 版のお話も。

f:id:jflute:20161127141017j:image

基本的には、こちらのページのお話を丁寧にした感じ。
 => Effective ConditionBean | DBFlute

ちょうど質問が出た話で、
検索(ConditionBean)をどこで実装するか?
ポイントとなる考え方はこちらです。

メンテ不能の強者、引数リモコンパターン
http://d.hatena.ne.jp/jflute/20160905/argremocon

ルーズなDaoパターンなら見たくない
http://d.hatena.ne.jp/jflute/20160906/loosedao

f:id:jflute:20161127141137j:image

ということで、
ちゃんとしたDaoパターンにできないのであれば、
ConditionBeanはそれぞれの画面に属するクラスで
実装するのオススメです。
そして、再利用は小さな部品単位で再利用、
検索をまるごと再利用しない。

三時限目A: DBFlute-1.1.1 & SchemaPolicyCheck

1.1.1 の報告会みたいな感じ。

f:id:jflute:20161127151051j:image

そもそも DBFlute の OptionalThing について、
そして、orElseThrow() のジレンマを語りながら、
1.1.1 で追加された orElseTranslatingThrow() について。

あと、CDef にも Optional の流れを。
of(code), byName(name) で OptionalThing 型を戻す。
地味な改善ですが大切な改善。

そしてそして!

昨年のDBFluteフェスでawaawaさんより、
「SchemaPolicyCheckを1月1日までに!」
と無茶ぶりされた、

SchemaPolicyCheck

この機能自体は詳しくは、今年の1月1日のリリース記事をご覧あれ
 => DBFlute-1.1.1 Released | jfluteの日記

f:id:jflute:20161127150845j:image

SchemaPolicyCheckがあるとないとでは、
DB設計を色々な人に任せる時の安心感が全然違います。
一人で設計してるにしても、
ケアレスミスを検知してくれるのはとても嬉しい。

でもまだ、シンプルなチェックしかできません。
ということで、2017年1月1日のリリースにて、
もうちょい立派な機能として改善してきます。

って、自分で言っちゃった。。。あーあ

おやつ懇談会

さて、おやつタイム!
ここで登場するのは...

ドリンクは galvaninaオーガニックコーラf:id:jflute:20161127155726j:image

そして、
お楽しみの...

f:id:jflute:20161127155745j:image

世田谷オルオルカフェ の、
サルサバーガー、そして、クレイジースパイスチキンバーガー!

参考までに、
お店で出てくるサルサバーガーの写真がこちら(^^。
おるおるのみなさん、ありがとうございます!

f:id:jflute:20161129214912j:image

二回目の懇談会ということで、
参加者同士で自然と会話が弾んでいて、
とっても良いムードでしたね。

f:id:jflute:20161127161633j:image

jfluteにとっては、これが本当に嬉しい。

LT大会だよ!

そんなムードのままLT大会へ。
これも二つの会場で同時開催です。
それが楽しいんですよね。
あっちでもこっちでもなんかやってる感。
LT大会のA会場
Dbflute intro (deco chan) | Slideshare

"decoちゃん" より、新しい DBFlute Intro のおはんし。

f:id:jflute:20161127162645j:image

DBFlute Intro がリニューアルされました。
ようやく、Java8版(1.1.x)に対応したIntroが出ました。
Introの中ではLastaFluteが使われてるんですよ。
これ、また別途ブログ書きますね。

decoちゃん、ナイスLTでした。
ありがとう。

なんか、元旦リリースの宿題もらっちゃったね(^^

...

KVSFlute, SolrFlute (@nashcft) | Slideshare

nashcftさんより、KVSFlute, SolrFluteの話。

f:id:jflute:20161127163811j:image

そう!U-NEXTさんより、KVSFlute, SolrFlute を
コントリビュートして頂きました。
大感謝感謝、ありがとうございます!
次週のJJUGでも話されるようです。
こちらも、単独のブログでまた書きます。
LT大会のB会場
僕がLasta flute選んだ理由 (@tresener_yu1ro) | Slideshare

yu1ro、無茶振りLTありがとうー。
プライベートで作っているサービスで、
LastaFluteを使ってくれているというお話。

f:id:jflute:20161127162608j:image

...

ラズパイとLastaFlute (kajikuri kun) | Slideshare

かじくりくん、おもしろいLTありがとうー。
車内のトイレの空室管理システムを、
LastaFlute使って作ったというお話。
jfluteの破片プログラマーの記事を読んで、
一念奮起してくれたみたいです。
素晴らしい行動力ですね(^^
 => 破片プログラマーの悲しみ | jfluteの日記

f:id:jflute:20161127163405j:image

...

DBFluteを閉じ込めよう (@taktos9) | Slideshare

たきさん、飛び入りLTありがとうー。
DBFluteを使う時の一つのアーキテクチャ論。
一気に高度な話になって、空気が引き締まった感じです。
この辺は今後も色々と議論していかないといけないところで、
「システム全体の中でDBFluteをどう使うか?」
DBFlute側も色々と提案していく必要があります。

f:id:jflute:20161127170420j:image

写真がB会場じゃない!!!

なんか...
B会場の "ラズパイLastaFlute" のトイレ話で、
めっちゃ盛り上がって時間がなくなっちゃったみたいで、
"DBFluteを閉じ込めよう" が、
次のパネルディスカッションの前座LTになりました笑。 

なんかB会場はざっくばらんしすぎみたいなー笑。
まあそれもまたよし。

...

LTは、若い人たちの発表の場とも言えます。
どんどんしゃべって慣れていって欲しいですね。

パネルディスカッションDBFluteネイティヴズ」

さて、恒例のパネルディスカッション、
今回は、"DBFluteネイティヴ" たちが集まりました。

f:id:jflute:20161127171719j:image

DBFluteネイティヴとは?

二年前のDBFluteフェスで、
ConditionBeanネイティヴという言葉が生まれました。
 => 奇跡のDBFluteフェス2014終わり | jfluteの日記

まあ、最初から ConditionBean で実装している、
という意味ですね。
Javaソースコード上にSQLをベタベタと
書いていた人たちからすると "おおぅ" と思うこと笑。
(jfluteもそうです)

それがちょっと発展して、最初からDBFluteがある状態。
なんか色々と聞きたくなるような話ってあるんじゃないかって。

ファシリテーターは、"もりぞーんはがー" くん。

f:id:jflute:20161127171534j:image

興味深い質問をたくさんしてくれました。
すごく前向きな話をたくさん聞けましたね。
勉強の仕方、どういう感覚でDBFlute使っているのか?
などなど...

f:id:jflute:20161127172024j:image

まあ、jflute個人的にはこういうことですね。
 => 若い人がいきなり便利なものを...ぜひ使って! | jfluteの日記

パネルディスカッションは、
DBFluteユーザーの色々な面を気づかせてくれる、
非常に貴重な場です。
また、やりたいですね。
パネラーのみなさん、ありがとう!

...

ここでちょっとサプライズ。

f:id:jflute:20161127174252j:image

ファシリテーターの "もりぞーんはがー" くんが、
Software Design にて、
文字コードの記事を執筆されたということで、
サイン入りのものをじゃんけん大会!!!

f:id:jflute:20161127174322j:image

新卒二年目で記事を執筆ってすごい!
ファシリテーターやってくれてありがとう。

パネルディスカッションって、
個人的に好きなので、もっともっとやっていきたいな(^^

最後のjfluteトーク

さて、最後...jfluteより

f:id:jflute:20161127175309j:image

DBFluteが10周年を迎えることができた、
DBFluteユーザーのみなさんへのお礼。

DBFluteフェスを6年連続で開催できた、
キャストのみなさんへのお礼。
会場を提供してくれたビズリーチさんへのお礼。

KVSFlute, SolrFluteを、
コントリビュートしてくれたU-NEXTさんへのお礼。

DBFluteフェスに対して、
金銭的な支援をしてくれたFess(sugayaさん)へのお礼。

そして、10年の振り返り:
 => DBFluteは10歳になりました | jfluteの日記

ここ最近のOSSの特徴:
企業ベース、コミュニティベース、個人ベース

この先どう続けていくか?
よりも、まずはこれまでどう続けてきたか?

仕事力、現場力、そして行動力...
10年の中で大きな三つの決断がありました。
まあ、この辺は来てくれた方々にだけのお話で。

jfluteがDBFluteに対して、
どうしてもできないこと。
「作者ではなくユーザーとして貢献すること」
これは、どうしたってjfluteにはできません。

もし、お願いしたいことがあるとしたら、
これに尽きます。

【追記】
早速ユーザーの方がブログ書いてくれました。
ありがとうございます!!!助かります。

DBFluteフェス2016(#dbflute)に参加してきました
| @chichi1091 の 雑記 

f:id:jflute:20161127175354j:image

...

さて、手を出しすぎました笑。

o DBFlute
o EMecha
o DBFlute Intro
o UTFlute
o Lasta Di
o LastaFlute
o LastaJob
o MailFlute
o TomcatBoot
o JettyBoot
o ERFlute
o ...

...

LastaFluteは、
DBFluteユーザーが安心してJavaを使えるようにするためのもの。
DBFluteを使いたいけど、
それ以外の部分で何を使えばいいのか...
ということでJavaから離れていく人。

エンジニアだったら、
新しい技術にチャレンジするのは良い話ではありますが、
何かサービスを作るとなれば、小さくても起業家です。
そのサービスを実現するのに一番速い、一番実現可能性の高い、
"自分にとっての最高の道具" を選びたいものです。

LastaFluteは、DBFluteユーザーの一つの選択肢として、
重要な立ち位置にいると考えます。
実際に、Lastaができる前は離れていった人が、
Lastaの登場で、JavaDBFluteを遠慮なく
使ってくれることが多くなりました。

...

また、LastaFluteは、
LastaFluteを使っていないユーザーにも
重要なフレームワークになります。

DBFluteと何か別のフレームワークを使うとき、
必ず DBFlute との連携を実装する必要があります。
これは、他のツールでも同じです。
A と B を使う時、A と B を連携させなければなりません。
連携させなくても使えるかもしれませんが、
互いの良いところを打ち消してしまっている可能性もありあす。

DBFluteだと、
AccessContext や CallbackContext などですね。

その連携の典型的な参考実装が LastaFlute と言えます。
DBFluteを最高に効率よく使うためにどうすればいいのか?
LastaFluteにはそのエッセンスがたくさん含まれています。
別のフレームワークでも、ぜひ真似して欲しいのです。

LastaFluteを作ることで、
こんなにDBFluteを効率よく使えるんだ!
ってjflute自身もたくさんの発見があったものです。

...

最後ちょこっとだけ、
jfluteのモチベーションというかパワーについて話しました。
まあ結局、昨年のフェスのトークで話したようなこと、
それをちょっとだけ話した感じですかね。
 => 笑顔のDBFluteフェス2015終わり

去年、何を話したかって忘れてたんですけど、
あとでよーく考えたら、
去年話したこととまあ同じっちゃ同じじゃんって(^^。

BGMは、Maihamaだらけ

BGM頑張りました!
毎年恒例、
DBFluteフェスの大きな特徴の一つ、BGM。

今年は、Maihama好きのデザイナーさんの協力のもと、
10周年にふさわしい BGM 構成にしました。

Maihamaだらけ笑

f:id:jflute:20160101162208j:image

ちゃんと、イベントの展開と曲調を合わせて
構成した(つもり)なんですよぅ。
jflute自身が、BGMからパワーをもらいました(^^。

一緒に考えてくれた asamin ありがとう。
当日DJやってくれた jumpei ありがとう。

キャストへの感謝

一人ではこのイベントは絶対にできません。
手伝ってくれたキャストのみなさんには感謝感謝です。

f:id:jflute:20161127121105j:image

...

キャスト自ら楽しんでもらえたでしょうか?

キャスト自ら成長してもらえたでしょうか?

そこがぼくが一番気にしてるところかもしれません。
jfluteにそれができたんだろうか?
わからないですけど、みんなとても大好きです。
キャストがとても大事。

f:id:jflute:20161127114446j:image

本当にありがとう。

幸せのフェス

jfluteは、
DBFluteユーザー同士が交流している姿を見ると、
一番幸せを感じます。

f:id:jflute:20161127121408j:image

...

DBFluteフェス、
またできるといいですね。

f:id:jflute:20161127184325j:image

f:id:jflute:20161127184410j:image

途中でお帰りになられた方が写っていませんが...

...
...
...

ぜひまた、お会いしましょう。

f:id:jflute:20161127184546j:image

...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...

ん?

f:id:jflute:20161127184602j:image

2016-10-20

マージできるERDツール、ERFlute作りました

|

スタートアップインクリメンタル開発

をターゲットにした、
Eclipse Pluginとして作成されている ERDツールです。 
(ERMaster をフォークした ERMaster-b をフォーク) 

ERFluteトップページ

RDB意識を高める根本のモデル

ERDは、RDB意識を高めるモデルだと考えています。
やはり「視覚的な訴え」というのは、
人にとって大きなインパクトです。

これはjfluteの個人的な感覚値ですが、
"ERDのある現場" と "ない現場" では、
RDBへの意識レベルが違ったように思えます。

"ない現場" では、SQLに関する議論もしづらく、
「DBは単なる入れ物でたまたま構造的に保存されてる」
という感覚になっているムードがあったように思えます。
(もちろん個人差ありますが、
現場メンバーのスキルレベルはバラバラですから)

自分がディベロッパーとして仕事をするとき、
そこにRDBがあるならば、ERDは見たいです。

ERDのキープするためには?

ただ、ERDのキープはなかなか難しいもの。
ERDでシステムは動きませんし、
ERDが正しくなくてもシステムは動きますから、
ただ描くだけでは、見たいと思うようなERDになりません。
9割合ってるけど1割間違ってる(or古い)
ERDを見たいとは思わないものです。
スタートアップの現場で図をメンテナンスし続けるのは、
ほぼ不可能なことだと言っても過言ではありません。

二つ方法があります。

ひとつ、DBからリバースする。
でも、この技術は確立されていません。
リバース自体はできても、
人が目で見て嬉しい形に配置されないからです。
リバースされたものを人が手で直して、
再リバースしたときに配置を記憶して...
とかってのを思いついたりはしますが、
実現には随分と時間がかかるでしょう。

もうひとつ、ERDからDBを作る。
DBFluteのReplaceSchemaのような機能があれば、
ERDからDDLを出力するだけでOKです。
その技術は多くのツールで確立されています。

ということで、後者の

ERDドリブンスタイル

による運用が一番現実的だと考えています。

スタートアップでのDB変更

スタートアップなどのインクリメンタル開発では、
特徴的なDB変更が発生します。

A. 最初はざっくり設計、あとからしっかり
B. DB設計の得意な人は現場にいない
C. みんなでDB変更
A. 最初はざっくり設計、あとからしっかり
これはもう、以前のブログが参考になる話です。

// SIとスタートアップの違いを知ろう | jfluteの日記
http://d.hatena.ne.jp/jflute/20151007/sista

すでに運用中のテーブルに対して、
DB変更がひんぱんに発生します。
B. DB設計の得意な人は現場にいない
これ意外にポイントです。
スタートアップで集まったディベロッパーたち、
なかなか "DB設計得意です!" って人が
都合よく参加したりしません。

創業プログラマーは得意だったとしても、
そのあと集まったメンバーが得意であることは少ないです。
創業プログラマーは別のお仕事でどんどん忙しくなります。

DB設計あまり得意ではない人が設計するということを
前提にしないといけないのです。
もちろん "DB設計をちゃんと勉強しよう" とは言いますが、
他にも勉強しないといけないことがたくさんありますので、
なかなかDB設計だけに注力することは難しいでしょう。

サービスがでかくなって、DBに詳しい人が入ってきたとしても、
規模的にその人がすべてを設計するのは難しく、
レビューワーの立場として注力するのが現実的なラインです。

つまり、DB設計してリリースして後からまたDB設計し直す、
DBリファクタリングのようなことも頻繁に発生します。
C. みんなでDB変更
"縦割りの弊害" を避けるために、
あまり専門による役割分担をしません。
というかそもそも、
それもできないくらい人が少ない。

各ドメインを担当している人が、
自分でDB設計して自分でSQL書いて自分で画面作るのが
一番世話ない。スタートアップでは自然とそうなります。

そのとき、git で alter_db ブランチなどを作って、
ERDの修正をシリアルに行う現場が多いです。
ここは人間的な運用で、
誰がERDのボールを持っているのかわかるようにして、
事故が起きないようにします。
ERDは大抵マージできないので、
枝分かれに設計してしまうと手戻りになってしまうからです。

ERMasterとERMaster-bの功績

さて、これらのインクリメンタル開発のジレンマを解決すべく、
jflute身の回りでは、
ERMaster と ERMaster-b を使っている現場が多いです。

みんなでDB設計するために、
ライセンスの縛りのない身軽なオープンソース。
それでいながらもグラフィカルで高機能。

ERMaster-b に関しては、
ERMaster で現時的に厳しいところを修正して、
30テーブルから300テーブルに発展していく過程を、
見事にこなせるだけの機能が備わっています。

ERMasterとERMaster-bのジレンマ

ただ、保存ファイルはXMLですが、
保存のたびに順序やIDが変わってしまい、
実質的にマージはできません。

マージは100歩譲るにしても、
差分が取れないので "何を直したのか?"
の確認が取りづらいのもつらいです。
もちろん、DBFlute を使っていれば、
HistoryHTML でそこは確認できますが、
DDLを出力して自動生成するタイミングになるので、
もっと早い段階でわかりたいものです。

...

オープンソースの良いところでもあり、
つらいところでもあります。

ERMaster や ERMaster-b はコミットがほとんどありません。
まだまだ改善の余地はあると考えていますが、それが難しい。

オープンソースなので直せるはずですが、
機能が非常に豊富な分コードが積み上がっているため、
現実的に現場で片手間で直していくというのも難しい。

フォークして直されている方々もいらっしゃいますが、
本家の ERMaster からそれぞれ枝分かれしており、
それぞれ個別個別には問題は解決していても、
それら解決が一つにまとまったプロダクトは存在せず、
現場ではジレンマを抱えていると言えるでしょう。

また、フォークしたプロダクトが、
リッチにメンテナンスされるとは限らないでしょう。
"ERMasterぷらすあるふぁ" としてのフォークがほとんどかと。
(もちろん、それはユーザー次第とも言えますが)

# それぞれフォークがあること自体はとても良いことです。
# ただ、それと現場のジレンマは別問題で。

ERFluteのかたち

もろもろのジレンマや要件が満たされているわけではないですが...
とりあえず、

ermファイルをマージできる

ようにしました。
マージなんてしないよって人でも、
gitの差分で何を修正したのかわかりやすいのは嬉しいでしょう。
また、細かいものであれば、XML だけの修正でERDの修正もできます。
何か "壊れたー" というとき、XMLの修正で直せたりもします。
ERMaster や ERMaster-b ではそれがほぼ不可能でした。

そして ERFlute では、
もろもろのジレンマを踏まえた運用をしたいと思っています。

ずばり、ERFluteも同じく、
リッチなメンテナンスはできないと考えています。
(jfluteは、DBFlute, LastaFluteを持っていますから)

ゆえに、薄く長く続けていくための構成にしていく必要があると。
利用頻度の低い機能はいったん削りました。
必要であれば、またそのときにしっかりスマートに作ればいいと。
それよりも、

コードをできるだけシンプルにすること

が求められるからです。

ERFluteは、ERDを描くことに注力したいと考えます。
例えば、DBFluteのような周辺ツールでできることであれば、
あまりERFluteには要らない方向で。
実際、DBFluteに機能を実装する方が、
他のERDツールを使われてる方も恩恵を受けられるので、
費用対効果が高いです。

その代わり、ERDを描くために必要な細かい改善を
積み上げていきたいと思います。
例えば...
o テーブル名やカラム名の物理名を必須 (done)
o テーブル名やカラム名の重複バリデーション (done)
o ショートカットキーの追加 (not yet)
o などなど

コードや構成を整えて気軽な修正がもっとできるようにして、
ERMasterやERMaster-bでは改善されてこなかった
細かいところを直していきたいと思っています。

ERMaster や ERMaster-b のコードを
読んだことある人であれば、
ERFluteの XML を読み込んだり書き込んだりするところ、
その分のコードを読むとその意味がよくわかると思います。

プルリクも募集します。
コードをいじるためにあると嬉しい概念図も提供します。

あと、個々にフォークされた "ERMaster-なんとか"
で改善された内容を取り込むとかも可能な範囲でできればと。
そして、どうせフォークするなら ERMaster からではなく、
"ERFluteからフォーク" っていう土台になれればいいなぁとも。

はてさて、どうなることやら

単なるフォークというか、
ERMaster や ERMaster-b という素材を使って、
新たなERDツールを作ったという風に言えるかもしれません。

はてさて、うまくいくかどうかはわかりませんが、
3週間前までのどうにもならないジレンマを
抱えていたときに比べれば...
(いつか、ERMaster や ERMaster-b をやめないとかなぁ、
といか ERD 描くのも諦めるかなぁってもやもや...ってね)

随分と希望に満ちてきた感はありますね(^^。
こういうのできたらいいなぁ、と妄想だけしていたものが、
形になったときの快感はモチベーションのひとつです。

#
# 試してくれる人は、
# フィードバック気軽にいただければと。
# ブログのコメントでもいいですし、
# Twitterのメンションでもいいですし。
#

f:id:jflute:20161003135756j:image

2016-09-26

DBFluteは10歳になりました

|

ものがたりのはじまりはじまり...

f:id:jflute:20160926153439j:image

2006年9月26日 ファーストリリー

ちょうど10年前、0.1.01 がリリースされました。

厳密には、それよりも前に DaoGen という名前で、
企業内でそれなりに利用されていましたが、
オープンソースとして誕生したのがその日でした。

そのときのソースコードがありますね。
もうすでに ConditionBean って感じですが、
SubQueryはずいぶんともっさりしてますね(^^
LdBookTest.java | Github

このときはまだ、S2Daoの自動生成ツールという
感覚でした。ConditionBeanはありましたが、
S2Daoだけだと足りないから追加しているみたいな。

ただ、どんどん改善していくうちに、
DBFluteらしさが前面に出てきて...

Seasarカンファで登壇登壇

[2007年5月27日]
Seasar Conference 2007 SpringDBFluteの紹介」
blog: Seasar カンファレンス 2007 | jfluteの日記
slide: PDF

そして、2007年10月頃です。
Seasarカンファでの出会いをきっかけに、
WEB+DB PRESS の執筆にも関わることができ、
DBFluteを6ページに渡って紹介させて頂きました。
これ読んで使い始めたというユーザーをたくさん耳にしました。
WEB+DBプレス!初執筆 | jfluteの日記

[2007年11月11日]
Seasar Conference 2007 Autumn
「現場ソリューション DBFluteblog: SeasarConf & 現場ソリューション振り返り | jfluteの日記
slide: PDF

[2008年5月24日]
Seasar Conference 2008 SpringDBFluteはどうなの?」
blog: Seasarカンファ2008 - DBFlute | jfluteの日記
slide: PDF

[2008年9月6日]
Seasar Conference 2008 Autumn
「現場ソリューション2 DBFluteblog: DBFluteセッション来場感謝! | jfluteの日記
slide: PDF

[2009年3月14日]
Seasar Conference 2009 WhiteDBFlute ライトニングConditionBean」
blog: Seasar Conference 2009 White The End | jfluteの日記
slide: PDF

[2009年6月13日]
Seasar Conference 2009 SpringDBFlute導入ポイント & MavenDBFlutePlugin」
blog: カンファとDBFluteユーザ集い無事終了 | jfluteの日記
slide: PDF

[2009年9月12日]
Seasar Conference 2009 AutumnDBFlute ライトニング外だしSQLblog: ライトニングの後... | jfluteの日記
slide: PDF

[2010年6月13日]
Seasar Conference 2o1oDBFluteのバージョンって今いくつ?」
blog: Seasarカンファレンス 2010 終了 | jfluteの日記
slide: (見当たらない...手元にもない...)

カンファ後のDBFluteユーザーの集い

Seasarカンファの後、食事会としての
"DBFluteユーザーの集い@神楽坂" をやっていました。

ここから色々な伝説も生まれたんですよね。
DBFluteユーザーはみなパワフルで、
毎回毎回大盛り上がりでしたね笑。

2008年5月のDBFluteユーザの集い @神楽坂SHUN・本家
2008年9月のDBFluteユーザの集い @(店わからず...)
2009年3月のDBFluteユーザの集い @うまい魚【海】
2009年6月のDBFluteユーザの集い @アッシジ
2009年9月のDBFluteユーザの集い @アッシジ
2010年6月のDBFluteユーザの集い @アッシジ

ブログのコメントでハンドルネームで参加表明して集まるって、
なかなか今考えるとすごいですね。
ほとんど初めてお会いする方ばかりでしたからね。
よく待ち合わせできたなーって(^^。

※2008年9月からは禁煙のお店で開催させて頂きました。
みなさん、ご協力ありがとうございます。

f:id:jflute:20160926134446j:image

2009年2月1日 S2Daoフォーク! 0.9.0

長らく S2Dao と共に生きてきたDBFluteですが、
S2Daojarファイルとお別れするときが...
allcommonをJARファイル化 | jfluteの日記

その頃、フォークって言葉は使っていなかったですが、
ApacheライセンスS2Dao のコードを、
新しく作ったDBFluteランタイム(jar)に取り込んで、
Seasarへの依存のないDBFluteに仕上がりました。

そもそもそれまでは、DBFluteランタイムに入っている
ようなクラスたち (例えば、CBスーパークラスとか)
もすべて自動生成されていました。
それらもVelocity管理されているので、
何かを変更しようとするとコストがかかりました。
業務DBに依存しないクラスたちなので、
本来はjarになっているべきものたち、
整理整頓してなんとかjarにまとめることができました。

OGNLも使うのをやめて、
IFコメントなどは自前でパースするようにしました。
ランタイムの依存は commons-logging だけに。

S2Daoへの依存を外すなんて想像もしてませんでしたが...
結局、そうなってしまいました。

2012年9月26日 SandBox卒業! 1.0.0

とうとう、1.0.0 をリリース!

DBFlute-1.0.0 Released | jfluteの日記

f:id:jflute:20120914162135j:image

0.9.x時代が長過ぎでしょ、
って感じですがようやくでしたね。
1.0.0 という名に恥じない品質で、
1.0.0 を出したかったというjfluteの思いが
あったからでした。

リリースパーティーも盛大にやりました(^^
出会いのDBFlute (1.0リリースパーティー) | jfluteの日記

中目黒レインボーバードランデヴーから、
お祝いのケーキも頂いちゃいました。
ありがとうございます。

f:id:jflute:20120929202151j:image

2015年1月1日 Java8版リリース 1.1.0

Java8ベースのバージョン 1.1.0 をリリース!

DBFlute-1.1.0 Released | jfluteの日記

奇跡的にハピネス・オン・ハイと「まったく同時に」
デプロイすることに成功しました。

f:id:jflute:20150101203736j:image
List<Member> memberList = memberBhv.selectList(cb -> {
    cb.setupSelect_MemberStatus();
    cb.query().setMemberName_LikeSearch("S", op -> op.likePrefix());
    cb.query().existsPurchase(purchaseCB -> {
        purchaseCB.query().setPurchasePrice_GreaterEqual(200);
    });
    cb.query().addOrderBy_Birthdate_Desc();
});
DBFluteの大きな転換でした。
Lambda前提のインターフェース、
Optionalのがっつり採用、
互換性を崩して次の時代に合わせた飛躍をしました。

恒例の元旦リリー

8年連続で元旦リリースしていますね...

2009年1月1日 DBFlute-0.8.8 Released | jfluteの日記
2010年1月1日 DBFlute-0.9.6.3 Released | jfluteの日記
2011年1月1日 DBFlute-0.9.7.8 Released | jfluteの日記
2012年1月1日 DBFlute-0.9.9.2C Released | jfluteの日記
2013年1月1日 DBFlute-1.0.1 Released @DisneySea | jfluteの日記
2014年1月1日 DBFlute-1.0.5B Released @DisneySea | jfluteの日記
2015年1月1日 DBFlute-1.1.0 Released @DisneySea | jfluteの日記
2016年1月1日 DBFlute-1.1.1 Released @DisneySea | jfluteの日記

さらに、DisneySeaの中でリリースを行う、
というのが恒例化しています笑。

f:id:jflute:20130101152618j:image

f:id:jflute:20130101145439j:image

まったく理由はないんですけどね。。。

f:id:jflute:20160101191242j:image

f:id:jflute:20150101205051j:image

...

2017年もやらないといけないんでしょうか?

独立イベント、DBFluteフェス

Seasarカンファも途絶えてしまいましたから、
DBFluteの独立イベントをやろう!と思い立ちました。
ビズリーチのみなさんの協力あって実現できました。
本当に本当にありがとうございます。

最初は、DBFluteフェスという名前じゃなかったんですね。
DBFluteユーザの集いが独立イベントになったという感じ。

2011年9月25日 DBFluteユーザの集い2011 | jfluteの日記

f:id:jflute:20110925122155j:image

2012年5月26日 DBFluteユーザの集い2012 | jfluteの日記

f:id:jflute:20120526134016j:image


...

そして、名前をDBFluteフェスに。
ここから2セッション方式になりました。
あっちでもこっちでもセッションロックフェスのように自由な参加スタイルで!

2013年10月19日 DBFluteフェス2013 | jfluteの日記

f:id:jflute:20131019131243j:image

...

2014年11月22日 奇跡のDBFluteフェス2014終わり | jfluteの日記

f:id:jflute:20141122180529j:image

Domaのnakamuraさんをゲストとして、
パネルディスカッションをしました。
新しい試みのフェスでした。

...

2015年11月21日 笑顔のDBFluteフェス2015終わり | jfluteの日記

f:id:jflute:20151121125626j:image

1000円取る方式、いきなり懇談会方式、
チャレンジ過ぎる企画にも関わらず、
大勢の方に来ていただきました。

...

そして、今年も!?

LastaFluteなんてものも

DB周りだけではなく、Webフレームワークにも
手を出してしまいました。LastaFluteです。

だいぶ無茶してしまいましたが...
さすがに「ワーク"ワークのためのライフ"バランス」考える | jfluteの日記

f:id:jflute:20150726203423j:image

でもでも、
喜んでくれる人がいるので、やって良かったです。

LastaFlute First Impact | Speaker Deck

そして、
まだまだ冒険ですね...

最後最後のSeasarカンファ

久しぶり復活のSeasarカンファで、
Seasar/SAStrutsをフォークした LastaFlute を公表しました。
どーん!2015年9月26日です。

LastaFlute in Seasarカンファ | jfluteの日記

f:id:jflute:20150926150508j:image


...
...
そして...2016年9月24日

Seasarカンファレンス2016 Final | jfluteの日記

f:id:jflute:20160924161016j:image

ある意味で、DBFluteは本当に帰るところがなくなったと言えるかも。
しっかり DBFlute で生きていかないとですね。

出張勉強会もやるように

招待されて (or 自分からお願いして)、
様々なところで講演する機会を頂きました。

仙台でのDBFluteショー | jfluteの日記
DBFlute出張講演会あっとアットウェア | jfluteの日記
ClubDB2でDBFlute語り | jfluteの日記
ウルシステム's DBFlute | jfluteの日記
u-next DBFlutist | jfluteの日記
JPOUGに登壇させていただきました。 | jfluteの日記
リクルートテクノロジーズさん's DBFlute | jfluteの日記

大阪で開催された "わんくま同盟" でも講演させて頂きました!
(ごめんなさい、ブログ書けてない...)

DBFluteではないですが、
CROSS2016にもお誘いいただきました。
RDB界のそうそうたるメンバーの中に混じって、
jfluteもパネラーとして参加させて頂きました。

最近のRDB四方山話 | CROSS2016

相談していただければ、
DBFlute語りに飛んでいーきまーすよー♪

関連プロダクトも増えたよ

DBFluteに加え...

o EMecha (Eclipse Plugin)
o DBFlute Maven Plugin
o DBFlute Intro

o DBFlute Hamcrest
o UTFlute

o Lasta Di
o LastaFlute
o MailFlute
o TomcatBoot
o JettyBoot

DBFluteを広めるために、
DBFluteと連携をするプロダクトを作らないと
いけないと思ったんですね(若干後付け)。

※協力頂いているコミッターのみなさま、
本当にありがとうございます。

...

あと、DBFlute.NET も忘れてはいけません。

C#プログラマーのユーザー、確実にいらっしゃいます。
なかなか着手できないジレンマがありますが、
使ってくれる方がいらっしゃる限り、
なんとかしたい気持ちはずっと持っています。

...

そして、まだ道半ばですが、Scala版も暫定開発しました。

DBFlute on Scala | DBFlute

まだ、Scalaという世界観で、
DBFluteらしさをどう表現したらいいのか?
迷うところがたくさんあるのですが、
勉強にもなるので薄く長くアプローチしていこうかなと
思っています。(ユーザー全くいないし)

jfluteも成長したよ

なんといっても、
これだけのオープンソース活動をやってきたことで、
ずいぶんといろいろと鍛えられました。

まだまだ足りないところだらけですが、
ぜんぜんプログラマー自信のなかったjfluteだったのですが、
なんとかやってきただけのことはできるようになってきました。

とにもかくにも、行動することですね

...

DBFluteのフォローイング、アドバイザリーなど、
DBFluteにまつわること、DBFluteがきっかけで
仕事がもらえるようになってきました。

個人オープンソースプログラマーのジレンマ、
"オープンソースではなかなか食べていけない"
(少なくとも自分で作ったオープンソースでは)

自分は、そこに対してチャレンジをしている
真っ最中と言えるでしょう。

f:id:jflute:20160926130612j:image

時が経つのは速い?遅い?

遅い! 

1年前の自分やDBFlute,
3年前の自分やDBFlute,
5年前の自分やDBFlute,

全然違いすぎる。
思っていることも考えていることも、
気にしていることも気にしているものも、
ノウハウや視点も、環境も状況も...

まだ1年しか経ってないの?
まだ3年しか経ってないの?
まだ5年しか経ってないの?

って、思えるのです。

あまりに色々とありすぎて...

だから、

1年後の自分やDBFlute,
3年後の自分やDBFlute,
5年後の自分やDBFlute,

って考えると、
全然違うんだろうなぁと。
めちゃ不安だし、わくわくします。

いつまでこんなことやってるんでしょうか?

...


細かいところでたくさん色々と失敗して、
いま思い出しても「どしーん」とへこむこと、
たくさんありますが...

それでも!

この10年間 DBFlute に注ぎ込んできて、
後悔はないですね

まあまだ冒険の途中だから後悔のしようがないのかな。
また後でゆっくり考えましょうか。後悔するかしないか。

なので、とりあえず、
今まで通り反射神経で行動していきます(^^。

DBFlute, Happy Birthday!

f:id:jflute:20160926122956j:image

mokkouyou2001mokkouyou2001 2016/09/28 14:37 感謝やらなにやら伝えたいことはたくさんありますが、
シンプルに

10周年おめでとうございます。
次の10年もよろしくお願いします。

jflutejflute 2016/10/05 15:58 id:mokkouyou2001 さん、嬉しいコメントありがとうございます!
mokkouyouさんのフィードバックとっても助かりました。
これからもよろしくお願いします!!!

2016-09-24

Seasarカンファレンス2016 Final

|

行ってきましたー!

終わったー!

f:id:jflute:20160924123336j:image

Seasarカンファレンス2016

に行ってきました。
そして、しゃべってきました。

自分はずっとメインホールにいたので、
そこでの内容だけで。
(ぶっ通しで裏番組のはぶさん、お疲れ様です(^^)

一時間目、ひがさんより

「SeasarProjectふりかえり」
 by ひがさん

f:id:jflute:20160924130242j:image

まずは、Seasarに多大なる貢献してくださった
お二人の感謝式。

インフラのふたがわさん!

f:id:jflute:20160924130313j:image

そして、はしもとさん!

f:id:jflute:20160924130351j:image

ぱちぱちぱちー

...

そして、ひがさんからSeasarProjectの振り返り。

f:id:jflute:20160924132024j:image

Seasar, S2Dao, S2JSF, Teeda,
SAStruts, S2JDBC とひがさんがどういう思いで、
どういうニュアンスで作られてきたのか?
というのが、赤裸々に語られててとても参考になりました。
こういう話を聞くって大切ですよね。

本当にありがとうございました。

二時間目、jfluteより

「Seasarのフォークの仕方、LastaFlute編」
by jflute

なぜかメインホール!(><。

f:id:jflute:20160924141044j:image

実際は、LastaFlute編というより、
Lasta Di編でしたね。

f:id:jflute:20160924141925j:image

最後、やはり Seasarソースコードを出す
セッションをやりたかったという思いがありました。
ちょうど、Lasta Diの開発話をすれば、
Seasarの技術的な話でもあり、
Lastaの紹介にもなるかなと思って。

f:id:jflute:20160924142008j:image

なんとか、LastaFluteDBFlute知らない人でも
楽しめるようにしたつもりではあります(^^。

...

そうだ、
これはセッションで紹介するチャンスなかったけど、
SAStrutsの一気通貫図を描きました。
web.xmlからActionが呼ばれるまで。
コードリーディングするときに地図として使えるようにと。
 => SAStrutsのAction一気通貫図

三時間目、せらさんより

「SAStruts + S2JDBC から
Skinny Framework への移行ガイド」
by seratch

f:id:jflute:20160924150154j:image

SAStrutsチュートリアルを
Skinny Framework で作り直してみたという、
なかなかの手間のかかりよう、すごい!

普通にScalaのお勉強になりました。
Atom良いですね。
Scala書くときそっちのほうがいいかも
とか思っちゃったので今度試してみようかなって(^^。

f:id:jflute:20160924155427j:image

"C" はなかったんですけど、
なんとか "U" を横にして...笑

四時間目、jfluteより

DBFluteがどれだけSeasarにお世話になったことか」
by jflute

なぜかメインホール!(><。(二回目)

f:id:jflute:20160924161016j:image

本当は、ぼくは端っこの小さな部屋で、
DBFluteユーザー相手にしゃべろうと思っていたのですが、
まあ全体の来場者数と会場のバランスからか、
二回ともメインホールになりました(^^。
「jfluteって誰だよ、DBFluteって何?」
って方も多かったかもしれませんが...

f:id:jflute:20160924164702j:image

Seasarという存在をきっかけに、

o プロダクトも仕事もプライベートも影響されている
 オープンソースプログラマーがいるということ
o そういうプロダクトがSeasarにあるということ
o しかもいまなお冒険しているということ
o その冒険の中で、Seasarソースコードが
 形を変えて生き続けているということ

それが伝わればいいかなと。
このセッションは、本当に会場に来て、
聞いてくださった方々のためだけに。
ここまで赤裸々と語ることもめったにないでしょう。

f:id:jflute:20160924165048j:image

気になる方は参加された方に聞いてください(^^。

LT大会です!

楽しいLT大会でした!
はしもとさんの無茶振りにも関わらず、
みなさん素敵なセッションでした(^^。

f:id:jflute:20160924171212j:image

f:id:jflute:20160924172503j:image

(写真が足りなくてごめんなさい)

Seasarサポート終了でどうすれば?

これはちょっと事務的なお話し。

これからも話題になると思うので、
とりあえずjfluteの見解はこちら。
 => jfluteが「Seasarサポート終了どうすればいい?」と聞かれたら...

この話を振られたら、
「まずこのブログを読んでください」
から始まる感じですね(^^。

Seasar.NETのトマト

Seasar.NETの元リーダーで、
DIコンテナ "Quill" の作者の、
id:sugimotokazuya さんのトマト!
 => はるひ畑 -トマトつくってます-

f:id:jflute:20160924174731j:image

昨年に引き続き今年もカンファレンス会場に
持ってきました。
合わせて前日に送ってもらいました。
ありがとうございます!

カンファレンス終わった直後にDBFluteユーザーで
集まってパクパク食べていました。
このトマトは本当に美味しいトマトです!

DBFluteユーザーの集い

Seasarカンファの裏恒例の
「DBFluteユーザーの集い」
少人数ながらもやりました。

f:id:jflute:20160924185701j:image

単なる食事会なんですけど、
この食事会からも色々な伝説が生まれましたから。
思い出の神楽坂でみんなで話をしてきました。

f:id:jflute:20160924185707j:image

...

そう、
なつかしい...

DBFluteユーザーって、
18時から23時までずっとしゃべりっぱなしで
技術話でひたすら盛り上がるんですヨゥ笑。
しかもとても高度だし問題意識が強いしおもしろいし(^^。
ぜんぜん勢い止まらないから、ぼくが、
「みんなそろそろお店おしまいだからしめるよー」
「JRの人こっちー、新宿に帰る人はー...」
ってやってたような笑。

ぼくは何度も何度も、
「なんで、ぼくよりも遥かに優秀な人たちが、
ぼくの話を聞きに来てくれるんだろう?」
って思って、その度にモチベーションが上がって、
また次のカンファまでの実装パワーになっていました。

「DBFluteを作る...
ということだけが、自分にできること」

そんな思いにさせてくれた
"集いという名の単なる食事会"
でした。

すごい人と会えたSeasarカンファ

ひがさんとは、
今までもお会いしたことはあるのですが、
じっくりとお話させて頂いたのは今日が初めて!?
と言っても過言ではありません。
あまりそういう機会がありませんでした。
今日、とても興味深い良いアドバイスを頂きました。
色々とお礼も言いたかったので、嬉しかったですね。

Seasarに関わっていたとはいえ、
DBFluteという独自路線をずっと歩いていた自分。
あまりSeasarのコミッタ同士での交流は少なかったのです。
(懇談会もDBFluteユーザーの集いと独自でしたし)

それだけに今日は色々な人とご挨拶ができて、
色々な人の前でお話をすることができて良かった!

Seasarカンファでたくさんの人と出会いました。
もうあまり出会う機会のない方もいれば、
いまもガンガン交流している方もいます。
みんなとにかく "すごい人ばかり" で刺激になります。

Seasarカンファ、本当にありがとう。
そして、法政大学、外濠校舎、ありがとう。

f:id:jflute:20160924174236j:image

何気のこの場所に来ることがもうないってことが、
一番寂しいことかもですね。

さて、次はDBFluteフェス!

Seasarカンファレンスはもうおしまいのようです。
でも、

SeasarS2Daoソースコードを利用して、
デザインし直されたプロダクトたち

のイベントは、これからもあります。

毎年恒例の「DBFluteフェス」がやってきます。
昨年のフェスの模様がこちら:
 => 笑顔のDBFluteフェス2015終わり

11月27日(日)を予定しています。
場所はいつものビズリーチのガーデンにて。
詳細は全く決めていませんが、
日付だけ確定したのでここに記しておきます。

オープンソースですから...

良いものであれば形を変えて生き続ける

可能性があります。
そんなことを伝えたかった一日でした。

本当にありがとうございました。