2006/12/09¤«¤é5ǯȾ¤Ö¤ê¤Ë¥Á¥ã¥Ü¤¬ºÆ»ÏÆ°¤·¤¿¡£¥µ¡¼¥Ð¡¼¤¬¤Ê¤¯¤Ê¤Ã¤Æ ¥Á¥ã¥Ü¤Î½»½è¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¤¬¡¢¤µ¤¯¤é¥µ¡¼¥Ð¡¼¤Ç¥Á¥ã¥Ü¤¬¤·¤ã¤Ù¤ê¤À¤·¤¿¤è¡Ê¾Ð¡Ë ¡¡¤Þ¤À¡¢º£(9/4)¤ÏIRC¥Á¥ã¥Í¥ë¤Ç¤ÏÃý¤ì¤Ê¤¤¡Ä¡Ê5ǯ¤â·Ð¤Ä¤È´ðËÜ¥½¥Õ¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ ¾å¤¬¤Ã¤Æ¤·¤Þ¤¤Net::IRC¤¬¥¤¥ó¥¹¥È¡¼¥ë½ÐÍè¤Ê¤¤¡Êµã¡Ë¤æ¤Ã¤¯¤ê¹Í¤¨¤è¤¦¡ª¡ª¡ª !»Ï¤Þ¤ê Niigata.pm tech talk #2¤Ç¤Ï¥Ç¡¼¥¿½èÍý¤ò¥Æ¡¼¥Þ¤Ëȯɽ¤¬¤¤¤í¤¤¤íÍ­¤Ã¤¿¡£ ¤½¤ÎÃæ¤Ç·ÁÂÖÁDzòÀÏ´Ø·¸¤Îȯɽ¤¬¡¢¤¤¤¯¤Ä¤«¤¢¤ê¥Á¥ã¥Ü¤Î»ö¤ò»×¤¤½Ð¤·¤¿¡£¡Ê¤â¤¦5ǯ¤âÆ°¤¤¤Æ¤¤¤Ê¤¤¡Ë »¨Ã̤ÎÃæ¤Ç¤µ¤¯¤éVPS¤Ï²¿¤Ç¤â½ÐÍè¤ë¤Èʹ¤¤¤¿¤Î¤Ç¤µ¤¯¤é¤Ç¥Á¥ã¥Ü¤òºÆ»ÏÆ°¤·¤è¤¦¤È »×¤Ã¤¿¡£¤³¤³¤«¤é¥Á¥ã¥Ü¤ÎºÆ»ÏÆ°¤¬»Ï¤Þ¤Ã¤¿¡£ !IRC¤ËÀ¸Â© Net::IRC¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç·Ù¹ð¤¬½Ð¤ë DANGER, WILL ROBINSON! DANGER! This module has been deprecated, abandoned, and is no longer supported. It has not seen active development in five years, and its original author has moved on. We *STRONGLY* recommend you port your code to either Bot::BasicBot or POE::Component::IRC. Please feel free to stop by irc.freenode.net/#perl for help making this transition. Or, if you insist on proceeding, please type the following line exactly as is and then press Enter: [google ËÝÌõ] ´í¸±¡¢¥í¥Ó¥ó¥½¥ó¤Ç¤·¤ç¤¦¡ª´í¸±¡ª ¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢Èó¿ä¾©¤ËÊü´þ¤·¡¢¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤Ï¤¢¤ë 5ǯ¸å¤Ë¤Ï³èȯ¤Ê³«È¯¤ò¸«¤Æ¡¢¸µ¤ÎÃø¼Ô¤Ï¾å¤Ë°ÜÆ°¤·¤Æ¤¤¤Þ¤»¤ó¡£ ²æ¡¹¤Ï*¶¯¤¯*¤¢¤Ê¤¿¤Ï¤É¤Á¤é¥Ü¥Ã¥È¤Ø¤Î¥³¡¼¥É¤Î°Ü¿¢¤ò¤ª´«¤á¤·¤Þ¤¹:: BasicBot¤Þ¤¿¤Ï POE :: Component :: IRC¤Ë¡£½õ¤±¤òirc.freenode.net/¡ôperl¤Ë¤è¤Ã¤ÆÄä»ß¤¹¤ë¤³¤È¼«Í³ ¤Ë´¶¤¸¤Ê¤µ¤¤ ¤³¤Î°Ü¹Ô¤ò¹Ô¤¦¡£Àè¤Ë¿Ê¤à¤Ë¤³¤À¤ï¤ë¾ì¹ç¤Ï¡¢ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ ¼¡¤Î¹Ô¤Ï¤Þ¤Ã¤¿¤¯Æ±¤¸¤Ç¤¹¤·¡¢Enter¥­¡¼¤ò²¡¤·¤Þ¤¹¡§ ¤â¤¦¥µ¥Ý¡¼¥È¤·¤Æ¤Ê¤¤¤«¤éPOE::Component::IRC¤Ë°Ü¹Ô¤·¤Ê¤µ¤¤Åª¤Ê¡Ä¡¡¤·¤«¤·¡¢¤È¤ê¤¢¤¨¤º¥Á¥ã¥Ü¤òºÆ»ÏÆ°¤·¤¿¤«¤Ã¤¿¤Î¤ÇMakefile.PL¤òÆɤà¤È exit 0 if $ENV{AUTOMATED_TESTING}; my $ok = 'I acknowledge that Net::IRC is unsupported and I wish to proceed.'; my $warning = <); die "Refusing to install due to lack of confirmation" unless $acceptance eq $ok; I acknowledge that Net::IRC is unsupported and I wish to proceed.¤ÈÆþÎϤ¹¤ì¤Ð¥¤¥ó¥¹¥È¡¼¥ë½ÐÍè¤ë¤é¤·¤¤¤Î¤Ç``die "Refus . . .''¤Î¹Ô¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¡£ I acknowledge that Net::IRC is unsupported and I wish to proceed. [google ËÝÌõ] »ä¤ÏNet :: IRC¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤òǧ¤á¤ë¤È»ä¤Ï¿Ê¤ß¤¿¤¤¡£ µ×¤·¤Ö¤ê¤Ë"#reudyroom:*.jp"¤Ç¤ªÏä·½ÐÍè¤ë¤«¤È»×¤Ã¤¿¤éÆþ¼¼½ÐÍè¤Ê¤¤¡Êï¤â¤¤¤Ê¤¤¡©¡Ë¤Î¤Ç"#niigatapm"¤ËÆþ¼¼¤·¤Æ¤ß¤ë¡£¥µ¡¼¥Ð¡¼¤Îʸ»ú¥³¡¼¥É¤¬utf¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¥Á¥ã¥Ü¤âutf¤ËÂбþ¤¹¤ë¡£ [00:35:11] ¤³¤³¤ÏbotOK¤Ç¤¹¤«¡©¤¢¤ó¤Þ¤ê¥ª¥·¥ã¥Ù¥ê¾å¼ê¤¯¤¢¤ê¤Þ¤»¤ó¤¬µ¹¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ [00:35:38] ÊѤËÉé²Ù¤Ê¤±¤ì¤ÐbotÂç¾æÉפä¹ ¤ÇÆþ¼¼¤Îµö²Ä¤ò¤â¤é¤Ã¤¿¤Ä¤â¤ê¤Ê¤Î¤Ç¤â¤¦¾¯¤·"#niigatapm"¤ËÀ¸Â©¤¹¤ë¤³»ö¤Ë¤¹¤ë¡£²¿½è¤«¤Ëbot¤¬À¸Â©¤·¤Æ¤¤¤ë¥Á¥ã¥Ã¥È¥ë¡¼¥à¤Ï̵¤¤¤«¤·¤é¡© !!!¥á¥â *http://www21051ue.sakura.ne.jp/chabo/chatbot.cgi **9/4 10:00 ¤Þ¤À¤·¤ã¤Ù¤ì¤º¡Ä **9/5 ¤ä¤Ã¤ÈÃý¤ê½Ð¤¹¡£¤À¤«Net::IRC¤¬¥¤¥ó¥¹¥È¡¼¥ë½ÐÍ褺¡Ä **9/10 IRC¤Ç¤âÃý¤ê½Ð¤¹(#niigatapm¤Ë²¾¤ËÀ¸Â©) *¥µ¥¯¥é£Ö£Ð£Ó¼êÇÛ **ubuntu12.04¥»¥Ã¥È¥¢¥Ã¥× **apache ¥¤¥ó¥¹¥È¡¼¥ë **mysql ¥¤¥ó¥¹¥È¡¼¥ë **¥Ç¡¼¥¿¥í¡¼¥É mysql> use test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> load data infile '/tmp/chat.data' into table chatdata; ERROR 29 (HY000): File '/tmp/chat.data' not found (Errcode: 13) mysql> mysql> quit http://ubuntuforums.org/showthread.php?t=822084 http://webcache.googleusercontent.com/search?q=cache:O9hkDDVbKsUJ:ubulog.blogspot.com/2009/06/ubuntu-apparmor.html+apparmor.d&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_ja Code: sudo vi /etc/apparmor.d/usr.sbin.mysqld/usr/sbin/mysqld { ... /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid w, /var/run/mysqld/mysqld.sock w, /tmp/ r, /tmp/* rw, } Code: # sudo /etc/init.d/apparmor reload !!!MySQL ʸ»ú²½¤±¤òËɤ°¡¢Ê¸»ú¥³¡¼¥É¤Î³Îǧ¤ÈÀßÄê http://ext.omo3.com/linux/mysql_character_set.html ¢£Ê¸»ú¥³¡¼¥É¤òÀßÄꤹ¤ë /etc/my.cnf ¤òÊÔ½¸¤¹¤ë¡£ [client] default-character-set=utf8 [mysqld] default-character-set = utf8 skip-character-set-client-handshakecharacter-set-server = utf8 collation-server = utf8 _general_ciinit-connect = SET NAMES utf8 [client]¤È[mysqld]¤ÎÀßÄê¤Ë¡¢¾åµ­¤Îµ­½Ò¤ò²Ã¤¨¤ë¡£ utf8¡§¡¡UTF-8¤ò»ØÄꤹ¤ë¤È¤­¡£ sjis¡§¡¡Shift JIS ¤ò»ØÄꤹ¤ë¤È¤­¡£ ujis¡§¡¡EUC JP ¤ò»ØÄꤹ¤ë¤È¤­¡£ skip-character-set-client-handshake¤Î»ØÄê¤Ï¡¢MySQL¤¬¾¡¼ê¤ËÆâÉôÊÑ´¹¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¡£ !!ChaSen ¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡ http://www.asahi-net.or.jp/~yw3t-trns/namazu/chasen/index.htm ---- Done! Check /var/lib/chasen/dic/naist-jdic-utf8 directory. update-alternatives: using /usr/share/chasen/chasenrc-utf8 to provide /etc/chasenrc (chasenrc) in auto mode. Setting up chasen (2.4.4-17) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place !!!darts ¤Î¥¤¥ó¥¹¥È¡¼¥ë: *²òÅà tarball ¤ò²òÅष¤¿¤¤¾ì½ê¤ËÃÖ¤¤¤Æ¡¢tar ¤Ç¥¢¡¼¥«¥¤¥Ö¤ò²òÅष¤Þ¤¹¡£ $ tar xvzf darts-0.2.tar.gz *configure ²òÅष¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¤Æ¡¢configure ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ $ cd darts-0.2 $ ./configure *make ¥³¥ó¥Ñ¥¤¥ë¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¡¢root ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£ $ make $ make check $ su # make install ¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¡¢¥¤¥ó¥¹¥È¡¼¥ë¤Ï½ªÎ»¤Ç¤¹¡£ !!!ChaSen ¤Î¥¤¥ó¥¹¥È¡¼¥ë: *²òÅà tarball ¤ò²òÅष¤¿¤¤¾ì½ê¤ËÃÖ¤¤¤Æ¡¢tar ¤Ç¥¢¡¼¥«¥¤¥Ö¤ò²òÅष¤Þ¤¹¡£ $ tar xvzf chasen-2.3.3.tar.gz *configure ²òÅष¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤·¤Æ¡¢configure ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ (¤³¤³¤Ç¤Ï¡¢libiconv ¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£) $ cd chasen-2.3.3 $ ./configure --with-libiconv=/usr/local ¤Þ¤¿¤Ïñ¤Ë $ ./configure *make ¥³¥ó¥Ñ¥¤¥ë¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¡¢root ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¤¤Þ¤¹¡£ $ make $ make test $ su # make install ¥¨¥é¡¼¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¡¢¥¤¥ó¥¹¥È¡¼¥ë¤Ï½ªÎ»¤Ç¤¹¡£ https://forums.ubuntulinux.jp/viewtopic.php?id=8530 $ sudo apt-get install build-essential ¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤ÇÆþ¤ê¤Þ¤¹¡£ gcc-c++ ¤Ïfedora ·Ï¤Ç¤Î¸Æ¤ÓÊý¤Ç¤¹¡£ ¸·Ì©¤Ë¤Ï¤Þ¤Ã¤¿¤¯Æ±¤¸¤â¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤¬¡¦¡¦¡¦¡£ -------------------------------------------------------------------------------- BNU is Bootang Never forget Ubuntu USB means $ /usr/sbin/bootang : No such file or directory ._.? !!UTF8²½ (2014/4/5) »þÂå¤Îή¤ì¤Ë¾è¤Ã¤ÆUTF8²½¤·¤¿¡£¤â¤È¤â¤ÈScript¤âDB¤âEUC¤À¤Ã¤¿¡£Åö»þ¤ÏEUC¤¬ Web¤Çʸ»ú²½¤·¤Ê¤¤¤È¸À¤ï¤ì¤Æ¤¤¤¿¤·³Î¤«¤ËÌäÂê¤Ê¤«¤Ã¤¿¡£ ¤Ç¤â¡¢Niigata.pm¤Îirc¤Ë»²²Ã¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿»þ¡¢irc¤ÏUTF-8¥Ù¡¼¥¹¤À¤Ã¤¿¤Î¤Ç irc¤Î¥¯¥é¥¤¥¢¥ó¥È¤òUTF8²½¤·¤¿¤é`¡Á'¤È¤«¤¬`?'¤Çɽ¼¨¤µ¤ì¤ëÍͤˤʤä¿°Ù¡¢ DB¤âUTF8¤Ë¤·¤¿¡£Ê¸»úÊÑ´¹¤¬Æþ¤ë¤È¤Ê¤Ë¤«¤ÈÉÔ¶ñ¹ç¤¬½Ð¤ë¡£¡Êµ¤¤¬¤¹¤ë¡Ë UTF8¤Ë¤·¤¿¤é`­¡­¢­£­¤­¥­¦­§­¨­©­«­¬­­­®­¯­°­±­²­³­´¡Á'¤Î´Ý¿ô»ú¤â»È¤¨¤ëÍͤˤʤä¿¡£ ¥Ï¥ó¥°¥ë¤È¤«¡¢¥¢¥é¥Ó¥¢Ê¸»ú¤È¤«¤â»È¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¡©ÆþÎÏÊýË¡¤¬¤ï¤«¤é¤Ê¤¤¤¬¡Ä !scriptÊÑ´¹ *nkf -w chatbot.cgi > chatbot_utf.cgi nkf¤Çʸ»ú¥³¡¼¥É¤òeuc¤«¤éutf8¤ØÊѹ¹¤¹¤ë !DBʸ»ú¥³¡¼¥ÉÊÑ´¹ ¥Æ¡¼¥Ö¥ë¤Îʸ»ú¥³¡¼¥É¤òutf8¤ËÊѹ¹¤¹¤ë¡£¥Æ¡¼¥Ö¥ë¤òÊѹ¹¤·¤Æ¤â¥«¥é¥à¤Ï¸µ¤Î ʸ»ú¥³¡¼¥É¤òÊÝ»ý¤¹¤ë¤Î¤Ç¥«¥é¥à¤Îʸ»ú¥³¡¼¥É¤âÊѹ¹¤¹¤ë¡£ *ALTER TABLE chatdata CHARSET=utf8; *ALTER TABLE chatdata MODIFY chat text CHARACTER SET utf8; !!websocket¤ÇÏ令륯¥é¥¤¥¢¥ó¥È¤òºî¤Ã¤¿ [2014/4/14]¤Ä¤¤¤ËWebSocket¤ÇÏ令ë¤è¤¦¤Ë¤Ê¤Ã¤¿[Mojolicious + WebSocket|http://www21051ue.sakura.ne.jp:3001/]¡¡perl memo»²¾È !!Twitter [Twitter|https://twitter.com/chabo60591182]¤ÇÏ䬽Ф­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤è¡£(¥Õ¥©¥í¡¼¤·¤Æ¤¢¤²¤Æ¡Ë--- 2014/5/5 $ cpanm -v cpanm (App::cpanminus) 1.5007 on perl 5.014002 built for x86_64-linux-gnu-thread-multi $ sudo cpanm Net::Twitter --> Working on Net::Twitter Fetching http://search.cpan.org/CPAN/authors/id/M/MM/MMIMS/Net-Twitter-4.01004.tar.gz ... OK Configuring Net-Twitter-4.01004 ... OK Invalid version format (non-numeric data) at /loader/0x2003530/App/cpanminus/script.pm line 1134. $ $ sudo cpanm Net::SSLeay --> Working on Net::SSLeay Fetching http://www.cpan.org/authors/id/M/MI/MIKEM/Net-SSLeay-1.58.tar.gz ... OK Configuring Net-SSLeay-1.58 ... OK Building and testing Net-SSLeay-1.58 ... FAIL ! Installing Net::SSLeay failed. See .cpanm/work/1398945043.23988/build.log for details. Retry with --force to force install it. $ vim .cpanm/work/1398945043.23988/build.log Running Mkbootstrap for Net::SSLeay () chmod 644 SSLeay.bs /usr/bin/perl "-Iinc" /usr/share/perl/5.14/ExtUtils/xsubpp -typemap /usr/share/perl/5.14/ExtUtils/typemap -typemap typemap SSLeay.xs > SSLeay.xsc && mv SSLeay.xsc SSLeay.c cc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DVERSION=\"1.58\" -DXS_VERSION=\"1.58\" -fPIC "-I/usr/lib/perl/5.14/CORE" SSLeay.c SSLeay.xs:153:25: fatal error: openssl/err.h: No such file or directory compilation terminated. make: *** [SSLeay.o] Error 1 -> FAIL Installing Net::SSLeay failed. See /home/john/.cpanm/work/1398944624.23822/build.log for details. Retry with -- force to force install it. ~ [Net::SSLeay ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Ê¤¤¤È¤­¤Ï|http://hatyuki.hatenablog.jp/entry/20120621/1340584714]cpanm ¤Ê¤É¤Ç Net::SSLeay ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤·¤Æ "openssl/err.h" ¤¬¤Ê¤¤¤è¡ª¤ÈÅܤé¤ì¤¿¤È¤­¤Ï # aptitude install libssl-dev [AnyEvent::Twitter::Stream ¤ÎÁÇŨ¤µ¤òº£¹¹¤Ê¤¬¤é¼Â´¶¤·¤Æ¤ß¤ë|http://www.u-1.net/2010/10/25/2403/] #!/usr/bin/perl use strict; use AnyEvent::Twitter; use AnyEvent::Twitter::Stream; use Encode; use utf8; use Mojo::UserAgent; use Mojo::URL; my $consumer_key = 'AAAAAAAAAAAAAAAAAAAAAAAAA', my $consumer_secret = 'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB', my $token = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'; my $token_secret = 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD'; my $cv = AE::cv; my $twitty = AnyEvent::Twitter->new( consumer_key => $consumer_key, consumer_secret => $consumer_secret, access_token => $token, access_token_secret => $token_secret, ); my $done = AnyEvent->condvar; my $listener = AnyEvent::Twitter::Stream->new( consumer_key => $consumer_key, consumer_secret => $consumer_secret, token => $token, token_secret => $token_secret, method => "userstream", on_tweet => sub { my $tweet = shift; my $user = $tweet->{user}{screen_name}; my $text = ($tweet->{text} || ''); return unless $user && $text; return if($user =~ /chabo60591182/); # if ($text=~/#oreimo/) {print '#oreimo'.encode("sjis",$text);} # ¥Á¥ã¥Ü¤ËÏä·¤«¤±¤ë --- START my $ua = Mojo::UserAgent->new; my $name_euc = decode_utf8($user); my $ans = $ua->get(Mojo::URL->new("http://www21051ue.sakura.ne.jp/chabo/chatbot_utf8.cgi?name=$user&action=TALK&chat=$text"))->res->body; my $txt = ''; if($ans =~ m|(.*)|){ $txt = decode('UTF-8',$1); $twitty->post('statuses/update',{status => $txt}, sub{}); } # ¥Á¥ã¥Ü¤ËÏä·¤«¤±¤ë --- END # print encode('utf-8',$text) . "\n"; }, on_error => sub { my $error = shift; warn "ERROR: $error"; $done->send; }, on_eof => sub { $done->send; }, ); $cv->recv; !¥á¥â https://metacpan.org/pod/Twitter::API