Movable Type ã«ã¯ãMT::App ã¨ãã Web ã¢ããªã±ã¼ã·ã§ã³ãè¨è¿°ããããã®åºåºã¯ã©ã¹ãããã¾ãããçµæ§æ £ããå¿ è¦ãªã®ã¨çããããã¨ããã£ã¦ããã£ã¨æ軽㫠Sinatra like ã«ã¢ããªã±ã¼ã·ã§ã³ãè¨è¿°ã§ããããã¬ã¼ã ã¯ã¼ã¯çãªãã®ã欲ãããªã¼ã¨å¸¸ã æã£ã¦ãã¾ããã ã¨ãããããããããããããã¨ã¯æ®ã£ã¦ãã¾ãããåãã¨ããã¾ã§ã§ããã®ã§ãç´¹ä»ãã¾ãã ç¾ç¶ã§ã¯ãPSGI ã§ã®ã¿åä½ãã¾ãã åå MT::App::Lite æ¦è¦ 以ä¸ã®ãããªæãã§MTã¢ããªã±ã¼ã·ã§ã³ãè¨è¿°ãã¾ãã package MyLiteApp; use strict; use MT::App::Lite; setup Renderer => 'Xslate'; get '/' => sub { my $app = shift; $app->render('index.tt', { blog
C84ã®å®£ä¼ã§ããPerlã®å ¥éæ¸ãæ¸ãã¾ãããå 容ã¯ãé ã¡ãããããã«ã¼ã¯ãã¦ã«Perlãæãã¦ãããã¨ããå 容ã§ã以ä¸ã®å 容ãå«ãã§ãã¾ãã Perlã®éçºç°å¢ãæ´ããã ã¹ã«ã©ã¼ é åã¨ãªã¹ã ããã·ã¥ ãµãã«ã¼ãã³ ã³ã³ããã¹ã æ£è¦è¡¨ç¾ ãªãã¡ã¬ã³ã¹ ãªãã¸ã§ã¯ãæå å 容ã¯ãããããPerlã®åºæ¬ãããªãã¸ã§ã¯ãæåã¾ã§å ¥ãã¾ãããplenvãcpanmãªã©ãå©ç¨ãã¦ãã¾ããå 容ã¯ãå è¦ãããªããªãããã«ä¼è©±å½¢å¼ã§é²ãã§ããã®ã§æ¯è¼çèªã¿ãããã®ã§ã¯ãªããã¨æã£ã¦ãã¾ããå·çã®æéããã¾ããªãã£ãã®ã§ãããããä¸åããããã¨æãã¾ãããããèå³ãããã¾ããããã²è²·ãã«æ¥ã¦ãã ãããã¹ãã¼ã¹ã¯ã3 æ¥ç® æææ¥ æ±5ãã¼ã« ã11b é ãªã©ã¯ãã§ãããããããé¡ããã¾ãï¼ï¼ãããã¾ãã§ããä¸èº«ã¯18ç¦ã§ã¯ãªãã§ãï¼ï¼
Monoceros ã¨ããPSGI/Plackãµã¼ãæ¸ãã¾ãã https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros StarmanãStarletã®ãããªPreforkãªã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã§ã¯ãã³ãã¯ã·ã§ã³ã®ç¶æã¤ã³ã¼ã«ããã»ã¹ã®å æãªã®ã§ãHTTPã®KeepAliveã¯ç¡å¹ã«ããã®ãä¸è¬çã§ãããè² è·ã®é«ããµã¼ãã¹ã§ã¯TIME_WAITç¶æ ã®ã½ã±ãããæºã¾ã£ãããSYN-ACKã®åéåé¡ãªã©ãããKeepAliveã使ãããã¨ãã欲æ±ããã£ãããªãã£ãããã¾ãã Monoceros ã¯ãªã¯ã¨ã¹ããå¦çããworkerã®ä»ã«ãã¤ãã³ãããªãã³ã§åãã³ãã¯ã·ã§ã³ç®¡çããã»ã¹ãç«ã¦ã¦ãã¯ã©ã¤ã¢ã³ãããã®æ¥ç¶ã½ã±ãããunix domain socketã使ãããã»ã¹éã§ããã¨ããã¾ããå¾ æ©
ã¯ã¦ãªã°ã«ã¼ãã®çµäºæ¥ã2020å¹´1æ31æ¥(é)ã«æ±ºå®ãã¾ãã 以ä¸ã®ã¨ã³ããªã®éããä»å¹´æ«ãç®å¦ã«ã¯ã¦ãªã°ã«ã¼ããçµäºäºå®ã§ããæ¨ããç¥ãããã¦ããã¾ããã 2019å¹´æ«ãç®å¦ã«ãã¯ã¦ãªã°ã«ã¼ãã®æä¾ãçµäºããäºå®ã§ã - ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ ãã®ãã³ãæ£å¼ã«çµäºæ¥ã決å®ãããã¾ããã®ã§ã以ä¸ã®éãã確èªãã ããã çµäºæ¥: 2020å¹´1æ31æ¥(é) ã¨ã¯ã¹ãã¼ãå¸æç³è«æé:2020å¹´1æ31æ¥(é) çµäºæ¥ä»¥éã¯ãã¯ã¦ãªã°ã«ã¼ãã®é²è¦§ããã³æ稿ã¯è¡ãã¾ãããæ¥è¨ã®ã¨ã¯ã¹ãã¼ããå¿ è¦ãªæ¹ã¯ä»¥ä¸ã®è¨äºã«ãããã£ã¦æç¶ãããã¦ãã ããã ã¯ã¦ãªã°ã«ã¼ãã«æ稿ãããæ¥è¨ãã¼ã¿ã®ã¨ã¯ã¹ãã¼ãã«ã¤ã㦠- ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ ãå©ç¨ã®ã¿ãªãã¾ã«ã¯ãè¿·æãããããããã¾ãããã©ãããããããé¡ããããã¾ãã 2020-06-25 è¿½è¨ ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ã®ã¨ã¯ã¹ãã¼ããã¼ã¿ã¯2020å¹´2æ28
注ï¼ï¼ã¾ã æ¬çªã«ã¯ãããã¤ãã¦ã¾ãããã確èªãã¹ãã§ã¯ä½¿ãã¾ããï¼åä½ãã¹ãã§ã¯ä½¿ããªããããã¾ã§æ¬çªããªããã®å½¢ã§åãã¦ããã®ã確èªãããæã ãï¼ã 注ï¼ï¼ä»¥ä¸ã¹ã¯ãªããã¯éçºè ã®å´åãæ¸ããããã®ã¹ã¯ãªããã§ãä¸å ¨ãªãããã¤æ¹æ³ã ã¨ãè¨ãããã§ã¯ããã¾ããã 注ï¼ï¼æ£ç´ã·ã§ã«ã¹ã¯ãªããã¯ç´ 人ã§ãã 追è¨ï¼envdirã¯ã©ãããã¨è¨ããã件ãæåãããæãåºããªãã¦cat ENVãªãã¦ãã¦ããã ãã©ãè¨å®å¤ãããã£ã¦å¾ããããã¯ãããã¨ãããããããenvdirã§ã¯ãããå®ç¾ã§ããªãã»ã»ã»æ°ããããã®ã§ãä»åã¯ä»¥ä¸ã§ãhirose31 ãããç¾ãã ã¹ã¯ãªãããæä¾ãã¦ãããã®ã§ãããããã¼ã¹ã«ãã¦githubã«ããã¦ããã¾ãããææ°çã¯ããã§ãã ããæè¿ã®Plackã ã¨ãStarmanã¨ãã使ã£ãWebã¢ããªã±ã¼ã·ã§ã³ã®ãã³ãã«ã»ãããã¤ã«ã¤ãã¦ã¡ãã£ã¨åºã¾ãã¤ã¤ããã®ã§ãæ¸ãã¦ã¿ã
è±èªåã§ã¯ããªãåããPerlã§éçºãç¶ãããã¨ã®ãªã¹ã¯ã«ã¤ãã¦èªããã¦ããããããããå ·ä½çãªå¼å®³ãåºã¦æ¥ã¦ãããããªã®ã§ãããã¤ã¾ãã§ã¡ã¢ãæ¥æ¬ã§ãããé ããªãæªæ¥ã ã¨æãã è¥æã¨ã³ã¸ãã¢ã®ä¸è¶³Objective-Cã®ããã«éè¦ãé¼è¿«ãã¦ããã®ã«äººæã®ä¾çµ¦ãå¢ããé給ãã¹ããããèµ·ã£ã¦ããããã§ã¯ç¡ããéè¦ãä¾çµ¦ãæ¸ãã¨ããç¶æ³ä¸ã§ãããã ãéè¦ãä¸åã£ã¦ããã¨ãæ§è³ªã®æªãç¶æ³ãPerlã«èµ·ãã¦ãããç¹ã«æ·±å»ãªã®ã¯å®ä¾¡ãªè¥æã¨ã³ã¸ãã¢ã®æ¡ç¨ã絶æçã«é£ããã¨ããç¾å®ã ãRubyãå°é ãã¦æ°å¹´çµã¡Pythonãã¡ã¤ã³ã¹ããªã¼ã ã®å é ãçªã£èµ°ã2013å¹´ã«ããã¦æ°ããPerlãåå¼·ãããã¨ããè¥è ã¯ãã»ã©ã®ç©å¥½ãããããªãã30~40æ³ã®Perlã¨ã³ã¸ãã¢ãéãã®ã¯ããã»ã©é£ããç¡ãã ãããã³ã¹ããããããå®ä¾¡ãª20代ååã®è¥æã¨ã³ã¸ãã¢ãéãããã¨ããä¼æ¥ã®æãã¨ã¯è£è ¹ã«Perlãæ°ã
æãããã¨ã¯ãã£ã¦ããPerlãéå»2å¹´ã§7000ãããæ°ãå¢ããã¦ãã¦ããããã ããã¾ã ã¾ã ã¢ã¯ãã£ãã§ããåããä¸è©±ã«ãªãã¾ããããã¢ãããã¼ãããã¦ããã½ã¼ã¹ã³ã¼ããèªãã§ã¢ã«ã´ãªãºã ã®åå¼·ãããã¦ããã£ããã価å¤ã®é«ãã¯å¥å¨ã§ããæ´å²ãããåãããã«ã¼ãªäººãå¤ãã¦ã¬ãã«ãé«ãã¤ã¡ã¼ã¸ã§ããã¡ãã£ã¨åã«ãã¨ã³ã¸ãã¢ãªãgithubã®ã¢ã«ã¦ã³ãã§ã½ã¼ã·ã£ã«ã³ã¼ãã£ã³ã°ã§ãã¿ãããªããºã¯ã¼ããæµè¡ã£ã¦ã¾ãããã20ä¸ç´ããsourceforge.netã®ã¢ã«ã¦ã³ãæã£ã¦ãã人ã®æ¹ãæç¶ãªã¼ã©ãæããããçãªã ããã¦ãPythonãPerlãæããã¨ã¯ããããã®ç«å ´ãã§ã«è ãããã¦ãã¾ããnode.jsã®ããã±ã¼ã¸ã®npmã§ããGoogle Trendsã§è¦ãã¨ã2010å¹´8æãããã«ã§ããã°ããããªãã¨ããã¨ããã§ããããã§ã«23300ããã1ã¶æã§ã1500ãããæ°ã伸ã°ãã¦ãã¾ãã
éçºã¡ã¢ãã®3ã§ããä»å㯠Perl ã®ãã¯ãªãã ä½å¹´ãåã«ä½ã£ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã®ã³ã¼ããéãã¦ã¿ããé»æ´å²ãªã³ã¼ããåºã¦ãã¦æ鬱ãªæ°åã«ãªãããããªçµé¨ããã¾ããããç§ã¯ããã¾ãããã£ã¨ãããªç¾å®ããç®ãèãã¦çãã¦ãã¾ããã ãã¦ãå æ¥ Perl + CGI ã§æ¸ã㦠Apache::Registry ã§é«éåãã¦ãããå®è¡ç°å¢ã Apache ã«ççãã CGIã¢ããªã±ã¼ã·ã§ã³ãçºè¦ãã¾ããããããã£ãä¸ããä½ãç´ãããæ°æã¡ããã£ã¨å ªãã¦ãããã Plack åãããã¨ãªãã©ã¼ã ãã¦ããã¨ãã¾ãããããã®éç¨ã以ä¸è¨ãã¾ããåçããã©ã¢ã»ã¢ãã¿ã¼! ・・・ã¨ãã¯æå¾ ãããå°éãªå¤æ´ãç©ã¿éãã¦ããã®ãã³ãã§ãã æ¹é ãããªãã³ã¼ããããããæ¸ãæãã¦ããã¨ããããã¯ã試è¡é¯èª¤ã®ããããç°å¢ã«ç§»è¡ããã¦ãããªãããªãã©ã¼ã ãé²ãã¾ããé åãã§ãããçµæçã«ãã®å¾ã®éç¨ã楽
Moo ä»å¹´ã®æ¬å½? æ°ããã¤ãããªããããç¡é£ãªæ°ããã¾ããé度çã«ã Mouse ã¨ãã¾ãããããªãã è¥å¹²ä¾åããããæ°ããããã©ãã¤ã³ã¹ãã¼ã«ãã¼ã¹ããµããã°æ°ã«ãªããªããªãããªãã¨ããããã¾ãã Class::XSAccessor ã¨ãã¤ãã£ã¦ããã§ãé度çã«ããããã¹ãããã¯éãã®ãããã ãªãçºé³ã¯ã ã¼ã ã¨ãããã (http://www.forvo.com/word/moo/) Mouse å®æãã¦ããæãããããå¾ã«ãããç¹ããªãããããã¦ãã㨠xs é¨åããããã®ã§ãgfx 以å¤ãã¡ã³ãã§ããªãããããããã®ãæ¬ ç¹ãã Xslate ãã¤ãã£ã¦ããå ´åã¯èªåçã« xslate ã mouse ã¤ãã£ã¦ãã®ã§ãèªç¶ã¨ Mouse ããã¼ããããã®ã§ããããã£ãæå³ã§ã¯ Mouse ã¤ãã£ã¦ãããããªã¨ããã£ã¦ããã Moose ãããããããã¯ãä»ã«ããã£ã¦ãèµ·åé度ã®
çã®ããã·ã¥ãªãã¡ã¬ã³ã¹ã return ãããé ã ã³ã¡ã³ããæ®ããªãããã°ãªãã¦ï¼ã©ããªã®ï¼ã¨ãããã¯ç½®ãã¦ããã¦ãPerlã§constant foldingãããã®ã¯æååã»æ°å¤ãªãã©ã«ããå®æ°æ±ãã§ããé¢æ°ã ãã§ãã å®æ°æ±ãã§ããé¢æ°ã¨ããã®ã¯å®ã¯æ±ºã¾ã£ã¦ãã¦ã以ä¸ã®æ¡ä»¶ãããããªãã¨constant folding ãããªãï¼ ãã®é¢æ°ã¯ å¼æ°ãåããªããã¨prototypeã§æ示çã«å®£è¨ãã¦ãããã®é¢æ°ã¯æååã»æ°å¤ãªãã©ã«ãè¿ãããã以å¤ã®å¦çãè¡ããªããã¡ãã®ã³ã¼ããå®è¡ãã¦ã¿ãã¨ããããããuse strict; use O ('Deparse'); sub not_const { 1 } sub const_num() { 1 } sub const_string() { "foo" } sub const_list() { [ qw(1 2 3) ] } sub
以å Working with Unix Processesã¨ããæ¬ãèªãã ã®ã§ããããã®æ¬ãUnixã«ãããããã»ã¹ã«ã¤ãã¦é常ã«ãããããã解説ããã¦ãã¾ãããããã§èªåã§å 容ãã¡ã¢ãã¦ã¿ãããããã«ããããªãã¨ããã調ã¹ãããåèã®ããã°ã©ã ãPerlã§æ¸ããã(ãã®æ¬ã§ã¯Rubyã§æ¸ããã¦ãã¾ã)ãã¦ã¿ãã®ã§ãããããã°ã«ã¾ã¨ãã¦ãªãã£ãã®ã§ãã¡ãã£ã¨æ¸ãã¦ã¿ã¾ãã (注æ)æ¸ãã¦ããããããé·ããªãã¾ãããèå³ã®ããæ¹ã¯ãé©å½ã«æéã®ããã¨ãã«ã§ãã©ããã Chapter 2 : Introduction ããã»ã¹ã®ãã¨ãç¥ãã¨ã³ã¼ããèªãã ãã§ã¯åãããªããããããåé¡ãåããããã«ãªãã Chapter 3 : Primer Unixã¯ã¦ã¼ã¶ç©ºéã¨ã«ã¼ãã«ç©ºéããã kernelã®æ©è½ã¯system callçµç±ã§å©ç¨ãã ã¦ã¼ã¶ç©ºéã§ã¯ããã°ã©ã ãåã manual man
Perlã§ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ãparseãããã¨æãã¨çµè¾¼ã¿ã¢ã¸ã¥ã¼ã«ã¨ãã¦ã¯ Getopt::Std 㨠Getopt::Long ããããããlong style option *1 ã¤ã¾ã --option-name ã®ãããªãªãã·ã§ã³ã解éãã¦ãããã®ã¯ Getopt::Long ã ãã ããªã®ã§æ®éã¯ãã¡ãã使ããã ãã ã 絶対ã«ããã©ã«ããã¤ã¾ã以ä¸ã®ããã«ãã¦ä½¿ã£ã¦ã¯ãããªãã use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); ãããã¡ï¼ 絶対ãã¡ï¼ æ»ã¬ï¼ æåã«çµè«ãæ¸ã å¿ ã以ä¸ã®ããã«
In spite of having programming Perl mostly full time for the last 12 years, I still find myself learning new things about how Perl works (like the time I discovered the arcane apostrophe package separator when trying to add a possessive 's' on the end of a variable in an interpolated string). Yesterday yielded a similar epiphany when I realized how rand, srand and fork were interacting in our e-co
ã¯ã¦ãªã°ã«ã¼ãã®çµäºæ¥ã2020å¹´1æ31æ¥(é)ã«æ±ºå®ãã¾ãã 以ä¸ã®ã¨ã³ããªã®éããä»å¹´æ«ãç®å¦ã«ã¯ã¦ãªã°ã«ã¼ããçµäºäºå®ã§ããæ¨ããç¥ãããã¦ããã¾ããã 2019å¹´æ«ãç®å¦ã«ãã¯ã¦ãªã°ã«ã¼ãã®æä¾ãçµäºããäºå®ã§ã - ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ ãã®ãã³ãæ£å¼ã«çµäºæ¥ã決å®ãããã¾ããã®ã§ã以ä¸ã®éãã確èªãã ããã çµäºæ¥: 2020å¹´1æ31æ¥(é) ã¨ã¯ã¹ãã¼ãå¸æç³è«æé:2020å¹´1æ31æ¥(é) çµäºæ¥ä»¥éã¯ãã¯ã¦ãªã°ã«ã¼ãã®é²è¦§ããã³æ稿ã¯è¡ãã¾ãããæ¥è¨ã®ã¨ã¯ã¹ãã¼ããå¿ è¦ãªæ¹ã¯ä»¥ä¸ã®è¨äºã«ãããã£ã¦æç¶ãããã¦ãã ããã ã¯ã¦ãªã°ã«ã¼ãã«æ稿ãããæ¥è¨ãã¼ã¿ã®ã¨ã¯ã¹ãã¼ãã«ã¤ã㦠- ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ ãå©ç¨ã®ã¿ãªãã¾ã«ã¯ãè¿·æãããããããã¾ãããã©ãããããããé¡ããããã¾ãã 2020-06-25 è¿½è¨ ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ã®ã¨ã¯ã¹ãã¼ããã¼ã¿ã¯2020å¹´2æ28
My image management system for work is really cranking. It is now hosting 22 million images on a single server. Mind you itâs a beefy server, but thatâs still a lot of images. Â What still surprises me is the performance of plack + starman + inline::C. Letâs say that you need to write a piece of software that stores millions upon millions of images. Â Well, you can do that pretty easily with a stand
ã¯ã¦ãªã°ã«ã¼ãã®çµäºæ¥ã2020å¹´1æ31æ¥(é)ã«æ±ºå®ãã¾ãã 以ä¸ã®ã¨ã³ããªã®éããä»å¹´æ«ãç®å¦ã«ã¯ã¦ãªã°ã«ã¼ããçµäºäºå®ã§ããæ¨ããç¥ãããã¦ããã¾ããã 2019å¹´æ«ãç®å¦ã«ãã¯ã¦ãªã°ã«ã¼ãã®æä¾ãçµäºããäºå®ã§ã - ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ ãã®ãã³ãæ£å¼ã«çµäºæ¥ã決å®ãããã¾ããã®ã§ã以ä¸ã®éãã確èªãã ããã çµäºæ¥: 2020å¹´1æ31æ¥(é) ã¨ã¯ã¹ãã¼ãå¸æç³è«æé:2020å¹´1æ31æ¥(é) çµäºæ¥ä»¥éã¯ãã¯ã¦ãªã°ã«ã¼ãã®é²è¦§ããã³æ稿ã¯è¡ãã¾ãããæ¥è¨ã®ã¨ã¯ã¹ãã¼ããå¿ è¦ãªæ¹ã¯ä»¥ä¸ã®è¨äºã«ãããã£ã¦æç¶ãããã¦ãã ããã ã¯ã¦ãªã°ã«ã¼ãã«æ稿ãããæ¥è¨ãã¼ã¿ã®ã¨ã¯ã¹ãã¼ãã«ã¤ã㦠- ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ ãå©ç¨ã®ã¿ãªãã¾ã«ã¯ãè¿·æãããããããã¾ãããã©ãããããããé¡ããããã¾ãã 2020-06-25 è¿½è¨ ã¯ã¦ãªã°ã«ã¼ãæ¥è¨ã®ã¨ã¯ã¹ãã¼ããã¼ã¿ã¯2020å¹´2æ28
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}