ç§ã¯ããã®ããã°ã©ããŒã§ãããã®ç¿»èš³è ã§ããããŸãããã人æ°ã®ãã
D3.js
äœæè ããã®èšäºã§èª¬æãããŠããããŒã«ã®å€èŠ³ã¯ãç§ã«åŒ·ãå°è±¡ãäžããŸããã
Habréã§ããããŠå®éã«ãã·ã¢èªã話ãã€ã³ã¿ãŒãããã§ããã®ããŒã«ã1幎以äžãäžåœã«ç¡èŠãããŠããããšã«é©ããã ãããã£ãŠãç§ã¯ãç¹ã«JavaScriptã®ããã°ã©ãã³ã°ã®æè¡ã®çºå±ã«è²¢ç®ãã矩åããããšå€æããŸããã
çµ±åãããç 究ç°å¢ã§ããd3.expressãã芧ãã ããã
ïŒ2018幎1æ31æ¥ä»¥éãd3.expressã¯ObservableãšåŒã°ããbeta.observablehq.comã«ååšããŸã ïŒ
ã³ãŒãã調ã¹ãããä»ã®äººã®ã³ãŒããç解ãããããããšããããªããããªãã¯äžäººã§ã¯ãããŸããã ãã®èšäºã¯ããªãã®ããã§ãã
éå»8幎éãæ å ±ãèŠèŠåããããŒã«ãéçºããŠããŸããã ç§ã®åªåã®äžã§æãæåããçµæã¯ã D3 jsã©ã€ãã©ãªãŒã§ããã ããããããŒã«ããã¯ã¹ã®ãã®ãããªé·ãéçºã®å±éºæ§ã¯ãããªãããããããŠããçç±ãå¿ããŠããŸãããšã§ããããŒã«ã¯ããèªäœã§çµããã«ãªãããã®äœ¿çšã®å©ç¹ã¯èæ¯ã«æ¶ãã€ã€ãããŸãã
èŠèŠåããŒã«ã®ç®çã¯ãèŠèŠåãæ§ç¯ããããšã§ãã ããããèŠèŠåã®ç®çã¯äœã§ããïŒ ãã³ã»ã·ã¥ãã€ããŒãã³ãžã®èšèïŒ
ãèŠèŠåã®çµæ㯠åçã§ã¯ãªãã€ã³ã¹ãã¬ãŒã·ã§ã³ ''èŠèŠåãéèŠã§ãã æŽå¯ã®éµã ãã®äžçã«ã€ããŠäœããèããç解ããæããã«ããäŒããæ¹æ³ã èŠèŠçãªè§£èªãèŠã€ããã¿ã¹ã¯ã®ã¿ãèŠèŠåã§èŠãå ŽåãéèŠãªããŒã¿ã®æ€çŽ¢ãã¯ãªãŒãã³ã°ãå¹æçãªæ§é ãžã®å€æãçµ±èšåæãã¢ããªã³ã°ã調æ»ã®èª¬æãªã©ãä»ã®å€ãã®ã¿ã¹ã¯ãç¡èŠããŸã...
ãããã®ã¿ã¹ã¯ã¯ãå€ãã®å Žåãã³ãŒãã䜿çšããŠè§£æ±ºãããŸãã æ®å¿µãªãããããã°ã©ãã³ã°ã¯éåžžã«è€éã§ãïŒ ååèªäœã¯ãã§ã«ç解äžèœã§ããããšãæ瀺ããŠããŸãã ãããã°ã©ãã³ã°ããšããèšèã¯ã ãã·ã³ã³ãŒãïŒããã»ããµã«ãã£ãŠå®è¡ãããäœã¬ãã«ã®åœä»€ïŒã«ç±æ¥ããŸãã ãã以æ¥ãã³ãŒãã¯ãã芪ãã¿ããããªããŸãããããŸã é·ãéã®ãããããŸãã
æ»æ®»æ©åéïŒ1995ïŒ
代衚çãªäŸãšããŠãã«ãªãã©ã«ãã¢ã®äººå£å¯åºŠã®èæ¯ããããçæããbashããŒã ããããŸãã åçŽåããããžãªã¡ããªãè¿ãã ãã§ãã SVGãååŸããã«ã¯ãããã«ããã€ãã®ã³ãã³ããå¿ èŠã§ãã
ããã¯ãã·ã³ã³ãŒãã§ã¯ãããŸããã ãã·ã³ã®èŠ³ç¹ããèŠããšãããã¯éåžžã«é«åºŠãªããã°ã©ãã³ã°ã§ãã äžæ¹ãããã¯äººéã®èšèªãšã¯èšããŸãããå¥åŠãªå¥èªç¹ãç解ã§ããªãç¥èªããã¹ãã®ã¬ãã«ã ãããŠã2ã€ã®èšèªïŒJavaScriptã¯Bashã«äžèªç¶ã«ç¹ã蟌ãŸããŠããŸãã
Bret Victorã¯ãããã°ã©ãã³ã°ã®ãã®ãããªç°¡åãªå®çŸ©ãæäŸããŸã ã
ããã°ã©ãã³ã°ã¯ã·ã³ãã«ã®ãã©ã€ã³ãæäœã§ããç²ç®ããšã¯ãæäœã®çµæãèŠãããšãã§ããªãããšãæå³ããŸãã ããã°ã©ã ãç·šéããåèµ·åããŠçµæã確èªã§ããŸãã ããããããã°ã©ã ã¯è€éã§åçãªã®ã§ãç·šéçµæãçŽæ¥ãçŽæ¥èŠ³å¯ããããšã¯ã§ããŸããã
ãèšå·ããšã¯ãããã°ã©ã ã®åºåãçŽæ¥æäœããã®ã§ã¯ãªããæœè±¡åã䜿çšããããšãæå³ããŸãã ãããã®æœè±¡åã¯å¹æçã§ãããå¶åŸ¡ãé£ããå ŽåããããŸãã ããã«ãããŒãã³ã®å®çŸ©ã§ã¯ãããã¯è©äŸ¡æ¹Ÿãšå®è¡æ¹Ÿã§ã ã
ãã ããäžéšã®ã¹ã¯ãªããã¯ä»ã®ã¹ã¯ãªããããèªã¿ãããããšã¯æããã§ãã 人é以å€ã®ã³ãŒãã®çç¶ã®1ã€ã¯ãã¹ãã²ããã£ãã§ããæ§é ãšã¢ãžã¥ãŒã«æ§ã®ãªãã³ãŒãã§ããããã°ã©ã ã®äžéšãç解ããã«ã¯ãããã°ã©ã å šäœãç解ããå¿ èŠããããŸãã ããã¯å ±æã®å¯å€ç¶æ ã«ãã£ãŠãã°ãã°åŒãèµ·ããããŸãã æ§é ã®äžéšãããã°ã©ã ã®ããŸããŸãªéšåã«ãã£ãŠå€æŽãããå Žåããã®éèŠæ§ãæšæž¬ããããšã¯éåžžã«å°é£ã§ãã
å®éãããã°ã©ã ãäœãããã®ããã©ããã£ãŠç¥ãã®ã§ããããïŒ é ã®äžã®ãã¹ãŠã®ç°å¢æ¡ä»¶ã远跡ã§ããªãå Žåãã³ãŒããèªãã ãã§ã¯ååã§ã¯ãããŸããã ãã°ããããã¬ãŒããã¹ãã䜿çšããŸããããããã®ããŒã«ã«ã¯å¶éããããŸãã ããšãã°ããããã¬ãŒã¯ãç¹å®ã®æç¹ã§ããã€ãã®å€ã®ã¿ã衚瀺ã§ããŸãã ç§ãã¡ã¯ã³ãŒããç解ããã®ã«éæ¹ããªãå°é£ãçµéšãç¶ããŠãããäœããåºæ¬çã«æ©èœããå Žåããããå¥è·¡ãšèªèããããšãã§ããŸãã
ãããã®åé¡ã«ãããããããç§ãã¡ã¯ä»ãŸã§ä»¥äžã«å€ãã®ã¢ããªã±ãŒã·ã§ã³ã®ããã®ã³ãŒããæžããŠããŸãã ãªãã§ïŒ å€åç§ãã¡ã¯ããŸãã¹ãã§ããïŒ ïŒãã¶ãïŒååŒã§ããŸãããïŒ ïŒéšåçã«ãïŒæ¬åœã«è¯ã解決çã¯ãããŸãããïŒ
äžè¬çã«-ããã¯éèŠãªå®çŸ©ã§ã-ãããã ã³ãŒãã¯ãç§ãã¡ãæã£ãŠãããã®ã®äžã§æãäžè¬çã§ãããããå€ãã®å Žåãç§ãã¡ã®æŠåšåº«ã§æé«ã®ããŒã«ã§ãã ã³ãŒãã®è¡šçŸåã¯ã»ãŒç¡éã§ãã é«ã¬ãã«ã®ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹ãèšèªãªã©ãã³ãŒãã®ä»£æ¿æ段ã¯ãç¹å®ã®é åã§ããŸãæ©èœããŸãã ãããããããã®éžæè¢ã¯ããããã®åéã§ã®å¹çãé«ããããã«æ±çšæ§ãç ç²ã«ããŸãã
ãã¡ã€ã³ã決å®ã§ããªãïŒãã¡ã€ã³ãå¶çŽãã ïŒå Žåãã³ãŒãã®å®è¡å¯èœãªä»£æ¿ãèŠã€ããããšãã§ããŸããã å°ãªããšã人ã ãäž»ã«èšèªãéããŠèããã³ãã¥ãã±ãŒã·ã§ã³ããéããæ®éçãªä»£æ¿ã¯ãããŸããã ç§åŠåéã決å®ããããšã¯éåžžã«å°é£ã§ãã ç§åŠã¯åºæ¬ã§ããäžçãç 究ããçµéšç芳å¯ããæå³ãåŒãåºããã·ã¹ãã ãã¢ãã«åããå®éçãªéãèšç®ããŸãã
çºèŠãä¿é²ããããŒã«ã¯ãæ°ããç¬åµçãªèããè¡šçŸã§ããå¿ èŠããããŸãã ãã¬ãŒãºãã³ãã¬ãŒãã䜿çšããŠæžãããåèªãäœæããªããããèŠèŠåçšã®ã°ã©ãã£ãã¯ãã³ãã¬ãŒããçµ±èšåæçšã®åŒã®éå®ãªã¹ãã«å¶éããããšã¯ã§ããŸããã æ§æ以äžã®ãã®ãå¿ èŠã§ãã ç¬èªã®ãã¶ã€ã³ã圢æããã«ã¯ãããªããã£ãã®æ§æãå¿ èŠã§ãã
ç§ãã¡ã®ç®æšã人ã ã芳å¯ããæŽå¯ãåŸãããšãæ¯æŽããããšã§ãããªãã人ã ãã©ã®ããã«ã³ãŒããæžãããèæ ®ããªããã°ãªããŸããã ãã¯ã¿ãŒãæ°åŠã«ã€ããŠè¿°ã¹ãããšã¯ãã³ãŒãã«é©çšã§ããŸãã
ç§ãã¡ã®äžçã®éçææšãç解ãäºæž¬ããããã®æŠåšã¯ãæœè±¡çãªèšå·ãæäœããããã®ã°ãããïŒå¥åŠãªïŒããªãã¯ã«éå®ãããã¹ãã§ã¯ãããŸããããã°ã©ãã³ã°ã®èœåãåäžãããããšã¯ãã¯ãŒã¯ãããŒããã䟿å©ãŸãã¯å¹ççã«ããã ãã§ã¯ãããŸããã ããã¯ã人ã ãèªåã®äžçãããããç解ã§ããããã«ããããã§ãã
Observableã®çŽ¹ä»
ã³ãŒããåãé€ãããšãã§ããªãå Žåãå°ãªããšããœãŒã»ãŒãžã®ãããªæãšè³ã®å€§ããã®è³ãæã€äººã ã«ãšã£ãŠãããç°¡åã«ããããšãã§ããŸããïŒ
ãã®åé¡ãæ確ã«ããããã«ãç§ã¯ObservsableãšåŒã°ããçµ±åãããç 究ç°å¢ãæ§ç¯ããŠããŸãã ããŒã¿åæãã·ã¹ãã ãšã¢ã«ãŽãªãºã ã®ç解ãããŸããŸãªããã°ã©ãã³ã°ææ³ã®ãã¬ãŒãã³ã°ãšæ瀺ãããã³ã€ã³ã¿ã©ã¯ãã£ããªèŠèŠç説æã®å ±æã«åœ¹ç«ã¡ãŸãã èŠèŠåãããç°¡åã«ããã²ããŠã¯çºèŠãããç°¡åã«ããããã«ãæåã«ããã°ã©ãã³ã°ããã»ã¹ãç°¡åã«ããå¿ èŠããããŸãã
ããã°ã©ãã³ã°ããã»ã¹ãç°¡åã«ãããµãã¯ã§ããŸããã è¡šçŸã調æ»ãããã³èª¬æããã¢ã€ãã¢ã¯ãéåžžã«è€éãªå ŽåããããŸãã ããããããã°ã©ãã³ã°ã®èªç¥çè² è·ãæžããããšã§ãããå€ãã®äººãå©çšã§ããå®éççŸè±¡ã®åæãè¡ãããšãã§ããŸãã
1.åå¿æ§
Observableã®æåã®ååã¯åå¿æ§ã§ãã äžè¬çãªç¶æ ãå€æŽããã³ãã³ããçºè¡ãã代ããã«ããªã¢ã¯ãã£ãããã°ã©ã ã®ç¶æ ã®åéšåãèšç®æ¹æ³ã決å®ããç°å¢ããããã®è©äŸ¡ãå¶åŸ¡ããŸãã ã©ã³ã¿ã€ã ã¯åä¿¡ããç¶æ ãé åžããŸãã äžè¬çãªç¶æ ãå€æŽããã³ãã³ããçºè¡ãã代ããã«ããªã¢ã¯ãã£ãããã°ã©ã ã®ç¶æ ã®åéšåãèšç®æ¹æ³ã決å®ããç°å¢èªäœãè©äŸ¡ãå¶åŸ¡ããŸãã ç°å¢èªäœã掟çç¶æ ãäŒæããŸãã Excelã§æ°åŒãäœæããå Žåããªã¢ã¯ãã£ãããã°ã©ãã³ã°ãè¡ããŸãã
ããã¯ããªã¢ã¯ãã£ãããã°ã©ãã³ã°ã説æããããã®ã·ã³ãã«ãªObservableã¡ã¢åž³ã§ãã ãã©ãŠã¶ã®ããããããŒã³ã³ãœãŒã«ã«å°ã䌌ãŠããŸãããäœæ¥å 容ãèªåçã«ä¿åãããä»åŸããã«ã¢ã¯ã»ã¹ããããä»ã®ãŠãŒã¶ãŒãšäœæ¥ãå ±æãããã§ããç¹ãç°ãªããŸãã ãŸããåå¿çã§ãã
åœä»€åããã°ã©ãã³ã°ã§ã¯ã
c=a+b
ã¯cã
c=a+b
èšå®ããŸãã ããã¯å€ã®å²ãåœãŠã§ãã
a
ãŸãã¯
b
å€æŽãããå Žåãå€ã
c
åå²ãåœãŠãããŸã§
c
ã¯å€ãããŸããã ãªã¢ã¯ãã£ãããã°ã©ãã³ã°ã§ã¯ã
c=a+b
ã¯å€æ°ã®èª¬æã§ãã ããã¯ãããšã
a
ãŸãã¯
b
ãå€åããŠã
a+b
cã¯åžžã«
a+b
çããããšãæå³ããŸãã ç°å¢èªäœã¯çŸåšã®å€
c
ç¶æããŸãã
ããã°ã©ããŒãšããŠãç§ãã¡ã¯çŸåšã®ç¶æ ã®ã¿ãæ°ã«ããŠããŸãã ç°å¢èªäœãç¶æ ã®å€æŽã管çããŸãã ããã¯ããã§ã¯åãã«è¶³ããªãããšã®ããã«æãããããããŸãããã倧èŠæš¡ãªããã°ã©ã ã§ã¯ãããã«ãã倧ããªè² æ ã軜æžãããŸãã
ç 究ç°å¢ã§ã¯ãããã€ãã®æ°åãè¿œå ãã以äžã®ããšãè¡ãå¿ èŠããããŸããããŒã¿ãæäœããŠã¿ãŸãããã ããŒã¿ãããŠã³ããŒãããã«ã¯-æ°å¹Žéã® Appleæ ªäŸ¡çµ±èš-d3.csvã䜿çšããŸã ã Fetch APIã䜿çšããŠGitHubãããã¡ã€ã«ãããŠã³ããŒããã解æããŠãªããžã§ã¯ãã®é åãååŸããŸã ã
requireïŒ 'd3'ïŒããã³ããŒã¿èŠæ±ã¯éåæã§ãã åœä»€åã³ãŒããåé¡ã«ãªãå¯èœæ§ããããŸãããããã§æ確ã«æ°ä»ããŸããããd3ããåç §ããã»ã«ã¯ãããŒã¿ãããŒãããããŸã§èšç®ãããŸããã
åå¿æ§ãšã¯ãã»ãšãã©ã®éåæã³ãŒããåæã®ããã«èšè¿°ã§ããããšãæå³ããŸãã
ããŒã¿ã¯ã©ã®ããã«èŠããŸããïŒ èŠãŠã¿ãŸãããïŒ
d3.csvã¯ä¿å®çã§ãããæ°å€ãæååãªã©ã®ããŒã¿åã«é¢ããçµè«ãå°ãåºããªãããããã¹ãŠã®ãã£ãŒã«ãã¯æååã§ãã ããæ£ç¢ºãªåãå¿ èŠã§ãã ã+ãæŒç®åãé©çšããŠãcloseããã£ãŒã«ããæ°å€ã«å€æããããã«å¹æã確èªã§ããŸãã玫è²ã®ç·ãç·è²ã®æ°å€ã«ãªããŸãã
æ¥ä»ãçãã«ã¯ãJavaScriptããã®åœ¢åŒããã€ãã£ãã«ãµããŒãããŠããªããããããå°ãäœæ¥ãå¿ èŠã§ãã
æååã解æããŠãDateããšã³ãã£ãã£ãè¿ãparseTimeé¢æ°ããããšããŸãã 圌女ã«é»è©±ãããã©ããªãïŒ
ãã£ãšïŒ ãšã©ãŒãæããŸããã ãã ãããšã©ãŒã¯ããŒã«ã«ããã³äžæçãªãã®ã§ããä»ã®ã»ã«ã¯åœ±é¿ãåãããparseTimeãå®çŸ©ãããšæ¶ããŸãã ãããã£ãŠãObservableã®ããŒãããã¯ã¯ãªã¢ã¯ãã£ãã§ããã ãã§ãªããæ§é åãããŠããŸãã ã°ããŒãã«ãšã©ãŒã¯ãªããªããŸããã
parseTimeãå®çŸ©ãããšãåã³ããŒã¿ããªããŒãããã解æãããŠè¡šç€ºãããŸãã ç§ãã¡ã¯ãŸã æœè±¡èšå·ãæäœããŠããŸãããå°ãªããšããã¿ããã«ããããã£ãŠããŸããã
ããã§ãããšãã°ãæéç¯å²ãèšç®ããããã®ããŒã¿ãèŠæ±ã§ããŸãã
ãããããŒã¿ã«ååãä»ããã®ãå¿ããŠããŸããïŒ ãããä¿®æ£ããŸãããïŒ
ããã§ã¯ããã1ã€ã®ã人éãæ©èœãèŠã€ããŸããã»ã«ã¯ä»»æã®é åºã§èšè¿°ã§ããŸãã
èŠèŠççµè«
éçºè ã³ã³ãœãŒã«ãšåæ§ã«ãObservableã§ã»ã«ãå®è¡ããçµæã¯ãã³ãŒãã®ããäžã«è¡šç€ºãããŸãã ãã ããã³ã³ãœãŒã«ãšã¯ç°ãªããObservable cellã¯ã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã衚瀺ã§ããŸãïŒ ã·ã³ãã«ãªæãç·ã°ã©ãã§ããŒã¿ãèŠèŠåããŸãããã
ãŸãããã£ãŒãã®ãµã€ãºã決å®ããŸãïŒå¹ ãé«ããããŒãžã³ã
ã¹ã±ãŒã«ã¯ ãxã«å¯ŸããŠäžæçã§ãyã«å¯ŸããŠç·åœ¢ã§ãã
ãããŠæåŸã«ãSVGèŠçŽ ã ãã®å®çŸ©ã¯ä»¥åã®ã»ã«ãããè€éã§ãããããäžæ¬åŒ§ïŒ{and}ïŒã䜿çšããŠãåŒã§ã¯ãªããããã¯ãšããŠå®çŸ©ã§ããŸãã
DOM.svgã¯ã document.createElementNSã䟿å©ã«åŒã³åºãããã®ã¡ãœããã§ãã ç¹å®ã®å¹ ãšé«ããæã€æ°ããSVGããŒããè¿ããŸãã d3-selectionã䜿çšããŠDOMãæäœããããã«æ¡åŒµããŠã¿ãŸãããã
ç»é¢ãµã€ãºãå¶éãããŠãããããã³ãŒããšã°ã©ããåæã«è¡šç€ºããããšã¯ã§ããŸããããã®ãããæåã«äœæããã°ã©ããèŠãŠã¿ãŸãããã ããã«ãããã°ã©ãã®3ã€ã®äž»èŠã³ã³ããŒãã³ãã§ããxãy軞ãããã³ç·ãèå¥ãããšãã«åŸãããèŠèŠçãªãã£ãŒãããã¯ã®æèŠãåŸãããŸãã
ãã®ã¢ãã¡ãŒã·ã§ã³ã¯ãã³ãŒãã®åè¡ãé çªã«å ¥åããããšã«ãã£ãŠè¡ãããŸããïŒãã¹ãŠãèŠãããã«å¿ èŠãªã®ã§ããªã¿ãŒã³ãé€ãïŒã
ããã¯åçŽãªã¹ã±ãžã¥ãŒã«ã§ãããããã°ã©ã ã®ããããžã¯ãã§ã«è€éã«ãªã£ãŠããŸãã 以äžã¯ã GraphVizã䜿çšããŠObservableèªäœã§äœæãããæåé埪ç°ãªã³ã¯ã°ã©ãã§ãã
ããŒã93ã¯SVGèŠçŽ ã§ãã ããã€ãã®èŠ³å¯ïŒãã®ã°ã©ããåå¿ãããã®ã¯éåžžã«ç°¡åã§ãã ãªããžã§ã¯ãã®å¹ ãé«ããããã³ããŒãžã³ã¯å®æ°ã§ãããããããåçã§ããå Žåã軞ãšã°ã©ãèªäœã¯èªåçã«æŽæ°ãããŸãã åæ§ã«ãããŒã¿ãåå®çŸ©ããããšã§ãã£ãŒããåçã«ããããšãç°¡åã§ãã ããã¯ãã¹ããªãŒãã³ã°ããŒã¿ã®äŸã§ããã«ããããŸãã
ãããããªã¢ã¯ãã£ãã³ãŒãã詳ããèŠãŠã¿ãŸãããã åœä»€åããã°ã©ãã³ã°ã§ã¯ãå€æ°ã®å®çŸ©ã¯1ãæã§è¡ãããã®ã§ã¯ãªããã³ãŒãå šäœã«åºãããŸãã ããšãã°ãããŒãžãèªã¿èŸŒãã çŽåŸã«xã¹ã±ãŒã«ã®ã¹ã±ãŒãªã³ã°ãåéã§ããŸãããããŒã¿ãåä¿¡ãããŸã§ãã¡ã€ã³å®çŸ©ã延æã§ããŸãã
ãã®ãããªæçåãããå®çŸ©ã¯ãä»ã®ããŒã¿ã§ã·ã£ããã«ãããã³ãŒãã®çŽåºŠã«åœ±é¿ãäžããå¯èœæ§ããããŸãã ãŸããåå©çšãæ¯æããŸããèªå·±å®çµåã®ã¹ããŒãã¬ã¹å®çŸ©ã¯ãä»ã®ããã¥ã¡ã³ãã«ã³ããŒ/ã€ã³ããŒãããã®ãç°¡åã§ãã
HTMLããã£ã³ãã¹ãWebGLãªã©ãããããçš®é¡ã®DOMãäœæã§ããããããçš®é¡ã®ã©ã€ãã©ãªã䜿çšã§ããŸãã
Vega Liteã䜿çšããŠäœæãããã°ã©ãã¯æ¬¡ã®ãšããã§ãã
ã¢ãã¡ãŒã·ã§ã³
ãã£ã³ãã¹ã¯ã©ãã§ããïŒ å°çãå¿ èŠã ãšããŸãããã äžçã®åœã ã®åœå¢ã ç©ã¿èŸŒã¿ ã æ£å°åœ±ãé©çšã§ããŸãã
ïŒ ã¡ãã·ã¥ã¯ãèå³ãããå Žåãç Žç·ã§è¡šãããçµåãããå¢çç·ã§ãããã®ããŒã¿ã»ããã«ã¯ããªãŽã³ãå«ãŸããŠãããããã¡ãã·ã¥ã¡ãœããã䜿çšããŸãã
ãªã¢ã¯ãã£ãããã°ã©ãã³ã°ã®åŒ·åãªæ©èœã¯ãåºå®ãµã€ãºã®çŽäº€æ圱ãªã©ã®éçãªå®çŸ©ããå転æ圱ãªã©ã®åçãªå®çŸ©ã«ãã°ãã眮ãæããããšãã§ããããšã§ãã ç°å¢èªäœã¯ãæ圱ãå€æŽããããã³ã«ãã£ã³ãã¹ãåæç»ããŸãã
Obsesrvable dynamic variablesã¯generatorsãšããŠå®è£ ãããè€æ°ã®å€ãè¿ãé¢æ°ã§ãã ããšãã°ãwhile-trueã«ãŒããæã€ãžã§ãã¬ãŒã¿ãŒã¯ãå€ã®ç¡éã¹ããªãŒã ãçæããŸãã ç°å¢ã¯ãã¢ã¯ãã£ããªåãžã§ãã¬ãŒã¿ãŒããæ°ããå€ã1ç§ãããæ倧60åæœåºããŸãã
ïŒ60 FPSã§ããè¯ãèŠããïŒ
ãã£ã³ãã¹ã®å®çŸ©ã¯ãéå§ãããã³ã«æ°ãããã£ã³ãã¹ãäœæããŸãã ããã¯èš±å®¹ã§ãããããããŸãããããã£ã³ãã¹ãååŠçããããšã§ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã å€æ°ã®ä»¥åã®å€ã¯
this
ãšããŠè¡šç€ºãã
this
ã
ããïŒ å€ã
canvas
ã䜿çšããŠãã°ããŒãããŒãããŸãã
ã°ãªããã¯ãåæç»ããåã«
canvas
ã¯ãªãŒãã³ã°ããããšã§ç°¡åã«ä¿®æ£ã§ããŸãã
ãããã£ãŠãç©äºãå°ãè€éã«ããããšã§ãããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãããŸããçæãããã¢ãã¡ãŒã·ã§ã³ã«ã¯ãéåžžã®JavaScriptãšæ¯èŒããŠããããªãªãŒããŒãããããããŸãã
çžäºäœçš
ãžã§ãã¬ãŒã¿ãŒãã¢ãã¡ãŒã·ã§ã³ã·ããªãªã«é©ããŠããå Žåãçžäºäœçšã¯ã©ãã§ããïŒ ãžã§ãã¬ãŒã¿ãŒãåã³åœ¹ç«ã¡ãŸãïŒ ãžã§ãã¬ãŒã¿ãŒã¯éåæã«ãªããæ°ããå ¥åã衚瀺ããããã³ã«è§£æ±ºããããããã¹ãè¿ããŸãã
å転ãã€ã³ã¿ã©ã¯ãã£ãã«ããããã«ããŸãç¯å²å ¥åãå®çŸ©ããŸãããã 次ã«ããžã§ãã¬ãŒã¿ãŒã«æ¥ç¶ããŸãããžã§ãã¬ãŒã¿ãŒã¯ãå ¥åãå€æŽããããã³ã«çŸåšã®å€ãæäŸããŸãã ãã®ãžã§ãã¬ãŒã¿ãŒã¯æåã§å®è£ ã§ããŸããã
Generators.input
ãšåŒã°ãã䟿å©ãªçµã¿èŸŒã¿ã¡ãœããããããŸãã
次ã«ãã€ã³ã¿ã©ã¯ãã£ãã°ããŒãã®å転ã®çµåºŠãšããŠå€ãä»£å ¥ããŸãã
ããã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®ç°¡åãªå®çŸ©ã§ãã ãã ããObservable
viewof
æŒç®åã䜿çšããŠ
range
ãš
angle
å®çŸ©ã1ã€ã®ã»ã«ã«æãç³ãããšã§ãããã«æžããããšãã§ããŸãã ãŠãŒã¶ãŒãžã®å ¥åã衚瀺ãããŸãããã³ãŒãã«ã€ããŠã¯çŸåšã®å€ã衚瀺ãããŸãã
ä»»æã®DOMã衚瀺ããã³ãŒãã«ä»»æã®å€ãèšå®ããæ©èœã«ãããObservableã®ã€ã³ã¿ãŒãã§ãŒã¹ãéåžžã«è¯ããªããŸãã ã¹ã©ã€ããŒãšããããããŠã³ã¡ãã¥ãŒã«éå®ãããŸããã ããã¯ãåã«ã©ãŒãã£ãã«ã«1ã€ãã€ãã¹ã©ã€ããŒããŒãã«ãšããŠå®è£ ãããCubehelixã«ã©ãŒããã«ãŒã§ãã
ã¹ã©ã€ããŒããã©ãã°ãããšã察å¿ããåºåã®å€ãæŽæ°ããããžã§ãã¬ãŒã¿ãŒãçŸåšã®è²ã衚瀺ããŸãã
å¿ èŠãªã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãäœæã§ããŸãã ãããŠããã®æå³ãã³ãŒãã«æ瀺ããã¹ããŒãããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹ãèšèšã§ããŸãã ããã«ãããããŒã¿ã調æ»ããããã®åŒ·åãªã€ã³ã¿ãŒãã§ã€ã¹ããã°ããäœæã§ããŸãã ããã¯ã5幎éã®æ°çŸæ ªã®è¡åã瀺ãæ£ã°ã©ãã§ãã ïŒã³ãŒããççž®ããŸãããã ãã®ããã«èŠããŸããïŒ
ä»ã®ç°å¢ã§ã¯ããã®ãããªãã¹ãã°ã©ã ã¯èŠèŠçãªè¡ãæ¢ãŸãã«ãªããŸãã 確èªã§ããŸãããåºæ¬çãªå€ã確èªããã«ã¯ãã³ãŒãå ã®ããŒã¿ãåå¥ã«èŠæ±ããå¿ èŠããããŸãã Obsesrvableã§ã¯ãèŠèŠåããã°ããè£å®ããéžæç¯å²ãã€ã³ã¿ã©ã¯ãã£ãã«è¡šç€ºã§ããŸãã ãã®åŸãçŽæ¥æäœããããšã§ã«ãŒãœã«ã®äžã®ããŒã¿ãèŠãããšãã§ããŸãã
ããã©ã«ãã®ãªããžã§ã¯ãã€ã³ã¹ãã¯ã¿ãŒã䜿çšããŸãããããšãã°ãã©ã€ãåèšããªã¢ã«ã¿ã€ã çµ±èšããŸãã¯é¢é£ããèŠèŠåãªã©ãäœã§ãã€ã³ã¿ã©ã¯ãã£ãã«å®è¡ã§ããŸãã
ãããéæ³ã§ã¯ãªãããšã瀺ãããã«ãäžèšã®ã³ãŒãã¯d3-brushãObsesrvableã«é©åãããããã®ãã®ã§ãã
brush
ã€ãã³ãã«ãã£ãŠãæ°ãããã£ã«ã¿ãŒåŠçãããããŒã¿ãèšç®ããSVGããŒãã®å€ãšããŠèšå®ããå ¥åã€ãã³ããéä¿¡ããŸãã
ã¢ãã¡ãŒã·ã§ã³åããããã©ã³ãžã·ã§ã³
ããã©ã«ãã§ã¯ãåå¿ã¯å³åº§ã«çºçããŸããå€æ°å€ãå€æŽããããšãã©ã³ã¿ã€ã ã¯æŽŸçå€æ°ãåã«ãŠã³ãããããã«è¡šç€ºãæŽæ°ããŸãã ãããããã®ãããªç·æ¥æ§ã¯åžžã«å¿ èŠãšã¯éããããªããžã§ã¯ãã®çŸå®ãæããããã«é·ç§»ãã¢ãã¡ãŒã·ã§ã³åããããšãæã æçšã§ãã ããã§ã¯ãããšãã°ãåãåãœãŒãããããšãã«ããã远跡ã§ããŸãã
ãã®å³ã®å®è£ ãç解ããã«ã¯ãD3ã«ç²ŸéããŠããå¿ èŠããããŸããã€ãŸããããŒé¢é£ã®ããŒã¿ãšæ®µéçãªç§»è¡ãå¿ èŠã§ããããã®ã³ãŒããäžéæã§ãã£ãŠããä»æ¥ã®ãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªãObsesrvableã§ç°¡åã«äœ¿çšã§ããããšã瀺ããŠã»ããã§ãã
2.å¯èŠæ§
ããã°ã©ã ã®èŠèŠçãªåºåã¯ãããã°ã©ã ã®çŸåšã®ç¶æ ãããããææ¡ããã®ã«åœ¹ç«ã¡ãŸãã察話åããã°ã©ãã³ã°ã¯ãå ¥åãå€æŽãåé€ãé åºã®å€æŽãããã³äœãèµ·ãã£ãŠãããã芳å¯ããããšã«ãããããã°ã©ã ã®åäœããã培åºçã«åæããã®ã«åœ¹ç«ã¡ãŸãã
ããšãã°ãäžã®ãã£ãŒãã®ã³ã¡ã³ãããææåãåé€ãããšãå³ã®å šäœçãªé 眮ã«å¯Ÿãããããã®å¯äžãããããç解ã§ããŸãã
ïŒYouTubeã§ãããã©ã®ããã«åçãããã
èŠãŠãã ãããïŒåæ§ã®ããã¡ããèŠãããšãããã¯ãã§ããããšãã°ãSteve Harozã¯d3-forceçšã®ãã°ããããµã³ãããã¯ã¹ãæã£ãŠããŸããããã§ã¯ãåççšã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãäœæããå¿ èŠã¯ãããŸãããã€ã³ã¿ã©ã¯ãã£ãããã°ã©ãã³ã°ãç¡æã§æäŸãããŸãã
ã¢ã«ãŽãªãºã ã®å¯èŠå
ããã°ã©ã ã®åäœã調æ»ããããã®ãã詳现ãªã¢ãããŒãã¯ãå éšç¶æ ã衚瀺ããã³ãŒããè£è¶³ããããšã§ãããžã§ãã¬ãŒã¿ãããã§åœ¹ç«ã¡ãŸãããã®ãããªéåžžã®é¢æ°ã䜿çšããŠãæ°å€ã®é åãåèšããŸãã
ãããŠãæåŸã«éåžžã®æ»ãå€ã«å ããŠãå®è¡æã«ããŒã«ã«ç¶æ ãè¿ããžã§ãã¬ãŒã¿ãŒã«å€æããŸãã
次ã«ãåäœãç解ããããã«ãå éšç¶æ ãèŠèŠåãŸãã¯ç¢ºèªã§ããŸãããã®ã¢ãããŒãã¯ãã¢ã«ãŽãªãºã å ã®èŠèŠåã³ãŒããçŽæ¥å®è£ ããã®ã§ã¯ãªããã¢ã«ãŽãªãºã ã®å®è£ ãšãã®èª¿æ»ãæ確ã«åé¢ããŸãã
äŸãšããŠãD3 circlesã® éå±€çãªãããã³ã°æ§é ãèŠãŠã¿ãŸãããã
å極倧éžã®ãã³ã®ã³ã®ã¯ã©ã¹ã¿ãŒã®ããã«ãéãªãåãããšãªãã§ããã ãå°ããªã¹ããŒã¹ã«è©°ãããåã®ã»ããããããŸããç§ãã¡ã®ã¿ã¹ã¯ã¯ããã¹ãŠã®åãé 眮ããããŸã§ãåã1ã€ãã€é 眮ããããšã§ãã
åãã§ããã ãå¯ã«è©°ãããã®ã§ãé 眮ãããã¹ãŠã®åãå°ãªããšã1ã€ïŒå®éã«ã¯2ã€ïŒã®æ¢ã«é 眮ããåã«æ¥è§Šããå¿ èŠãããããšã¯æããã§ãããã ããæ¢åã®åãæ¥ç·åãšããŠã©ã³ãã ã«éžæããå Žåãããã±ãŒãžã®äžå€®ã«æ°ããåãé 眮ããã®ã«å€ãã®æéãè²»ãããããã§ä»ã®åãšéãªããŸããçæ³çã«ã¯ãããã±ãŒãžã®å€åŽã«ããåã®ã¿ãèæ ®ããŸããããããã©ã®åãå€ã«ããã®ããå¹æçã«å€æããã«ã¯ã©ãããã°ããã§ããããïŒ
Wangã¢ã«ãŽãªãºã ã¯ããããã®åãå€åŽã®åãè¡šãèµ€ã§ç€ºãããŠãããå€åŽã®ãã§ãŒã³ãããµããŒãããŠããŸããæ°ããåãé 眮ãããšãã圌ã¯æåã«æãè¿ãããã³ããã§ãŒã³ã®åãéžæããŸããæ°ãããµãŒã¯ã«ã¯ããã®ãµãŒã¯ã«ãšãã®ããã³ããã§ãŒã³ãã€ããŒã®é£ã«ãããŸãã
ãã®é 眮ãããã³ããã§ãŒã³ã®ä»ã®åãšéãªããªãå Žåãã¢ã«ãŽãªãºã ã¯æ¬¡ã®åã«é²ã¿ãŸããéãªãå Žåã¯ãæ¥ç·åãšéãªãåã®éã®ããã³ããã§ãŒã³ãåæããéãªãåãæ°ããæ¥ç·åã«ãªããŸããéè€ããªããªããŸã§ãã®ããã»ã¹ãç¹°ãè¿ããŸãã
ãã®ã¢ãã¡ãŒã·ã§ã³ã¯é åçã§ããããèŠããšãããã³ããã§ãŒã³ãåãåããããšãã«ã倧ããªåãããã±ãŒãžããæŒãåºãããç¬éã衚瀺ãããŸããããã¯ç®ã«åªããã ãã§ãªããD3ã®å®è£ ã«ãããé·å¹Žã®ãšã©ãŒãç¹å®ããã®ã«ãéåžžã«åœ¹ç«ã¡ãŸãã
åãçµã¿ç«ãŠãããéå±€æ§é ã§å圢ã®ãããã³ã°ãç¹°ãè¿ãããšãã§ããããã«ãããã±ãŒãžã®ååšãèšç®ããå¿ èŠããããŸãããããè¡ãéåžžã®æ¹æ³ã¯ãåç¹ããæãé ãåã®ããã³ããã§ãŒã³ãã¹ãã£ã³ããããšã§ããããã¯ããªãé©åãªä»®å®ã§ãããæ£ç¢ºãªä»®å®ã§ã¯ãããŸããã幞ããªããšã«ãèšç®çšã®Welzlã¢ã«ãŽãªãºã ã®ç°¡åãªæ¡åŒµããããŸãç·åœ¢æéã«ãããæå°ã®éããåã
Waelzã¢ã«ãŽãªãºã ãã©ã®ããã«æ©èœãããã確èªããããã«ãäžéšã®åã®å€åŽã®åãæ¢ã«ããã£ãŠããŠããã®äžã«æ°ããåãå«ããããšããŸããæ°ãããµãŒã¯ã«ãçŸåšã®ãµãŒã¯ã«å ã«ããå Žåã次ã®ãµãŒã¯ã«ã«é²ãããšãã§ããŸããæ°ãããµãŒã¯ã«ãæªåŸªç°ã®å€åŽã«ããå ŽåããµãŒã¯ã«ãæ¡å€§ããå¿ èŠããããŸãã
ãµãŒã¯ã«ãæªåŸªç°ã®å€åŽïŒå·ŠïŒã«ããå Žåãæ°ããå€åŽã®ãµãŒã¯ã«ïŒå³ïŒã«è§Šããå¿ èŠããããŸãã
ãã ãããã®æ°ããåã«ã€ããŠã¯ããã£ãŠããŸããå€åŽã®åã®å€åŽã«ããå¯äžã®åã§ãããããæ°ããå€åŽã®åã«è§Šããå¿ èŠããããŸãããããŠãå€åŽã®åã®æ¥ç·åãèŠã€ããæ¹æ³ãç¥ã£ãŠããã°ãä»ã®åãååž°çã«èŠã€ããããšãã§ããŸãïŒ
å°ããžãªã¡ããªããããŸãããç§ã¯ãã¡ããå°ãããã¯ããŠããŸãããŸããååž°ã®å¢çã±ãŒã¹ãèšç®ããå¿ èŠããããŸãã1ã€ã2ã€ããŸãã¯3ã€ã®æ¥ç·ã®å€åŽã®åã ïŒããã¯ã¢ããããŠã¹ã®åé¡ã§ãïŒãžãªã¡ããªã¯ã3ã€ä»¥äžã®æ¥ç·åããªãããšããŸãã¯ç°å¢ã«ãã§ã«ãã¹ãŠã®åãå«ãŸããŠããããšãæ瀺ããŠãããããååž°ã¢ãããŒããæçµçã«çµäºããããšãããããŸãã
ã¹ã¿ãã¯ã瀺ããããå®å šãªååž°ã¢ã«ãŽãªãºã ã®æŠèŠã次ã«ç€ºããŸãã
å·ŠåŽã¯æé«ã¬ãã«ã§ãã¿ããããåã®ã»ããã¯ç©ºã§ããã¢ã«ãŽãªãºã ã¯ãæ°ããåãåã®å€åŽã«ãããã³ã«ç¹°ãè¿ãããŸããååž°ã®éããã®æ°ããåã¯ããããšæ¥è§Šããåã®ã»ããäžã«çœ®ãããªããã°ãªããŸããããã®ãããå·Šããå³ãžãé»ã§ç¶²æãããã0ã1ã2ã3ã€ã®é£ç¶ããåããããŸãã
ã¢ã«ãŽãªãºã ã®ä»çµã¿ã®èª¬æã«å ããŠããã®ã¢ãã¡ãŒã·ã§ã³ã¯ãã¢ã«ãŽãªãºã ãããŸããŸãªååž°ã¬ãã«ã§è²»ãããŠããæéã®æèŠãäžããŸããåãã©ã³ãã ã«åŠçãããããå²ãåã¯æ¥éã«æ¡å€§ããæçµçãªåçãè¿ã¥ããŸãããããããããç¹°ãè¿ããããã³ã«ã以åã®ãã¹ãŠã®åãå確ç«ããŠãããããæ°ããåšå²ã®åã«åãŸãããã«ããå¿ èŠããããŸãã
3.åå©çšæ§
å°ãªãã³ãŒããèšè¿°ãã1ã€ã®æ¹æ³ã¯ãåå©çšããããšã§ãã npmã§å ¬éããã440,000åçšåºŠã®ããã±ãŒãžã¯ããã®ã¢ãããŒãã®äººæ°ã蚌æããŠããŸãã
ããããã©ã€ãã©ãªã¯ç©æ¥µçãªåå©çšã®äŸã§ããåå©çšã®ããã«æå³çã«èšèšããå¿ èŠããããŸãããããŠãããã¯å€§ããªè² æ ã§ããå¹æçãªäžè¬çãªæœè±¡åãéçºããã®ã¯ååã«å°é£ã§ãïŒ ïŒãªãŒãã³ãœãŒã¹ã®éçºè ã«é£çµ¡ããŠãã ãããïŒD3ã®äŸã§ããããããã«ãã¯ã³ã¿ã€ã ã³ãŒãã®å®è£ ã¯ãã¿ã¹ã¯ã®æœè±¡ã¯ã©ã¹ã§ã¯ãªãç¹å®ã®ã¿ã¹ã¯ã®ã¿ãèæ ®ããå¿ èŠããããããç°¡åã§ãã
Observableã§ããè¯ãååçåå©çšãã§ãããã©ãããèããŠããŸãããªã¢ã¯ãã£ãããã¥ã¡ã³ãã®æ§é ã䜿çšãããšããã®ã³ãŒããåå©çšã®ããã«ç¹ã«èšèšãããŠããªãå Žåã§ããã³ãŒããç°¡åã«åæ§æã§ããŸãã
æå§ãã«ãããªãã¯äºå®äžããŒãããã¯ãã©ã€ãã©ãªãšèŠãªãããšãã§ããŸããããããŒãããã¯ã§ã«ã¹ã¿ã ã«ã©ãŒã¹ã±ãŒã«ãå®è£ ãããšããŸããã
ãå¥ã®ããŒãããã¯ã§ã¯ããã®ã«ã©ãŒã¹ã±ãŒã«ãã€ã³ããŒãããŠäœ¿çšã§ããŸãã
ã€ã³ããŒãã¯ãã¢ã€ãã¢ãæ¢çŽ¢ããããã«å€ãã®ããŒãããã¯ãäœæãããããã1ã€ã®ãããã¯ã«çµåããå Žåã«ã圹ç«ã¡ãŸãã
ããã«èå³æ·±ãããšã«ãObservableã䜿çšãããšãã€ã³ããŒãæã«å€æ°ã®å®çŸ©ãåæ§ç¯ã§ããŸããããã§ã¯ããªã¢ã«ã¿ã€ã ããŒã¿ããWebSocketãä»ããŠã¹ããªãŒã ãå®çŸ©ããŸãã ïŒç¹°ãè¿ããŸããããã®ã³ãŒãã®è©³çŽ°ã¯éèŠã§ã¯ãããŸãããç°¡åã«ããããã«ãæ³åäžã®ã©ã€ãã©ãªãæ³åããããšãã§ããŸã...ïŒ
ãã®ããŒã¿ã»ããã¯ã以åã®æãç·ã°ã©ããšåã圢ç¶ãããŠããŸãïŒæéãšå€ãæã€ãªããžã§ã¯ãã®é åããã®ãã£ãŒããåå©çšã§ããŸããïŒããïŒæŒç®åã
with
䜿çšãããšãã€ã³ããŒãããå€æ°ã«ããŒã«ã«å€æ°ãå ¥åããŠãå ã®å®çŸ©ã眮ãæããããšãã§ããŸãã
åçããŒã¿ã以åã®éçãã€ã¢ã°ã©ã ã«æ¿å ¥ã§ããã ãã§ãªããå¿ èŠã«å¿ããŠåº§æšè»žãã¹ã±ãŒãªã³ã°ããããšãã§ããŸããããã§ã¯ã軞ã®ãã¡ã€ã³ãå€æŽ
x
ãã
y
ããŒã¿ã®ããã®é©åãªãµã€ãºã«ã軞ã«
x
ã¯ãæåŸã®60ç§çšåºŠã衚瀺ãããŸãã
æ°ããå®çŸ©ãè¿œå
x
ãã
y
ãªãã¬ãŒã¿ã«
with
ãã¹ã±ãžã¥ãŒã«ã¯çŸåšã60 FPSã«æ»ç©ºãã軞ã
y
çæ£ãéªéããŠããŸããã
4.移æ€æ§
芳å¯å¯èœãªããŒãããã¯ã¯ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãã§ã¯ãªãããã©ãŠã¶ã§åäœããŸããã¹ã¯ãªãããä¿åããããã®ãµãŒããŒããããŸããããã¹ãŠã®èšç®ãšã¬ã³ããªã³ã°ã¯ã¯ã©ã€ã¢ã³ãã§ããŒã«ã«ã«è¡ãããŸãããŠã§ãäžã«ç 究ç°å¢ããããšã¯ã©ãããæå³ã§ããïŒ
Webç°å¢ã¯ãããã©JavaScriptãDOMãªã©ã®Webæšæºãã«ããŒããŠããŸããã€ã³ã¿ãŒããããŸãã¯npmã§å ¬éãããŠããã©ã€ãã©ãªã§èŠã€ãã£ãã³ãŒãã®æçã«é¢ä¿ãªãããªãŒãã³ãœãŒã¹ã§åäœããŸããããã«ãããæ°ããç°å¢ã§çç£çã«äœæ¥ããããã«å¿ èŠãªå°éç¥èãæå°éã«æããããŸãã
Observableã«ã¯åå¿æ§ã®ããã®æ°ããæ§æããããŸãããããšãã°ãžã§ãã¬ãŒã¿ãŒã䜿çšãããªã©ãã§ããã ãå°ãããŠäœ¿ãæ £ãããã®ã«ããããšããŸããããããã¯ãå€æ°å®çŸ©ã®4ã€ã®åœ¢åŒã§ãã
æšæºã©ã€ãã©ãªãæå°éã§ããããã©ãããã©ãŒã åºæã§ã¯ãããŸãããæ¢åã®ã³ãŒããšç¥èãObservableã«åã蟌ãããšãã§ãããã®éãåæ§ã§ããã³ãŒããšç¥èãObservableããååŸããŸãã
Webç°å¢ã§ã¯ããã©ãŠã¶ãŒã§åäœãããããã³ãŒãã¯ã©ãã§ãåäœããŸããäœãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸãããä»ã®äººãåæãç¹°ãè¿ããŠæ€èšŒãããããªããŸããããã«ãç 究çšã®ã³ãŒãã¯ã説æçšã®ã³ãŒãã«ã¹ã ãŒãºã«ç§»è¡ã§ããŸããã¢ã€ãã¢ãå ±æããããšãã¯ãæåããå§ããå¿ èŠã¯ãããŸããã
ãžã£ãŒããªã¹ããšç§åŠè ãããŒã¿ãšã³ãŒããå ±æããŠããã®ã¯çŽ æŽãããããšã§ãããã ããGitHubã®ã³ãŒãã¯å¿ ãããç°¡åã«å®è¡ã§ãããšã¯éããŸãããå¿ èŠãªç°å¢ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ãããã±ãŒãžãªã©ãåçŸããå¿ èŠããããŸããã³ãŒããæ¢ã«ãã©ãŠã¶ãŒã§å®è¡ãããŠããå Žåãä»ã®ãã©ãŠã¶ãŒã§å®è¡ãããŸãããããŠããããã€ã³ã¿ãŒãããã®çŸããã§ãïŒ
åæçšã®ç§»æ€æ§ã®é«ãã³ãŒããäœæãããšãã³ãã¥ãã±ãŒã·ã§ã³ã¹ã¿ã€ã«ã«åœ±é¿ãäžããå¯èœæ§ããããŸããç§ã¯åã³ãã¯ã¿ãŒãåŒçšããŸãïŒ
ç©æ¥µçãªèªè ã¯è³ªåããã代æ¿æ¡ãæ€èšããä»®å®ãçåèŠããããã«èè ã®ä¿¡é Œæ§ã«çåãåããŸããç©æ¥µçãªèªè ã¯ãç¹å®ã®äŸãèŠçŽããäžè¬åã®ããã®å ·äœçãªäŸãèããŸããç©æ¥µçãªèªè ã¯æ å ±ãååçã«åžåããŸããããèè ã®è°è«ãæ¹å€çæèãšæ·±ãç解ã®ããã®èžã¿å°ãšããŠäœ¿çšããŸãã
PS
ãªãã¶ãŒããã«ã®èšèšãæäŒããããªããããã¯çŽ æŽãããããšã§ãïŒç§ã«é£çµ¡ããŠãã ãããç§ã®GitHub ãããã¡ã€ã«ã§ç§ã®ã¡ãŒã«ã¢ãã¬ã¹ãèŠã€ããŠãTwitterã§ç§ã«é£çµ¡ã§ããŸãã
beta.observablehq.com
èªãã§ãããŠããããšãïŒ