大å祥寺.pm https://kichijojipm.connpass.com/event/314917/ https://blog.utgw.net/entry/2024/07/15/135648
家ã«ãã½ã³ã³ãã¯ããã¦æ¥ã¦ãã30å¹´ããããããã°ã©ãã³ã°ãå§ãã¦ãã20年以ä¸ãçµã¡ã¾ããããã®éãITæè¡ã«å¯¾ããæã¯å¤ãããã«ããã£ã¨èµ°ãç¶ãã¦ãã¾ãããã§ã¯å½æã®èªåã¨ä»ã®èªåã§ä½ãéãã®ã ããã¨èãã¦ã¿ãã¨ããããã¡ããã¡ãå¤ãã£ã¦ããã®ã§ã³ã£ããã¾ãããæ¬è¨äºã§ã¯ä½ãã©ãå¤ãã£ãã®ãããããè¦ã¦ãªã«ãæã£ãããªã©ãæ¸ãã¾ãã æã¯æ¬¡ã®ãããªãã ãããããã¾ããã 大ããªãã®ã¯ä¸ã¤ã®ä»äºãããåç´ã§å°ããªãã¼ã«ãçµã¿åããã¦ä½ãã¹ã ã½ããã¦ã§ã¢ã¯å¯è½ãªéãè¨å®å¯è½ã«ãªã£ã¦ãã¦ã»ãããããããèªåã®å¥½ã¿ã«ãªãã¾ã§ã«ãªã«ãªãã¥ã¼ãã³ã°ããã å¯è½ãªéããã¹ã¦ãã¼ãã¼ãã ãã§æä½ã§ããããã«ãªã£ã¦ãã¦ã»ãã ããããUNIXå²å¦ãã¯ããã¨ãã¦ãããããªæ¬ãWebãµã¤ããªã©ã«å¼·ãå½±é¿ãåãã¦ãããã¨ããããããã¾ãã ã¨ãããä»ã¯æ¬¡ã®ããã«å ¨ç¶éããã¨ãèãã¦ãã¾ãã ãã©ãã«ããã£ã
ä¸åº¦èãããå¿ããããªããããªå°è±¡æ·±ããã°ã¨ãããã®ããããåã¯æ°å¤ã®ãªã¼ãã¼ããã¼ã¨èãã¨å¿ ããã®2ã¤ã®ãã°ãæãåºãã¦ãã¾ããã©ã¡ããé¢ç½ãã¨ãã½ã¼ããªã®ã§ã¡ãã£ã¨ç´¹ä»ãã¦ã¿ããã ä¸ã¤ç®ã¯ãå代Civilizationã«ãã£ããã°ã§ãããCivilizationã¯ææéã§æ¦ãæ¦ç¥ã·ãã¥ã¬ã¼ã·ã§ã³ã²ã¼ã ã§ããã³ã®ã¹ãã³ã¨ãã¨ãªã¶ãã¹å¥³çã¿ãããªãã¬ã¤ã¤ã¼ãé¸ãã§ãä¸çå¶è¦ãå®å®éçºç«¶äºã§ã®åå©ãç®æãã¨ããã²ã¼ã ã ã å代Civilizationã«ãã£ããã°ã¯ãéæ´å主義ã®ã¬ã³ã¸ã¼ãçªç¶æ ¸æ»æãã¦ããã¨ãããã®ã ã£ããåå ã¯ææãæ°ä¸»ä¸»ç¾©ãæ¡ç¨ããã¨æ»ææ§ã2ä¸ããã¨ãããã¸ãã¯ã ã£ããå代Civã§ã¯ã¬ã³ã¸ã¼ã®æ»ææ§ã¯å ¨ãã¬ã¤ã¤ã¼ä¸ã§æå°ã®1ãªã®ã ããã²ã¼ã ãé²ãã§ã¤ã³ãææãæ°ä¸»ä¸»ç¾©ãæ¡ç¨ããã¨ãæ»ææ§ããã¤ãã¹2ããã¦ãªã¼ãã¼ããã¼ã§255ã«ãªããã¬ã³ã¸ã¼ãã²ã¼ã ä¸ã§çªå¦ã極度ã«æ»
åºèº«ã«ã¿ã³ããä¹ããä»äºã£ã¦ãããã³è¨ããã¼ãªâ¦â¦ã ããã°ã©ãã³ã°ã¨ã¯ãåå¼·ãéåãã¹ããã©ãä¸æãªã¯ã½é ãã£ä¸å¦çãã俺ããã½ã³ã³1å°ã§åãæè¡è ã«ãªã£ã¦â¦ï¼ãã¨ã¯ã¯ã¯ã¯ããªããå§ãããã®ã®æã£ãããæ®éã«é£ãããå¦æ ¡ã®è©¦é¨ã§åºããããªç¥èè¦æ±ããããã§3æ¥ã§æ¾ãæãã10æ°å¹´å¾ã«noteã§ããåãã¯çµ¶æçã«ããã°ã©ãã³ã°ã«åãã¦ãªããããããããªãã¦è¨äºãæ¸ãã ãã®ã¶ã³ã«æãä¸ããã夢ã¨å¸æã«æº¢ããæè¡ã§ããã è¿å¹´ã§ã¯ãã½ã³ã³ã®ã¹ããã¯ã®ä¸æã«ã¨ããªãã§ãããã¨ãå¢ããã©ãã®ã家åºã«ãããRTX2080ã§ç°¡åã«ãã£ã¼ãã©ã¼ãã³ã°ãã§ããããã«ãªã£ããUnityã§3Dã²ã¼ã ãããªããªåããã¦ããã«ã¼ã¹ã¯ãªã¼ã³ã¯åºãªãããã£ã±ä¸çãåºããã®ã¯å°è³¢ããç¥æµãããã¹ããã¯ã®æ´åã ãã éçºç°å¢ãè¨èªãé¸æè¢è±å¯ã§ãã¨ãã£ã¿ããã¤ã¦ã¯ææã¯ã©ã¹ã§ãæã«å ¥ããªãã£ããããªè´ æ²¢ãªæ©è½ãæºè¼ã®ãã®
ãããã¯ã表ä¸ã®ããªãã¬ã¼ã¹å¯¾è±¡è¨èªãã«æããããã«ãå¤ãã®ã¡ã¸ã£ã¼è¨èªã«å¯¾ãã代æ¿æ段ã§ãããã¾ãã Java ã®ä»£ããã«ã¯ Kotlin ã Ceylon ãã JavaScript ã«ã¯ TypeScript ã Flow ãã Objective-C ã«ã¯ Swift ãããã㦠PHP ã«ã¯ Hack ãããã¾ãã Python ã¯èªèº«ã« null å®å ¨ ãåãè¾¼ã¿ã¾ããã Crystal ã¯ç´æ¥ Ruby ã¨é£æºãã¦ä½¿ããããã§ã¯ããã¾ãããã Ruby 風㮠null å®å ¨ ãªè¨èªã§ãã Rust 㯠C++ ã®ä»£æ¿ãç®æãã¦éçºããã Firefox ã®ä¸é¨ã§ C++ ã®ã³ã¼ããç½®ãæããã®ã«ä½¿ããã¦ãã¾ã 2 ã null ãå¼ãèµ·ããã¦ããæ°ã ã®åé¡ãèããã¨ãåã¯ã null å®å ¨ 㯠GC ï¼ããã®ä»ã®å®å ¨ãªã¡ã¢ãªç®¡çææ³ï¼ã«å¹æµããããã°ã©ãã³ã°è¨èªã®é²åã ã¨èã
ãã®10å¹´éã®ããã°ã©ãã³ã°ã®å¤åãã¨ããã®ãæµãã¦ããã®ã ãã©ãå人çã«ã¯ã¯ã©ã¦ããåæ¨è«ä»ãéçåããªã¢ã¯ãã£ãããªãã¨ãã風ã«æã£ã¦ã¾ãã ã¯ã©ã¦ã(ã¨ã¹ãã) 2008å¹´ã«Google App Engineãåºãããæåã®Hadoopãµããããè¡ãããããã¡ããã©10å¹´åã«å§ã¾ã£ãã¨ãè¨ããã¯ã©ã¦ãã¯ããã§ã«æµè¡ã§ã¯ãªã常èã«ãªã£ã¦ãã¾ãã ãã¾ããã¯ã©ã¦ããèããã«ã·ã¹ãã ãçµãã¨ãããã¨ã¯ãªãããããªãã§ããããã ã¹ããããã®10å¹´ã§åºã¾ãã端æ«ã«UIããã¼ã¿ã¯ã¯ã©ã¦ãã¨ãããã¨ãå½ããåã«ãªã£ã¦ãã¾ãã 40%ã®è¦è´çããã£ãç´ ç½ã§è¦è´è ãåææ票ãããããªãã¨ããAWSã使ã£ã¦å±ãªããªãè¡ããããã«ãªã£ã¦ãã¾ããã10å¹´åã«ãã®ãããªãµã¼ãã¹ããã£ã4æéã ãè¡ãã¨ãããã¨ã¯ãªããªãèãã«ãããã®ã§ãå®ç¾ã§ããã®ãéããããã³ãã¼ã ãã ã£ãã¨æãã¾ããããã©ããã¾ã§ã¯ãã
ãµã«ã¯ã«ã®Webãã¶ã¤ã³å ¥éã§ã¯ãã©ã®æ¸ç±ããããã¾ãã©ã®ã¦ã§ããã¼ã¸ãããåããããããªã·ã£ã¬ãªWebãµã¤ããä½ãããã®ç¥èã解説ãã¦ããã¾ããã¯ããã«HTMLã¨CSSããã¹ã¿ã¼ãã¾ããããåå¿è ã®æ¹ã¯STEP.1ããèªãã§ãããã¨ããããããã¾ãã
Unicodeã®UTF-16ã¨ã³ã³ã¼ãã£ã³ã°ã§ã¯ã»ã¨ãã©ã®æåï¼ã³ã¼ããã¤ã³ãï¼ã¯2ãã¤ãã§è¡¨ç¾ãããããUnicodeã«å¾ãã追å åé²ãããæåã®å¤ãã¯4ãã¤ãã§è¡¨ç¾ãããã4ãã¤ãæåããã¾ãæ±ããªãããã°ã©ã ã¨ããã®ã¯ããã¨ããããããããä¸çä¸ã§åºã使ãããããã«ãªã£ãçµµæåãããã«ãã£ã¦4ãã¤ãæåã§ããããã§ããã®ãããªæåãæ±ããªãåé¡ããããã¼ã¹ã§è§£æ±ºã«åããã¤ã¤ãããããã«ã¤ãã¦å°ã説æãã¦ã¿ããã¨æãã Unicodeã80年代ãã90年代åé ã«ããã¦ãã¶ã¤ã³ãããã¨ãã®ç®æ¨ã®ä¸ã¤ã¯ãUnicodeã«å«ã¾ããæåæ°ã65536å以å ã«åãããã¨ã ã£ããç¾ä»£ã®æç« ãå®ç¨çãªã¬ãã«ã§è¡¨ãããã«ã¯ãæ¼¢åãªã©ãå«ãã¦ãããã ãã®ç¨®é¡ã®æåãããã°ååã ã¨èããããã®ã ãå½ç¶ããã¯1æåã2ãã¤ãã§è¡¨ããã¨ã念é ã«ç½®ãã¦ãããã¤ã¾ãã³ã³ãã¥ã¼ã¿ã®æºç±æããå½æã«è³ãã¾ã§åç´ã«è±èª
4æãã社å ã§Type-Driven Development with Idrisã®èªæ¸ä¼ããã£ã¦ãã¾ãã takezoe.hatenablog.com æè¿ããããChapter 3ã¾ã§é²ã¿ãå®éã«èªåã§ã³ã¼ããæ¸ãã¨ã¯ãµãµã¤ãºãªã©ãåºã¦ãã¾ããããã®æ¬ã§ã¯Atomã使ããã¨ãæ¨å¥¨ããã¦ããã®ã§ãããAtomç¨ã®Idrisããã±ã¼ã¸ãé常ã«å¼·åã§ãåé§åéçºã®é åãååã«æãããã¨ãã§ãã¾ããããã§ãä»åã¯å®éã«Atomã§ã®Idrisããã°ã©ãã³ã°ãã©ã®ãããªãã®ãã«ã¤ãã¦ç´¹ä»ãããã¨æãã¾ãã github.com ãã¨ãã°ä»¥ä¸ã®ãããªã·ã°ããã£ãæã¤Vectï¼è¦ç´ æ°ãåæ å ±ã«æã¤ãªã¹ãï¼ç¨ã®ãããé¢æ°ãå®è£ ããã¨ãã¾ããVect n aã®åè¦ç´ ã«(a -> b)ã¨ããé¢æ°ãé©ç¨ãã¦Vect n bãè¿ãã¨ãããã®ã§ãã my_vect_map : (a -> b) -> Vect n
# ãã®ä»¶ ã«ã«ãã»ãããµã¼ã¬ã®ã³ã¼ããããããã§ãããã¨ãããã¥ã¼ã¹ã¯ç¬ãéã«åå°ã«åºããã2chã«ã¯æ¬ä»¶ã«é¢ããã¹ã¬ãããä½æ¬ãç«ã£ãããã®è«èª¿ã¯ä¸æ§ã«ããµã¤ã³ãããã¾ã¨ãã«ä½ããªããªãã¦é¦¬é¹¿ããããæ å½ããã°ã©ããä½è³ããã¦ç¬ãããã¨ãã£ããããªç©ã ã£ããããã¦ãã®ãããªæ¸ãè¾¼ã¿ã®ä¸ã«ãCã³ã¼ãã示ãã¦ããµã¤ã³ããªãããã£ãããã ãã§ä½ããã®ã«ãã¨çºè¨ããè ãä½äººãç¾ãããããã¦ãããæãéè¦ãªç¹ã ãããã®ããã«ãã¦ç¤ºãããã³ã¼ãã¯ããªããå ¨é¨ã«ã«ãã»ãããµã¼ã¬ã®ããã°ã©ããç¯ããã®ã¨åããã¹ãç¯ãã¦ããã ç¾å®ã§ãµã¤ã³ããæ¯ãã®ã¯ç°¡åã§ãããããããããããµã¤ã³ãã®ã³ã¼ããæ¸ãã®ãç°¡åã§ãããã¨ããæ ¹æ ã«ã¯ãªããªãã // Time Stamp 2006-12-13 02:44:53 (Last Modify) 2006-12-13 02:30:26 (First Edition)
ä»æ¥ Functional Programming Principles in Scala ã§èãã話ãé£ããã£ãã®ã§ã¡ã¢ã Subtype æ¸ãæ¹ã¨ã㦠A <: B ã¨æ¸ãã° A 㯠B ã® subtype ã§ãããã¨ã示ãã A >: B ã¨æ¸ãã° A 㯠B ã® supertypeãè¨ãæããã° B 㯠A ã® subtype ã§ãããã¨ã示ãã Subtype ã¨ã¯ä½ãï¼ã¨ããã®ã¯ Liskov substitution principle ã¨ããã®ã§å®ç¾©ããã¦ããã ãA <: B ã§ããã°ãBåã®å¤ã«å¯¾ãã¦åºæ¥ããã¨ãªããªãã§ãAåã®å¤ã«å¯¾ãã¦åºæ¥ããã¨ãããã¨ãããã ã¯ã©ã¹é層ã§è¨ãã°ã A <: B ã¨ããã®ã¯ A ã B ã® subclass ã¾ã㯠A == B ã£ã¦ãã¨ã Subtype ã®æ¦å¿µã¯ã¯ã©ã¹é層ã«ã¨ã©ã¾ããªãã ãããªåãå®ç¾©ããã¦ãããã class
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}