Charsbar::Note

2012/05/08

¢£ DBD::SQLite 1.36_03¤ÈDBD::SQLite::AuthorTests

¤¤¤µ¤µ¤«ÃÙ¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¡¢QA Hackathon¤Ç¤ä¤ë¤Ä¤â¤ê¤Ç¤¤¤¿¤³¤È¤Î³¤­¤È¤·¤Æ¡¢DBD::SQLite¤Î·¿»ØÄê¡¢¿ôÃÍȽÄê¤Þ¤ï¤ê¤ò²þÁ±¤·¤¿1.36_03¤ò¥ê¥ê¡¼¥¹¤·¤Þ¤·¤¿¡£SQLite¤ò¥«¥¸¥å¥¢¥ë¤Ê¥Æ¥­¥¹¥È·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ»È¤Ã¤Æ¤¤¤ëÊý¤Ë¤Ï¤Û¤È¤ó¤É±Æ¶Á¤Ï¤Ê¤¤¤Ï¤º¤Ç¤¹¤¬¡¢°Ê²¼¤Î¾ò·ï¤Ë¤¢¤Æ¤Ï¤Þ¤ëÊý¤Ë¤Ï²¿¤é¤«¤Î±Æ¶Á¤¬¸«¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¸¡¾Ú¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£

  • ºÇ¶á¤ÎDBIC¤ò»È¤Ã¤ÆSQLite¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¡£¤Þ¤¿¤Ïbind_param¤Ê¤É¤òÄ̤¸¤ÆÌÀ¼¨Åª¤Ë¿ôÃÍ·¿¤Î»ØÄê¤ò¹Ô¤Ã¤Æ¤¤¤ë
  • SQLiteÍѤΥ¹¥­¡¼¥Þ¤È¤¤¤¨¤É¤â¤¹¤Ù¤Æ¤Î¥«¥é¥à¤Ë¤Ä¤¤¤Æ¡ÊÆÃÊ̤ʰÕÌ£¤ò»ý¤Äinteger primary key¤À¤±¤Ç¤Ê¤¯¡Ë¤­¤Á¤ó¤È·¿¤ò»ØÄꤷ¤Æ¤¤¤ë
  • 32¥Ó¥Ã¥È¤Ç¤Ï¤ª¤µ¤Þ¤é¤Ê¤¤¿ôÃͤò°·¤Ã¤Æ¤¤¤ë¡£ÆÃ¤Ë32¥Ó¥Ã¥È´Ä¶­¤Ç64¥Ó¥Ã¥È¤Î¿ôÃͤò°·¤¨¤ë¤è¤¦¤Ë¤·¤¿¡Ê¡áUSE_64_BIT_INT¤¬Î©¤Ã¤Æ¤¤¤ë¡ËPerl¤ò»È¤Ã¤Æ¤¤¤ë
  • DBD::SQLite¤ÇºîÀ®¤·¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ësqlite3¥Ð¥¤¥Ê¥ê¤ò´Þ¤à¤Û¤«¤ÎSQLite¥é¥¤¥Ö¥é¥ê¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤¢¤ë¡Ê¤¢¤ë¤¤¤Ï¤½¤ÎµÕ¡Ë
  • ¤½¤Î¾¡¢datatype mismatch¥¨¥é¡¼¤Ë¹Ô¤­Åö¤¿¤Ã¤¿¤³¤È¤¬¤¢¤ë

¤Ê¤ª¡¢º£²ó¤Îºî¶È¤Ë»È¤Ã¤¿¸¡¾ÚÍѤΥġ¼¥ë¤ò¾¯¤·¤À¤±ÂκۤòÀ°¤¨¤Ægithub¤Ë¤¢¤²¤Æ¤ª¤­¤Þ¤·¤¿¡£¼ê¸µ¤ÎÊ£¿ô¤Î´Ä¶­¤Ç°ìÄ̤ê»î¤·¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤ä¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤Î°ã¤¤¤òÌÖÍåŪ¤Ë¸¡¾Ú¤Ç¤­¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¤ª¼ê¸µ¤Î´Ä¶­¤Ç»î¤·¤Æ¤ß¤ÆÉÔ¶ñ¹ç¤¬½Ð¤ë¤è¤¦¤Ç¤·¤¿¤é¤ªÃΤ餻¤¤¤¿¤À¤±¤ì¤Ð¤µ¤¤¤ï¤¤¤Ç¤¹¡£

https://github.com/charsbar/dbd-sqlite-authortests

2012/04/20

¢£ OSDC.TW 2012¤Ë¤â¹Ô¤Ã¤Æ¤­¤Þ¤·¤¿

¥Ñ¥ê¤Ç¹Ô¤ï¤ì¤¿QA Hackathon¤Ë°ú¤­Â³¤­¡¢4·î14Æü¡¢15Æü¤ËÂæË̤dz«ºÅ¤µ¤ì¤¿OSDC.TW 2012¤Ë¤â»²²Ã¤·¤Æ¤­¤¿¤Î¤Ç¡¢¤¶¤Ã¤¯¤ê¤Þ¤È¤á¤Æ¤ª¤­¤Þ¤¹¡£

ȯɽ¤Ë¤Ä¤¤¤Æ

  • »ñÎÁ: http://www.slideshare.net/charsbar/cpants-2012
  • Åö½é¤Ï¤ª¤â¤ËQA Hackathon¤Çºî¶È¤·¤¿¤³¤È¡¢¸½ºßºî¶È¤·¤Æ¤¤¤ë¤³¤È¤òÏ乤Ĥâ¤ê¤Ç¤·¤¿¤¬¡¢¤¢¤Þ¤ê¤Ë¤âÌܤ˸«¤¨¤ëºî¶È¤¬¤Ï¤«¤É¤é¤Ê¤«¤Ã¤¿¡Ê¡Üanalyser¤¬ÃÙ¤¹¤®¤Æ¥Ç¡¼¥¿¹¹¿·¤¬´Ö¤Ë¹ç¤¤¤½¤¦¤Ë¤Ê¤«¤Ã¤¿¡Ë¤Î¤Ç¡¢È¯É½Á°Æü¤ÎÌë¤Ë¤Ê¤Ã¤ÆCPANTS¤È¤Ï¤Ê¤ó¤¾¤ä¡ÊCPAN Testers¤È¤Ï¤É¤¦°ã¤¦¤Î¤«¡Ë¤È¤¤¤¦Ïäò¥á¥¤¥ó¤ËÀÚ¤êÂØ¤¨¤Þ¤·¤¿¡£
  • ÊÌÅӥ֥饦¥¶¤ÇɬÍפʥڡ¼¥¸¤ò³«¤¤¤Æ¤ª¤­¡¢¥Ñ¥ï¥Ý¤È¥Ö¥é¥¦¥¶¤òÀÚ¤êÂØ¤¨¤Ê¤¬¤éȯɽ¤·¤¿¤¿¤á¡¢²èÁü¤ÎÎà¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
  • ÀµÄ¾SDLÁÒ¸ËÈ֥ͥ¿¤Ë¤Ç¤â¤·¤Æ¤ª¤±¤Ð¤è¤«¤Ã¤¿¤Ê¤¢¤È»×¤Ã¤¿¤³¤È¤Ç¤¢¤ê¤Þ¤·¤¿¡£
  • ¤¢¤È¡¢È¯É½Á°¤Ë¥¹¥¿¥Ã¥Õ¤ÎÊý¤«¤é¡Ø´ÊÊó¸¶Îϡ٤Ȥ¤¤¦¥×¥ì¥¼¥ó¤Î¥Ï¥¦¥Ä¡¼ËÜ¡ÊÃø¼Ô¥µ¥¤¥óÆþ¤ê¡Ë¤ò¤¤¤¿¤À¤­¤Þ¤·¤¿¡£¤Þ¤À¤¶¤Ã¤¯¤ê¤Ê¤¬¤á¤¿¤À¤±¤Ç¤¹¤¬¡¢ÂæÏѸì¤Î¶µºà¤È¤·¤Æ¤·¤Ã¤«¤êÊÙ¶¯¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£

