Stipaソースコード公開
第五回1000人スピーカーã§ç´¹ä»‹ã•ã›ã¦ã‚‚らã£ãŸãƒªã‚¢ãƒ«ã‚¿ã‚¤ãƒ 付箋アプリケーション「Stipaã€ã‚’OSSã¨ã—ã¦å…¬é–‹ã—ã¾ã™ã€‚
ライセンスã¯MITライセンスã§ã™ã€‚
ã“ã®ã‚¢ãƒ—リケーションã¯ã€æ–°å…¥ç¤¾å“¡æ•™è‚²ã§ã‚µãƒ¼ãƒã‚µã‚¤ãƒ‰ã‚’Java・クライアントをHTML+JavaScriptã§ä½œã£ãŸã‚‚ã®ã‚’ã€Rails+Adobe AIRã¨ã„ã†æ§‹æˆã«å¤‰æ›´ã—ã€æ©Ÿèƒ½ã‚’è¿½åŠ ã—ãŸã‚‚ã®ã§ã™ã€‚ 開発ã«ã¯ã€äº‹æ¥éƒ¨ã®ä¼ç”»ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆï¼ˆä¼ç”»æ›¸ã‚’書ãã€ãれãŒèªã‚られれã°ï¼‘人月を自由ã«ä½¿ãˆã‚‹ï¼‰ã¨ã„ã†åˆ¶åº¦ã‚’利用ã•ã›ã¦ã„ãŸã ãã¾ã—ãŸã€‚
ç¤¾å†…ã®æ–¹ã«ã¯å¤šå¤§ãªå”力をã„ãŸã ãã€æœ¬å½“ã«ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸã€‚
ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã®æ§‹æˆã‚„概è¦ã¯ã€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ã«ã„ã‘ã°ã„ã„ã¨æ€ã†ã‚ˆã€‚ニコ動ã§ã¿ã‚Œã‚‹ã—ï½—
Eclipseプラグイン開発勉強会200805ã«è¡Œã£ã¦ããŸã‚ˆ
ä»Šå›žã‚‚å…«è§’ç ”ç©¶æ‰€ã•ã‚“ã‚’ãŠã‹ã‚Šã—ã¾ã—ãŸã€‚ã„ã¤ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚
ã‚„ã£ãŸã“ã¨ã¯ã€ã¿ã‚“ãªã§é»™ã€…ã¨ãƒ—ラグインを作ã£ãŸã‚Šæ‹¡å¼µã—ãŸã‚Šã—ãªãŒã‚‰ã€è©°ã¾ã£ãŸæ‰€ã‚„æ°—ã«ãªã£ãŸæ‰€ã‚’ã‚·ã‚§ã‚¢ã—ã¦ã„ãæ„Ÿã˜ã§ã—ãŸã€‚
ç§ã¯tacorpusã®ã‚¨ãƒ‡ã‚£ã‚¿éƒ¨åˆ†ã®æ‹…当ã ã£ãŸã®ã§å‚考ã«ãªã‚Šãã†ãªæ¯”較ビューã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã«æ½œã£ã¦ã„ã¾ã—ãŸã€‚(ã“ã®è¾ºã®ã‚³ãƒ¼ãƒ‰ãƒªãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã®ãƒ—ãƒã‚»ã‚¹ã‚’エントリã«ã™ã‚‹äºˆå®š)
軽ã„ã¾ã¨ã‚
- ECFã¯ã™ã”ã„ã“ã¨ã«ãªã‚‹ã‹ã‚‚ã—れãªã„
- 3.4M6以é™(?)ã¯FeatureãŒãªã„ã¨ãƒ—ラグインãŒå‹•ã‹ãªã„ã£ã½ã„
- Interfaceã®å®Ÿè£…クラスã«@Override書ã‘ã‚‹ã®ã¯6.0ã‹ã‚‰ã よ
- ã“ã®ã›ã„ã§FontSizeChangerãŒå‹•ã‹ãªã„人ãŒã„ãŸã®ã‹ã‚‚
次回ã¯6月14æ—¥(土)ã§ã™ã‚ˆã£ã¨ã€‚
今日ã¯5月ã®EclipsePlugin開発勉強会ã§ã—ãŸã€‚– Fly me to the Ganymede
"ãƒãƒªãƒ¢ãƒ¼ãƒ•ィズムã®ä¾‹ã‚’ã‚‚ã†ã¡ã£ã¨å®Ÿç”¨çš„ã«æ›¸ã„ã¦ã¿ãŸã€‚"を見ã¦ä¿ºã‚‚書ã„ã¦ã¿ãŸ
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ã«æ›¸ã„ãŸã¨ãŠã‚Šï½—
typoã®ã‚¨ãƒ³ãƒˆãƒªã‚’書ãページã«ã¯ãƒˆãƒ©ãƒƒã‚¯ãƒãƒƒã‚¯å…ˆã®URLを入れるã¨ã“ã‚ãŒãªã„ã‚“ã ã‘ã©ã€æœ¬æ–‡ã«è¨€åŠã™ã‚Œã°ã„ã„ã®ã‹ãªï¼Ÿã‚ˆãã‚ã‹ã‚‰ã‚“ã®ã§TB行ã£ã¦ãªã„ã‹ã‚‚…
Eclipseプラグイン勉強会200805å‚åŠ è€…å‹Ÿé›†ä¸
今月ã®å‹‰å¼·ä¼š(11æ—¥)ã¯ã€åŸºæœ¬ã¯tacorpusã®é–‹ç™ºã‚’行ã„ã¾ã™ã€‚
一緒ã«ã‚„りãŸã„人やã€ã¡ã‚‡ã£ã¨è¦‹ã¦ã¿ãŸã„äººã‚‚æ˜¯éžæ˜¯éžã€‚
(本当ã¯å®¿é¡ŒãŒã‚ã£ãŸã‚“ã ã‘ã©ã€å…¨ç„¶ã‚„ã£ã¦ãªã„ã®ã§ç”³ã—訳ãªã„)
申込ã¿ã¯ã“ã¡ã‚‰
Mavenã®ãƒ‡ãƒ•ォルトエンコードå•é¡Œã§æ„Ÿã˜ãŸã“ã¨
ã“ã†ã‚„ã£ã¦ä¸–è«–ã¨ã„ã†ã®ãŒå½¢æˆã•れã¦ã„ãã®ã‹ã€‚
Mavenãªã‚“ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ãŸã“ã¨ã—ã‹ãªã„ã‹ã‚‰ã€ã‹ãªã‚Šç©ºæ°—èªã‚ã¦ãªã„ã‚“ã§ã™ã‘ã©ã€ã¿ã‚“ãªã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’MS932ã§æ›¸ã„ã¦ãŸã‚Šã™ã‚‹ã£ã¦ã“ã¨ãªã®ï¼Ÿã€Œä»Šã¯ã€ãƒ‡ãƒ•ォルトã§ã‚·ã‚¹ãƒ†ãƒ エンコードを使ã£ã¦ã‚‹ã‚“ã ã‘ã©ã€ãれ変ã‚ã‚‹ã¨å›°ã‚‹ï¼ã€ã£ã¦äººã¯ãã†ã„ã†ã“ã¨ã よãï¼Ÿã‚½ãƒ¼ã‚¹ã‚’ã‚·ã‚¹ãƒ†ãƒ ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§æ›¸ã„ã¦ã‚‹ã¨ã€‚
ã‹ãªã‚Šã‚りãˆãªã„ã¨æ€ã£ã¦ãŸã‘ã©ã€çµæ§‹ã“ã†ã„ã†äººãŒå¤šã„ã®ï¼Ÿã‚‚ã—ソースをUTF-8ã§æ›¸ã„ã¦ãŸã‚‰ã€pom.xmlã«ã¯æ—¢ã«ãã®è¨˜è¿°ãŒã‚ã‚‹ã‹ã‚‰å›°ã‚‰ãªã„よã。
ã¾ãŸã€ä½•ã‹ã®åˆ¶ç´„ã§æ–‡å—コードを明示ã—ãªãã¡ã‚ƒã„ã‘ãªã„よã†ãªãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚„プラットフォームã«ä¾å˜ã™ã‚‹ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã¯ã€ãれã¯ãれã§å„自文å—コードを指定ã—ã¦ã„ã‚‹ã‹ã‚‰å›°ã‚‰ãªã„ã¯ãšã€‚(ã“れを書ã„ã¦ãªã„プãƒã‚¸ã‚§ã‚¯ãƒˆãŒå¤šã„ã£ã¦ã“ã¨ï¼Ÿï¼‰
ã„ã£ãŸã„誰ãŒå›°ã‚‹ã®ã‹ã•ã£ã±ã‚Šã‚ã‹ã‚‰ãªã„kenchanãªã®ã§ã€èª°ã‹å„ªã—ã詳ã—ãæ•™ãˆã¦ãã ã•ã„><