Perl ã§ã¤ãã£ã web ãµã¤ãã L10N ããæ¹æ³ã«ã¤ãã¦ç°¡åã«èª¬æãã¾ããä»åã¯ãæ¥æ¬èªã®ãµã¤ããè±èªã§ã表示ã§ããããã«ããã±ã¼ã¹ããã¤ããã¾ãããä»å㯠L10N ã®å¯¾è±¡ã¯ Amon2 ãã¤ãã£ããµã¤ãã¨ãã¾ãã åºæ¬çãªç¿»è¨³æ©è½ã¯ Locale::Maketext::Lexicon ãå©ç¨ãã¾ããããã¯ãªãã ããã ã§åºæ¥ãããã®ã§ããã¨ãããã¾ããä»ã«ããããããããã©ããããä¸çªå®ç¸¾ããããå®å®ãã¦ããããã«ãããã¾ããã¾ããä¸ææã¯ã¡ã³ããæ¾æ£ããã¦ã¾ããããæè¿ã¾ãã¡ã³ããããããã«ãªã£ãããã§ãã ã¡ãã»ã¼ã¸ã®ãã¼ã¯ã¢ããã§ã¯ãã¾ããPerl ã³ã¼ãä¸ã®æ¥æ¬èªã®ãªã½ã¼ã¹ã $c->loc(); ã§ãããã¾ãããã printf("ã»ã\n"); ã¿ããã«ãªã£ã¦ãã¨ããã printf($c->loc("ã»ã\n")); ã¿ããã«ããã£ã¦ãã¨ã§ãã ã¤ãã«ãã³ãã¬ã¼ã
ã¨ã«ãã楽ã«ããæ°è»½ã«ããæ°è»½ã«ãã¹ãã追å ã§ãã¦ããæ°è»½ã«ãã¹ããå®è¡ã§ãããã¨ããã®ããªã«ãããéè¦ã§ãã 追å ãããã¨ããã£ãã¨ãã«ãã©ã追å ããããããããããªããã¨ããç¶æ³ã«ãªããã¡ãªã®ã§ãããããããããããªæ§æè¦ç´ ãã¨ã«ãã¹ããã²ã¨ã¨ããããã¦ã¿ãã¨ããã®ãéè¦ã ã¨ãããã¾ããO/R Mapper ã®ã¯ã©ã¹ã®ãã¹ãã¨ããmodel ã®ãã¹ãã¨ããã³ã³ããã¼ã©ã®ãã¹ãã¨ããJSON API ã®ãã¹ãã¨ããã ExtUtils::MakeMaker ã§ãã¹ãããããããªãExtUtils::MakeMaker ãç´ ã§ã¤ãã㨠blib/ ã¨ãã¤ãã£ã¦ãã¦ãããã®ã§ãMakefile.PL ã«ä»¥ä¸ã®ãã㪠hack ãã»ã©ããã¦ããã¾ããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã§ blib/ ã¨ãã«ã³ãã¼ããå¿ è¦ãªãã§ããããå®éç¨ã§ã blib/ ã§ãããããªãããã¤ã³ã¹ãã¼ã«ããã¾ãããã #
https://metacpan.org/module/watcher watcher --dir=./lib/ -- worker.plYou can restart job worker process by watching directory. YAY!
http://github.com/ukigumo/ ãªããããæ°è»½ã«ã¤ããã¦ãã«ã¹ã¿ãã¤ãºã容æã§ããæ°æ¥½ãª continuous testing ã support ãã tool ãã»ããã£ãã®ã§ãã¡ããã£ã¨ãããã ã¿ã¼ã²ããã¯èªç¤¾ãµã¼ãã¹ã® web ã¢ããªã±ã¼ã·ã§ã³ã§ãã ãã¼ã·ãã¯ãªã¯ã©ãµãæ§æã¨ãªã£ã¦ãã¾ãããµã¼ãã¼å´ã¯ç°¡å㪠Web UI ã¨ãRPC ãæä¾ãã¦ããã ãã§ãããã·ã³ãã«ã§ãããµã¼ãã¼å´ã¨ã¯ã©ã¤ã¢ã³ãå´ã«ã¯ä¾åé¢ä¿ã¯ããã¾ãããã¯ã©ã¤ã¢ã³ãå´ã¯ãã©ã¬ãã«ãªæ§æã¨ãªã£ã¦ãã¦ã誰ã§ãç°¡åã«ãããã¾ãã ã¯ã©ã¤ã¢ã³ãå´ã¯ Plagger 風ã«ãããã¨ããã£ããã§ããã©ãPlagger 風ã«ããã¨ãããããããããã«ãªããããã®ã§ãã©ã¤ãã©ãªã¨ãã¦ã®æä¾ã«ã¨ã©ãã¾ãããã¹ãã£ã¨ããã ãæ®éã«ç解ã§ãã¾ããã³ã¼ããã·ã³ãã«ã«ããããã«å¿ã¿å«ãããã¡ãª Mouse ãæ¡ç¨
Ukigumo ã¯ãããµãã§ãããã¨ã第ä¸ç®æ¨ã¨ãã¦è¨è¨ããã¦ããã®ã§ãé©å½ã«ãµã¼ãã¼ãè¨ç½®ãã¦ããã°ãããã¸ã§ã¯ãã®æ å½è ããããããããªã¿ã¤ãã³ã°ã§ã¤ãããããã«ãªãã¾ãã ã¾ãããªããæ°è»½ã«è¨ç½®ãã¦æ°è»½ã«ã¤ããããã¤ããã¾ãã¾ã»ããã£ãã®ã§ã¤ãã£ãã¨ãããããã§ãã ã¯ã©ã¤ã¢ã³ãå´ã¨ãµã¼ãã¼å´ã¯å®å ¨ã«åé¢ãã¦ãããã§ãã¯ã©ã¤ã¢ã³ãå´ã¯èªåã®ãããªå®è£ ã§ã§ãããããµã¼ãã¼ã®ç®¡çè ã®ä¸è©±ã«ãªãå¿ è¦ãã¾ã£ããããã¾ããããã®æ¹ã楽ã§ãããã¨ãããã¨ã§ãã¨ããã俺ã¯ç®¡çããããªãã®ã§ãããããããã©ãã§ããã ãæä½éã®æéã§ããããããããã»ããã¢ãããè¶ ç°¡åã«ã§ããããã«ãã¦ããã¨ããããããã dotcloud ã¨ãã«ããã«è¨ç½®ã§ããã¬ãã«ã§ããã ã§ãã¯ã©ã¤ã¢ã³ãå´ã¯ã©ããã£ã¦ã¤ããã¯ãããããããã¨ãããã¨ã ãã©ããé常ã«ç°¡åã§ã以ä¸ã®ããã«ä¸å HTTP Request ããããã
http://atnd.org/events/16157 JPAããã®æ¯æ´ãããã¾ãã¦ãdotcloud çãªãããã§ã¦ã§ãã¢ããªããããã¤ããããã®ç°å¢ãæ§ç¯ããæ¹æ³ã«ã¤ãã¦ã®çºè¡¨ããã¦ã¿ã¾ããã å½æ¥ã®çºè¡¨è³æã¯ãã¡ãã«ãªãã¾ãã http://tokuhirom.github.com/talks/20110611-fukuokapm-dotcloud/#0 ä»ã®æ¹ã®çºè¡¨ãªã©ã¯å種ããã°ãã覧ããã ãã¨ãã¦ãåãæãããã¨ã«ã¤ãã¦æ¸ãã¦ããã¾ãã Fukuoka.pm ã§ã¯ãShibuya.pm ã§ã¯ãããªãã¯ã¼ã¯ã·ã§ãããªã©ããã£ã¦ãå½¢æ ãã¡ããã¦é¢ç½ããªã¼ã¨ãããã¾ããã ï¼ã¨ããã perl-casual ã¨ãã§ã¯ã¼ã¯ã·ã§ããã¨ãããã°ããã¨ããã£ãï¼ ãã¨å°æ¹PM大éåã¿ãããªä¼ç»ããããã ãã©ãåºå¼µFukuoka.pmã¨ããã£ããããããããªããã¿ãããªãã¨ããã£ã¦ã¿ãããã¾
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
Perl5 ã® PSGI ã¢ããªã±ã¼ã·ã§ã³ãæ»ã¬ã»ã©ç°¡åã«ã¤ããã dotcloud ã® beta çããªãªã¼ã¹ãããä¸é¨ã® Perl monger ã« invitation ãã°ãã¾ããã¦ããã¨ã¨ãã«ãid:miyagawa ãããdotcloud ã« join ããã¨ãããã¥ã¼ã¹ããããã´ã¼ã«ãã³ã¦ã£ã¼ã¯ã¾ã£ãã ãªãã®æ¥æ¬ã® Perl Mongers ã®ããã ã§ã¯ç©ºåã®ã³ã³ãã£ãã¼ã ã¨ãªã£ã¦ãã¾ãã ã¨ããããã§ãDotCloud 㧠hello world ãããæ¹æ³ã sudo easy_install dotcloud dotcloud create tokuhirom dotcloud deploy --type perl tokuhirom.hello mkdir hello cd hello echo "sub {[ 200, [ 'Content-Type' => 'te
UNIVERSAL::require$module->require() or die $@ ã£ã¦ãããã®ã cool ã¨ãã話ã§ã¯ããã®ã ããUNIVERSAL ãã¤ããã®ã«æµæããããããããªãã ããã¦ãModule::Load ã«ããããåªä½æ§ã¯ã¨ãã«ãªãã®ã§ãæè¿ã¯ãã¾ãã¤ãã£ã¦ãªãã Class::Loadä¸è¨2ã¤ã«ããã¹ãã¨ãæ©è½ããããããã㯠Moose ããæ´¾çããããã±ã¼ã¸ã§ãMoose ã® is_class_loaded ç¸å½ã®æ©è½ãããªãã¦ããã Moose ç±æ¥ã¨ãããã¨ã§ã%INC ã®ä¸ã«ã¯ãã£ã¦ããªãã¦ããpackage ããã§ã«ã¤ãããã¦ããã°ããã¡ã¤ã«ããã¿ã«ãããªãã¨ããç¹ããããã¦ãããå ·ä½çã«ã¯ package Foo; sub bar { } package main; use Class::Load qw/load_class/; load_c
äºææ§ã大äºã«ãã¦ãããããã¼ã¸ã§ã³ã¢ãããã¦ããã®ã¾ã¾ãããã£ã¦ããã®ã¯ãããããã§ããããã¼ã¸ã§ã³ã¢ããããããã®ä½æ¥ã«èªåã®æéãã¨ãããããªãã§ããã ãããã£ãæå³ã§ã¯ Python ã¯ã®ãããã®é¸æè¢ã«ãªãã¾ããã æ£è¦è¡¨ç¾ãªãã©ã«ãããããæ£è¦è¡¨ç¾ãªãã©ã«ããªãè¨èªã¯ãããããã¯ã³ã©ã¤ãã¼ã¨ãã§ã¤ãããªãã®ã§ãã¯ã³ã©ã¤ãã¼ç¨ã®è¨èªãããä¸åãã¼ãã¦ããå¿ è¦ãããã¾ãããæ£è¦è¡¨ç¾ã¤ãããã¨ãã£ã±ã便å©ã§ããã ãããããã¨ããããã¢ã¸ã¥ã¼ã«ããããããããããã£ã node.js 㧠SMTPTLS ã§ã¡ã¼ã«ããããã¹ã¯ãªãããã¤ãããã¨ããã£ãããSMTP TLS ã§ããã©ã¤ãã©ãªãã¿ãããã¾ããã§ããã ã¡ãã£ã¨ããã¹ã¯ãªããããããã¨ããã¨ãã«ãããã«ã©ã¤ãã©ãªãã¿ã¤ããã¨ããã®ã¯ãã¯ã Perl ã¯ä¾¿å©ã§ãããPerl ã ã£ãã Email::Send::SMTP::T
perlbrew ã¯æ¬æ¥ãããããã perl ãã¤ãããã¨ã主ç¼ã ããå¤ã perl ã§ãã¹ãããç®çã«ã使ç¨ãããã¨ãã§ããã % perlbrew install perl-5.8.9 -D=usethreads -as perl-5.8.9-usethreadsã®ããã«ããã¨ããªãã·ã§ã³ã¤ãã¦ããã㪠perl ãçæãããã¨ãç°¡åã§ããã perl5.6.2 ã perl5.8.1 ãªã©ã¯ãã®ã¾ã¾ã§ã¯ã¤ã³ã¹ãã¼ã«ã§ããªããããã®ãããªå ´åã«ã¯ã以ä¸ã®ããã«ä¿ºã® repository ãããããé©ç¨æ¸ã®ãã©ã³ãã co ãã¦ã¤ããã¨ãã¨ãããã OK ã§ããããªãã git ããç´æ¥ã¤ã³ã¹ãã¼ã«ããä»çµã¿ãããã£ã½ãã£ããã©ããã¾ãã¤ãããããããããªãã£ãã®ã§åæã git clone git://github.com/tokuhirom/perl.git cd perl git
use DBIx::Inspector; my $dbh = DBI->connect(...) or die; my $inspector = DBIx::Inspector->new(dbh => $dbh); my @tables = $inspector->tables; for my $table (@tables) { print " pk:\n"; for my $pk ($table->primary_key) { print " ", $pk->name, "\n"; } print " columns:\n"; for my $column ($table->columns) { print " ", $column->name, "\n"; } }DBI supports introspection, but it is a too generic and funct
conditions precedent: use daemontools & multilogPoints: make DB connection after forkdo not trap SIGTERM while calling queue_wait(), so that the process can be shut down while waiting for the response from q4mremove $time and add $PID for log. Because I'm using multilog. It prints the tai64n automatically(and, tai64n is better).package OreOre::Worker::Base; use strict; use warnings; use parent qw/
larry wall ãã, obra ãã, miyagawa ããã¨ãã3人ã®è±ªè¯ãªã¡ã¤ã³ã¹ãã¼ã«ã¼ãæ±å·¥å¤§ã®ç¶ºéºã§åºãä¼å ´ãããã¦ãã天æ°ã«ããã¾ããä»å¹´ã® YAPC ãç¡äºã«ãããã¾ããã! ãã®ä¼å ´ã®é åã®ä¸ã¤ã¯ããã®åºãèçã«ãã£ãããã£ã¦ã¿ããªã§è©±ããã¨ãªã®ã§ã天æ°ãããã£ãã®ã¯æ¬å½ã«ããã£ãã§ããä»å¹´ã¯çå°ã§é¤åããã£ã¦ãã¦ã¿ããªã§èçã§ãã¼ã«ãã®ã¿ãªããããããã¯ãªãã¦ãããããã£ãã§ãã YAPC ã£ã¦ããã¼ã¯ãããã®ããã¡ãããã®ãããåå¼·ã«ãªããã ãã©ãããããªäººã¨æ°è»½ã«ã¯ãªãããããã£ã¦ãããããããã®ãéè¦ã ãããã¨ãããã®ã§ãæ¯å¹´èçã§ã ã¹ã£ã¦ã¾ããã©ããã¦ããã¼ã¯ã 㨠1対å¤ã«ãªã£ã¦ãã¾ãã¾ãã®ã§ã ãã¦ãä»å㯠yusukebe 主å¬ã®åå¤ç¥ã«ã¯ãã¾ãã¾ããããããã§ã¯å㯠Amon2 ã®ã話ãããã¦ããã ãã¾ããã大æ ã§ã¯ãWAF ãã¤ããããã®éå ·ãã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}