¸òή¤Þ¤ï¤ê

  • YAPC¤Ç¤ªÆëÀ÷¤ß¤Î¤ß¤Ê¤µ¤ó¤Ï¤½¤ì¤¾¤ì¤ª¸µµ¤¤½¤¦¤Ç¤¢¤ê¤Þ¤·¤¿¡£
  • gugod¤«¤é2ǯ±Û¤·¤Î²ÝÂê¤Ë¤Ä¤¤¤Æ¼ÁÌä¤ò¼õ¤±¤¿¤Î¤ÇCPAN Deps¤ò¾Ò²ð¤·¤Æ¤­¤Þ¤·¤¿¡£¤Þ¤¿¡¢Win32¸þ¤±¤Îperlbrew¤Ë¤Ä¤¤¤Æ¤â¾¯¤·ÏäòµÍ¤á¤Æ¤ß¤Þ¤·¤¿¡£¸å¼Ô¤Ï´Ä¶­ÊÑ¿ô¤Þ¤ï¤ê¤Î°·¤¤¤ò¤â¤¦¾¯¤·¸¡Æ¤¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤¬¡¢¤¤¤º¤ì¤â¤½¤Î¤¦¤Á¤ª¤â¤·¤í¤¤À®²Ì¤¬¸«¤é¤ì¤ë¤³¤È¤È»×¤¤¤Þ¤¹¡£
  • hcchien¤¬Íèǯ¤Ï³¤³°ÁȤμþÍ·¤Î¤·¤ä¤¹¤µ¤ò¹Íθ¤·¤ÆYAPC::Asia¤ÈƱ»þ´ü¤Ë³«ºÅ¤·¤¿¤¤¤È¤¤¤¦Ïäò¤·¤Æ¤¤¤Þ¤·¤¿¡£

OSDCÁ´ÈÌ

  • OSDC²ñ¾ì¤Ï¤¢¤¤¤«¤ï¤é¤º¤Îendless food¤Ç¤·¤¿¡£
  • ¤¢¤È¡¢½àÈ÷¤äÊҤŤ±¤Î¼êºÝ¤Î¤è¤µ¤â°õ¾ÝŪ¤Ç¤·¤¿¡£
  • ¼Õ¼Õ¡¢hcchien!

¤½¤Î¾

  • ¤¢¤¤¤Ë¤¯Å·¸õ¤Ë¤Ï·Ã¤Þ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£
  • ¾¾»³¶õ¹Á¤Ç¥×¥ê¥Ú¥¤¥É¤ÎSIM¥«¡¼¥É¤òĴ㤷¤¿¤Î¤Ï¤è¤«¤Ã¤¿¤â¤Î¤Î¡¢¥Ç¡¼¥¿ÄÌ¿®ÍѤΥÁ¥ã¡¼¥¸¤ò˺¤ì¤ÆÍâÄ«ºÆÅÙ¶õ¹Á¤Ë¹Ô¤¯¤Ï¤á¤Ë¡£±¿Å¾Ìȵö¾Ú¤¬¤Ê¤¤¤È¤³¤¦¤¤¤¦¤È¤­ÉÔÊØ¤Ç¤¹¤Í¡£
  • ¼ê¸µ¤Ë¥»¥Ö¥ó¥¤¥ì¥Ö¥ó¤Î¥ì¥·¡¼¥È¤¬4Ëç¤â¤¢¤ë¤Î¤¬»Äǰ¤Ç¤Ê¤ê¤Þ¤»¤ó¡£

2012/04/08

¢£ Perl QA Hachathon 2012¤Ë»²²Ã¤·¤Æ¤­¤Þ¤·¤¿

Êó¹ð¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¡¢2012ǯ3·î30Æü¤«¤é4·î1Æü¤Ë¤«¤±¤Æ¡¢¥Ñ¥ê¤Î¥·¥Æ²Ê³Ø»º¶ÈÇîʪ´Û¤Ç³«ºÅ¤µ¤ì¤¿Perl QA Hackathon 2012¤Ë»²²Ã¤·¤Æ¤­¤Þ¤·¤¿¡£º£²ó¤Î¥¤¥Ù¥ó¥È¤Ç¤ÏÅϹÒÈñ¤«¤é¸½ÃϤǤνÉÇñÈñ¡¢²ñ¾ì¤Ç¤ÎÄ«¿©¡¢Ãë¿©¡¢¤½¤·¤Æ²ñ´üÃæ¤Îͼ¿©¡áº©¿Æ²ñ¤ÎÈñÍѤ˻ê¤ë¤Þ¤Ç¡¢¤¢¤ê¤¬¤¿¤¤¤³¤È¤Ë¤¹¤Ù¤Æ¥¹¥Ý¥ó¥µ¡¼Íͤ«¤é¤Î½Ð»ñ¤ÇÏŤäƤ¤¤¿¤À¤­¤Þ¤·¤¿¡£¼ý»Ù¤Î³µÍפˤĤ¤¤Æ¤Ï°ÊÁ°¤«¤é¥µ¥¤¥È¾å¤Ë¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢²áµîºÇÂ絬ÌϤȤʤä¿¥¤¥Ù¥ó¥È¤ò»Ù¤¨¤Æ¤¯¤À¤µ¤Ã¤¿±¿±Ä¥Á¡¼¥à¤ª¤è¤Ó´ë¶È¡¦ÃÄÂÎ¥¹¥Ý¥ó¥µ¡¼¤Î³§ÍÍ¡ÊCité des sciences & de l¡Çindustrie¡¢Diabolocom¡¢Dijkmat¡¢DuckDuckGo¡¢Dyn¡¢Freeside Internet Services¡¢Hedera Technology¡¢Jaguar Network¡¢Shadowcat Systems Limited¡¢SPLIO¡¢TECLIB¡Ç¡¢Weborama¡¢$foo Magazine¡¢Enlightened Perl Organisation¡¢Mongueurs de Perl¡Ë¡¢¤Þ¤¿¸Ä¿Í¥¹¥Ý¥ó¥µ¡¼¤Ë¤Ê¤Ã¤Æ¤¯¤À¤µ¤Ã¤¿Laurent Boivin¡¢ËÒ ÂçÊå (lestrrat)¡¢Syohei Yoshida¡¢Tomohiro Hosaka¡¢¶áÆ£²ÅÀã¡¢Franck Cuny¡¢Chad Davis¡¢Karen Pauley¡¢²ÃÆ£ ÆØ (Ktat)¡¢Neil Bowers¡¢Prakash Kailasa¡¢Mark Keating¡¢Martin Evans¤Î³Æ»á¤Ë¤¢¤é¤¿¤á¤Æ¤ªÎ鿽¤·¾å¤²¤Þ¤¹¡£¤ª¤«¤²¤µ¤Þ¤ÇÂçÊÑÍ­°ÕµÁ¤Ê»°Æü´Ö¤ò²á¤´¤¹¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£

°Ê²¼¡¢°ìÉô̤³ÎÄê¤ÎÍ×ÁǤ⤢¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤ÎÀ®²Ì¤È»Äºî¶È¤Ê¤É¤Ë¤Ä¤¤¤Æ´Êñ¤Ë¤Þ¤È¤á¤Æ¤ª¤­¤Þ¤¹¡£

CPANTS¥×¥í¥¸¥§¥¯¥È¤Î¸½¾õÇİ®¤È¥ê¥Ý¥¸¥È¥êÅù¤ÎÀ°Íý

