Seasar Conference 2008 Autumn ã«è¡ã£ã¦ãã¾ããã
Seasar Conference 2008 Spring ã®ã¨ãã¨åãä¼å ´ã ã¨åéããã¦ãæéã«ä½è£ãæã£ã¦å°çãã¦ãã³ãã§å¯ããã¼ã¨ããã£ã¦ããããªãã人å°ãªããªã¼ã¨æ°ä»ãã¦ã±ã¼ã¿ã¤ã§èª¿ã¹ãããä¼å ´å¥ã®å ´æãªãã¨ã«æ°ä»ãã¦æ ã¦ã¦ããã·ã¥ããã®ã俺ã前回 ã¯é¨ã«éããã¦ã³ã³ããã¾ã§åè²·ãã«èµ°ã£ããã¨ãSeasar Conference ã¯ãã»ã©ä¿ºã«ããã·ã¥ãããããããã
ã»ãã·ã§ã³ãã¨ã®ã¬ãã¼ãã«å ¥ãåã«ãæ°ã«ãªã£ããã¨ããã¤ãã
ãã®ä¼å ´ã®æ¤ åãããã§ã¼ã«åº§ãè¾ãã£ããã¡ãã£ã¨ä½å¢ãåã«å¾ããã¨ããå°»ãæµ®ãã¦ã¬ã¯ãã¨ãªããã ããâ¦â¦ä¿ºã ãï¼
ããã¯ä¼å ´ã«æ¥ã人ããããããªãã ãããã©ãã¢ã³ã±ã¼ãã§ç¬ã£ãå ´æãä¸ç¹ãä»ã®äººã¯è»ä¸¦ã¿ãââã®ãããã¯ãã使ã£ã¦ã¿ãããªãã¾ãããï¼ããââã«èå³ãæã¡ã¾ãããï¼ããªã®ã«ãæã»ãã·ã§ã³ã ããå·®ãã¤ããããªãã¾ãããï¼ãã§ãè¶å¹ããã
åã»ãã·ã§ã³ãã¨ã®ã¬ãã¼ãåé ã«ãã¯ã¦ãª id ã blog ã® URL åãã£ã¦ã人ã«ã¤ãã¦ã¯æ¸ãã¦ã¾ããçç¥ãã¦ãå ´åã¯ãåã«ç¥ããªãã£ãã調ã¹ã¦ãªãã£ããã¨ææããã¦ãã®ã§ãã容赦é¡ãã¾ãã
以ä¸ããã¼ã¯ã»ãã·ã§ã³ã®å 容ã«ã¤ãã¦ï¼æ¯åº¦ã®ãæãæå¥ãèªåã®ææã»æè¦ã¨ç»å£è ã®çºè¨ããã¬ã¼ã³è³æã®å 容ãã¡ãæ··ãã«æ¸ãã®ã§ãèªã¿ã«ããç¹ãå¤ã ããã¨æãã¾ããæ¥æ¬èªå´©å£ãã¦ãé¨åãå¤ã ã§ããèªåç¨ã®åå¿é²çãªæå³åãã®å¼·ãã¨ã³ããªãªã®ã§ããã®ãããã®èªã¿ã«ããã«ã¤ãã¦ã¯ã容赦é¡ãã¾ãã
SAStruts 㨠S2JDBC ã®ææ°æ©è½
ã¹ãã¼ã«ã¼ã¯ id:higayasuo 㨠id:taedium ã«ããã»ãã·ã§ã³ã
ã¾ããSAStruts & S2JDBC ãéçºããã«è³ã£ãèæ¯ã¨ãã¦ãSeasar2 ã®æ´å²ã®ã«ã³ã¿ã³ãªãããããããSeasar 2.4 ã®ãã㯠Teeda + S2Dao ã§å£²ã£ã¦ãããã使ãç¶ãã¦ããå ã«æ§ã ãªåé¡ãåºã¦ããããµã¯ãµã¯æãåºãã¦ãªããªããã¨ã²ããããæãããã¨ããã®ãä¸çªã®åé¡*1ãã¨ä¿ºã¯åãåã£ãã
2008/9/8 1900 é 追è¨
ã²ãããã«çªã£è¾¼ã¾ãã¾ããã
ããªãééã£ã¦åãåã£ã¦ããªãã確ãã«ããªã©ã¯ã«ã§S2Daoã使ãã¨ããã¼ã¿ãã¼ã¹ã®ã¡ã¿ãã¼ã¿ãæ¯åã¨ãã«è¡ãé¨åãé ãã®ã§ãHOT deployãããããè¡ããªãã¨ãã話ã¯ãããã©ã
Teedaã¨S2Daoã¯ãåºæ¬çã«è¦ç´ãã¼ã¹ã®ãã¬ã¼ã ã¯ã¼ã¯ã§ããè¦ç´ãç¥ã£ã¦ããã°ãæ¬å½ã«ããããéçºã§ãã¾ããã§ããè¦ç´ãã¼ã¹ãªã®ã§ãè¦ç´ãç¥ããªãã¨ãä½ã«ãã§ããªããªã£ã¡ããããã®è¾ºããå¤§è¦æ¨¡éçºã«ã¯åããªãã¨ããã
å°è¦æ¨¡ã§ãã¿ããªã§æ°æ¥½ã«è³ªåãåãããããªç°å¢ã ã¨ãç¥ããªãã¨ãã¯ã誰ããçãã¦ããããã§ãããã ãã©ãã
SAStrutsã¨S2JDBCã¯ãå¤§è¦æ¨¡æ¡ä»¶ã«ãèããããããã«æåããè¨è¨ããã¦ãã¾ãã
ï¼ä¸ç¥ï¼
SAStrutsã¨S2JDBCã¯ãå¤§è¦æ¨¡æ¡ä»¶ã«èããããããã«ä½ã£ãã®ã§ãã大äºãªãã¨ãªã®ã§ãäºåº¦è¨ã£ã¦ããã¾ããã
SAStrutsとS2JDBCを作ったわけ - ひがやすを blog ããæç²
ãã¾ã£ããèå¿ãªãã¨æ¸ãå¿ãã¦ãããããã俺 orzããSAStrutsã¨S2JDBCã¯ãå¤§è¦æ¨¡æ¡ä»¶ã«èããããããã«ä½ã£ãã®ã§ããã¯çè§£ãã¦ãã¤ããã ã£ããã©ãããã¯ã²ã©ãæç« ã«ãªã£ã¦ãããªã®ã§ãããã¯ã²ã©ãæç« ã¯ãã®ã¾ãã¾ã«ãã¦ãææãã¦ããã ããé¨åããã®ã¾ãã¾å¼ç¨ãã¦ããã¾ãã
2008/9/8 1900 é 追è¨é¨åããã¾ã§
ããã¦ãSeasar å©ç¨è ããã®æè¦ããã²ãããèªèº«ãåéããæ å ±ãåæããçµæãS2Struts ã®ä»£ããã« SAStrutsãS2Dao ã®ä»£ããã« S2JDBC ãéçºãããã¨ã®ãã¨ããã¼ã¯ã¼ãã¯ãå¤§è¦æ¨¡ãªéçºã«èãããã Web ã¢ããªã®ãã¬ã¼ã ã¯ã¼ã¯ããããã¯ãWeb ã¢ããªã®ãã¬ã¼ã ã¯ã¼ã¯ã®å¦ç¿ã³ã¹ã忏ãå¦ç¿ã³ã¹ã忏ã®ä¸ä¾ã¨ãã¦ãSAStruts 㯠struts-config.xml ã¬ã¹ãS2JDBC ã¯ãlazy loading ãæå³çã«ç°¡ç´ åããªã©ãæãã¦ããã
SAStruts ã®æ°æ©è½ã«ã¤ãã¦ãscaffold ã®å®è£ ãscaffold ã¨ã¯ãæè¿ã® LL ç³»ãã¬ã¼ã ã¯ã¼ã¯ã Teeda 触ã£ã人ã«ã¯ããªãã¿ãªãã ãã©ãDB ãã¼ãã«ã® CRUD ã¨ããããã¹ã¿ã¼ã¡ã³ããã³ã¹ç³»æ©è½ããç»é¢å¨ãã®ã³ã¼ããã DB ã¢ã¯ã»ã¹ã¾ã§ãèªåçæãã¦ããããã®ã
S2JDBC ã®æ°æ©è½ã«ã¤ãã¦ãS2JDBC-Gen ã®å®è£ ãJava ã®ã¨ã³ãã£ãã¯ã©ã¹ã¨ DB ã®ãã¼ãã«æ§é ãèªåã§ãããã³ã°åã£ã¦ããã代ç©ãRails ã® Migration ã«è¿ããã®ã Java ã§å®ç¾ãã¦ãããï¼äºå®ï¼ï¼ã¢ãã®ããã ã
ã¡ãªã¿ã«ããã¢ã§å人çã«åãã ç¹ãä¸ã¤ããã㯠Dolteng ã®æ¹è¯ãpresentation 㨠persistence ãå¥ã ã«é¸ã¹ãããã«ãªã£ã¦ãããç¥ããªãã£ã俺ä¹ãã£ã¦æããªãã ããããã¯å°å³ãªããåãã§ã人å¤ãã¨æããTeeda + S2JDBC ã SAStruts + S2Dao ã鏿ããã人ã¯å°æ°ãªãããå± ãã¨æããã ãããèªåã§è¨å®ããã°ããã¨ã¯ãããããã Dolteng ãããã¸ã§ã¯ãä½æã®æç¹ã§ãµãã¼ãããç¹ã¯å人çã«è©ä¾¡ãã¦ããã
scaffold ã®ãã¢ãscaffold 㯠Database View ããé¸ãã§â¦â¦ã¨ãã£ãæãã ã£ãã®ã§ãTeeda ã¨ä¼¼ããããªæµããªã®ããªï¼
次ã«ãS2JDBC-Gen ã®ãã¢ã«å ¥ãåã« S2JDBC ã®ã«ã³ã¿ã³ãªèª¬æãJava ã®ã¯ã©ã¹ã« @Entity ã®ã¢ããã¼ã·ã§ã³ãããããã£ã« @id ã¨ãä»ãããä½¿ãæ¹ã¯ãjdbcmanager.from("").where(""); ã¨ãããããªæãã
DB ã®ç®¡çã«é¢ããåé¡ã«ã¤ãã¦ããã¼ã¿ãã¼ã¹ã¹ãã¼ãã¨ãã®å¤æ´ã¨ Java ã®ã¯ã©ã¹ããããã³ã°ã®æ´åæ§ãåã使¥ã«ã¯ã人çºãã¹ã®å ¥ãè¾¼ãä½å°ãããããããããåé¡ã§ãããã¨ã
S2JDBC-Gen ã«ã¤ãã¦ãJava ã³ã¼ããä¸å¿ã¨ãã¦éçºãå¯è½ã¨ãããã¼ã«ãDB ã®ãã¼ãã«ã夿´ã㦠Java ã®ã¯ã©ã¹ã夿´ãã¦â¦â¦ã§ã¯ãªããJava ã®ã¨ã³ãã£ãã£ã¯ã©ã¹ã夿´ããã ãã§ããã¨ã¯ãã¼ã«ã DB ã¨ã®æ´åæ§ãåã£ã¦ããããã¨ããã¤ã¡ã¼ã¸ã
S2JDBC-Gen ã®ãã¢ãAnt ã¿ã¼ã²ãããå®è¡ããã¨ãã¾ã Entity ã¯ã©ã¹ãªã©ãèªåçæããããæ¬¡ã«ãJava ã® Entity ã¯ã©ã¹ã«ããããã£ã追å ããããã®ç¶æ ã§ãããä¸åº¦ Ant ã¿ã¼ã²ãããå®è¡ãããããã¨ãDDL*2ã®èªåçæã¨ããã®æãã¼ãã«ã«å ¥ã£ã¦ãããã¼ã¿ã CSV ã§ãã³ããããããã®ç¶æ ã§ãAnt ã® migrate ã¿ã¼ã²ãããå®è¡ããã¨ãã¼ãã«ã夿´ãããããã®æãå ã«ãã³ãããã CSV ã«ã追å ããããããã£ç¨ã®ãã¼ã¿ã追å ãã¦ããã°ãåæãã¼ã¿ã復å ï¼è¿½å ã§ãããããã¦ãJava ã¨èªåçæããã DDL ã¨ããã³ãããã CSV ããã¼ã¸ã§ã³ç®¡çã·ã¹ãã ã§ç®¡çããã
次ã«ããããããã¼ã«ã使ãå ´åã徿¥ã¨ã¯å°ã ç°ãªãéçºä½å¶ãåããã¨ã«ãªããã¨ãã£ãç¹ã«ã¤ãã¦ãåéçºè ãã¨ã® PC ã«éçºç¨ DB å ¥ããå¿ è¦ããããã©ãããã¯ãã·ã³ã¹ããã¯ä¸ããã»ã©åé¡ã«ã¯ãªããªãã ãããã¨ã
大ããã®ã¯ãDBA ã®å½¹å²ãå¤ãã£ã¦ããç¹ãã¨ã®ãã¨ããã¼ãã«ã®å¤æ´ããéçºè ã DBA ã«å¤æ´ä¾é ¼ããããããªããéçºè ã Java ã³ã¼ãããããã ãã«ãªãã
â¦â¦ã¦ãã¨ã¯ããããã¼ãªãªãªã¼ã¹ã®ã¿ã¤ãã³ã°ã§ DBA ããã¼ãã«æ§æã®ç¢ºèªã¨ãã ããã«ãªãã®ããªï¼ããã¼ãâ¦â¦æ¥æ¬ã ã¨æ¬§ç±³ã¨éã£ã¦ãDBA ã¨ãã¼ã ãªã¼ãã¼ãã´ããã£ã«ãªã£ã¦ãã±ã¼ã¹ãå¤ãããããããæ²è¦³çãªæ 度åããªã¼ãã¼ã ã¨åãå ¥ãã¦ãããªããããããããèãã®äººãã¡ã£ã¦ãè¯ããæªããããã°ã©ãã¼ãä¿¡ç¨ãã¦ãªããããè¯ããæªãããã£ã¦æ¸ããã®ã¯ããã¼ãã«ã¯ã°ãã¼ãã«å¤æ°ã®ãããªãããªãã ãããæ©ã ç°¡åã«å¤æ´å ¥ãã¡ããã¡ã ããã£ã¦ææ³ã®ãã¨ãããã¼ã俺ã£ã¦çµæ§æ²è¦³çãªææ³ã®æã¡ä¸»ãªãã ãªãï½ Jiemamy ã®è¨äºèªãã æã«ãDB ãã¼ãã«ãç©æ¥µçã«ãªãã¡ã¯ã¿ãªã³ã°ãã¡ããã YO!ããªããªã« SUGEEE ã¨æãã¤ã¤ãã©ããæççã ã£ãã®ã¯ããããèãã奥åºã«ããããã¿ããã ãªã
Jiemamy ã¯æ§æç®¡çã¨ããã¹ãããããã¸ã§ã¯ãã®ã©ã¤ããµã¤ã¯ã«ã«ããéããç½®ãã¦ãã¤ã¡ã¼ã¸ï¼データベースもアジャイル開発に対応したい! ã®ã¿ãèªãã§ã®ã¤ã¡ã¼ã¸ï¼ã ãã©ãS2JDBC-Gen ã¯ãããã³ã¼ãã«éç¹ãç½®ãã¦ãéçºãã©ã¯ã«ããããå®ç¾ãããã¨ãã¦ããããã«æããã
T2 - WEB 2.0 Connector -
ã¹ãã¼ã«ã¼ã¯ id:shot6 ã«ããã»ãã·ã§ã³ã
T2 ã ã¨ã¯ã¦ãªãã¼ã¯ã¼ããªã©ã§æ ç»ã®ãã¿ã¼ããã¼ã¿ã¼ãã¨ããã²ã£ããã£ã¦ãã¾ãã®ã§ãã¹ãã¼ã«ã¼ã¯ã主㫠T2Framework ã§è¦³æ¸¬ãã¦ããã¨ã®ãã¨ããã®ãããblog çã§ã¯ T2Framework ã§æ¸ãã¦æ¬²ãããã¨åç½®ããã¦ãã¾ããã
T2 ã¨ã¯ï¼ãé¨ååæåããã«ã¹ã¿ãã¯ã®éã®èãæ¹ãå°ãããã¬ã¼ã ã¯ã¼ã¯ãçµã¿åããã¦ä½¿ãã»ãããç¾å ´ã§ã¯ä½¿ããããã®ãããªãã ããããã¨ãT2Framework 㯠Web ã®ããã³ãé¨åã«ç¹åãã¦ãããServlet ã ãã§ã¯ããªããã£ãããããã¨ãããããã¬ã¤ãª URL ãªã© Web2.0 çãªã¨ããã«ããã©ã¼ã«ã¹ãå½ã¦ã¦ãããã¨ã®ãã¨ãã¾ãããã¾ãã¬ãã¬ãã« REST ã®ååã«å¾ãéããã¨éã«éçºãè¾ããªãã®ã§ã¯ï¼ãçãªçºè¨ããã¦ããã
T2 ããããã¨ã¨ã¯ï¼ãWeb ã®ããã³ãããªããã«ãããç¹å¾´ã¯ãã¹ãã¼ãã¬ã¹ããã«ããã¥ã¼ãã¬ã¼ã ã¯ã¼ã¯ãä¿å®æ§ãªã©ãã¹ãã¼ãã¬ã¹ã«ããã®ã¯ãã¹ãã¼ããã«ã«ãããã©ããã¯ç¸å½æ©ãã ã¨ã®ãã¨ããã¹ãã¼ãã¬ã¹ã®ä¸ã«ã¹ãã¼ããã«ã®ç®ããã¶ããã®ã¯æ¯è¼çã©ã¯ãã ãéã¯é£ããã®ã§ã¯ï¼ãã¨ã®å¤æããããã¨ããã«ããã¥ã¼ãã¬ã¼ã ã¯ã¼ã¯ã¨ã¯ãFlex ã Silverlight ãªã©ãåå¥ã®ãã³ãã¬ã¼ãã¨ã³ã¸ã³ã«ã¯ä¾åããªããä¿å®æ§ã¨ã¯ãT2Framework ã¯è¦ç´ããã¢ããã¼ã·ã§ã³ãéè¦ãããè¦ç´ã¯å¤ãããã¨ã¨è¦ããããªããªããéã«å¶å¾¡ãå°é£ã«ãªããã¨ãã£ãèªèº«ã®çµé¨ãããããããã¨èªã£ã¦ããã
T2 ããããªããã¨ã¨ã¯ï¼ãWeb ã¨æ¥ç¶ããã¨ãã以å¤ã¯ãããªããæãã¦ããã®ã¯ãããªãã¼ã·ã§ã³ãèªåã³ã³ãã¼ã·ã§ã³ããªããã³ã³ãã¼ãã³ãã®éçºãããªãã¼ã·ã§ã³ã«ã¤ãã¦ã¯ãã¨ã©ã¼ã¡ãã»ã¼ã¸è¡¨ç¤ºçã代表çãªããã«æ¡ä»¶ãã¨ã®å·®ç°ãå¤ããããããããå ±éãã¬ã¼ã ã¯ã¼ã¯ã¯ä½ãã¥ããã®ã§ã¯ãªããï¼ãã¨ãèªåã³ã³ãã¼ã·ã§ã³ã¯ãHTTP ã§éä¿¡ãããå¤ã¯ãã¹ã¦æååãªã®ã§ãåºæ¬çã«ã¯ã¦ã¼ã¶ã¼ä»»ãã«ãã¹ããªã®ã§ã¯ãªãããã¨ããã ããããã¿ã¯ãããªãã®ã¯ããã¯ããã§éå¹ççãªã®ã§ãã©ã³ã¹ãéè¦ããã®ãããã¢ããã¼ã·ã§ã³ã§æç¤ºçã«ç¤ºãããªãéãã¯ããªãããã«ãããã¨ããªããã³ã³ãã¼ãã³ãã®éçºã¯ãè¦ã¯ãããã DataGrid ã¿ããªã®ã¯ä½ãã¾ããããã¨ããæå³ã
RIA æä»£ã®å°æ¥ã«ã¤ãã¦ãæä»£ã¯åã³ã¯ã©ã¤ã¢ã³ããµã¤ããã¯ããã¸ã¼ã注ç®ãããæä»£ã¸ããã ããæã¨éãã®ã¯ããã¾ã§ã Web ã®ãã¯ããã¸ã¼ããã¼ã¹ã«ãã¦ãç¹ãããã³ãã¨ã³ãã¯ãæ§æ¥ã® HTML ãã¼ã¹, Flex/AIR, Silverlight, ExtJS ãªã©æ§ã ãªãã¯ããã¸ã¼ããããéä¿¡å½¢å¼ã REST/JSON/POS/AMF ã¨å¤ç¨®å¤æ§ãã¤ã¾ãã¨ãããã¯ã©ã¤ã¢ã³ãè³æºã®æå¹æ´»ç¨ãåã³èå ãæµ´ã³ããã§ã¼ãºã«å ¥ã£ã¦ãããâ¦â¦ãªããããæ¥åã¢ããªæ±ç¨æ©ãã VB ãªã©ã®ã¯ã©ãµããããã¦ãªã¼ãã³ç³»ï¼æ»èªï¼ã«ç§»è¡ãã¦ã£ãæµããæãåºãã¾ãããããWeb ãåºç¤æè¡ã«ç½®ãã¦ããã¨ããéãã¯ããã©ããã
RIA æä»£ã®ã¢ã¼ããã¯ãã£ã¨ T2Framework ã®ç®æ¨ãHTTP,AMF,XMLHTTPRequest ãªã©ã夿§ãªå½¢å¼ã®ãªã¯ã¨ã¹ããæ½è±¡åãããµã¼ãã¼ãµã¤ãå´ï¼ãããæ¢åã®âç¹ã« HTTP ãã¼ã¹ã®âã¨ãæãåããã®åºæ¥ãï¼ã¨æ¥ç¶ããã
T2Framework ã®åºæ¬ã¢ãã«ãåºæ¬ã¯ãURL 㨠POJO ããããã³ã°ãããã¢ããã¼ã·ã§ã³ã§ãããã³ã°ãæå®ãããã¢ããã¼ã·ã§ã³ã®ç¨®é¡ã¯ãHTTP ã®åã¡ã½ããã«å¯¾å¿ãããã®ã@ActionPath @ActionParam @Default ãªã©ã®èª¬æããã¦ããããã¤ã¾ãã¨ãã URL ã¨ã¡ã½ããã¨ã®å¯¾å¿ä»ãã®å¶ç´ãã¤ãããã®ãã¨èãã¦ããããã ã@Ajax, @Amf 㯠XMLHTTPRequest ãå¦çãããã®ãã¯ã¶ã¯ã¶å¥ç©ã«ããã®ã¯ãAjax çãªãã®ã¯ HTTP çãªãã®ã¨ã¯ç°ãªããããç´°ããå¶å¾¡âå³å¿æ§ãªã©ã®ããã©ã¼ãã³ã¹âãæ±ããããã®ã§ã¯ãã¨èããããã
弿°ã®è§£æ±ºã»ã¡ã½ããã®æ»ãå¤ã«ã¤ãã¦ãForward, Redirect, Direct, JSON ã¨ããã¾ãããã®è¾ºã¯ã¿ãã¾ãã¾ã ã¨æãã®ã§çç¥ã
æ®ãã®æéã§ãã¢ã以ä¸ããã¢è¦ã¦ã®å人çãªæè¦è²ã ãFlex-Java ã®éä¿¡ã®ã¨ãã¯ãS2BlazeDS ãªã¿ã«ã©ã¯ã«ãªã£ã¦ã»ãããªã¼ãã¦ãæ¢ã«ãªã£ã¦ãã£ã½ããªãï½ãã¬ã¯ã Silverlightï¼+C#ï¼ ã§ã ãµã¼ããµã¤ãå´ã¯ Java ã£ã¦ã®é©ãããããã
ã¨ããã§ãè¶ å人çãªæè¦ã ããç¾ç¶ Seasar é¢é£ãã¯ããã¸ã¼ã§ Flex-Java 使ããããªãâ¦â¦
- S2Flex2 - Flex 2 ãªãï¼ã¿ãã³ï¼ã³ã¬ä½¿ããããªããã ãããã¤ãã¼å®å®æ§éè¦ãªãã³ã¬ã主ã¨ãã¦æ¥åã¢ããªã§ä½¿ããã¦ãããããWeb ã«ã¯ã¢ã³ããªæ å ±åºã¦ãªãã£ã½ããã©ããªã®ã§ããããªãã«æ¯ãã¦ãããã§ãã
- S2BlaseDS - Flex 3 ãªããã£ã¡ãããããã¾ã æ¡ç¨æ¡ä»¶ã¯å°ãªãã ãããã©ãBlazeDS ã®æ¿èã©ããã¼ã«éããªãâjar ã®ãµã¤ãºçã«ãâãããå®å®ã¯ãã¦ãã¨æãããã ã¾ãããã«ãæ¡ä»¶ã®å ´å㯠Adobe ããã«ãéæãã¾ãããï½
- T2Framework - å人çã«ã¯ãå°æ¥çã«ã¯ã³ã¬ããªãã¨æãããµã¼ãã¼å´ã«æ¯ã¹ã¦æµè¡ãå»ããæ¿ããããã³ãã¨ã³ãå´ãç§»è¡ããããç¹ãè¦éã«å ¥ãã¦ãç¹ãé åçã ããã
Seasar ã®ä¸ã®ä¸
ãã®æé帯ãã©ãããããè¿·ã£ããã§ããã©ãâ¦â¦ java-ja çãªæå³ã§ãå·®ãã¤ãããããªã£ããããã¼ã PC ãççºããæ§åãè¦ããã£ããããããã¾ã®äººã®è©±ãèãã«ããããã£ããããã¨ãã¿ããªåã»ãã·ã§ã³ä¸ã« twitter ãããã ããï¼
ããã¯ãã¦ããã
æ¬ã»ãã·ã§ã³ã¯ãJavassist - Java ãã¤ãã³ã¼ã夿å¨ãã®èª¬æã主ä½ã«ãªããã¨ã®ãã¨ãJavassist ã¯ãS2Container(主㫠S2AOP ã§) ã®å®è¡æã« Java ã®ãã¤ãã³ã¼ãæ¸ãæããé¨åã«ä½¿ããã¦ããã
æè¿ããã¤ãã³ã¼ã夿ãè¡ãã½ããã¦ã§ã¢ãå¢ãã¦ãããS2Container ãå§ãã¨ãã¦ãHibernate, JBoss, JRuby ãªã©ããããã¯é常ã«ä¾¿å©ãªãã ãã©ããã¤ãã³ã¼ã夿é¨åã¯ãã©ãã¯ããã¯ã¹ã§ãããå é¨ãæèããã«ä¾¿å©ãªãã®ã使ããããã«ãªãã®ã¯è¯ããã¨ãªã®ã ããæè¡è ã¨ãã¦ã¯ä¸å®ï¼å¥½å¥å¿ã沸ãé¨åã§ãããã
ããã§ãJavassist ãçè§£ããã°ãJavassist ã使ç¨ãã¦ãã S2AOP ã®ãã©ãã¯ããã¯ã¹ã®çè§£ã®ä¸å©ããã©ãã«ã·ã¥ã¼ãã£ã³ã°ããã¥ã¼ãã³ã°ã«å½¹ç«ã¤â¦ãããããªãããã¨ããªããé¢ç½ããã§ãããã¼ã¨ãã£ãã¨ããããæ¬ã»ãã·ã§ã³ã®ãã£ããã«ãªã£ããã¨ã®ãã¨ã
S2AOP ã§ã©ã®ããã« Javassist ã使ããã¦ããããã«ã¤ãã¦ã大ã¾ããªæµãã¯ãæå®ãããã¯ã©ã¹ãã¼ã ã®ãã¤ãã³ã¼ããæ°è¦ä½æãã³ã³ã¹ãã©ã¯ã¿ã®ãã¤ãã³ã¼ããçæãã¦ã¯ã©ã¹ã«è¿½å ãã¡ã½ããã®ãã¤ãã³ã¼ããçæãã¦ã¯ã©ã¹ã«è¿½å ãã¯ã©ã¹ã®ãã¤ãã³ã¼ãããã¤ãåã«å¤æãã¨ãã£ãæé ãã¨ããJavassist 使ç¨é¨åã®ã³ã¼ãã示ãã¦ããããAPI ã«ãã£ã¦ãã¤ãã³ã¼ã夿ã»ç·¨éãæèãããªãã®ã Javassist ã®ãããã¨ããã
API ã®è¦ãç®ã¯ Reflection API ã£ã½ããâ¦â¦ãã¼ããããã¦ã® Java ã³ã¼ãã§ééçã«ãã¤ãã³ã¼ã夿ã»ç·¨éã§ããã®ãã¹ã´ãã¨ãããã£ã¦ã¨ããããªï¼
Javassist ã® CtClass ã«ã¤ãã¦ãCtClass 㯠Compile-time Class ã®ç¥ã1 ã¤ã® class ãã¡ã¤ã«ã表ç¾ããããã®ã¯ã©ã¹ãã¦ã¼ã¶ã¼ã¯ããã®ã¯ã©ã¹ã®ãªãã¸ã§ã¯ããéãã¦ããã¤ãã³ã¼ããçæã»ç·¨éãããã¾ããåã¯ã©ã¹ã¯ã¯ã©ã¹ãã¡ã¤ã«ã®æ§é ãä¿æãã¦ããã
ClassPool ã«ã¤ãã¦ãCtClass ãªãã¸ã§ã¯ãçæã® API ã§ãCtClass ãªãã¸ã§ã¯ãã®ã³ã³ããçä½ç½®ã¥ããã¯ã©ã¹ãã¡ã¤ã«ã®æ¢ãå ã¯ãç¡è«ã-classpath ã§æå®ãããã®ãæ¤ç´¢ãã¹ã«ãªãã
CtMethod ã«ã¤ãã¦ãæ°è¦ã¡ã½ãããã¯ã©ã¹ã«è¿½å ã§ãããã ãã©ãã¡ã½ãã宣è¨ãã½ã¼ã¹ã³ã¼ãã§æ¸ãããã¤ã¾ããString 表ç¾ã®ã¡ã½ãã宣è¨ãåçã«ã¯ã©ã¹ã«è¿½å *3ã§ãããã¾ããJavassist ã¯ç¬èªã®ç°¡æã³ã³ãã¤ã©ãæã£ã¦ããã
ç¶ã㦠Javassist ã®æ·±ãã¨ãã話ãã¦ããã ãã©ãã¡ãã£ã¨ã¤ãã¦ãããªããªã£ã¦ãã¾ã£ãã®ã§ä»¥ä¸çç¥ï¼æ ããªã
Teeda åè - ä½¿ãæ¹ããæ¡å¼µæ¹æ³ã¾ã§ -
åç¥ãªãã³ã®äººã®ã»ãã·ã§ã³ãããã¦ã¹ã«ã¼ãã¦ãã£ã¡èãã«ãã¾ããã*4
ã¹ãã¼ã«ã¼ã¯ id:yone098 ã«ããã»ãã·ã§ã³ã
Teeda ã«ã¤ãã¦ããã㯠Seasar2ã«ããã¹ã¼ãã¼ã¢ã¸ã£ã¤ã«ãªWebéçº (WEB+DB PRESS plusã·ãªã¼ãº) ã®æ¬èªãã®ãè¯ãã¨æãã®ã§çç¥ãæ¸ãã®ã¡ã³ãã¤ã¨ãè¨ããããã ãTeeda ã¯æ¥æ¬ï¼»å|çºï¼½ã® JSF å®è£ ãã¨ããã®ã¯ç¥ããªãã£ãã
PRG(Post Redirect Get) ãã¿ã¼ã³ã«ã¤ãã¦ãããã¯ãURL ã¨å®éã«è¡¨ç¤ºããã html ããºã¬ãªãããã«ãªãããªã©ã®å©ç¹ãããã
Teeda ã§ã®ãããã©ããã«ã¤ãã¦ãPage ã¯ã©ã¹ã®ã¡ã½ãããå¼ã°ããªãç¾è±¡ã®åå ã®ä¸ã¤ã«ã親ã¯ã©ã¹ã abstract ã«ãªã£ã¦ãªãã¨ã ããç¬èªãã¡ã¤ã«ãä½ã£ãå ´åã¯ãã¡ãã㨠dicon ã«èªåã§ç»é²ããªãã¨ã ãããªã©ãªã©ã*5
ã¡ã¢ãªãªã¼ã¯ã«ã¤ãã¦ãS2ContainerFactory.create() ããªã¯ã¨ã¹ãã®åº¦ã«ã³ã³ããçæã¯ãã£ã¦ã¯ãããªããããã¯ãéèªã»æ¸ç±ã®ä¾ããã®ã¾ãã¾ãã£ã¦ããã ãããã¨å®æãªã³ãããåã³ãå±éºæ§ãææãã¦ã¾ããã解決çã¨ãã¦ã¯âãããããã¨ããããã±ã¼ã¹ã¯ã»ã¨ãã©ç¡ãã ããã¨åç½®ããã¤ã¤â S2Container ã®ã¤ã³ã¹ã¿ã³ã¹ã DI ãã¦ãããã¾ããããã¨ã
Teeda ã®ã©ã¤ããµã¤ã¯ã«ã«ã¤ãã¦ãJSF ã¨çµ¡ãã¦çè§£ãããã¨ããã¨åä»ã ãã©ãããã¦ã«ä½¿ãåã«ã¯ãã¨ããããèã«ç½®ãã¦ããã°è¯ãã
Teeda ã®å¤æ©è½æ§ã«ã¤ãã¦ãããã«ãµãããã鲿¢ã¯ãdoHoge ã doOnceHoge ã«å¤ããã ããããªãã¼ã·ã§ã³â@Required ã¨ãâ/ã³ã³ãã¼ã¿ã®ãã¿ã³æå®ã¯ãtarget ã§æå®ãã id ã®ãã¿ã³æ¼ä¸æã®ã¿ã«è¨å®ã§ããã
Teeda in Ajax ã«ã¤ãã¦ãã¡ã½ããå㯠ajaxHello ã¿ããã« prefix ã ajax ã«ãããjavascript å´ããã¯ããµãã¢ããªã±ã¼ã·ã§ã³å + "_" + Pageã¯ã©ã¹å + "_" + ã¡ã½ããåãã§å¼ã¶ã
Teeda ã® DI ã«ã¤ãã¦ãCookie ã HTTP ã®ãããã¼æ å ± ã HttpServletRequest ã¿ããã«ãpublic Map cookie, public Map Header ã£ã¦ãã public 夿°ãå®ç¾©ããã° DI ãã¦ãããã
ã©ããã¦ãç¾è±¡ãããããå ´åã® Tips ã«ã¤ãã¦ãblog ã«æ¸ããML ã§èãã2ch ã«ã«ãã³ã
Teeda ã®æ¡å¼µã«ã¤ãã¦ãæ°åå ¥ããã°è²ã æ¡å¼µã§ãã¾ãããã¨ã®ãã¨ãæãã¦ããã®ã¯ãç¬èªããªãã¼ã·ã§ã³/ã³ã³ãã¼ã·ã§ã³ããã§ã¼ãºã¸ã®å¦çå·®è¾¼æ¹æ³ãTeedaAjax ã®æ¡å¼µãSMART Deploy ã使ããªããOval ã§ããªãã¼ã·ã§ã³ãã«ã¹ã¿ã ã³ã³ãã¼ãã³ã使ã
ç¬èªããªãã¼ã·ã§ã³/ã³ã³ãã¼ã·ã§ã³ã«ã¯ãWeb ã«æ å ±ãçµæ§ãããããããã§ã¼ãºã¸ã®å¦çå·®è¾¼æ¹æ³ã¯ãPhaseListener ã£ã¦ã®ã使ã£ã¦ãphases.config.xml ã«ç»é²ãããã¨ããªãã¨ããTeedaAjax ã®æ¡å¼µã¯ãprototype.js 使ãå ´åã¨ã㯠send_param ã§å¼ã¶ã¡ã½ããæå®ãããjquery ã§ãä¼¼ããããªæãã§ã¤ã±ãããã ãSMART Deploy ã使ããªãã«ã¤ãã¦ã¯ãè¦ã¯ Seasar 2.4 ã§ SMART Deploy ã使ããªãã¨ãããã§ãã¤ã¾ã Seasar 2.3 ã®ããæ¹ã使ããã¨ããæå³ã®ããã ãããæ¹ã¯ãAutoNaming ãä½ã£ã¦ add.dicon ã«è¨å®ã詳細ã¯çç¥ãOval ã§ããªãã¼ã·ã§ã³ã¯ãã³ã³ãã¼ã/ããªãã¼ã·ã§ã³ã¨ã©ã¼æã« Page ã¯ã©ã¹ã®å¤ãæ´æ°ãããªãã®ãã¤ã¤ãªå ´åã«ä½¿ããã®ãããã詳細ã¯çç¥ãã«ã¹ã¿ã ã³ã³ãã¼ãã³ã使ã¯ãJSF ã®ã«ã¹ã¿ã ã³ã³ãã¼ãã³ãã®ä½æã®æãããã DataGrid ã¨ããããããã®ãä½ãå ´åã®ãã¨ããã㯠JSF ãç¥ããªãã¨å³ããã¨ãããããããã ã
â¦â¦ãªãã¤ã¼ããã¢ã¬ã§ãããTeeda in Action ã¿ãããªæ¬ã欲ããã§ããã
â¦â¦ãã¼ãããã®ã»ãã·ã§ã³ã誰ã®ã»ãã·ã§ã³ãä»ã®å ´æã§èãããå¿ãããã©ãTeeda ã¯åã£ä»ãããããããããããããçãªãã¨ãè¨ã£ã¦ãã¨æããè¦ç´ã«é ¼ããããã¨ä½ãèµ·ãã£ã¦ãã®ãåããé£ããã¨ããæèã§ãããã¾ããä½ããæ½è±¡åããæè¡ã£ã¦ãããªãããããããªããªã¼ã¨ãæããã ãã©ã
ã¦ãã®ç¤¾å ã§ããTeeda ãè¦ããã人ããï¼è¦ç´ãã¼ã¹ã®é¨åã¨ãè¦ã¦ï¼ã³ã¬ä¾¿å©ã ãã©ãããã£ãæã®ã³ã¹ãããã«ããªããå¯è½æ§ãããããã¡ã¨æããªãã¨ãè¨ã£ã¦ã¦ã俺ãããã ããéçºããããã£ã¦ãããªã¿ã¼ã³ã大ããã®ãäºå®ã ããã½ã¬ããªã«æ¯ãã¦ããã§ Web ã§èª¿ã¹ãã°æ å ±ããããåºã¦ããããããç¨åº¦ã®ãªã¹ã¯ã¯è¨±å®¹ç¯å²å ãã¨ãã¦è¨ã£ãããããã¼ãåã¯ãããããããããä»ã®é£ä¸ã«åãæ°´æºæ±ããã®ã¯å³ãããã ããªãã£ã¦ãªäºãããã¾ãã¦ãã¾ãä¸è«ãã®æè¡æ°´æºä¹ã¨ããã°ãããªãã ãã©ããããã²ãããã SAStruts + S2JDBC ä½ãããªãã¨ãå¦ãªææ ¨ã«ãµãã£ã¦ãã®ãæãåºããï½
ã¡ãã£ã¨è©±ãæãåºã«ããã¨ãã ãã©ãã¢ããã¼ã·ã§ã³éè¦ã®æµãã¯ããã種å ç¥ãããã¨ãããå帰ã¨ãããããã®è¾ºã®å¦¥åç¹æ¢ãã¯ä¸ã çããè¦ããªãããªãã
Lightning Talk
ä»åã® LT ã®çãä¸ããã¯ããã¾ãããã®ããã£ãããä¼å ´ã®ããã¾ããè¸ãè¸ã度ãç¡è¦ãããããã®ããã£ãã
Swing ããã£ã¨æè»½ã« - S2Swing ã®ç´¹ä»ã
ã¹ãã¼ã«ã¼ã¯ id:kaiseh ã«ããã»ãã·ã§ã³ãEatSpot, TopHatenar, HatenarMaps ã®ä¸ã®äººã
NetBeans IDE 6.1 ã¯ãããªã Swing ã®éçºãããããããªã£ãããã ãSwing Application Framwork + Beans Binding ã®ç´¹ä»ããã¦ãããç¹ã«æ³¨ç®ãªã®ã¯ Beans Binding ã ããããã®ããã大éæã«è¨ãã°ãSwing ã§åæ¹åãã¤ã³ãã£ã³ã°ãã£ã¦ããã代ç©ãªã®ã§ããã®ä¾¿å©ã㯠Swing 触ã£ããã¨ãã人ãªãããã ãã§åãã£ã¦ãããã ããã
S2Swing ã®ãã¢ãPOJO ã¨ç»é¢ã®ã³ã¼ããåæã»ããªãã¼ã·ã§ã³ã»ãã©ã¼ãããã£ã³ã°è¡¨ç¤ºã»å¤æã»å ¥åé ç®ã¨é£åãã¦ã®ç»é¢è¡¨ç¤ºãåãæ¿ãããæ«é²ãã¦ããã
â¦â¦Flex, Silverliget, WPF*6 ã¨ãæè¿ã® RIA ã¨è¨ããããã¯ããã¸ã¼ã®ãã¢ã®ä¸ã¤ã¯ãã¼ã¿ãã¤ã³ãã£ã³ã°ã®ãããããã«ããã¨ä¿ºã¯æããããããªãããSwing ã§ãããããã®ãåºã¦ããããUruma ãªãã¦ã®ããã£ãããã¦ãæ¢åã® Java ãã¯ããã¸ã¼ããã¼ã¹ã«ã㦠UI ã¾ãããéçºãããããã代ç©ãåºã¦æ¥ãããããé¢ç½ãããªãã
ã¤ãã«ãªã¼ãã³ã½ã¼ã¹åï¼ TERASOLUNA ãã¬ã¼ã ã¯ã¼ã¯
ã¹ãã¼ã«ã¼ã¯ã²ãããã¨æ±ºéãããã¨ãããä¸ã®äººã«ããã»ãã·ã§ã³ã
TERASOLUNAフレームワークï¼èªã¿æ¹:ã¦ããããªï¼ 㯠NTT ãã¼ã¿ã sourceforge ã§å ¬éãã¦ã OSS ã®ãã¬ã¼ã ã¯ã¼ã¯ãç¹å¾´ã¯ãWeb ã¢ããªããããã¢ããªåããAjax ç¨ã.NET ã®ãã¬ã¼ã ã¯ã¼ã¯ãªã©ãå«ãã§ãããã¨ã
è¦æã¯ä½ã¨ãã£ã¦ã TERASOLUNA ããããã¬ã¼ã ã¯ã¼ã¯ã ãããOSS ã§ãããå¨ãã®ãã¬ã¼ã ã¯ã¼ã¯ã¨ããã®ã¯ããªãç°è²ãã¹ãã¼ã«ã¼ã«ããã¨ãããã¥ã¡ã³ããå å®ãNTT ãã¼ã¿å ã§çµæ§ä½¿ããã¦ããã¨ã®ãã¨ããã ããã¸ã§ãã¹ã±ã¸ã¥ã¼ãªã³ã°æ©è½ã¯æä¾ãã¦ãªãã®ã§ãããã¯ä»ãããã¯ãã¨ã®åããæãå¿ è¦ãã¨èªã£ã¦ããã
å ¨ã¦ã¯å®æé社ã®ããã«
ã¹ãã¼ã«ã¼ã¯ id:EnogunoCap ã«ããã»ãã·ã§ã³ã
ç®çã¯ãOSS æ´»åã®ããã®æéæ»åºãIT æ¥çã®ã¤ã¡ã¼ã¸ã¢ããã宿é社ã«ãã£ã¦ win-win ã®é¢ä¿ã«ãªãããã£ã¦ãã¬ã¼ãºãè¯ãã¨æãã¾ããã
宿é社ã®ã¡ã½ããè²ã ããã¨ãããã¨ã«å®æé社ã«é¢ãã¦ç±ãèªããè¦ç©ããããã£ããã¨ããï¼ãã©ã®ãããã§ã§ããï¼ãã«å³çããããã£ããèãã¦ããçããï¼ãè¦ç©ããã使ãï¼æä½éãã¹ããã¨ã®æç¢ºåãåºæ¥ãã ããã°ããã¬ã¹ãã³ã¹ãè¿ãï¼ãéãã質ã大äºã«ããï¼ããããããéããã¨ããã¤ã帰ããªï¼ãã¨ãã«ãªã£ã¡ããããªã®ã§ãèªåãããªãã¦ããªãã¨ããªãç¶æ ãä½ãï¼ãå ¨ä½ã«ç®ãé ãï¼èªåã ãã§ãªãã¿ããªãé 調ã«åã£ã¦ãããã¨ã大äºï¼
ã¹ãã¼ãã®åºæ¬ã¯ãã£ãã話ããã¨ã¨ã¯è¨ããããã©ããã®ã»ãã·ã§ã³ã¯ã¨ã«ããæ©ãèªãå£ã ã£ãã®ãå°è±¡ã«æ®ã£ã¦ãããã ããLT ã¯ããããã¢ãã¤ãã¼ã¯ã許ãããâãããæ¨å¥¨ããã¦ãæããããã®ã ãâã¨ãããé¢ç½ãã
Sabotter éçºã§ãã¼ã£ã
ã¹ãã¼ã«ã¼ã¯ãLT ã®é°å²æ°ä½ãã«å®è©ã®ãã yamashiro ã«ããã»ãã·ã§ã³ã
ãã¼ã£ãã¼ã¨ã¯ãtwitter 㨠wassr ã®ã¯ã©ã¤ã¢ã³ãããããã 1 ã¤ã®ã¯ã©ã¤ã¢ã³ãã§åæã«ä¸¡æ¹è¦ããã®ãç¹å¾´ãã¨ã®ãã¨ã
ã¾ãããã¬ã¼ã³ãã¼ã«ã¨ãã¦ã使ãããæ¬ LT ã§ã¯å®éã«ãã®æ§åããã¢ã§ç¤ºãã¦ãããæ´ã«ãEclipse ãã©ã°ã¤ã³ã¨ãã¦ãåä½ãããããå®ã«ãã Eclipse ã«ãªããã§ãããããã㯠Eclipse 使ãã«ã¯å¬ããéãã ããï¼ä»äºããªãã twitter & wassr çãªæå³ã§
ãã¼ã£ãã¼ã¯ãCodeRepos ã§ã³ã¼ãå ¬éãã¦ãããã³ããã¿ã¼åéãã¦ã¾ããã¨ã®ãã¨ãéçºä½å¶ã¯ã¦ã«ã¦ã«ãç®æãã¦ãã®ã§ãã³ãããæ¨©ã¯ã«ã³ã¿ã³ã«ãã¬ã¼ã³ããã¡ãããã¼ã¨ã¢ãã¼ã«ãã¦ãã¾ããã
ãã¨ããã®ã¢ã¤ã³ã³ã¯ä¿ºã¯è¯ãæããã ãtwitter & wassr ã®ã¯ã©ã¤ã¢ã³ãã£ã¦ã®ãã¼ã³ã¼ã³ããããç¹ã¯ã¢ã¬ã ãããã©ï½
Web ã³ã³ããã®æ´»ç¨æ³åè - new ããå§ã¾ã Web ã³ã³ãã
ããªãåªããã«ç¸å¿ãã LT ã§ãããå 容çã«ãæéãªã¼ãã¼ç¡è¦ãã¦è©±ç¶ããæ´èã¶ãçãªæå³ã§ãï½ãå¸ä¼ã®äººãæ§ã室ã§è¦ãã¦ããã£ãã¨ããã«ããã¨ãTomcat ãããããã¼ããããã¼ã®ãã¨ã®ãã¨ã§ãããã俺ãããæãã¾ããã
SDLoader ã¨ããããªã¬ãªã¬å®è£ ç°¡æ Web ã³ã³ããã®ç´¹ä»ãåæ©ã¯ãCATALINA_HOME ãªã«ããï¼ãã¨è¨ãããããã客æ§ã®ã¨ããã§ã¹ã¿ã³ãã¢ãã¼ã³ã§ Web ã¢ããªãåãããããWeb ã¢ããªã®ãµã³ãã«ã®ã»ããã¢ããæ¹æ³ãããããã¨è¨ããããã¨ããã®ããã£ãããã¨ã®ãã¨ãããã§ãtiny 㪠Web ã³ã³ãããæ¬²ããã£ãã®ã§ãServlet API ãå®éã«å®è£ ãã¦ãã¾ã£ããã¨ã®ãã¨ããããããâ¦â¦
ç¹å¾´ã¯ãJar 1 åã§åããã¨ãã¾ãã空ãã¦ããã¼ããæ¢ãã¦èµ·åãããããmain ã«ã¼ãã³ã§ new ãã¦èµ·åãããªã©ãªã©ãä»ã«ãã¹ã´ãæ©è½ããããã ãã©ãã¨ã«ãããæè»½ã« Web ã¢ããªãèµ·åã§ããç¹ãã¹ã´ãã
ã¾ãã«ããã®çºæ³ã¯ç¡ãã£ããã¨æãããããããã LT ã§ããã
*1:ã²ãããã® blog èªãã§ãã°åãã人ã¯èã åããã¨ã¯æã
*2:ãã®ãããä¸èº«ã大éæã«èª¬æããã¨ã追å ãããããããã£ã追å ããã create table æ
*3:String = "public String hogeMethod() {...}" ã£ã¦ã®ãåçã«è¿½å ã§ãã¦ãã¾ããã ãããã¢ãããï½
*4:ã¨ãã人ã«ããããããã®ã¼ãã¨è¨ããã¾ãããサーセï¾ï½ï½ï½
*5:ãã®è¾º twitter ããã£ã¦ã¦ã¡ãã£ã¨èãéãã¦ã¾ããããã¦ã±ã¼ã¿ã¤ã®é»æºåãããã«ãªã£ã¦ç¦ãã