OUCCã«ããããboté
ãã®è¨äºã¯OUCC Advent Calendarã®è¨äºã¨ãã¦æ¸ããã¾ãã.
ã¯ããã«
å年度æãé¨ã§ã¯ãã¼ãã¼ãªå¯é¨é·ã¨ãã¼ãã¼ãªãµã¼ãã¼ä¿ãæã£ããããã§é¨å ã«æ§ã ãªãã¼ã«ãå°å ¥ããã¾ãã. ãã®ä¸ã¤ãé¨å ãã£ãããã¼ã«ã®slackã§ã. ä»å¹´åº¦ã¯ç¾å½¹é¨å¡ã®å¤ãã«å å ¥ãã¦ããã£ããã平常æã®éè«ã®ä», å¦ç¥ãªã©ã¤ãã³ãã§ã®ææçéã«æå¹æ´»ç¨ããã¦ãã¾ãã.
ãã¦ãslackã¨ããã°BOTã®ä½ãããããããã¦ããã«ããã¯ã½BOTã®éç£ãæåã§ã. ä¾ã«ãããOUCCã®slackã§ãæãªé¨å¡ãä½ã£ã大éã®botãããããã¦ãã¦ãã¾ã. ãã®è¨äºã§ã¯botããã³éçºç°å¢ã®ç´¹ä»ããããã¨æãã¾ã.
ç¶ããèªããããmatplotlibãªããã
ãã®è¨äºã¯Python Advent Calendar 2015ã®è¨äºã¨ãã¦æ¸ããããã®ã§ã.
ã¯ããã«
ASCIIãã表示ã§ããªãç°å¢ã§ãã°ã©ããæç»ããã,ãããªæ©ä¼ã¯ãã¤ã©ãã§ã誰ã«ã§ãå·¡ã£ã¦ãã¾ã. ç¸æãããã¹ãã¡ã¼ã«åç主義è ã§ãã£ãã, 家ã«VT100ãããªãã£ãã⦠ãããªã¨ãã§ã使ãæ £ããè¨èªã¨ã©ã¤ãã©ãªã§ã°ã©ããæãã.ãã,matplotlibãªãã.
ç¶ããèªã30å¹´åã®ãã¼ãã¼ããUSBãã¼ãã¼ãã¨ãã¦å¾©æ´»ããã
ãã®è¨äºã¯OUCC Advent Calendar 2014ã®18æ¥ç®ã®è¨äºã®ã¯ãã§ããã
ä½ã£ããã®
ç¶è¦ªã30å¹´åã«ä¼ç¤¾ããæ¾ã£ã¦ãããããPC-8801ã®ãã¼ãã¼ããUSB HIDåããã
Rubyãåãéãç§å¦ã®æªæ¥
ãã®è¨äºã¯Ruby Advent Calendar 2014ã®13æ¥ç®ã®è¨äºã§ãã
åãã«
Rubyãæè²ã»ç 究ã«ä½¿ããã¨ãã試ã¿ã¯Rubyã®é»ææããããã¾ããã ãã®ææã®æåãªããã±ã¼ã¸ã¨ãã¦ã¯ãã¤ãªã¤ã³ãã©ããã£ã¯ã¹ã®BioRubyãå°çç§å¦ã®é»è³Rubyããã¸ã§ã¯ããæåã§ãã
å è¿°ã®BioRubyãGPhys(é»è³Rubyã®ææç©)ã¯ç¾å¨ãæ´æ°ãç¶ãããã¦ãããå¤æ°ã®å©ç¨è ãæ±ãã¦ãã¾ãã ãããå ¨ä½ã¨ãã¦è¦ãå ´åãç§å¦ã®åéã§ä½¿ãããLLè¨èªã¨ãã¦Rubyã¯PythonãRã®å¾å¡µãæãã¦ããå°è±¡ãããã¾ãã
è¨äºã®ããã«ãã®åéã§ã¯Pythonã³ãã¥ããã£ãé常ã«æ´»çºã§ãæ©æ¢°å¦ç¿ãªã©æ°ããæè¡ã¯çã£å ã«Pythonã§å®è£ ãããããã«ãªã£ã¦ãã¾ãã
ãããæè¿Rubyã§ãå°ããã¤ã§ããç°å¢ãå å®ãã¦ãã¦ãããå®éã«Pythonããä¹ãæãã人ãããããã§ãã
I hail from the world of Python
ãã®è¨äºã§ã¯2ã¤ã®ç°¡åãªä¾ãéãã¦gemãç´¹ä»ããªãããç§å¦ç 究ã®åéã«Rubyãåãè¾¼ãå¯è½æ§ãæ¢ã£ã¦ã¿ããã¨æãã¾ãã
ç¶ããèªãè¿æ³å ±å
ã¢ã¦ãããããããªãã¨ãããªãã¨ãã強迫観念ã«é§ããã¦ã®ãã¹ãã
10æåå
U-22ããã°ã©ãã³ã°ã»ã³ã³ãã¹ãã§çµæ¸ç£æ¥å¤§è£è³ãåè³ãã¾ããã ãã¿ã¯Ruby製ããããã©ã¤ãã©ãªã®Nyaplotãgithubã¯ãã¡ããæ¥æ¬èªã®ç´¹ä»è¨äºã¯ãã¡ãã
ç æ°ã§æ§ã室ã«å¼ãããã£ã¦ãã¦ä»ã®äººã®çºè¡¨ãã»ã¨ãã©èããªãã£ãã®ãã¨ã¦ãæ®å¿µã ä»ã®äººã®çºè¡¨ã«ã¤ãã¦ã¯LV.4ããã®è¨äºã詳ããã¨æãã¾ãã
ãã¬ã¼ã³ã®å¾ã«çç¶ãæªåãã¦éã帰ã£ã¦ãã¾ãå¤æ¹é¢ã«ãè¿·æãããããã¾ããã å°æ¸å¤§è£ããæ渡ã?ã§è³ç¶ãè²°ããã¯ãã ã£ãæè³å¼ã«ãæ¬ å¸ããç¾½ç®ã«ãªãæ¶ç®ã§ãã æ¬å½ã«ä½èª¿ç®¡çã«ã¯æ°ãä»ããªãã¨ãããªããªãã¨æãã¾ããã
è²ã ãªäººã«ç¥ã£ã¦ããã ãã¦ã¨ã¦ãæãåºæ·±ãè³ã«ãªãã¾ããã
10æåã°
2014年度Rubyã¢ã½ã·ã¨ã¼ã·ã§ã³å©æéã®å¯©æ»ã«éãã¾ããã ãã¿ã¯Nyaplot::DataFrameã®æ©è½æ¡å ã»åé¢ã«ãã解ææ©è½ã¨å¯è¦åæ©è½ã®åé¢ã§ãã å¿åããæ¸é¡ã¯ãã¡ãã§å ¬éãã¦ãã¾ãã ç¸è«ã«ä¹ã£ã¦ããã ãã@kozo2ãã, @ngotogenomeãã, @uwabamiãã, @katsyoshiããã«æè¬ãã¾ãã
10æå¾å
人ä½ã®éåã主ã«æ±ã£ã¦ããç 究室ã§ãã°ããéã°ãã¦ãããããã¨ã«ãªãã¾ããã æ±ããã¿ã¯ããã辺ã§ãã
éç·å½¢ã·ã¹ãã ã®è§£æã®ç¨èªã§ãã£ã¦ãªãã®ã§ä½ãæ £ããä½æ¥ããã§ãã å ¨ç¶ç¥ããªãåéã®è«æèªãã§ãµããµãããã®ã¯æ¥½ããã
以ä¸ãè¿æ³å ±åã§ããã
KC3ã§D3.jsåå¼·ä¼ããã£ã話
é¢è¥¿æ å ±ç³»å¦çå£ä½äº¤æµä¼(KC3)ã§D3.jsåå¼·ä¼ããã£ã¦ãã¾ããã
KC3ã¯ç«å½é¤¨å¤§å¦ã³ã³ãã¥ã¼ã¿ã¯ã©ã(RCC)ã主å¬ãã交æµä¼ã§ããä»å¹´ãä¾å¹´éã丹波å£ã®äº¬é½ãªãµã¼ããã¼ã¯ãä¼å ´ã¨ãã¦ä½¿ããã¦ããã ãã¾ããã
åå è 17人ã¨å¤ãã®äººã«åå ãã¦ããã ãã楽ããçµãããã¨ãã§ãã¾ããã
ç¶ããèªãæ°ããRubyåãããããã©ã¤ãã©ãªNyaplot
ã¯ããã«
Google Summer of Code 2014ã«SciRubyã®å¦çã¨ãã¦åå ãã¦ãã¾ããã 3ãæã®æéãç¡äºçµäºããã¡ããã¨ããææç©ãã§ããã®ã§è¨äºã«ãã¾ãã Nyaplotã«ã¤ãã¦ãã³ã¼ãã詳ãã使ãæ¹ã¯ãã¡ããã覧ãã ãã:
ãã¼ãªããä½è£ãªãã£ããªãã¨ãGSoCã®ææ³ã¿ãããªã®ã¯ã¾ãè½ã¡çãã¦ããæ¸ãããã¨æãã¾ãã
æ¦è¦
IRuby notebookä¸ã§åä½ãããplotã®ããã®gemã
ãããã¨ãã
ã¤ã³ã¿ã©ã¯ãã£ããª/ã¤ã³ã¿ã©ã¯ãã£ãã«plotãã§ããã
IRuby notebookä¸ã§å¯¾è©±çã«ãããããä½ããã¨ãã§ãã¾ããã¾ãæ¨æºã§ç¨æãããæ§ã ãªã¢ã¸ã¥ã¼ã«ãã¦ã¼ã¶ã¼ã®å¯¾è©±çãªæä½ãæ¯æ´ãã¾ãã
ä½ã£ãããããã¯SVGãWebGLã使ããã©ã¦ã¶ä¸ã«è¡¨ç¤ºã§ãããã¦ã¹ãã¿ããããã«ã§è§¦ãããã¨ãã§ãã¾ãã ãã®ä¾ã®ããã«è¤æ°ãã¤ã³éã§ãã¼ã¿ã®ãã£ã«ã¿ãªã³ã°ãè¡ããã¨ãã§ãã¾ãã
å ¬éãnotebookãDropboxãgistã«å¼µãä»ãã¦nbviewerã®ãªã³ã¯ãéãã ãã§ãã ãããªæãã§ã³ã¼ãã«markdownã§ç°¡åãªèª¬æãä»ãã¦gistã§å ¬éãã¿ãããªãã¨ãããã«ã§ãã¾ãã
è²ããªãããããã§ããã
åºæ¬çãª2Dã®ã°ã©ããã3Dãããã, å°å³ä¸ã§ã®ãããã, circos風ã®ç°ç¶ããããã¾ã§æ§ã ãªãã®ããã®gemã ãã§ä½ããã¨ãã§ãã¾ãã JavaScriptã¨Rubyã§ããã«æ¡å¼µãä½ããã®ã§JavaScriptã®æé¤ãããã°èªç±ã«ããããã追å ã§ãã¾ãã
使ãæ¹ãç°¡å
ç§æã§ããmatplotlibãBokehã®ãããªMATLAB風ã®APIãåããã½ããã¦ã§ã¢ã¯ãç°¡åãªããããã®ã¨ãã¯ããã®ã§ããã¡ãã£ã¨è¤éãªãããããä½ããã¨ããã¨è¡æ°ãççºããå¾åãããã¨æãã¾ãã Nyaplotã§ã¯ãã®ä¾ã®ããã«ãæ°è±¡ãã¼ã¿ã®å¯è¦åã®ãããªè¤éãªèª²é¡ã§ãããããé¨åã¯ãããæ°è¡ã§ãã¿ã¾ãã IRubyä¸ã§ã¯è£å®ãå¹ãã®ã§ãã¡ãã¡ä½¿ãæ¹ã調ã¹ãå¿ è¦ãããã¾ããã
使ãæ¹
gem install nyaplot
ã§ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
gemã®ãã£ã¬ã¯ããªã®ä¸ã®examples/rb/*ã«ãµã³ãã«ã³ã¼ããããã¤ãå
¥ã£ã¦ããã®ã§å®è¡ããã¨ããããçµæãhtmlã§åºåããã¾ãã
Nyaplotåä½ã§ãåãã®ã§ãããIRuby notebookãä¸ç·ã«ã¤ã³ã¹ãã¼ã«ãããã¨ããå§ããã¾ãã IRubyã¯ãã©ã¦ã¶ä¸ã§åã対話çãªRubyã®å®è¡ç°å¢ã§ãNyaplotã¯IRubyä¸ã§åä½ããããã«è¨è¨ããã¦ãã¾ãã ä¸ã®åç»ãIRubyä¸ã§ã®åä½ãé²ç»ãããã®ã§ãã ã¤ã³ã¹ãã¼ã«æ¹æ³ãããç ©éãªã®ã§å¥éQiitaã«æ¸ããè¨äºãåèã«ãã¦ãã ããã
API(ä¸é¨)
以ä¸ã§ã¯Nyaplotã®æ©è½ã®ã»ãã®ä¸é¨ããç´¹ä»ãã¦ãã¾ããã詳ããã¯ãã¥ã¼ããªã¢ã«ã¨ããã¥ã¡ã³ããã覧ãã ããã
以ä¸ã®ã³ã¼ãã§æ£å¸å³ãä½ããã¨ãã§ãã¾ãã
plot = Nyaplot::Plot.new sc = plot.add(:scatter, [0,1,2,3,4], [-1,2,-3,4,-5]) plot.show
Nyaplot::Plotãããããã®åºæ¬ã¨ãªãã¯ã©ã¹ã§ãPlot#add
ã§æ°ããå³ã追å ã§ãã¾ããadd
ã¯Nyaplot::Diagram
ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ãããã®ãªãã¸ã§ã¯ããæã¤ã¡ã½ãããå¼ã³åºããã¨ã§å³ã®è¨å®ãå¤ãããã¨ãã§ãã¾ãã
ä¾ãã°è²ãå¤ããã«ã¯ä»¥ä¸ã®ãããªã³ã¼ããæ¸ãã¾ãã
color = Nyaplot::Colors.qual sc.color(color)
Colors.qual
ã¯è³ªç(qualitative)ãã¼ã¿ã®ããããã«æé©ãªè²ã®ã»ãããã©ã³ãã ã«è¿ãã¾ããIRubyä¸ãªãã°ä¸ã®ããã«ãã®å ´ã§è²ã確èªãããã¨ãã§ããä½åº¦ãå®è¡ãã¦å¥½ããªè²ãé¸æãããã¨ãã§ãã¾ãã
åºæ¥ä¸ãã£ãããããã¯ä»¥ä¸ã®ã³ã¼ãã§ç¢ºèªã§ãã¾ãã
Plot#export_html
ã«å¼æ°ã渡ãã¨åºåãããhtmlãã¡ã¤ã«ã®ååãæå®ãããã¨ãã§ãã¾ãã
plot.show # show plot on IRuby notebook plot.export_html # export plot to the current directory as a html file
ä¸ã®ãµã³ãã«ã¯ã¨ã¦ãã·ã³ãã«ãªãã®ã§ãããNyaplot::DataFrame
ã使ããã¨ã§ããè¤éãªãããããä½ããã¨ãã§ãã¾ãã
df = Nyaplot::DataFrame.new({a: [0,1,2,3,4], b: [-1,2,-3,4,-5], type: ['a','b','a','a','b']})
Plot#add_with_df
ã使ã£ã¦DataFrameãå
ã«ãããããä½ããã¨ãã§ãã¾ãã
Diagrams::Scatter#fill_by
ã®å¼æ°ã«è¡(column)ã®ååãæå®ãããã¨ã§ãã®è¡ã®å¤ã«ãããã£ã¦åç¹ã®è²ãå¡ãåãããã¨ãã§ãã¾ãã
sc = plot.add_with_df(df, :scatter, :a, :b) sc.fill_by(:type) plot.show
éæ
ããªã使ãããã¤ãªã®ã§æ¯éã試ããã ããã åé¡ãææ¡ãªã©ããã°GitHubã®Issueãpull-reqã§ãé¡ããã¾ãã
ç空管USBã¡ã¢ãªã3Dããªã³ã¿ã§ä½ã£ã
ã¯ããã«
SFã®ä¸ã«ã¹ãã¼ã ãã³ã¯ã¨ããã¸ã£ã³ã«ãããã¾ãã
(åè:スチームパンク - Wikipedia)
è¸æ°æ©é¢ãå°ååã»çºå±ãã¦19ä¸ç´ã®ç©ºæ°ãã®ã¾ã¾ã«ææãçºå±ããç¾ä»£/æªæ¥ãæãã¸ã£ã³ã«ã§ãã
æè¿èªãã ä¸ã§ã¯ããã«ãã£ã¼ãã»ã¹ããªã¼ãã»ã¹ãã¼ã·ã§ã³ã(ãã£ã¤ããã¨ã´ã£ã«, ãã¤ã«ã¯æ庫)ãªã©ãã¹ãã¼ã ãã³ã¯ã«å«ã¾ãã¾ãã
(åè:ペルディード・ストリート・ステーション (上) (文庫) 感想 チャイナ ミエヴィル - 読書メーター)
ç空管ãã¹ãã¼ã ãã³ã¯ã«å ¥ããã©ããã¯ããªãæªããæ°ããã¾ãã(é»æ°ä½¿ã£ã¦ããâ¦)ä¸å¿ã¹ãã¼ã ãã³ã¯é¢¨ã®USBã¡ã¢ãªãä½ã£ã¦ã¿ã¾ããã
åä½ä¸ã¯æ©è²ã«å
ãã¾ãã
ãã¼ã¿ã¼ãç¹ããã®ã¯USB給é»ã§ã¯é£ãããã³ã³ãã³ãµã使ã£ãæ®å
åè·¯ããã¾ããã¾ããããªãã£ãã®ã§ä¸çªåç´ã«ãæ¸ãè¾¼ã¿ãèªã¿è¾¼ã¿ã®ã¿ã¤ãã³ã°ã§LEDãç¹ç¯ããããã«ãã¾ããã
ã¾ãããã§ç´¹ä»ããã¦ããããã«ä¸åº¦ç空管ãåæãã¦ãã¼ã¿ã¼ã®ãã£ãé¨åã«LEDãä»ããã®ã楽ããã¨æãã¾ãã
(åè:真空管風 デジタルオーディオアンプ製作への道のり1)