°ÊÁ°¤Îµ­»ö¤Ë¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢»ä¤Ïº£²ó¤ª¤â¤ËCPANTS¥µ¥¤¥È¡Ê²áµî¿ôǯYAPC¤ÎLT¤Çȯɽ¤·¤Æ¤¤¤ë¥é¥ó¥­¥ó¥°¤Î¤â¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¡Ë¤Þ¤ï¤ê¤Î¥á¥ó¥Æ¥Ê¥ó¥¹¤ò¤·¤Ë¹Ô¤­¤Þ¤·¤¿¡£¤¿¤À¡¢¤³¤Î¥×¥í¥¸¥§¥¯¥È¡¢¼Â¤Ï»ä¤â¤­¤Á¤ó¤ÈÇİ®¤Ç¤­¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤ä¤éºòǯVienna.pmÆâÉô¤Ç¹Ô¤ï¤ì¤¿¤é¤·¤¤´ÉÍý¿Í¤Î°Ü¹Ô¤¬½½Ê¬¤Ë¼þÃΤµ¤ì¤Æ¤ª¤é¤º¡¢É¬Íפʸ¢¸Â°Ñ¾ù¤Ê¤É¤â¹Ô¤ï¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤¿¤á¡¢ÆÈ¼«¤ÎȯŸ¤ò¤È¤²¤¿¥ê¥Ý¥¸¥È¥ê¤¬Ê£¿ô·ÏÅý¸ºß¤·¤Æ¤¤¤ë¾õÂ֤ˤʤäƤ¤¤Þ¤·¤¿¡Ê»ä¤â²áµî¤Î¥³¥ß¥Ã¥È¤Ê¤É¤«¤é¤ª¤«¤·¤Ê¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¤ï¤«¤Ã¤Æ¤¤¤¿¤Î¤Ç¡¢¼«Ê¬¤Ç¥µ¥¤¥È¤òΩ¤Á¾å¤²¤ëºÝ¤âËܲȤȤª¤Ü¤·¤­¤È¤³¤í¤«¤é¥Õ¥©¡¼¥¯¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÊÌÅÓ¼«Á°¤Î¥µ¡¼¥Ð¤Ë¥×¥é¥¤¥Ù¡¼¥È¥ê¥Ý¥¸¥È¥ê¤òΩ¤Æ¤Æ¡¢¤½¤Á¤é¤Çºî¶È¤·¤Æ¤¤¤Þ¤·¤¿¡Ë¡£º£²óÅö»ö¼Ô¤Î¤Ò¤È¤ê¤Ç¤¢¤ëdaxim¤³¤ÈLars Dieckow»á¤¬¤¤¤é¤·¤Æ¤¢¤ëÄøÅÙÍͻҤ¬¤ï¤«¤Ã¤¿¤Î¤Ç¡¢¼ê¸µ¤Î¥ê¥Ý¥¸¥È¥ê¤È»á¤Î¥ê¥Ý¥¸¥È¥ê¤Î´Ö¤Çóòó÷¤¬À¸¤¸¤Æ¤¤¤¿Éôʬ¤ò½¤Àµ¤·¤¿¤Û¤«¡¢¤³¤ÎȾǯ´Ö¥µ¥¤¥È¤òÍî¤È¤µ¤º±¿±Ä¤·¤Æ¤­¤¿¼ÂÀÓ¤«¤écpants.perl.org¤Î¥ê¥À¥¤¥ì¥¯¥ÈÀè¤òÀµ¼°¤Ë¤³¤Á¤é¤Î¥µ¡¼¥Ð¤Ë¸þ¤±¤Æ¤¤¤¿¤À¤¯¤Ê¤É¤·¤Æ¡¢¾¯¤·¤º¤Ä¾õ¶·¤ÎÀ°Íý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£¤¿¤À¡¢¸¢¸Â°Ñ¾ù¤Ê¤É¤ÎÅÀ¤Ç¤Ï¤Þ¤À³ÆÊýÌ̤ؤÎÄ´À°¤¬ºÑ¤ó¤Ç¤¤¤Ê¤¤Éôʬ¤¬¤¢¤ë¤Û¤«¡¢CPANTS¤È¤ÏÊ̤Ëcpantesters.org¤ÎÊý¤ò´ÉÍý¤µ¤ì¤Æ¤¤¤ëBarbie»á¤«¤é¥µ¡¼¥Ð¡¿¥ß¥é¡¼Ä󶡤ΤªÏä⤤¤¿¤À¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢Á´ÂΤÎή¤ì¤¬³ÎÄꤹ¤ë¤Þ¤Ç¤Ë¤Ï¤â¤¦¾¯¤·»þ´Ö¤¬¤«¤«¤ê¤½¤¦¤Ç¤¹¡£

acme.cpanauthors.org¤Î²þ½¤

Perl¤Î¥Þ¡¼¥±¥Æ¥£¥ó¥°³èư¤Î°ì´Ä¤È¤·¤Æ¡¢¤³¤Î¤È¤³¤í¿¤¯¤ÎPerl´ØÏ¢¥µ¥¤¥È¤¬¥ê¥Ë¥å¡¼¥¢¥ë¤·¤Æ¤¤¤ë¤È¤¤¤¦Ïäò°ÊÁ°¤É¤³¤«¤Ç¤·¤¿¤«¤È»×¤¤¤Þ¤¹¤¬¡¢2005ǯ¤«¤é¤Û¤È¤ó¤É¥ê¥Ë¥å¡¼¥¢¥ë¤é¤·¤¤¤â¤Î¤¬¤Ê¤«¤Ã¤¿CPANTS¤Î¥µ¥¤¥È¤â¡¢¥³¡¼¥É¡¢¸«±É¤¨¤È¤âÁêÅö¸Å¤á¤«¤·¤¤¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤¿¤á¡¢¤Þ¤º¤Ï¥ê¥Ë¥å¡¼¥¢¥ë¤ÎÁ°Ãʳ¬¤È¤·¤Æ¼«Ê¬¤Î¼«Í³¤Ë¤Ê¤ëacme.cpanauthors.org¤ò²þ½¤¤·¤Æ¡¢CPANTS¥µ¥¤¥È¤Î¿¤¯¤ÎÍ×ÁǤò´Þ¤á¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Þ¤·¤¿¡£¤³¤Îºî¶È¤Î°ìÉô¤Ï°ÊÁ°Hachioji.pm¤Î¥Ï¥Ã¥«¥½¥ó¤Ê¤É¤Ç¤â¹Ô¤Ã¤Æ¤¤¤¿¤â¤Î¤Ç¡¢Â礭¤Ê¤È¤³¤í¤Ç¤ÏCSS¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òYAML3¤«¤éBootstrap¤ËÊѹ¹¤·¤¿¤Û¤«¡¢CPANTS¤Î¥µ¥¤¥È¤Ç¤Ï¥µ¡¼¥Ð¾å¤ÎÆÃÄê¥Õ¥©¥ë¥À¤Ë²èÁü¥Õ¥¡¥¤¥ë¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤¿¥°¥é¥ÕÎà¤òHighcharts¤È¤¤¤¦JS¤Î¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤ÆÆ°Åª¤ËÀ¸À®¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤¿¤ê¡¢²èÌ̤ÎÀ¸À®¤ËɬÍפʥ¯¥¨¥ê¤¬½½Ê¬¤ËºÇŬ²½¤Ç¤­¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë¤¿¤á¤Î¥Æ¥¹¥È¤ò½ñ¤¤¤¿¤ê¤·¤Þ¤·¤¿¡Ê°ìÉôÎã³°¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢´ðËÜŪ¤Ë¤¹¤Ù¤Æ¤ÎSQLʸ¤Ë¤Ä¤¤¤Æ¥Æ¥¹¥È¼Â¹Ô»þ¤ËEXPLAINʸ¤Î·ë²Ì¤ò¥­¥ã¥×¥Á¥ã¤·¤Æ¡¢º÷°ú¤òÍøÍѤ·¤Æ¤¤¤Ê¤¤SCAN TABLE¤¬½Ð¤Æ¤­¤¿¤é¥¨¥é¡¼¤òÅǤ¯¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡Ë¡£¤³¤ì¤é¤ÎÊѹ¹¤Ï¡¢ºÙ¤«¤Ê¤È¤³¤í¤Ç¤Þ¤ÀÄ´À°¤¬É¬Íפʤâ¤Î¤Î¡¢¤ª¤ª¤à¤Í¹¥°ÕŪ¤Ë¼õ¤±Æþ¤ì¤é¤ì¤¿¤Î¤Ç¡¢º£¸åCPANTS¦¤Ë¤âÈ¿±Ç¤·¤Æ¤¤¤¯Í½Äê¤Ç¤¹¡£

