* memo of "Shibuya Perl Mongers Technical Talk #16"
authormitty <mitty@7d2118f6-f56c-43e7-95a2-4bb3031d96e7>
Wed, 6 Jul 2011 14:06:34 +0000 (14:06 +0000)
committermitty <mitty@7d2118f6-f56c-43e7-95a2-4bb3031d96e7>
Wed, 6 Jul 2011 14:06:34 +0000 (14:06 +0000)
 * http://shibuya.pm.org/blosxom/techtalks/201107.html
  * video recording at http://www.ustream.tv/channel/shibuya-perl-mongers-mixi

git-svn-id: https://lab.mitty.jp/svn/lab/trunk@123 7d2118f6-f56c-43e7-95a2-4bb3031d96e7

Commentary/shibuya.pm/20110706#16.log [new file with mode: 0644]

diff --git a/Commentary/shibuya.pm/20110706#16.log b/Commentary/shibuya.pm/20110706#16.log
new file mode 100644 (file)
index 0000000..d9a95a9
--- /dev/null
@@ -0,0 +1,220 @@
+dan kogai\r
+       \91O\8dÀ\82È\82Ì\82©\81c\r
+       \82¹\82¢\82«\82Ð\82å\82¤\82°\82ñ\82Á\82Ä\82¦\82ë\82¢\82Ì\81H\r
+               \82»\82ê\82Á\82Ä\82¦\82ç\82¢\81I\r
+       \82·\82×\82Ä\82Ì\96\82\8f\97\82ð\81A\8fÁ\82µ\8b\8e\82è\82½\82¢\r
+       $universe = s/\96\82\8f\97//g;\r
+       \82Ü\82Ç\82©\83l\83^\96³\91o\r
+       \90³\8bK\95\\8c»\82Ì\8eg\82¢\82·\82¬\82É\91Î\82·\82é\92\8d\88Ó\8a«\8bN\r
+       \83X\83}\81[\83g\83}\83b\83`\82Í5.10\82©\82ç\8eg\82¦\82é ~~\r
+               \82µ\82©\82µ\81A\82Ü\82¾\92x\82¢\r
+       \83\81\81[\83\8b\83A\83h\83\8c\83X\82Ì\90³\8bK\95\\8c»\r
+               \8c\9f\8fØ\82È\82ñ\82Ä\81A\82 \82é\82í\82¯\82È\82¢\r
+               \83A\83\93\83O\83\8b\83u\83\89\83P\83b\83g\82Í\90³\8bK\95\\8c»\82Å\82Í\83}\83b\83`\8fo\97\88\82È\82¢\r
+               perldoc -q mail\r
+       IPv4\82Ö\82Ì\83}\83b\83`\r
+               \82æ\82­\82 \82é\8aÔ\88á\82¢\r
+               \d{4}.\d{4}.\d{4}.\d{4}\r
+               \82¿\82á\82ñ\82Æ\8f\91\82±\82¤\82Æ\82·\82é\82Æ\r
+       use Regexp::Common \82ð\8eg\82¨\82¤\81I\r
+               my $re_ipv4 = $RE{net}{IPv4}\r
+       alteration\r
+               (a|b|c|d)\82Í[abcd]\82Ì4\94{\88È\8fã\82Ì\83R\83X\83g\r
+               O(mn)\82Ì\83I\81[\83_\81[\r
+               \90l\82Ì\8eè\82Å\8dÅ\93K\89»\82·\82é\82Ì\82Í\96³\97\9d\r
+               Regexp::Assemble\82Å\8dÅ\93K\89»\82µ\82æ\82¤\r
+               \8eÀ\82ÍPerl 5.10\88È\8d~\82ÍTRIE Optimization\82µ\82Ä\82­\82ê\82é\r
+               \82µ\82©\82µ\81ARegexp::Assemble\82Å\96³\82¢\82Æ\8fo\97\88\82È\82¢\82±\82Æ\82à\82 \82é\r
+               \83L\81[\83\8f\81[\83h\82ð\83\8a\83\93\83N\82É\82·\82é\81A\82È\82Ç\82Ì\90\94\82Ì\83I\81[\83_\81[\82ª\82æ\82è\91å\82«\82­\82È\82Á\82½\82Æ\82«\82ÍText::Darts\82ÆText::Tx\82ð\81I\r
+       s///sexsexsex...\r
+               \81I\81H\r
+               \88Ó\96¡\82Ì\82 \82é\95\8e\9a\82ð\8ew\92è\82µ\82½\82Æ\82«\82Í\81A\89½\8cÂ\82 \82Á\82Ä\82à\88ê\82Â\8ew\92è\82µ\82½\82±\82Æ\82Æ\93¯\82\r
+               e\82¾\82¯\82Í\8fd\82Ë\82é\82Æ\81Aeval\82µ\82½\8c\8b\89Ê\82ð\8dÄ\93xeval\82·\82é\82±\82Æ\82É\82È\82é\r
+       \90³\8bK\95\\8c»\82Ì\82È\82¢Perl\82Í\83R\83u\82Ì\82È\82¢\83\89\83N\83_\r
+               \8c»\8dÝ\82Ì\82¢\82ë\82¢\82ë\82È\8c¾\8cê\82Å\82Ì\90³\8bK\95\\8c»\82Ì\95\\8c»\82Í\81A\82Ù\82ÚPerl\82É\92Ê\82\82Ä\82¢\82é\r
+               Java\82Ì\90³\8bK\95\\8c»\82Í\82¿\82å\82Á\82Æ\97á\8aO(\82¿\82å\82Á\82Æ\8eã\82¢)\r
+       Lion\82ÌPerl\r
+               5.12.3\r
+\r
+\96Ø\91º\8d_\88ê\r
+       \90³\8bK\95\\8c» - \82à\82¤\88ê\82Â\82Ì\83o\83x\83\8b\82Ì\93\83 -\r
+       \82Æ\82¢\82¤\98b\82Í\82â\82è\82Ü\82¹\82ñ\r
+               \82¸\82²\81[\r
+       \81u\90³\8bK\95\\8c»\83\81\83\82\81v\82Ì\90l\r
+               \8eÀ\82Í\82 \82é\88Ó\96¡\81u\8d\95\97ð\8ej\81v\r
+       \83}\83C\83i\81[\82È\89\89\8eZ\8eq\r
+               [[:<:]] \82Æ [[:>:]]\r
+                       Tcl\82Å\8eg\82¦\82é\90³\8bK\95\\8c»\r
+               [= =]\r
+               [. .]\r
+                       \82Ç\82¿\82ç\82àPOSIX\82É\92è\8b`\82³\82ê\82Ä\82¢\82é\83\81\83^\95\8e\9a\r
+                       [=e=] -> \95\81\92Ê\82Ìe\82¾\82¯\82\82á\82È\82­\82Ä\81A\83A\83N\83Z\83\93\83g\8bL\8d\86\82ª\95t\82¢\82½e\82É\82à\83}\83b\83`\r
+                               \83E\83\80\83\89\83E\83g\82È\82Ç\82ð\92\80\88ê\8f\91\82©\82¸\82É\88ê\89ñ\82Å\8dÏ\82Ü\82¹\82ç\82ê\82é\r
+                       [. .] -> \83X\83y\83C\83\93\8cê\82Å\82Í\81A\8f\91\82­\82Æ\82«\82Í\93ñ\95\8e\9a\82¾\82¯\82Ç\88ê\95\8e\9a\82Æ\8c©\82È\82·\95¨\82ª\82 \82é\82Ì\82Å\81A\82»\82ê\82ð\88µ\82¤\r
+       \\r
+               Emacs\82Ì\90³\8bK\95\\8c» -> \83o\83b\83N\83X\83\89\83b\83V\83\85\82ª\8eR\82Ì\82æ\82¤\82É\8fo\82Ä\82­\82é\r
+               Perl\82Å\82Í\83o\83b\83N\83X\83\89\83b\83V\83\85\81{\8bL\8d\86\82Æ\82¢\82¤\83\81\83^\95\8e\9a\82Í3\82­\82ç\82¢\82©\82ç\8eg\82í\82È\82­\82È\82Á\82½\r
+                       \83\89\83\8a\81[\82É\8a´\8eÓ\r
+       (\8c\82Ì\81H)Jperl 5.6\r
+               \81uJava\82Å\8eÀ\91\95\82³\82ê\82Ä\82¢\82Ü\82·\81I\81v(\8fÎ\r
+               \93ú\96{\8cê\91Î\89\9e\82³\82ê\82½Perl\r
+               ver4\82Ü\82Å\82Í\82©\82È\82è\82µ\82Á\82©\82è\83\81\83\93\83e\83i\83\93\83X\82³\82ê\82Ä\82¢\82½\r
+               5\82É\82È\82Á\82Ä\82©\82ç\83\81\83\93\83e\83i\82ª\95Ï\82í\82Á\82½\r
+               5.0005 -> 5.6 \82ÅJPerl\82ª\8fo\82È\82­\82È\82Á\82½\r
+               \90³\8bK\95\\8c»\82É\96ß\82è\93Ç\82Ý\82ª\93ü\82Á\82½\r
+                       \92\8d\96Ú\82µ\82Ä\82¢\82é\82Æ\82±\82ë\82©\82ç\8cÅ\92è\92·\82¾\82¯\91O\82É\8cü\82©\82Á\82Ä\93Ç\82Þ\r
+                       \93ú\96{\8cê\82Å\82Í\81AEUC-JP\82Å\82àShift-JIS\82Å\82à\81A\81u\88ê\95\8e\9a\81v\82ª\89½\83o\83C\83g\82È\82Ì\82©\8c\88\92è\8fo\97\88\82È\82¢ -> \8cÅ\92è\92·\82ª\95Û\8fØ\8fo\97\88\82È\82¢\r
+               \81uPerl 5\82ª\8fo\82È\82©\82Á\82½\82ç\8d¡\82Ì\83v\83\8d\83O\83\89\83~\83\93\83O\8c¾\8cê\82Á\82Ä\82Ç\82¤\82È\82Á\82Ä\82ñ\82½\82ñ\82¾\82ë\82¤\81v by dan\r
+       \90³\8bK\95\\8c»\82Ì\95ª\97Þ\r
+               POSIX\r
+                       BASIC\r
+                               grep, ed\93\99\82Å\8eg\82¤\r
+                       Extended\r
+                               egrep, awk\82Å\8eg\82¤\r
+               Perl\8ag\92£\r
+                       \88ê\8cû\82Å\81uPerl\8ag\92£\81v\82Æ\82Í\82¢\82¤\82à\82Ì\82Ì\81c\r
+               Java\82â.NET\82¾\82Æ\81A\96ß\82è\93Ç\82Ý\82ª\89Â\95Ï\92·\82ð\8b\96\82·\82Ì\82Å\81A\83\89\83C\83u\83\89\83\8a\82É\82æ\82Á\82Ä\8b\93\93®\82ª\88á\82Á\82Ä\82­\82é\r
+               \96{\82ð\8f\91\82­\82Æ\82«\82É\94Y\82ñ\82¾\82±\82Æ\r
+                       \92\8d\8eß\82ª\8d\93\82¢\82±\82Æ\82É\82È\82é\r
+                               \81u\83s\83\8a\83I\83h\82Í\88ê\95\8e\9a\82É\83}\83b\83`\82µ\82Ü\82·\81B\82½\82¾\82µ\81c\89]\81X\81v\r
+       \95\8e\9a\83N\83\89\83X\82Ælocale\82Ì\94Y\82Ü\82µ\82¢\98b\r
+               gawk\82ª\82Â\82¢\8dÅ\8bß\8dX\90V\82³\82ê\82½\r
+               [abcd]\82Æ[a-d]\82Ì\88á\82¢\82Ælocale\82Í\91\8a\90«\82ª\88«\82¢\r
+               \95\81\92Ê\82É\8dl\82¦\82ê\82ÎASCII\83R\81[\83h\8f\87\82¾\82ª\81ALinux\82È\82Ç\82Å\82ÍUTF-8\82È\82Ç\82É\82·\82é\82Æa->A->b->B->z->Z\82É\82È\82é\r
+               \83J\83^\83J\83i\82Æ\82Ð\82ç\82ª\82È\82Å\94÷\96­\82É\82¸\82ê\82½\82è\r
+               \82à\82¤\96Ê\93|\82­\82³\82¢\82Ì\82Å\81A\95\8e\9a\83N\83\89\83X\82Å\8ew\92è\82³\82ê\82½\82Æ\82«\82ÍASCII\82Æ\93¯\82\8b\93\93®\82É\82·\82é\81A\82Æ\8c\88\82ß\82½\82ç\82µ\82¢\r
+\r
+\r
+@__gfx__\r
+       Hello, re::engine!\r
+       Xslate\82ð\8f\91\82¢\82Ä\82é\r
+       HTML::FillInForm::Lite HTML::FillInForm\82ª\83R\83\93\83p\83C\83\8b\82ª\95K\97v\82¾\82Á\82½\82Ì\82Å\81A\90³\8bK\95\\8c»\82Å\8eÀ\91\95\82µ\82½\r
+       Text::Xslate - tokenazer\r
+       re::engine\82Æ\82Í\81H\r
+               Perl\82Ì\90³\8bK\95\\8c»\89\89\8eZ\82ð\83I\81[\83o\81[\83\8d\81[\83h\8fo\97\88\82é\82æ\82¤\82É\82µ\82½\95¨\r
+               \83v\83\89\83K\83u\83\8b\82É\82µ\82½\82æ\81[\82Æ\82Ì\8bL\8e\96\82ª2006\82²\82ë\r
+               Perl\83R\83A\82Æ\90³\8bK\95\\8c»\83G\83\93\83W\83\93\82ð\93Æ\97§\82³\82¹\82½\r
+               Perl6\82Ö\82Ì\95z\90Î\82¾\82Á\82½\82Æ\8ev\82í\82ê\82é\r
+               \91f\90\94\94»\92è\82Ìexample\r
+               \83\81\83\8a\83b\83g\r
+                       \83R\81[\83h\82ð\8fC\90³\82µ\82È\82­\82Ä\82à\83G\83\93\83W\83\93\82ð\8d·\82µ\91Ö\82¦\82ç\82ê\82é\82Ì\82ª\83\81\83\8a\83b\83g\r
+                       C\83\8c\83x\83\8b\82ÌAPI\82È\82Ì\82Å\8d\82\91¬\r
+                       m//\82¾\82¯\82Å\82È\82­s//\82âsplit//\82È\82Ç\82à\r
+               How it works\r
+                       \8aÖ\90\94\83|\83C\83\93\83^\82ð\8ai\94[\82µ\82½regexp_engine\82ðvirtual table\82É\82µ\82Ä\8aÖ\90\94\82ð\83f\83B\83X\83p\83b\83`\r
+                       Virtual Table in regexp.h\r
+               re::engine::PCRE\r
+               re::engine::Oniguruma\r
+                       \83o\83b\83N\83g\83\89\83b\83N\82É\8b­\82¢ -> \90³\8bK\95\\8c»\82Ì\8cÀ\8aE\82ð\93Ë\94j\82·\82é\r
+               re::engine::RE2\r
+                       Google\90»\r
+                       \95¡\8eG\82È\90³\8bK\95\\8c»\82¾\82ÆPerl\91g\82Ý\8d\9e\82Ý\82æ\82è\91\81\82¢\r
+               re::engine::boost\r
+                       boost::regex::boost\r
+                       \92x\82·\82¬\82Ä\98b\82É\82È\82ç\82È\82¢(100\94{\82­\82ç\82¢)\r
+               \91¼\82Ì\90³\8bK\95\\8c»\83G\83\93\83W\83\93\82ð\8aÈ\92P\82É\8e\8e\82¹\82é\82Ì\82ª\90¦\82¢\r
+               \90¢\8aE\8dÅ\91¬grep\82Ì\90³\8bK\95\\8c»\83G\83\93\83W\83\93\82Ì\83o\83C\83\93\83f\83B\83\93\83O\82àcomming soon\r
+\r
+@sinya8282\r
+       \90³\8bK\95\\8c»\82Ì\8cÀ\8aE\r
+       nkf\82Ì\89Í\96ì\90æ\90\82Ì\8c¤\8b\86\8eº\82É\82¢\82Ü\82µ\82½\r
+       I \83\89\83\90³\8bK\95\\8c»\r
+       \8e\84\82Í\90³\8bK\95\\8c»\82ª\8dD\82«\82¾\r
+       \90³\91¥\95\\8c»\82É\82Â\82¢\82Ä\r
+               \8aî\96{: \98A\90Ú\81A\91I\91ð\81A\82Ö\82¢\82Ù\82¤\r
+               \93\9c\88ß\8d\\95¶ .^$[]{}()?+\r
+               \8aî\96{3\89\89\8eZ\82Å\95\\8c»\8fo\97\88\82È\82¢\89\89\8eZ\82àReal Workd\82Å\82Í\8eg\82í\82ê\82Ä\82¢\82é\r
+                       (?{ code })\r
+               \8aî\96{\82Í\8eO\82Â\82¾\82¯\r
+               \8eO\82Â\82Ì\89\89\8eZ\8eq\82µ\82©\82È\82¢\82Ì\82È\82ç\92P\8f\83\82Å\94ñ\97Í\81H\r
+       \82Æ\82 \82é\94Û\92è\82Ì\90³\8bK\95\\8c»(\83\8c\83W\83F\83b\83N\83X)\r
+               /a*/\82É\83}\83b\83`\82µ\82È\82¢\90³\8bK\95\\8c»\82Í/.*[^a].*/\r
+               \82±\82Ì\92ö\93x\82Í\90l\8aÔ\82Å\82à\8dì\82ê\82é\r
+               /abc/\82Ì\94Û\92è\82Í\81H/abc|efg/\82Ì\94Û\92è\82Í\81H/.*abc.*/\82Í\81H\r
+               \90³\8bK\95\\8c»\82ð\8f\91\82­\90l\8aÔ\91¤\82É\8cÀ\8aE\82ª\81c\r
+               \89½\8cÌ\94Û\92è\82Ì\90³\8bK\95\\8c»\82ð\8f\91\82­\82Ì\82ª\93ï\82µ\82¢\82Ì\82©\r
+       \90³\8bK\95\\8c»\82©\82çDFA\82©\82ç\8dì\82é\82±\82Æ\82Æ\82Ù\82Ú\93¯\8b`\r
+       \90³\8bK\95\\8c»\82Ì\94Û\92è <=> DFA\82Ì\8eó\97\9d\8fó\91Ô\82Æ\94ñ\8eó\97\9d\8fó\91Ô\82ð\93ü\82ê\91Ö\82¦\82ê\82Î\82¢\82¢  \r
+       \8eÀ\82ÍDFA\82©\82ç\82à\93\99\89¿\82È\90³\8bK\95\\8c»\82ð\8dì\82é\82±\82Æ\82ª\8fo\97\88\82é\r
+       \90³\8bK\95\\8c» -> NFA -> DFA -> \94Û\92è\82ÌDFA -> GNFA -> \94Û\92è\82Ì\90³\8bK\95\\8c»\r
+               \8dÅ\88«\8cv\8eZ\97Ê\82ªexp()\82É\r
+       \8eÀ\82Í\94C\88Ó\82Ì\90³\8bK\95\\8c»\82Ì\94Û\92è\95\\8c»\82ð\90\90¬\82·\82é\83c\81[\83\8b\82ª\82È\82¢\r
+               \8eÀ\91\95\82µ\82½\81I\r
+               /abc/ -> /((a?|ab)|((([[^a]|a[^b])|ab[^c])|abc.).*)/\r
+                       \83L\83\83\83v\83`\83\83\81[\82µ\82Ä\82¢\82é\82Ì\82Å\82¾\82ß by dan\r
+       \82±\82Ì\90¢\82É\82Í\90³\8bK\95\\8c»\82Å\95\\8c»\8fo\97\88\82È\82¢\95¨\82ª\82 \82é\r
+               \95\96¬\8e©\97R\95\96@\r
+               \8dÄ\8bA\93I\8d\\91¢\r
+       \90³\8bK\95\\8c»\82Í\8a\87\8cÊ\82Ì\91Î\89\9e\82ª\8eæ\82ê\82È\82¢\r
+               \8el\91¥\89\89\8eZ\82È\82Ç\r
+       PCRE\82É\82Í(?R)\82Å\8dÄ\8bA\82ª\8eg\82¦\82é\82Ì\82Å\89½\82Æ\82©\82È\82é\r
+               \82½\82¾\82µ\81AIrregular Expression\r
+       \81u\82Æ\82 \82é\8dÄ\8bA\82Ì\90³\8bK\95\\8c»\81v\r
+               \8dÄ\8bA\82Ì\90[\82³\82ð\8cÀ\92è\82·\82ê\82Î\97L\8cÀ\r
+               \95\8e\9a\97ñ\82Ì\92·\82³\82ªN\82È\82ç\81A\82½\82©\82¾\82©N\89ï\82Ì\8dÄ\8bA\r
+               \8fã\8cÀ\82ðN\82É\82µ\82½ -> \91O\82Ì\92·\82³*2+35 \82Ì\91Q\89»\8e® \82Â\82Ü\82è 35*((2^n+1)-1)\r
+               140\95\8e\9a\88È\93à\82Ì\8a®\91S\82È\8el\91¥\89\89\8eZ\r
+                       (140-1)/2 = 69\89ï\82Ì\8dÄ\8bA\82ª\8fã\8cÀ\r
+                       (35*(2^70)-1) -> 40\83[\83^\83o\83C\83g\r
+       Q. \94Û\92è\82Ì\90³\8bK\95\\8c»\82ð\8dì\82é\83c\81[\83\8b\82Í\81H\r
+       A. \8dì\82Á\82½\82Ì\82Å\82±\82Ì\8cã\82Ì\94­\95\\82Å\82¨\8ay\82µ\82Ý\82É\81I\r
+       Q. pure\82È\90³\8bK\95\\8c»\82É\82±\82¾\82í\82é\82±\82Æ\82Ì\97\98\93_\r
+       A. DFA\82É\95Ï\8a·\8fo\97\88\82é -> DFA\82Ì\8dÅ\93K\89» / \95À\97ñ\83}\83b\83`\83\93\83O\82ª\8fo\97\88\82½\82è\82·\82é\r
+\r
+LT\r
+       \96l\82Ì\8dl\82¦\82½\90¢\8aE\8dÅ\8b­\82Ì\90³\8bK\95\\8c»\83G\83\93\83W\83\93 @shinya8282\r
+               \90¢\82Ì\92\86\82É\82Í\82¢\82ë\82¢\82ë\82È\90³\8bK\95\\8c»\83G\83\93\83W\83\93\82ª\82 \82é\r
+                       PCRE\r
+                       RE2\r
+                       \8bS\8eÔ\r
+               \82¸\82Î\94²\82¯\82½\93Á\92¥\82ð\8e\9d\82½\82¹\82½\82¢\r
+                       \91¬\93x\81I\r
+               Regen -> Regular Expression Generator\r
+               \90³\8bK\95\\8c»\82©\82ç\90F\81X"\90\90¬"\r
+                       x86\83l\83C\83e\83B\83u\83R\81[\83h\r
+                       etc...\r
+               \8cÀ\8aE\82Ü\82Å\8d\82\91¬\89»\82µ\82½\82¢\r
+                       DFA\83x\81[\83X\82Ì\83}\83b\83`\83\93\83O\r
+                       \93®\93I\82È\83R\81[\83h\90\90¬ by Xbyak\r
+                       \95À\97ñDFA\83}\83b\83`\83\93\83O\r
+                       \8b@\8aB\8cê\83\8c\83x\83\8b\82Å\82Ì\8dÅ\93K\89»(\82È\82¤)\r
+               \82Ü\82¾\92P\91Ì\82Å\82à\83\89\83C\83u\83\89\83\8a\82Æ\82µ\82Ä\82à\8eg\82¦\82é\83\8c\83x\83\8b\82É\82Í\82È\82Á\82Ä\82¢\82È\82¢\r
+               \8dÄ\8bA\82Æ\94Û\92è\82Ì\90\90¬\8cn\82Æ\82µ\82Ä\82Í\8eg\82¦\82é\r
+       Plagger\82Å\8ao\82¦\82½Perl\82Ì\90³\8bK\95\\8c» yusukabe\r
+               UNIX pipe programming for web <- Plagger\r
+               Filter::EntryFullText\r
+               \83t\83B\81[\83h\82ð\8fo\97Í\82µ\82Ä\82¢\82È\82¢\83y\81[\83W\82Ì\8dX\90V\8fî\95ñ\82ð\88µ\82¤\r
+               30\8cÂ\82Ì\83G\83\8dYAML\81I\r
+               \83G\83\8d\83T\83C\83g\82ð\8dw\93Ç -> Plagger -> etc...\r
+               \83\8a\83r\83h\81[\8bì\93®\82ª\82æ\82¢\82æ\81I\r
+       Regexp::Assemble\82Æ\82©\82»\82Ì\95Ó\82Ì\98b Yappo\r
+               \90³\8bK\95\\8c»\82ð\8bì\8eg\82µ\82Ä\8fZ\8f\8a\82ð\92\8a\8fo\r
+               \97X\95Ö\8bÇ\82Ì\83f\81[\83^\82ð\97p\82¢\82½\r
+               \93s\93¹\95{\8c§\82Í\82Ü\82¾\82¢\82¢\82¯\82Ç\81A\8es\92¬\91º\82Í\90³\8bK\95\\8c»\82ð\88³\8fk\82µ\82È\82¢\82Æ\82Æ\82Ä\82à\82\82á\82È\82¢\r
+               Trie\82Ì\95û\82ªAssemble\82æ\82è4\94{\82­\82ç\82¢\91¬\82¢\r
+               # \82±\82±\82Å\8e\9e\8aÔ\90Ø\82ê\r
+       \8dÄ\8bA\93I\90³\8bK\95\\8c» JSON Validator TAKESAKO\r
+               JavaScript Object Notation\r
+               XSS\93\99\82ª\95|\82¢\82Ì\82ÅValidate\82ª\95K\97v\r
+       \96l\82Æ\8c_\96ñ\82µ\82Ä\81A\81i\82\92\82\99 sugyan\r
+               Quine ruBy\r
+               Perl\94Å\8dì\82è\82Ü\82µ\82½\81I\r
+               JavaScript\94Å\82à\r
+               Quine -> \8e©\90g\82Ì\8a®\91S\82È\83R\81[\83h\82ð\8fo\97Í\82·\82é\83v\83\8d\83O\83\89\83\80\r
+               eval\82ð\8eg\82¤\r
+               \90F\82ð\95Ï\82¦\82é -> ANSI escape sequence\r
+               \83Z\83\8a\83t\82Íuuencode\82Å\82²\82Ü\82©\82·\r
+               use utf8;\82Æ\8f\91\82«\82½\82­\82È\82¢\82Ì\82Å\95Ï\82È\82±\82Æ\82ð\82·\82é\r
+               \90®\8c`\r
+                       \96³\91Ê\82É\95Ï\8a·\81A\8bó\94\92\82ð\93ü\82ê\82é\81A()\82ð\93ü\82ê\82é\r
+               \90³\8bK\95\\8c»\82à\82¿\82å\82Á\82Æ\82¾\82¯\8eg\82Á\82½\82æ\r
+       \90F\81X\82È\82à\82Ì\82ð\90³\8bK\82É\95\\8c»\82µ\82Ä\82Ý\82æ\82¤\r
+               \81u/RegEx/\81v\82Æ\82¢\82¤\83T\83C\83g\r
+               \81u\93d\98b\94Ô\8d\86\81v\82Ì\97á->\8ec\94O\82È\95¨\82ª\91½\82¢\r
+               Number::Phone::JP\82ð\8eg\82¨\82¤\r
+               \97X\95Ö\94Ô\8d\86\82à\90³\8bK\95\\8c»\82É\8fo\97\88\82é\82Ì\82Å\82Í\81H\r
+                       000-0000 \81`999-9999\82Ì\82¤\82¿98.6%\82Í\8eÀ\8dÛ\82É\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢\r
+                       Number::Zipcode::JP\r
+               \92N\93¾\81H\89´\93¾\81I\r
+               DB\82Å\88ø\82¢\82Ä\83p\83^\81[\83\93\83}\83b\83`\82æ\82è\8eá\8a±\91¬\82¢\82æ\81I\81I\r
+               
\ No newline at end of file