第1éšãšç¬¬2éšã®è¯å®çãªè©äŸ¡ãåããã®ã§ãèªè ã«ããŸãé·ãåŸ ããããã¯ãããŸããã§ãããã人çãšçŸå®ã¯èª¿æŽãè¡ã£ãŠããŸãã
ããã«ãœã³éå§ã®2æ¥åã«ãRadio Canadaã¯ãã¡ã³ã¿ãŒã®PatrickLévesqueãããŒã ã«å²ãåœãŠãããããšãç¥ãããæçŽãéããŸããã ç§ã«ãšã£ãŠãããã¯ããäºæ³å€ã§ãããããããããµã€ãäžã§ããã«ã€ããŠäœããæžãããŠãããäºåãã¬ãŒã³ããŒã·ã§ã³äžã«èšãããŸããã ã©ããããç§ã¯è³ã§ãããèŠéããã äœããã®æ¹æ³ã§ãããã«ããã質åããã£ãå Žåã«èª°ãã«å©ããæ±ããããšãã§ãããšããèªä¿¡ãå ãããŸããã
é±ã®ç«ææ¥ãæ°Žææ¥ãæšææ¥ã¯ãã€ãã®ããã«æ¥éã«éãå»ããŸããã åéºãžã®æåŸ ãé«ãŸã£ãã ãããŠéææ¥ãŸã§ã«ããŒã¯ã«éããã ç§ã®åŠ»ã¯ãéææ¥ããå§ãŸãé±æ«ã«ãç§ã¯åœãèœãšããã¬ãŒããŒãã姿ãæ¶ãã ãããšèŠåãããŸããã
ããã§éææ¥ã®ä»äºã®åŸãç§ã¯æŠãã®æ°åã§ã©ãžãªå±ã«æ»ããŸããã
åæ¥ã éææ¥ã®å€ã ç³ãæããæé
éææ¥ã®ã¹ã±ãžã¥ãŒã«
ããã§ãªãªãžãã«ãèŠãããšãã§ããŸã ã ããããåé¡ã¯ã誰ããããå¿
èŠãšããŠããã®ããšããããšã§ãã ãã·ã¢èªã§ãèå³ããã人ã¯å°ãªããšæããŸãã ããããäžæ¹ã§ã誰ããç§ã®ç©èªãèªãã§ãã©ã¹ããŠããŸãããããã®éåžžã«å°ããªãã®ãç§ã®ãã€ã©ã€ãã§ãããšãããã©ãã§ããããïŒ
3æ23æ¥éææ¥
17:00å°çãšç»é²ïŒãã€ãã³ã°ã«ãŒã ã©ãžãªã«ããã¯19:00ã«éãŸããŸãïŒã
18:00ãããã€
18:15ã¡ã³ã¿ãŒãã¢ã·ã¹ã¿ã³ããããŒã ããã³ãã®ãã¬ãŒã³ããŒã·ã§ã³
19:00 Matthieu Dugalããã³Chloe Sondervorstãšã®ãããã¿ã€ãã®ãã¬ãŒã³ããŒã·ã§ã³ã®æºåã«é¢ããã¯ãŒã¯ã·ã§ãã
19:30äŒæ©
19:50éžæïŒ
1.ã¯ãŒã¯ã·ã§ãã
ãã€ã¯ããœãããµãŒãã¹ãã¬ãŒã³ããŒã·ã§ã³
ã©ãžãªã«ãããµãŒãã¹ã®ãã¬ãŒã³ããŒã·ã§ã³
2.äœæ¥ããŒã ã®éå§
22:00åæ¥ã®çµãã
ãã€ãã³ã°ã«ãŒã ã®èšåã¯éåžžã«é©åã§ããã ãŸãããè ¹ã空ããŠå¿ããäžæ¥ãéãããåŸããã®è¡åãéå§ããåã«äœãé£ã¹ãŠãçããªãããšãæãåºããŸããã ã¢ã¹ã¿ãªã¹ã¯ã¯ç§ã«é£ã¹ç©ãæã£ãŠæ¥ãããšãç³ãåºããããŸããããªããªã圌女ã¯ãã€ãã®ããã«å€§åŠããã§ã¯ãªãã家ããæ¥ãŠããªãå æ°ã§ããã«ãœã³ã«æ¥ãããã§ãã ãããããã€ãã®ããã«ãç§ã¯èªåãè£åã£ãã ãã¶ã泚æããæéã欲æ±ãæ©äŒããããšæããŸããã ããããå®éã«ã¯ãç§ã¯ããŒã ã§ç©ºè ¹ã«ãªã£ãããšãå€æããŸããã ããã§ç§ã¯é£å ã«è¡ã£ãŠãç»é²åŸããã«ãã³ããŒã¬ãŒãé£ã¹ãŸããã
3æ23æ¥éææ¥
17:00å°çãšç»é²ïŒãã€ãã³ã°ã«ãŒã ã©ãžãªã«ããã¯19:00ã«éãŸããŸãïŒã
18:00ãããã€
18:15ã¡ã³ã¿ãŒãã¢ã·ã¹ã¿ã³ããããŒã ããã³ãã®ãã¬ãŒã³ããŒã·ã§ã³
19:00 Matthieu Dugalããã³Chloe Sondervorstãšã®ãããã¿ã€ãã®ãã¬ãŒã³ããŒã·ã§ã³ã®æºåã«é¢ããã¯ãŒã¯ã·ã§ãã
19:30äŒæ©
19:50éžæïŒ
1.ã¯ãŒã¯ã·ã§ãã
ãã€ã¯ããœãããµãŒãã¹ãã¬ãŒã³ããŒã·ã§ã³
ã©ãžãªã«ãããµãŒãã¹ã®ãã¬ãŒã³ããŒã·ã§ã³
2.äœæ¥ããŒã ã®éå§
22:00åæ¥ã®çµãã
ãã€ãã³ã°ã«ãŒã ã®èšåã¯éåžžã«é©åã§ããã ãŸãããè ¹ã空ããŠå¿ããäžæ¥ãéãããåŸããã®è¡åãéå§ããåã«äœãé£ã¹ãŠãçããªãããšãæãåºããŸããã ã¢ã¹ã¿ãªã¹ã¯ã¯ç§ã«é£ã¹ç©ãæã£ãŠæ¥ãããšãç³ãåºããããŸããããªããªã圌女ã¯ãã€ãã®ããã«å€§åŠããã§ã¯ãªãã家ããæ¥ãŠããªãå æ°ã§ããã«ãœã³ã«æ¥ãããã§ãã ãããããã€ãã®ããã«ãç§ã¯èªåãè£åã£ãã ãã¶ã泚æããæéã欲æ±ãæ©äŒããããšæããŸããã ããããå®éã«ã¯ãç§ã¯ããŒã ã§ç©ºè ¹ã«ãªã£ãããšãå€æããŸããã ããã§ç§ã¯é£å ã«è¡ã£ãŠãç»é²åŸããã«ãã³ããŒã¬ãŒãé£ã¹ãŸããã
ç§ã¯17:45é ã«å°çããŸããã
ã€ãã³ããéå¬ãããããŒã«ã«å ¥ãåã«ãããã«ãœã³åå è ã®Tã·ã£ããšæ°Žã®ããã«ã®åœ¢ã®å°ããªãåç£ãç»é²ããå ¥æããå¿ èŠããããŸããã åå è ã«ã¯çœãTã·ã£ããæž¡ãããäž»å¬è ãšæå°è ã¯é»ã§ããã é»ãTã·ã£ããæã«å ¥ãããšããè©Šã¿ã¯å€±æããŸããã ãŸãã倧äžå€«ãçœãäœããªãã
ç§ãããŒã«ã«å ¥ã£ããšãããºãŽã§ãºããã«ãšãã©ãã³ã¯ãã§ã«ç©ºæ³ãåããããŒã çšã«çšæãããããŒãã«ã®1ã€ãå æããŠããŸããã ç§ãã¡ã¯ã©ããããããé»æºãšã€ã³ã¿ãŒãããã«æ¥ç¶ããããšã«åŸäºããŠããŸããã
ç§ãã©ããããããæºåãããã¬ãŒã³ããŒã·ã§ã³ã®æ°ååã«é£å ã«è¡ã£ãŠé£äºãããŸããã
ç§ãããŒã«ã«æ»ãé ã«ã¯ãããŒãã¥ãªãŒã¯ãã§ã«ããŒã ã«åå ããŠããŸããã å¯æ€ åã¯ãªãã圌ãçŸãããšããããã¯äžæã§ããã
ã¹ã±ãžã¥ãŒã«ã«ãããã«é ããŠã18ïŒ10é ã Maxim St-Pierreããã®æè¿ã®èšèãèããŸããã 圌ã¯ãå»å¹Žã®çµéšãè¯ãå®çšçãªçµæãããããããããRadio Canadaããã®ã€ãã³ãã«å€§ããªåžæãæã£ãŠããããšãç¹°ãè¿ããŸããã ãŸããæè¿ã§ã¯ããã«ãœã³ã®ããŒãã§ããAIãéåžžã«éèŠã§ãããšè¿°ã¹ãŸããã ãããŠãããã®ç¢ºèªãäŸãã°ãä»é±æåéãèµ·ãã£ãã±ã³ããªããžã¢ããªãã£ã«ã®ã¹ãã£ã³ãã«ã
ä»æ©ã®æŸéã®å®å šãªèšé²ãèŠãããšãã§ããŸãïŒ
ããã·ã ã¯ã¹ããŒããåŒãããããããã³ãå€æ¹ã®åžäŒè ããã¥ãŒã»ãã¥ã¬ã«ã«ææž¡ããã
ç§ãç解ããŠããããã«ããã·ã¥ãŒã¯ã«ããã®ãã¬ãã§éåžžã«æåãªãã¬ãåžäŒè ã§ãã 圌ã¯ããã€ãã®æè¡ããã°ã©ã ãçããŠããŸãã ããã¯ãä»æ©ãšããã«ãœã³å šäœã®äž¡æ¹ãçµç¹ããäžã§ç©æ¥µçãªåœ¹å²ãæãããŸããã äžæ¹ã§ã圌ã®ãã¬ã圢åŒã§ã®çµéšã¯ãæé管çã®é¢ã§å€§ãã«åœ¹ç«ã¡ãŸããã ããã°ã©ã ã®ãã¹ãŠã®ãã€ã³ãã¯ãæåã®é 延ã«ãããããããæçµçã«äºåã«çºè¡šãããããã°ã©ã ã«å®å šã«é©åããŸãã äžæ¹ã圌ã¯æè¡çšèªãçºé³ããã®ã«äœã®å°é£ããããŸããã§ãããããã¯ããã¬ãŒã³ã¿ãŒãæè¡çãªäž»é¡ã«ç²ŸéããŠããªãå Žåã«åœãŠã¯ãŸããšæããŸãã
é·å¹Žã«ããããç§ã¯åœŒãã®èšèã«ãçãããæ¹æ³ãç¥ã£ãŠãã人ã ãšçµç¹ããŸããŸãå°æ¬ããŠããŸãã 誰ããå©çšã§ããããŒã«ãå¢ããæ®éçã«å®£èšãããŠããããããã§ãã·ã§ããªãºã ãã«ããããããããããŸã§ã®ãšãããäž»å¬è ãèªåã®ã€ãã³ããå¶åŸ¡ã§ããªã人ãç¶æ³ã«é »ç¹ã«äŒã£ãŠããŸãã ãã®ç¹ã§ãã©ãžãªã«ããããããã§ããã
æåã«ããã·ã¥ãŒã¯åã³ããã«ãœã³ã®ãã¹ãŠã®èŠä»¶ãšãããã¿ã€ããè©äŸ¡ããããã®åºæºã«ã€ããŠè©±ããŸããã ç§ã¯åã³ãããããªã¹ãããŸããã æåãš2çªç®ã®éšåã§ããããå床èªãããšãã§ããŸãã
ãããã¿ã€ãè©äŸ¡åºæº
æåã®2ã€ã®ããŒãã§ã¯ããããã¿ã€ããè©äŸ¡ããããã®åºæºã説æããªãã£ãããã§ãã å¥åŠãªããšã«ãç§ã¯ãããã«èšåãããšç¢ºä¿¡ããŠããã
ãã©ã³ã¹èªã§
ã¬ã¯ãªã¿ãŒã¬ãããªã¥ãšãŒã·ã§ã³ãœã³ã¬ã¹ã€ãŽã¡ã³ãïŒ
ãããã¿ã€ãã»ã³ã³ããªãŒãã»ãã»ã¯ãªãã¬ã¹ã»ãªããªã¬ãªããã»ãã¥ã»ã¬ã°ã©ã³ãïŒAPI et AzureïŒ/ 20ãã€ã³ã
ãªãªãžãã«/ 35ãã€ã³ã
ãšã¯ã»ã¬ã³ã¹ãã©ãã¯ããã¯/ 20ãã€ã³ã
ã€ã³ãã¯ã/ããã³ãã£ãšã«/èä¹ æ§/ 20ãã€ã³ã
ãã¬ãŒã³ããŒã·ã§ã³/ 5ãã€ã³ã
ãããã¿ã€ãã»ã³ã³ããªãŒãã»ãã»ã¯ãªãã¬ã¹ã»ãªããªã¬ãªããã»ãã¥ã»ã¬ã°ã©ã³ãïŒAPI et AzureïŒ/ 20ãã€ã³ã
ãªãªãžãã«/ 35ãã€ã³ã
ãšã¯ã»ã¬ã³ã¹ãã©ãã¯ããã¯/ 20ãã€ã³ã
ã€ã³ãã¯ã/ããã³ãã£ãšã«/èä¹ æ§/ 20ãã€ã³ã
ãã¬ãŒã³ããŒã·ã§ã³/ 5ãã€ã³ã
- ãããã¿ã€ãã¯ãåè¿°ã®å®£èšãããèŠä»¶ãæºãããŠããå¿ èŠããããŸã-20ãã€ã³ã
- ã¢ã€ãã¢ã®ç¬åµæ§-35ãã€ã³ã
- æè¡çããã©ãŒãã³ã¹-20ãã€ã³ã
- ããžãã¹/åæ¥ã®å¯èœæ§ãžã®åœ±é¿ã®å¯èœæ§-20ãã€ã³ã
- ãããã¿ã€ãã®æ瀺-5ãã€ã³ã
圌ã¯ãŸããåè³è ã®è³åãªã¹ããåã³çºè¡šããŸããã
è³åãªã¹ã
1äœ-XBox One + $ 1000
2äœ-Google Home Max + 250ãã«
3äœ-$ 500
ãããŠãæ®ãã®åå è ã®éã§ã©ããã«ãéããŠã©ããã«ããã2ã€ã®è³ïŒXbox One S1ïŒã
ïŒåããŒã ã¡ã³ããŒãåãåã£ãè³éãç解ããŠããéãïŒ
2äœ-Google Home Max + 250ãã«
3äœ-$ 500
ãããŠãæ®ãã®åå è ã®éã§ã©ããã«ãéããŠã©ããã«ããã2ã€ã®è³ïŒXbox One S1ïŒã
ïŒåããŒã ã¡ã³ããŒãåãåã£ãè³éãç解ããŠããéãïŒ
ãã®åŸããã·ã¥ãŒã¯ãã¹ãŠã®ã¡ã³ã¿ãŒãšã¢ã·ã¹ã¿ã³ããååã§çŽ¹ä»ããŸããã
ãããŠåããŒã ã¡ã³ã㌠ã
31ããŒã ãç»é¢ã«è¡šç€ºããããšããäºå®ã«ããããããã ç§ã®ããŒã ãšç§ã¯ããããã®ããŒã ã®åæ°ããŸã£ããåå ããªããããããã¿ã€ãã³ã°ã«å¯ŸåŠã§ããªãããããŒã ãããããªã匱ããšããå¹»æ³ãæ±ããŠããŸããã åœæãç§ã¯ããŒã ã®æ°ããæ°ããŠããŸããã§ããã ç§ã¯Azureãžã®ã¢ã¯ã»ã¹ã®ã»ããã¢ããã«å¿ããããŠãäžè¬çã«è³ã®ç«¯ã§ãã¹ãŠãèŠããèãããããŠããŸããã ããŒã«ã®äººã ã®çºãã¯ç§ãå°ãå¿é ããŸãããã åå è ã®ã»ãšãã©ã倧åŠçã ãšæã£ããšããæå³ã§ã ãããŠãç§ã®ç®ã¯ãããã²ããšã¡ã¬ãã身ã«çããŠãã人ã ã¯åŠçã§ããå¯èœæ§ãäœããšç§ã«èšã£ãã ã€ãŸããèŠèŠçã«åå è ã®æ§æã¯ããªãæçããŠããŸããã
ã¹ã±ãžã¥ãŒã«ãå°ã調æŽããåŸããã·ã¥ãŒã¯20åéã®äŒæ©ãçºè¡šããŸããã 誰ããæèŠäº€æãæ©è¡ãã¹ãã¬ããããªãã¬ãã·ã¥ãããªããã°ãªããŸããã§ããã
äŒæ©äžã«ããºãŽã§ãºããã«ã¯ããäžåºŠããããžã§ã¯ãã®ã¢ãŒããã¯ãã£ãšåããŒã ã¡ã³ããŒã®åœ¹å²ãæ°Žæã«èª¬æããããæ±ããŸããã çŽã®äžã§ããã
çŽãããå°ããããã§æ§é ç
ãããã次ã®ãããªãã®ïŒ
æ©èœ ïŒHTMLã®åœ¢åŒã§æŽçãããã¢ããªã±ãŒã·ã§ã³ã®è¡šç€ºéšåãšãåŠçãããJSã®æ€çŽ¢å ¥åãã£ãŒã«ãã
ã¢ãŒãã£ã¹ã ïŒã¢ã¹ã¿ãªã¹ã¯-HTMLãæ°Žæ-JS
泚é ïŒãã®éšåã«3ã€ã®å®è£ ãªãã·ã§ã³ãææ¡ããŸããïŒå¥ã®ããŒãžïŒæãåçŽãªæ£é¢ãœãªã¥ãŒã·ã§ã³ïŒã ã©ãžãªã«ããããŒãžã«åã蟌ãŸãããã£ãŒã«ãïŒç§ã¯ã¿ããªãããŒãžæ§é ãšCSSã¯ã©ã¹ãåå©çšããŠæ€çŽ¢çµæããããã¯/ãŠã£ãžã§ãããšããŠã¬ã³ããªã³ã°ã§ãããšæããŸããïŒç¬èªã®äœæã«æéãç¡é§ã«ããªãããã«ïŒã3çªç®ã®ãªãã·ã§ã³ã¯2çªç®ã®ãªãã·ã§ã³ãšåãã§ãããã©ãŠã¶ãŒã®æãç°¡åãªæ¡åŒµæ©èœãäœæããããšã¯é£ãããªãããšãç¥ã£ãŠããã®ã§ãChromeæ¡åŒµæ©èœã®åœ¢åŒã§æ€çŽ¢ãã£ãŒã«ããã£ãŒã«ããäœæããããšãææ¡ããŸããã ãŸãããã®ãããªãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ãããšããã¥ãŒã¹ãã£ãŒãã§å¿ èŠãªããŒãžãå«ããä»»æã®ããŒãžã«ã¢ã¯ã»ã¹ã§ããŸãã
æ©èœæ§ ïŒæãåçŽãªæ€çŽ¢APIãèšç»ã«ãããšãããŒãžã®æ€çŽ¢è¡ããã®ãªã¯ãšã¹ããåãå ¥ããããŒã¿ããŒã¹ãæ€çŽ¢ããJSON圢åŒã®æ€çŽ¢çµæãè¿ãå¿ èŠããããŸãã
ã¢ãŒãã£ã¹ã ïŒè¬èãªå
泚é ïŒã¡ã€ã³ã®ä»äºã«åå ããæåŸã®ãããžã§ã¯ãã¯Laravelã§è¡ãããããããã®ãã¬ãŒã ã¯ãŒã¯ã¯ä»æ¥ã®ãã¬ã³ãã»ãã¿ãŒã§ããããã Laravelã䜿çšããããšã«ããŸããã ããã¯ç¹å¥ãªé©ãããããããªãã¯ãã§ãããç§ã«ãšã£ãŠã¯ãç¹ã«ãµã€ãã®ã¢ãŒãã§ã¯ãªãããµãŒãã¹APIã®ã¢ãŒãã§ãæ°ãããããžã§ã¯ããäœæãããšãã«Laravelã®æ©èœãããã€ãåŠç¿ããŸãã
æ©èœ ïŒããŒã¿ããŒã¹ãã³ã³ãã³ãããã³åæçµæçšã®ã¹ãã¬ãŒãž
泚é ïŒã©ã®ããŒã¿ããŒã¹ã䜿çšãããã«ã€ããŠã®å³å¯ãªèŠä»¶ã¯ãªãã£ãããããã©ãã³ã¯MongoDBã䜿çšããæ¹ãè¯ããã©ãããå°ããŸããã MongoDBã®å ŽåãJSONã¯ã»ãšãã©ãã€ãã£ãã§ãããåã¯ããã·ã³ãã«ã§ããå¿ èŠããããšåœŒãã¯èšããŸãã æ£çŽãªãšãããç§ã¯çããããšãã§ããŸãããä»ã§ã¯ãéãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§ãã®ãããªæ±ºå®ãè¡ãããšãããæ£ç¢ºã«ãªã£ãŠããŸãã ãã®ãããã¯ã§èªãã ããšããã以åã®æ¢ç¥ã®ãã£ãŒã«ãããããŠå®éã«ã¯åäžã®ããŒãã«ã§ããªãåçŽãªéžæãå¿ èŠãªå Žåããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãæé©ãªãœãªã¥ãŒã·ã§ã³ã§ãããšçµè«ä»ããŸããã ïŒééã£ãŠããå Žåã¯ä¿®æ£ããŠãã ããïŒã ããããç§ã®MySQLã®éžæã¯ãã¢ãŒããã¯ãã£ã®å¥œã¿ã«ãããã®ã§ã¯ãªããå®çšçãªèæ ®äºé ã«ãããã®ã§ãã䜿çšæ¹æ³ãç¥ã£ãŠããã ãã§ãã ãã©ãã³ã«ãšã£ãŠãäž¡æ¹ã®æ ç¹ã¯æ°ãããã®ã§ããããããã«ããŠãå®éšã§ãã£ãããã圌ã¯ç§ã«ç°¡åã«åæããŸããã
æ©èœ ïŒïŒã©ãžãªã«ãã-> Pythonã¢ããª-> Azure Cognitive Services-> Pythonã¢ããª-> MySQLïŒãã®éšåã¯ãããã«ãœã³ã®èŠä»¶ã«é¢ããŠæ¬è³ªçã«æãéèŠã§ãã Radio Canada APIãä»ããŠã³ã³ãã³ããååŸããå Žåã«ãã£ãŠã¯åŠçããŠãããåæã®ããã«ã³ã³ãã³ããããã€ãã®AIãµãŒãã¹ã«éä¿¡ããå¿çãååŸããŠãã³ã³ãã³ããåæçµæãšãšãã«ããŒã¿ããŒã¹ã«å ¥ããå¿ èŠããããŸãã
ã¢ãŒãã£ã¹ã ïŒãã©ãã³
éçããŒã ïŒè²¬ä»»ã®å šäœã®éè·ã¯ããããŠãã©ãã³ã«èœã¡ãã 圌ã¯ããã«ã€ããŠå°ãå¿é ããŠããŸããã ãããããã§ã«è¿°ã¹ãããã«ã圌ã¯å®¿é¡ããããããžã§ã¯ãã«å¿ èŠãªãã¹ãŠã®ç¥èãæã£ãŠãããšæããŸããã ãã©ãã³ã¯ãããŒã å šäœãšåæ§ã«ãç§ãã¡ããã®ã¿ã¹ã¯ã«å¯ŸåŠããããšãçããŸããã§ããã
æ©èœæ§ ïŒããã«ãœã³ã®éå§æã«ãã©ã®ãµãŒãã¹ãé¢äžãããããããŸããã§ãã
æ©èœæ§ ïŒããã«ãœã³ã®éå§æã«ã4ã€ã®ãµãŒãã¹ã®ã©ãããã©ãã³ã«ãã£ãŠäœ¿çšããããããããŸããã§ããïŒç¬¬2éšã®4 API Radio Canadaã®èª¬æãèªãã§ãã ããïŒã AIãµãŒãã¹ã®å Žåãšåæ§ã«ããã©ãã³ã¯ãå®è£ ãããç°¡åã§äŸ¿å©ã§ãããšããå€æã«åºã¥ããŠã決å®ãäžãã¹ãã§ããã
1. WEBããŒãž/ãŠã£ãžã§ãã-HTML + JS
æ©èœ ïŒHTMLã®åœ¢åŒã§æŽçãããã¢ããªã±ãŒã·ã§ã³ã®è¡šç€ºéšåãšãåŠçãããJSã®æ€çŽ¢å ¥åãã£ãŒã«ãã
ã¢ãŒãã£ã¹ã ïŒã¢ã¹ã¿ãªã¹ã¯-HTMLãæ°Žæ-JS
泚é ïŒãã®éšåã«3ã€ã®å®è£ ãªãã·ã§ã³ãææ¡ããŸããïŒå¥ã®ããŒãžïŒæãåçŽãªæ£é¢ãœãªã¥ãŒã·ã§ã³ïŒã ã©ãžãªã«ããããŒãžã«åã蟌ãŸãããã£ãŒã«ãïŒç§ã¯ã¿ããªãããŒãžæ§é ãšCSSã¯ã©ã¹ãåå©çšããŠæ€çŽ¢çµæããããã¯/ãŠã£ãžã§ãããšããŠã¬ã³ããªã³ã°ã§ãããšæããŸããïŒç¬èªã®äœæã«æéãç¡é§ã«ããªãããã«ïŒã3çªç®ã®ãªãã·ã§ã³ã¯2çªç®ã®ãªãã·ã§ã³ãšåãã§ãããã©ãŠã¶ãŒã®æãç°¡åãªæ¡åŒµæ©èœãäœæããããšã¯é£ãããªãããšãç¥ã£ãŠããã®ã§ãChromeæ¡åŒµæ©èœã®åœ¢åŒã§æ€çŽ¢ãã£ãŒã«ããã£ãŒã«ããäœæããããšãææ¡ããŸããã ãŸãããã®ãããªãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ãããšããã¥ãŒã¹ãã£ãŒãã§å¿ èŠãªããŒãžãå«ããä»»æã®ããŒãžã«ã¢ã¯ã»ã¹ã§ããŸãã
2. PHPãMySQL-Search APIããã¯ãšã³ã
æ©èœæ§ ïŒæãåçŽãªæ€çŽ¢APIãèšç»ã«ãããšãããŒãžã®æ€çŽ¢è¡ããã®ãªã¯ãšã¹ããåãå ¥ããããŒã¿ããŒã¹ãæ€çŽ¢ããJSON圢åŒã®æ€çŽ¢çµæãè¿ãå¿ èŠããããŸãã
ã¢ãŒãã£ã¹ã ïŒè¬èãªå
泚é ïŒã¡ã€ã³ã®ä»äºã«åå ããæåŸã®ãããžã§ã¯ãã¯Laravelã§è¡ãããããããã®ãã¬ãŒã ã¯ãŒã¯ã¯ä»æ¥ã®ãã¬ã³ãã»ãã¿ãŒã§ããããã Laravelã䜿çšããããšã«ããŸããã ããã¯ç¹å¥ãªé©ãããããããªãã¯ãã§ãããç§ã«ãšã£ãŠã¯ãç¹ã«ãµã€ãã®ã¢ãŒãã§ã¯ãªãããµãŒãã¹APIã®ã¢ãŒãã§ãæ°ãããããžã§ã¯ããäœæãããšãã«Laravelã®æ©èœãããã€ãåŠç¿ããŸãã
3. MySQL
æ©èœ ïŒããŒã¿ããŒã¹ãã³ã³ãã³ãããã³åæçµæçšã®ã¹ãã¬ãŒãž
泚é ïŒã©ã®ããŒã¿ããŒã¹ã䜿çšãããã«ã€ããŠã®å³å¯ãªèŠä»¶ã¯ãªãã£ãããããã©ãã³ã¯MongoDBã䜿çšããæ¹ãè¯ããã©ãããå°ããŸããã MongoDBã®å ŽåãJSONã¯ã»ãšãã©ãã€ãã£ãã§ãããåã¯ããã·ã³ãã«ã§ããå¿ èŠããããšåœŒãã¯èšããŸãã æ£çŽãªãšãããç§ã¯çããããšãã§ããŸãããä»ã§ã¯ãéãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§ãã®ãããªæ±ºå®ãè¡ãããšãããæ£ç¢ºã«ãªã£ãŠããŸãã ãã®ãããã¯ã§èªãã ããšããã以åã®æ¢ç¥ã®ãã£ãŒã«ãããããŠå®éã«ã¯åäžã®ããŒãã«ã§ããªãåçŽãªéžæãå¿ èŠãªå Žåããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãæé©ãªãœãªã¥ãŒã·ã§ã³ã§ãããšçµè«ä»ããŸããã ïŒééã£ãŠããå Žåã¯ä¿®æ£ããŠãã ããïŒã ããããç§ã®MySQLã®éžæã¯ãã¢ãŒããã¯ãã£ã®å¥œã¿ã«ãããã®ã§ã¯ãªããå®çšçãªèæ ®äºé ã«ãããã®ã§ãã䜿çšæ¹æ³ãç¥ã£ãŠããã ãã§ãã ãã©ãã³ã«ãšã£ãŠãäž¡æ¹ã®æ ç¹ã¯æ°ãããã®ã§ããããããã«ããŠãå®éšã§ãã£ãããã圌ã¯ç§ã«ç°¡åã«åæããŸããã
4. Pythonã¢ããª
æ©èœ ïŒïŒã©ãžãªã«ãã-> Pythonã¢ããª-> Azure Cognitive Services-> Pythonã¢ããª-> MySQLïŒãã®éšåã¯ãããã«ãœã³ã®èŠä»¶ã«é¢ããŠæ¬è³ªçã«æãéèŠã§ãã Radio Canada APIãä»ããŠã³ã³ãã³ããååŸããå Žåã«ãã£ãŠã¯åŠçããŠãããåæã®ããã«ã³ã³ãã³ããããã€ãã®AIãµãŒãã¹ã«éä¿¡ããå¿çãååŸããŠãã³ã³ãã³ããåæçµæãšãšãã«ããŒã¿ããŒã¹ã«å ¥ããå¿ èŠããããŸãã
ã¢ãŒãã£ã¹ã ïŒãã©ãã³
éçããŒã ïŒè²¬ä»»ã®å šäœã®éè·ã¯ããããŠãã©ãã³ã«èœã¡ãã 圌ã¯ããã«ã€ããŠå°ãå¿é ããŠããŸããã ãããããã§ã«è¿°ã¹ãããã«ã圌ã¯å®¿é¡ããããããžã§ã¯ãã«å¿ èŠãªãã¹ãŠã®ç¥èãæã£ãŠãããšæããŸããã ãã©ãã³ã¯ãããŒã å šäœãšåæ§ã«ãç§ãã¡ããã®ã¿ã¹ã¯ã«å¯ŸåŠããããšãçããŸããã§ããã
5. Azure Cognitive Services
æ©èœæ§ ïŒããã«ãœã³ã®éå§æã«ãã©ã®ãµãŒãã¹ãé¢äžãããããããŸããã§ãã
6. Radio Canada API
æ©èœæ§ ïŒããã«ãœã³ã®éå§æã«ã4ã€ã®ãµãŒãã¹ã®ã©ãããã©ãã³ã«ãã£ãŠäœ¿çšããããããããŸããã§ããïŒç¬¬2éšã®4 API Radio Canadaã®èª¬æãèªãã§ãã ããïŒã AIãµãŒãã¹ã®å Žåãšåæ§ã«ããã©ãã³ã¯ãå®è£ ãããç°¡åã§äŸ¿å©ã§ãããšããå€æã«åºã¥ããŠã決å®ãäžãã¹ãã§ããã
äŒæ©ã®åŸã Matthieu DugalãšChloe Sondervorstã¯ããããã¿ã€ãã®ãã¬ãŒã³ããŒã·ã§ã³ã®æºåã«é¢ãããã¹ã¿ãŒã¯ã©ã¹ãéå¬ããŸããã 圌ãã¯ããŸãè©Šäœåããæã§æºããããŠãããããšãç解ããå¿ èŠããããšããäºå®ã«èŽè¡ã®æ³šæãåèµ·ããŸããããããã£ãŠãæåãšåå©ã®å¯èœæ§ã¯çŽ æã®ãã¬ãŒã³ããŒã·ã§ã³ã«å€§ããäŸåããŸãã ãã¬ãŒã³ã¿ãŒã泚æãåãã2çªç®ã®ããšã¯ãéãããæéã§ãã æçµæ¥ã®åããŒã ã®ããã©ãŒãã³ã¹ã§ã¯ãããã©ãŒãã³ã¹èªäœã«3åãå²ãåœãŠããã審æ»å¡ã®è³ªåãžã®åçãããã°2åãå²ãåœãŠãããŸãã 3åã§ã¯æ¬åœã«ååã§ã¯ãªãã®ã§ãæãéèŠãªç¬éã«ã¹ããŒããéäžããã¹ããŒãã«æ£ããéç¹ã眮ãå¿ èŠããããŸãã
åçŽãªæ°åŠçèšç®ãè¡ããšã31ã³ãã³ãxïŒ3å+ 2åïŒ= 155å= 2æé35åã§ãã ãããŠããã¹ãŠã®çš®é¡ã®ããã£ããã«æ°åãè¿œå ããã¹ããŒãžäžã®ããŒã ãå€æŽãããªã©ãããŒã ãèãã ãã§ãæé«ã§3æéãããããšãæããã«ãªããŸãã ããããç§ã¯ç¹°ãè¿ããŸãããåœæãç§ã¯ãŸã 31ã®ãã«ã¿ã€ã ããŒã ã
ã¯ããšã¯ãã®çãéã人åã§è©±ãããšãšæŒèª¬ã®çãã³ãŒã¹ãæäŸããããšãå¿ããè©Šã¿ãŸããã 圌女ã¯ããã¬ãŒã³ããŒã·ã§ã³ãè©äŸ¡ã§ããäž»ãªåºæºã¯äœã§ãããã話ããŸããïŒç¬¬äžå°è±¡ãæŽå²ãä¿¡é Œæ§/ãªã¢ãªãºã ãã·ã³ãã«ããæéïŒæé管çïŒãææ ãããžã§ã³ãæ ç±/ææ çãªæ ç±ã
ã¹ããŒãã®äžéšãç· ãããããçºè¡šè ã¯åã³ãããã¿ã€ããè©äŸ¡ããããã®èŠå®ã®åºæºã«æ³šæãåããŸããã
ãã¹ã¿ãŒã¯ã©ã¹ã®ä¿®äºåŸãåå è ã¯ããã«è³ªåãããæ©äŒããããŸããã ãããã®è³ªåã®ããã€ãã¯ããããã¿ã€ãã®æ©èœæ§ã誰ããã¹ããããããã¬ãŒã³ããŒã·ã§ã³ã«å®éã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãå«ããæ¹æ³ãšæ¹æ³ããŸãã¯ã¹ã¯ãªãŒã³ã·ã§ãããªã©ã®éçã¹ã©ã€ããçãããšãã§ãããã©ããã«é¢ãããã®ã§ãã
ãããã®è³ªåã®1ã€ã«çããŠãMaxim St-Pierreã¯ããããã¿ã€ãã¯ééããªãæ©èœããã¯ãã§ãããæçµãã¬ãŒã³ããŒã·ã§ã³ã«ãã¢ãå«ããã®ãæåã§ãããšæ確ã«è¿°ã¹ãŸããã
ãã®å°ããªã¹ãããŒã¯ã«æ³šæãåèµ·ããããšæããŸãã ãããã¿ã€ãã®æºåãã§ããŠããŠãæºæ ããå¿ èŠããããšããåæã«æ£ç¢ºã«åºã¥ããŠããããã§ãã
宣èšãããåºæºã
質åã«çããåŸãåã³å¹žéãç¥ããŸããã ãããŠãä»äºã¯æ²žéš°ãå§ããŸããïŒ ïŒçŽ20:00ïŒ
ãã¡ã³ãèªãã¹ãå€ãã®ããã¹ã
ããããäœåãšããŠãç¹å®ã®æŽ»åã ç§ã¯ãããŒã ã®ãã¹ãŠã®ã¡ã³ããŒã«ãã§ããéãç¬ç«ããŠãå¯èœãªéãããŒãã®éçºãè¡ãå¿
èŠãããããšãããã«èª¬æããŸããã åæã«ããäºãããããã¯ããªãããã«ããå¿
èŠããããŸãã ã¢ãŒããã¯ãã£ã«ãããšãçžäºãããã¯ã®å¯èœæ§ããããã€ã³ãã¯é·ç§»ã§ããããšãå€æããŸããïŒJS <-> PHPãPHP <-> MySQL <-> Pythonã ã€ãŸããç¹å®ã®æ¹æ³ã§ã®ç§ã®éšåã¯ãããŒã¿ããŒã¹ã®äœ¿çšäžå¯ãŸãã¯åé¡ã«ãã£ãŠé
延/ãããã¯ãããå¯èœæ§ããããŸãã ãããŠç§ã¯ãããã³ããšã³ãã®ããããã³ã°ãªã³ã¯ã«ãªãããšããããŸãã
ãããã£ãŠãæåã®ã¹ãããã¯ãããŒã¿ããŒã¹ãäžããŠãPHPãšPythonã®äž¡æ¹ããããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ã確èªããããšã§ããã
äžæ¹ãPlatoã¯äž¡æ¹ã®APIãåŠçããã©ã¡ãã®æ¹æ³ã§ç§»åãããã決å®ããŸããã
ã¢ã¹ã¿ãªã¹ã¯ãšããŒãã¥ãªãŒã¯åœŒãã®ããžãã¹ã«ã€ããŠè¡ããŸããã ã¡ãªã¿ã«ã圌ãã¯Githubã®å ±éãªããžããªãããã«åŒãäžããŠãæåã®æ°åããå ±åéçºã«å®éã«åŸäºããæŽæ°ãåçã«äº€æãããšããäºå®ã«åãã§é©ããã ã¡ãªã¿ã«ãæ°é±éçµã¡ãŸãããããŸã ã©ãã«ãã³ãŒããã¢ããããŒãããŠããŸããã ïŒæ£çŽãæ¥ããããïŒ
Zvezdochkaã«ãPHPãµãŒãã¹ããã®èŠçŽ ãå«ãç¹å®ã®JSONé åãåãåããšããäºå®ããé²ããããã«äŸé ŒããŸãããåèŠçŽ ã«ã¯ãvideo_idãtitleïŒtitleïŒãcategoryïŒã³ã³ãã³ããå±ããã«ããŽãªãã¹ããŒããæ¿æ²»ãçµæžãå€åé³æ¥œã¹ã¿ã€ã«ãããã©ãŒããŒããããã¯åãªãã±ããã¯å°åïŒãããã£/説æïŒèšäºã®ããã£ïŒãç»å/ãããªïŒãããªãŸãã¯ç»åãžã®URLïŒã ãããã£ãŠããããã®èŠçŽ ã®åºåçšã«HTMLã¬ã€ã¢ãŠããäœæããå¿ èŠããããŸãã ç§ã¯ãã¬ã€ã¢ãŠãã2ã€ã®ã«ããŽãªã®6ã€ã®èŠçŽ ã«åãããŠèšèšããããã«äŸé ŒããŸããã
ç§ã¯ããã€ãã®VMãèµ·åããŸããã1ã€ã¯Debian Jessieã§ããã1ã€ã¯Ubuntu 16ã§ããããã«MySQLãã€ã³ã¹ããŒã«ããããšããŸããããããŸããããŸããã§ããã æ¥ãã§ãããç²ããããŠããã®ããçç±ã¯ããããŸããã VMèªäœã§ãããæåã®è©Šè¡ã§äžæããŸããã§ããã ãã¹ãŠãæ©èœãããŸã§èª°ãæ°ã«ããããªãã£ãã®ã§ãå¥ã ã®ã»ãã¥ãªãã£ã°ã«ãŒãã§åVMãèµ·åããããšããŸããã ã¢ãºãŒã«ã¹ããããšç§ã¯ïŒå¶éãããïŒããšã«ãªã£ãŠããªããšè¿°ã¹ãã ãªããããæ³å®ãããŠããªãã®ããç§ã¯ãŸã ç解ããŠããŸããã§ããã ãã©ãã³ã¯ãAzureã®é åºãã«ã€ããŠå¿ æ»ã«äžå¹³ãèšã£ããšãã«ç§ã«èšã£ãã ãã®åŸãå°ãç°¡åã«ãªããŸããã ãã®åŸäœ¿çšãããã¹ãŠã®ãã·ã³ãšãµãŒãã¹ã¯ã1ã€ã®ã»ãã¥ãªãã£ã°ã«ãŒããšãµããããã«ã®ã¿äœæããŸãããããã¯å ã ã¢ã«ãŠã³ãã«ãããåœç¶åãå°åã«ãããŸããã
äžæ¹ãAzure VMã§æ°ã«å ¥ã£ãç¹ã¯ãAWSãšã¯ç°ãªããç§å¯ããŒã䜿çšããããåŸæ¥ã®ãã¢ããŠãŒã¶ãŒåã-ããã¹ã¯ãŒããã䜿çšããŠãã·ã³ã«SSHã¢ã¯ã»ã¹ã§ããããšã§ãã AWSã®ã¢ãããŒããããããããå®å šã§ããããšãèªèããŠããŸãã ããããç¶æ³ã«ãã£ãŠã¯ïŒãã®ãããªå ŽåïŒãã»ãã¥ãªãã£ã®åé¡ãäžæçã«ç¡é¢ä¿ã§ãã¢ã«ãŠã³ãèªäœãäžæçã§ãããããŒã ã¡ã³ããŒã«ååãªè³æ Œããªãããã¬ãŒãã³ã°ã®æéããŸã£ãããªãå Žåã¯ãåçŽãªãã¢ã亀æããããã«æãããŸãããŠãŒã¶ãŒåã-ããã¹ã¯ãŒãã¯ãããå¹ççã§ããªãå®å šã§ãã
ãã®ããããã¹ããšãµãŒããŒãžã®æ¥ç¶ãç°¡åã«ããããã«ã2ã€ã®VMã§MySQLãäžããŠãããŒã3306ãå€éšã«éãããšãè©Šã¿ãŸããã åæã«ã2ã€ãŸãã¯3ã€ã®MySQLããŒã¿ããŒã¹ãAzureãµãŒãã¹ãšããŠèª¿éãããµãŒãã¹ããã䜿ããããããã䟿å©ã«ãªãããšãæãã§ããŸããã
ãããŸã§ã®éãOlivier Fortinã¯Zvezdochkaã«ã¢ãããŒãããŸãããããã¯ããªããæãåºãããã«ãããã¯Webã¢ã¯ã»ã¹æ§ã®ã¹ãã·ã£ãªã¹ãã§ãã 圌ã¯ãç§ãã¡ã®HTMLã³ãŒããã©ã®ããã«æšæºã«éããŠããããå°ããŸããã ã¢ã¹ã¿ãªã¹ã¯ã¯åœŒã®è³ªåã«é®®ããã«åå¿ãã圌女ããã®æã«æã£ãŠãããã¹ãŠã瀺ããŸããã åœç¶ãªããããã®ã³ãŒãã¯WCAG 2.0ã§æå¹ãšèŠãªãããã«ã¯ã»ã©é ããã®ã§ããã ããããç§ãã¡ã«ãšã£ãŠããã®æšæºã¯å®å šã«æœè±¡çãªãã®ã§ãããæåªå äºé ã§ã¯ãããŸããã§ããã Olivierã¯ã泚æãæãã¹ããã®ãæ£ç¢ºã«ææ¡ããé害ã®ãã人ããããã®ãŠãŒãã£ãªãã£ã䜿çšããŠè£œåã䜿çšããããšã®äŸ¿å©ãã確èªããããã«äœ¿çšãããŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ããããšãæšå¥šããŸããã
ç· ãåããæ±ãããã22:00ãŸã§ã«ãç§ã¯äœããªããšããã«ããŸããã MySQLã¯ã©ãã§ããã©ã®ãããªæ¹æ³ã§ãç§ã«çããŸããã§ããã æ°åã¯ããŸãè¯ããªãã£ãã ãããŠãç§ã¯ææ¥ãç§ãæ¬åœã«çã®ããã®ãããã¯ã«ãªãããšãæããŠããŸããã ããããç§ã¯å°å¹Žã§ã¯ãªãç¥ã«æè¬ããŸãã éææ¥ã®å€æ¹ãé±æ«ã®çµãããå€ãã®æ å ±ããããã«ç©ºè ¹ãããããã¹ãŠãäžç·ã«ãªã£ãŠå€±æã®åå ã«ãªãå¯èœæ§ããããšå·éã«æšè«ããŸããã ãããŠããã·ã¢ã®ããšããã«ç¶ããŠãæã¯å€æ¹ããè³¢ãã家ã«åž°ã£ãŠååãªç¡ç ãåã䟡å€ããããææ¥ã¯æ°é®®ãªåãšæ°é®®ãªé ã§æ»ã£ãŠããŸãã
ãããã¡ãªã¿ã«ãå°ãå¿ããŠããŸã£ãããã§ãã20ïŒ30ãŸãã¯21:00ã«ãã§ãŒãã³ãç»å Žããããã§ãããã®ãšããŸã§ã«ãAzureãè©ŠããŠããã¿ã³ããªã³ã§ãã³ã¹ã«å®å
šã«æ²¡é ããŠããã®ã§ãæãåºããŸããã
ãããã£ãŠãæåã®ã¹ãããã¯ãããŒã¿ããŒã¹ãäžããŠãPHPãšPythonã®äž¡æ¹ããããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ã確èªããããšã§ããã
äžæ¹ãPlatoã¯äž¡æ¹ã®APIãåŠçããã©ã¡ãã®æ¹æ³ã§ç§»åãããã決å®ããŸããã
ã¢ã¹ã¿ãªã¹ã¯ãšããŒãã¥ãªãŒã¯åœŒãã®ããžãã¹ã«ã€ããŠè¡ããŸããã ã¡ãªã¿ã«ã圌ãã¯Githubã®å ±éãªããžããªãããã«åŒãäžããŠãæåã®æ°åããå ±åéçºã«å®éã«åŸäºããæŽæ°ãåçã«äº€æãããšããäºå®ã«åãã§é©ããã ã¡ãªã¿ã«ãæ°é±éçµã¡ãŸãããããŸã ã©ãã«ãã³ãŒããã¢ããããŒãããŠããŸããã ïŒæ£çŽãæ¥ããããïŒ
Zvezdochkaã«ãPHPãµãŒãã¹ããã®èŠçŽ ãå«ãç¹å®ã®JSONé åãåãåããšããäºå®ããé²ããããã«äŸé ŒããŸãããåèŠçŽ ã«ã¯ãvideo_idãtitleïŒtitleïŒãcategoryïŒã³ã³ãã³ããå±ããã«ããŽãªãã¹ããŒããæ¿æ²»ãçµæžãå€åé³æ¥œã¹ã¿ã€ã«ãããã©ãŒããŒããããã¯åãªãã±ããã¯å°åïŒãããã£/説æïŒèšäºã®ããã£ïŒãç»å/ãããªïŒãããªãŸãã¯ç»åãžã®URLïŒã ãããã£ãŠããããã®èŠçŽ ã®åºåçšã«HTMLã¬ã€ã¢ãŠããäœæããå¿ èŠããããŸãã ç§ã¯ãã¬ã€ã¢ãŠãã2ã€ã®ã«ããŽãªã®6ã€ã®èŠçŽ ã«åãããŠèšèšããããã«äŸé ŒããŸããã
æåã®ã¢ã«ãã¡ãå€èŠ³ãããã³ããšã³ã
ããããããã³ããšã³ãããŒã ã1æ¥ã®çµããã«åããŠããããšã§ãã
çæãããHTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/main.css" rel="stylesheet"> </head> <body> <div class="card-deck"> <div class="card" id="card"> <img class="card-img-top" src="images/placeholder-images.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Will need info from api</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Read more ...</a> </div> </div> <div class="card" id="card"> <img class="card-img-top" src="images/placeholder-images.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Will need info from api</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Read more ...</a> </div> </div> <div class="card" id="card"> <img class="card-img-top" src="images/placeholder-images.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Will need info from api</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Read more ...</a> </div> </div> </div> <div class="card-deck"> <div class="card" id="card"> <img class="card-img-top" src="images/placeholder-images.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Will need info from api</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Read more ...</a> </div> </div> <div class="card" id="card"> <img class="card-img-top" src="images/placeholder-images.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Will need info from api</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Read more ...</a> </div> </div> <div class="card" id="card"> <img class="card-img-top" src="images/placeholder-images.jpg" alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Will need info from api</h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> <a href="#" class="btn btn-primary">Read more ...</a> </div> </div> </div> </body> </html>
ç§ã¯ããã€ãã®VMãèµ·åããŸããã1ã€ã¯Debian Jessieã§ããã1ã€ã¯Ubuntu 16ã§ããããã«MySQLãã€ã³ã¹ããŒã«ããããšããŸããããããŸããããŸããã§ããã æ¥ãã§ãããç²ããããŠããã®ããçç±ã¯ããããŸããã VMèªäœã§ãããæåã®è©Šè¡ã§äžæããŸããã§ããã ãã¹ãŠãæ©èœãããŸã§èª°ãæ°ã«ããããªãã£ãã®ã§ãå¥ã ã®ã»ãã¥ãªãã£ã°ã«ãŒãã§åVMãèµ·åããããšããŸããã ã¢ãºãŒã«ã¹ããããšç§ã¯ïŒå¶éãããïŒããšã«ãªã£ãŠããªããšè¿°ã¹ãã ãªããããæ³å®ãããŠããªãã®ããç§ã¯ãŸã ç解ããŠããŸããã§ããã ãã©ãã³ã¯ãAzureã®é åºãã«ã€ããŠå¿ æ»ã«äžå¹³ãèšã£ããšãã«ç§ã«èšã£ãã ãã®åŸãå°ãç°¡åã«ãªããŸããã ãã®åŸäœ¿çšãããã¹ãŠã®ãã·ã³ãšãµãŒãã¹ã¯ã1ã€ã®ã»ãã¥ãªãã£ã°ã«ãŒããšãµããããã«ã®ã¿äœæããŸãããããã¯å ã ã¢ã«ãŠã³ãã«ãããåœç¶åãå°åã«ãããŸããã
äžæ¹ãAzure VMã§æ°ã«å ¥ã£ãç¹ã¯ãAWSãšã¯ç°ãªããç§å¯ããŒã䜿çšããããåŸæ¥ã®ãã¢ããŠãŒã¶ãŒåã-ããã¹ã¯ãŒããã䜿çšããŠãã·ã³ã«SSHã¢ã¯ã»ã¹ã§ããããšã§ãã AWSã®ã¢ãããŒããããããããå®å šã§ããããšãèªèããŠããŸãã ããããç¶æ³ã«ãã£ãŠã¯ïŒãã®ãããªå ŽåïŒãã»ãã¥ãªãã£ã®åé¡ãäžæçã«ç¡é¢ä¿ã§ãã¢ã«ãŠã³ãèªäœãäžæçã§ãããããŒã ã¡ã³ããŒã«ååãªè³æ Œããªãããã¬ãŒãã³ã°ã®æéããŸã£ãããªãå Žåã¯ãåçŽãªãã¢ã亀æããããã«æãããŸãããŠãŒã¶ãŒåã-ããã¹ã¯ãŒãã¯ãããå¹ççã§ããªãå®å šã§ãã
ãã®ããããã¹ããšãµãŒããŒãžã®æ¥ç¶ãç°¡åã«ããããã«ã2ã€ã®VMã§MySQLãäžããŠãããŒã3306ãå€éšã«éãããšãè©Šã¿ãŸããã åæã«ã2ã€ãŸãã¯3ã€ã®MySQLããŒã¿ããŒã¹ãAzureãµãŒãã¹ãšããŠèª¿éãããµãŒãã¹ããã䜿ããããããã䟿å©ã«ãªãããšãæãã§ããŸããã
ãããŸã§ã®éãOlivier Fortinã¯Zvezdochkaã«ã¢ãããŒãããŸãããããã¯ããªããæãåºãããã«ãããã¯Webã¢ã¯ã»ã¹æ§ã®ã¹ãã·ã£ãªã¹ãã§ãã 圌ã¯ãç§ãã¡ã®HTMLã³ãŒããã©ã®ããã«æšæºã«éããŠããããå°ããŸããã ã¢ã¹ã¿ãªã¹ã¯ã¯åœŒã®è³ªåã«é®®ããã«åå¿ãã圌女ããã®æã«æã£ãŠãããã¹ãŠã瀺ããŸããã åœç¶ãªããããã®ã³ãŒãã¯WCAG 2.0ã§æå¹ãšèŠãªãããã«ã¯ã»ã©é ããã®ã§ããã ããããç§ãã¡ã«ãšã£ãŠããã®æšæºã¯å®å šã«æœè±¡çãªãã®ã§ãããæåªå äºé ã§ã¯ãããŸããã§ããã Olivierã¯ã泚æãæãã¹ããã®ãæ£ç¢ºã«ææ¡ããé害ã®ãã人ããããã®ãŠãŒãã£ãªãã£ã䜿çšããŠè£œåã䜿çšããããšã®äŸ¿å©ãã確èªããããã«äœ¿çšãããŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ããããšãæšå¥šããŸããã
ç· ãåããæ±ãããã22:00ãŸã§ã«ãç§ã¯äœããªããšããã«ããŸããã MySQLã¯ã©ãã§ããã©ã®ãããªæ¹æ³ã§ãç§ã«çããŸããã§ããã æ°åã¯ããŸãè¯ããªãã£ãã ãããŠãç§ã¯ææ¥ãç§ãæ¬åœã«çã®ããã®ãããã¯ã«ãªãããšãæããŠããŸããã ããããç§ã¯å°å¹Žã§ã¯ãªãç¥ã«æè¬ããŸãã éææ¥ã®å€æ¹ãé±æ«ã®çµãããå€ãã®æ å ±ããããã«ç©ºè ¹ãããããã¹ãŠãäžç·ã«ãªã£ãŠå€±æã®åå ã«ãªãå¯èœæ§ããããšå·éã«æšè«ããŸããã ãããŠããã·ã¢ã®ããšããã«ç¶ããŠãæã¯å€æ¹ããè³¢ãã家ã«åž°ã£ãŠååãªç¡ç ãåã䟡å€ããããææ¥ã¯æ°é®®ãªåãšæ°é®®ãªé ã§æ»ã£ãŠããŸãã
ãããã¡ãªã¿ã«ãå°ãå¿ããŠããŸã£ãããã§ãã20ïŒ30ãŸãã¯21:00ã«ãã§ãŒãã³ãç»å Žããããã§ãããã®ãšããŸã§ã«ãAzureãè©ŠããŠ
äºæ¥ç®ã åææ¥ åµé æ§ã®ç²
åææ¥ã®ã¹ã±ãžã¥ãŒã«
3æ24æ¥åææ¥
9:00å°çãæé£ãããŒã ã§ã®ç¶ç¶çãªäœæ¥
12:00æŒé£ãããŒã ã§ã®ç¶ç¶äœæ¥
18:00å€é£ãããŒã ã§ã®ç¶ç¶äœæ¥
22:00倧äŒ2æ¥ç®ã®çµãã
ã芧ã®ãšãããã¹ã±ãžã¥ãŒã«ã«é¢ããŠã¯2æ¥ç®ãæãç°¡æœã§ããã
ä»äºãä»äºããããŠåã³ä»äºã
9:00å°çãæé£ãããŒã ã§ã®ç¶ç¶çãªäœæ¥
12:00æŒé£ãããŒã ã§ã®ç¶ç¶äœæ¥
18:00å€é£ãããŒã ã§ã®ç¶ç¶äœæ¥
22:00倧äŒ2æ¥ç®ã®çµãã
ã芧ã®ãšãããã¹ã±ãžã¥ãŒã«ã«é¢ããŠã¯2æ¥ç®ãæãç°¡æœã§ããã
ä»äºãä»äºããããŠåã³ä»äºã
åææ¥ã®æã«ã€ã©ã€ã©ããã«ãããããããç§ã¯ä»ã®èª°ãããé ãæ¥ãŸããã ãŸãããã¹ãŠã§ã¯ãªãã9ïŒ30ãŸã§ã«ããŒã ã®4çªç®ã§ãã äžçªäžã®æ¯åããã·ã¢ã®åŠæ ¡ã«é£ããŠè¡ãå¿ èŠããããŸããã
ãªãç§ãã¡ã¯åäŸããã·ã¢ã®åŠæ ¡ã«é£ããŠè¡ãã®ã§ãã
ç§ãã¡ã¯ãåäŸãç§ãã¡ãšãç§ãã¡ããé ãé¢ããŠäœãã§ãããåžžã«ç§ãã¡ã®è¿ãã«ããç¥ç¶æ¯ãåæ¯ãåç¶ãå§åŠ¹ãå
åŒãšã®æåçã€ãªãããå®å
šã«å€±ããªãããã«ãããã®ã§ãæ¯é±åææ¥ã«ãã·ã¢ã®åŠæ ¡ã«é£ããŠè¡ããŸãã ã¡ãªã¿ã«ããã·ã¢åœå€ã«ãããã·ã¢èªåŠæ ¡ã®äžã§æ倧ã§ãã
ããªãè¥ã幎霢ã§ã«ããã«æ¥ãåã©ãããããã§çãŸããåã©ããäœå¹Žãæ¯åœèªãå¿ããåŸãå€ãã®äŸãç¥ã£ãŠããŸãã å®éã®ãšãããã«ããã«æ¥ãå€ãã®èŠªã¯ãç§ã®æèŠã§ã¯ãçµ±åã«éäžããããŠããŸãã ç§ã¯ããããç解ã§ããŸãã å®éãå°åã³ãã¥ããã£ã«çµ±åããªãã®ã§ããã°ããªã移åããå¿ èŠããã£ãã®ã§ããïŒ ãããŠåäŸãã¡ã®ããã«ã圌ãã¯å¯èœãªéããã¹ãŠãå§ãã家æã®äžã§è±èªãŸãã¯ãã©ã³ã¹èªã話ããŸãã ãããŠãåäŸãã¡ã¯ããã«æ°ããèšèªãåŠã¶ããã«çµã¿èŸŒãŸããŠããŸãã åäŸãå°ãããã°å°ããã»ã©ã圌ã¯ããéãåãæ¿ãããŸãã ãããŠã幌çšåãšåŠæ ¡ãä»äºãããŸãã
ããã«ãåææ¥ãŸãã¯æ¥ææ¥ã®è¿œå ã®ã¯ã©ã¹ã«ã¯ãè¿œå ã®åŽåããéãæéã泚æãå¿ èŠã§ãã 誰ããååãªãéãæã£ãŠããªãã誰ããæéãæã£ãŠããã誰ãã圌ã«ãããå¿ èŠãªçç±ãåäŸã«äŒããŠèšŒæããã®ã«ããããããŠããã ãããŠåäŸãã¡ã¯ããã§è²ã¡ãããããèªç±ãæããããšåŒã³ãŸãããã ãããŠãæ¯é±åææ¥ã®æãåäŸãé£ããŠå€æ¹20ããé¢ããåäŸãé£ãå»ãã®ã¯ãä¿¡ããããªãããšã§ããããã¯ããŸããªé±æ«ã®å€ãã®èšç»ãæ©ãŸããç Žãè¿œå ã®è² æ ã§ãã
ãã·ã¢ã®èšèªãæåŠãå°çã®ç 究ã«å ããŠããã®åŠæ ¡ïŒããã³ãã®å°åã®ä»ã®ããã€ãã®ãã·ã¢ã®åŠæ ¡ïŒã¯æ°åŠãšç©çåŠã®åªããè¿œå ã®åºç€ãæäŸãããšèããããŠãããçåŸã¯å ¬ç«åŠæ ¡ã®åçæè²ã®ããã®å ã®ã«ããã®ã«ãªãã¥ã©ã ãããããç¿åŸããããšãã§ããŸãã
ã¡ãªã¿ã«ãã¢ã¹ã¿ãªã¹ã¯ã倧åŠã«å ¥åŠãããŸã§ãã®åŠæ ¡ã«éã£ãŠããŸããã ãããŠã圌女ã¯ãããã圌女ã®ã¯ã©ã¹ã¡ãŒãã®å€ããšéåžžã«å奜çãªé¢ä¿ãä¿ã¡ãŸããã ããŸãé »ç¹ã§ã¯ãããŸãããã圌ãã¯ãŸã éçšã®ãããã§å®æçã«åå ããŠãããäžç·ã«æéãéãããŠããŸãã
ããªãè¥ã幎霢ã§ã«ããã«æ¥ãåã©ãããããã§çãŸããåã©ããäœå¹Žãæ¯åœèªãå¿ããåŸãå€ãã®äŸãç¥ã£ãŠããŸãã å®éã®ãšãããã«ããã«æ¥ãå€ãã®èŠªã¯ãç§ã®æèŠã§ã¯ãçµ±åã«éäžããããŠããŸãã ç§ã¯ããããç解ã§ããŸãã å®éãå°åã³ãã¥ããã£ã«çµ±åããªãã®ã§ããã°ããªã移åããå¿ èŠããã£ãã®ã§ããïŒ ãããŠåäŸãã¡ã®ããã«ã圌ãã¯å¯èœãªéããã¹ãŠãå§ãã家æã®äžã§è±èªãŸãã¯ãã©ã³ã¹èªã話ããŸãã ãããŠãåäŸãã¡ã¯ããã«æ°ããèšèªãåŠã¶ããã«çµã¿èŸŒãŸããŠããŸãã åäŸãå°ãããã°å°ããã»ã©ã圌ã¯ããéãåãæ¿ãããŸãã ãããŠã幌çšåãšåŠæ ¡ãä»äºãããŸãã
ããã«ãåææ¥ãŸãã¯æ¥ææ¥ã®è¿œå ã®ã¯ã©ã¹ã«ã¯ãè¿œå ã®åŽåããéãæéã泚æãå¿ èŠã§ãã 誰ããååãªãéãæã£ãŠããªãã誰ããæéãæã£ãŠããã誰ãã圌ã«ãããå¿ èŠãªçç±ãåäŸã«äŒããŠèšŒæããã®ã«ããããããŠããã ãããŠåäŸãã¡ã¯ããã§è²ã¡ãããããèªç±ãæããããšåŒã³ãŸãããã ãããŠãæ¯é±åææ¥ã®æãåäŸãé£ããŠå€æ¹20ããé¢ããåäŸãé£ãå»ãã®ã¯ãä¿¡ããããªãããšã§ããããã¯ããŸããªé±æ«ã®å€ãã®èšç»ãæ©ãŸããç Žãè¿œå ã®è² æ ã§ãã
ãã·ã¢ã®èšèªãæåŠãå°çã®ç 究ã«å ããŠããã®åŠæ ¡ïŒããã³ãã®å°åã®ä»ã®ããã€ãã®ãã·ã¢ã®åŠæ ¡ïŒã¯æ°åŠãšç©çåŠã®åªããè¿œå ã®åºç€ãæäŸãããšèããããŠãããçåŸã¯å ¬ç«åŠæ ¡ã®åçæè²ã®ããã®å ã®ã«ããã®ã«ãªãã¥ã©ã ãããããç¿åŸããããšãã§ããŸãã
ã¡ãªã¿ã«ãã¢ã¹ã¿ãªã¹ã¯ã倧åŠã«å ¥åŠãããŸã§ãã®åŠæ ¡ã«éã£ãŠããŸããã ãããŠã圌女ã¯ãããã圌女ã®ã¯ã©ã¹ã¡ãŒãã®å€ããšéåžžã«å奜çãªé¢ä¿ãä¿ã¡ãŸããã ããŸãé »ç¹ã§ã¯ãããŸãããã圌ãã¯ãŸã éçšã®ãããã§å®æçã«åå ããŠãããäžç·ã«æéãéãããŠããŸãã
ç§ã¯ååã«æšæ¶ããè·å Žã«ä»äºã®æºåãããŸããã ãããããºãŽã§ãºããã«ã¯ç§ãå³åžã®ãã¥ããã§ã«é£ããŠè¡ããŸãããããã§ã¯æé£ã«ã³ãŒããŒããžã¥ãŒã¹ãã«ããã±ãŒããé£ã¹ãããšãã§ããŸããã
éäžã§ã圌女ã¯ãã®æ¥ã®èšç»ãå ±æããŸããã 圌女ã¯ãããŒãã¥ãªãŒãšã®ä»äºã¯æ¬æ Œçã§ããã質åãåé¡ãããã°å¿é ããå¿ èŠã¯ãããŸããã ããŒãã«ã«æ»ããŸããã
ãã©ãã³ã¯ã圌ãåãã®æ¹åã決å®ããä»äºã«å®å šã«æ²¡é ããããšãç§ã«ç¥ãããã 圌ã¯ãŸããMySQLãæ©èœããŠãããšè¿°ã¹ãŸããã ã³ã£ããããŸããããäœãã©ã®ããã«æ©èœããã®ãã詳ãã調ã¹ãŸããã§ããã ç§ãæºåããªããã°ãªããªãã£ããã©ãã³ãç²åŸããããšã¯å°ãæ¥ããããã£ãã§ãã
ãŸããã¡ã³ã¿ãŒã®ãããªãã¯ã»ã¬ãã¹ã¯ãåå€ãšåææ¥ã«2åæ¥ãŠããã¹ãŠãæ£åžžã«åããŠããŠã圌ã®å©ããå¿ èŠãªãããšã確èªããããšã«ãèšåããå¿ èŠããããŸãã ããã¯æ¥œãããã®ã§ãããèªä¿¡ãæ·±ããŸããã
ãããŸã§ã®éããºããºãã«ãšããŒãã¥ãªãŒã«ããã¹ãŠã®éšåãçžäºã«æ¥ç¶ããå¿ èŠãããå Žåã«ãããããã³ã°ãã€ã³ãããã©ãã ãé¢ããŠããããç解ããããã«ã圌ããã©ãã«åããŠããããèŠããŠããããŸããã ã¢ã¹ã¿ãªã¹ã¯ã¯ã圌ããChromeæ¡åŒµæ©èœã«åãçµãã§ãããæãç°¡åãªããŒãžã§ã³ã®ãã¥ãŒããªã¢ã«ã§ç°¡åã«èµ·åã§ãããšè¿°ã¹ããã®ãã©ãŠã¶ãŒæ¡åŒµæ©èœãRadio CanadaããŒãžãšå¯Ÿè©±ããæ¹æ³ãç解ããŸããã
Mercuryã¯ã次ã®ããŒãæŒããšãªã¯ãšã¹ããããã¯ãšã³ãã«éä¿¡ãããããã«ãåçå ¥åãã£ãŒã«ãã§äœæ¥ããŠãããšèšããŸããã ãããã£ãŠãä»ã®ãšãããæ°Žæã¯ç²ç®çã«é²ãŸãªãããã«ç§ã®ããã¯ãšã³ããµãŒãã¹ãå¿ èŠãšããããšãããããŸããã
圌ããæ£ããæ¹åã§ããããŠããå°ãæ確ãªæ¹åã§åãç¶ããããããã«ãç§ã¯ãã©ãã³ãšè©±ããã«è¡ããŸããã
ãã©ãã³ã¯ç§ã«ãããªã倧ããéèŠãªæ å ±ãæããŠãããŸããã
ãã°ã¬ããã¯ã©ããžè¡ãã®ïŒ
ã©ãžãªã«ããããã¯ã Lineup public news APIã䜿çšããŸã ã
AIã¯T ext AnalyticsãµãŒãã¹ã䜿çšããŸã ã ãããã£ãŠãåæåŸãã©ãžãªã«ããã®ã³ã³ãã³ãã«å ããŠã2ã€ã®è¿œå ã®ããŒã¿ããŒã¹ãã©ã¡ãŒã¿ãŒ/ãã£ãŒã«ãããããŸãïŒSENTIMENTïŒããã¹ãã®ææ è©äŸ¡ïŒ0ãã1ã0ã¯è² ã®ããã¹ãã1ã¯æ£ïŒãKEY PHRASESïŒããŒã¯ãŒããšãã¬ãŒãºïŒã ãã®æ å ±ãèæ ®ã«å ¥ããŠããããžã§ã¯ãã§äœãã©ã®ããã«å€åãããããã®è¿œå ãã£ãŒã«ããã©ã®ããã«äœ¿çšã§ããããå€åºå ã§åæããããšããŸããã
ç§ã®è³ªåã«ããã©ãã³ã¯ã©ã®ããã«ããŠããŒã¿ããŒã¹ãäžããããšãã§ããã®ãããšåœŒã¯èšããŸããã æšæ¥ãå®éšäžã«ãç§ã¯å®æçã«VMã®ååãšå®è¡ããããšãããµãŒãã¹ããSkypeã®Platoãžã®ãŠãŒã¶ãŒè³æ Œæ å ±ãšãã¹ã¯ãŒããšãšãã«ç Žæ£ããŸããã 䜿çšãããµãŒãã¹ã決å®ããéã«ãé·ãéæ€çŽ¢ããªãããã«ããæºåãã§ããŠããããšèšãããã«ããããŸããã ãã©ãã³ã¯ããã®äžéšãšããŠããã®ãã¡ã®1ã€ããã¹ããããµãŒãã¹ã¯åœŒã«å®å šã«çããŸããã ããŒã¿ããŒã¹ã¯çãããã®ã®ããã«å¿çããŸããã Platoã§ã圌ãåç §ããŠãããµãŒãã¹ãŸãã¯VMãããã³ãŠãŒãã£ãªãã£ãæå®ããŸããã ããŒã¿ããŒã¹ã®äžçã¯ãã©ãã³ã«ãšã£ãŠã»ãšãã©æ°ãããã®ã§ããããã圌ã¯ã€ã³ã¿ãŒãããã§èŠã€ããããã€ãã®ãã¥ãŒããªã¢ã«ã«åŸã£ãŠãPythonããæå®ããããµãŒãã¹ãããã¯ããã ãã§ããã
äžæ¹ã§ãããã¯ç§ãåã°ããŸããã ãŸã ãµãŒãã¹ã解é€ããŠããããšãããããŸããã äžæ¹ãæšæ¥ãæ°ã«å ¥ãã®PHPStormããæ¥ç¶ã§ããªãã£ãçç±ã¯æããã§ã¯ãããŸããã§ããã 説æã¯ç°¡åã§ããã©ãã³ã¯ããã°å éšãããµãŒãã¹ã«æ¥ç¶ãããŠããŸããããAzureãããã¯ãŒã¯ã®å éšã§ãPythonã䜿çšããŠæ¢ã«å®è¡ãããŠããVMã®åãã»ãã¥ãªãã£ã°ã«ãŒãå ã«ãããŸããã ãããŠæšå€ãç§ã¯ãã¹ãŠã®äººã®ãããªãã¯ã¢ã¯ã»ã¹ãã»ããã¢ããããŠãã¹ãããããšããŸããã ã€ãŸãããã®ç®çã¯ããããªãã¯ã¢ã¯ã»ã¹ã«é¢ããŠã¯ãç§ã¯ãŸã å°éããŠããŸããããããŒã¿ããŒã¹ã¯ä»äºã«å©çšå¯èœã§ãããããã¯éèŠã§ãã ãã®ãããç§ãã¡ã«ãšã£ãŠæå¹ãªãªãã·ã§ã³ã¯ãAzureã®ãµãŒãã¹ãšããŠã®MySQLã§ããã æ®ãã®VMã¯åæ¥ã«çºçããŸããããæéããªãããã«ãããã«ãœã³ã®æåŸãŸã§äœ¿çšãããæ¶ç«ããŸããã§ããã
AIã¯T ext AnalyticsãµãŒãã¹ã䜿çšããŸã ã ãããã£ãŠãåæåŸãã©ãžãªã«ããã®ã³ã³ãã³ãã«å ããŠã2ã€ã®è¿œå ã®ããŒã¿ããŒã¹ãã©ã¡ãŒã¿ãŒ/ãã£ãŒã«ãããããŸãïŒSENTIMENTïŒããã¹ãã®ææ è©äŸ¡ïŒ0ãã1ã0ã¯è² ã®ããã¹ãã1ã¯æ£ïŒãKEY PHRASESïŒããŒã¯ãŒããšãã¬ãŒãºïŒã ãã®æ å ±ãèæ ®ã«å ¥ããŠããããžã§ã¯ãã§äœãã©ã®ããã«å€åãããããã®è¿œå ãã£ãŒã«ããã©ã®ããã«äœ¿çšã§ããããå€åºå ã§åæããããšããŸããã
ç§ã®è³ªåã«ããã©ãã³ã¯ã©ã®ããã«ããŠããŒã¿ããŒã¹ãäžããããšãã§ããã®ãããšåœŒã¯èšããŸããã æšæ¥ãå®éšäžã«ãç§ã¯å®æçã«VMã®ååãšå®è¡ããããšãããµãŒãã¹ããSkypeã®Platoãžã®ãŠãŒã¶ãŒè³æ Œæ å ±ãšãã¹ã¯ãŒããšãšãã«ç Žæ£ããŸããã 䜿çšãããµãŒãã¹ã決å®ããéã«ãé·ãéæ€çŽ¢ããªãããã«ããæºåãã§ããŠããããšèšãããã«ããããŸããã ãã©ãã³ã¯ããã®äžéšãšããŠããã®ãã¡ã®1ã€ããã¹ããããµãŒãã¹ã¯åœŒã«å®å šã«çããŸããã ããŒã¿ããŒã¹ã¯çãããã®ã®ããã«å¿çããŸããã Platoã§ã圌ãåç §ããŠãããµãŒãã¹ãŸãã¯VMãããã³ãŠãŒãã£ãªãã£ãæå®ããŸããã ããŒã¿ããŒã¹ã®äžçã¯ãã©ãã³ã«ãšã£ãŠã»ãšãã©æ°ãããã®ã§ããããã圌ã¯ã€ã³ã¿ãŒãããã§èŠã€ããããã€ãã®ãã¥ãŒããªã¢ã«ã«åŸã£ãŠãPythonããæå®ããããµãŒãã¹ãããã¯ããã ãã§ããã
äžæ¹ã§ãããã¯ç§ãåã°ããŸããã ãŸã ãµãŒãã¹ã解é€ããŠããããšãããããŸããã äžæ¹ãæšæ¥ãæ°ã«å ¥ãã®PHPStormããæ¥ç¶ã§ããªãã£ãçç±ã¯æããã§ã¯ãããŸããã§ããã 説æã¯ç°¡åã§ããã©ãã³ã¯ããã°å éšãããµãŒãã¹ã«æ¥ç¶ãããŠããŸããããAzureãããã¯ãŒã¯ã®å éšã§ãPythonã䜿çšããŠæ¢ã«å®è¡ãããŠããVMã®åãã»ãã¥ãªãã£ã°ã«ãŒãå ã«ãããŸããã ãããŠæšå€ãç§ã¯ãã¹ãŠã®äººã®ãããªãã¯ã¢ã¯ã»ã¹ãã»ããã¢ããããŠãã¹ãããããšããŸããã ã€ãŸãããã®ç®çã¯ããããªãã¯ã¢ã¯ã»ã¹ã«é¢ããŠã¯ãç§ã¯ãŸã å°éããŠããŸããããããŒã¿ããŒã¹ã¯ä»äºã«å©çšå¯èœã§ãããããã¯éèŠã§ãã ãã®ãããç§ãã¡ã«ãšã£ãŠæå¹ãªãªãã·ã§ã³ã¯ãAzureã®ãµãŒãã¹ãšããŠã®MySQLã§ããã æ®ãã®VMã¯åæ¥ã«çºçããŸããããæéããªãããã«ãããã«ãœã³ã®æåŸãŸã§äœ¿çšãããæ¶ç«ããŸããã§ããã
ã«ãã«ãé³ãããŠãŠãç§ã®ããŒãããŒã¯ãã¹ãŠåããŠãããæèšã¯ãã§ã«å°Ÿãä»ãã10ã§ãããPHPãåããéçºãµãŒããŒããæã£ãŠããŸããã
ãµãŒããŒãPHPã§ã©ã®ããã«äžæããã
ä»åã¯äœããã®çç±ã§ããã¹ãŠãæåã«æ£ãããªã£ãã
æ°ããDebian Jessie VMãäžããã æ°åããããŸãïŒAWS以å€ã®å Žåãšã»ãŒåãã§ãïŒã SSHçµç±ã§æ§åã®Puttyã«æ£åžžã«æ¥ç¶ã§ããŸããã ç«ã¡äžãã£ãããã«PHP 7.2ãã€ã³ã¹ããŒã«ããŸãã Composerãã€ã³ã¹ããŒã«ããŸããé£è¡ã¯æ£åžžã§ãã
ãã€ã³ã¹ããŒã«ããŸããããšã©ãŒã¯ãªãããã§ãã å ¬åŒã®ã€ã³ã¹ããŒã«ã¬ã€ãã«åŸã£ãŠãLaravel
ãããžã§ã¯ããäœæããŸãã ãã¹ãŠãé 調ã«é²ã¿ãŸããã ã»ãã®2ã3ã®æé ïŒNginxãã€ã³ã¹ããŒã«ããLaravelãããžã§ã¯ãã®ãããã©ã«ããŒå ã®
ãã©ã«ããŒãæãããã«ããã©ã«ãã®æ§æãå€æŽããphpãã¡ã€ã«ã®php-fpmãåŒã³åºããŸãã Azureã§ã¯ãPHPã䜿çšããŠVMã®ããŒã8080ãžã®ã¢ã¯ã»ã¹ãéããŸãã
ä¿èšŒããããã«ãããã©ã«ãã®welocome.blade.phpã調æŽããŠãããŒãžãšãããžã§ã¯ããæ£ç¢ºã«è¡šç€ºãããããã«ããŸããã
æ°ããDebian Jessie VMãäžããã æ°åããããŸãïŒAWS以å€ã®å Žåãšã»ãŒåãã§ãïŒã SSHçµç±ã§æ§åã®Puttyã«æ£åžžã«æ¥ç¶ã§ããŸããã ç«ã¡äžãã£ãããã«PHP 7.2ãã€ã³ã¹ããŒã«ããŸãã Composerãã€ã³ã¹ããŒã«ããŸããé£è¡ã¯æ£åžžã§ãã
composer global require "laravel/installer"
ãã€ã³ã¹ããŒã«ããŸããããšã©ãŒã¯ãªãããã§ãã å ¬åŒã®ã€ã³ã¹ããŒã«ã¬ã€ãã«åŸã£ãŠãLaravel
laravel new api
ãããžã§ã¯ããäœæããŸãã ãã¹ãŠãé 調ã«é²ã¿ãŸããã ã»ãã®2ã3ã®æé ïŒNginxãã€ã³ã¹ããŒã«ããLaravelãããžã§ã¯ãã®ãããã©ã«ããŒå ã®
/public
ãã©ã«ããŒãæãããã«ããã©ã«ãã®æ§æãå€æŽããphpãã¡ã€ã«ã®php-fpmãåŒã³åºããŸãã Azureã§ã¯ãPHPã䜿çšããŠVMã®ããŒã8080ãžã®ã¢ã¯ã»ã¹ãéããŸãã
ä¿èšŒããããã«ãããã©ã«ãã®welocome.blade.phpã調æŽããŠãããŒãžãšãããžã§ã¯ããæ£ç¢ºã«è¡šç€ºãããããã«ããŸããã
<div class="title mb-md"> Hackathon 2018 Radio Canada </div>
ãã©ãŠã¶ã§ä»®æ³ãã·ã³ã®ãããªãã¯IPãšåºæ¥äžããã確èªããŸãïŒ
æåã®ç®æšïŒããã³ããšã³ãã®äººã®äœæ¥ããããã¯ããªãããšã éçã§ãã£ãŠããåçŽãªã³ã³ãããŒã©ãŒãäœæãããããã«ç䌌åçãäžããå¿ èŠããããŸãã ããããå°ãªããšã圌ãã¯ãã§ã«çžäºäœçšã解決ããããšãã§ããŸãã
PHPã®æåã®å埩
ã§æ°ããã«ãŒããäœæãã
æ°ãã
ã¯ããããŸã§ã®ãšããå¯äžã®ã€ã³ããã¯ã¹ã¡ãœãã/ã¢ã¯ã·ã§ã³
ãã©ãŠã¶ããã§ãã¯ã€ã³ããŸãã ããŸãããããã§ãã
routes/web.php
ã§æ°ããã«ãŒããäœæãã
Route::get('/search', 'SearchController@index');
æ°ãã
app/Http/Controllers/SearchController.php
ã¯ããããŸã§ã®ãšããå¯äžã®ã€ã³ããã¯ã¹ã¡ãœãã/ã¢ã¯ã·ã§ã³
public function index() { return response()->json([ ['video_id'=>'1', 'title'=>'title 1'], ['video_id'=>'2', 'title'=>'title 2'], ['video_id'=>'3', 'title'=>'title 3'], ]);
ãã©ãŠã¶ããã§ãã¯ã€ã³ããŸãã ããŸãããããã§ãã
[{"video_id":"1","title":"title 1"},{"video_id":"2","title":"title 2"},{"video_id":"3","title":"title 3"}]
ãã§ã«ããçš®ã®é²æ©ã§ãããããŒã ã®ä»ã®ã¡ã³ããŒã®ããã«ãç§ã¯ä»äºã«åå ãããšæããŸããã ç§ã匱ããªã³ã¯ã§ãããšããäžå®ã¯åŸéããŸããã
ãã®æãŸã§ã«ã¢ã¹ã¿ãªã¹ã¯ã¯ã³ãŒããWebã¢ã¯ã»ã¹å¯èœæ§ã«é©åããå§ããŸããã ãŸãæåã«ã圌女ã¯å€æŽããã¹ãã§ããããã«NVDAãæšå€ã€ã³ã¹ããŒã«ããŸããã ãã®æ¥ã圌女ã¯æ¬åœã«å°é家ã§ãªããŠãWebã¢ã¯ã»ã·ããªãã£ã®å°é家ã«ãªããŸãããç§ãšåãããã«ã圌女ã¯ããµã€ãã»ãã³ãã£ã¯ã¹ããšããçšèªã®æå³ãç解ãããšæããŸãã ã»ãã³ãã£ã¯ã¹ãåã«çè«çãªãã®ã«ãªãã ãã§ãªããéåžžã«éèŠã§å®çšçãªäŸ¡å€ãæã€å Žåã
æ¯èŒã®ããã«ãæçµããŒãžã§ã³ã§æ瀺ãããæçµHTMLã以äžã«ç€ºããŸãã
HTMLæçµããŒãžã§ã³
<body> <div id="searchDisplay"> <section><h3>Région - Saguenay - Lac-Saint-Jean - Sports</h3> <section id="deckRégion - Saguenay - Lac-Saint-Jean - Sports" title="Categorie : Région - Saguenay - Lac-Saint-Jean - Sports"> <article id="card1090009"><img class="card-image-top" src="https://images.radio-canada.ca/v1/ici-info/sports/4x3/charles-hamelin-champion-monde-patinage-vitesse-courte-piste.jpg" alt="Charles Hamelin champion du monde, Marianne St-Gelais fait ses adieux"> <h5 class="card-title">Charles Hamelin champion du monde, Marianne St-Gelais fait ses adieux</h5> <p class="card-text">Le Québécois Charles Hamelin a remporté le titre cumulatif pour une premiÚre fois dans sa carriÚre, dimanche, aux Championnats du monde de patinage de vitesse sur courte piste à Montréal.</p> <div id="tags"><a title="Lien pour twiter" target="_blank" href="https://twitter.com/hashtag/TitreCumulatif">#TitreCumulatif</a><a title="Lien pour twiter" target="_blank" href="https://twitter.com/hashtag/QuébécoisCharlesHamelin">#QuébécoisCharlesHamelin</a><a title="Lien pour twiter" target="_blank" href="https://twitter.com/hashtag/PatinageDeVitesse">#PatinageDeVitesse</a><a title="Lien pour twiter" target="_blank" href="https://twitter.com/hashtag/PremiÚreFois">#PremiÚreFois</a> </div> <h6 id="emotionBar"><h5 style="color: #ff0000">â</h5><h5 style="color: #ff4000">â</h5><h5 style="color: #ff8000">â</h5><h5 style="color: #ffbf00">â</h5><h5 style="color: #ffff00">â</h5> <h5 style="color: #bfff00">â</h5><h5 style="color: #80ff00">â</h5><h5 style="color: #d1e1f9; "> â</h5><h5 style="color: #d1e1f9; ">â</h5><h5 style="color: #d1e1f9; ">â</h5></h6> <a href="http://ici.radio-canada.ca/sports/1090009/championnat-monde-patinage-vitesse-courte-piste-carriere-individuelle-marianne-st-gelais-kim-boutin-charles-hamelin-samuel-girard" class="btn btn-primary" id="readmore" target="_blank" title="Lire plus par rapport a l'article">Lire plus...</a></article> <article id="card1089683"> <!-- --> </article> <article id="card64200"> <!-- --> </article> <article id="card1088454"> <!-- --> </article> </section> </section> <section><h3>Région - Estrie - Sports</h3> <section id="deckRégion - Estrie - Sports" title="Categorie : Région - Estrie - Sports"> <!-- --> </section> </section> <section><h3>Région - Bas-Saint-Laurent - à ne pas manquer</h3> <section id="deckRégion - Bas-Saint-Laurent - à ne pas manquer" title="Categorie : Région - Bas-Saint-Laurent - à ne pas manquer"> <!-- --> </section> </section> </div> </body> </html>
å ã®ããŒãžã§ã³ãšæ¯èŒãããšãããã€ãã®ã¿ã°ã衚瀺ãããŸã
<div>
ããæå³çã«ç解ãããããã®ã«çœ®ãæããããŸãã <section> <article>
ããã³ã¿ã°çš <img> <a>
alt
ããã³
title
å±æ§ãããããè¿œå ãããŸãã ãã®ããã«ãœã³ã®åã«ãç§ã¯ãã®ãããªå€æŽã®å€§éšåãSEOã«èµ·å ãããšèããã¢ããªã±ãŒã·ã§ã³ã®ç®çãå€å°ãããŸãã«ããŠããããéå°ãšèããŸããã ä»ãç§ã¯ãã®ãããªæ £è¡ã®å®éçãªç®çã¯é·ãéãHTMLã³ãŒãã®èªèã«æ®ã£ãŠãããšæããŸãïŒãããã®å€æŽã¯ã NVDAã®ãããªããã°ã©ã ãæ¬åœã«ãããããããããšãã°çŽæ¥äººéã®èšèªã§ç»é¢ãŸãã¯WebããŒãžã ãèªããã®ã«åœ¹ç«ã¡ãŸãã
ç§ã®èšç»ã®æ¬¡ã®ã¹ãããã¯ãZvezdochkaã®ãµãŒãã¹ãäœæããããšã§ããããã®ãµãŒãã¹ã¯ãéçããŒã¿ãéçããŒã¿ã«çœ®ãæãããã®åŸãããŒã¿ããŒã¹ã®åçããŒã¿ã«çœ®ãæããŸãã Laravel configã«å¥ã®æ¹æ³ãè¿œå ããŸãã
Route::get('/feed', 'SearchController@feed');
ããã«å¿ããŠãSearchControllerã®å¥ã®ã¡ãœãã
public function feed() { return response()->json([ ['video_id'=>'1', 'title'=>'title 1', 'description'=>'Description 1'], ['video_id'=>'2', 'title'=>'title 2', 'description'=>'Description 2'], ['video_id'=>'3', 'title'=>'title 3', 'description'=>'Description 3'] ]); }
æåã®æ¥çããã³ããšã³ã-ããã¯ãšã³ã
ãã§ã«12æ¥ã®å§ãŸãã§ããã Zvezdochkaã«ãããŒã¿ãã³ãã¬ãŒããèªåã®ãã³ãã¬ãŒããžã®åŒã³åºãã«çœ®ãæããããã«äŸé ŒããŸããã çŸæç¹ã§ã¯ã圌女ã¯äž»ã«HTMLã®å€æŽãšCSSã®æ¹è¯ã«å¿ããã£ãã ãªãªããšãšè©±ããåŸã圌女ã¯bootstrap.cssã®äœ¿çšãæåŠããããšã«æ³šæãããã ç§ã¯ãã®æ±ºå®ã«å°ãç°è°ãå±ããŸããããæéããªãããã«è°è«ãæãäžããããšãã§ããŸããã§ããã ç§ã¯èª°ãã圌ãç解ããæ¹æ³ã§åœŒã®äœåãäœããšæ±ºããŸããã ãã®ãããã¢ã¹ã¿ãªã¹ã¯ã¯ãç§ã®ãµãŒãã¹ãžã®åŒã³åºããæ©èœããŠããªãããšãæããŠãããŸããïŒ ç§ã¯ãã©ãŠã¶ã§æ°åããã«ãã§ãã¯ããŸãã-ç§ã®ãµãŒãã¹ã¯jsonãããŸããããŸããã
æåã¯JSã³ãŒãã«ãªããŸããããå®éã«ã¯ã¢ã¹ã¿ãªã¹ã¯ãä¿¡çšããŠããŸããã§ããã ããã«ã圌女ã¯JSã®100ïŒ ã®ç¥èããããšäž»åŒµããŸããã§ããã
ãã®ã³ãŒãã®ãããªãã®ãèŠã€ããã®ã¯å°ããã£ããããŸããã
ç§ã¯JSã§ã¯ç¹å¥ã§ã¯ãããŸããã ããããç§ãAJAXã«ã€ããŠè©±ããŠããå Žåãç§ã䜿ã£ãŠãããã®ã¯ãããã¯å¿ é ã®jQueryãŸãã¯ãã®é¡äŒŒç©ã§ãã ãªããã®ãããªæèŠãåºããã®ãã¯èŠããŠããŸããããAJAXåŒã³åºãã«çã®JSã䜿çšããããšã«å éšçã«äœããã®çç±ã§å察ããŠããŸãã ãããããç¥èãéãããŠãããããããã©ã«ãã§ãå¿ãããç¥ããªãããšãããã¢ã¯ã·ã§ã³ãå®è¡ããã©ã€ãã©ãªã«äŸåããŠããŸãïŒæ¥ç¶ãéã/éãããéæšæºã€ãã³ããåŠçãããäœããã®ãã³ãã©ãåŒã³åºããããŒã¿ããã§ãã¯/æ€èšŒããåºè·åããã³/ãŸãã¯åé æã«ã
ç§ã«ãšã£ãŠããã©ãŒã ã®ã³ãŒãã¯ãã銎æã¿ã®ãããã®ã§ãïŒ
ããããäœããã¹ãããZvezdochkaã¯ã圌女ã®ã³ãŒããã以åã¯å€§åŠã§è¡ã£ãããšããªããåäœããã¯ãã®å€ãã®å®éšå®€ã®äœæ¥ããããžã§ã¯ãã§æ€èšŒããããšäž»åŒµããŸããã ç§ã¯åœŒå¥³ãä¿¡ããªããã°ãªããŸããã§ããã ããã«ãå°ã調æ»ããçµæã次ã®ããšãããããŸããã
è«ççã§ã¯ãªãããã«æããŸããã ã€ãŸããajaxèŠæ±ã¯ããµãŒãã¹ããã¹ããŒã¿ã¹200ã®å¿çãåä¿¡ããŸããããå¿çæ¬æãåä¿¡ãããJSã³ã³ãœãŒã«ã«ãšã©ãŒãè¿ããŸããïŒ 'Access-Control-Allow-Origin'ããããŒãèŠæ±ããããªãœãŒã¹ã«ååšããŸããã çŽ5åéãäœãèµ·ããŠããã®ããç解ããããšããŠæãã§ããã ãããããããããããããããã©ã«ãã®Laravelã»ãã¥ãªãã£èšå®ããŸãã¯ãChromeèšå®èªäœã§ãããããã©ã«ãã§ã¯ãã¡ã€ã³/ãã¹ãã«å¯ŸããŠã®ã¿AJAXãªã¯ãšã¹ããèš±å¯ããããšãããããŸããã
å°ãã°ãŒã°ã«ã§èª¿ã¹ãŠãããŒã¿ãšå ±ã«ããã㌠'Access-Control-Allow-Origin'ãè¿ãã ãã§åé¡ã解決ã§ãããšå€æããŸããã ç§ã®æ¹æ³ãå°ãè©Šãããšããã次ã®ããã«ãªããŸããã
ãã®åŸãJSã¯åªãããããŸããã ããã³ããšã³ãããã¯ãšã³ãé垯ã圢æãããŠããããã«èŠããã
æåã¯JSã³ãŒãã«ãªããŸããããå®éã«ã¯ã¢ã¹ã¿ãªã¹ã¯ãä¿¡çšããŠããŸããã§ããã ããã«ã圌女ã¯JSã®100ïŒ ã®ç¥èããããšäž»åŒµããŸããã§ããã
ãã®ã³ãŒãã®ãããªãã®ãèŠã€ããã®ã¯å°ããã£ããããŸããã
function parseJson() { xml = new XMLHttpRequest(); xml.onreadystatechange = getData; xml.open("GET","http://.../feed/"); xml.send(); } function getData() { if(xml.readyState == XMLHttpRequest.DONE && xml.status == 200) { console.log(xml.responseText); jsonArray = JSON.parse(xml.responseText); fillInCards(); } else { console.log("There was a problem with connection"); } }
ç§ã¯JSã§ã¯ç¹å¥ã§ã¯ãããŸããã ããããç§ãAJAXã«ã€ããŠè©±ããŠããå Žåãç§ã䜿ã£ãŠãããã®ã¯ãããã¯å¿ é ã®jQueryãŸãã¯ãã®é¡äŒŒç©ã§ãã ãªããã®ãããªæèŠãåºããã®ãã¯èŠããŠããŸããããAJAXåŒã³åºãã«çã®JSã䜿çšããããšã«å éšçã«äœããã®çç±ã§å察ããŠããŸãã ãããããç¥èãéãããŠãããããããã©ã«ãã§ãå¿ãããç¥ããªãããšãããã¢ã¯ã·ã§ã³ãå®è¡ããã©ã€ãã©ãªã«äŸåããŠããŸãïŒæ¥ç¶ãéã/éãããéæšæºã€ãã³ããåŠçãããäœããã®ãã³ãã©ãåŒã³åºããããŒã¿ããã§ãã¯/æ€èšŒããåºè·åããã³/ãŸãã¯åé æã«ã
ç§ã«ãšã£ãŠããã©ãŒã ã®ã³ãŒãã¯ãã銎æã¿ã®ãããã®ã§ãïŒ
$.ajax({ url: "http://.../feed/", cache: false, success: function(data) { getData(data); } });
ããããäœããã¹ãããZvezdochkaã¯ã圌女ã®ã³ãŒããã以åã¯å€§åŠã§è¡ã£ãããšããªããåäœããã¯ãã®å€ãã®å®éšå®€ã®äœæ¥ããããžã§ã¯ãã§æ€èšŒããããšäž»åŒµããŸããã ç§ã¯åœŒå¥³ãä¿¡ããªããã°ãªããŸããã§ããã ããã«ãå°ã調æ»ããçµæã次ã®ããšãããããŸããã
è«ççã§ã¯ãªãããã«æããŸããã ã€ãŸããajaxèŠæ±ã¯ããµãŒãã¹ããã¹ããŒã¿ã¹200ã®å¿çãåä¿¡ããŸããããå¿çæ¬æãåä¿¡ãããJSã³ã³ãœãŒã«ã«ãšã©ãŒãè¿ããŸããïŒ 'Access-Control-Allow-Origin'ããããŒãèŠæ±ããããªãœãŒã¹ã«ååšããŸããã çŽ5åéãäœãèµ·ããŠããã®ããç解ããããšããŠæãã§ããã ãããããããããããããããã©ã«ãã®Laravelã»ãã¥ãªãã£èšå®ããŸãã¯ãChromeèšå®èªäœã§ãããããã©ã«ãã§ã¯ãã¡ã€ã³/ãã¹ãã«å¯ŸããŠã®ã¿AJAXãªã¯ãšã¹ããèš±å¯ããããšãããããŸããã
å°ãã°ãŒã°ã«ã§èª¿ã¹ãŠãããŒã¿ãšå ±ã«ããã㌠'Access-Control-Allow-Origin'ãè¿ãã ãã§åé¡ã解決ã§ãããšå€æããŸããã ç§ã®æ¹æ³ãå°ãè©Šãããšããã次ã®ããã«ãªããŸããã
public function feed() { return response()->json([ ['video_id'=>'1', 'title'=>'title 1', 'description'=>'Description 1'], ['video_id'=>'2', 'title'=>'title 2', 'description'=>'Description 2'], ['video_id'=>'3', 'title'=>'title 3', 'description'=>'Description 3'] ],200)->header('Access-Control-Allow-Origin',"*");; }
ãã®åŸãJSã¯åªãããããŸããã ããã³ããšã³ãããã¯ãšã³ãé垯ã圢æãããŠããããã«èŠããã
ãåžæã«å¿ããŠãå°å ã®æŒé£ã ãã§2åç®ã®æé£ãŸãã¯æåã®å€é£ãã楜ãã¿ãã ããã æåã«é£äºãããã®ã¯ãããŒãã¥ãªãŒãšäžç·ã®ãºãŽã£ãªãºããã«ã§ãã ãããŠããã©ãã³ãšç§ã¯ãã³ãŒãããå°ãé¢ããŠãããŒã¿ããŒã¹ããŒãã«ã®çŸåšã®é²æãšæ§é ã«ã€ããŠè°è«ããŸããã Platoã¯ããã¥ãŒã¹ãåä¿¡ããåæã®ããã«AIã«éä¿¡ããããã®ã³ãŒããã»ãŒ90ïŒ æºåãã§ããŠããããšãå床確èªããŸããã
æ®å¿µãªããšã«ããã©ãã³ã¯ããã«ãœã³ã®åŸã«ãªããžããªãäœæãããããæéã®çµéãšãšãã«ã¹ã¯ãªããã®éçºã远跡ããããšã¯ã§ããŸããããã®éšåã®çµããè¿ãã«ã¹ã¯ãªããå šäœãæ¿å ¥ããŸãããããŸã§ã®éããã©ãã³ã¯ãæŒé£åã®æç¹ã§ãæŒé£åŸããã«ããŒã¿ããŒã¹ã«çŽ100ãã120ã®ãšã³ããªã衚瀺ããããšäºæ³ã§ãããšèšããŸãããããŸã§ã®ãšããç§ã«ã¯åã£ãŠããŠãéçºã¯èšç»éããã¹ãŠã®é¢ã§æ£ç¢ºã«åããŠãããšæããŸããã
ãããŠãèœã¡çãã粟ç¥ã§ãç§ãã¡ã¯ããã€ã«ãè¡ããŸããã
ã¡ã³ã¿ã«ã¯ãŒã«ãŒã®çµŠé€ãšã¯
æŒé£åŸãããŒã¿ããŒã¹å ã®å®éã®ããŒã¿ãèŠè¶ããŠãããã³ããšã³ããšã®å¯Ÿè©±ã«çŠç¹ãåœãŠãŸãããç§ã¯Zvezdochkaã«Radio CanadaããŒãžãšã®çµ±åã§äœãããã®ããèŠããããã«é Œã¿ãŸããã圌女ã¯ãçŸæç¹ã§äœãšãéæã§ããã®ã¯ãå®å šã«ãªãªãžãã«ã®HTMLããŸãã¯ã³ã³ãã³ãã®ããã¡ã€ã³ãããã¯ãã¯ãªã¢ããããšã ãã ã£ãããšã瀺ããŸããã
ãããŠãå ã®CSSãåå©çšããããšããç§ã®å€¢ãšç©ºæ³ã¯ã»ãšãã©ãããŸããããã®å質ã®èšèšã§ã¯ãã©ãžãªã«ããã®å ã®ããŒãžã«çµ±åããããšããæå³ããªããªããŸããããã®ãããªäžåšçšãªçµ±åã«ãããæå³ãããšããã«ããŒãžãããªãããããã«ãªããŸãããéã«ãæ¿å ¥ç©ã䜿çšããŠå ã®ãã¶ã€ã³ãåçŽã«èŠåããã€ããªããªãããšãããããŸãããå ã®JSãšCSSãã©ã®ããã«åå¿ãããã¯ãŸã äžæã§ãã
çãè°è«ã®åŸãå šå¡ããããã¿ã€ãã®ã³ã³ã»ããããããã«å€æŽããããšã«åæããŸãããçµ±åã®idebãåé€ããããšãææ¡ããŸããããšã«ãããã©ãŠã¶ãŒãã©ã°ã€ã³ããããããçµæãçŽæ¥åºåã§ããŸããã€ãŸããæ€çŽ¢æååã®ãã£ãŒã«ãã®ããäžã«ããã©ãŠã¶ãŒãŠã£ã³ããŠã®å³åŽã«ããã«ã衚瀺ãããŸãã
æéãçµã¡ãŸããã Zvezdochkaããµã€ã¯ã«ãæžãæããŠã«ããŽãªæ°ã2ã«çããããæ°ããã»ã¯ã·ã§ã³ã次ã®èŠçŽ ã«åºçŸããå Žåã¯ã«ããŽãªã®ã»ã¯ã·ã§ã³ãåçã«äœæããã«ããŽãªããã§ã«åä¿¡ãããŠããå Žåã¯æ¢åã®ã»ã¯ã·ã§ã³ã«ã³ã³ãã³ããè¿œå ããå¿ èŠããããšãã«ããããçºçããŸãããããã«ãå³åŽã®ããã«ã®èšèšã«ãããåºåã¯3åã§ã¯ãªããããŒãã®ããã«1åã«ãªããŸããã
Platoã¯ãããŒã¿ããŒã¹ãžã®ããŒã¿åºåã§äžæçã«è¡ãè©°ãŸããŸãããåè¿°ããããã«ãããã¯åœŒã«ãšã£ãŠãããŒã¿ããŒã¹ã§ã®Pythonã®å®éã®äœ¿çšã®æåã®äŸã§ããããããã¯æºåããã声æã§èµ·ãã£ãããã©ãã³ã¯ããã€ãœã³ã®ç解ã§ããªãã¡ãã»ãŒãžãšæŠãã®ã«ããããããŠãããšããäœãåé¡ãªã®ããæ¹ããŠèŠçŽãããã«é Œã¿ãŸãããããŒã¿ããŒã¹ã¯ç§ã®è©±é¡ã§ãããããããã°ãããã§æäŒãããšãã§ããŸããããã©ãã³ã¯ãæºåããã声æã®ããã«ã€ã³ã¿ãŒãããããäŸãä¿®æ£ããããšããŸããããããã圌ã¯å€ã®çŽæ¥é£çµã䜿çšããåœç¶ã®ããšãªããPythonã¯åªãããŠããŸããããªã¯ãšã¹ããããŒã¿ããåé¢ãããšããã«ããã¹ãŠãæ©èœããŸããã
æåã®ããŒã¿ãããŒã¿ããŒã¹ã«è¡šç€ºããããšããã«ãããŒã¿ã¹ã¿ããããŒã¿ããŒã¹ã®å®éã®ããŒã¿ã«çœ®ãæããŸãããããã«é¢é£ããŠãããã³ããšã³ãã®ã¡ã³ããŒã¯ããã«ã¹ã¿ã€ã«ãšèŠçŽ ãæµ®ãããŸãããã«ããŽãªã®èŠåºãã¯ããŸã倧ããããããšãå€æãã次ã«ãããã€ãã®ææã䌎ãããŒã¿ã«ã©ã³ãã ãªHTMLããŒã¯ã¢ãããå«ãŸããŠããããšãå€æããŸããã
ããŒã¿äŸ
title:
summary:
body:
Protection de l'eau potable : des municipalités québécoises prêtes à aller devant les tribunaux
summary:
<p>Des représentants de plus de 300 municipalités du Québec ont voté à l'unanimité une résolution qui leur permettrait d'aller devant les tribunaux si Québec n'impose pas des normes plus sévÚres afin de protéger leurs sources d'eau potable. Même s'ils concÚdent voir des signes positifs au gouvernement provincial, ils menacent d'entamer des démarches judiciaires si les lois n'évoluent pas rapidement.</p>
body:
<p><small class="item-without-url">Ma région</small><span><a href="/grandmontreal">Grand Montréal</a></span></p> <p>Des représentants de plus de 300 municipalités du Québec ont voté à l'unanimité une résolution qui leur permettrait d'aller devant les tribunaux si Québec n'impose pas des normes plus sévÚres afin de protéger leurs sources d'eau potable. Même s'ils concÚdent voir des signes positifs au gouvernement provincial, ils menacent d'entamer des démarches judiciaires si les lois n'évoluent pas rapidement.</p> <p>Avec ce vote unanime, les municipalités rassemblées ont envoyé un signe clair à Québec. Les 338 représentants demandent une dérogation, au ministre de l'Environnement, pour obtenir le pouvoir d'imposer des distances d'un minimum de deux kilomÚtrres entre les sources d'eau potable et les éventuelles installations gaziÚres et pétroliÚres, plutÃŽt que les 500 mÚtres prescrits par le gouvernement.<br/><br/>« Ãa m'a ému de voir l'unanimité et la solidarité de mes collÚgues », raconte Gérard Jean, maire de Lanoraie, une municipalité de LanaudiÚre.<br/><br/><div class="center image-from-url-with-caption-v2" data-component-name="ImageFromUrlWithCaptionV2"><div class="wrapper-media"><div class="container-image image-soft-crop-xl image-soft-crop-lg"><picture class="picture bunker-component" data-component-name="Picture"><source media="(min-width: 1599.01px)" srcset="https://images.radio-canada.ca/q_auto,w_635/v1/ici-info/16x9/lisette-maillet-austin.jpg"/><source media="(min-width: 1239.01px)" srcset="https://images.radio-canada.ca/q_auto,w_635/v1/ici-info/16x9/lisette-maillet-austin.jpg"/><source media="(min-width: 1023.01px)" srcset="https://images.radio-canada.ca/q_auto,w_1250/v1/ici-info/16x9/lisette-maillet-austin.jpg"/><source media="(min-width: 640.01px)" srcset="https://images.radio-canada.ca/q_auto,w_960/v1/ici-info/16x9/lisette-maillet-austin.jpg"/><source media="(min-width: 522.01px)" srcset="https://images.radio-canada.ca/q_auto,w_635/v1/ici-info/16x9/lisette-maillet-austin.jpg"/><source media="(min-width: 0px)" srcset="https://images.radio-canada.ca/q_auto,w_480/v1/ici-info/16x9/lisette-maillet-austin.jpg"/><img alt="La mairesse Lisette Maillé, d'Austin, dans une salle de réunion" src="https://images.radio-canada.ca/q_auto,w_635/v1/ici-info/16x9/lisette-maillet-austin.jpg" title="La mairesse Lisette Maillé, d'Austin, dans une salle de réunion"/> </picture></div></div><span aria-hidden="true" class="photo-caption"> Lisette Maillé, mairesse d'Austin, en Estrie, milite en faveur d'une meilleure protection des sources d'eau potable. Photo : Radio-Canada/Radio-Canada </span></div><blockquote><p class="quote">C'est deux kilomÚtres ou rien!<footer>Lisette Maillé, mairesse d'Austin, en Estrie</footer></p></blockquote><p>Actuellement, des pourparlers sont en cours avec la ministre du Développement durable, de l'Environnement et de la Lutte contre les changements climatiques, Isabelle Melançon.<br/><br/>Les membres du comité de pilotage du dossier se disent confiants que la ministre Melançon approuve leur demande. à la suite d'une rencontre avec le comité, le 20 mars, elle s'est engagée à rendre une réponse dans la semaine du 9 avril.<p>En entrevue avec Radio-Canada, Gérard Jean s'est montré optimiste, disant avoir senti « une grande ouverture » de la part de Mme Melançon.<p>M. Jean rappelle que les municipalités attendent une réponse positive depuis prÚs de quatre ans. Dans la négative, les municipalités pourraient envisager des mesures judiciaires.<p><strong>Un précédent</strong><p>Le 18 février, la municipalité de <a href="/nouvelle/1086340/ristigouche-sud-est-gastem-deboutee">Ristigouche Sud-Est a gagné son procÚs face à la pétroliÚre Gastem</a>. Le droit de protéger les sources d'eau potable de ses citoyens lui a été reconnu par la Cour supérieure. Selon le maire de Ristigouche Sud-Est, François Boulay, ce jugement permet d'« appuyer les municipalités » face à un rÚglement qu'il juge actuellement « inadéquat ».<blockquote><p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p></blockquote><p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p></p></p></p></p></p></p> <p class="quote">C'est deux kilomÚtres ou rien!<footer>Lisette Maillé, mairesse d'Austin, en Estrie</footer></p> <p>Actuellement, des pourparlers sont en cours avec la ministre du Développement durable, de l'Environnement et de la Lutte contre les changements climatiques, Isabelle Melançon.<br/><br/>Les membres du comité de pilotage du dossier se disent confiants que la ministre Melançon approuve leur demande. à la suite d'une rencontre avec le comité, le 20 mars, elle s'est engagée à rendre une réponse dans la semaine du 9 avril.<p>En entrevue avec Radio-Canada, Gérard Jean s'est montré optimiste, disant avoir senti « une grande ouverture » de la part de Mme Melançon.<p>M. Jean rappelle que les municipalités attendent une réponse positive depuis prÚs de quatre ans. Dans la négative, les municipalités pourraient envisager des mesures judiciaires.<p><strong>Un précédent</strong><p>Le 18 février, la municipalité de <a href="/nouvelle/1086340/ristigouche-sud-est-gastem-deboutee">Ristigouche Sud-Est a gagné son procÚs face à la pétroliÚre Gastem</a>. Le droit de protéger les sources d'eau potable de ses citoyens lui a été reconnu par la Cour supérieure. Selon le maire de Ristigouche Sud-Est, François Boulay, ce jugement permet d'« appuyer les municipalités » face à un rÚglement qu'il juge actuellement « inadéquat ».<blockquote><p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p></blockquote><p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p></p></p></p></p></p> <p>En entrevue avec Radio-Canada, Gérard Jean s'est montré optimiste, disant avoir senti « une grande ouverture » de la part de Mme Melançon.<p>M. Jean rappelle que les municipalités attendent une réponse positive depuis prÚs de quatre ans. Dans la négative, les municipalités pourraient envisager des mesures judiciaires.<p><strong>Un précédent</strong><p>Le 18 février, la municipalité de <a href="/nouvelle/1086340/ristigouche-sud-est-gastem-deboutee">Ristigouche Sud-Est a gagné son procÚs face à la pétroliÚre Gastem</a>. Le droit de protéger les sources d'eau potable de ses citoyens lui a été reconnu par la Cour supérieure. Selon le maire de Ristigouche Sud-Est, François Boulay, ce jugement permet d'« appuyer les municipalités » face à un rÚglement qu'il juge actuellement « inadéquat ».<blockquote><p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p></blockquote><p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p></p></p></p></p> <p>M. Jean rappelle que les municipalités attendent une réponse positive depuis prÚs de quatre ans. Dans la négative, les municipalités pourraient envisager des mesures judiciaires.<p><strong>Un précédent</strong><p>Le 18 février, la municipalité de <a href="/nouvelle/1086340/ristigouche-sud-est-gastem-deboutee">Ristigouche Sud-Est a gagné son procÚs face à la pétroliÚre Gastem</a>. Le droit de protéger les sources d'eau potable de ses citoyens lui a été reconnu par la Cour supérieure. Selon le maire de Ristigouche Sud-Est, François Boulay, ce jugement permet d'« appuyer les municipalités » face à un rÚglement qu'il juge actuellement « inadéquat ».<blockquote><p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p></blockquote><p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p></p></p></p> <p><strong>Un précédent</strong><p>Le 18 février, la municipalité de <a href="/nouvelle/1086340/ristigouche-sud-est-gastem-deboutee">Ristigouche Sud-Est a gagné son procÚs face à la pétroliÚre Gastem</a>. Le droit de protéger les sources d'eau potable de ses citoyens lui a été reconnu par la Cour supérieure. Selon le maire de Ristigouche Sud-Est, François Boulay, ce jugement permet d'« appuyer les municipalités » face à un rÚglement qu'il juge actuellement « inadéquat ».<blockquote><p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p></blockquote><p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p></p></p> <p>Le 18 février, la municipalité de <a href="/nouvelle/1086340/ristigouche-sud-est-gastem-deboutee">Ristigouche Sud-Est a gagné son procÚs face à la pétroliÚre Gastem</a>. Le droit de protéger les sources d'eau potable de ses citoyens lui a été reconnu par la Cour supérieure. Selon le maire de Ristigouche Sud-Est, François Boulay, ce jugement permet d'« appuyer les municipalités » face à un rÚglement qu'il juge actuellement « inadéquat ».<blockquote><p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p></blockquote><p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p></p> <p class="quote">Comme nous l'avons vu dans le jugement de Ristigouche, le principe de précaution appartient aux municipalités. C'est nous qui sommes redevables aux citoyens.<footer>Gérard Jean, maire de Lanoraie</footer></p> <p>Selon M. Jean, ce jugement « renforce » la position des municipalités dans ce dossier. « Je pense que le gouvernement a pris bonne note de ça », at-il ajouté.<p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p></p> <p>Vendredi, Mme Melançon s'est prononcée <a href="/nouvelle/1091246/environnement-energies-fossiles-ministre-isabelle-melancon-exploitation-environnement">contre les projets d'exploitation de pétrole et de gaz naturel</a> sur le territoire de la province.<br/><br/><div class="framed"><p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p></div></p> <p><strong>à lire aussi :</strong><ul><li><a href="../" title="http://ici.radio-canada.ca/nouvelle/1059037/exploitation-petrole-philippe-couillard-rassurant">Exploitation pétroliÚre : Philippe Couillard se veut rassurant</a><li><a href="/nouvelle/1089162/climat-changements-climatiques-villes-solutions-idees">Changements climatiques : trois idées innovantes pour les villes</a></li></li></ul></p> <p aria-hidden="true" class="ticker">Armes à feu<h3>La jeunesse américaine se mobilise en masse contre les armes à feu</h3></p> <p aria-hidden="true" class="ticker">Criminalité<h3>Attentat en France : hommage national en l'honneur du gendarme Beltrame</h3></p> <p aria-hidden="true" class="ticker">Hockey<h3>Alexis LafreniÚre : l'éclatante entrée en scÚne d'un surdoué</h3></p> <p aria-hidden="true" class="ticker">Catalogne : vers une rupture avec l'Espagne?<h3>Carles Puigdemont évite l'arrestation en Finlande</h3></p> <p aria-hidden="true" class="ticker">Emploi<h3>Immigration : le silence de la CAQ</h3></p> <p class="text">Veuillez noter que Radio-Canada ne cautionne pas les opinions exprimées. Vos commentaires seront modérés, et publiés s'ils respectent <a href="http://ici.radio-canada.ca/apropos/conditionsutilisation/netiquette/">la nétiquette</a>. Bonne discussion!<div class="component viafoura-commentaire bunker-component" data-articleid="commments--1641051734" data-bind="appearsOnScreenOnce: appearsOnScreenOnceHandler,css:(showOnMobile() == 'True' && forceMobile())?'':'hidden-mobile hidden-mobile-xs hidden-tablet-lg hidden-tablet-md'" data-component-name="ViaFourra" data-lazyload="False" data-loadonclick="True" data-path="http://v4.radio-canada.ca/nouvelle/1091279/protection-eau-potable-municipalites-quebec-tribunal-melancon-ristigouche-lanoraie" data-showonmobile="True"><div class="button-show-more-comments" data-bind="visible:forceMobile" style="display:none"><button data-bind="click:clickHandlerShowComment, text: textButton()">Afficher les commentaires</button></div><div class="button-show-more-comments" data-bind="visible:!forceMobile()" style="display:none"><button data-bind="click:clickHandlerShowComment, text: textButton()">Afficher les commentaires</button></div><div id="pluckComments-0"><a id="commenter" name="commenter"></a></div></div></p> <p class="kicker"><span class="info-feed-content-tag" data-component-name="InfoFeedContentTag">Industrie pétroliÚre</span>....
ãããçºèŠãããšãã¢ã¹ã¿ãªã¹ã¯ã¯ã³ã³ãã³ãã®åºåèªäœãJSã§ããçŽãå§ããç§ã¯åœç¶ãèªå® ã§ãããå€æŽãå§ããŸãããç§ã¯ããã³ããšã³ãã®ã³ã³ãã³ããããã€ããŒã ãšæã£ãŠããã®ã§ãããŒã¿ããŒã¹ããæ±ããããã¹ããã¯ããŒã«ããŠãããããã¯ãªã¢ããŠããã§ã«ã¯ãªã¢ãããHTMLã¬ããŒãžã®ããã¹ããè¿ããªããã°ãªããŸããã
ãã®å Žåãèšäºã®æ¬æã¯å¿ èŠãããŸããã§ãããèšæ¶åœ¢åŒã«ã¯ãHTMLããŒã¯ã¢ãããšCSSã¹ã¿ã€ã«ã ãã§ãªããJSé¢æ°ã®åŒã³åºããéåžžã«äºæããå«ãŸããŠããããšãããããŸãããããªãã¯APIã¯èšããŸã§ããªãããããŠAPIãšã¯åŒã³ãŸããããããããããã¿ã€ãã«å¿ èŠãªãã®ã¯ãããŸããã¿ã€ãã«ãšæŠèŠãå æããã®ã«ååã§ãããã®ãããHTMLã¬ããŒãžãã¯ãªãŒã³ã¢ããããä»ã®ããŒã¿ã®å¿ èŠãªãã©ãŒããããçæããé¢æ°ããã°ããäœæããŸããã
ããã³ããšã³ãã«éä¿¡ããåã«ãããŒã¿ããŒã¹ã®ããŒã¿ããã©ãŒãããããŸã
private function decorate($article) { return [ 'video_id'=>$article['article_id'], 'category'=>$article['region'], 'title'=> html_entity_decode($article['title']), 'description'=>strip_tags(html_entity_decode($article['summary'])), 'image'=>$article['images'], 'rating'=>round(10*floatval ($article['sentiment']),0), 'link'=>$article['link'], 'tags'=>$this->decorateTags($article['keyphrases']) ]; }
æéã¯å»ã ãšéããŠããŸãããã¹ãŠãåäœäžããã³ãããã°äžã§ãããããã¿ã€ãã®ãã¹ãŠã®éšåãæ©èœããŠããããã«èŠããŸããããŒã ã¯ææ çãªäžæãæããŸãã
ããããæåããããã£ãŠããããã«ãAIãäœããã®æ¹æ³ã§æ€çŽ¢ã©ã€ã³ã«ãã蟌ãå¿ èŠããããŸãã
ãã®ãããå šèœã®AIããè¿ããããææ çãªè©äŸ¡ããšãããŒã¯ãŒããããããŸããããããæ€çŽ¢ã§ãããã®ãªãã·ã§ã³ã®éèŠæ§ãšå¿ èŠæ§ââãã©ã®ããã«ç€ºãã®ã§ããããïŒéœæ§è©äŸ¡ã§æ€çŽ¢çµæããœãŒãããå¿ èŠããããŸããïŒããŒã¯ãŒããã©ããããïŒããã«ã楜ãããæ±ããã³ã³ãã³ãã®ããã«ãããŒã¯ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
å°æ¹èªæ²»äœãã±ããã¯å·ãsignes positifsãgovvernement provincialãnbspãsources d'eau potableãdémarchesjudiciairesãloisãunanimitéãrepresentantsãnormesãrésolutionãtribunaux
ããŒã¯ãŒããnbspãã«æ³šæããŠãã ãã;-) AIã«æ¬æãè¡šããªããã°ãªããŸãããã圌ã¯HTMLã¿ã°ãããŒã¯ãŒããšããŠè¿ãããã«ã¯èŠããŸããã§ããã
移åäžã«ããããã®è¿œå ã®åæããŒã¿ãã©ã®ããã«äœ¿çšãããã«é¢ä¿ãªããé¢æ°ã§ãã§ã«å°ãèŠãããã«ãåã¬ã³ãŒããšãšãã«ãããã確å®ã«æäŸããå¿ èŠãããããšã決å®ãããŸããã
èŠèŠåã®ããã«ãããã€ãã®ãã£ã©ã¯ã¿ãŒã®ããã°ã¬ã¹ããŒã䜿çšããããšãææ¡ããŸãããç¹ã«ç§ãèšã£ãããã«ã圌ãã¯jQueryããªããŠã裞ã®JSã§åããŠããã®ã§ãããã€ãã®ãã©ã°ã€ã³ã®æ€çŽ¢ã«æéãè²»ãããããªãã£ããããšãã£ãŠãäœãããã°ããèŠã€ããŠåºå®ã§ãããšã¯æããŸããã§ããã
ããŒã¯ãŒãã«é¢ããŠã¯ã圌ãã¯Twitterãžã®ããã·ã¥ã¿ã°ãªã³ã¯ã«å€ããããšãæãã€ãããæåã¯Twitterã«ã¯ä»»æã®åèªããã¬ãŒãºã®ã³ã³ãã³ãã¯ãªãããã«èŠããŸããããããã€ãã®ãã¹ããè¡ã£ãçµæããã®ã¢ã€ãã¢ã¯éåžžã«æå¹ã§ããããšãå€æããŸããã
ãããã£ãŠããã®æ®µéã§ãéœæ§ã®è©äŸ¡ãšããã·ã¥ã¿ã°ãªã³ã¯ã䜿çšããŠãæ€çŽ¢çµæãåçŽã«æ¡åŒµããã³åŒ·åããããšã決å®ããŸããã
ã©ããããããè¿ éãã€ç®ç«ããã«å€é£ã®æéã«è¿ã¥ããã誰ããä»äºã«éåžžã«æ²¡é ããŠãããšããäºå®ã«ãããããããç§ãã¡ã¯çãåãã§ã³ãŒãããèŠäžããŠãåå è ãé 絊ç©ãæã£ãŠããéšå±ã«è¡ããŸããïŒã³ãŒããŒã§ãèšã£ãããã«ãã¹ãã¬ã¹ãããŸããŸããã
å€é£æã«ãç§ãã¡ã¯äžæ¥ãçµããããèšç»ã«ã€ããŠè©±ãåããŸãããããŸã å€ãã®ãããã°ãå¿ èŠã§ããããã©ã°ã€ã³ã®ç©æ¥µæ§ã®ã¬ãã«ã§ãã£ã«ã¿ãªã³ã°ããæ©èœãè¿œå ããæ©äŒãããã°ææ¡ããŸãããããšãã°ããŠãŒã¶ãŒãä»æ¥ãæªãããã¥ãŒã¹ãèªã¿ãããªãå Žåã¯ãæ€çŽ¢æã«æäœã¬ãã«ã®éœæ§ãäžããããšãã§ãããã£ã«ã¿ãŒãããçµæãæäŸããŸããæ©èœãåå²ãããŠããã®ã§ãç·ã¯è©ŠããŠã¿ãããšã«åæããŸãããã¢ã¹ã¿ãªã¹ã¯ã¯äž»ã«èšèšãšã¬ã€ã¢ãŠãã«åŸäºããMercuryã¯ç§ã®PHPããã¯ãšã³ããšå¯Ÿè©±ããŸããããããŠããã®éšåã¯ãã®ãŸãŸã§å®äºããæ©èœãã1ã€ãŸãã¯2ã€ã®æ°ãããªã¯ãšã¹ããè¿œå ããããšãã§ããŸããã
ãã©ãã³ã¯ãããå€ãã®ããŒã¿ãåŠçããå¿ èŠæ§ã«ã€ããŠè°è«ããŸããã圌ã¯ããã§ã«åãåã£ã100ã120件ã®ã¬ã³ãŒãã¯åãªãã«ããŽãªã§ãããšèª¬æããŸããããããŠã圌ã¯ããã«ããã€ãã®ã«ããŽãªãŒãåŒãåºããããã«å¿ããŠãAIãä»ããŠãã¹ãŠãé§åããããŒã¿ããŒã¹ã«ã¢ããããŒãããæ©äŒãããããšã確èªããŸãã圌ãã¯ããã決ããŸããã
å€é£åŸãå šå¡ãä»äºã«æ»ããŸãããããããç§ã¯ãºããºããã«ã«ã³ãŒããŒãè²·ãããã«é Œã¿ãŸããã
åºåã§ã¯ãªãããããåœã®å³ãæ°ãã
TimHortons . .
. . , , , Starbucks, Timhortons â , . (donuts) .
TimHortons. , - .
TimHortons? , . 12 , , , . . .
. . , , , Starbucks, Timhortons â , . (donuts) .
TimHortons. , - .
TimHortons? , . 12 , , , . . .
ãããŠããºããºããã«ãéæ³ã®ããã«æãããŒã¯ã§æ»ã£ãŠãããšããç§ãã¡ã¯ç¬¬2ã®é¢šãåããŸããã
次ã®3ã4æéã¯ããããããã®ãäœæããããã«äžçæžåœåªåããŸãããåçæ€çŽ¢ã®å Žåããªã¯ãšã¹ãã®ããã¯ãšã³ãã§ç§ã«å±ãæ€çŽ¢æåã®æ°ã«å¿ããŠã2ã€ã®ç°ãªããªã¯ãšã¹ããè¡ããŸãããå šææ€çŽ¢ã¯çãåèªã§ã¯ããŸãæ©èœãããåã«å€ãã®æåã®çµã¿åãããç¡èŠããããšãç¥ã£ãŠãããããæ倧3æåã®æ€çŽ¢
LIKE
ã«ã¯éåžžã®ããŒã¿ããŒã¹æ€çŽ¢ã䜿çšããæ€çŽ¢æååãé·ããªããšå¥ã®ã¯ãšãªãå®è¡ããããšã«ããŸãã
MATCH
ã
ããã«ãããããçŸãããã¬ãŒã³ããŒã·ã§ã³ã®ããã«ãããã¯ãšã³ãããã®ç©ºã®åçãé¿ããããšãã§ããŸãã
å³ããå€æããªãã§ãã ãã
public function searchRange( $min, $max, $term) { $pdo = DB::connection()->getPdo(); if(strlen($term)>3){ $query = "SELECT * from articles WHERE ROUND(sentiment,1) >= :min AND ROUND(sentiment,1) <= :max AND images != '0' AND MATCH (title, summary, body, keyphrases) AGAINST (:term IN NATURAL LANGUAGE MODE) LIMIT 50;"; $stmt = $pdo->prepare($query); $stmt->bindValue('min',round(intval($min)/10,2)); $stmt->bindValue('max',round(intval($max)/10,2)); $stmt->bindParam('term',$term); } else { $query = "SELECT * from articles WHERE ROUND(sentiment,1) >= :min AND ROUND(sentiment,1) <= :max AND images != '0' AND (title LIKE :term OR summary LIKE :term1) LIMIT 50;"; $stmt = $pdo->prepare($query); $stmt->bindValue('min',round(intval($min)/10,2)); $stmt->bindValue('max',round(intval($max)/10,2)); $stmt->bindValue('term',"%$term%"); $stmt->bindValue('term1',"%$term%"); } $stmt->execute(); $res = $stmt->fetchAll(); $ret = []; foreach($res as $article) { $ret[] = $this->decorate($article); } return response()->json($ret,200)->header('Access-Control-Allow-Origin',"*"); }
ããããç§ãã¡å šå¡ããã§ã«åã³ãçµéšããŠãããããããããœãªã¥ãŒã·ã§ã³ãæ©èœãããšããäºå®ããèªãã«æã£ãŠããŸããèšç»éãã«æ©èœããæ¬æ Œçãªãããã¿ã€ãããããŸãããäž»å¬è ãçºè¡šãããã¹ãŠã®åºæºãæºãããŠããŸããããã¯ç§ãã¡å šå¡ã«ãšã£ãŠååããããã®ã§ããã
ãã®æ¥ã®çµããã«ããã©ãã³ã¯80ã®ã«ããŽãª/å°åã®ããŒãã«ã«çŽ1,200ã®ãšã³ããªãæäŸããŸãããç°¡åãªãã¹ããšãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§ã¯ãçµæã¯å°ãªããšãæ©èœããŠããããã«èŠããŸããã
ç§ã®è©±ã®æ¬¡ã®éšåãç· ããããããŸããè¬çœªãããã®ã§ããé ããŠïŒç¬¬2éšã®çºè¡ããã»ãŒ1ãæãéããŸããïŒïŒãä¿¡ããŠãã ãããç§ã¯å¿ããããéãæžãããšããŸããããã®éã«ãç§ã¯ãªããšãä»äºã倱ããæ°ããä»äºãèŠã€ããŠãæµlyã§ã¯ãããELKã¹ã¿ãã¯ïŒElasticsearchãLogstashãKibanaãFilebeatïŒãåŠã³ãŸããã次ã®èšäºã¯Elasticã«é¢ãããã®ã ãšæããŸãã
ãã®ç¬¬3éšãæžãå§ãããšããæçµçãªãã®ã«ãªããšç¢ºä¿¡ããŠããŸãããç§ã¯èªåã®åŒ·ããé倧è©äŸ¡ããçŽ æã®éãéå°è©äŸ¡ããŸãããããããçµéšãããã°ããã£ãšç°¡æœã«äœããè¡šçŸããããšãåŠã¶ã§ãããããã®å Žåãèªè ãèå³ãæã£ãŠãããã®ãæ£ç¢ºã«å€æããããšã¯é£ããããšãèæ ®ããŠãã ãããããã¯ãŸã æè¡çãªèšäºã§ã¯ãããŸãããããã¹ãŠã«ã€ããŠå°ã説æããŠããŸãããããåæã«ãç§ã¯äœãèµ·ãã£ãŠããã®ããšããæè¡çãªé¢ãèŠããããšæããŸããChromeãã©ã°ã€ã³ã
ããŠã³ããŒãããŠã€ã³ã¹ããŒã«ã§ããŸããéçºè ã¢ãŒãã§ã®ã¿trueãã€ã³ã¹ããŒã«åã«ã³ãŒãã衚瀺ã§ããŸããå®éã«ã¯äœãååšãããäœããèªãã§ãã ããã
æçµæ¥ããã¡ã€ããªã¹ãã®ãããžã§ã¯ããç§èªèº«ã®ããã«è¡ã£ãäžè¬çãªçµè«ã®èª¬æã§ãæçµããŒãã«æ®ããªãããã«éåžžã«äžçæžåœåªåããŸãã