¤Þ¤¿¡¢¸½ºß¤ÎModule::CPANTS::Site¤Ï¤Û¤È¤ó¤É¤Î½èÍý¤¬¥³¥ó¥È¥í¡¼¥é¤ÈTT¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ë½ñ¤«¤ì¤Æ¤¤¤ëŵ·¿Åª¤Ê¸Å¤¤¥¿¥¤¥×¤Î¥¢¥×¥ê¤Ê¤Î¤Ç¡¢º£¸å¤Î°Ý»ý´ÉÍý¤Î¤¿¤á¤Ë¤â¡¢¤Þ¤¿¹â®²½¡¦·ÚÎ̲½¤Î¤¿¤á¤Ë¤â¡¢½èÍý¤Î¿¤¯¤Ï³°¤Ë½Ð¤·¤Æ¡¢¥­¥ã¥Ã¥·¥å¤ò¤«¤Þ¤»¤¿¤ê¡¢¥Æ¥¹¥È²Äǽ¤Ê¾õÂ֤ˤ·¤Æ¤ª¤­¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢º£²ó¤Î¥Ï¥Ã¥«¥½¥ó¤Ç¤ÏCPAN¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹¤Þ¤ï¤ê¤Ç¤µ¤Þ¤¶¤Þ¤Ê¿ÊŸ¤¬¤¢¤Ã¤¿¤è¤¦¤Ê¤Î¤Ç¡¢¤½¤ÎÊÕ¤â¤Õ¤Þ¤¨¤ÆCPANTS³°Éô¤ÎAPI¤òÍøÍѤ·¤¿¤ê¡¢¤¤¤Þ¤ÏAcme::CPANAuthors¥â¥¸¥å¡¼¥ëÍѤËÊÌΩ¤Æ¤·¤Æ¤¤¤ëKwaliteeÀìÍѤÎAPI¥µ¡¼¥Ð¤òÀ°Íý¡¦³È½¼¤¹¤ë¤³¤È¤â¸¡Æ¤¤·¤Æ¤¤¤Þ¤¹¡£

±¿ÍѾå¤ÎºÙ¡¹¤È¤·¤¿ÌäÂê¤Î½¤Àµ

¤½¤Î¾¡¢²áµî¿ôǯ´Ö¤ÎDBIC¤ÎÊѲ½¤ä¡¢Perl¤Ë¥Ð¥ó¥É¥ë¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤ÏÊ̤ËCPAN¤ËºÇ¿·ÈǤ¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤è¤¦¤ÊÆó½ÅÀ¸³è¤òÁ÷¤ë¥â¥¸¥å¡¼¥ë¤ÎÁý²Ã¡¢¤Û¤«¤Î¥â¥¸¥å¡¼¥ë¤Ë¥â¥ó¥­¡¼¥Ñ¥Ã¥Á¤ò¤¢¤Æ¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤ò¤¦¤Þ¤¯Ê¬ÀϤǤ­¤Ê¤¤ÉÔ¶ñ¹ç¤Ê¤É¤Ë¤è¤Ã¤Æ¡¢Kwalitee¤ÎʬÀϤò¹Ô¤¦¥¹¥¯¥ê¥×¥È¤¬ÂçÎ̤ηٹð¤òȯ¤·¤Æ¤¤¤¿ÌäÂê¤ò²ò¾Ã¤·¤¿¤ê¡¢XSSÂкö¤ò¹Ô¤Ã¤¿¤ê¡¢¤¢¤ë¤¤¤Ïshebang¤¬¸ÇÄꤵ¤ì¤Æ¤¤¤¿¤¿¤áperlbrew´Ä¶­²¼¤Ç¤¦¤Þ¤¯Æ°¤«¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿ÌäÂê¤ò²ò·è¤·¤¿¤ê¤È¤¤¤Ã¤¿¡¢¤³¤ÎȾǯ´Ö¤Ëµ¤¤¬¤Ä¤¤¤¿±¿ÍѾå¤Î¤µ¤Þ¤¶¤Þ¤ÊÌäÂê¤ò²ò·è¤¹¤ëºî¶È¤â¹Ô¤¤¤Þ¤·¤¿¡£

¤â¤Ã¤È¤â¡¢»þ´Ö¤â¸Â¤é¤ì¤Æ¤¤¤¿¤³¤È¤«¤é¡¢´Ä¶­¹½ÃÛ»þ¤ËɬÍפʤâ¤Î¤ÏÊ̤Ȥ·¤Æ¡¢¼«Ê¬¤Ò¤È¤ê¤ÎȽÃǤǽ¤Àµ¤Ç¤­¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¤Ê¤ë¤Ù¤¯¸å²ó¤·¤Ë¤·¡¢¸½¾õ¤Î¥µ¥¤¥È¤ÎÌäÂêÅÀ¤È²þÁ±ÊýË¡¤ò»ØÅ¦¡¦Ä󰯤·¤¿¤¦¤¨¤Çdaxim»á¤é¤¬´üÂÔ¤¹¤ëưºî¤ò³Îǧ¤¹¤ë¤³¤È¤Ë½ÅÅÀ¤òÃÖ¤¤¤Æ¤¤¤¿¤¿¤á¡¢¤³¤ì¤é¤ÎÀ®²Ì¤Î¿¤¯¤Ï¤Þ¤ÀÌܤ˸«¤¨¤ë·Á¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£º£¸å¥¯¥¨¥êºÇŬ²½¤Ê¤É¤È¤¢¤ï¤»¤Æ½ç¼¡¼è¤ê¹þ¤ó¤Ç¤¤¤¯Í½Äê¤Ç¤¹¡£

Kwalitee¤ÎºÎÅÀ´ð½à¤ÎÄ´À°

º£²ó¤Û¤«¤ÎÌäÂê¤Ë»þ´Ö¤ò¤È¤é¤ì¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤â¤¢¤Ã¤Æ¡¢Kwalitee¤ÎºÎÅÀ´ð½à¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤Þ¤êÆÍ¤Ã¹þ¤ó¤ÀÏäò¤Ç¤­¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤·¤Ð¤·¤ÐÍ×˾¤Ë¤¢¤²¤é¤ì¤Æ¤¤¤¿strict/warnings¤Þ¤ï¤ê¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤Ï¶áÆüÃæ¤Ë½¤ÀµÈǤ¬CPAN¤Ë¾å¤¬¤ë¤Ï¤º¤Ç¤¹¡£¸Ä¿ÍŪ¤Ë¤ÏMoose¤ä¤½¤ÎÃç´Ö¤¿¤Á¤Ï¤È¤â¤«¤¯¡¢Dancer¤äMojo::Base¤Î¸ºß¤Þ¤Ç¹Íθ¤ËÆþ¤ì¤ë¤Î¤Ï¤É¤¦¤«¤È»×¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡Ê¤½¤ó¤Ê¤³¤È¤ò¤·¤Æ¤¤¤¿¤éSpiffy¤Þ¤Ç¹Íθ¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¯¤Ê¤ë¤¸¤ã¤Ê¤¤¤«¤È¸À¤Ã¤¿¤é¡¢ËÜÅö¤ËSpiffy¤Þ¤Ç¥ê¥¹¥È¤ËÄɲäµ¤ì¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡Ë¡¢¤³¤ÎÊդϤޤ¿µ¡²ñ¤ò¤¢¤é¤¿¤á¤ÆµÄÏÀ¤ò¿¼¤á¤é¤ì¤ì¤Ð¤è¤¤¤Ê¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£

¤½¤Î¾

Åö½é¤ÏCPANTS¤Î¤Û¤«¤Ë¤â¡¢ÅϹÒÁ°¤Ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤äIRC¤Ç¤¤¤¯¤Ä¤«Ì䤤¹ç¤ï¤»¤ò¼õ¤±¤Æ¥Ú¥ó¥Ç¥£¥ó¥°¤Ë¤·¤Æ¤¤¤ë»ö¹à¤¬¤¢¤Ã¤¿DBD::SQLite¡Ê¤ä¡¢Í¥Àè½ç°Ì¤ÏÄ㤫¤Ã¤¿¤â¤Î¤Îppmminus¡Ë¤Ë¤Ä¤¤¤Æ¤â¤¤¤¯¤é¤«ºî¶È¤ò¤·¤è¤¦¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¤³¤Á¤é¤Ï»þ´Ö¤ÈÂÎÎϤ¬Â­¤ê¤º¡¢¥Ñ¥Ã¥Á¤ò¤Á¤é¤Á¤éÆÉ¤ó¤À¤¯¤é¤¤¤Ç¤Û¤È¤ó¤É¼ê¤Ä¤«¤º¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£

