ãã®è¨äºã¯âã«ç§»è»¢ãã¾ããã laysakura.github.io
ãã®è¨äºã¯âã«ç§»è»¢ãã¾ããã laysakura.github.io
HTTPS(SSLå©ç¨)ãµã¤ããSEOçã«åªéããããã¬ã³ãã§ãä¸éçã«ãHTTPSæ¥ç¶ã§ãµã¤ãéç¨ãããµã¼ãã¹ãå¢ãã¦ãã¦ãã¾ãã ãããããã¤ãã©ãã£ãã¯ãµã¤ãã«ãªã£ã¦ããã¨ããã®ããã³ãã¨ã³ãã§SSLå¦çããããã¨ãè² è·çã«ããªããªãè¾ãã®ã§ãã ã§ãApache 2.3以éã§ã¯ãShared Object Cache Providerã¨ãã¦ãmemcachedãé¸æã§ããããã«ãªã£ã¦ãã¾ãã ãã®ä»çµã¿ãå©ç¨ãã¦ãApacheã¨memcachedã並ã¹ããã¨ã§ãåãµã¼ãã§ã¦ã¼ã¶ã®SSL Session Cacheãå ±æããªããHTTPSãªã¯ã¨ã¹ããè² è·åæ£ã§ããæ§æãä½ã£ã¦ã¿ã¾ããã Webãµã¼ãã§SSLãªããã¼ã 常æSSLãå©ç¨ããWebãµã¤ããéç¨ããããã«ãSSLã¢ã¯ã»ã©ã¬ã¼ã¿ã¨ãã£ãã¢ãã©ã¤ã¢ã³ã¹è£½åã ã¨ããã½ããã¦ã§ã¢ã ã¨ApacheãNginxã®SSLã¢ã¸ã¥ã¼ã«ã使ã
éºä¼çã¢ã«ã´ãªãºã (GA)ã§ãµã¼ãã®èªåãã¥ã¼ãã³ã°ããã¾ãã GAãæ©æ¢°å¦ç¿ãä¸ã¤ã¨æ¸ãã¦ãã¾ãã¾ãããéããããªã®ã§ã¿ã¤ãã«ãå¤æ´ããã¦é ãã¾ããã éºä¼çã¢ã«ã´ãªãºã ã«ã¤ãã¦ã¯âã®åç»ãåãããããã§ã http://www.youtube.com/watch?v=yZJ1V-zv_gU ã¾ãã¯é常ã®è² è·ãã¹ããã§ããã¨ããã¾ã§æºåããå¿ è¦ãããã¾ããæ»æç¨ã®ãµã¼ããã¿ã¼ã²ããã¨(ãããã¯ã¼ã¯çã«)è¿ãå ´æã«ç¨æãã¦ãã ãããè² è·ãæããå´(Attacker)ã«ãç¸å¿ã®ã¹ããã¯ã¯å¿ è¦ã§ãã ã¹ãã¬ã¹ãã¼ã«ã¯ã³ãã³ãã©ã¤ã³ããå©ç¨åºæ¥ããã®ã§ããããªãã§ããã¾ãã¾ãããab(Apache Bench)ãªã©ã¯æåããå ¥ã£ã¦ããã®ã§æ軽ã§ãããä»åã¯ãã°ãªã¼ã³ç ´å£ãã¨ããã½ãããå©ç¨ãã¾ããï¼ã°ãªã¼ã³ç ´å£ã®ã¤ã³ã¹ãã¼ã«æ¹æ³ã¯æ¬å®¶ãµã¤ãã«è²ãã¾ãï¼ èªåãã¥ã¼ãã³ã°ãè¡ãã«ããããã¿ã¼ã²ãã
ããæãã«ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ããã³ã³ãã¹ã第4åISUCONã«åæ¦ãã¾ãããã¾ã ç¾æç¹ã§æ¬æ¦ã«é²ããã®ãããããªãã®ã§ããã1æ¥ç®ã§æ«å®10ä½ã«ãªãã¾ããã PHPã§ãååã«æ¦ããï¼ã¨æã£ãæ¹ãããããªãããGoè¨èªä½¿ãã¾ããã ãã¼ã ç´¹ä» ãã¼ã å ã注æã¯PHPã§ããï¼ ãã¼ã ç¥ç§° ãã¡ãºã¡ äºé¸ã¹ã³ã¢ 44000ã45000ãããï¼æ«å®ï¼ ã¡ã³ãã¼ ã¢ã¤ã³ã³ Twitter @do_aki @matsuu @netmarkjp è·æ¥ ã¤ã³ãã©ã¨ã³ã¸ã㢠ã¤ã³ãã©ã¨ã³ã¸ã㢠ã¤ã³ãã©ã¨ã³ã¸ã㢠å¾æè¨èª PHP Perl Python å½æ¥ã®å½¹å² å³è å·¦è ãã¡ã·ãªãã¼ã¿ ããããºã¡ã±ã¼(PHPer)ã§æåãªdo_akiå çããããã¼ã ã§ãããGoè¨èªã使ãã¾ããã å½¹å²åæ 大äºãç¹ã«ãã¡ã·ãªãã¼ã¿å¤§äºã§ããfujiwaraçµããã¶ãfujiwaraããããã¡ã·ãªãã¼ã¿ã ã¨æ
æ¨æ¥ã®ã¨ã³ããªã§ç´¹ä»ãããWebã¢ããªã±ã¼ã·ã§ã³ã® ããã©ã¼ãã³ã¹åä¸ã®ã³ã å®è·µç·¨ãã§ãããããã¤ãã¹ã©ã¤ãã追å ãã¦ããå®å ¨çãã¨ãã¦å ¬éãã¾ããã ISUCONã ãã«éãããä¸è¬çãªWebã¢ããªã±ã¼ã·ã§ã³ãSQLã®ãã¥ã¼ãã³ã°ã®åèã¨ãªãè³æã¨ãªã£ã¦ããã¨æãã¾ãã®ã§ãè¦ã¦é ãããå¬ããã§ãã ï¼è¿½è¨ï¼ ISUCON4 ãªã³ã©ã¤ã³äºé¸ã®åå ç»é²ãéå§ããã¦ãã¾ãï¼ï¼ï¼Webã¢ããªã±ã¼ã·ã§ã³ãæ¸ãã¦ããæ¹ãã¤ã³ãã©ãæ±ã£ã¦ããã¨ã³ã¸ãã¢ãéç¨ã¨ã³ã¸ãã¢ãããã²ãã£ã¬ã³ã¸ãã¦ãã ããï¼ï¼ç§ãã§ã¾ãï¼ï¼ åå ã¯ãã¡ãããââââ ISUCON4 ãªã³ã©ã¤ã³äºé¸ã®åå ç»é²ãéå§ãã¾ãã \n\n\nISUCONã ãã«éãããä¸è¬çãªWebã¢ããªã±ã¼ã·ã§ã³ãSQLã®ãã¥ã¼ãã³ã°ã®åèã¨ãªãè³æã¨ãªã£ã¦ããã¨æãã¾ãã®ã§ãè¦ã¦é ãããå¬ããã§ãã\n\n## ï¼è¿½è¨ï¼\n\nISUCON4 ãªã³
MySQL 5.1ã®mysqldumpslowã使ãã¨ãã¥ã¼ãã³ã°ã楽ã«ãªãï¼ã¨ãã話é¡ã§ãã mysqldumpslowã¯ãã¨ãã¨MySQLã«ä»å±ãã¦ãããã¼ã«ã§ãã¹ãã¼ã¯ã¨ãªãã°ãéè¨ãã¦ããããã®ã§ããããèªä½ã¯MySQL 5.1ã§ç¹ã«å¤ãã£ãã¨ããã¯ããã¾ããããã¹ãã¼ã¯ã¨ãªãã°æ¬ä½ã®æ¹ãæ©è½å¼·åããã¦ãããããçµã¿åãããã¨ãªããªã便å©ã«ãªã£ã¦ãã¾ããMySQL 5.1ã«ãããã¹ãã¼ã¯ã¨ãªãã°ã®ä¸»ãªæ©è½å¼·åã¯ä»¥ä¸ã®ä¸ç¹ã§ãã long_query_timeã«1ç§æªæºã®å¤ãè¨å®ã§ããããã«ãªã£ãã åºåå ãè¨å®ã§ããããã«ãªã£ãã ãããã®è¨å®ããªã³ã©ã¤ã³ã§å¤æ´ã§ããããã«ãªã£ãã ããã§ã©ããªããã¨ããã¨ãMySQLã®æ§è½åæããããã¨æã£ãã¨ãã«ããµã¼ããæ¢ããã«ãã®å ´ã§ mysql> set global slow_query_log = 1; mysql> set glob
SQLã¢ã¿ãã¢ã«ãã㼠第7åæ§è½æ¹åã®éµãã¤ã³ããã¯ã¹ã®ç¹æ§ãç¥ãï½B-treeã¨ããã·ã¥ãï¼1ï¼B-tree ã¯ããã« ãã¼ã¿ãã¼ã¹ãæ±ãä»äºããã¦ããã¨ãããã©ã¼ãã³ã¹ã®åé¡ã«æ©ã¾ããããã¨ã¯æ¥å¸¸è¶é£¯äºã§ããã¨ãã«æè¿ã¯ããã¼ã¿ãã¼ã¹ã«æ ¼ç´ããããã¼ã¿éãé£èºçã«å¢ãããµã¼ãã®CPUãã¡ã¢ãªã¨ãã£ããã¼ãé¢ã®å¢å¼·ã ãã§ã¯è¿½ãã¤ããªããã¨ãå¤ãããã¾ãã ãã®ãããªã±ã¼ã¹ã«å¯¾å¿ãããããDBMSã¯æ§è½æ¹åã®ããã®æ段ãå¤ãç¨æãã¦ãã¾ãããã®ä¸ã§æãã³ã¹ãããã©ã¼ãã³ã¹ã®è¯ãæ¹æ³ããã¤ã³ããã¯ã¹ï¼ç´¢å¼ï¼ã§ããã¢ããªã±ã¼ã·ã§ã³ã«ããã¼ãæ§æã«ãå½±é¿ãä¸ããã«å®è¡ã§ãããã¾ããããªããã°ããã«åé¤ã§ããã¨ããæ軽ãã大ããªé åã§ãå¹æã¯ãã°ãã°çµ¶å¤§ã§ãã ã¤ã³ããã¯ã¹ã«ã¯ãããããªç¨®é¡ããããã¾ãDBMSã«ãã£ã¦ããµãã¼ããã種é¡ã«å·®ãããã¾ãããæ¬ç¨¿ã§ã¯æãéè¦ãª2ã¤ãåãä¸ãã¾ãããã
ãµã¼ãã¹çµäºã®ãç¥ãã ãã¤ãYahoo! JAPANã®ãµã¼ãã¹ããå©ç¨ããã ãèª ã«ãããã¨ããããã¾ãã ã客æ§ãã¢ã¯ã»ã¹ããããµã¼ãã¹ã¯æ¬æ¥ã¾ã§ã«ãµã¼ãã¹ãçµäºãããã¾ããã ä»å¾ã¨ãYahoo! JAPANã®ãµã¼ãã¹ããæ顧ãã ããã¾ãããããããããé¡ããããã¾ãã
JavaScriptãªã©ã®ã¹ã¯ãªããè¨èªã¯åä½ãé ããæé©ãªããã©ã¼ãã³ã¹ãå¾ãã«ã¯C/C++ã§å®è£ ããªããã°ãªããªãã¨ãã常èã«æãã å é²çãªè¬æ¼ã話é¡ã«ãªã£ã¦ãã¾ãããã®è©±é¡ã®çºç«¯ã¯2012å¹´10æ7æ¥ãã10æ8æ¥ã¾ã§ãã«ãªã³ã§éå¬ãããJSConf.euã§Felix Geisendörferæ°ãè¡ã£ãè¬æ¼ã§ãã å½¼ã®è¬æ¼ã®é¡æã¯node.jsããMySQLã«æ¥ç¶ããçºã®ãã¤ã³ãã£ã³ã°ã®ããã©ã¼ãã³ã¹ã«çç®ãã¦ãã¾ãã2010å¹´å½æãnode.jsã«ã¯MySQLã®ãã¤ã³ãã£ã³ã°ãåå¨ãã¦ããããå¢äºããä½ã®node-mysqlã¢ã¸ã¥ã¼ã«ãéçºä¸ã®ç¶æ ã§ããããã®ã¢ã¸ã¥ã¼ã«ã¯JavaScriptã§ãã¤ããªã解æãã¦ããJavaScriptã®ã¿ã§éçºããã¦ãã¾ããããã®ç¶æ³ãåãã¦Felixæ°ãæ°ãã«node-mysqlã¢ã¸ã¥ã¼ã«ãæ°è¦ã«éçºãå§ãã¾ããããã®ã¢ã¸ã¥ã¼ã«ãJavaScri
Webããã©ã¼ãã³ã¹ ãã¹ããã©ã¯ãã£ã¹ Last updated: 02 October 2012 翻訳ï¼@t32k Webãã¼ã¸ãPage Speedã§èª¿ã¹ãã¨ã«ã¼ã«ã«æºæ ãã¦ããªããã®ãæ示ãããããã®ã«ã¼ã«ã¨ããã®ã¯ãä¸è¬çã«ããªããéçºæ®µéã«ããã¦åãå ¥ããã¹ãããã³ãã¨ã³ãã®ãã¹ããã©ã¯ãã£ã¹ã ãããªããPage Speedã使ç¨ãããã¨ãã¾ãã¨ãç§ãã¡ã¯ãã®åã«ã¼ã«ã«ã¤ãã¦ã®ããã¥ã¡ã³ããæä¾ããï¼ãã¶ãã¡ããã©æ°ãããµã¤ããéçºä¸ã§ãã¹ãããæºåãæ´ã£ã¦ãªãã ããï¼ããã¡ããããããã®ãã¼ã¸ã¯ãã¤ã§ãåç §ãããã¨ãã§ãããç§ãã¡ã¯ããªãã®éçºããã»ã¹ã«åãå ¥ãã¦ãããããã«ããã®ãã¹ããã©ã¯ãã£ã¹ãå®è£ ããããã®æ確ãªãã£ããã¹ã¨ææ¡ãæä¾ããã ããã©ã¼ãã³ã¹ ãã¹ããã©ã¯ãã£ã¹ã«ã¤ã㦠Page Speedã¯ã¯ã©ã¤ã¢ã³ãå´ããã®è¦³ç¹ã§ããã©ã¼ãã³ã¹ãè©ä¾¡ããä¸è¬çã«ãã¼
Clicking the âBranch thisâ button next to a post lets you start your own branch to talk about it. Branching a post is perfect for when you have something to say about someoneâs post or want to go on a tangentâwithout taking the whole conversation off track. Join our beta so you can branch posts, too.
iperf ã¯ããããã¯ã¼ã¯ã«TCP/UDPã®ãã©ãã£ãã¯ãéä¿¡ãããã©ã¼ãã³ã¹ã測å®ãããã¼ã«ã§ãããã使ã£ã¦èªå® ã®ãããã¯ã¼ã¯é度ã診æããäºãã§ãããiperf ã¯Linuxã®ãªã¼ãã³ã½ã¼ã¹ã¨ãã¦å ¬éããã¦ãããWindowsçã®å®è¡ãã¡ã¤ã«ãç¡åã§ãã¦ã³ãã¼ãã§ããã jperf ã¯ãiperf ã« Java ã§GUIã追å ãããã®ã§ãããã«ä½¿ãããããªã£ã¦ãããããããWindows 7 ã§ã¯Java ãã¤ã³ã¹ãã¼ã«ããã ãã§ã¯ãã¡ã§ãpath ãè¨å®ããªããã° ã'javaw 'ãè¦ã¤ããã¾ããããã¨è¡¨ç¤ºãããã®ã§ã¡ãã£ã¨æ©ã¿ã¾ãããã»ã»ã» iperf ã¯ã2å°ã®PCéã§é度ã測å®ããã½ããã¦ã§ã¢ã§ãçæ¹ããµã¼ããçæ¹ãã¯ã©ã¤ã¢ã³ãã«è¨å®ãã¦æ¸¬å®ããã¾ããä»åã¯ãWH-G300DR ã®LANã«æ¥ç¶ããPC(PhenomII 955 3.2GHz)ããµã¼ãã«è¨å®ãã¦ãNotePC
ããã«ã¡ã¯ãkeiã§ãã ä»åã¯ãMySQLã®ãã¥ã¼ãã³ã°ã«å¤§æ´»èºãªãJet Profilerãã¨ãããã¼ã«ããç´¹ä»ãã¾ãã Jet Profilerã¨ã¯ Jet Profilerã¯ãMySQLåãã®ã¯ã¨ãªã¢ãã©ã¤ã¶ã§ãã ã¯ã¨ãªãã¥ã¼ãã³ã°ã¯ãDBããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ã®ä¸ã§ãéè¦ãªä½æ¥ã®1ã¤ã§ããã Jet Profilerã使ãã°ããã®ä½æ¥ãGUIã§ç´æçã«è¡ããã¨ãã§ãã¾ãã ããªã¼ã¦ã§ã¢ã®å½¢æ ã§æä¾ããã¦ãããæ©è½éå®çã§ããã°ç¡æã§å©ç¨ãããã¨ãã§ãã¾ãã è³¼å ¥ããå ´åã¯ã$499ã¨ãªãã¾ãã 詳細æ å ±ããã¦ã³ãã¼ãã¯å ¬å¼ãã¼ã¸ããã©ããã http://www.jetprofiler.com/ja/ Jet Profilerã®é å ãã®1ãå°å ¥ã®ãããã é常ã®Windowãã·ã³ã«ãæ®éã®ã¢ããªã±ã¼ã·ã§ã³ãã¤ã³ã¹ãã¼ã«ããæè¦ã§ã¤ã³ã¹ãã¼ã«ãå¯è½ã§ãã ã¤ã³
Zoff PCã®ã«ã©ã¼ã¿ã¤ãç¼é¡ãæç¨ãã¦ããã¤ã³ãã©å ¼ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã®bokkoã§ãã å¤ä¼ã¿ã¯å±±ç»ã -> 温æ³ã§æ ã èªé©ã«éããã¦ã¾ããããä¼ã¿æãããçèçã§ä½ã®ãã¡ãã¡ãçãã§ã(><)ã ä»åã¯pixivã§æ´»ç¨ãã¦ãããã¼ã¿ã¹ãã¢ããã®å¨è¾ºããã«ã¦ã§ã¢ã®è©±ã3åãããã«åãã¦ãããã¨æãã¾ãã pixivãæ¯ãããã¼ã¿ã¹ã㢠pixivã§ã¯ä¸»ã«ä»¥ä¸ã®2ã¤ããã¼ã¿ã¹ãã¢ã¨ãã¦æ´»ç¨ãã¦ãã¾ãã MySQL KyotoTycoon MySQL pixivã§ã¯ã¦ã¼ã¶ãã¤ã©ã¹ããããã¯ãã¼ã¯ããããã¯ãããã«é¢é£ããæ å ±ã¨ãã£ããµã¼ãã¹ã®æ ¹å¹¹ã«é¢ãããã¼ã¿ã¯MySQLã«ä¿åãã¦ãã¾ãã ããã¯MySQLã®é«ãä¿¡é ¼æ§ã®ã»ãã«ããã¯ã·ã社å ã§MySQLã®éç¨ã«é¢ãããã¦ãã¦ãèç©ããã¦ããããèªä½ã®éç¨ãã¼ã«ç¾¤ãå å®ãã¦ããã¨ããã®ã大ããªçç±ã§ãã KyotoTycoon Kyot
JavaScriptã®ããã©ã¼ãã³ã¹ãä¸ãã13ã®ãã¯ãã㯠ä¸é¨æ訳ããã(ç¹ã«é¢æ°ã«ã¤ãã¦ã®11ã¨13)ãæ·±ãç解ãããæ¹ã¯ã¹ã©ã¤ããåç»ã観ããã¨ããªã¹ã¹ã¡ã (å è¨äºï¼ http://www.jonefox.com/blog/2012/07/10/13-javascript-performance-tips/ - å æ¥ãGoogleã®ããã¨ã«ã»ã¯ãªãã©ã¼ãã¯"Google I/O 2012"ã«ã¦ãV8ã§æã¡ç ´ãJavaScriptã®ã¹ãã¼ããªããããã¨é¡ããç´ æ´ãããè¬æ¼ãè¡ã£ãããã®ä¸ã§å½¼ã¯ãJavaScriptã³ã¼ãã§å®è·µã§ãã13ã®ã·ã³ãã«ãªæé©åææ³ãç´¹ä»ãã¦ããããããã¯Chromeã®V8 JavaScriptã¨ã³ã¸ã³ã®ã³ã³ãã¤ã«ãå®è¡é度ãä¸ããã³ã¼ããéããããã®ã ãå½¼ã¯ãããã«ã¤ãã¦ã®å¤ãã®èª¬æãè¡ãªã£ã¦ãããããããã ã·ã³ãã«Tipsä¸è¦§ã欲ããã¨ãããªãã以ä¸ã
ã¯ããã« ã¢ã¯ã»ã¹ãæ¥å¢ããã¨ãå¿çæéãèããæªåãããµã¤ãã¯ããã¾ãããï¼ æ®æ®µã¯200ããªç§ä»¥å ã§å®å®ãã¦ã¢ã¯ã»ã¹ããã°ãã¦ããã®ã«ãã¤ãã³ããããã£ã³ãã¼ã³ãããéå§ããç¬éãããæ®æ®µã®ï¼åãï¼åã®ã¢ã¯ã»ã¹ã殺å°ãããã®çµæãã¬ã¹ãã³ã¹ã¿ã¤ã ã3ç§ã¨ã9ç§ã¨ããããããã«ãªã£ã¦ãã¾ããã¨ã£ã¦ããã¾ãããã ãããµã¤ãã®å®ç¶ ã¤ãå æ¥ã¾ã§ããããªãµã¤ããç§ã®ç®ã®åã«ãããã¾ãããèªç¤¾ã§éå¶ãã¦ããæã½ã¼ã·ã£ã«ç³»ã®ãµã¤ããªãã§ãããã¤ãã³ãéå§æå»ã¨åæã«ã¢ã¯ã»ã¹æ°ãæ¥å¢ããã®ã§ããã¨ã¯ãããæè©®ã¯æ®æ®µã®2åã¨ã3åç¨åº¦ã®æ°ãªã®ã ãããå°ãªãã¨ã1ç§ä»¥å ã«ã¬ã¹ãã³ã¹ãè¿ãããããã®æ§è½ã¯ç¶æããããã®ã§ãã ãããå®éã¯å°ã£ããã¨ã«ãå¿çã«3ç§ä»¥ä¸ãããã£ã¦ãã¾ãå¦çã大éã«çºçãã¦ãã¾ãç¶æ³ã«é¥ã£ã¦ãã¾ã£ã¦ãã¾ãããããã¯ãã£ã¨ãã©ããã«ããã«ããã¯ãããã«éãããã¾ããã 仮説ãç«
Make a note of it: Web tech, montaineering, and so on. Note: ãã®è¨äºã¯ã3年以ä¸åã«æ¸ããã¦ãã¾ããWebã®é²åã¯éãï¼æ å ±ã®æ£ç¢ºæ§ã¯èªå·±è²¬ä»»ã§å¤æãã¦ãã ããã ã¡ã¢æ¸ãã社å 説å¾ç¨ããHTTPãªã¯ã¨ã¹ããæ¸ããã¨é«éåã§ãããï¼ãã¦ã®ã¯ããèããã©ãããããã©ããã¦ããã£ã¦ã®ã(èªè¾¼å¾ æ©æéã¾ããã§)å ·ä½çãªæ°åãåºãã¦ããã¨ãæå¤ã¨å°ãªãã£ãã®ã§ã詳ããã¯åèãªã³ã¯ã«Go! Webãµã¤ããåæããWebã¢ã㪠PageSpeed Insights WebPagetest åèè³æãªã© Webããã©ã¼ãã³ã¹æé©åã®ããã®ã³ã¼ãã£ã³ã°ææ³, MOL @importã使ãã¹ãã§ãªãçç±, Screw-Axis ã¾ãHTTPãªã¯ã¨ã¹ããã³ã¹ããé«ãçç±ã§ãããã¾ãåæèªè¾¼ã§ããªãããã§ããããèªè¾¼ã«1ç§æããç»åA,B,Cãããã¨
Haskell vs F# - Life Goes Onãæ°ã«ãªã£ãã®ã§ãã£ã¦ã¿ãã æå ã«F#ã®å®è¡ç°å¢ããªãã®ã§ãå ã®ã³ã¼ãã2åé«éåãããã¨ãç®æ¨ã«ãã¦ã¿ããç°å¢ã¯Linux x64, GHC 7.0.4. æåã®ã³ã¼ãã import Data.Array.Unboxed data Node = Node { df :: Double, branch :: [(Int, Double)] } induceBackward :: Array Int Node -> UArray Int Double -> UArray Int Double induceBackward nodes values = accumArray (+) 0 (bounds nodes) [(j, p * values ! k * df) | (j, Node df branch) <- assocs no
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}