Quincy Larsonã30ã50æ³è¶ ãã¦ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ãããã人ãã¡ã®ä½é¨è«ã300件ã
- freecodecamp.org 2018.1.12 ã®ã¨ã³ããª
- Quincy ã¯ãããã°ã©ãã³ã°å¦ç¿ãµã¼ãã¹ freecodecamp ã®ã¡ã³ã¿ã¼ãã£ã¦ã人
- ã¨ãããã£ãããä¸å¹´ãªã¼ãã³ã ãã©ä»ããã¨ã³ã¸ãã¢ã«ãªãããã¨ã 夢è¦ããï¼ã
- 俺ããããããããå¹´é½¢ã¯ãã ã®æ°åã
- ã¨ãããã°ããã ä»ããåå¼·ãã¦ã¨ã³ã¸ãã¢ã®ä»äºãå¾ãããªãã¦æãã®ã¯ç¡è¬éããï¼ã
- 俺ãããããããããããããã¨ã
- ã¨ããããã¨ããä½ç¾åã¨ã«ã¼ããã¦ãã Quincy ãããæ¹ãå¤ãã¦ãå®éã«ã¨ããã³ã¹ãéãããã¨ã«ãã
- ãã®ææãã¾ã¨ããã¨ã³ããª
ãã話
以ä¸æãèªãã å 容
ã»ã¼ tl;dr
- é±æ«ã«ãï¼ï¼æ³è¶ ãã¦ããåãã¦ã¨ã³ã¸ãã¢ã®ä»äºããã£ã人ãã¨ããæ¬ãã§ï¼ï¼ï¼äººåã®ãªã¹ãã¤ãã£ãã- https://twitter.com/ossia/lists/devafter30/members
- ããã·ã¥ã¿ã°ã¯#DevAfter30
- 絶è³åéä¸ãããªãã®ä½é¨ãã·ã§ã¢å¸æ
ä¸å¹´ããã®ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ã¹ã¿ã¼ãã夢è¦ããã尻込ã¿ãã¦åããªã人ãã¡
- ãç§ã¯ xx æ³ã§ããå¹´ãåãããã¦ã¦ã¨ã³ã¸ãã¢ã¨ãã¦éã£ã¦ããããªãã¨æãã¾ããï¼ã
- ãããªæãã®ã¡ã¼ã«ãæ¯æ¥ä¸çä¸ããç¸è«åããæ¥ã
- ã½ããã¦ã§ã¢éçºæ¥ç FAQ ã®ä¸ä½ã«å ¥ã質å
-
Quora ã¿ã¦ããå¹´åãããã¦ã¦ããç¡çãç³»ã®è³ªåã»ç¸è«ã¯ ãããããã
-
ã14 æ³ã¯å¹´åãããã¦ããç¡çï¼ããã60 æ³ã¯å¹´åãããã¦ã¦ããç¡çï¼ãã¾ã§å¹´é½¢å¥ã«æ¾ãã¦ãã¾ãããã
https://www.quora.com/Can-a-60-year-old-learn-to-program-and-make-a-living-at-it
- https://www.quora.com/I-am-59-1-2-years-old-and-female-I-started-coding-about-4-months-ago-When-I-finish-my-classes-will-anyone-hire-me
- https://www.quora.com/Is-58-too-old-to-become-a-programmer
- https://www.quora.com/I-am-considering-enrolling-in-a-coding-bootcamp-here-in-Minneapolis-I-will-be-57-years-old-by-the-time-the-course-is-finished-How-likely-is-it-that-I-will-find-a-job
- https://www.quora.com/Is-56-too-old-for-a-tech-job
- https://www.quora.com/Am-I-insane-for-starting-a-programming-career-at-55
- https://www.quora.com/At-54-still-actively-programming-in-JavaScript-and-HTML5-Am-I-too-old
- https://www.quora.com/Is-a-53-years-old-too-old-to-learn-programming
- https://www.quora.com/Can-a-52-year-old-learn-Web-building
- https://www.quora.com/Can-coding-be-learnt-at-the-age-of-51-Is-it-going-to-be-necessary-for-everyone-to-know-coding
- https://www.quora.com/I-turn-50-this-year-Am-I-too-old-to-pursue-a-career-in-computer-programming
- https://www.quora.com/At-49-am-I-too-old-to-become-a-junior-web-developer
- https://www.quora.com/How-can-I-become-a-programmer-if-I-am-48-years-old
- https://www.quora.com/Am-I-too-old-if-I-am-47-years-of-age-to-start-training-to-become-a-web-designer-developer
- https://www.quora.com/Is-46-years-old-too-old-to-start-a-software-developer-career
- https://www.quora.com/Is-it-too-late-at-45-to-learn-to-code-and-become-a-successful-software-engineer
- https://www.quora.com/Is-it-too-late-to-start-coding-at-the-age-of-44
- https://www.quora.com/Being-a-43-year-old-inspiring-Web-Developer-will-my-age-be-an-obstacle-in-competing-for-employment-within-the-technology-industry
- https://www.quora.com/Can-a-42-year-old-get-into-cyber-security-without-an-IT-background
- https://www.quora.com/Is-41-too-old-to-work-as-programmer
- https://www.quora.com/Is-40-too-old-to-become-a-programmer
- https://www.quora.com/Is-39-too-old-to-get-a-programming-job-after-getting-a-BS-in-computer-science-15-years-ago-and-an-MS-in-computer-science-7-years-ago
- https://www.quora.com/Is-it-too-late-to-learn-software-development-programming-at-38-yrs-old-and-get-a-job-in-the-tech-industry
- https://www.quora.com/Is-37-too-old-to-work-as-a-programmer
- https://www.quora.com/Is-36-too-late-to-try-to-start-a-programming-or-web-developer-career
- https://www.quora.com/Is-it-worth-learning-programming-at-35-years-old
- https://www.quora.com/Is-34-too-old-to-become-a-software-engineer-at-Google
- https://www.quora.com/I-am-33-years-old-Is-it-too-late-to-learn-programming-and-get-a-job
- https://www.quora.com/Is-32-too-old-for-shifting-my-career-to-be-a-programmer?no_redirect=1#!n=12
- https://www.quora.com/Is-31-too-old-to-start-learning-hacking
- https://www.quora.com/Is-30-years-old-too-old-to-learn-computer-programming
- https://www.quora.com/Is-29-to-old-to-learn-coding-for-a-career
- https://www.quora.com/Is-it-too-late-for-me-to-be-a-programmer-if-I-am-already-28-and-have-no-CS-background-I-have-an-MS-in-applied-science-but-I-want-to-become-a-programmer-and-learn-software-engineering-Do-I-have-to-start-as-an-undergrad-in-computer-science
- https://www.quora.com/Is-27-too-old-to-master-programming
- https://www.quora.com/Is-26-years-old-too-late-to-learn-web-development-and-if-not-should-I-start-learning-full-stack-web-development
- https://www.quora.com/Is-25-too-late-to-start-programming-when-people-from-the-new-generation-know-how-to-do-it-since-they-are-7-13-years-old
- https://www.quora.com/I-am-24-years-old-and-just-started-learning-coding-I-want-to-be-a-programmer-Am-I-too-late-in-the-game
- https://www.quora.com/Im-23-and-just-starting-to-learn-programming-Am-I-too-late
- https://www.quora.com/Am-I-too-late-to-start-Programming-at-22
- https://www.quora.com/Is-starting-to-learn-to-code-at-age-21-too-late-to-enter-corporate-world
- https://www.quora.com/I-am-20-and-just-started-learning-coding-Is-it-too-late-to-be-a-professional-developer
- https://www.quora.com/At-19-years-of-age-am-I-starting-too-late-to-be-a-world-class-programmer
- https://www.quora.com/Is-18-years-old-too-late-to-start-coding
- https://www.quora.com/Is-it-too-late-to-start-programming-at-17-if-you-want-to-be-a-top-programmer
- https://www.quora.com/Im-16-years-old-is-it-too-late-to-start-programming
- https://www.quora.com/Is-the-age-of-15-too-old-to-start-learning-code-If-not-where-can-I-begin-to-learn-code
- https://www.quora.com/Is-it-too-late-to-start-programming-at-14-if-I-want-to-work-at-Google
-
èªåã¯ã©ãã ã£ãã
- ç¸è«ãã¦ãã人ãã¡ã®æ°æã¡ã¯æ¬å½ã«ããããã
- èªå㯠20 代ã¯æ師ãã£ã¦ã
- 30æ³ã«åãã¦ã³ã¼ããæ¸ãã
- 31æ³ã«ã¨ã³ã¸ãã¢ã¨ãã¦ã¸ã§ããªãã¡ã¼ãåãã¦ããã£ã
èªæãªãã¨
- å¹´é½¢ã¯ãã ã®æ°å
- 誰ã ã£ã¦ä»äºã²ããã§ããã ãã®ã¹ãã«ãå¾ãããã«åªåã§ãã
ä»æ¹ã§èªæãªãã¨
- ãã¤ã¾ãã夢ãæãããªã夢ã¯å¶ããï¼ï¼ï¼
- Walt Disneyæµã§ããªãã§ããããããããã£ãã®ãã³ãã¬åç
- ãDon't stop believing!ãï¼
- ãã³ãã¬åçã¯ç¡åãç¸è«ããã¦ãã人ãã¡ã®ä¸å®ãçãåã¯ãªã
ãã³ãã¬åçãã³ã¨ã¯å¥è·¯ç·ã模索
- ã¨ããã³ã¹ãéãããã¨ã«ãã
- ç¸è«ãã¦ãã人ãã¡ãç´å¾ãã¦ããããããªã¨ããã³ã¹
- èªåã®èº«ã®åãã®ä¾
- èªå㯠31æ³ããã ã£ãããã
- 31 æ³ããããã£ã¨å¹´ãã¨ã£ã¦ããã¨ã³ã¸ãã¢ã«ã¸ã§ããã§ã³ã¸ã§ãã人ãä½äººãç¥ã£ã¦ãã
- ãã©ã³ã¹èªæ師ããã¦ããåéã®ä¾
- 50 代ã¾ã§ãã©ã³ã¹èªã®æ師
- ç¡æã®ãªã³ã©ã¤ã³ã³ã¼ã¹ã§åå¼·ãå§ãã
- apple ã«ã¨ã³ã¸ãã¢ã¨ãã¦éç¨ããã
- èªåã®èº«ã®åãã®ä½é¨è«ã ãã§ã¯ã¨ããã³ã¹ã¨ãã¦ã¯å¼±ã
ä¸å®ãå¢å¤§ãããã¹ããã¿ã¤ã
- ããªã¦ããæ ç»ãæãã¹ããã¿ã¤ã
- ã³ã³ãã¥ã¼ã¿ã®å¤©æ㯠30 æ³ä»¥ä¸éå®
- 30 æ³è¶ ãããã¿ããªãã¯ããã¸ã¼é³ç´ãã¨ãã決ã¾ã
- æ ç»ãThe Social Networkãã¨ãã¿ãã°åãã話
- ã¨ã³ã¸ãã¢ã®ã¹ããã¿ã¤ããªã¤ã¡ã¼ã¸ããã£ã¡ãæ¤ãä»ãã¦ãã
ãä¸å¹´ããã®ã¸ã§ããã§ã³ã¸ä½é¨è«ãã®åéãã¹ã¿ã¼ã
- ã¾ããããªãªã¹ãã¯ã©ãã«ããªãã£ã
- ãªã¸ããã¨ã³ã¸ãã¢ãªã¹ãã¯ããã®ã¯ãã
- ããã©ãã¨ã³ã¸ãã¢æ´ 10-20 å¹´ã¨ãã®äººã§æ§æããã
- ä¸å¹´ã«ãªã£ã¦ããã¨ã³ã¸ãã¢ã«ãªã£ã¦é£ã¹ã¦ã人ãã¡ã®ãªã¹ãã¯ãªãããä½ããã¨ã«ãã
- ãªã¹ãä½ãã®ããã« twitter ã§å¼ã³ããã
- ãç§ã¯ 30(or 40 or 50)代ã ãã©ã¨ã³ã¸ãã¢ã¨ãã¦ãã£ãªã¢ãã¹ã¿ã¼ããããã®ã¯å¹´é½¢çã«ç¡çã§ããï¼ãã¨ãã質åãä½åº¦ãåãããã¨
- èªå㯠31 æ³ããã¨ã³ã¸ãã¢ã¨ãã¦ã®ãã£ãªã¢ãã¹ã¿ã¼ãããã¦ãã¨
- ããè¨ã人ãç¥ã£ã¦ããæãã¦æ¬²ãã
- https://twitter.com/ossia/status/949421989126602752
å¼ã³ããã«åå¿ãã¦ããã人ã沢山åºã¦ãã¦ããã
- ãªã¹ããã©ãã©ãæé·ãããããã¤ãç´¹ä»ããã
- Mikleane Chouinard @Seattle
- 51 æ³ããã³ã¼ãã£ã³ã°å§ãã¦ãï¼å¹´ä»¥å ã«ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã¨ãã¦éç¨ããã
- https://twitter.com/mikleane/status/949452946600730626
- Marg Nation @Atlanta
- ä» 43 æ³ã§ 42 æ³ã«åãã¦ã¨ã³ã¸ãã¢ã¨ãã¦éç¨ããã
- 10 年以ä¸ä¼è¨ã®ä»äºãã£ã¦ã
- ã¸ã§ããã§ã³ã¸ãããã¨æ±ºå¿ãã¦ãã 4 å¹´åå¼·ãã
- ãã¼ãã¿ã¤ã ã§å¦æ ¡ã«éããfreecodecamp ããã£ã¦åå¼·ãã
- https://twitter.com/MargNation/status/949423943051595776
- Jose Pasquini, Jr. @Brazil
- ä» 46 æ³ã45 æ³ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- 20 年以ä¸èªåè»æ´å士ããã£ã¦ã
- https://twitter.com/pasquinijr/status/950160918473822210
- Dave G @Dundas, Ontario, Canada
- ä» 40 æ³ã2017 å¹´ 12 æããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- https://twitter.com/ITDaveG/status/949426658288730113
- Christina H @California
- 39 æ³ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- ã¢ãã¡æ¥çã«ãã¦ãªã¹ãã©ããã
- å¦å©¦ã ã£ããã© coding bootcamp ã«åå
- èªåçã«ã¯ãbootcamp åå ã¯äººçæ大ã®è³ãããæ°åã ã£ã
- åºç£äºå®æ¥ã® 2 é±éåã«ã¸ã§ããªãã¡ã¼ãããã£ã
- ããããï¼å¹´çµéãã
- https://twitter.com/americanwombat/status/949486088325799937
- Tim Myers @Denver
- 37 æ³ã§ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- Home Depot ã§å¹´å 25,000 ãã«
- æåã®ã¸ã§ããªãã¡ã¼ã¯ãå¹´å 60,000 ãã«
- ãããã 40 æ³ã ãå¹´åã¯æåããããã£ã¨å¢ãã¦ã
- https://twitter.com/denvercoder/status/950648117526851584
- Jeff Lazerus @Denver
- ä» 52 æ³
- 1 å¹´åã« cs ã®å¦ä½ã¨ã£ã
- ã¨ã³ã¸ãã¢ã¨ãã¦ä»äºåã㦠3 ã¶æ
- https://twitter.com/jefflazerus/status/949457462939205632
- Brenda Storer @NY
- 10 å¹´ããããã¼ãã³ã¨ã¦ã§ã¤ã¿ã¼ã®ãã¼ãã¿ã¤ã ãæãæã¡
- ã°ã©ãã£ãã¯ãã¶ã¤ã³å¦ã³ã«å¦æ ¡ã«æ»ã£ã
- web ãã¶ã¤ã³ã»web éçºã®é åã«ãããã
- 36 æ³ã§ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- ã¨ã³ã¸ãã¢ã®è·ã¯èªåã«ã¨ã£ã¦åãã¦ã®ãã«ã¿ã¤ã ã®ä»äºã§ããã£ã
- https://twitter.com/brendamarienyc/status/949625273196204032
- Pranati Vyas @Melbourne, Australia
- å»å¹´(2017 å¹´)ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- ããã¾ã§ 10 å¹´ãã«ã¿ã¤ã ã§ä¸»å©¦
- ãã¾ã¯ãã«ã¿ã¤ã ã§ã¨ã³ã¸ãã¢ãã¦ã
- https://twitter.com/PranatiVyas/status/949458787437432832
- James M. Johnson @Athens, Georgia
- 42 æ³ã«ãªã£ã¦ããããã¯ç³»ã®å¦æ ¡ã«éãå§ãã
- 44 æ³ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- ã©ãåºããæãåºãã人çã§ã以åã¯ä¸çæãåºããªãã¨æã£ã¦ã
- https://twitter.com/uptownjimmy1/status/951135157905510400
- Peter Daily @Greater Manchester, UK
- 18 ã¶æåã«ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ãã35 æ³
- ä»ã®ä»äºãä»ã¾ã§ãããã¼
- èªåã®ãã¼ããã©ãªãªã«ã¯ freeCodeCamp ã§åå¼·ãã¦ãã¨ãã®èª²é¡ããã¸ã§ã¯ãããè¼ã£ã¦ãªã
- https://twitter.com/peterdaily/status/949453856127307776
- gillesseu @Greater Vancouver, Canada
- ä»æ(Jan 2018)㧠33 æ³
- é«æ ¡ã®ã¨ãã«ã³ã¼ãã£ã³ã°ã¯ç¿ã£ã
- 31 æ³ã«ãªã£ã¦ã³ã¼ãã£ã³ã°ãã¾ãå§ãã
- 2017 å¹´ã®çµããã«ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- ãã£ãªã¢å¤æ´ã«é ãããã¨ãã¯ãªã
- https://twitter.com/gillessew/status/950138976655912960
- Doktor Murdocktor @Seattle
- ããªã¼ã©ã³ã¹ã®ãã¢ãã¹ããã£ã¦ã
- 30 æ³ã«å¦æ ¡ã§ã®åå¼·ãå§ããã
- å¦æ ¡ããå§ããã®ã¯ãå ¨ãæ°å¦ãããã£ã¦ãªãã£ããã
- CS ã® Ph.D ãã¨ã£ã¦ãã¹ãã¤ã³ã® Yahoo! reasearch ã«è·ãå¾ãã®ã 38 æ³
- ä»ã¯ Microsoft 㧠principal scientist ãã£ã¦ã
- https://twitter.com/vanessa_murdock/status/949673359234580488
- Sean Allen @San Francisco
- 33 æ³ã«ã¯ããã¦ã³ã¼ããæ¸ãã
- 33 æ³ã«ãªã£ãå¹´ã®å¾åã« iOS éçºè ã®è·ãã²ãããã
- https://twitter.com/SeanA0400/status/949871769778663424
- Tania A. Allen @Rhode Island
- 33 æ³ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- 2 æ³ã®åä¾ã®è²å ããªããåå¼·ãã
- è²å ã¨åå¼·ã®ä¸¡ç«ã¯å¤§å¤ã ã両ç«å¯è½
- https://twitter.com/charmed8383/status/949436212753977345
- Adam Marc Williams @UK
- ãã¡ãã·ã§ã³æ¥çã§ã«ã¡ã©ãã³ãã£ã¦ã
- 33 æ³ã«ã«ã¡ã©ãã³ã®ä»äºãããã¦ãfreecodecamp ã§åå¼·ãã¯ããã
- åå¼·å§ãã¦æ°ã¶æå¾ã«ã¨ã³ã¸ãã¢ã® job offer ããã£ã
- ç¾å¨ã¯ã¨ã³ã¸ãã¢æ´ 18 ã¶æç®ã«çªå ¥
- https://twitter.com/amwcodes/status/949581047808716800
- David Riesz
- å¼è·å£«ãã£ã¦ããç¬ç«ãã¦å¼è·å£«äºåæéãã¦ããã 10 å¹´ã¯ãã£ã¦ã
- å»å¹´ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ããå½æ 42 æ³
- https://twitter.com/dbriesz/status/949483215256825856
- Katie Sylor-Miller @Greater Boston, Massachusetts
- 30 æ³ã« CS ã®å¦å£«ã¨ã£ã
- 40 æ³ã« Etsy ã®ã¨ã³ã¸ãã¢ã¯ããã
- https://twitter.com/ksylor/status/949452637484830720
- Tara Scherner de la Fuente @Portland, Oregon
- 大å¦ã®è·å¡ã¨è±èªã®ææ
- ã³ã¼ãã£ã³ã° bootcamp ãçµãã¦ãæåã®ãªãã¡ã¼ããã£ãã®ã 41 æ³
- Jessica Del Grande @Toronto
- åºåç³»ã§ãã£ãªã¢ã¹ã¿ã¼ãã大å¦ã§çç³»ã®å¦ä½ã¨ã£ã¦ãé¼ç¸ã®åå¼·ãã¦
- å¯æ¥ã§ãã£ã¦ãã¨ãæ¬æ¥ã«ãã¹ãã¨æ±ºå¿ã㦠bootcamp ã«åå
- å æã® 38 æ³ã®èªçæ¥ã«ã¨ã³ã¸ãã¢ã¨ãã¦ä»äºãå§ãã
- https://twitter.com/jessdelgrande/status/950163504773902342
- Eduardo Vedes @Portugal
- ä» 37 æ³
- 4 ã¶æåã«ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- junior ã¨ã³ã¸ãã¢ã ãã©çµ¦æã¯è¯ã
- éã£ã¦ããã Peepz 㯠freecodecamp ã®ãã¨ã¯ç¥ããªãã£ããã©ãã£ãªã¢ãã¹ã¿ã¼ããããæºåã«ã´ã£ããã ã£ã¦è¨ã£ã¦ã
- https://twitter.com/eduardovedes/status/949608408889614342
- Sara Powell @Cincinnati, Ohio
- 40 æ³ã«ã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ã
- ãã®åã¯å»çç³»ã®ç 究è·ãæ°å¹´
- å§ããã®ã«é ããããã¨ã¯ãªã
- feecodecamp ã¨å°å ã® Girl, Develop It! Teaching Cincinnati ã«ä¸è©±ã«ãªã£ãããç¸ããã£ã
- https://twitter.com/NewtCobell/status/950148915499819015
ãä¸å¹´ããã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¯ããããã¨ãã¯ãããããã¨
- ããããããã¨ãã£ã¦ãã¨ãç´å¾ãã¦ãããããã¦ä½ã£ã
- https://twitter.com/ossia/lists/devafter30/members
- (è£è¶³) 2018.2.22 æç¹ã§ 385 å
- ãã®ãªã¹ãã¯æé·ããã¦ãããããã¾ã ã¾ã åéä¸
- ãã¨ã³ã¸ãã¢ã®ãã£ãªã¢ãã¹ã¿ã¼ãããããã
- ããæã£ãã¨ãã«ä½æ³ã§ãã£ã¦ããã®æ°æã¡ãç¡ãããªãããã«ãã¦ã»ãã
- çãã話ã§ã¯ãªããããããããã¨
- åã¯ãã£ã¨å°æ¥ããä¼ç¤¾ã«ã¨ã³ã¸ãã¢ã¨ãã¦å¨ç±ãã¦ãã¯ã
ã¨ããã¥ã¨ã«ã»ãããããã¤ããã¨ã¼ããã大é¸ãçè³ãã
UKã®å½æ°æ票é¢é£ã§ãªã¹ã¹ã¡ãåèªãã¦ã
- "l'allemagne tient le continent européen"
- 2014.9.1ã3ã«å ¬éãããã¤ã³ã¿ãã¥ã¼
- 翻訳ããããã®ããã¨ããã¥ã¨ã«ã»ããããããã¤ãå¸å½ããä¸çãç ´æ» ããããã«åé²
- 人å£å¦ã¨æ´å²å¦ã®ç¥è¦ããã¼ã¹ã«ãäºæ³ã¯ä¸å¯è½ã«è¿ãæ代ã§ãããã¨ããã¤ã¤ãè²ã çä¸ããã¦ã人
- ããã³ã¬ãªã¼ã¨ã¤ã®ãªã¹ã¯EUé¢è±éä¸ãã«ããã¨ãããååçä¸
æãæ¸ã
ç§ã¯ã¤ã®ãªã¹ããé¢è±éä¸ãã¨ããããã«æåããããªããªãã°ã¤ã®ãªã¹äººãã¡ã¯ãå½¼ãã«ã¨ã£ã¦ãã£ã¨ãããã®ã§ãã大é¸ã¨ã¼ãããã®ã·ã¹ãã ã«å å ¥ãããã¨ã¯ã§ããªãã
å½¼ãã¯ãã種ã®ãã©ã³ã¹äººãã¡ã¨ã¯éãããã¤ã人ã«å¾ãç¿æ £ãæã£ã¦ããªãã®ã ãããã ãã§ãªãå½¼ãã¯ããã¤ãçã¨ã¼ãããããã¯ããã«ã¨ããµã¤ãã£ã³ã°ã§ãèé½¢åã®ç¨åº¦ãããä½ãããã権å¨ä¸»ç¾©çã§ã¯ãªãããä¸ã¤ã®å¥ã®ä¸çã§ãããè±èªåããã¤ã¾ãã¢ã¡ãªã«ãã«ãããæ§ã¤ã®ãªã¹æ¤æ°å°ã®ä¸çã«å±ãã¦ããã
ç§ã¯ããæãã«ãå½¼ãã®ã¸ã¬ã³ãã«å ±æããã¨è¿°ã¹ãã貿æä¸ã¯æ ¼å¥ã«éè¦ã§ããããã¡ã³ã¿ã«çã«ã¯ã©ããã¦ãå解ã§ããªãã¿ã¤ãã®ã¨ã¼ããããåã«ãã¦ãã¤ã®ãªã¹äººã§ãããã¨ã¯ã©ãã»ã©å± å¿å°ã®æªããã®ã§ããããèªã£ãã®ã ã
ââãã¤ãå½¼ãã¯EUããå»ãã¨æãã¾ããï¼
ãã¡ããï¼ã¤ã®ãªã¹äººã¯ããå¼·ãããã§ããããåªãã¦ããããã§ããªããããã©ããå½¼ãã¯èå¾ã«ã¢ã¡ãªã«åè¡å½ãæã£ã¦ããã
æ©ã話ãèªåã®ãã¨ãè¨ããã¦ãããã°ãèªåã®å±ãããã¤ã·ã§ã³ã®èªç«æ§ã®æ¶æ» ã«ç´é¢ãã¡ããä¸ãã©ã³ã¹äººã¨ãã¦ããããã¤ãã®è¦æ¨©ãã¢ã¡ãªã«ã®è¦æ¨©ããã©ã¡ãããé¸ã¹ã¨è¨ãããããç§ã¯èºèºãªãã¢ã¡ãªã«ã®è¦æ¨©ãé¸ã¶ãã
以ä¸æãèªãã å 容
ãã¨ã§ãã
ãUptown Funkå¼¾ãã¦ã¿ããupãããMark Ronsonã¨ã«ãã¼ä½ããã¨ã«ãªã£ã話
ãã話
Mark Ronson Surprises Fans at Abbey Road Studios
- ãããããcelebrities surpriseãç³»ã®youtubeãããª
- Uptown Funkã®ãæã£ã¦ã¿ãããå¼¾ãã¦ã¿ããåç»ãUPããã¦ã
- ãã§ã& ã´ã¡ã¤ãªãªã³ã®ãã¤ã¨ãããã¼ã«ã«&ã®ã¿ã¼ã®ãã¤ã¨ãããããã
- https://www.youtube.com/watch?v=5GYqO5slTWc
- ãããã¥ã¡ã³ã¿ãªã¼ã«æ¥½å¨å¼¾ãããã¡ã³ã¨ãã¦åºã¦ãããªãï¼ããã¢ãã¼ãã¼ãã¹ã¿ã¸ãªæå¾ ãããèªç±ã«ä½¿ã£ã¦ããããã¨æ°çµæå¾ ãã
- ã¢ãã¼ãã¼ãã¹ã¿ã¸ãªå ¥ããã¦ãæåããªãã楽å¨é³´ããã¦ãã¨ããã«ãMark Ronsonç»å ´
- ä¸ç·ã«ã«ãã¼ä½ãããã¨ææ¡ãã¦ãæ¬å½ã«ã«ãã¼ä½ã£ã¦ãyoutubeã§å ¬é
åºæ¥ä¸ãã£ãã«ãã¼
Uptown Funk Cover -Â Produced by Mark Ronson
backstatge
- Master Cardããããã³ã«ãªã£ã¦ãcelebrities surpriseãããã¨ãã大ããã®ä¼ç»ã®ï¼ã¤
Evan Czaplickiãè±FRPãã¾ãã¯The Elm ArchitectureããSignalãæ¶ãã件ã
elm-lang.orgã®2016.5.10ã®ããã°ã¨ã³ã㪠farewell-to-frp
Elmã¯ãªã¨ã¼ã¿ã®Evanã«ããææ°ç0.17
ã®ã¢ãã¦ã³ã¹
- ãReactiveã¨ããéåæãã¼ã¿ã¹ããªã¼ã ã¨ãObservableã¨ããã¾ããããã©ãæ·å±
ä¸ããããããï¼ã
- ããããSignalå¤ãã¦ããè±FRPãã¨ãããï¼ä»åï¼
- ãWebAssemblyæ¥ãããï¼ã
- ãããããµã¯ãã¨ç§»è¡ã§ããããã«JSã¨ã®ã¤ã³ãã§ã¼ã¹æå°ã«ãã¨ããã
- ããã¤ã§ãã©ãã§ãè±AltJSã§ããããã«æºåãã¨ããã
- ãã¯ãã¹ã³ã³ãã¤ã«ã¨ãã¯ãããã
- ãOSSåãã¾ããã®ã§çæ§ä½¿ã£ã¦é ãããããããã
- ãç¥é ¼ã¿ï¼ãããããã¨ã³ã·ã¹ãã ã¯ã§ãããã
- ããã«ã¿ã¤ã ã§Elméçºã§ããã¨ãã«å ¥ã£ã¨ãã(Preziã«joinï¼
- ãChigaco大ã§Functional Programmingã®è¬ç¾©ãElmã§éãã¦ããã£ãã
- ãã¤ã³ã¿ã¼ã³ã¨ãä¸ç·ã«ãã£ã¦ããã人ã¬ã³ã¬ã³å¢ãããã¨ããããï¼NoRedInkã«joinï¼
- ãå£ä½ãã¤ãã£ã¨ãããï¼Elm Software Foundation)
- ãReduxã«ãããªå½¢ã§ä¸¸ãã¯ãªãããã®ã¯çæ¨ã®ãã¹ãããã¢ã¤ãã£ã¢ãåºãã¿ã¤ãã³ã°ãæ°ãã¤ããã
- ãã«ã³ãã¡ã¬ã³ã¹ãã£ã¨ãããï¼Elm-Conf 2016ï¼
ã¨ããããªã§ãã使ããè¨èªãã使ããããè¨èªãããã«æãæã£ã¦ããã¨ãããé¢ç½ã
以ä¸æãèªãã å 容
- The Elm Architectureã®ãããã
- webã¢ããªä½ãããã®ã·ã³ãã«ãªãã¿ã¼ã³
- Elmã§ã³ã¼ãæ¸ãã¨ãã®æ¨æºçãããã
- ä»è¨èªã«è¼¸åºããã
- reduxã¨ã
- JSçéã§ãåºã¾ã£ã¦ãã¦ã
- ãæåãããã¨å¼ã¹ãã¬ãã«ã«å°é
- Qï¼The Elm Architectureã«æ²¿ã£ã¦ãwebsocketãGraphQLãgeolocationã©ã使ãï¼
- Aï¼
Subscription
使ã- ã³ãã¥ããã£å ã§ãããã声ã¯è³ã«ãã¦ãã
Subscription
ã¯èªä¿¡ä½ãããæãã«ã«websocketã¤ããã- ä»æ¥(=2016.5.10ï¼ãªãªã¼ã¹ããElm
0.17
ã§è¿½å ãã
Subscription
å ¥ããã¨ããã- ã³ã³ãã¼ãã³ãã¯ã¡ãã»ã¼ã¸ãå¾ åããã ãã«
- ã©ã¤ãã©ãªãè£ã§å¤§éã®æå¼·ããªã½ã¼ã¹ç®¡çããã£ã¦ããã¦ã
Subscription
ã§websocketãæ軽ã«ä½¿ããç¹ã¯ãã¨ã³ããªã§å¾è¿°ãã
Elmã®å¦ã³ãããã»ä½¿ããããã®é£èºçãªåä¸
- ï¼
Subscription
ãªã©ãå ¥ã£ãï¼Elm0.17
ãªãªã¼ã¹ã®æå³
- ï¼
- å°ãåã¾ã§Elmã«ã¯ã
Signal
ãAddress
ãPort
ã¨ããã®ãããã¾ãã¦ããã- ããã¤ããElmã®æ·å± ãé«ããã¦ããã
Subscription
ã次ã®ãªãªã¼ã¹ã§Elmã«å ¥ãã¦ã¿ããããã¨èãã¦ãã¨ãã«æ°ä»ããSignal
ï¼ã¨ãã®é£è§£ãªã³ã³ã»ããï¼ã¯ç¡ãã¦ãããããã- ãã£ã¨ã·ã³ãã«ãªã³ã³ã»ããã«å解ãã¦ããã°ãSignalå¼éã§ãã
- ï¼è£è¶³ï¼
port
ã¯0.17
ã§ãç¾å½¹- Elmã¨JSã®éä¿¡ã§ä½¿ã
- JavaScript and Ports · An Introduction to Elm
- ãElmã使ãããªããããã«ç解ããªãã¨ãããªãã³ã³ã»ããã®æ°
Signal
ãå¼éããã°ããã®æ°ããã£ã¨æ¸ããã
- ã使ãããããã®ããã«Elmããã¶ã¤ã³ãã¦ã
- ããã¯æããããéããéçãããªãããããå±éã
- ãçãã注ç®ï¼ãçãªè¨ãæ¹ãæ¢ãã¦ãã¦ã¿ãã¨ããã
Signal
ã«é¢ä¿ãã¦ããã®å ¨é¨å¼é- ãã£ã¨ã·ã³ãã«ããã£ã¨åªãããã®ã«ç½®ãæãã
Signal
å¼éãElmçéã§ã¢ãã¦ã³ã¹ãã¦ã¿ã- ï¼ãã¿ã¼ã³ã®åå¿
- åå¿ï¼ï¼ã¯ã¬ã¼ã¸ã¼ãã³ã¼ãã¯åãã®ã
- åçï¼ï¼95%ï¼ä¿ºèª¿ã¹ï¼ã®ã³ã¼ãã¯ãã®ã¾ã¾ã§åã
- 移è¡ã¬ã¤ãç¨æãã
- elm-platform/0.17.md at master · elm-lang/elm-platform
- æ°ã«æã³ã¼ããã¼ã¹å¤æ´ãããã大æãããªä½æ¥ã«ã¯ãªããªã
- ï¼è£è¶³ï¼
- å²ã¨å®æ ã«æ²¿ã£ã¦ããããªã詳ããDiffã¤ãã®ã移è¡ãã¦ã¿ããã¨ã³ããªæ¸ãã¦ã人ããã¦åèã«ãªã
- Typed up CRUD SPA with Haskell and Elm - Part 5: Elm 0.17 Upgrade
- åå¿ï¼ï¼ãåã¯ä½è¨ã£ã¦ããã ï¼ FRPã¨ãSignalã¨ãä½ãã
- åçï¼ï¼ãç¥ãããã§OK
- ä»åã®ãªãªã¼ã¹ï¼
0.17
ï¼ã«ç´çµãã話ã - Elmã«ã¯ä¸è¦ã«ãªã£ã
- ä»åã®ãªãªã¼ã¹ï¼
- ããããåçããããããæ°ããElmãã©ãåãããè¦ããæ¹ãããã
- é話ä¼é¡
subscription
以å¤ã®0.17
ã®ããããç´¹ä»- HTMLã¬ã³ããªã³ã°ãé«éåï¼ãã³ããã¼ã¯ã¯å¾ã§åºãï¼
- web platformã®ãã¯ããã¸ã¼ãç°¡åã«ä½¿ããã©ã¤ãã©ãªã追å
- geolocation
- Page Visibility API
- websockets
- ã³ã³ãã¤ã«æé©å
- outputã®jsã®ãµã¤ãºããã¦ã³
- outputãããjs
- closure compilerã«éãã
- RequireJSãµãã¼ã
- CommonJSãµãã¼ã
- GraphQLãPhoenixï¼Elixirï¼ã®ãããªãµã¼ãã¹ã¨é£æºããããã®æ©è½
- ããã¥ã¡ã³ãæ¹åï¼Gitbookãã¼ã¹ã«
- JSONãã³ã¼ãã¨ã©ã¼æã®ã¡ãã»ã¼ã¸åºåã®æ¹å
subscription
ä¾ãã®ï¼ãç¾å¨æå»ã®å¾
å
- ã³ã³ãã¼ãã³ããã¡ãã»ã¼ã¸å¾
åããµãã¼ãã§ããããã«ããããã®æ¹æ³
subscription
ãä¸ã¤ã®ãããã
- ã³ã³ãã¼ãã³ããsubscribeãã対象
- ç¾å¨æå»
- ä½ç½®ã®å¤å
- websocketã¡ãã»ã¼ã¸
- etc..
- SVGã«ããã¢ããã°æè¨ã使ã£ã¦èª¬æãã
- SVGæè¨ã®åºç¤ã¯ãæéã¸ã®subscribe
- subscriptionã®æãã·ã³ãã«ãªä¾
- ã¨ããããSVGæè¨ã®ã½ã¼ã¹ã³ã¼ãããã£ã¨è¦ã¦ããããã
- å ¸åçãªElmã³ã¼ã
-- 0.17以åã¨éãç®æã¯ãã®ï¼è¡ã ã subscriptions : Model -> Sub Msg subscriptions model = Time.every second Tick
- ä¸ãããã
model
ã«å¯¾ãã¦ãã¢ã¯ãã£ããªsubscritpionãããã ãã§è¨è¿°ããã¦ã - é¢æ°
Time.every
ã使ã£ã¦ãç¾å¨æå»ã¸ã®subscriptionãè¨è¿° - ç¾å¨æå»ã¯æ¯ç§æ´æ°
- æ°ããæå»ï¼ex
Tick 1462487781991
ï¼ã¯updateé¢æ°ã«æ¸¡ããã - ï¼è£è¶³ï¼
- subscriptionã¯ã
Sub msg
åï¼Sub
=Platform.Sub
ï¼ - é¢æ°
Time.every
ã®åå®ç¾©ã¯ãTime.every : Time -> (Time -> msg) -> Sub msg
- ãªã®ã§ã
Time.every second Tick
ã¯ãSub msg
å - ãã¨ã
second
ï¼Time.second
ã¯ï¼Time
å Tick
ã¯type Msg = Tick Time
ã¨ããåå®ç¾©ããã(Time -> msg)
åTick 1462487781991
ã¯Msg
å
Tick
ã¯åé·ã«ããã°ã(\time -> Tick time)
ãã¨ãªã- ã¤ã¾ãã
Time.every second (\time -> Tick time)
- subscriptionã¯ã
- subscription以å¤ã®é¨åã¯ãã¹ã¦ã¯
0.17
以åã¨åãã¾ã¾ - ä½ããå¾ åãã¦ãã ããªã®ã§ãä¸çªç°¡åãªä¾
- 次ã¯ãããã¡ãã£ã¨è¤éãªã·ããªãªã§
ä¾ãã®ï¼ãwebsocketséä¿¡
- ã·ã³ãã«ãªchatã¯ã©ã¤ã¢ã³ãdemo
- éä¿¡ãããã¡ãã»ã¼ã¸ã表示ããã ãã®æ©è½ï¼èãã¦ãå°ãã®ã§ï¼
- ã½ã¼ã¹ã³ã¼ã
- SVGæè¨ã¨è¦æ¯ã¹ãã¨å¤§å¤ããä¼¼ã¦ã
- ããä¼¼ãã³ã¼ãã ãã©ããã®ã³ã¼ãã ãã§websocketéä¿¡ã管çãã¦ã
-- ã½ã¼ã¹ã³ã¼ãã§æ³¨ç®ãã¹ãã¯ãã®ï¼è¡ã ã -- ãã£ã¡ã¯ã¡ãã»ã¼ã¸ãéä¿¡ WebSocket.send "ws://echo.websocket.org" input -- ãã£ã¡ã¯ã¡ãã»ã¼ã¸ãsubscribeãã¦ã WebSocket.listen "ws://echo.websocket.org" NewMessage
- éä¿¡ãã¦ãã³ã¼ããsubscribeãã¦ãã³ã¼ãã®å
±éãã¦ããã¨
- chatãµã¼ãã®ã¢ãã¬ã¹ã渡ãã¦ãç¹
- éä¿¡ãå©ããå¤ã渡ãã¦ã
WebSocket.listen
ã§ã¯æ¸¡ããã¦ãNewMessage
ã¯Msg
åã®ã¿ã°ãè¿ãé¢æ°- ï¼è£è¶³ï¼
Msg
åã®åå®ç¾©ã¯ãtype Msg = Input String | Send | NewMessage String
Union Types使ã£ã¦å®ç¾©ããã¦ã
Input String
ãSend
ãNewMessage String
ãã¿ã°ã¨è¨ãï¼ãããï¼- ãªã®ã§Union Typeã¨å¼ã°ãã«ãTagged Unionã¨è¨ã人ããã
- ï¼è£è¶³ï¼
- ãµã¼ãã¼ãããhiãã¨ããã¡ãã»ã¼ã¸ãåãåãã
NewMessage "hi"
ããupdateé¢æ°ã«æ¸¡ã - ï¼è£è¶³ï¼
WebSocket.listen
ã®åå®ç¾©ã¯ãString -> (String -> msg) -> Sub msg
NewMessage
ã¯ãString -> msg
åã®é¢æ°NewMessage "hi"
ã¯Msg
å
- èªæ
¢ã§ãããã¨
- ããããç´°ããå¶å¾¡ã®ããã®ã³ã¼ããæ¸ããªãã¦ããã£ããæ©è½ãæä¾ã§ãã¦ããã¨
- sendãã¦listenãããããã ã
- ãã£ããæ©è½ãjsã§ãããã¨ããã¨ããã
- ã²ã¨ã¤ã¯ãã©ã¦ã¶APIãç´æ¥è§¦ã
new WebSocket(...
ããã¨ãããã- ã³ãã¯ã·ã§ã³éã
onerror
ãªã¹ãã¼ã¤ãå¿ããªã- åæããããåæ¥ç¶ããããã«æ¸ã
- ããããExponential Backoffã®ä»çµã¿ããã
- åæããã¦ããã¡ãã»ã¼ã¸éããªãããã«ããªãã¨ãããªã
- ã©ã³ã¿ã¤ã ã¨ã©ã¼ã«ãªããã
- ãã¥ã¼ã¤ã³ã°ã·ã¹ãã ãå®è£
å¿
è¦
- åææã«postãããã¡ãã»ã¼ã¸ã貯ãã¨ã
- ããã«
- ã©ã®ã³ã³ãã¼ãã³ããwebsocketéä¿¡ããããèãã¦è¨è¨ããªãã¨ãããªã
- æ¥ç¶ã®åæã«ã¤ãã¦ãé©åãªæéã§ãããããã«ããªãã¨ãããªã
- JSã©ã¤ãã©ãªã使ãæããã
- 調ã¹ãã¨2,000以ä¸ã¯ãããnpmæ¤ç´¢ã§
- æåã®ï¼ãï¼åã§å½ãããåºããã¨ãç¥ãã¾ããã
- ã²ã¨ã¤ã¯ãã©ã¦ã¶APIãç´æ¥è§¦ã
- Elmã®WebSocketããã±ã¼ã¸ã使ãã¨ãããã
- websocketéä¿¡ã®ããã®ç´°ã ã¨ãã管çã¯èªåçã«è¡ããã
- subscriptionãçºçããã°èªåæ¥ç¶
- subscribeãã¼ãã«ãªãã°èªååæ
- ã¡ãã»ã¼ã¸ã®ãã¥ã¼ã¤ã³ã°ãåæ¥ç¶ã¯ããã¯ã°ã©ã¦ã³ãã§å¦çãããæèããªãã§ãã
ããã«å¦ã¶ããã®ãªã½ã¼ã¹
- å
¬å¼ã¬ã¤ã
- http://guide.elm-lang.org/
- Elm㨠The Elm Architectureããããã¨ãã¦ããã¨ãç¥ããã人
- The Elm Architectureã®ã»ã¯ã·ã§ã³ãä¸èªãã¦ã»ãã
- é åºç«ã¦ã¦
Suscription
ã使ã£ãå®è£ ãããã¨ãã¾ã§æ¸ãã¦ã
- ä»ã«ããããµã³ãã«ãã
- Elmçµé¨è
ã«ã¯ã¢ããã°ã¬ã¼ãã¬ã¤ãç¨æãã¦ã
- https://github.com/elm-lang/elm-platform/blob/master/upgrade-docs/0.17.md
- å ¬å¼ã¬ã¤ãããããã¦èªãã§ã»ãã
- ä»åã®ãªãªã¼ã¹ã§ä½ãä¸ãããã¨ã«æåãããElmã®å ¨ã¦ã®ãã¼ããè¦äºã«ã¯ã¾ã£ãä»çµã¿ã®å ¨å®¹ãããã¾ã説æã§ããèªè² ããã
- ã¬ã¤ãã®ä¸ã§ãThe Elm Architectureãã¨ãportsãã®ç®æãéè¦ã ã¨æã
- Slackãã£ã³ãã«ä½ã£ããæ´»ç¨ãã¦ã»ãã
- Elmåå¿è ã質åããå ´æãä½ãå¦ã¶å ´æã¨ãã¦
0.16
以åã®ã¢ããªã0.17
ã«ç§»è¡ãããã人ã®è³ªåããå ´æã¨ãã¦
ããã°FRP
- ãã®raycasterã¿ãããªã楽ãããªãããã¸ã§ã¯ã
- ã·ã§ã¢ããããªãããã¸ã§ã¯ã
- ããã°ã©ãã³ã°ãããã¨ã«ç±ä¸ããã¦ãããããã¸ã§ã¯ã
- Elmã¯ãããããããã¸ã§ã¯ããä½ã£ã¦ãããä½ã
- Elmãä½ã£ã¦ãèªåãèªåãã¦ãããã¨
- ã©ãããã°Elmããã£ã¨ã·ã³ãã«ã«ãªãã
- ã©ãããã°Elmãå¦ã³ããããªãã
- ã©ãããã°ãã£ã¨æ¥½ãããªãã
- ã©ãããã°ãã£ã¨ç´ æ©ããããã¿ã¤ããä½ããããã«ãªãã
- ã©ãããã°ãã£ã¨ä¿¡é ¼ã§ããè¨èªã«ãªãã
- ãããã£ãèªåãç¶ãã¦ããã¨ããElmã®è¨è¨å²å¦ã®ä¸å¿ã«ãããElmã®æåã®æ ¹å¹¹ã«ãã
- 2011å¹´é ã«èªåãåè«ãæ¸ãã¦ãé ã®è©±
- http://elm-lang.org/papers/concurrent-frp.pdf
- ãã¾ãã¾"Functional Reactive Programming" (FRP)ã¨å¼ã°ããããããªå¦åé åã«çªå ¥ãã
- FRPã®ææ³ãã·ã³ãã«ãªå½¢ã«è½ã¨ãè¾¼ããã¨ãèãã¦ãã
- çµè«ã¨ãã¦é¡ä¼¼ã®é¢æ°åè¨èªãããå¦ç¿ãããããã®ãä½ããã¨ãã§ãã
Signal
ã¯é£è§£ãªã³ã³ã»ãããæãéãªã£ããã®- Elmã«ã¯å¿ è¦ã§ã¯ãªãã£ã
- ã
Signal
ã¯Elmã«ããæ°å°ãªãèºããã¤ã³ãã- Elmãæããçµé¨ã®ãã人ãªãåæãã¦ãããã¨ãã
- ã
Signal
ã«ãã£ã¦Elmã¯ä½¿ããããªã£ãã- é¡ä¼¼è¨èªã¨ã®æ¯è¼ã§ãªãããã¨ãè¨ãã
Signal
ã¯Elmãã®ãã®ãããããããè¨èªã«ã¯ããªãã£ã
- The Elm Architectureå°å
¥å¾
- Elmã§ã®ããã°ã©ãã³ã°ä½é¨ã®å¤§é¨åã§ã
Signal
ãèããªãã¨ãããªãæéãæ¶ãå»ã£ã - start-appããã±ã¼ã¸
- ããã¯å®é¨ã ã£ã
Signal
ã¯ãå¾ããå¦ã¹ã°ãããã¨ããä½ç½®ä»ãã«å¤ãããã©ãå¤åãããï¼- ããªãããçµæãã§ã
- ç´ æ©ãElmå ¥éã§ããããã«ãªã£ã
- ãã°ããä¸éããElmã§ã®ããã°ã©ãã³ã°ã楽ããã§ããã
Signal
ã«ã¤ãã¦å¤ãã®äºæãå¦ç¿ãã¦ãªãã¦ããç´ æ´ãããElmããã°ã©ããããããçã¿åºããSignal
ã«ã¾ã¤ããäºæã¯å¿ é ã§ã¯ãªãã£ã0.17
ã®ãªãªã¼ã¹ã§ãã®æµããä¸æ©å ã«é²ããã ããã¨ãè¨ãã
- Elmã§ã®ããã°ã©ãã³ã°ä½é¨ã®å¤§é¨åã§ã
- çµæ§åãã
Signal
ã¯Elmããåé¤å¯è½ã ã£ã- ãElmã¯concurrencyéè¦ãã«èµãåã£ã¦ãããã
- cocurrencyéè¦ã®ã¢ã¤ãã£ã¢ã®ååã¯èªåã®åè«ã«ç¢ºèªã§ãã
0.15
ã§Elmã«Task
ãå°å ¥ãã¦ãããElmã®å®è£ ã¬ãã«ã§ãã®æ¹åã«é²ã¿åºãã
0.15
ã§å°å ¥ãããã¹ã±ã¸ã¥ã¼ã©- ã¹ã±ã¸ã¥ã¼ã©ã¯workï¼?)ã®åãæ¿ãããµãã¼ãããå¿ è¦ãªã¨ãã ãå®è¡ããããã¨ãã§ãã
0.17
ã§å¤§å¹ ã«æ¹åãããç®æ- ã¹ã±ã¸ã¥ã¼ã©ã¯effect managerã®åºç¤
- ããã«ãeffect managerã
Subscription
ã®åºç¤ - ï¼è£è¶³ï¼
- Elmã§ã¯ãEffectï¼ä½ç¨ï¼ã¯ãã¼ã¿ã¨ãã¦è¡¨ç¾ãããElmã©ã³ã¿ã¤ã ãå®è¡ããå®è¡æã«æé©åãè¡ã
- Effectã®ä¾ï¼httpãªã¯ã¨ã¹ããä¹±æ°åå¾ãæå»åå¾ãDBæ¸è¾¼ãetc..
- ãã¼ã¿ã¨ãã¦è¡¨ç¾ãããElmã©ã³ã¿ã¤ã ãæé©åããªããå®è¡ããEffectã¯ã
Subscription
ã¨Command
ã®ï¼ç¨®é¡
- ããã¥ã¡ã³ãããã£ã¨æ¸ãæãããã¨ãã
- ã¹ã±ã¸ã¥ã¼ã©ãeffect managerã®å é¨ã®ãã¨ãæ·±ãç¥ãå¿ è¦ã¯Elmã®ã¨ãã¹ãã¼ãã«ãªãã®ã«å¿ è¦ã§ãªã
- concurrencyã®å©ç¹ãå³åº§ã«äº«åã§ãããã¨ãç®æ¨ã«ãã¦ã
- ãã®ç¹ã¯ç§ã®åè«Concurrent FRPã®é ããå¤ãã£ã¦ãªã
- Elmã¯FRPçãªãªã«ãï¼
- ãã¤ã¦ããã ã£ãããä»ã¯ããã§ãªã
Elmã¯concurrencyã«çå£ã«åãçµãé¢æ°åè¨èªã§ããããã¬ã³ããªã¼ãªé¢æ°åè¨èªã§ããã ã
é話ä¼é¡ï¼
- ãã®è¾ºã«èå³æã£ã¦ã人ã ã¨Lucid Synchroneã¨ããè¨èªãé¢ç½ãã¨æããã
- èªåãElmã§èãã¦ããã¨ã¨ãåæçããã°ã©ãã³ã°è¨èªã®éã«ã¯ããããå
±éç¹ããã
- èªåãåè«æ¸ãã¦ãå½æã¯ç¥ããªãã£ããã¨
- Elmã¨åæçããã°ã©ãã³ã°ã®ã¤ãªããã¯èªåã«ã¨ã£ã¦è¡æã ã£ã
- Elmã¯FRPãªä½ãã§ãã£ããã¨ã¯ä¸åº¦ããªãã£ããä»ãå ãã¦ãã
Elmã®ä»å¾
- Elm
0.17
éçºåæã®èªåã®ã´ã£ã¸ã§ã³- Foundation for planning "native" APIs in 0.17
- Elmã¯ãã¤ãã£ãã³ã¼ããã©ãåãæ±ãã¹ãã
- å¥å ¨ãªããã±ã¼ã¸ã®ã¨ã³ã·ã¹ãã ã¯ã©ãããå½¢ãã¨ãã
- Elm
0.17
ã¯ãã®ã´ã£ã¸ã§ã³ã®åºç¤ã«ãªããªãªã¼ã¹ - 次ã«åãçµãåé¡
- 1 webãã©ãããã©ã¼ã ã®å ¨ã¦ããµãã¼ã
- 2 GraphQL, Elixir Phoenix, Firebaseãªã©ã®ããã¯ã¨ã³ãã®ãµãã¼ã
Commmands
ã¨Subscription
ã§ã¯å ¨ã¦ã®ã±ã¼ã¹ã¯ãã³ããªã³ã°ã§ãã- The Elm Architectureã§ãã¡ãã¨ä½¿ããããã±ã¼ã¸ãçµã¿åããã¦ãä¸è²«æ§ããããããã¨ãã§ãã
- ãããããã®ã¸ãã®éçºãã©ããªã£ã¦ããã®ãã楽ãã¿
- 次ã®åé¡ã¸ã©ãã¢ããã¼ãããã
- ã¡ããã¨ã¿ãã°ãthe web platformã¯ããã»ã©å·¨å¤§ãããªã
- æ®ã£ã¦ãAPIããµãã¼ããã¦ãã
- ãjsã«ã³ã³ãã¤ã«ããããã¨ããé¨åã¯å°æ¥ç¡ããªããããWebAssemblyãæ¥ãã
- Elmã¨jsã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯å°ãããã¦ãã
- ããããã°jsããå¥ã®ãã©ãããã©ã¼ã ã¸ã®åãæ¿ãã¯ã¹ã ã¼ãºã«
- ã¯ãã¹ã³ã³ãã¤ã«ã¯ç¼ä¸ã«ãªã
- ãjsã«ã³ã³ãã¤ã«ããããwasmãã¤ããªã«ã³ã³ãã¤ã«ããããããã¨ããããªã
- ï¼ã¤ã ãé¸ã¶
- ã¡ããã¨ã¿ãã°ãthe web platformã¯ããã»ã©å·¨å¤§ãããªã
- ããããæ°ãã«ä½ã£ã¦ããã©ã¤ãã©ãªéçºã«åå ãããæ¹ã¸
- ãããã声ããã§ã«ããã£ã¦ã
- ã³ã³ããªãã¥ã¼ããããã¨ããæ
ç±ãç´ æ´ãããã¢ã¦ãããããçã
- 空åããªããããã確å®ã«èµ·ããããã«ãã¦ãããã
- ãã®ããã«ãä¸è²«æ§ã®ããéçºããã»ã¹ãã¾ãèªåãä½ã
- ããã¾ã§å¾ ã£ã¦ã¦ã»ãã
- 次æãªãªã¼ã¹ã®ããã«ç¾æç¹ã§ã§ããã³ã³ããªãã¥ã¼ã
- slackã«åå ãã¦ãelmã³ãã¥ããã£ã®ååãç¥ããã¨
- ä½ãã³ã³ããªãã¥ã¼ãããã¨ãã¯å¸¸ã«äºåã«ããã¹ããã¨ã ã
- slackã«åå ãã¦ãelmã³ãã¥ããã£ã®ååãç¥ããã¨
thanks you
- @JustusAdam
elm-reactor
ã®navigationç»é¢ã®ä½ãç´ã- æ°å¹´åã«å®äºãã¦ããããããå ¬éã§ãã
0.17
ã®è¨è¨ã«åå ãã¦ããã人ãã¡- ãªãã©ãç¹°ãè¿ãã¦ãããã¯ãããããã¨ãªã£ããããã
- ããã§ãä»ãåã£ã¦ããã¦ãåªããã¢ã¦ãããããã¦ããã
- Elmã³ãã¥ããã£
0.17
ã®ãªãªã¼ã¹ãè¾æ±å¼·ãå¾ ã£ã¦ããã- ãã¬ãªãªã¼ã¹ã®ãã¤ããªä½¿ã£ã¦ããã¦ãã°å ±åãã¦ããã
- ç¹ã«ã@gdotdesignã@colinmccabeã@lukewestby
- æ¹è¯ããHTMLã¬ã³ãã©ã¼ã®è¦ã¤ãã«ããissueããã£ãã
- åªããSSCCEãåºãã¦ããã
Gavin AndresenãMITã§ãã«ã¿ã¤ã ã§bitoinããã¸ã§ã¯ãç¶è¡ã§ããããã«ãªã£ã件ã
- GavinTech 2015.4.22ã®ããã°ã¨ã³ããª
- Gavinã¯bitcoin財å£ã®ãã¼ããµã¤ã¨ã³ãã£ã¹ã ã£ã人
- Joining the MIT Media Lab Digital Currency Initiative
- ä¸ç¥¥äºç¶ãã®bitcoin財å£ã«ããBitcoinã®ã³ã¢éçºè ã®è¡æ«ã«æ±ºç
- bitcoin財å£ããç¡äºã«ä¸»è¦éçºè ãã¡ãè±åºã§ãã¾ãã
- ã¨ãããã話
以ä¸æãèªãã å 容
Digital Currency Initiativeã«åå ãããã¨ã«ãã
- @ MIT Media Lab
- Joi Itoãæè¿ç«ã¡ä¸ãããã¤
- Launching a Digital Currency Initiative â Medium
èªåããã£ã¦ãbitcoiné¢é£ã®ããã¸ã§ã¯ãã¯ããã§ç¶ãã
- Wladimir van der Laanã¨Cory Fieldsãä¸ç·ã«åå
- Wladimirã¨Coryã¯Bitcoinã®ã³ã¢éçºè
- äºäººã¨ãMITãéçºç¶ç¶ã«ã¨ã£ã¦è¯ãå ´æã ã¨æãã¦ã
- MITãbitcoinéçºã®ç·æ¬å±±ã«ãªã£ãã£ã¦ãã¨ï¼
- No
- ãªã¼ãã³ã½ã¼ã¹ã ããããã¸ã§ã¯ãã¸ã®åå ã®ä»æ¹ãç«å ´ã¯è²ã ãããã§ãã
- éçºè
ã¸ã®ãµãã¼ããè²ããªæããããç¶æ³ã¯ãããã¨
- ä¾ãã°ããã¸ã§ã¯ãããµãã¼ããã¦ããã¤ã©ããä¼ç¤¾ãªãçµç¹ãªããæ½°ãããã¨ããã
- ãããªã£ã¦ããããã¸ã§ã¯ãèªä½ãå³æ»äº¡ãããã¨ãåé¿ã§ãã
- ä¾ãã°ããã¸ã§ã¯ãããµãã¼ããã¦ããã¤ã©ããä¼ç¤¾ãªãçµç¹ãªããæ½°ãããã¨ããã
- bitcoin財å£ã®çµå¶ç ´ç¶»ãå
¬ã«ãªã£ã¦ãããè²ããªäººã声ãããã¦ããã
- èªåï¼Garyï¼ãWladimirãCoryãéçºç¶ç¶ã«å¿ è¦ãªè³éãå¾ãããªããªã£ã¦ãã
- 声ãããã¦ãããã¿ããªã«æè¬ããã
- Joi Ito(Meia Labæé·ï¼ã¨ãBrian Forde(Digital Currency Initiative責任è
ï¼ã«ãæè¬ããã
- äºäººãè²ã åãã¦ããã
- bitcoinã³ãã¥ããã£ã¼ã¸ã®ãµãã¼ãããããã«åãå注ãã§ããã¦ã
- èå³ãããã°ãbrianã«ã³ã³ã¿ã¯ãã¨ãã¨ããã¨æã
Daniel Stenbergã2015å¹´æ¥æç¹ã§ã®HTTP/2æ®åã®ç¾ç¶ã¨ä»å¾ã
- daniel.haxx.se 2015.3.31ã®ããã°ã¨ã³ããª
- http/2ãä»ã©ããããæ®åãã¦ãã®ããå¹´æ«ã«ã©ããªãããµã¼ãã¼ã¨ããããã·ã¼ã¨ãCDNã¨ãã®ãµãã¼ãã¯ã©ããªããªã®ããçã
- æéããã¾ã¨ã¾ã£ã¦ã¦åå¼·ã«ãªã
- ã¨ã³ããªã®ç· ãã®åã°ã©ãã¯ã2015å¹´æ«ã«http/2æ®å度åã¯ï¼ãã¢ã³ã±ã¼ããã¾ã¨ãããã®
- ãfb/g+/twitterã®ä¸ã®äººã¨ãã¦åã人ã®å®æã§ã¯ããã ãã¨ããã®ãããã£ã¦é¢ç½ã
以ä¸æãèªãã å 容
- HTTP/2ãããã³ã«
- ç¾æç¹ï¼2015.3.31)ã§draft-17ãIESGãæ¿èª
- æ¢ã«å®è£
ãããè²ããªã¨ãã§ãããã¤ããã¦ã
- å®éã«ã¯RFCã«ããªã£ã¦ããªãã«ãé¢ããã
- 2015å¹´2æã®ãã¼ã¿ã ã¨å
¨ãã©ãã£ãã¯ã®5%ã§http/2å©ç¨ãã¦ã
- 2015.2.15ã«ã¨ã³ããªæ¸ãã¦ã
- daniel.haxx.se » HTTP/2 is at 5%
- ï¼è£è¶³ï¼ãã£ããæãèªã¿
- http/2ãããã©ã«ãã§æå¹ã«ãã¦ããã©ã¦ã¶
- Firefox35ï¼2015.1.13ãªãªã¼ã¹ï¼
- Chrome40
- 2015.1.28çºè¡¨ã®googleã®ãã¼ã¿ã ã¨5%ã®ãã©ãã£ãã¯ã¯http/2
- mozillaã®ãã¼ã¿
- Firefox35ã¦ã¼ã¶ããå©ç¨ãã¦ãhttpãããã³ã«ã®æ
å ±ãåé
- ç·æ°3400åã®httpã¬ã¹ãã³ã¹
- ãã®ãã¡9%ãhttp/2ã§ãã
- Firefox35ã¦ã¼ã¶ããå©ç¨ãã¦ãhttpãããã³ã«ã®æ
å ±ãåé
- http/2ãããã©ã«ãã§æå¹ã«ãã¦ããã©ã¦ã¶
- ï¼è£è¶³ï¼ãã£ããæãèªã¿
- å®éã«ãã£ã¨å¤ããããï¼
- 俺äºæ³
- 2015å¹´æ«ã«ã¯10%è¶ã
- 2016å¹´ã«ã¯å¤§åã®httpãªã¯ã¨ã¹ãã¯http/2å©ç¨ããã¯ã
- æä½ã§ããã©ã¦ã¶ã§ã¯ãããªãã¯ã
- 5%ã¨ã10%ã¨ã20%ãçã
ã®æ°åã®åºãæ¹
- httpãªã¯ã¨ã¹ãã®æ°ã«ã¤ãã¦ã®æ¯ç
- ãã¼ã¿è»¢ééã§ã¯ãªã
- ãã©ã¦ã¶ã®æ°ã§ããªã
- 2014å¹´12ææç¹ã§ã¯5%ã¨ã20-30%ã¨ãã®æ°åã¯ã©ãã ã£ãã®ãï¼
- è¨æ¸¬æ¹æ³ã®æ¯éã«ã¤ãã¦è°è«ã¯å¯è½
- ãã ãã®æã®è°è«ã®è¡ãçãå
ã¯æ±ºã¾ã£ã¦ã
- æ°ãããããããæ£ããã¨æãæ¹æ³ã§è¨æ¸¬ãã¹ãã
- httpãªã¯ã¨ã¹ãã®æ°ã«ã¤ãã¦ã®æ¯ç
- ã俺äºæ³ãã¨ãè¨ã£ã¦ããåã¯èª°ãªã®ï¼
- ããã³ãã«ãhttp/2ã«ã¨ã¦ãé¢å¿æã£ã¦ãã人
- httpã¯ã¼ãã³ã°ã°ã«ã¼ããä½å¹´ãåå ãã¦ã
- http/2å®è£ ã®ããã¤ãã«åå ãã¦ã
- æå±ã¨ãå¤åå
ã¨ãã®ç«ã¡ä½ç½®ããã®ã¨ã³ããªã«èªã¿åããã¨ããã®ã¯ãèªç±ã«
- ãã ããã¾ã§å人ããã°ã§æ¸ãã¦ããã¨
- ç¾æç¹ã§http/2å®è£ ã¯36ãã
ãã©ã¦ã¶
- chrome,firfoxã¯åãããµãã¼ããã¦ã
- IEã¯æªãµãã¼ã
- tech preview触ã£ãæãã ã¨ã¡ããã¨http/2å®è£ ããã¦ãã
- ä»å¾åºããããªãã¯ãªãªã¼ã¹ã§æè¼ã§ã¯
- safari
- http/2ãµãã¼ãããæ°é ã¼ã
- 俺äºæ³
- 2015å¹´æ«ã«ã¯ãã©ã¦ã¶å ¨ä½ã§50%以ä¸ã¯http/2ãµãã¼ã
ãµã¼ã
- apache httpd
- mod_h2ããããé²æã¯ã¢ã«ãã¡ã¬ãã«
- icing/mod_h2
- æ£åº§ãã¦å¾ 㦠or éçºå©ãããï¼éã§ã人æã§ãokï¼
nginx
- 2015å¹´æ«ã«http/2ããµãã¼ããããã¼ã¸ã§ã³ããªãªã¼ã¹ããã¨å ¬è¨ãã¦ã
- How NGINX Plans to Support HTTP/2 - NGINX
h2o
- h2o/h2o
- æ°é¡ã§ãé«éãªãã¨ãã¦ãª
- ããã¶ãåããhttp/2ãµãã¼ããã¦ã
- nghttp2
- Nghttp2: HTTP/2 C Library - nghttp2.org
- ãªãã¼ã¹ãããã·æä¾
- http/2ããhttp/1.1ã«ãã¦ã³ã°ã¬ã¼ã
- éç¨ä¸ã®http/1.1ãã話ããªããµã¼ãã®ããã³ãã¨ãã«ç½®ãã
- ãµãã¼ããã¦ãæ©è½ã¯ä»ã«ããããã
- apache traffic server
- Apache Traffic Server â Apache Traffic Server 6.0.0 documentation
- http/2ãµãã¼ã
- ä»å¾åºããªãªã¼ã¹ã«æè¼
- ï¼è£è¶³ï¼http/2å®è£ ä¸è¦§ã®wikiã ã¨v5.3.0ã§ãµãã¼ããã¦ããããããã
- nettyã¨ããjettyã¨ãããµãã¼ããã¦ã
- 俺äºæ³
- 2015å¹´æ«æç¹ã§http/2åããµã¼ãã¼ã®ã·ã§ã¢80%è¶ã
ãããã·ã¼
- squid
- http/2ãµãã¼ã
- Features/HTTP2 - Squid Web Proxy Wiki
- HAproxy
- ä¸ã®äººã«èããã©http/2ã«ã¤ãã¦ã¯åçãªã
- ä¸ã®äººã®ä¸äººã§ããWilly Tarreauã¯http/2ã®ä»æ§ä½æã«åå ãã¦ã
- æå¾
- Varnish
- ã¯ãªã¨ã¼ã¿ï¼Poul-Henning Kampï¼ã¯http/2ãdisã£ã¦ãããã
- Why HTTP/2.0 does not seem interesting â Varnish version trunk documentation
- ä¸ã®äººãã¡ã¯http/2ãæ®åãã¦ããã°ãµãã¼ãããã¨ã¢ãã¦ã³ã¹ãã¦ã
- 俺äºæ³
- 2015å¹´æ«æç¹ã ã¨ãã使ããã¦ããããã·ã¼http/2ãµãã¼ãã®å®è£ ã«çæãã¦ãããæ¢ã«ãµãã¼ãçããªãªã¼ã¹ãã¦ãã¯ã
ãµã¼ãã¹
- googleï¼åä¸ã®ãµã¼ãã¹ãyoutubeã¨ãï¼ãtwitter
- æ°ã¶æåããhttp/2æå¹ã«ãã¦ã
- spdyãµãã¼ããã¦ãwebãµã¼ãã¹å¤ã
- chromeã2016å¹´ã«spdyãµãã¼ããåãã¨ã¢ãã¦ã³ã¹ãã¦ã
- ãã®ææããã©ã«spdyããhttp/2ã«åãæ¿ãã¦ããæ°ã§ã¯ãªããï¼ã¨æ³åï¼
- 俺äºæ³
- 2015å¹´æ«æç¹
- 大è¦æ¨¡ãµã¼ãã¹ã ã¨http/2ãµãã¼ãã«ãªã£ã¦ãããæºåä¸ããã®ã©ã£ã¡ã
- 2015å¹´æ«æç¹
CDN
- akamai
- 2015å¹´æ«ã«http/2ãµãã¼ããã¨ã¢ãã¦ã³ã¹
- With HTTP/2, Akamai Introduces Next Gen Web - The Akamai Blog
- cloudflare
- nginxã§http/2ããµãã¼ãããã¦ãããµãã¼ããã
- ã¨ãCTOãHacker Newsã«ãã¹ããã¦ã
- From CloudFlare's perspective we currently support SPDY for all customers and wi... | Hacker News
- amazon
- ä»ã®ã¨ããã¢ãã¦ã³ã¹ç¡ã
- 俺äºæ³
- ãªã
- CDNçéã¯æ å ±ãåºåããªãã®ã§äºæ¸¬ãã«ãã
- akamaiã¨ãã§ããã¨ãããµãã¼ããã¦ãããã¨ãCDNæ¥çå ¨ä½ããã£ã¡ã«èµãåãã®ãæå¾
httpã¯ã©ã¤ã¢ã³ãï¼ãã©ã¦ã¶ä»¥å¤ï¼
- curlãlibcurl
- æ°ã¶æåããhttp/2ãµãã¼ã
- ããã°ã©ãã³ã°è¨èªãã¨ã«ä½¿ããhttp/2対å¿ã¯ã©ã¤ã¢ã³ã
- å²ã¨http/2ã«åãæ¿ãããããç¶æ³ã§ã¯
ä»ã«ã¯ï¼
- ãããããæãåºãããè£è¶³ãã
http/1.1ã®å¯¿å½
- 俺äºæ³
- ä»å¾ä½å¹´ã使ãããã
- ã¤ã³ã¿ã¼ãããå ¨ä½ã§http/1.1ã ããµãã¼ããã¦ããµã¤ãã®æ°ã¯äºæ¡ããã¼ããç¶ããã¯ã
- ãªãã§å ¨ä½ã移è¡ãã¦ãããªããã¯è²ã ã§ãã
ã¾ã¨ã
- twitterãgoogleãfacebookã«ããåéã«èãã¦ã¿ã
- 2015å¹´æ«æç¹ã§http/2ã®æ®åã®åº¦å
- çããããããã«ã5%ãã¨ã«åºåã£ãé¸æè¢ä½ã£ã¦é¸ãã§ããã£ã
- 50%ã¾ã§5%å»ã¿ãããã¨50%以ä¸
- åçéãã¦ãåã°ã©ãã«ãã¦ãã
- ãã¡ããçµ±è¨çãªå³å¯ãã¯ãªããã©ãåèç¨åº¦ã«
- èªåã¯15-20%ããããé¸ã¶
- ä¸å¤®å¤ã¨ãã¨10%ãããã
Kenton VardaãOSXã®ã«ã¼ãã«ãã°ã使ã£ã¦Chromeã¨Node.jsãç¡éã«ã¼ãã«åµãããã
sandstorm.ioã®2015.4.8ã®ããã°ã¨ã³ããª
- Sandstorm News: Remotely send Chrome and Node.js into infinite loops via this one weird OSX kernel bug
- osx/iosã®éåæi/oãæã
kqueue
ã®ãã°ãè¦ã¤ãã件ã«ã¤ã㦠- è¦ã¤ããçµç·¯ãæ¯èãã®è©³ç´°ããã°ã使ã£ã¦ã§ããæ»æãå½±é¿ãåããã¢ããªãæ¸ããçç±ï¼ã¢ãããªã®descriptionã¯ç´ ã£æ°ãªãããï¼ãå¦ãã ãã¨ãåæãããåºãããããã®ãã¿è§£ç¦ã§ãããçã
kqueue
ã使ã£ã¦ãos/softwareå ¨ã¦ãå½±é¿åããããã§ãªããã¨ï¼Darwinã®ã¿ãnginxã¯ã»ã¼ãã¨ãï¼ãããã£ã¨æ¸ããã¦ã¦åå¼·ã«ãªã
以ä¸æãèªãã å 容
- æ°ã¶æåã«çºè¦ããDarwin kernelã®ãã°
- ã»ãã¥ãªãã£ãã°
- Dawrin kernelèªä½ã¯ã»ã¼å ¨ã¦ã®appleãããã¯ãã§ä½¿ããã
- ãã®ãã°ãæ»æè ãå©ç¨ããã¨ããã
ãã®ããã°æ¸ãã¦ãæ¥ã«appleããããããã§ã
- ã£ã¦ãã¨ã§ããã®ãã¿ã§ããããããã°ãæ¸ãã
- About the security content of OS X Yosemite v10.10.3 and Security Update 2015-004 - Apple Support
- ãCVE-2015-1105ãããªã³ã¯å ã®ãã¼ã¸ã§æ¤ç´¢ãã¦ãããã¨ä¿ºã¨sandstorm.ioãè¼ã£ã¦ã
æåã«æã£ã¦ãã
- ãã°ãã¿ã¤ããèªåï¼Kentonï¼
- Adam Langleyå çï¼ImperialVioletã®äººï¼ã¬ãã«ã®äººéãããªã
- è¦ã¤ãããã°
- Heartbleedã¨ãShellshockç´ã®æ·±å»ãªãã°ã¨ãã§ã¯ãªã
- æ»æè
ããã®ãã°ãçªãã¦ã§ãããã¨ã¯ããã¦ã
- ä¸æçãªãµã¼ãã¹å©ç¨åæ¢ããã
- ãã°ãã¿ã¤ããèªåï¼Kentonï¼
- å
¨ã¦ã®ã»ãã¥ãªãã£ãã°ã¯ããããå
¨å®¹ãæ¸ãããã¹ã
- ã¨ããã®ãæè«
- ããããã®ãã°ããèªåããå¦ã¹ãããã«
- ä»åã®ãã°ã«ã¤ãã¦ã®appleã®è¨è¿°ã¯ç´ ã£æ°ãªã代ç©
- ããããã¯ä½ããå¦ã¶ã®ã¯ç¡ç
ããã¨ã¯å¥ã®ä»åã®ãã°ã®è©±ãªãã¿ã¨ãã¦ããç·ãã£ã¦ã
eventããªãã³ãªI/Oãå©ç¨ããããã®ã¤ã³ã¿ã¼ãã§ã¼ã¹
- OSã«ãã£ã¦ç¹è²ããã
- ãã®è¾ºãããªãµã¼ããã¦ãã¨ãã«çºè¦ãã
- ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ãä¾ãããªããããªæã
- ãããã¨ããã¨ã»ã»ã»ããã¾èªåãéãã¦ãã³ãã¯ã·ã§ã³ã§ããããã¤ãããã¡ãã»ã¼ã¸ãé£ãã§ãããèµ·ããã¦ãããããã¾ã§å¯ãã
- ããã«å¯¾ããOSã®åå¿ã¯ãã¾ãã¾ã§ã5ã¿ã¤ãããããã
- Lenuxã¯
epoll
ãBSDã¯kqueue
ãwinã¯ãã»ã»ã»ï¼ç¥ï¼ - ã¡ã«ããºã ãéãã ãã§ãªãããããããã«ãã¼ãã¦ãã¦ã¼ã¹ã±ã¼ã¹ã®ç¯å²ãéãã
- Lenuxã¯
- ã¦ã¼ã¶ã¯ç¹å®ã®ã¡ã«ããºã ãé¸ã°ãªãã¨ãããªã
- èªåãéçºãã¦ãCapân Protoã®ããã«ããã®osãã¨ã®éããæ½è±¡åããä»çµã¿ãä½ããã¨ãã¦ã
- Capân Proto
- ããä½ãããã«åosã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ç¹è²ããã¡ãã¨ç解ãããã¨è²ã ãã£ã¦ã
manèªã¿æ¯ã¹ã¦æ°ã¥ãããã¨
- OOBï¼Out of Bandï¼ãã¼ã¿ã®æ±ã
- å¥åç·æ¥ãã¼ã¿(urgent dataï¼
- ãã®ãã¼ã¿ã®ãã³ããªã³ã°ã«ã¤ãã¦è¨è¿°ã¯æããã®ããªããã®ãããã¨ããæã
- tcpæ¥ç¶ã§ã¯é »åº¦å°ãªãã使ãããæ©è½
- tcpæ¥ç¶ã§ã¯ãã¼ã¿ã¯ãã¥ã¼ã«å ¥ã£ã¦é çªã«éããã
- ãã®é çªå¾ ã¡ãã¹ããããã¦éããã¨ã®ã§ãããã¼ã¿
- OOBã®ãã¨ã¯ç¥ããªãã¦å½ç¶
- telnet使ãã¨ã以å¤ã ã¨ãã¯ã¦ã¼ã¶ã¯å©ç¨ããæ©ä¼ã®ãªãæ©è½
- æ¥ç¶å ã®ã¢ããªãå ¥åãå¦çãã¦ãªãã¨ãã«"ctrl+C"æ¼ãã¿ãããªãã¨ãéç¥ããæ¹æ³ãå¿ è¦ã ãã
ã»ã¼å ¨ã¦ã®eventéç¥APIã§ã¯ãé常ãã¼ã¿ã¨OOBãã¼ã¿ã¯éãã¤ãã³ããçºç«ãã
poll()
ã¨å¾ç¶ã®epoll
ã®å ´å- é常ãã¼ã¿ã¯
POLLIN
ã¤ãã³ã - OOBãã¼ã¿ã¯
POLLPRI
ã¤ãã³ã
- é常ãã¼ã¿ã¯
ã¢ããªãOOBãã¼ã¿åä¿¡ãæ³å®ãã¦ããªãå ´å
- ã¢ããªã¯OOBãã¼ã¿ã®ã¤ãã³ãéç¥ã«ã¤ãã¦åãåãããããªã
- kernelã¯OOBãã¼ã¿ã®ã¤ãã³ããã¹ã«ã¼ããããé常ãã¼ã¿ã¹ããªã¼ã ã«å«ãããã®ãããã
åoså¥ã®
kqueue
- BSD
- OOBãã¼ã¿ãã³ããªã³ã°ã«ã¤ãã¦ææ§
- FreeBSD`
- kqueue(2)
- OOBãã¼ã¿ãã³ããªã³ã°ã«ã¤ãã¦è¨è¼ã¼ã
- 調ã¹ãéãã ã¨ãOOBãã¼ã¿ã¤ãã³ãããµãã¼ãããã¦ãªã
- DragonflyBSD
- OOBãã¼ã¿ã¤ãã³ã
EVFILT_EXCEPT
ãå®ç¾©ããã¦ã
- OOBãã¼ã¿ã¤ãã³ã
- DragonFly On-Line Manual Pages : kqueue(2)
- Darwin(OSX/iOS)
- ããã¥ã¡ã³ãã«ã¯OOBãã¼ã¿ã®ãã¨ãæ¸ãã¦ãªããå®è£ ããã¦ãæ©è½ãã
EVFILT_READ
ã¤ãã³ã- é常ã®ï¼ã¤ã¾ãin-bandï¼ãã¼ã¿åä¿¡ã§çºç«
- ã©ãããOOBãã¼ã¿åä¿¡ããæã
EVFILT_READ
ã¤ãã³ããçºç«ãã¦ã- ãã ãã©ã°ï¼
EV_OOBAND
ï¼ãã¤ãã¦ã¤ãã³ããçºç«ãã¦ã
- ãã ãã©ã°ï¼
- é常ã®æµã
- é常ãã¼ã¿åä¿¡
recv()
ã³ã¼ã«ãã¦åä¿¡ãã¼ã¿èªã¿è¾¼ã¿- ããã§ããã¾ã
- åã³ã¤ãã³ãã«ã¼ãã¸æ»ã
level-triggered
ã¢ã¼ãã§kqueue
使ã£ã¦ãå ´å- ç°¡åãªã®ã§ããã¦ãã®äººã使ãã¢ã¼ã
- osã¯èªã¿åãããå¾ããOOBãã¼ã¿ãæ®ãèªã¿åãåãã¼ã¿ã¨ãã¦æ®ã
- ãã£ã¨åä¿¡ãã¦ããã®ããã«æ¯ãèã
- åãã¤ãã³ããç¹°ãè¿ãã¦çºç«ãã
- ãããã¦ç¡éã«ã¼ãã«å ¥ãè¾¼ã
- BSD
- ç·æ¥ãã¼ã¿ãtcpãã±ããã§åãã¨ã£ãã ãã§ã»ã¼å
¨ã¦ã®ã¤ãã³ãããªãã³ãªãããã¯ã¼ã¯ã¢ããªãç¡éã«ã¼ãã«åµãã¨ãã話ï¼
- ããªã¢ããªï¼ã¨æã£ã¦ã
- 試ãã¦ã¿ã
- ãã³ããã£ã
- chromeãnodeãnginx調ã¹ã
- chrome
- oobãã¤ããã¬ã¹ãã³ã¹ã¨ãã¦è¿ãhttpãµã¼ãã¼ã«ã¢ã¯ã»ã¹
- ã¢ããªå ¨ä½ããã³ã°ã¢ãã
- ã¢ã¯ã»ã¹ããã¿ãã ããã¨ãã§ãªããchromeå ¨é¨ããã³ã°ã¢ãã
- å¼·å¶çµäºãããããªããªã
- ãã®å®é¨ããç¥ã£ããã¨
- ã»ãã¥ãªãã£issueã¨ãã¦closeããã
- Issue 437642 - chromium - Security: OSX: TCP OOB data will hang main process event loop - An open-source project to help move the web forward. - Google Project Hosting
- node
- ã¯ã©ã¤ã¢ã³ãããOOBãã¼ã¿åãã¨ã£ããµã¼ããç¡éã«ã¼ãã«çªå ¥
- ä»ã®ãããã¯ã¼ã¯ã®ãã³ããªã³ã°ããã³ã°ã¢ãããã
- ãã®issueãfixæ¸
- nginx
- ã»ã¼ããç¡éã«ã¼ãã«ãªããªãã£ã
- æ°ãããã¼ã¿ãåä¿¡ããã¨ãã ãæå³ãã¦ãªãã¤ãã³ããåãåãããã«åã
- ä½åº¦ãå©ç¨ã§ãããã¼ã¿ããã£ãã¨ãã¦ãã¤ãã³ããä½åº¦ãåãåããªã
edge-triggered
ã¢ã¼ãã§kqueue
ã使ããã¦ãããã
- nginxã¯ç¡äºã ã£ãããchorme, nodeã§ã¯ç¡éã«ã¼ããçãã
- chromeãnodeã¨ãã£ãæåã©ãããå½±é¿åãã¦ã
- nginxã¯ç¡äºã ã£ãããchorme, nodeã§ã¯ç¡éã«ã¼ããçãã
- ä»åã®ãã°ã¯APIè¨è¨ã¬ãã«ã®åé¡
- kernelã«ãã°ãããããã§ãªã
- ã¤ã³ã¿ã¼ãã§ã¼ã¹ãæ··ä¹±æ°å³
- ããã«ã¡ããã¨ããã¥ã¡ã³ãã«è¼ã£ã¦ããªãããã§ããã
- ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ã¾ããã®ããã§è¤æ°ã¢ããªã§åããã°ãåç¾ããç¾½ç®ã«
- ãã®ãã°ãç´ãããæ¹ã¯äºæã«ãããã
- èªåããã¿ã¦æ£ããã¨æãããæ¹ã§appleã¯ãã®ãã°ã«å¯¾å¿ãã¦ã
- appleã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ä¿®æ£ãã
- TCPã§OOBãã¼ã¿åä¿¡ããã¨ãã«
EVFILT_READ
ãçºç«ããªãããã«ãã
- TCPã§OOBãã¼ã¿åä¿¡ããã¨ãã«
- appleã®ãã®ä»¶ã®è¨è¿°ãå
¨ããããããã
- ãªãã§ãã®åé¡ã"state inconsistency issue"ã¨è¡¨ç¾ã§ããã®ã
- ãããé©ç¨å¾ã®macã§èªåã§ãOOBãã¼ã¿éä¿¡ãã¹ãããããã°ã¯æ¶ãã
- OOBãã¼ã¿ã¯ã¹ã«ã¼ãããããã«ãªã£ã
- appleã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ä¿®æ£ãã
- ãã®ãã°ã®æè¨