¤¢¤È¡¢¤³¤ì¤Ï¼«Ê¬¤¬ºî¶È¤·¤¿¤³¤È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢miyagawa¤µ¤ó¤Ëcpanminus¤Î¸Å¤¤¥Á¥±¥Ã¥È¤ò¸«¤Æ¤â¤é¤¤¡¢¥Æ¥¹¥È¤Î¤ß¤Ç¤­¤ë¥ª¥×¥·¥ç¥ó¤¬Íߤ·¤¤¤È¿å¤ò¸þ¤±¤¿¤È¤³¤í¡ÊDBD::SQLite¤ä¤½¤ì¤Ë°Í¸¤·¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Î¥á¥ó¥Æ¤ò¤¹¤ëºÝ¤Ë¤ÏÌäÂê¤ò¤¢¤Ö¤ê½Ð¤¹¤¿¤á¤Ë¤·¤Ð¤·¤ÐÊ£¿ô¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¥Æ¥¹¥È¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¤¹¡Ë¡¢¤¢¤Ã¤È¤¤¤¦´Ö¤Ë¼ÂÁõ¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿¡£ºÙ¤«¤ÊÀ©Ìó¤Ë¤Ä¤¤¤Æ¤Ïmiyagawa¤µ¤ó¤Îµ­»ö¤ò¤´Í÷¤¤¤¿¤À¤¯¤È¤·¤Æ¡¢¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£½õ¤«¤ê¤Þ¤·¤¿¡£> miyagawa¤µ¤ó

¥Ï¥Ã¥¯°Ê³°¤ÎÍ×ÁǤˤĤ¤¤Æ

¥Ï¥Ã¥«¥½¥ó¤ÎÂé¸ïÌ£¤Ï¥Ï¥Ã¥¯¤À¤±¤Ë¤¢¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤È¤ê¤ï¤±QA¥Ï¥Ã¥«¥½¥ó¤Î¤è¤¦¤Ë¤Õ¤À¤ó¤Ï°Û¤Ê¤ë¥¿¥¤¥à¥¾¡¼¥ó¤ÇÀ¸³è¤·¤Æ¤¤¤ë¥Ï¥Ã¥«¡¼¤¿¤Á¤¬°ìƲ¤Ë²ñ¤¹¤ë¥¤¥Ù¥ó¥È¤Î¾ì¹ç¡¢Ä¹Î¹¤È»þº¹¤Ü¤±¤ÇÈè¤ìÀڤ俾õÂ֤ǹԤ¦¥³¡¼¥Ç¥£¥ó¥°¤è¤ê¤â¡¢²¿µ¤¤Ê¤¤²ñÏä䡢¤½¤³¤«¤éÇÉÀ¸¤¹¤ë¤¢¤ì¤³¤ì¤ÎÊý¤¬·ë²ÌŪ¤ËÂ礭¤Ê°ÕÌ£¤ò»ý¤Ä¤³¤È¤â¾¯¤Ê¤¯¤Ê¤¤¤â¤Î¤Ç¤¹¡£¤½¤³¤Ç°Ê²¼¡¢¥³¡¼¥Ç¥£¥ó¥°¤È¤ÏľÀÜ´Ø·¸¤¢¤ê¤Þ¤»¤ó¤¬¡¢º£²ó¤Î¥Ï¥Ã¥«¥½¥ó¤Ç¤É¤ó¤ÊÊý¡¹¤ÈÏäò¤·¤¿¤«¤òŬÅö¤Ë¾Ò²ð¤·¤Æ¤ß¤Þ¤¹¡£

YAPC::Asia¤ËÍè¤Æ¤¯¤ì¤¿¥Ï¥Ã¥«¡¼¤¿¤Á¤È¤ÎºÆ²ñ

º£²ó¤ÎQA¥Ï¥Ã¥«¥½¥ó¤Ë¤Ï¡¢miyagawa¤µ¤ó¤Î¤Û¤«¡¢2008ǯ¤ÎYAPC::Asia¤ËÍè¤Æ¤¯¤ì¤¿Michael Schwern»á¡¢2009ǯ¤ÎYAPC::Asia¤ËÍè¤Æ¤¯¤ì¤¿Florian Ragwitz»á¡¢¤½¤·¤Æºòǯ2011ǯ¤ÎYAPC::Asia¤ËÍè¤Æ¤¯¤ì¤¿Ricardo Signes»á¤â»²²Ã¤·¤Æ¤¤¤Þ¤·¤¿¡£º£²ó¤Ï»²²Ã¿Í¿ô¤â¿¤¯¡¢º©¿Æ²ñ¤Ê¤É¤Ç¤â¤¢¤Þ¤ê¶á¤¯¤ÎÀʤ˺¤뤳¤È¤¬¤Ê¤«¤Ã¤¿¤¿¤á°§»¢ÄøÅÙ¤ÎÏä·¤«¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢ºÇ½ªÆü¤Îº©¿Æ²ñ¸å¤Ë¤ÏFlorian Ragwitz»á¤é¤Î¸å¤Ë¤Ä¤¤¤Æ¥Ñ¥ê»ÔÆâÃæ±ûÉô¤òÊ⤭²ó¤ê¡¢¥Ð¡¼¤ÇSuze¡ÊºÇ¶á¤Ï¥Ñ¥ê¤Ç¤â¤¢¤Þ¤ê¹¥¤ó¤Ç°û¤à¿Í¤Ï¤¤¤Ê¤¤¤Î¤À¤½¤¦¤Ç¡¢¤Û¤«¤Î¤ß¤Ê¤µ¤ó¤Ï¥Ó¡¼¥ë¤Ê¤É¤ò°û¤ó¤Ç¤¤¤Þ¤·¤¿¡Ë¤ò°ìÇÕ°û¤ó¤Ç¥Û¥Æ¥ë¤Ëµ¢¤Ã¤Æ¤­¤¿¤¢¤È¡¢º£Å٤ϡʤʤ¼¤«¡Ë¥À¥¤¥¹¤È¥­¥ã¥é¥¯¥¿¡¼¥·¡¼¥È¤ò»ý¤Á¹ç¤ï¤»¤Æ¤¤¤¿Ricardo Signes»á¤¬¥²¡¼¥à¥Þ¥¹¥¿¡¼¤ò¤Ä¤È¤á¤ëD&D¤Î¥»¥Ã¥·¥ç¥ó¤Ë¤ª¼ÙË⤵¤»¤Æ¤â¤é¤¦¤Ê¤É¤·¤Æµì¸ò¤ò¤¢¤¿¤¿¤á¤Æ¤­¤Þ¤·¤¿¡£¥²¡¼¥à¤Ë¤Ä¤¤¤Æ¤ÏÍâÄ«Á᤯µ¯¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¤Î¤ÇÅÓÃæ¤ÇΥæ¤µ¤»¤Æ¤â¤é¤¤¤Þ¤·¤¿¤¬¡¢20ǯ¤Ö¤ê¤¯¤é¤¤¤Î¤³¤È¤Ç¤È¤Æ¤â²û¤«¤·¤«¤Ã¤¿¤Ç¤¹¡£¤Þ¤¿¡¢Ricardo Signes»á¤Î¥Þ¥¹¥¿¥ê¥ó¥°¤â¤È¤Æ¤â¾å¼ê¤Ç¡¢º£²ó»ä¤¬Ã´Åö¤·¤¿¤Î¤Ï½ªÈפ˸«¤»½ê¤¬½Ð¤Æ¤¯¤ë¥¿¥¤¥×¤Î¥­¥ã¥é¥¯¥¿¡¼¤À¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤â¤¦¾¯¤·»þ´Ö¤Î;͵¤¬¤¢¤ì¤Ð¤â¤Ã¤È¤â¤Ã¤È³Ú¤·¤á¤¿¤À¤í¤¦¤Ë¤È»Äǰ¤Ë»×¤Ã¤¿¤³¤È¤Ç¤¹¡Êº£Ç¯¤ÎYAPC::NA¤Ë¹Ô¤«¤ì¤ëÊý¤Ï6·î14ÆüÌÚÍËÆü18»þ¤«¤é¤ÎcPanel Game Room¤Ç¤ª¤½¤é¤¯»á¤Î¥»¥Ã¥·¥ç¥ó¤ò¸«¤é¤ì¤ë¤Ç¤·¤ç¤¦¤«¤é¡¢¤½¤¦¤¤¤¦¤Î¤¬¤ª¹¥¤­¤ÊÊý¤Ï¤¼¤Ò¡Ë¡£

