RubyKaigi 2022 Keynote https://rubykaigi.org/2022/presentations/kateinoigakukun.html#day1
Ruby 2.7ã®ããããããï¼Â ãã¿ã¼ã³ããããã³ã³ãã¯ã·ã§ã³GCãªã©ããªãªã¼ã¹ããã¼ã¸ã£ã¼ã«èãã 2019å¹´12æ25æ¥ã«ãªãªã¼ã¹ãããã°ããã®Ruby 2.7ã§ã¯ãã©ã®ãããªæ©è½ãã©ããã£ãçµç·¯ã§æ¡ç¨ããã¦ããã®ã§ãããããªãªã¼ã¹ããã¼ã¸ã£ã¼ã®naruseããã¨ããã«ã¿ã¤ã ã³ããã¿ã¼ã®mameããã«è©³ããããããã¾ããã ã¾ã¤ãã¨ããã¯ã¨ã«ããå¿ãã㦠å®ã¯ãããirbã®æ¹è¯ ãã¿ã¼ã³ãããã¯Rubyãã©ãå¤ããã ãã¼ã¯ã¼ã弿°ã¯ã端çã«å£ãã¦ããã®ã大æ´çãã é«éåã«åããããã¤ãã®è¦³ç¹ Ruby 2.7ã§å°å ¥ããããã³ã³ãã¯ã·ã§ã³GCãã¨ã¯ Ruby 3ã®ãã¸ã§ã³ã¯ãéçè§£æãã並è¡ä¸¦åããJITã ããã°ã©ãã³ã°è¨èªRubyã«ã¯ãã¯ãªã¹ãã¹åå¾ã«æ°ãããã¼ã¸ã§ã³ããªãªã¼ã¹ããä¼çµ±ãããã2013å¹´ã®2.1.0以éã¯æ¯å¹´12æ25æ¥ã«ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ãããè¡ããã¦ãã¾ã
Abstract ããã°ã©ãã³ã°è¨èªRubyã¯ãã¼ã¸ã§ã³2.6ã§Just-In-Timeã³ã³ãã¤ã©ãæè¼ããRuby 2.0ã«æ¯ã¹ã¦2.5åãé«éã«ãªãã¾ãããè¨èªå¦çç³»ã2.5åé«éåããããã«ã©ã®ãããªéæ³ã使ãããã®ãèå³ã¯ããã¾ãããï¼ evalãåçãªã¡ã½ãããã£ã¹ããããªã©ãRubyã¯é«éåãå°é£ãªåé¡ã夿°æ±ãã¦ãã¾ããããããã¯å®è¡æã®æ å ±ãå©ç¨ãã¦æé©åãè¡ãªããã¨ã«ãã£ã¦ã¨ã¬ã¬ã³ãã«è§£æ±ºãããã¨ãã§ãã¾ãã ãã®ã»ãã·ã§ã³ã§ã¯ãRubyã®Just-In-Timeã³ã³ãã¤ã©ãããã«ãã¦ãã®ãããªè¨èªã®é«éåãå®ç¾ãã¦ãããã®ã¨ãã»ã³ã¹ããRubyãJust-In-Timeã³ã³ãã¤ã©ã®åæç¥èããªãã¦ããããããã«è§£èª¬ãã¾ãã ããããªããRubyã使ããã¨ããªãã¦ãããã®ã»ãã·ã§ã³ãè´ãã°ãããªãã使ãè¨èªã§ã©ã®ãããªè¨èªæ©è½ã使ãã¨æé©åã®å¦¨ãã«ãªãããçè§£ãããããªã
ã¿ã¤ãã«ã¯é£ãã§ããRuby ã«ç²ç®çã«æãã¦ããè¿çã«ã¯ Ruby ã®ççï¼ãã°ãï¼ã¯ã¨ã¯ãã§ãã ããã¯ã¨ãããã ã¡ã½ããåã®å¥åããããã ãããªã㯠map æ´¾ï¼ãããã¨ã collect æ´¾ï¼ãã£ã¦ããåããã¾ãå«ãã ããï¼å¥åã«ãæç¾©ãããã¨ã¯æããã ãã©ï¼è¨æ¶ã®è² æ ã大ããã èªåã§ã¯ map ãã使ããªãã¦ãï¼ä»äººã®ã³ã¼ãèªããã ã£ãã collect ãç¥ã£ã¦ããªãã¡ããªããªãã ãã°ããåã« reduce ã£ã¦ããã¡ã½ããè¦ã¦ï¼ãããªã®ãã£ãã£ãï¼ã¨æã£ãã inject ã®å¥åã ã£ãã map/collect 㨠inject/reduce ã®ååã¨ãã®èæ¯ã«ããçºæ³ã«ã¤ãã¦ã¯ï¼Rubyist Magazine ã«è¯ãè¨äºãããï¼ ãããã¨æãã°ï¼Array#delete_if 㨠Array#reject! ã¿ããã«ï¼åãã¯åºæ¬çã«åãã ãã©ï¼åé¤ãè¡ãããªãã£
ãRuby 2ãä¸è¬åããä»ãããããæ°ãããã¨ãå§ããããããã¯Ruby 3.0ã¸ã®æãéã宣è¨ã§ããæªæ¥ã¸åããããã³ãã¥ããã£ã¨ãã¦æ»ãªãªãããã«ãã¯ã¯ã¯ã¯ããæªæ¥ã妿³ããããæ°ãããã¨ãå§ãããã ãããªé¢¨ã«éçºã³ãã¥ããã£ã«å¼ã³ãããã®ã¯ãä¸ççã«äººæ°ã®é«ãããã°ã©ãã³ã°è¨èªãRubyãï¼ã«ãã¼ï¼ã®çã¿ã®è¦ªã§è¨èªè¨è¨è ã®ã¾ã¤ãã¨ããã²ãæ°ã ããã®ã宣è¨ãã¨ãè¨ããçºè¨ã¯ã2014å¹´9æã«éå¬ããããRubyKaigi 2014ãã§åºã¦ãããã®ã ãåºèª¿è¬æ¼ãããã¾ã¤ãã¨æ°ã¯ãè¬æ¼ã®ä¸ã§åãã¦Ruby 3.0ã¨ããã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¸è¨åãã¦ã次ãªããã¤ã«ã¹ãã¼ã³ã¨ãã¦è¨å®ãããã¨ãå ¬ã®å ´ã§å®£è¨ããã ã¾ã¤ãã¨æ°ã«ããã°ãRubyã®ã³ã¢éçºè ã¯ãã®ä½å¹´ãã¯Ruby 2ã§å¿ããã£ãã¨ãããç®ã®åã«ããç¾è¡ãã¼ã¸ã§ã³ã®Ruby 2ãã©ããããã¨ãããã¨ããæ©è½ã®å®å®åãã¡ã¢ãªå¨è¾ºã®æ¹å
Rubyã§å¾®ç©åãçµ±è¨è§£æãå¿«é©ã«æ±ãDSLä½ã£ãã¨ï¼â github ãã°å ±åãé ããã°ï¼ï¼æé以å ã«ç´ãã¾ã. ãã®DSLã§ä¸çªå¤§äºã«ããã®ã¯ã å¾®ç©åãæ¥µéã対æ°ãä¸è§é¢æ°ãªã©ãç´ä¸ã§æ°å¦ãããæè¦ã¨åãæè¦ã§åãæ±ããäº. ããããRubyã§ããå¿ è¦ããã£ãã®...?ï¼ï¼ãï¼ãï¼ åããã®DSLãRubyã§ä½ã£ãã®ã«ã¯ããã¤ã訳ãããã¾ã. Rubyã好ã MATLABãè¦æ Rubyã好ã mathmaticaãè¦æ Rubyã好ã pythonãè¦æ Rubyã好ã ... ã¨ã«ããRubyã好ãã§ã. å°ããã¸ã¬ã¹ããã¨åã®å¤§å¥½ããªRubyã¯æ°å¦è²ãèãã®ãå°ãæ²ããã£ãã®ã§ã. (èè¶³ã§ããããã®æ³ãããrubyã®Matrixã¯ã©ã¹ã«ã·ã³ã·ã³commit ãã¦ã¾ã. ex. https://github.com/ruby/ruby/pull/568 Matrixãæé·ããçµ
ãã¼ã«ã«ã«ã¯æ ç»ã®è¦è´è¨é²ã¨ãé£ã¹æ©ãã®ãåºè©ä¾¡ã¨ãæè³å±¥æ´ã¨ãã¬ã©ã¯ã¿ã³ã¬ã¯ã·ã§ã³ãªã¹ãã¨ãã®èªèº«ã®æ´»åè¨é²çãªãã¼ã¿ãæºã¾ãã¾ããããã¦ã©ãããããããããã®ãã¼ã¿ã¯å¤§æ¦è¡¨è¨ç®ã½ãããExcelãã®ä¸ã«ç½®ããã¦ããã®ã§ãããã®çµæãæºããã¯ãããæå¹ã«æ´»ç¨ãããªããå ´åã«ãã£ã¦ã¯è¦ããã¨ããããªãã¨ããäºæ ã«é¥ãã¾ãããããã®ãã¼ã¿ãæ¬æ¥çã«ç½®ãããå ´æãããã¼ã¿ãã¼ã¹ãã§ããããã®æ´»ç¨ã«ãããã¼ã¿ä¾¡å¤ãåä¸ããã¨ãããã¨ã«èª°ãç°è«ã¯ãªãã¨ãã¦ãããã¼ã¿ã¯Excelã«ç½®ãããã®ã§ãã çç±ã¯ä¸ã¤ãããããã¼ã¿ãã¼ã¹ã¯æ·å± ãé«ãã®ã§ãã ãã¼ã¿ãã¼ã¹ã®æ·å± ãä¸ããã°ãã¿ããªããã¼ã«ã«ã®ãã¼ã¿ããã£ã¨ãã£ã¨å¤§éã«å ¬éãã¦ä¸ã®ä¸ã¯ãã£ã¨ä¾¿å©ã«ãªãã«éãããã¾ããã ã¾ããå®éã®ã¨ããã¯ãããããã¾ãããã ãããªããã§â¦ ãã¼ã¿ãã¼ã¹ã®æ·å± ãä¸ããã¹ããCSVãã¼ã¿ãç°¡åã«ãã¼ã¿ãã¼ã¹åãã
http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyãããã¿ãã¹ãã§éå¬ãããRUPY2013ã§ã®ãã¬ã¼ã³ã®ååãèªãã®ããã°ã§ç´¹ä»ãã¦ãã¾ãã ã¬ãã¼ã¸ã³ã¬ã¯ã¿ã¯ããã´ããéãããã¨ããè¡çºã ãã§ãªãããæ°ãããªãã¸ã§ã¯ãã®ããã«ã¡ã¢ãªããã¦ãããããä¸è¦ãªãªãã¸ã§ã¯ããè¦ã¤ããããä¸è¦ãªãªãã¸ã§ã¯ãããã¡ã¢ãªãåãæ»ãããã¨ããã人éã®å¿èãè¡æ¶²ãæµåãããããªåãããã¦ããã ãã®ç°¡åãªã³ã¼ããµã³ãã«ãè¦ãã¨ãRubyã¨Pythonã®è¨è¿°ã¯ããä¼¼ã¦ããããããããã®è¨èªã®å é¨ã§ã®ã¤ã³ããªã®ä»çµã¿ã¯éãã 1) Rubyã®ã¡ã¢ãª Rubyã¯ãã³ã¼ããå®è¡ãããåã«ãæ°åã®ãªãã¸ã§ã¯ããå ã«ã¤ãããããããªã³ã¯ãããfree listã«ç½®
æ¥æ¬æéã ã¨2013å¹´2æ7æ¥æªæã®ãã¨ã§ããããTopazãï¼ããã¼ãºï¼ã¨åä»ããããPythonã§å®è£ ãããRubyã®ãã¼ã¸ã§ã³0.1ããªãªã¼ã¹ããã¾ããï¼ãªãªã¼ã¹ã«é¢ããããã°ãããã¸ã§ã¯ãã®ãã¼ã¸ãGitHubã®ãªãã¸ããªï¼ãRubyå¦çç³»ã¯CãJavaï¼JVMï¼ãRubyãCLIãJavaScriptãSmalltalkãªã©ã«ããå®è£ ãããã¾ããããPythonã¨ããã®ã¯ãã¡ãã£ã¨é©ãã§ãããã ãPythonã¨ãã£ã¦ããPythonè¨èªã§æ¸ãã®ã主ç¼ãªã®ã§ã¯ãªããPythonã¨ã³ã·ã¹ãã ã§é«éå¦çãç®æãã¦ä½ããããPyPyï¼ãã¤ãã¤ï¼ãã®ææç©ã®ä¸ã«å®è£ ããã¨ããã®ãTopazã®ããã§ããç¾å¨ã®ã¨ããã³ã¼ãä½è ãªã¹ãã«9人ã®ååãä¸ãã£ã¦ãã¦ãJRubyå®è£ ã§ç¥ããããã£ã¼ã«ãºã»ããã¿ã¼æ°ã®ååãå ¥ã£ã¦ãã¾ãã Topazã¯æ£ç¢ºã«ã¯Pythonã§ã¯ãªããRPythonã¨å¼ã°ãã
Ruby on Railsã®ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ããã¨ãªãRails4ã®ãªãªã¼ã¹ãè¿ã¥ãã¦æ¥ã¾ãããå æ¥ãæ¥æ¬äººï¼ãããã¯ã¢ã¸ã¢äººï¼ã¨ãã¦åãã¦Railsã³ã¢ãã¼ã ã®ã³ããã¿ã¨ãã¦è¿ãå ¥ããããæ¾ç°ææ°ã«ããã¨ãRailsã®çã¿ã®è¦ªã§ããDavid Heinemeier Hanssonæ°ï¼ä»¥ä¸ãéç§°ã®DHHã使ãã¾ãï¼ã¯ãããã¸ã§ã¯ãããªã¼ãããã¨ããæå³ã§æ´»åãæ´»çºã«ãªã£ã¦ããããã§ãã ããã¦æè¿ã®DHHã¯ãããã°ãããæ¸ãã¦ãã¾ããå½¼ã¯æ¯ã«è¡£çãã¬çºè¨ã§ãç¥ããã¦ãã¾ããå¼·ã主張ãæã£ãï¼opinionatedï¼ãªãã¬ã¼ã ã¯ã¼ã¯ã®ä½è ããããDHHèªèº«ããããã¦ããããªã¨ç©ãè¨ãã¾ããæ»æçã¨ã¾ã§ã¯è¨ãã¾ããããITæ¥çãæè¡ååãªã©ã§ã¯å²ã¨ä½ããã¯ã½ãã½ã«ããªãããã¨ãããã¨ããã¾ãã DHHãä½ããããªãã¨ãã¯ãã ãããä½ããã®éãæ´å¯ã¨ãã³ãã®å¹ããç®èãå«ã¾ãã¦ãã¦ãTwit
Ruby ã試ãã¦ã¿ãããã©ã¤ã³ã¹ãã¼ã«ããã®ã¯é¢åâ¦ããããªäººã®ããã«ãã©ã¦ã¶ä¸ã§ Ruby ã試ãã IRBWEB ã¨ãããµã¼ãã¹ãä½ã£ã¦ã¿ã¾ããã irb ã®ããã«ãRuby ã®æ§æãå®é¨ã§ãã¦ã¨ã¦ããæè»½ã§ãã å®å ¨ã«ãã©ã¦ã¶ä¸ã§åä½ãããããåä½ããããããã¡ãã£ã¨ããã³ã¼ããæ¸ãã¦åä½ç¢ºèªã楽ããã¾ããã ãªãã夿°ãå®ç¾©ããã«ã¯ $a ã®ããã«ã°ãã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ããªãã¨ã次ã®å ¥åã§åç §ã§ãã¾ããã åä½ç°å¢ Silverlight 2.0 ã®ã©ã³ã¿ã¤ã ãå¿ è¦ã§ãã Silverlight 2.0 㯠Windows ã® IE ã ãã§ãªããFirefox ã Mac ã® Safariãããã«ã¯ä¸»è¦ãª Linux ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã§ãåä½ããã®ã§ããã®æ©ä¼ã«ã¤ã³ã¹ãã¼ã«ãã¦ã¿ãã¨ããã§ããã (è¿½è¨ 2009/4/6) Firefox 3.0 ã§ã¯åããªãããã§ãã
Rubyã«ã¯å¤§éã®ã¡ã½ãããããã¾ããæ¬¡ã®ã³ã¼ãã§Ruby1.9.3ã«å«ã¾ããã¡ã½ããæ°ãæ°ãããåç´åè¨ã§1659åãã¦ãã¼ã¯æ°ï¼ååã1ã¨æ°ãã¦ï¼ã§937åã¨åºåããã¾ããã all_methods = ObjectSpace.each_object(Module).flat_map do |c| c.methods(false) + c.instance_methods(false) end.reject { |m| "#{m}".start_with? '_deprecated' } all_methods.size # => 1659 methods = all_methods.uniq methods.size # => 937 ã¤ã¾ãRubyã«ã¯ã937åãã®ç°ãªãååã®ã¡ã½ãããããã®ã§ããåã¡ã½ããåã¯ããã®åä½ãæ©è½ã端çã«è¡¨ç¾ãããã®ã§ãªããã°ãªããªãã®ã§ããã®ä¸ã¤ä¸
Matzããã«ãclosureã®ä»¶ãçµè«ã¨ãã¦ã¯å è¨äºã®Perl, Python(+JavaScript), Schemeããã°ã©ã ãããããã¾ã£ããå¥ã®ãã¨ããã¦ããã ãã§ãclosureã®ä»æ§ã¯ãã¹ã¦åãã§ããã¨ãããã¨ããã¨ææãããã®ã§ãããä¸åº¦æ´çãã¦ã¿ã¾ãã http://twitter.com/yukihiro_matz/status/26707927087 sumimããã®Smalltalkã¨Rubyã®ä¾(http://d.hatena.ne.jp/sumim/20101008)ãå ãã¾ãã å®é¨å 容 è¨èªéã§ãã£ã¦ãããã¨ã®ç¸éããªãããã«ãã§ããã ãä¼¼ãã³ã¼ãã«ããã ã«ã¼ãã§iã0ãã4ã¾ã§åã ã«ã¼ããããã¯å ã§ï¼ iãåãè¾¼ãã lexical variableã'localvar'ãå®ç¾©ã localvarãåç §ããclosureããªã¹ãã«è¿½å ã 5ã¤ã®closu
Hi everyone, in an effort to retain the information of railsinstaller.org we have decided to merge it with hotframeworks.com, this resource will always be live for everyone who needs it. Thanks to the team at Hot Frame Works for all their help. Whether you're on windows or mac this is the quickest way to going from nothing to developing ruby on rails applications. Start by downloading the relevant
æ¨æ¥ãåæ§ã®è¨äºãæ¸ãã¾ããããã³ãã³ãããã³ããããã®æ¨æºå ¥åã®æåã³ã¼ãã¯ä½ãï¼ã¨ããåé¡ã ã¨ããã®ãããããªããã°ã©ã ãä½ã£ã¦ãæ¨æºå ¥åãããããããããã¨æã¡ã¿ã¾ãã # -*- coding: Shift_JIS -*- puts $1 if gets =~ /ã(.*?)ã/ æå¾ å¤ã¯ããããããªãã§ãããå®éã¯ã sample.rb:2:in ` ': incompatible encoding regexp match (Shift_JIS regexp with Windows-31J string) (Encoding::CompatibilityError) ã¨ãªãã¾ãã ã³ãã³ãããã³ããã®ããããã£ãè¦ãã¨ã ç¾å¨ã®ã³ã¼ããã¼ã¸ï¼932 (ANSI/OEM - æ¥æ¬èª Shift-JIS) ã¨ããã¾ããä¸å¿ãæ¨æºå ¥åã®æåã³ã¼ãã調ã¹ããããæ¬¡ã®ããã°ã©ã ã§å®é¨
Windowsã®rubyã1.8.7ãã1.9.1ã«ããã¦ã¿ããããã¨ãããªç°¡åãªããã°ã©ã ã§ããæååãããããã«ãªã£ãã # -*- coding: utf-8 -*- puts "ããããã" ããã°ã©ã ãã¡ã¤ã«ã¯ãã¡ããUTF-8ã§ä¿åãã¦ãããäºå®ã次ã®ããã«ãã¦ãUTF-8ã¨è¡¨ç¤ºãããã®ã§ãã£ã¦ããã¯ãã ã # -*- coding: utf-8 -*- puts "ããããã".encoding ã¡ãªã¿ã«ããããã¨ãã¾ããã£ãã # -*- coding: utf-8 -*- puts "ããããã".encode("Shift_JIS", "UTF-8") ãã¼ãããªãã§Shift_JISï¼è²ã èããæå¥ãçç±ãåããã¾ããã Windowsã®ã³ãã³ãããã³ããã®ããããã£ãè¦ãã¨ã ç¾å¨ã®ã³ã¼ããã¼ã¸ï¼932 (ANSI/OEM - æ¥æ¬èª Shift-JIS) ã¨ãªã£ã¦
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}