大éªRubyä¼è°04ã«ãMinify Ruby Codeãã¨ããã¿ã¤ãã«ã§ç»å£ãããå½æ¥ã®ã¹ã©ã¤ãã¯ä»¥ä¸ã
ã«ã³ãã¡ã¬ã³ã¹ã¾ã§
ãã¼ããªã¼ã¬ãã¤ã¶ã¼ ydah ããã¨ãã¼ãã¼ãã®é¡ã¶ããèããã¨ããã¼ãµã¼ãã®è©±ãããã¨ã«ã³ãã¡ã¬ã³ã¹ã®ãã¼ã«åãã ãããã¨æãã¤ã¤ãã§ã¯ã©ããªè©±ã ã¨é¢ç½ãã ãããã¨ããã®ã¯ãçµæ§æ©ãã ãã¼ãè¨å®ã ã£ããã²ã¨ã¤ã¯ ruby.wasm ã®è©±ããã¼ãã«ãèãã¦ã¿ãããã©ãããã¾ã§ãã³ãã®ãããã¿ãæã£ã¦ããããã§ã¯ãªãã®ã§æ©ãã§ããã¨ããããµã¨ require_relative
ã§ãã¡ã¤ã«ãåã£ã¦ãããã¨ããã¨ãã®ãããã¯ã¼ã¯è»¢éã¯ï¼ã¨ããCDN ã¨ãã¸ãµã¼ãã¼ã« Rails ã¢ããªãé
å¸ãããããªæªæ¥ãæ¥ããï¼ã¨ãå¦æ³ããæã«ããRuby ã§ã¯èããªã minify ãä½ã£ã¦ã¿ããã©ããªããã ããããã話ã®åã£æããã
ãããªæµãã§ãç¾ä¸ã®çã«ãªããã©ããã§ã¯ãªããåã«èå³æ¬ä½å è¡ã§å®è£ ãã Gem ã以ä¸ã
ãã¡ã¼ã¹ãã³ãããã6æ3æ¥ã¨ãããã¨ã§ããããã¼ã¶ã«ãæ¸ãåã«ãã£ããä½ã£ã¦ã¿ã¦ã©ããªè©±ã«ã§ããããæãåããã¦è©¦ãã¦ããã
æå¾ã¾ã§æ©ãã§ããã®ã¯ Gem ã®ååãDay 0 ã§è¯ãååãåºãã°å¥ã®ååã«ãããã¨ããã ã£ãããã©ãããã§æµ®ãã¶ãã¨ã¯ãªãã£ãã®ã§ããã®ã¾ã¾ Minify Ruby ããã® minifyrb ã¨ããååã¨ããã
åä»ãã¨ãã¦ã¯ããã¤ã¦ã® Standard Ruby ããã® standardrb ã¨åããããªå½¢å¼ãã¾ãããµã¤ãã§ãããã³ãã³ãåã¯è¯ããã®ãããã°ããã¨ã§ã¨ã¤ãªã¢ã¹ãä½ãããããã¾ããã
Day 0
ã¯ã©ãããã¼ã«ã«é è©£ãæ·±ã ydah ããããRubyist ã§è²¸åã«ãã¦ããããåºã¨ãããã¨ã§åãã§åå ãã¦ãã¾ãããããã§ã¯ inao ããã«ã¯å æ¥ã®ã¤ã³ã¿ãã¥ã¼è¨äºãè¤ãã¦ããããæµãã§ãæ¾ç°ããã¨ä¸ç·ã«å½æã®è»½ããµãããããã¼ã¯ã¨ãããããããã㨠onk ã¨ããã ãä¸ç·ã«é£²ãã ã®ã¯ã³ããç¦ä»¥éã¯ããã¦ãããããªãããmakicamel ã¨ãã¡ãã¨è©±ããã®ã¯åãã¦ãããããªã㦠dRuby ã®è©±ãã§ãã¦ããã£ãã§ãã
ãã®ãåºã§ã¯6種é¡ãããã¯é£²ãã§ããã®ããªãå¥è¯é¸é ã®ãã¼ã«ã«ãã¼ã«ã¨ãä¹ ãã¶ãã«é£²ãã¦ããã£ãã§ãããããã¨ããããã¾ããã
æ¬ç·¨ (åå)
5æã® RubyKaigi 2024 ã§å¦ãã ã¯ãã®ãã«ã³ãã¡ã¬ã³ã¹åæ¥ (ã¨ãããåæ¥) ããå ¨åãåºãããä½åã大å¤ã¨ãããã¨ãå¿ãã¦ãã¾ã£ã¦ããããã§ãDay 0 ã®é£²ã¿ããã§éå§ã«é å»ãã¦ãã¾ã£ããã¨ãããå°çãã¦ãåä»ã§ ogomori ããã«æããè¿ãã¦ããã ããã
kaneko ããã®çºè¡¨ã¯ã¿ã¤ãã«çã«èªåã¯èããªãã¨ãã¡ã ããã¨ã¯ãã£ãã®ã§ããããã¼ã«ã«å
¥ã£ãã¨ããã§ã¯ if
ã®ãã¿ã¼ã³ã話ãã¦ãããããããèãã¦ãã¾ããã
ããã§è»½ããµãããããããã¨ãkaneko ããã«ã¯å»å¹´ã®æ¾æ¬ã§ã® RubyKaigi 2023 ã®éå ´åä»å¾ ã¡ã®éã«ãRuboCop ã¨ãã¦ãã¼ãµã¼ã«æ±ãããã®ãã¨ãã質åãããã£ã¦ãã¦ãããã¼ãµã¼ãæã¤ã¹ããã®ãã¯å¥ã¨ãã¦ãªã¼ãã³ã¬ã¯ãã®ããã®æ©è½ã Parser gem ã«ãã£ã¦ããã®ããããããã¨å¬ãããã¨ãããã¨ã話ãã¦ãã¾ããããããä»åãæé«ã®æ§ææ¨ãã®è¨è¨ã«çãè¾¼ãã§ããã¦ãã¦ãå人çã«ã¯2å¹´åã®è©±ã®ã²ã¨ã¤ã®ã¢ã³ãµã¼ãã¼ã¯ã¨ãã¦èããã¨ãã§ãã¦é¢ç½ãã£ãã§ãã
ãã®å¾ã®ååãã¼ã¯ã¯ãkinoppyd ãã㯠RubyKaigi ã® Schedule ã¢ããªã®è£è©±ãmakicamel ããã® dRuby 話ã¨ç¶ãã¦èãã¦ãã¾ãããmakicamel ããã®è©±ã¯ãRabbit ã dRuby ã§ãããã¨ãä½ã®å½¹ã«ç«ã¤ãããããªãæãããä»åã®ã¯ãã¼ã¸ã³ã°ãã¼ãã¼ãã¨ç¹ããå½¢ã«ããªã£ã¦ãã¦é¢ç½ãã£ãã§ã (è¤ãã¦ãã¾ããï¼)ã
ã©ã³ã
(å°å)Rubyä¼è°ã¨ããã°ãã¼ã«ã«ãªåå°ã§ã®ã©ã³ãã¨ããã®ãããã¾ãããä¸æ £ããªãªãã£ã¹è¡ã§ã®ã©ã³ãã¨ãªãã¨ããªããªããåºãããããªãã¨ããã®ã¯åº¦ã ééããåé¡ãããã¾ãããã®ãããä»å㯠ANDPAD ãããããªãªã¼ã¹ããã¦ããè¨äº ã«ãydah ããããããã®ã©ã³ãæ å ±ããã£ãã®ãä½é¨ã«ãªãã¾ãããhasumikin ããã¨ã©ã³ãã«è¡ããã¨ãªã£ãæã« ydah ããã®ããããã©ã³ãã¨ãããã¨ã«ãªãããåºããã¯ãé«ç°ããã®é¢ä¿è ãã¨ãããã¨ã§ ydah ããæ¬å½ã«å¤§éªã®äººã ã£ãï¼ã¨ãªã£ã¦ãRubyist ã®ãã®åå°ã§ã®æ¥å¸¸ãä½é¨ã§ããã©ã³ãã¯ä½é¨ã§ããã
è¡ã£ãå ã¯ããããã³ã«ãã¨ã¼ã«ãããã§ãããããã¾ã§ç¾å³ããã©ã³ããããã ããã¨ãã§ãã¾ãã (ã©ãã ãåµã好ããªãã ã¿ãããªçºæ³¨ã«ãã¦ãã¾ã£ã) ããã¡ãããã¾ã§ããã
ã¡ãªã¿ã«ãåºã®èª¿çã®å¾ ã¡æéã§ãªããæ°ãªã MBP ãåãåºãã¦ãminifyrb ã®ãã¡ã¼ã¹ããªãªã¼ã¹ããã¦ãã¾ããã
ããããããã£ã Gem åããªãªã¼ã¹å ´æããæåã㦠lumiere ã«ããããã¨ãä¸ç¬æã£ãã®ã§ããã調ã¹ãããã©ã³ã¹èªã§ãå ãããè¼ãããæå³ããããããUglify ã®éãæ㤠Minify ã¨å¯¾æ¥µã®ååã ã£ãããæ念ãã¾ãã (ããã¯ããã§é¢ç½ããããããªãããã©) ã
æ¬ç·¨ (åå¾)
ãºãããã®è©±ã¯ Reline ã®è£å´ã®è©±ã§ãå®å ¨ã«é ã®ãã人ã®è¨è¨ã®èãæ¹ã®è©±ã§ãèãã¦ããã¨èªåãé ãè¯ããªã£ãã¨é¯è¦ã§ãããã ãã©ãä½ãç解ã§ãã¦ããããã§ã¯ãªãã®ã§ãããæããããã¼ã¯ããããæãã ã£ãããã¨åºã ãã«è¡¨ç¤ºãããç·é¦è±ç«ã®åç» (ã«ããã¿ããªãï¼) ãã³ã¼ãã¨ããã®ããç¹ã«ä¸èº«ã®èª¬æãªãååºä»£ããã«åºã¦ããæããç¸å¤ãããã®ãºãããã§ããã£ãã§ãã
joker ããã®ãã¼ã¯ã¯ãèªèº«ã®ãã·ã³ããã¬ã¼ã³å¯¾å¿ã§ããã«ãæ¥é½ inao ããã® PC ã§è¡ããã¨ã«ãªã£ãã¨ã¯æããªãã¯ãªãªãã£ã§ãããã§ãã (ãããã£ããã©ãã«ã«éãã¤ã¤ãããªãã¨ããããããã joker ããããã) ãç¹ã« YJIT ã® Rust å以éãRuby 㨠Rust ã®ã¤ãªããã«é¢ããåãã¯åº¦ã è¦ã¦ãããã®ã®ããã®æ å ±ã«é¢ãã¦ã¯æ£è¦ãããã¬ãã«ã§ã¾ã¨ã¾ã£ãæãã®ãã®ã¯ãã¾ãè¦è¦ãããªãã®ã§ã話ã®æå¾ã«ããã¦ãããã¾ã¨ã¾ã£ãæ å ±æºãã¨ããã®ãã§ããã®ã¯ãã²ã¨ã¤ã®ä¾¡å¤ã«ãªãããã¨æã£ãããã¾ããããã®ãã¼ã¯ãã¾ãééç£æ¥ã¨ãã形㧠hasumikin ããã®ãã¼ãã¼ãã«ç¹ãã話ã§ããã
haruguchi ããã®ãã¼ã¯ã¯ãå¼ç¤¾ãã¼ãã®ä¸è§ããã®ã¨ããæãã ã£ããèªåã¯ç«¶æããã°ã©ãã¼ã§ã¯ãªãã®ã§ãèªåã®ç¥ããªãä¸çãã³ãã¥ããã£çµç±ã§ååããèãã¨ããä½é¨ã ã£ããæ¬ç·¨ã¨ã¯ç°ãªããã®ã®ããããã£ãå°åRubyä¼è°ã«å°å ã«è¿ãã¨ãªã¢ããç»å£è ãåºããããã«ãªã£ãã®ã¯ãå ¨å½æ¡ç¨ã«è¸ã¿åã£ã¦ããã£ããªãã¨æã£ãã®ã ã£ãã
èªåã®ãã¼ã¯ã¯ã3é¨æ§æã¨ããã¤ã¤é ããã©ãã¯çã«ãæå¾ã«ãminify ããã³ã¼ãã RuboCop ã§ãªã¼ãã³ã¬ã¯ããããã¨ããã®ãå ¥ããæ§æã«ãã¾ããã ã¡ã¿ã©ã¼ã§ããã ydah ããããã¼ããªã¼ã¬ãã¤ã¶ã¼ã¨ãããã¨ã§ãã¤ã¡ã¼ã¸ã¨ãã¦ã¯çèå°å¥³å¸¯ã®ã³ã³ã»ããã¢ã«ãã ã§ãããã¬ãã£ã¯ã«åº§å¦æ³ãã®ã©ã¹ããã©ãã¯ã«åããã«ã¿ã«ã·ã¹ã表ç¾ãã¦ã¿ããã®ãã¹ã©ã¤ãã®ãã¤ã¹ããããã¾ã§ã¯ç½ã§ãæçµç« ã¯é»ã¨ããæãã§ã®ã£ããä½ããçã£ãããããã¼ã¶ã«ã15åæ ã§éã£ãããã¢ãªãã30åã§éã£ãããã¢ããã®æ§æã§èãã¦ããã®ã§ãçµæã¨ãã¦ãã¢ããã§ç»å£ã§ãããããã§ãä»åã®æ§æãã¾ã¨ãããã¨ãã§ããæ°ãã¾ãã
ã¡ãªã¿ã«è§è°·ãããçºè¦ãããã¿ã¼ã³ã§ãããDrop Your Last 2 Slidesããä»åãé©ç¨ãã¦ãã¾ãããã¾ããæå¾ã®ã¹ã©ã¤ãããã¹ãã hasumikin ããã®ãã¼ãã¼ãã«åããããã¨ãã§ããå 容ã«ãªã£ã¦ããã¨ã¯æµç³ã«æ³å®ãã¦ãã¾ããã§ãããçµæã¨ãã¦ããã¡ãã¨ãã¼ãã¼ãã«ãããããã¨ãã§ãã¦ããã®ã§ããã£ãã
é¢ä¿ãªãããã©èªåã§ã«ãããããã®ã®ããã®ã¹ã©ã¤ãã® mame ããã®è¡¨æ ã¯ã¨ã¦ããããªãã¨æã£ã¦ãã¾ããã²ã¨ã¾ããjoker ãããpocke ãããcoe ããã¨ããéã ããé¡ã¶ãã«è¤ãã¦ããããçºè¡¨ã«ã§ããã®ã§è¯ãã£ãã§ãã
çºè¡¨å¾ã®ä¼æ©æéããã«ãºãããã minifyrb ã試ãã¦ããã¦ã®åé¡ç¹ããã£ã¼ãããã¯ããããã¦ããã®ã¹ãã¼ãæã TRICK ããã°ã©ãã¼ããããã¨ããä½é¨ããã¾ããããã® minifyrb gem ãã®ãã®ã«ã¤ãã¦ã¯ã話ãé·ããªãã®ã§ãã¡ãã®å¥è¨äºã«ã¦ã
ä¸çã® shugomaeda ããã®çºè¡¨ã¯å¾å¹´ã® Ruby ã³ããã¿ã¼ãããè¦ç¹ã§ã®è©±ã ã£ãããwillnet ããã®è©±ã¯ Rails ã¢ããªã±ã¼ã·ã§ã³ã¬ã¤ã¤ã¼ã®æè¡é¡§åãããçºè¡¨ã§ãã«ã³ãã¡ã¬ã³ã¹ã®å¹ ãåºãå½¢ã§ã¾ãããã£ããããã¦ãã®ãããã®è©±ã«ãªãã¨ä»æ¥ã®ãã®ã¤ãã³ãã¯ããçµãã£ã¦ãã¾ããªãã¨ãã¡ãã£ã¨å¯ããæ°æã¡ãåºã¦ããããã¦ãããRubyKaigi ã®åæ¥ã®æå¾ æ㨠3 æ¥ç®ã®ãã¼ã¹ãçä»ããé ã®å¯ããã1æ¥ã«è©°ã¾ã£ãæãã§ãææ çã®å¹ çã«ãæ¿åº¦é«ãæãã§ããã
hasumikin ããã®ãã¼ãã¼ãã¯ç¹ã«ã¯ãã¼ã¸ã³ã°ãæèããã¦ããã ãããã¼ãã¼ãã¨ãã¦å®ç§ã ã£ãã¨æãã¾ãã
ãã¬ã¼ã³ã¯äººçã®è¡¨ç¾ã§ãããã¨ãããä»åç®æããã¦ããã¨ãããè§è°·ããã®ãã©ã£ã¨ãã話ãæã¯ãå¾åã«ãªãã°ãªãã»ã©åºã¦ããããä¸çã® shugomaeda ããã®çç¼ç¹ã®ç´ æ´ããããééç£æ¥ã¸ã®ä¾ã«æããããkaneko ããããã®å°æ¹¾ã§ã®ææ³ãåºã¦ãããã¨ãå人çã«ã¯ hasumikin ãããè¦ã¦ãã¦ãã Ruby ã³ãã¥ããã£ã¨ããã¨ããããhasumikin ããã®äººçã®ç¸®å³ã表ç¾ããã¦ããã®ãèå³æ·±ãèããã¨ãã§ãã¾ãããã㨠PicoRuby ã¨ããååã¯è¯ããªãã¨ãåä»ãã®é£ããã¨å¤§åããæ¹ãã¦èããæ©ä¼ã«ãªããã¼ã¯ã«ããªãã¾ããã
ä¼æ©æé
ãã©ã£ã¨åå è å士ã§è©±ãã¦ããããåºå±ãã¦ãããã¼ã¹ãããã§ãjunk0612 ã®ã¹ãã³ãµã¼ãã¼ã¯ãµãããããããããã¦ãããã¢ãã¿ã¼ãã¼ãã£ã¼ã§ã® LT ã¸ã®ç»å£ãè¿·ã£ã¦ãã ginkouno ãããããã®ã§ã代ããã«ã¿ã¤ãã«ã¨ååãæ¸ãã¦ãããã®ã¯è¯ãä»äºãããã®ããªããã¤ã¹ãã¨ãã¦ã¯ãè¸è½çããã¥ã¼ã®ãã£ããããåéãåæã«å¿åãã¦ãã¦ãã®ã¢ã¬ (ä»åãã¡ããæ¬äººã®ããã¨ããã§ä¸ç·ã«ãã£ã¦ãã¾ããã) ã
ã¢ãã¿ã¼ãã¼ãã£ã¼
shugomaeda ããã®ä¼ç¤¾ã®ç¤¾å¡ã Textbringer ã®ç´¹ä» LT ããã¦ããã®ãè¯ãã£ãã¨ãããããã® LT ãèãã¦ãã shugomaeda ããã®è¡¨æ ãè¦ããã®ãè¯ãã£ããããã¯ãªã³ã©ã¤ã³ã§ã¯å¾ãããªãããã®å ´ã«è¡ããªãã¨ä½é¨ã§ããªããã¨ã表æ ã¤ãªããã§ããã¨ãima1zumi ããã®æ´ä»£ RubyKaigi ã¹ãã¼ã«ã¼ã®ãã¼ã¿ã¾ã¨ã話ã§ãè§è°·ããã大è奮ãã¦ããã®ãè¦ããã¨ãã§ããã®ãè¯ãã£ããginkouno ããã¯ãä¼æ©æéã®ãµã¤ã³ã¢ããããçæéã« LT ã®è©±ãã¾ã¨ãã¦ãã¦ãããã ã£ã (ç´æ¥è¨ãã¾ããã§ããããã¡ã³ã·ã§ã³ãããã¨ããããã¾ãã) ãããã¦å人çã«ã¯ããããããããä¼å ´ Wi-Fi ãç¨æããã¾ã§ã®è©±ããã¦ãã¦ããããã£ãè£æ¹ã®èå°è£ã®ä»äºãä¼ãã¦ãããå ´ã«ãªã£ãã®ã¯ãã¹ã¿ãããã©ããã£ããã¨ããã¦ããã人ããç¥ããã¨ãã§ãã¦æ§æãè¯ãã£ããªãã¨æãã¾ããã
2次ä¼ã§ã¯ ydah ããããä¸ç·ã«åçãåãã° #rubyfriends ã§ãçµ (ã¤ã) ã¾ã§é ãé ã¿äº¤ããã° Ruby ãã¡ããªã¼ãã¨ããè¿·è¨ã話ãã¦ããã®ãå°è±¡çãªãã¬ã¼ãºãä»åã®å¤§éªRubyä¼è°04ã¯ãã¼ããªã¼ã¬ãã¤ã¶ã¼ã®ç¹è²ããã¡ãã¨åºã¤ã¤ããé¢è¥¿ã®Rubyã³ãã¥ããã£ã¨ã㦠ydah ãããããã¯ã¢ãããã¤ã¤çãä¸ãã¦ãããã¨ãã空æ°æã¨ããããå ¨ä½æãåºã¦ãã温ãã¿ãæãã¾ããã
Ruby ã³ãã¥ããã£ã§ã®ä½é¨ãå§ç¸®ããã G.O.A.T. (Greatest of All Time) ã§ãããã¨ã¦ã楽ããã£ãã§ããã¹ã¿ããã®ã¿ãªãããé¢ä¿è ã®ã¿ãªããããããã¨ããããã¾ããï¼