Mongueurs de Perl

º£²ó¤Î¥Ï¥Ã¥«¥½¥ó¤Ç¤Ï¡¢¤â¤í¤â¤í¤ò¼è¤ê»ÅÀڤäƤ¯¤À¤µ¤Ã¤¿Elbeho¤³¤ÈLaurent Boivin»á¤äBooK¤³¤ÈPhilippe Bruhat»á¡ÊGit::Repository¤äHTTP::Proxy¤Ê¤É¤ò½ñ¤¤¤Æ¤¤¤ëÊý¡Ë¤Ê¤É¡¢¥Õ¥é¥ó¥¹¤Î¿¤¯¤Î¥Ï¥Ã¥«¡¼¤¿¤Á¤È¤ªÏä·¤¹¤ëµ¡²ñ¤â»ý¤Æ¤Þ¤·¤¿¡£ÆóÆüÌܤκ©¿Æ²ñ¤ÎÁ°¤Ë¤Ï¡¢½éÆü¤Îº©¿Æ²ñ¤ÇÀʤ¬¶á¤¯¤Ë¤Ê¤Ã¤¿Olivier Mengue»á¤ËͶ¤ï¤ì¤Æ¡¢¥Û¥Æ¥ë¤Î¶á¤¯¤Î¥«¥Õ¥§¤Ç¡ÖPerl Hacks¡×¤Î¶¦Ãø¼Ô¤Ê¤É¤È¤·¤ÆÃΤé¤ì¤ëCurtis Poe»á¤ä¡¢Perl 5¤Î¥Ñ¥ó¥×¥­¥ó·Ð¸³¤â¤¢¤ëRafael Garcia-Suarez»á¡¢Variable::Magic¤Ê¤É¤Î¥â¥¸¥å¡¼¥ë¤ÇÃΤé¤ì¤ëVincent Pit»á¤Ê¤É¹¤¿¤ë¥á¥ó¥Ð¡¼¤È¤¤¤Ã¤·¤ç¤Ë¥Ó¡¼¥ë¤ò°û¤ß¡¢º©¿Æ²ñ¤Ç¤â¤¤¤í¤¤¤í¤Ê¤ªÏäòʹ¤«¤»¤Æ¤â¤é¤Ã¤¿¤Û¤«¡ÊVincent Pit»á¤¬¡ÖXS¤Ï¡Ê»á¤Î¸¦µæÂоݤǤ¢¤ë¡Ë¿ô³Ø¤è¤ê´Êñ¤À¤«¤é¡×¤È¸À¤Ã¤Æ¤¤¤¿¤Î¤¬¤È¤Æ¤â°õ¾ÝŪ¤Ç¤·¤¿¡Ë¡¢º©¿Æ²ñ¸å¤Ë¤Ï¥Û¥Æ¥ë¤Î¿©Æ²¤ÇBooK»á¤¬»ý»²¤·¤¿Chartreuse Verte¡ÊÄ̾ïÈǤ¬»°Ëܤˡ¢VEP¤¬ÆóËܤǤ·¤¿¤«¡£»ä¤È²¿ÅÙ¤«¥Ð¡¼¤Ë¹Ô¤Ã¤¿¤³¤È¤Î¤¢¤ëÊý¤Ï¤´Â¸¤¸¤Ç¤·¤ç¤¦¤¬¡¢ºÇ¸å¤ÎÄù¤á¤Ë¤è¤¯°û¤à¤È¤Æ¤â¹¥¤­¤Ê¤ª¼ò¤Î¤Ò¤È¤Ä¤Ç¤¹¡Ë¤òElbeho»á¤é¤È¤È¤â¤Ë¤¤¤¿¤À¤­¤Þ¤·¤¿¡£Elbeho»á¤ÏÆüËܤΤʤó¤È¤«¡Ê̾Á°¼ºÇ°¡Ë¤È¤¤¤¦¥°¥ë¡¼¥×¤¬¤È¤Æ¤â¤ª¹¥¤­¤Ê¤Î¤À¤½¤¦¤Ç¡¢º£Å٥衼¥í¥Ã¥Ñ¤Ë¹Ô¤¯¤È¤­¤Ï˺¤ì¤º¤Ë¤«¤Ð¤ó¤ÎÃæ¤ËCD¤ò°ì¡¢ÆóËçµÍ¤á¤Æ¤¤¤«¤Í¤Ð¤È»×¤Ã¤¿¤³¤È¤Ç¤¹¡£

¤½¤Î¾¤Î¹ñ¡¹¤Î¥Ï¥Ã¥«¡¼¤¿¤Á

º£²ó¤Ï»ä¤Î¤Û¤«¤Ë¤â¡¢¥¤¥ó¥É¤«¤éAlan Haggai Alavi»á¡Ê°ÊÁ°EPO¤ÎSend-a-Newbie¥×¥í¥°¥é¥à¤ÇYAPC::EU¤Ë»²²Ã¤µ¤ì¤¿Êý¡£´ü´ÖÃæ¤Ï¥ë¡¼¥à¥á¥¤¥È¤Ç¤â¤¢¤ê¤Þ¤·¤¿¡Ë¡¢¥Ö¥é¥¸¥ë¤«¤é¤Ïgaru¤³¤ÈBreno Oliveira»á¤¬»²²Ã¤·¤Æ¤¤¤Æ¡¢¤½¤ì¤¾¤ì¤Î¤ª¹ñ»ö¾ð¤Ê¤É¤ò¤¦¤«¤¬¤Ã¤¿¤Û¤«¡¢¤³¤ì¤Þ¤Ç¤Ë¤â¤¿¤Ó¤¿¤ÓDBIC¤ÈDBD::SQLite¤Î¶¶ÅϤ·¤ò¤·¤Æ¤¯¤À¤µ¤Ã¤Æ¤¤¤¿ribasushi¤³¤ÈPeter Rabbitson»á¤ä¡¢DuckDuckGo¤ÎT¥·¥ã¥Ä¤ò»ý¤Ã¤Æ¤­¤Æ¤¯¤À¤µ¤Ã¤Æ¤¤¤¿Getty¤³¤ÈTorsten Raudssus»á¡¢ºÇ½ªÆü¤Îº©¿Æ²ñ¤Ç¤ªÎ٤ˤʤä¿David Golden»á¡¢¤Þ¤¿ÆüËܤǤϤʤ¸¤ß¤¬¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¤¬½éÆü¤Îº©¿Æ²ñ¤Ç¤ªÎÙ¤ÎÀʤˤʤäưʹ߲¿¤«¤Èµ¤¤ò¸¯¤Ã¤Æ¤¯¤À¤µ¤Ã¤¿Wendy Van Dijk»á¤Ê¤É¡¢¤Û¤«¤Ë¤â¿¤¯¤ÎÊý¤Î¤ªÀ¤Ïäˤʤê¤Þ¤·¤¿¡£

