Stipaソースコード公開
第五回1000人スピーカーで紹介させてもらったリアルタイム付箋アプリケーション「Stipa」をOSSとして公開します。
ライセンスはMITライセンスです。
このアプリケーションは、新入社員教育でサーバサイドをJava・クライアントをHTML+JavaScriptで作ったものを、Rails+Adobe AIRという構成に変更し、機能を追加したものです。 開発には、事業部の企画プロジェクト(企画書を書き、それが認められれば1人月を自由に使える)という制度を利用させていただきました。
社内の方には多大な協力をいただき、本当にありがとうございました。
アプリケーションの構成や概要は、1000人スピーカーの資料をご参照ください。また、近いうちにもう少し詳しい解説など書きたいと思います。
今後はassemblaというサイトのリポジトリとTracを使って開発を続けていく予定です。
まだまだ生まれたばかりで、前に進むのおぼつかない感じですが、今後とも「Stipa」をよろしくお願いいたします。
- プロジェクトページ http://www.assembla.com/wiki/show/stipa
- Subversoinリポジトリ http://svn.assembla.com/svn/stipa/
- デモサイト http://stipa.agile.esm.co.jp
OnLisp #1 1
ようやくマクロのあたりまで読んだけれど、関数型弱者の自分は消化できてないところが多いので、ふりかえりながらエントリにすることしよう。 まずは、前書き~1章。
この本のテーマは「Lispとボトムアップスタイル」だということ。
- ボトムアップスタイルとは、これから書くプログラムにあわせてプログラミング言語を作っていくスタイルだ。
- たとえば、新しいオペレータが必要なら作る。
- Lispを基に(on Lisp)書いた言語でプログラムを作る(かっこいい!)
- これはDSLということかな。いや、もう一段上の考え方のようなきがするな。
- トップダウンデザインとは、「このプログラム目的は7個だから、それぞれサブルーチンにして、それをまた…」というアプローチ。
- ボトムアップとトップダウンで作ったプログラムは決して同じものにならない。
- ボトムアップは大規模な言語と小規模なプログラム、トップダウンは小規模な言語と大規模なプログラム。これはなんとなく理解できるようになってきた。
特に気になったところはこんな感じ。今までに経験したことのないアプローチ! この一冊を消化できたら、新しいステージに上がれるような気がしてくるいい導入部でした。
OnLispのエントリまとめはOnLispタグで。
1000speakers:5 の感想まとめ
このタイトルの方がよさそうですね。SEO的な意味で。
私の発表の資料はこちらのエントリを参照してください。
—-ここから感想—-
何より驚いたのは、今年高校生になった人が言語処理系作ってるとか、もう「日本始まったな」としか言えないね!
ただ、そのソースコードをみんなで見てる時に、何をしているのか分からない部分があったんですけど、そこでみんな「コメントを書かなきゃ!」とか言ってるわけですよ。
「そこはメソッド(関数)にしてわかりやすい名前をつけなきゃ!」じゃないのかなー。いや、会場でそう言えなかった自分が終わってるだけなんですけど。
あと、id:amachangの「空行開けないとわかんなくなっちゃうよね」という話は、ものすごく同意したんですが、ということはその空行の間が独立した処理なわけで、それはメソッドに抽出できるサインなんじゃないかと、後々になって思えてきた。
Hackathonには参加できなかったのですが、楽しい一日でした。
主催の方々、お疲れ様でした。
1000人スピーカーで話してきたよ
資料は以下のURLから(Slideshareが超重いのでリンクにしました。) http://www.slideshare.net/kenchan/stipa-1000sp
それにしても今日は災難だった。
- ちょうどバスが行ったばかりだったから矢向まで歩いて南武線に乗る
- 武蔵小杉で降りるつもりが、スライド作ってて思いっきり乗り過ごす
- ATLの無線LANはAESで、java-jaのときにつなげなくて困ったのでビックカメラでUSBのアダプタを買う
- 行ったことあると思って安心していたら思いっきり迷う…
- どう見ても時間ぎりぎりです
で、発表自体は思いっきりショートしましたorz こんなにショートしたのは初めての学会発表以来で、甘酸っぱい記憶を思い出しました><
とりあえず、ニコ動に上がったらみんな突っ込んでくれということです。
1000speakers:5 2
今日は第5回1000speakersで話してくるよ。
でも、みんなはSeasar Conにいけばいいと思うよ。ニコ動でみれるしw
Eclipseプラグイン開発勉強会200805に行ってきたよ
今回も八角研究所さんをおかりしました。いつもありがとうございます。
やったことは、みんなで黙々とプラグインを作ったり拡張したりしながら、詰まった所や気になった所をシェアしていく感じでした。
私はtacorpusのエディタ部分の担当だったので参考になりそうな比較ビューのソースコードに潜っていました。(この辺のコードリーディングのプロセスをエントリにする予定)
軽いまとめ
- ECFはすごいことになるかもしれない
- 3.4M6以降(?)はFeatureがないとプラグインが動かないっぽい
- Interfaceの実装クラスに@Override書けるのは6.0からだよ
- このせいでFontSizeChangerが動かない人がいたのかも
次回は6月14日(土)ですよっと。
今日は5月のEclipsePlugin開発勉強会でした。– Fly me to the Ganymede
[Eclipse]5月Eclipseプラグイン開発勉強会(eclipSKY)にリモート参加しました – kojihashiの日記
"ポリモーフィズムの例をもうちっと実用的に書いてみた。"を見て俺も書いてみた
http://d.hatena.ne.jp/daisuke-m/20080509/1210337941
こういう問題は、実は大好物なので俺も書いてみたよ!
まず、どうやって使いたいか考えたけど、俺はこんな感じ。
Main.java
public class Main {
public static void main(String[] args) {
Table table = new Table("users");
table.columns.add(new Column("name", "string"));
table.database = Database.MySQL;
System.out.println(table.toSQL());
}
}
Table.toSQLでテーブル生成のSQLがほしいと思った。columnsをpublicにするのはちょっとリスキーすぎるけど、ここでは触れないことにする。あと、columnのタイプもenumにしたいけど我慢する。
で、書いたコードは以下のとおり。Converterの実装クラスとColumnは自明なので省略する。
Table.java
import java.util.ArrayList;
public class Table {
public String name;
public ArrayList<Column> columns = new ArrayList<Column>();
public Database database = Database.GENERIC;
public Table(String name) {
this.name = name;
}
public String toSQL() {
return this.database.converter.convert(this);
}
}
Database.java
public enum Database {
GENERIC(new GenericSQLConverter()),
MySQL(new MySQLConverter()),
PostgreSQL(new PostgreSQLConverter());
public final Converter converter;
private Database(Converter converter) {
this.converter = converter;
}
}
Conveter.java
public interface Converter {
public String convert(Table table);
}
これで、Conveterの実装クラスを書けば、Database.javaに1行追加するだけで使えるようになるね!しかも、IDEでの補完もばっちり!さらにタイプセーフ! 一行も書かないようにするにはDIのお手伝いが必要だから、この辺で我慢しようね!
久しぶりにjava書いたら、enumの書き方をすっかり忘れてたのはtwitterに書いたとおりw
typoのエントリを書くページにはトラックバック先のURLを入れるところがないんだけど、本文に言及すればいいのかな?よくわからんのでTB行ってないかも…
Mavenのデフォルトエンコード問題で感じたこと
こうやって世論というのが形成されていくのか。
Mavenなんてインストールしたことしかないから、かなり空気読めてないんですけど、みんなソースコードをMS932で書いてたりするってことなの?「今は、デフォルトでシステムエンコードを使ってるんだけど、それ変わると困る!」って人はそういうことだよね?ソースをシステムエンコードで書いてると。
かなりありえないと思ってたけど、結構こういう人が多いの?もしソースをUTF-8で書いてたら、pom.xmlには既にその記述があるから困らないよね。
また、何かの制約で文字コードを明示しなくちゃいけないようなプロジェクトやプラットフォームに依存するプロジェクトは、それはそれで各自文字コードを指定しているから困らないはず。(これを書いてないプロジェクトが多いってこと?)
いったい誰が困るのかさっぱりわからないkenchanなので、誰か優しく詳しく教えてください><