ÀµÄ¾¤Ê¤È¤³¤í¡¢ÆÃ¤Ë¼«¸Ê¾Ò²ð¥¿¥¤¥à¤Ê¤É¤¢¤Ã¤¿¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç»²²Ã¼ÔÁ´°÷¤Î´é¤È̾Á°¤ò¤­¤Á¤ó¤ÈÇİ®¤Ç¤­¤¿¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤·¡¢²¿¿Í¤«¤ÎÊý¤È¤Ï¤Þ¤Ã¤¿¤¯¤ªÏ䷤ʤ¤¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¡¢¤½¤ÎÊÕ¤ÏÍßÄ¥¤ê¤¹¤®¤º¡¢¼¡²ó°Ê¹ß¡¢¤Þ¤¿µ¡²ñ¤¬¤¢¤ë¤È¤­¤Ë¤¢¤é¤¿¤á¤Æ¤ªÏäǤ­¤ì¤Ð¤¤¤¤¤Ê¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£

¥Ï¥Ã¥«¥½¥ó°Ê³°¤ÎÏÃ

º£²ó¤Ï¥¤¥Ù¥ó¥ÈÁ°Æü¤ÎͼÊý¤ËÅþÃå¡¢¥¤¥Ù¥ó¥ÈÍâÆü¤ÎÃë¤Ë½Ðȯ¤È¤¤¤¦¡¢¤ï¤ê¤Èµç¶þ¤Ê¥¹¥±¥¸¥å¡¼¥ë¤À¤Ã¤¿¤¿¤á¡¢½é¤á¤Æ¤Î¥è¡¼¥í¥Ã¥Ñ¡¢½é¤á¤Æ¤Î¥Ñ¥ê¤À¤È¤¤¤¦¤Î¤Ë´Ñ¸÷¤é¤·¤¤´Ñ¸÷¤Ï¤Û¤È¤ó¤É¤·¤Æ¤­¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢ÅþÃåÅöÆü¤ÎÌë¡¢¥Û¥Æ¥ë¤Ë¸þ¤«¤¦Á°¤Ë¶õ¹Á¤«¤é¤Î¥Ð¥¹Ä䤫¤é¤½¤ì¤Û¤É±ó¤¯¤Ê¤¤¾ì½ê¤Ë¤¢¤ëHarry's New York Bar¤Ç°ìÇÕ¤À¤±Bloody Mary¤ò°û¤ß¡Ê¤ªÌ£¤Ï¤µ¤Æ¤ª¤­¡¢¤ªÅ¹¤ÎÊ·°Ïµ¤¤ä¡¢ÆüËܤʤé¥Ô¥Ã¥¯¤Çɹ¤ò³ä¤ë¤È¤³¤í¡¢¤¢¤Á¤é¤Ç¤Ï¤¹¤ê¤³¤®¾õ¤Î¤â¤Î¤Çɹ¤ò³ä¤Ã¤Æ¤¤¤¿¤Î¤¬¶½Ì£¿¼¤«¤Ã¤¿¤Ç¤¹¡Ë¡¢µ¢¹ñÅöÆü¡¢Ä«°ìÈ֤ǥѥ󲰤˸þ¤«¤¤¡¢9»þ¤Ë³«¤¯¥¹¡¼¥Ñ¡¼¥Þ¡¼¥±¥Ã¥È¤Ë´ó¤Ã¤Æ¤ª¤ß¤ä¤²ÍѤÎÂ̲ۻҤòʪ¿§¤·¤Æ¤­¤¿¤Î¤¬¤½¤ì¤é¤·¤¤¤È¤³¤í¤Ç¤·¤ç¤¦¤«¡£¤â¤¦¾¯¤·½Ðȯ¤¬ÃÙ¤±¤ì¤Ð¤¤¤í¤¤¤í¤ªÅ¹¤â³«¤¤¤Æ¤¤¤¿¤Î¤Ç¤·¤ç¤¦¤¬¡¢µ¢¹ñľ¸å¤ËÎã¤Î˽É÷±«¤Ë´¬¤­¹þ¤Þ¤ì¤¿¤³¤È¤ò»×¤¨¤Ð¡¢ÍßÄ¥¤Ã¤Æ¤â¤¦¾¯¤·¸å¤ÎÊØ¤òÁªÂò¤·¤Æ¤¤¤¿¤é·ÐͳÃϤξ峤¤«¤éµ¢¤ì¤Ê¤«¤Ã¤¿¤Ç¤·¤ç¤¦¤«¤é¡¢·ë²ÌŪ¤Ë¤Ï¤è¤«¤Ã¤¿¤Î¤«¤Ê¤È»×¤¤¤Þ¤¹¡£

¥Õ¥é¥ó¥¹¸ì²ñÏäϤ«¤é¤­¤·¤Ç¡¢Bon jour.¤ÈMerci.¡¢Au revoir.°Ê³°¤ÏÁ´Éô±Ñ¸ì¤ÇÄ̤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¡¢¤½¤ì¤Ç¤âº£Å٤Ϥ·¤Ã¤«¤ê»þ´Ö¤ò¤Ä¤¯¤Ã¤ÆÍè¤Æ¤ß¤¿¤¤¤È»×¤Ã¤¿»ÍÇñÏ»Æü¤Îι¤Ç¤·¤¿¡£

2012/03/05

¢£ (pre) Hachioji.pm #14¤ÈFetchJS¤ÎÏÃ

8³äÊý½ñ¤­½ª¤¨¤ÆÊüÃÖ¤µ¤ì¤Æ¤¤¤¿¸¶¹Æ¤¬½Ð¤Æ¤­¤¿¤Î¤ÇޤêÉÕ¤±¤Æ¤ª¤¯¤Î´¬¡£

¤¹¤Ã¤«¤êÃÙ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¤¬¡¢(pre) Hachioji.pm #14¤Ë¹Ô¤Ã¤Æ¤­¤Þ¤·¤¿¡£º£²ó¤Ï¡Êº£²ó¤â¡©¡Ë¤®¤ê¤®¤ê¤Þ¤Ç»²²Ã¤Ç¤­¤ë¤«¤É¤¦¤«¤ï¤«¤é¤º¡¢¥Ï¥Ã¥«¥½¥ó¤Î¥Æ¡¼¥Þ¤¬Â¸ºß¤·¤Æ¤¤¤¿¤³¤È¤¹¤éÇİ®¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢ÆüÃæ¤Ï3·îËö¤ÎQA¥Ï¥Ã¥«¥½¥ó¤Ë¸þ¤±¤¿²¼½àÈ÷¤Î°ì´Ä¤È¤·¤ÆAcme::CPANAuthors¤Î¥µ¥¤¥È¤Î³È½¼¤ò¤·¤Ä¤Ä¡¢ËÜÊÔ¤ÎÊý¤Ç¤Ï¤½¤Î²áÄø¤Ç¤³¤µ¤¨¤¿¥Ä¡¼¥ë¤ÎÏäʤɤò¤·¤Æ¤­¤Þ¤·¤¿¡£¥µ¥¤¥È¤Ï¤¤¤Þ¤Î¤È¤³¤í¸ø³«¥ê¥Ý¥¸¥È¥ê¤Ë¤Ï¤¢¤²¤Æ¤ª¤é¤º¡¢¥Ï¥Ã¥«¥½¥ó¤ÎÀ®²Ì¤â¤Þ¤À¥Ö¥é¥ó¥Á¤ÎÃæ¤Ç½ÏÀ®Ãæ¤Ç¤¹¤¬¡¢¥Ä¡¼¥ë¤Ë¤Ä¤¤¤Æ¤Ïgithub¤Ë¤¢¤²¤Æ¤¢¤ë¤Î¤Ç¤³¤Á¤é¤Ë¤â´Êñ¤Ë½ñ¤¤¤Æ¤ª¤­¤Þ¤¹¡£

ºÇ¶áFetchJS¤È¤¤¤¦¥Ä¡¼¥ë¤ò½ñ¤¤¤Æ»È¤Ã¤Æ¤¤¤Þ¤¹¡£¼«Ê¬¤¬¥¦¥§¥Ö¥¢¥×¥ê¤ò½ñ¤¯¤È¤­¤Ë»È¤¦JS¤Î¥é¥¤¥Ö¥é¥ê¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤­¤Æ¥¢¥×¥ê¤ÎÀÅŪ¥Õ¥¡¥¤¥ëÃÖ¤­¾ì¤È¤ª¤Ü¤·¤­¾ì½ê¡Êpublic_html/static/...¤È¤«¡Ë¤ËŸ³«¤¹¤ë¤À¤±¤Î¤â¤Î¤Ç¤¹¤¬¡¢¥é¥¤¥Ö¥é¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¤Î°ã¤¤¤ò¥Æ¥¹¥È¤¹¤ë¤È¤­¤Ê¤É¡¢¤¤¤Á¤¤¤Á¸ø¼°¥µ¥¤¥È¤ò¥°¥°¤Ã¤Æ¡¢minify¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤òÍî¤È¤·¤Æ¤­¤Æ¡¢Å¸³«¤·¤Æ¡¢¸¡¾Ú¤¬ºÑ¤ó¤À¤éºÇ¸å¤Ëminify¤«¤±¤Æ¡Ä¡Ä¤È¤¤¤¦ºî¶È¤¬ÌÌÅݤˤʤäƤ­¤¿¤Î¤Ç¡¢¥³¥Þ¥ó¥É¤Ò¤È¤Ä¤ÇÍÑ»ö¤òºÑ¤Þ¤»¤é¤ì¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤¤¿¼¡Âè¡£

¤È¤ê¤¢¤¨¤º¸½¾õ¤Ç°Ê²¼¤Î¤è¤¦¤Ê¥µ¥Ö¥³¥Þ¥ó¥É¤¬»È¤¨¤Þ¤¹¡£jQuery UI¤Î¤è¤¦¤Ë¤È¤­¤É¤­»È¤Ã¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¤Þ¤ÀÂбþ¤¹¤ë¥³¥Þ¥ó¥É¤ò½ñ¤¤¤Æ¤¤¤Ê¤¤¤â¤Î¤â¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤·¡¢²áµî¤Î¥Ð¡¼¥¸¥ç¥ó°ìÍ÷¤È¤«¡¢¥À¥¦¥ó¥í¡¼¥É»þ¤Ë¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¤è¤¦¤Ê¥é¥¤¥Ö¥é¥ê¤ÎÀßÄê¤Þ¤ï¤ê¤Î½èÍý¤â¤Þ¤À¡ÊTinyMCE¤Î¸À¸ìÁªÂò°Ê³°¡Ë¤Ê¤¤¤Ç¤¹¤¬¡¢¤½¤ÎÊÕ¤ÏÄÉ¡¹¼ÂÁõ¤·¤Æ¤¤¤¯¤Ä¤â¤ê¡£

$ fetch_js
bootstrap   - fetch Bootstrap from Twitter
flipsnap    - fetch flipsnap (for mobile)
help        - show help
highcharts  - fetch Highcharts
html5       - fetch html5.js
jquery      - fetch jQuery
pjax        - fetch jquery.pjax
prettify    - fetch google-code-prettify
tablesorter - fetch jquery.tablesorter
tinymce     - fetch TinyMCE
zepto       - fetch zepto.js (for mobile)
zoey        - fetch Zoey (mobile web app framework)

¼«Ê¬¤Ç¤è¤¯»È¤¦¤â¤Î¤òÄɲä·¤¿¤±¤ì¤Ð¡¢¤³¤ó¤Ê´¶¤¸¤Î¥â¥¸¥å¡¼¥ë¤ò@INCÇÛ²¼¤ËÃÖ¤¤¤Æ¤ª¤±¤ÐOK¤Ç¤¹¡Ê¤ª¤¹¤¹¤á¤Î¥é¥¤¥Ö¥é¥ê¤¬¤¢¤Ã¤¿¤é¤¼¤Ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡Ë¡£

package FetchJS::Hogehoge;

use strict;
use warnings;
use base 'FetchJS';

sub _run {
  my ($self, $version) = @_;

  $version ||= 'master';

  my $uri = "https://github.com/_user_/_hogehoge_/zipball/$version";

  my $zipball = $self->fetch($uri => "hogehoge.zip");
  $self->unzip($zipball,
    [qr/\.js$/ => 'js'],
  );
}

1;

__END__

=head1 NAME

FetchJS::Hogehoge - fetch hogehoge

¤ä¤Ã¤Ä¤±¤Çºî¤Ã¤¿¤Î¤Ç¡¢LWP¤ÈFurl¤¬Ìµ°ÕÌ£¤ËÊ»ÍѤµ¤ì¤Æ¤¤¤¿¤ê¡¢¥á¥¤¥ó¤Î.pm¤¬¤´¤Á¤ã¤´¤Á¤ã¤·¤Æ¤¤¤Æ¸«Ä̤·¤¬°­¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¡¢¤â¤·¤«¤¹¤ë¤È¡Ê­ðCPAN¤Ë¤¢¤²¤ëµ¤¤Ë¤Ê¤Ã¤¿¤é¡ËÊ̤Î̾Á°¶õ´Ö¤Ç¤´¤ê¤Ã¤È½ñ¤­´¹¤¨¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢»È¤Ã¤Æ¤ß¤è¤¦¤È¤¤¤¦Êý¤¬¤¤¤é¤·¤¿¤é²¼µ­¤«¤é¤É¤¦¤¾¡£

https://github.com/charsbar/fetch_js

¼¡²ó¤Î(pre) Hachioji.pm #15¤Ï3/24¤È¤Î¤³¤È¤Ç¤¹¡£

2012/02/17

¢£ Test::MobileAgent 0.06

Songmu¤µ¤ó¤¬¡Ö¥«¥Ã¤È¤Ê¤Ã¤ÆHTTP::MobileAgent::Plugin::SmartPhone¤òCPAN¤Ë¾å¤²¤¿¡×¤È¤Î¤³¤È¤Ê¤Î¤Ç¡¢¤³¤Á¤é¤â¤È¤ê¤¢¤¨¤ºÂбþÈǤò¥¢¥Ã¥×¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£SYNOPSIS¤Ë¤Ï¤³¤ó¤Ê»È¤¤Êý¤òºÜ¤»¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¥Æ¥¹¥ÈÍѤËUA¤ò²þã⤹¤ë¤³¤È¤Ç¡¢¥¢¥×¥ê¤¬UA¤´¤È¤ËÀµ¤·¤¯¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¤«¡¢Àµ¤·¤¤¥Ú¡¼¥¸¤ò½ÐÎϤ·¤Æ¤¯¤ì¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤¹¤ë¤È¤­¤È¤«¤Ë»È¤¦¥â¥Î¤Ç¤¹¡£

use strict;
use warnings;
use Test::More;
use Test::MobileAgent ':all';
use HTTP::MobileAgent;

{
  local %ENV;
  test_mobile_agent('iphone');

  my $ua = HTTP::MobileAgent->new;
  ok $ua->is_smartphone;
  ok $ua->is_iphone;
}

HTTP::MobileAgent¤ò»È¤Ã¤Æ¤¤¤Ê¤¤´Ä¶­¤Ç¤â¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò½ñ¤±¤ÐUA¤òµ¶Áõ¤·¤¿¥ê¥¯¥¨¥¹¥È¤ò¤Ä¤¯¤ì¤Þ¤¹¡£Plack::Test¤Ê¤É¤È¤¢¤ï¤»¤Æ»È¤¨¤Ð¸ú²ÌŪ¤«¤È¡£

use strict;
use warnings;
use HTTP::Request;
use Test::MobileAgent ':all';

local %ENV;
my $headers = test_mobile_agent_headers('iphone');
my $req = HTTP::Request->new(GET => '/hello', $headers);

¸½¾õ¤Ò¤È¤Þ¤º¥¹¥Þ¥ÛÉôʬ¤ÏÁ´Éô::SmartPhone¤ËÆÍ¤Ã¹þ¤ó¤Ç¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤ÎÊդϡʴû¸¤ÎHTTP::MobileAgent¤¬¤½¤¦¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡Ë¾­ÍèŪ¤ËUA°ìÍ÷¤ò»ý¤¿¤»¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤éʬ³ä¤¹¤ë¤È¤ª¤â¤¤¤Þ¤¹¡£