ããã«ã¡ã¯ãã€ã³ãã©ãšã³ãžãã¢ã®ç¶¿åŒã§ãã æ©éã§ãããä»åã¯MySQLã®ããŒãã«å§çž®ã«ã€ããŠèšèŒããããšæããŸãã äœããMySQL 5.7ããå®è£
ãããééæ§ããŒãžå§çž®ã§ãªãã MySQL 5.1ã®InnoDB Pluginæä»£ããããå§çž®ã§ãïŒ å人ã§éçšããŠããMySQLã5.6ãªã®ã§ããã ã¹ãã¬ãŒãžãéŒè¿«ããŠæ¥ãã®ã§ãæ§æ¥ã®å§çž®ã詊ããŠã¿ãŸããã MySQL 5.6以åã§ããã£ã¹ã¯å®¹éãè¶³ããªãïŒããšããæ¹ãããã£ãããã°ã åèã«ããŠé ããã°ãšæããŸãã å§çž®ã®ä»çµã¿ ãŸãã¯å§çž®ã®ä»çµã¿ã«ã€ããŠå³ãäœã£ãŠã¿ãŸããã éå§çž®ããŒãž(16KB) ãšèšèŒããŠãããã®ãéåžžã®ããŒãžã ãšãèãäžããã ä»åã宿œããå§çž®ã®ä»çµã¿ãšããŠã¯ã éåžžã¯ãã®éå§çž®ããŒãžããã®ãŸãŸã¹ãã¬ãŒãžã«ä¿åãããæãã å§çž®ããŒãžãäœæãã¹ãã¬ãŒãžã«ä¿åããããšã«ãã£ãŠã ãã£ã¹ã¯ã®æ¶è²»éãæãããããšãããã®ã§ãã ãŸã selectãinsert ãªã©ã®ããŒãã«æäœãçºè¡åºæ¥ããšããåªããã®ã§ãã å§çž®ããŒãžã«æäœãå ããéã¯ããããã¡ããŒã«å
ã§å±éããããšã§ ã¯ã©ã€ã¢ã³ãåŽããã®æäœãå¯èœã«ããŠããŸãã ããã£ïŒ ãã¡ãªããå€ãããããªãïŒããšæãããæ¹ããã¡ãªããã¯åŸè¿°èŽããŸããã ãšãããããã£ãŠã¿ãããšæããŸãïŒ ãã©ã¡ãŒã¿ã®å€æŽ ãŸãã¯ä»¥äžã®2ã€ã®ãã©ã¡ãŒã¿ã®å€æŽã§ãã innodb_file_per_table = 1 innodb_file_format = Barracuda innodb_file_per_table 㯠ãããŒãã«ããšã«å°çšã®ããŒãã«ã¹ããŒã¹ãäœæããã ãã©ã¡ãŒã¿ã§ãã æå¹ã«ãã”1″ãèšå®ããŸãã innodb_file_format 㯠ãInnoDBã®ãã¡ã€ã«åœ¢åŒãå®çŸ©ããã ãã©ã¡ãŒã¿ã§ãã MySQL 5.6ãŸã§ã®ããã©ã«ã㯠ãAntelopeã ãªã®ã§ããã ãããå§çž®æ©èœããµããŒãããææ°ã®åœ¢åŒã§ãã ãBarracudaã ã«å€æŽããŸãã å°ããã©ã¡ãŒã¿ã®å
容ã¯ä»¥äžã§ãã ãã¡ã€ã« ãã©ãŒããã å
容 Antelope å¯å€é·ã«ã©ã (VARBINARY, VARCHAR, BLOB, TEXT)ã®å
é 768byteã B-tree ããŒãã®ã€ã³ããã¯ã¹ã¬ã³ãŒãã«æ ŒçŽãã æ®ãããªãŒããŒãããŒããŒãžã«æ ŒçŽãã Barracuda å¯å€é·ã«ã©ã (VARBINARY, VARCHAR, BLOB, TEXT)ã®å
šãŠã å€éšã®ãªãŒããŒãããŒããŒãžã«æ ŒçŽããã¯ã©ã¹ã¿ã€ã³ããã¯ã¹ã¬ã³ãŒãã« ãã®ããŒãžãžã®ãã€ã³ã¿(20byte)ã®ã¿ãæ ŒçŽãã Antelope ã§ã¯å¯å€é·ã«ã©ã 1ã€ã«å¯Ÿã æå€§ã§768byteãŸã§ããŒã«ã«ããŒãžãæ¶è²»ãããã Barracuda ã§ã¯å¯å€é·ã«ã©ã 1ã€ã«å¯Ÿã æå€§ã§20byteããããŒã«ã«ããŒãžãæ¶è²»ããªãããã æå€§è¡ãµã€ãºã®8KBã«å¯Ÿãå€ãæåãæ ŒçŽåºæ¥ãããšããçè§£ã§ããããšã å ã¿ã« ãAntelopeãã¯ã¬ã€ãšãŠ ãBarracudaãã¯ãªãã«ãã¹ ãããã§ãã ãªãã«ãã¹ã®å§ã匷ãã§ããã äžèšã倿ŽåŸã確èªããŸãã mysql> show variables like 'innodb_file_per_table'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | ON | +-----------------------+-------+ mysql> show variables like 'innodb_file_format'; +--------------------+-----------+ | Variable_name | Value | +--------------------+-----------+ | innodb_file_format | Barracuda | +--------------------+-----------+ ã³ãã³ã ç¶ããŠå§çž®ãè¡ãã³ãã³ãã宿œããŠè¡ããŸãã èšèŒæ¹æ³ãšããŠã¯ã Create Table æãã Alter Table æã«ã ROW_FORMATå¥ ãš KEY_BLOCK_SIZEå¥ ãä»äžããããšã§å§çž®ãå¯èœãšãªããŸãã äŸãšããŠã¯ä»¥äžã§ãã mysql> ALTER TABLE test ROW_FORMAT=Compressed KEY_BLOCK_SIZE=8; ROW_FORMATå¥ãšKEY_BLOCK_SIZEå¥ã«ã€ããŠã ROW_FORMATå¥ ã«ã€ããŠã¯å
çšã®ãã¡ã€ã«ã®ãã©ãŒãããã«å¯ŸããŠãè¡ã®ãã©ãŒãããã§ãã å
šéšã§4çš®é¡ãããæå®ãå¯èœã§ããå§çž®æ©èœããã COMPRESSED ã«é¢ããŠã¯ã ãã¡ã€ã«ãã©ãŒãããã Barracuda ã«ããªããšäœ¿ããŸããã ROW_FORMAT å
容 REDUNDANT MySQL 5.0.3 ãããåã§äœ¿çšãããŠãã COMPACTãããå¹çæ§ãäœã COMPACT MySQL 5.0.3 以éã§ã®ããã©ã«ã REDUNDANTãããããŒã¿ãµã€ãºãå°ãã DYNAMIC Barracuda ãšãšãã«ã®ã¿äœ¿çšå¯èœ å§çž®ã¯è¡ããªã COMPRESSED Barracuda ãšãšãã«ã®ã¿äœ¿çšå¯èœ å§çž®ã«å¯Ÿå¿ 次ã«KEY_BLOCK_SIZEå¥ã«ã€ããŠã§ããã ãã¡ãã¯å§çž®åŸã®InnoDBã®ããŒãžãµã€ãºãæå®ãããã®ã§ã å€ãšããŠã¯ 1ã2ã4ã8ã16 ãèšå®åºæ¥ãŸãã InnoDBã®ããã©ã«ãã®ããŒãžãµã€ãºã¯16KBã®ããã äŸãã°ã8(KB)ãæå®ããå Žåã¯å®¹éãååã«ãªããŸãã â» äœãã察象ããŒãã«ã«å¯Ÿããå§çž®ã å
šãŠäžæããã£ãå Žå ã§ãã å§çž®ããéã«8KB以äžãšãªã£ãŠããŸãå Žåã¯ã å
ããŒãžãåå²ããåŸã«ãããããå§çž®ãè¡ããããã®å容éãå¢ããŠããŸãã®ã§æ³šæã§ãã ãŸãã¯æ¢åããŒãã«ã®ããã¯ã¢ãããååŸããŸãã mysql> create table test_tbl2 like test_tbl; Query OK, 0 rows affected (0.18 sec) mysql> insert into test_tbl2 select * from test_tbl; Query OK, 1048407 rows affected (9 min 41.05 sec) Records: 1048407 Duplicates: 0 Warnings: 0 å ã¿ã«ãµã€ãºã¯ãã®ãããªæãã§ãã mysql> select table_name,engine,table_rows,avg_row_length,data_length -> from information_schema.tables -> where table_name like '%test%'; +------------+--------+------------+----------------+-------------+ | table_name | engine | table_rows | avg_row_length | data_length | +------------+--------+------------+----------------+-------------+ | test | InnoDB | 933488 | 2199 | 1958 | | test2 | InnoDB | 930930 | 2218 | 1970 | mysql> ALTER TABLE test2 ROW_FORMAT=Compressed KEY_BLOCK_SIZE=8; Query OK, 0 rows affected, 4 warnings (44 min 15.12 sec) +------------+--------+------------+----------------+-------------+ | table_name | engine | table_rows | avg_row_length | data_length | +------------+--------+------------+----------------+-------------+ | test | InnoDB | 933488 | 2199 | 1958 | | test2 | InnoDB | 832392 | 1229 | 976 | avg_row_length ãš data_length ãã»ãŒååã«ãªããŸããã table_rowsãè¥å¹²æžã£ãŠããŸããããã¯ãããã Barracuda ã®å¹æã§ããããã OSãã確èªããããŒã¿ãã¡ã€ã«ã®ãµã€ãºããã£ãã倿ŽãããŠãããŸãã -rw-rw---- 1 mysql mysql 2327838720 2016-07-06 18:01 test.ibd -rw-rw---- 1 mysql mysql 1031798784 2017-01-13 15:14 test2.ibd å§çž®åºæ¥ãŸããã å ã¿ã« show table status ã§èŠããšãããªæãã å§çž®åŸã®ç¢ºèªã®1ã€ãšã㊠Row_format ãš Create_options ãèŠããšç¢ºãã mysql> show table status like 'test2'\G; *************************** 1. row *************************** Name: test2 Engine: InnoDB Version: 10 Row_format: Compressed Rows: 832392 Avg_row_length: 1229 Data_length: 1023410176 Max_data_length: 0 Index_length: 0 Data_free: 0 Auto_increment: 1113463 Create_time: 2017-01-13 15:14:41 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: row_format=COMPRESSED KEY_BLOCK_SIZE=8 Comment: 1 row in set (0.08 sec) ãã¡ãªãã å®éã«ãã£ãŠã¿ãŠã广ãããããšã確èªåºæ¥ãŸããã ã§ã¯åé ã§åèšããªãã£ããã¡ãªããã«ã€ããŠã äžã€ç®ã¯è² è·ã§ãã ããŒãã«æäœãè¡ãã«ããããå¿
èŠã«å¿ããŠå§çž®ã»è§£åãè¡ããšãããã¯ãŒãå¿
èŠãšãªãããã ä»ãŸã§ãªãœãŒã¹ã«åé¡ããªãã£ããšããŠãããããããã¯ã«ãªã£ããããŸãã äºã€ç®ã¯ãã£ãã·ã¥ãããçã§ãã ãã¡ãã¯ç¢ºãããããã§ã¯ãªãã§ããã å
šäœçãªãã£ãã·ã¥ãããçãäžããå¯èœæ§ããããšæããŸãã çç±ãšããŠã¯å§çž®æžã¿ããŒãžãšéå§çž®ããŒãžããããã¡ããŒã«ã«èŒããã ä»ãŸã§éçšäžèŒã£ãŠãããã£ãã·ã¥ãLRUã«ãã远ãåºãããããšãæ³åãããããã§ãã ãŸãšã 以äžãæ€èšŒã¯çµäºã§ãã å人çã«ã¯å¹æã倧ãããã©ããã¡ãªããã倧ããããå Žé¢ãéžã¶ãªããšããå°è±¡ã§ããã ä»åŸã¯MySQL5.7ã®ééçããŒãžã®å§çž®ããããããªãšæã£ãŠãããŸãã ãæž
芧é ãããããšãããããŸããã Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã èå³ã®ããæ¹ã¯ãã²äžåºŠæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã
ããã«ã¡ã¯ã岩æ©è¡åŸã§ãã ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ã奜è©ã® 第äžå ã«ç¶ããŸããŠãåŸ
æã®ç¬¬äºåããã£ãŠãããããšæããŸããä»åã¯ååäœæããVPCãšEC2ãæ¡åŒµããå°ãã¥ã€èé害æ§ãæèããå®çšçãªæ§æãäœã£ãŠãããŸãããŸãã¯AMIã䜿ã£ãŠååäœã£ãEC2ã®ã³ããŒãäœããšããããå§ããŸãããïŒ AMIãèšå®ãã ããããè€æ°ã®åçš®ãµãŒããŒãèšå®ããã«å
ç«ã£ãŠãAMI (Amazon Machine Image) ã®èšå®ãè¡ããŸããããEC2ã€ã³ã¹ã¿ã³ã¹ãããŒã³ããã床ã«åããããªèšå®ãæ¯åè¡ãã®ã¯ç
©éã§ããã ããã䜿ã£ãŠEC2ã€ã³ã¹ã¿ã³ã¹ã®èšå®ç¶æ
ãã¹ãããã·ã§ãããšããŠä¿åããŠããããšãã§ããŸããåŸã§åãEC2ãå¿
èŠã«ãªã£ãæã«ããã«è€è£œãæã«å
¥ããŸããããã§ã¯ååäœã£ãEC2ã®AMIãäœæããŸãã EC2ã€ã³ã¹ã¿ã³ã¹ã®äžèЧç»é¢ã衚瀺ããŠãè€è£œå
ãéžãã§å³ã¯ãªã㯠èšå®ã«ã€ããŠã¯ãã®ãŸãŸã§ãã€ã¡ãŒãžãäœæããŸã AMIã®äœæã«ã¯å°ãæéãããããŸããäœæãçµãããŸã§åŸ
ã¡ãŸãããã Apacheãèšå®ãã ãŠã§ãã¢ããªã®æ§ç¯ã®èŠãšãªããŠã§ããµãŒããŒãèšå®ããã®ã§ããã£ãäœæããAMIããEC2ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã AMIã®äžèЧã衚瀺ããŠãå³ã¯ãªã㯠-> äœæ ãéžã³ãŸããç¶æ
ãavailableã§ããããšã確ãããŠãã ããã ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã¯ãt2.microããéžã³ãŸãã ã€ã³ã¹ã¿ã³ã¹ã®è©³çްãèšå®ããŠãããŸãã IPã«èšå®ããå
容ã¯éžæãããããã¯ãŒã¯ã»ãµããããã«äŸåããŸãã 以åäœæããAZã»ãµããããã®IPã10.0.0. 0 /24 ã§ããã®ã§ã4ã€ç®ã®æ°åãèªç±ã«éžã¶ããšãã§ããŸãïŒ ç¬¬äžååç
§ ïŒãããã«IPãèšå®ããŠããããšã§ããã®ã€ã³ã¹ã¿ã³ã¹ã«èšå®ããããã©ã€ããŒãIPãåºå®ã§ããŸãã èªåå²åœãããªãã¯IP: æå¹ ãã©ã€ããªIP: 10.0.0.10 ãµããããã«ã©ããªIPãèšå®ããŠãããå¿ããŠããŸã£ãããVPCããã·ã¥ããŒããããµãããããéžãã§ç¢ºèªããŸãããã ã€ã³ã¹ã¿ã³ã¹ã®ååãèšå®ããŸãã ã»ãã¥ãªãã£ãŒã°ã«ãŒãïŒã€ã³ã¹ã¿ã³ã¹ã®ä»®æ³ãã¡ã€ã¢ãŠã©ãŒã«ãªããã®ïŒã¯ãšããããããã©ã«ããéžãã§ãããŸãããã¡ããåŸã§æ£ããèšå®ãããŸãã åå䜿çšããããŒãã¢ã䜿ã£ãŠã€ã³ã¹ã¿ã³ã¹ãç«ã¡äžããŸãã ãµãŒããŒã«SSHãã°ã€ã³ããŠæäœéã®Apacheã®èšå®ãè¡ããŸãã ã³ãã³ããæã¡èŸŒãã§ãäœã衚瀺ããããã¢ã¯ã»ã¹åºæ¥ãªãå Žåã¯ã»ãã¥ãªãã£ãŒã°ã«ãŒãã®èšå®ãæªãå ŽåãèããããŸã…ã22çªããŒããéããŠããªãããã¢ã¯ã»ã¹IPãçµã£ãŠãããçã
ã $ ssh -i iwa-sg610.pem ec2-user@52.198.133.68 Last login: Sat Nov 5 05:37:54 2016 from softbank219207110185.bbtec.net __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/ 13 package(s) needed for security, out of 21 available Run “sudo yum update” to apply all updates. [ec2-user@ip-10-0-0-10 ~]$ [ec2-user@ip-10-0-0-10 ~]$ sudo yum install httpd Loaded plugins: priorities, update-motd, upgrade-helper Resolving Dependencies –> Running transaction check —> Package httpd.x86_64 0:2.2.31-1.8.amzn1 will be installed –> Processing Dependency: httpd-tools = 2.2.31-1.8.amzn1 for package: httpd-2.2.31-1.8.amzn1.x86_64 –> Processing Dependency: apr-util-ldap for package: httpd-2.2.31-1.8.amzn1.x86_64 –> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.31-1.8.amzn1.x86_64 –> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.31-1.8.amzn1.x86_64 –> Running transaction check —> Package apr.x86_64 0:1.5.1-1.12.amzn1 will be installed —> Package apr-util.x86_64 0:1.4.1-4.17.amzn1 will be installed —> Package apr-util-ldap.x86_64 0:1.4.1-4.17.amzn1 will be installed —> Package httpd-tools.x86_64 0:2.2.31-1.8.amzn1 will be installed –> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: httpd x86_64 2.2.31-1.8.amzn1 amzn-main 1.2 M Installing for dependencies: apr x86_64 1.5.1-1.12.amzn1 amzn-main 116 k apr-util x86_64 1.4.1-4.17.amzn1 amzn-main 87 k apr-util-ldap x86_64 1.4.1-4.17.amzn1 amzn-main 17 k httpd-tools x86_64 2.2.31-1.8.amzn1 amzn-main 80 k Transaction Summary ================================================================================ Install 1 Package (+4 Dependent packages) Total download size: 1.5 M Installed size: 3.6 M Is this ok [y/d/N]: y Downloading packages: (1/5): apr-1.5.1-1.12.amzn1.x86_64.rpm | 116 kB 00:00 (2/5): apr-util-1.4.1-4.17.amzn1.x86_64.rpm | 87 kB 00:00 (3/5): apr-util-ldap-1.4.1-4.17.amzn1.x86_64.rpm | 17 kB 00:00 (4/5): httpd-2.2.31-1.8.amzn1.x86_64.rpm | 1.2 MB 00:00 (5/5): httpd-tools-2.2.31-1.8.amzn1.x86_64.rpm | 80 kB 00:00 ——————————————————————————– Total 9.3 MB/s | 1.5 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : apr-1.5.1-1.12.amzn1.x86_64 1/5 Installing : apr-util-1.4.1-4.17.amzn1.x86_64 2/5 Installing : httpd-tools-2.2.31-1.8.amzn1.x86_64 3/5 Installing : apr-util-ldap-1.4.1-4.17.amzn1.x86_64 4/5 Installing : httpd-2.2.31-1.8.amzn1.x86_64 5/5 Verifying : httpd-tools-2.2.31-1.8.amzn1.x86_64 1/5 Verifying : apr-1.5.1-1.12.amzn1.x86_64 2/5 Verifying : httpd-2.2.31-1.8.amzn1.x86_64 3/5 Verifying : apr-util-ldap-1.4.1-4.17.amzn1.x86_64 4/5 Verifying : apr-util-1.4.1-4.17.amzn1.x86_64 5/5 Installed: httpd.x86_64 0:2.2.31-1.8.amzn1 Dependency Installed: apr.x86_64 0:1.5.1-1.12.amzn1 apr-util.x86_64 0:1.4.1-4.17.amzn1 apr-util-ldap.x86_64 0:1.4.1-4.17.amzn1 httpd-tools.x86_64 0:2.2.31-1.8.amzn1 Complete! èšå®ããApacheã®httpd.confãã¡ã€ã«ã®DocumentRootã¯ã/var/www/html/ããšããŸããã ä»åã¯ãµãŒããŒãç«ã¡äžããããšãç®çãªã®ã§ãæäœéã®HTMLãã¡ã€ã«ãäœæããŸãããã [ec2-user@ip-10-0-0-10 ~]$ cd /var/www/html/ [ec2-user@ip-10-0-0-10 html]$ sudo touch index.html health.html [ec2-user@ip-10-0-0-10 html]$ sudo chown ec2-user *.html [ec2-user@ip-10-0-0-10 html]$ vi index.html åŸè¿°ããããŒããã©ã³ãµãŒã®äœ¿çšã«å¿
èŠãªãã¡ã€ã«ãäœæããŸãã [ec2-user@ip-10-0-0-10 html]$ vi health.html ããããµãŒããŒãç«ã¡äžããŠã¿ãŸãããã [ec2-user@ip-10-0-0-10 ~]$ sudo service httpd start Starting httpd: [ OK ] äžæããããŸããã ããã§IPã¢ãã¬ã¹ãçŽæ¥ãã©ãŠã¶ã§å©ãã°äžèšãã¡ã€ã«ãèŠããããã«ãªããŸãã ãŠã§ããµãŒããŒãå€éåããæºå å
ç¢ãªãŠã§ãã¢ããªã®æ§ç¯ã«ã¯ããŒããã©ã³ãµãŒãšåŒã°ããä»çµã¿ã掻èºããŸãã Webã¢ããªã®ããã©ãŒãã³ã¹ãäžããææ®µã®ïŒã€ãšããŠãWebãµãŒããŒå°æ°ãå¢ããããšããããŸãããã®æã«ãè€æ°ã®WebãµãŒããŒã®è² è·ç¶æ³ãèŠãªããããµã€ã蚪åè
ãã©ã®WebãµãŒããŒã«æ¡å
ãã¹ããã倿ããŠãããã®ãããŒããã©ã³ãµãŒã«ãªããŸããã¬ã¹ãã©ã³ã®ãŠã§ã€ã¿ãŒã®ããã«ãã客ãäžçªæåã«æ¥å®¢ã空ããŠããããŒãã«ã«æ¡å
ããŠãããã€ã¡ãŒãžã§ãã ã¡ãªã¿ã«ããµãŒããŒã®å°æ°ãå¢ããããšãã¹ã±ãŒã«ã¢ãŠããåå¯Ÿã«æžããããšãã¹ã±ãŒã«ã€ã³ãšåŒã³ãŸãããŸãããµãŒããŒã®ã¹ããã¯(ïŒå°ãããã®æ§èœ)ãå¢ããããšãã¹ã±ãŒã«ã¢ãããæžããããšãã¹ã±ãŒã«ããŠã³ãšåŒã³ãŸãã æ©éãAWSã§ããŒããã©ã³ãµãŒïŒElastic Load BalancingïŒãèšçœ®ããŠãµãŒããŒã®å€éåãåºæ¥ãæ§æã«ããŠã¿ãŸãããã 髿©èœçã®ããŒããã©ã³ãµãŒãæè¿ç»å ŽããŸããããä»åã¯Classic Load BalancerãéžæããŸãã ELBã®ååã»ELBãåŸ
åããããŒãçªå·ãšäœ¿çšãããµãããããèšå®ããŸãã ã»ãã¥ãªãã£ãŒã°ã«ãŒããä»åHTTP-port:80(HTTPS-port:443)以å€ã¯äœ¿çšããŸããã ãã«ã¹ãã§ãã¯ãèšå®ããŸãããã«ã¹ãã§ãã¯ã«ã¯ããã€ãçš®é¡ããããŸãããä»åã¯HTTPçµç±ã§ãã§ãã¯ããããšæããŸããELBã¯äºãèšå®ããããã¡ã€ã«ã®ååŠãšãã®å
容ãäžå®æéæ¯ã«ãã§ãã¯ããŸãããã¡ã€ã«ãç¡ãã£ããå
å®¹ãæ±ºãããããã®ã§ãªããã°ãã§ãã¯NGãšããŠããã®ã€ã³ã¹ã¿ã³ã¹ãELBã®ç®¡çäžããåãé¢ããŸããéã«ãåãé¢ãããã€ã³ã¹ã¿ã³ã¹ãåé¡ç¡ãããšãäžå®åæ°å確èªã§ãããããã®ã€ã³ã¹ã¿ã³ã¹ãåã³ELB管çäžã«æ»ããŸããpingãã¹ã«ã¯å
ã»ã©äœæãããhealth.htmlããæå®ããŸãã ELBã«ã¶ãäžããã€ã³ã¹ã¿ã³ã¹ãèšå®ããŸãã ã¿ã°ä»ããããŠELBãäœæããŸãã ãŠã§ãçšã»ãã¥ãªãã£ãŒã°ã«ãŒããåèšå®ããŸãã ãã£ããELBãèšå®ããã®ã§ããããçµç±ããªãWebãµãŒããŒãžã®æ¥ç¶ã¯æ§ããŠæ¬²ããã§ããããæ°ããã»ãã¥ãªãã£ãŒã°ã«ãŒããäœæã»èšå®ããŸãããã EC2ïŒWebãµãŒããŒïŒ ã€ã³ããŠã³ãèšå®äŸ HTTP – TCP – port:80 – 10.0.0.0/16ïŒåãµããããå
ïŒex.äœæããELBïŒããã®ã¢ã¯ã»ã¹ã®ã¿èš±å¯ïŒ HTTPS – TCP – port:443 – 10.0.0.0/16ïŒåãµããããå
ïŒex.äœæããELBïŒããã®ã¢ã¯ã»ã¹ã®ã¿èš±å¯ïŒ SSH – TCP – port:22 – 10.0.0.0/16ïŒåãµããããå
ããã®ã¢ã¯ã»ã¹ã®ã¿èš±å¯ïŒ ELBïŒããŒããã©ã³ãµãŒïŒ ã€ã³ããŠã³ãèšå®äŸïŒåè¿°ã§èšå®æžïŒ HTTP – TCP – port:80 – 0.0.0.0/0ïŒã©ãããã§ãOKïŒ HTTPS – TCP – port:443 – 0.0.0.0/0ïŒã©ãããã§ãOKïŒ äœæããã»ãã¥ãªãã£ãŒã°ã«ãŒããå²ãåœãŠãŸãã ã»ãã¥ãªãã£ãŒã°ã«ãŒãã®èšå®ãçµãã£ãŠãã°ãããããšãELBã®é
äžã«ãIn Serviceããšãªã£ãã€ã³ã¹ã¿ã³ã¹ã衚瀺ãããŸãã ãOut Of Serviceãã®ãŸãŸå€ãããªãå Žåã¯ãã«ã¹ãã§ãã¯ã«å€±æããŠããŸã…ã»ãã¥ãªãã£ãŒã°ã«ãŒãïŒã¢ã¯ã»ã¹å
ã®çµãæ¹ãæ£ãããïŒãELBãã«ã¹ãã§ãã¯ïŒpingãã¹ãæ£ãããïŒã®èšå®ãèŠçŽããŸãããã ãã«ã¹ãã§ãã¯ã¯ããã©ã«ãã§30ç§ããšã«è¡ããã10åé£ç¶ã§æåãããšãIn Serviceãæ±ããšãªããŸãã çµãããŸã§åŸ
ãŠãªããã°èšå®ã§ãããççž®ããããšãåºæ¥ãŸãã ãIn Serviceããªã€ã³ã¹ã¿ã³ã¹ãELBã«1ã€ä»¥äžããããšã確èªã§ããããELBçµç±ã§WebãµãŒããŒã«ã¢ã¯ã»ã¹ããŠã¿ãŸãããã ELBã®DNSåãã³ããŒããŠãWebãã©ãŠã¶ã®ã¢ãã¬ã¹æ¬ã«ããŒã¹ãããŸãã ãããŸã§ã®èšå®ã§ãELBãçµç±ããWebãµãŒããŒãžã®ã¢ã¯ã»ã¹ãåºæ¥ãããã«ãªããŸããã ä»ã®æç¹ã§WebãµãŒããŒãå¢èšããŠãè¯ãã®ã§ãããæ¬¡åã®èšäºã§æåŸã®èšå®ãå®äºããŠããWeb01ãè€è£œããELBã«ã¶ãäžããŸãã SSHèžã¿å° VPCãããã¯ãŒã¯å
ïŒã®ãµãŒããŒïŒã«æ¥ç¶ããããã®èžã¿å°ãµãŒããŒãæºåããŸãããã®åœ¹å²ã¯ãå®¶ã®æ·å°å
ãžèª°ã§ã奜ãåæã«å
¥ã£ãŠããããªãããã«ãå¡ãäœãã»è£å£ãèšãããã«èŠåå¡ãç«ããããããªã€ã¡ãŒãžã§ãã Apacheã®èšå®ã§æ¢ã«äœ¿ã£ãŠããŸããããæ®æ®µããŸãã€ã³ãã©ã«éŠŽæã¿ãç¡ãæ¹ã§ããæã
ãµãŒããŒã«ãã°ã€ã³ããŠè¬ã®åªæã®ãããªæååãæã¡èŸŒãããšããããããããŸããããã®ãããªå Žåã«ãã䜿ãããSSH (Secure SHell) ãšãããœãããŠã§ã¢ã䜿ã£ãŠé éå°ã«ååšãããµãŒããŒãã¡ã³ããã³ã¹ããããšãåºæ¥ãã®ã§ãããç¡é¢ä¿ã®ç¬¬äžè
ããã¢ã¯ã»ã¹ãããªãããã«å¯ŸçãããŠããããšã¯å€§å€éèŠã§ããå ããŠSSHã®æ¥ç¶å
IPããäŒç€Ÿãªãã£ã¹ãèªåã®èªå®
ã«éå®ããããšã§ãµãŒããŒãæ»æã«éã確çãæžããããšãã§ããŸãã AMIããã€ã³ã¹ã¿ã³ã¹ãäœæããŸããä»åã¯èªåå²åœãããªãã¯IPã¯ç¡å¹ã«ããŸãã ã€ã³ã¹ã¿ã³ã¹åãèšå®ããŸãã äœè«ã§ãããAWS Certificate詊éšã§ã¯SSHã®èžã¿å°ã€ã³ã¹ã¿ã³ã¹ãbastionïŒãåè©ããå¯ç®åè©ã1ãç¯åã çšå ¡(ãããã»).2èŠå¡.3ãšãã§(ãšèŠãªããããã®[人ïŒå Žæ])ïŒãšåŒã¶ããã§ãã ã»ãã¥ãªãã£ãŒã°ã«ãŒããèšå®ããŸããç¹å®ã®IPã¢ãã¬ã¹ïŒäŒç€Ÿãªãã£ã¹ãèªåã®èªå®
ïŒããã®ã¢ã¯ã»ã¹ã®ã¿ãåãä»ããŸãã Elastic IP äžèšæé ã§SSHèžã¿å°ãµãŒããŒãèšå®ããŸããããã€ã³ã¹ã¿ã³ã¹ã«ã°ããŒãã«IPãèšå®ãããŠããªãããããã®ãŸãŸã§ã¯å€éšããã®æ¥ç¶ãåãå
¥ããããšãã§ããŸããã[èªåå²åœãããªãã¯IP]ãªãèšå®ãããã®ã§ãããããã°ããŒãã«IPã¯å²åœãããã®ã§ããåèµ·åæã«ãã®IPã¢ãã¬ã¹ãå€ãã£ãŠããŸããšããèœãšã穎ãããããå®çšçã§ã¯ãããŸããããã®ãŸãŸSSHèžã¿å°ãµãŒããŒãéçšããã®ã¯äžäŸ¿ã§ãã®ã§äœãšãããŸãããã ããã§ãElastic IPã®ç»å Žã§ãã Elastic IPã®ç»é¢ã衚瀺ããæ°ããIPã¢ãã¬ã¹ãã²ããããŸãããã ã²ããããElastic IPãSSHèžã¿å°ã€ã³ã¹ã¿ã³ã¹ã«é¢é£ä»ããŸããèšå®æã«ã€ã³ã¹ã¿ã³ã¹IDãå¿
èŠã«ãªããŸãã ã€ã³ã¹ã¿ã³ã¹IDãåãããªãå Žåã¯EC2ã®ç»é¢ããã³ããããŸãããã Elastic IPã®èšå®ãåºæ¥ãŸãããå³äžã®Elastic IPã®æ¬ã«çŽä»ããIPã衚瀺ãããŠããããšã確èªããŸããã52.199.203.168ã å®éã«Elastic IPã䜿ã£ãçé確èªãšãWebãµãŒããŒåå¥ã«SSHæ¥ç¶ãåºæ¥ãªããªã£ãŠããããšã確èªããŸãã Route53ïŒDNSïŒ ELBã«ã¢ã¯ã»ã¹ãããéã«ãå
è¿°ã®ãããªé·å€§ãªã¢ãã¬ã¹ã§ã¯ãšãŠãèŠããããŸããããã¡ã¢ããã®ãäžèŠåŽã§ãããŸãã·ã¹ãã ããŠã§ããµã€ãã®ãã©ã³ãã£ã³ã°ã«ã¯ååã倧å€éèŠã§ããïŒ ãã®ã¹ãããã§ã¯ç¬èªã®ãã¡ã€ã³åãAWSäžã§äœ¿çšã§ããããã«èšå®ããŸãã IPã¢ãã¬ã¹ãšãã¡ã€ã³åãçŽä»ããä»çµã¿ãšããŠDNSãµãŒããŒããããŸããDNSãµãŒããŒãžãã¡ã€ã³ã䌺ããšãã®IPãå¥ã®ãã¡ã€ã³ãè¿ã£ãŠããŠåå解決ããŠãããŸããAWSã«ãããŠãDNSãç°¡åã«æ§ç¯ã§ããããã«Route53ãçšæãããŠããŸããããããããIPã¢ãã¬ã¹ãšãã¡ã€ã³åãããã¡ã€ã³åãšãã¡ã€ã³åãã¯ã©ã®ããã«ããŠçŽä»ããããã®ã§ããããïŒ ã¢ãã¬ã¹ãšããã®ã¯ãã«ãŒããã¡ã€ã³ããšããµããã¡ã€ã³ããšãããã®ã«åè§£ã§ããŸãã ã«ãŒããã¡ã€ã³åã®ææè
ã¯ããµããã¡ã€ã³ãšãã圢ã§å¥œããªãã¡ã€ã³åãæãåºãããšãåºæ¥ãŸãã äŸãã°ãyattemiyou-aws.club ãšããã«ãŒããã¡ã€ã³ããããšããŸãããã®ãã¡ã€ã³ã®ææè
ã¯ã www.yattemiyou-aws.club ããmail.yattemiyou-aws.club ãªã©ãšãã£ããµããã¡ã€ã³ãèªç±ã«æãåºããŠãããããã«IPãçŽä»ãããããšãã§ãããšããããã§ãã ãã®ãšãããã¡ã€ã³ãIPã¢ãã¬ã¹ã«çŽä»ããŠãããã®ã Aã¬ã³ãŒã ïŒãã¡ã€ã³ => xxx.xxx.xxx.xxxïŒããããã¡ã€ã³åããã®ãŸãå¥ã®ãã¡ã€ã³åã«çŽä»ããŠãããã®ã CNAME ïŒãã¡ã€ã³ => ãã¡ã€ã³ïŒãªã©ãšåŒã³ãŸããããã§ã¯å°ãå眮ããé·ããªããŸãããå®éã«èšå®ãè¡ããããšæããŸãã Route53ã¯ã¬ãžã¹ãã©ãšããŠã®æ©èœãåããŠããããããã¡ã€ã³ååŸãå«ããäœæ¥ãäžè²«ããŠAWSã§å®çµãããããšãå¯èœã§ãããã ããã¡ã€ã³ååŸã«å€å°ã®è²»çšãæãããŸãã®ã§ãä»åã¯äºãå¥ã§ååŸããŠããããã¡ã€ã³ãAWSã«çŽä»ããããã«ããããšæããŸãã ãŸããæ¬èšäºã®å
容ã詊ãç®çã§ãã¡ã€ã³ãå¿
èŠãªæ¹ã«åããŠãç¡æã§ååŸã§ãããã¡ã€ã³ (2016/12/04çŸåš) Dot tk ãã玹ä»ããŸãã â» äžäžããªã³ã¯å
ãµã€ãã®å©çšã«ã€ãåé¡ãçããå Žåããã®è²¬ä»»ã¯ãªã³ã¯å
ãµã€ããè² ã£ãŠããŸãã®ã§å©çšè
ãèªèº«ã®è²¬ä»»ã§å¯ŸåŠããŠãã ãããããé¡ãããããŸãã Route53ã§yattemiyou-aws.club ã®Hosted Zoneãäœæãã ååŸãããã¡ã€ã³ã®ç®¡çç»é¢ã§ãAWSããäžããããDNSãµãŒããŒãèšå®ããŸãã äœæãããã¹ããŸãŒã³ã«é¢é£ã¥ããããŒã ãµãŒããŒãæ§ããŠãããŸãã ãã¡ã€ã³ååŸæ¥è
(以äžã®äŸã¯ãåå.comã§ã) ã®ãã¡ã€ã³èšå®ã§ããŒã ãµãŒããŒãèšå®ããŸãã ãã®æãæ§ããŠãããïŒã€ã®ãµãŒããŒãã³ããã§æã¡èŸŒã¿ãŸãããã ãã®æé ã§ååŸãããã¡ã€ã³ãAWSã®ç®¡çäžã«çœ®ãããšãã¬ãžã¹ãã©ã«äŒããŸãã ããã§ã¯ãä»ååŸãããã¡ã€ã³ãšELBãçŽä»ããŸãããã å
ã㯠CNAME ã§ELBã«ä»åããã¬ã³ãŒããäœæããŸããTTLã¯300ç§äœãšçãã«ã www.yattemiyou-aws.club -> iwa-elb-01-731894849.ap-northeast-1.elb.amazonaws.com ãçŽä»ããããšãåºæ¥ãŸãããïŒCNAMEã®èšå®ã§ã¯ãµããã¡ã€ã³ãå¿
èŠã«ãªããããã«ãŒããã¡ã€ã³ã§ã®ã¢ã¯ã»ã¹èšå®ãããå Žåã¯Aã¬ã³ãŒãã§è¡ããŸããïŒ æ¬¡ã« Aã¬ã³ãŒã ã®èšå®ããŸãã åè¿°ã§ããã¡ã€ã³ãšIPã¢ãã¬ã¹ãçŽä»ãããã®ãAã¬ã³ãŒããšåŒãã§ããŸãããããRoute53ã«éããIPã¢ãã¬ã¹ã®ä»£ããã«AWSã§äœ¿ãããAliasãèšå®ããããšã€ãªã¢ã¹ãªãœãŒã¹ã¬ã³ãŒãã¿ã€ãïŒAã¬ã³ãŒãã®AWSäºçš®çãªããã®ïŒãšåŒã°ããç¬èªã®èšå®ããããŸãïŒå€ããã¯éåžžã®Aã¬ã³ãŒããšããŠèŠãããŸãïŒãå®çŸãããã€ã³ãã©æ§æã«ãã£ãŠã¯ELBãžã®ã¢ã¯ã»ã¹ã«CNAMEã䜿ããªãå ŽåããããŸãã®ã§ãAã¬ã³ãŒãã®èšå®ã¯æ¯éèŠããŠãããŠãã ããã www.yattemiyou-aws.club -> ïŒã°ããŒãã«ïŒIPã¢ãã¬ã¹ ãçŽä»ããããšãåºæ¥ãŸããã ã§ã¯ãèšå®ãããã¡ã€ã³ã䜿ã£ãŠELBãžã¢ã¯ã»ã¹ããŠã¿ãŸãããã äžæããããŸããã ããã§ãRote53ïŒDNSãµãŒããŒïŒ -> ELBïŒããŒããã©ã³ãµãŒïŒ -> EC2ïŒWebãµãŒããŒïŒ ãŸã§ã®ãã±ããã®æµããæ£ããèšå®ããããšãã§ããŸããã 第2åç®ã®æåŸã« åŸã
ã«Webã·ã¹ãã ã®ã€ã³ãã©ããããªã£ãŠããŸããããDBãµãŒããŒãKVSãèšå®ãããŠããŸããã®ã§ãã·ã¹ãã ãšããŠãããå©çšããã«ã¯ãŸã åäžè¶³ã§ããæ¬¡åãã®ã€ã³ãã©ã«ããŒã¿ããŒã¹ãªã©ã®åçš®ããã«ãŠã§ã¢ã远å ããŠãããŸãã ãæž
芧é ãããããšãããããŸããã Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã èå³ã®ããæ¹ã¯ãã²äžåºŠæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã âã·ãªãŒãº ã»ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ïŒã·ãªãŒãºç¬¬1åïŒ ã»ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ïŒã·ãªãŒãºç¬¬3åïŒ ã»ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ïŒLambda|API Gateway|ã·ãªãŒãºç¬¬4åïŒ âçè
ã®ããããèšäº ã»ãDBèšèšå
¥é|ERå³|MySQLãã³ã³ããã¬ã·ãŒãããåŠã¶ïŒããŒã¿ã¢ããªã³ã°ææ³ ã»ãæ©æ¢°åŠç¿å
¥é|Python|scikit-learnãçµå±äœãã§ããïŒcheat-sheetãã解説ããŠã¿ãç¯
ããã«ã¡ã¯ã岩æ©è¡åŸã§ããæè¿ã®AWSã¯ã次ããæ¬¡ã«æ°ããªãµãŒãã¹ãå±éãããã®å¢ãã¯çãŸãããšãç¥ãªãŸãããä»ãITãšåã£ãŠãåããªãé¢ä¿ãšèšã£ãŠãéèšã§ã¯ãªãã§ãããã ããã§ãã®åºŠãè€æ°åã«æž¡ã£ãŠAWSäžã§ã®Webã¢ããªåãã®ãµãŒããŒç°å¢æ§ç¯ã«ã€ããŠèšäºã«ããŠã¿ãããšæããŸãã ä»åæ§ç¯ãããµãŒããŒç°å¢ã¯ã âVPCïŒVirtual Private CloudïŒåå°å
šäœïŒã®æ§ç¯ âAZïŒAvailability ZoneïŒå»ºé ç©ãšãªã¢ïŒããµããããïŒïŒå»ºé ç©ãèšçœ®ããããã®åºç€ïŒã®æ§ç¯ âWEBãµãŒããŒã®èšçœ®ïŒEC2ïŒ âããŒããã©ã³ãµãŒïŒELBïŒçé¢ïŒã®èšçœ® âã¹ããããµãŒããŒïŒEC2ïŒè£å£çé¢ïŒã®èšçœ® âDNSã®èšå®ïŒRoute53ïŒäœæç»é²ïŒ âããŒã¿ããŒã¹ã®èšçœ®ïŒRDSïŒ âKVSã®èšçœ®ïŒElastiCacheïŒ ã…etc ãæ³å®ããŠãããæçµçã«ã¯ä»¥äžã®ãããªã€ã¡ãŒãžã«ãªããŸãã 第ïŒåã§ã¯ãåŸè¿°ããVPCãšAvailability Zone (以äžAZ)ãšåŒã°ããèšå®ãšãã®åäœç¢ºèªãŸã§ãè¡ããŸããäœäºãäžæºåã倧åã§ãã VPCãäœæããŠã¿ã ãŸãæåã«VPCãäœæããã®ã§ãããããããVPCãšã¯äœã§ããããïŒ VPCãšã¯AWSã¢ã«ãŠã³ãäžã«è€æ°äœæããããšãåºæ¥ããã©ã€ããŒããªãããã¯ãŒã¯ã®åäœã§ããäžè»å®¶ã建ãŠãçºã®åå°å
šäœãšãã£ããšããã§ããããã VPCã®é
äžã«ã¯ãAZãããããã®é
äžã«ã¯ãµããããããããŸãããŸãAZã¯ïŒã€ä»¥äžã®ãµãããããä¿æããããšãã§ããŸããAWSäžã§åããŠãããã¯ãŒã¯ãæ§ç¯ãããšãã¯æäœã§ãïŒã€ã®VPCãïŒã€ã®AZãïŒã€ã®ãµãããããäœæããå¿
èŠãããŸãã AZã¯å»ºé ç©ãšãªã¢ããµããããã¯å»ºé ç©ãèšçœ®ããããã®åºç€ãšãã£ãã€ã¡ãŒãžã§ãã AZã¯äºãã«åœ±é¿ãåããªãããã«å Žæããããã¯ãŒã¯ãåé¢ãããŠãããããããå°çšã®é«éåç·ã§çžäºæ¥ç¶ãããŠããŸãããµãããããè€æ°åäœæããŠãããããå¥ã
ã®AZã䜿çšããèšå®ãè¡ãããšã§ãïŒã€ã®AZãããŠã³ããŠããµãŒãã¹ã®ç¶ç¶æ§ã«ã¯åé¡ãçããªãèšèšã«ããããšãã§ããŸãã äžæ¹ã®AZå
ã«å»ºãŠãããå®¶ãç«äºã«ãªã£ãŠããããäžæ¹ã®AZå
ã®å®¶ã«ã¯åœ±é¿ããªããšããèš³ã§ãã ãŸããç¹å¥ãªèšå®ãããªãéãã¯è€æ°ã®VPCéã§ã®éä¿¡ã¯åºæ¥ãŸãããããµããããéã®éä¿¡ã¯å¿
èŠã«å¿ããŠééãããããšãã§ããŸãã ããã§ã¯ã以äžã®æé ã§VPCãšAZãããããïŒã€ãã€äœæããŠã¿ãŸãããã â» AWSã³ã³ãœãŒã«ã®ãã¶ã€ã³ãæè¿å€ãããŸããããä»åã¯ä»¥åã®ã€ã³ã¿ãŒãã§ãŒã¹ã䜿ã£ãŠè¡ããããšæããŸãã VPCãŠã£ã¶ãŒããéå§ããŸãããã æäžäœã®ãïŒåã®ãããªãã¯ãµãããããæã€VPCããéžæããŸãããã®èšå®ã§äœæããVPCã¯ElasticIPãçŽæ¥å²ãåœãŠãããšã§ã€ã³ã¿ãŒãããã«æ¥ç¶ããããšã«ãªããŸãããã峿 Œã«éä¿¡ãã³ã³ãããŒã«å¯èœãªã€ã³ãã©ãæ§ç¯ããå Žåã¯ãïŒã€äžã®ããããªãã¯ãšãã©ã€ããŒããµãããããæã€VPCãã䜿çšããããšã«ãªããšæããŸãã æ¬¡ã®ç»é¢ã§ãäœæããVPCã®è©³çްèšå®ãããŸãã å
ãã¯ãIP CIDRïŒãµã€ããŒïŒãããã¯ãèšå®ããŸããããã§ã¯é©åœã«ã/16ãã®å€§ããã確ä¿ããããšã«ããŸãã CIDRãšã¯… å
ãã¯ãã©ã€ããŒãIPã«ã€ããŠããããããŸãããã IPã¢ãã¬ã¹ã¯ãã ãããã¯ãŒã¯éš ããšã ãã¹ãéš ãããæããŸãããããã¯ãŒã¯éšãçãã»ã©ã»ãã¹ãéšåãé·ãã»ã©å€§ããªãããã¯ãŒã¯ã®æ§ç¯ãå¯èœã§ãããŸããããã¯ãŒã¯éšãšãã¹ãéšã®æ§æã«ã¯èŠæ ŒïŒã¯ã©ã¹ïŒããããŸãã ã¯ã©ã¹AïŒ 10.0.0.0/8 = 10ïŒãããã¯ãŒã¯éšïŒ+ 0.0.0ïŒãã¹ãéšïŒ ãããã 倧ãããããã¯ãŒã¯ãäœãå ŽåïŒæå€§16,777,216åã®ã¢ãã¬ã¹é
åžãå¯èœïŒ ã¯ã©ã¹BïŒ 172.16.0.0/16 = 172.16ïŒãããã¯ãŒã¯éšïŒ+ 0.0ïŒãã¹ãéšïŒ ãããã äžãããã®ãããã¯ãŒã¯ãäœãå ŽåïŒ65,536åã®ã¢ãã¬ã¹é
åžãå¯èœïŒ ã¯ã©ã¹CïŒ 192.168.1.0/24 = 192.168.1ïŒãããã¯ãŒã¯éšïŒ+ 0ïŒãã¹ãéšïŒ ãããã å°ãããããã¯ãŒã¯ãäœãå ŽåïŒ256åã®ã¢ãã¬ã¹é
åžãå¯èœïŒ äžèšã¯ã©ã¹ã®IPã¢ãã¬ã¹ã®ãå°»ã«çãã/8ãã/16ãã/24ãã¯CIDR衚èšãšåŒã°ãããããã¯ãŒã¯éšã®é·ãã瀺ãå€ã§ãIPã¢ãã¬ã¹ãïŒé²æ°è¡šèšã«ããå Žåã®å
é ããæ¡æ°ã«ãªããŸããäŸãã°ã10.0.0.0ïŒ/8ïŒããïŒé²æ°è¡šèšãããšã00001010.00000000.00000000.01111001ïŒ/8ïŒãã«ãªããŸãããããã¯ãŒã¯éšã¯ãã®æ°åã®çŸ
åã®å
é ããã 8 ãæ¡ãŸã§ãã€ãŸãã00001010ããæããŸãããã®ãããªãã©ã€ããŒãIPãã ã¯ã©ã¹ãã« ããšåŒã³ãŸãã ããŠæ¬é¡ã®CIDRã§ãããããã¯ãClassless Inter-Domain Routingãã®ç¥ã§ããã€ãŸãã ã¯ã©ã¹ã¬ã¹ ããªã®ã§äžã®ãããªèŠæ Œã«åœãŠã¯ããããšãªãèªç±ãªãµã€ãºã®ãããã¯ãŒã¯ã®æ§ç¯ãå¯èœã«ãªããŸããä»®ã«ã257åã®ã¢ãã¬ã¹ãå¿
èŠãªãããã¯ãŒã¯ãæ§ç¯ãããå Žåããã¯ã©ã¹ãã«ãã ãšã¯ã©ã¹BãCIDR衚èšã§ã/16ãã®ãããã¯ãŒã¯ãµã€ãºïŒæå€§65,536åã®ã¢ãã¬ã¹ïŒãéžæããããšã«ãªããç¡é§ãå€ããªããŸããäžæ¹ãã¯ã©ã¹ã¬ã¹ãã§ããšãCIDR衚èšã§ã/23ãã®ãããã¯ãŒã¯ãµã€ãºïŒæå€§512åã®ã¢ãã¬ã¹ïŒãéžæã§ããã®ã§ç¡é§ã®å°ãªããããã¯ãŒã¯ãµã€ãºæ§ç¯ãå¯èœã«ãªããŸãã äžèšã®ãããªãèªç±ãªãµã€ãºã®ãããã¯ãŒã¯ã®æ§ç¯ãããä»çµã¿ãCIDRãšåŒã³ãŸãã VPCåã«ã¯åè§è±æ°åã§ã奜ã¿ã§èšå®ããŸãããïŒ æ¬¡ã«ãããªãã¯ãµãããããèšå®ããŸãã ããã§ã¯ãIP CIDRãããã¯ã§ç¢ºä¿ãã倧ããªIPã¢ãã¬ã¹ã®å¡ã䜿ããããããã«åå²ããŸãããµããããã§åå²ããããããã¯ãŒã¯ã¯å¿
ãïŒã€ã®AZã«å±ããŸãã åå²ã®ç²åºŠã¯ã€ã³ãã©ã®èšèšèŠé
ã«ãã£ãŠãç°ãªã£ãŠããã®ã§ãããããã§ã¯åãããããã/24ãã§åå²ããããšã«ããŸãïŒæå€§256åã®ã¢ãã¬ã¹ã®é
åžãå¯èœïŒã 以äžã®èšå®ã¯ããã©ã«ãã®ãŸãŸVPCãäœæããŸãã VPCã®äœæãšãããã«ä»éããèšå®ãèªåçã«è¡ãããŸãã VPCãæ£åžžã«äœæå®äºããŸããããã®ãŠã£ã¶ãŒããå®äºããçµæãVPCã®ä»ã«ãµããããã»ã«ãŒãããŒãã«ã»ã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ã»DHCPãªãã·ã§ã³ã»ãããèªåçã«äœæãããŸããã EC2ã€ã³ã¹ã¿ã³ã¹ãç«ã¡äžããŠã¿ã ã§ã¯äœæããVPCäžã«EC2ã€ã³ã¹ã¿ã³ã¹ãé
眮ããŠãVPCãæ£åžžã«èšå®ã§ããã確èªããŠã¿ãŸãããã ç»é¢äžå€®ã®ãã€ã³ã¹ã¿ã³ã¹ãäœæããã¿ã³ãæŒããŠã€ã³ã¹ã¿ã³ã¹äœæãŠã£ã¶ãŒããå§ããŸãã æãäžè¬çãªAmazon LinuxãéžæããŸãã ã€ã³ã¹ã¿ã³ã¹ã¿ã€ããéžæããŸããä»åã¯ç¡æå©çšæ 察象ã§ãã t2.micro ãéžæããæ¬¡ã®æé ã«é²ã¿ãŸãããã ããŒã³ãããã€ã³ã¹ã¿ã³ã¹ã®è©³çްèšå®ãè¡ããŸãã ç«ã¡äžããã€ã³ã¹ã¿ã³ã¹æ°ãïŒã€ã䜿çšããVPCã»ãµãããããå
çšäœæãããã®ã§ããããšã確èªããèªåå²åœãããªãã¯IPãæå¹ã§ããããšã確èªããŸããèªåå²åœããããªãå Žåã¯ãElastic IPãå²ãåœãŠãããšã§ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ã確ä¿ããå¿
èŠãããã®ã§ãããä»åã¯ç¢ºèªçšã®ããèªåå²åœã§æžãŸããŸãã åé¡ãªããã°æ¬¡ã®æé ã«é²ã¿ãŸãã ã¹ãã¬ãŒãžã8GB確ä¿ãããŠããããšã確èªããŠæ¬¡ã®æé ã«é²ã¿ãŸãã ããããç«ã¡äžããã€ã³ã¹ã¿ã³ã¹ãåºå¥ã§ããååãä»ããæ¬¡ã®æé ã«é²ã¿ãŸãã ã»ãã¥ãªãã£ãŒã°ã«ãŒããèšå®ããŸããããã§ç¹å®ã®ãããã¯ãŒã¯ãã©ãã£ãã¯ã®ã¿ãééãããããã«ããããšã§äžæ£ã¢ã¯ã»ã¹ã®ãªã¹ã¯ãäœæžãããŸããä»åã¯HTTPãšHTTPSã¯å
šèš±å¯ãšããSSHã¯èªå®
ããã®ã¿ãèš±å¯ããèšå®ãšããŸããã èšå®ãçµãã£ããã確èªãšäœæããæŒããŸãã ãããŸã§ã®èšå®å
容ã確èªç»é¢ã«è¡šç€ºãããŸãã®ã§ãå
容ã«åé¡ããªããã°ãäœæããã¿ã³ãæŒããŸãã ããããäœæããã€ã³ã¹ã¿ã³ã¹ã«ã¢ã¯ã»ã¹ããããã®ããŒãã¡ã€ã«ãçŽä»ããŸãã ä»åã®èšäºäœæåãã«æ°ããããŒãã¡ã€ã«ãäœæããŸããïŒæ¬¡å以éã«ã€ã³ã¹ã¿ã³ã¹äœæããéã¯ããã®ããŒãã¡ã€ã«ãåå©çšããŸãïŒ ãæ°ããããŒãã¢ãäœæããããéžã³ãããŒãã¢åãå
¥åãããããŒãã¢ãããŠã³ããŒãããŸããããŠã³ããŒãããã®ãå¿ããŠããŸããšãã®ã€ã³ã¹ã¿ã³ã¹ã«ã¢ã¯ã»ã¹ããããšã¯ã§ããŸããã®ã§ã泚æããã ããŠã³ããŒãã確èªã§ããããã€ã³ã¹ã¿ã³ã¹ã®äœæããæŒããŸãããã EC2ã€ã³ã¹ã¿ã³ã¹äžèЧç»é¢ãèŠããŠã¿ãŸããããå
çšäœæããã€ã³ã¹ã¿ã³ã¹ããªã¹ãã¢ãããããŠããŸãã®ã§ãSSHçµç±ã§æ¥ç¶ããŠã¿ãŸããã (Windowsç°å¢ã®å Žåã¯æ¥ç¶æé ãç°ãªããŸãã®ã§ã泚æãã ãã)ã ãŸãã¯ã€ã³ã¹ã¿ã³ã¹ã®IPã¢ãã¬ã¹ãæ§ããŠãããŸãã ã¿ãŒããã«ãèµ·åãã以äžã®ãããªã³ãã³ããå
¥åããŸãããã 以äžã®ããã«è¡šç€ºãããã ec2-user ãŠãŒã¶ãŒã®ãã°ã€ã³ã«æåããŠããããšã確èªã§ããŸãã $ chmod 600 [ããŠã³ããŒãããããŒãã¡ã€ã«ã®ãã¹] $ ssh -i [ããŠã³ããŒãããããŒãã¡ã€ã«ã®ãã¹] ec2-user@[IPã¢ãã¬ã¹] The authenticity of host ‘52.199.68.44 (52.199.68.44)’ can’t be established. RSA key fingerprint is 72:83:d2:19:b2:fb:bf:08:5b:9b:4f:6b:3d:5c:63:63. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘52.199.68.44’ (RSA) to the list of known hosts. __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/ [ec2-user@ip-10-0-0-23 ~]$ 第1åç®ã®æåŸã« ä»åã¯èšäºéœåäžãŠã£ã¶ãŒãã䜿çšãã圢ãšãªããŸããããAWSäžã§åºæ¬çãªVPCãšAZã®èšå®ãè¡ããŸãããç«ã¡äžããã ãã§ããã°ãã£ãããšèšå®ã§ããŠããŸãã®ã§ããããã¯ãŒã¯ã«èŠææèããããããªæ¹ã§ãè©°ãŸãããšãªãèšå®åºæ¥ãã®ã§ã¯ãšæããŸãã ãããä»åã玹ä»ããå
容ã ãã§ã¯ãŸã ãŸã å®çšçãªã€ã³ãã©ãšã¯èšããŸããã®ã§ã次å以éãã®ã€ã³ãã©ã®èšå®ãè©°ããŠè¡ããããšæããŸãã ãæž
芧é ãããããšãããããŸããã Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã èå³ã®ããæ¹ã¯ãã²äžåºŠæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã âã·ãªãŒãº ã»ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ïŒã·ãªãŒãºç¬¬2åïŒ ã»ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ïŒã·ãªãŒãºç¬¬3åïŒ ã»ãã£ãŠã¿ããïŒAWSã§WEBãµãŒããŒç°å¢æ§ç¯ïŒLambda|API Gateway|ã·ãªãŒãºç¬¬4åïŒ âçè
ã®ããããèšäº ã»ãDBèšèšå
¥é|ERå³|MySQLãã³ã³ããã¬ã·ãŒãããåŠã¶ïŒããŒã¿ã¢ããªã³ã°ææ³ ã»ãæ©æ¢°åŠç¿å
¥é|Python|scikit-learnãçµå±äœãã§ããïŒcheat-sheetãã解説ããŠã¿ãç¯
ããã«ã¡ã¯ããµãŒããŒãµã€ããšã³ãžãã¢ã®æŠç°(@takedajs)ã§ãã äŒç€Ÿã®èªçæ¥ãã¬ãŒã³ãã§é ããããã·ã¥ã¢ããããŒãšè
¹çããŒã©ãŒã䜿ã£ãŠçåã¢ããã«å±ãã§ããŸãïŒ çãã¬ã¯å¥åº·ã«è¯ãããã¹ãã¬ã¹çºæ£ã«ããªããŸãã®ã§ãéåäžè¶³ã«ãªããã¡ãªãšã³ãžãã¢ã®æ¹ã«ãªã¹ã¹ã¡ã§ãïŒ ããŠæ¬é¡ã§ãã 1æ¥äžãªãã£ã¹ã§ä»äºããŠããããšãå€ãã®ã§ãæ°å転æãå
ŒããŠã©ã³ããã§ããã ãå€ã§é£ã¹ãããã«ããŠããŸãã ããã§ä»åã¯ãåŒç€Ÿããã衚åéã§æ®æ®µåãè¡ã£ãŠããã©ã³ãã®ãåºãïŒä»¶ç޹ä»ããŸãïŒ ãåºã®æ¡ä»¶ ãªãã£ã¹ããåŸæ©ïŒ~10å以å
ã§çããåºã«è¡ãããã«ããŠããŸãã 12æã«ãªãã£ã¹ãåºããšãåºãæ··ãã§ã©ã³ã飿°ã«ãªã£ãŠããŸãã®ã§ã11:50ã«ãªãã£ã¹ãåºãŠ12æãŸã§ã«ãåºã«çãããã«ããŠããŸãã ãåºã®çŽ¹ä» ãã£ããããã« éå±±åº (ã«ã¬ãŒ) ãã€ãã«ã¬ãŒ2çš®é¡ãšã¿ã³ããªãŒããã³ãã€ããã¹ãã·ã£ã«ã»ãããé£ã¹ãŠããŸãïŒ è€æ°ã®ã«ã¬ãŒãã2çš®é¡éžã¶ã®ã§ãããããŠã¬ã³ãœãŠã§äœããããµã°ããã³ã«ã¬ãŒãããããã§ãïŒ ããªãéã£ãŠããã®ã§ãé¡ãšãã€ãé Œãã¡ãã¥ãŒãèŠããããŠãŸãç¬ é³¥è¯ éå±±åº (å®é£) ããã³åè®ãåæããªã©ãé¶å¥œãã®åãšããŠã¯å ªããªããåºã§ãïŒ åºå
ã®ç
§æãå°ãæãã§èœã¡çããé°å²æ°ãªã®ã§ããŸã£ãããšã©ã³ããé£ã¹ããŸãã äŒç€Ÿã®ç· ã飲ã¿äŒã§ãå©çšãããŠé ããããšããããŸãã ãã£ãŒãã³ éå±±åº (ã¢ãžã¢æç) ã¡ãã£ãšæ°åãå€ããŠã¢ãžã¢æçãé£ã¹ãããªã£ããè¡ããŸãïŒ ã¡ã€ã³ã®ã¡ãã¥ãŒãé Œããšããµã€ãã¡ãã¥ãŒãé£ã¹æŸé¡ãªã®ã§ããã€ãé£ã¹ãããŠããŸããŸãç¬ ãµã€ãã¡ãã¥ãŒã¯ã©ããçŸå³ããã®ã§ãããç¹ã«ã°ãªãŒã³ã«ã¬ãŒãçµ¶åã§ãïŒ æšå³ æžž (å®é£) æãç©ãçŸå³ããã®ã§ãããã¯ã¹ãã©ã€ãããé£ã¹ãŠããŸãïŒ ä»ã«ãèãšè±è
ãåµã«ä»ããŠé£ã¹ããèè±è
ããçµ¶åã§ãã飯ãäœæ¯ã§ãé²ã¿ãŸãç¬ çŒãéãªã©ã®ã¡ãã¥ãŒã沢山ããã®ã§ãããããè²ããªãã®ãé£ã¹ãŠã¿ãããšæããŸãã é¢å± (å®é£) æ¥æ¿ããå®é£ã®ïŒã€ãããªãã®ã§ãããå°é¢ãªã©ã沢山ã€ããŠã³ã¹ããåãã§ãïŒ æ¥æ¿ãããããªãã®ã§ãåºã«è¡ããªããšã¡ãã¥ãŒãåãããªãã§ãããæãç©ãç
®ç©ãªã©ã©ãããšãŠãçŸå³ããã§ãïŒ æ¯æ¥è¡åãã§ããŠããŸãç¬ ãŸãšã 衚åéåšèŸºã¯ã€ã¿ãªã¢ã³ããã¬ã³ãã®ãåºãããªããšæã£ãŠããã®ã§ãããæ¢ããŠã¿ããšå®é£å±ãäžè¯ãªã©æ§ã
ãªãžã£ã³ã«ã®ãåºããããŸãïŒ å€æ®µçã«ã¯å€§äœ1000åããããçžå ŽããªãšæããŸãã 衚åé以å€ã§ããåŒç€Ÿã«ã¯ ãšã³ãžãã¢ã»ãã¶ã€ããŒå°çšã®ãµãã©ã€ããªãã£ã¹ ãå€èåã«ããã®ã§ãå€èåã§ã©ã³ããé£ã¹ãŠãããã®ãŸãŸãµãã©ã€ããªãã£ã¹ã«è¡ãããšãå¯èœã§ãã ãŸã ãŸã 玹ä»ãããçŸå³ãããåºã沢山ãããŸãïŒ ãã®èšäºã奜è©ã§ããã°ããŸãå¥ã®æ©äŒã«èšäºãæžããããšæããŸãç¬
åããŸããŠãã·ã¹ãã ãšã³ãžãã¢æ°å1幎ç®ã®è
åã§ãã ä»åã¯åããŠredisãè§Šã£ãŠã¿ãã®ã§ç޹ä»ããŸãã Redisã«è§ŠããŠã¿ãèæ¯ ä»å¹Žã®9æåã°ã«è·å Žã®å
茩ãã¡ãš isucon6 ã«åå ããŸããã æ®å¿µãªããæéããŠããŸããŸãããããããŸã§ããã©ãŒãã³ã¹ããããŸã§æèããããšã¯ãªããåå ããŒã ã®ééè
ãæ¬æŠåºå Žè
ã®äžã§ãMysqlã®ããŒã¿ãRedisã«ç§»è¡ããŠããã©ãŒãã³ã¹ãéãããŠããããŒã ãå€ãå°è±¡ã§ããã å°ã調ã¹ãŠã¿ããšRDBMSã®ãããªè€éãªåŠçã«ã¯Redisã®ããŒããªã¥ãŒã¹ãã¢ïŒKVSïŒåã¯åããªããããã¹ãŠã®ããŒã¿ã»ãããã¡ã¢ãªå
ã«èªã¿èŸŒãããããšãŠãé«éã§é«ãããã©ãŒãã³ã¹ãããããšãã§ããããšãåãããŸããã ããã©ãŒãã³ã¹ã«åé¡ããã£ãå ŽåRedisã䜿ããããšãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã«ãããŠã¯å€§åãªããšãªã®ã§ãããªRedisãè§Šããªãããã«ã¯ãããªããšããããšã§åããŠè§Šã£ãŠã¿ãŸããã Redisã®ç¹åŸŽ Redisãšã¯REmote DIctionary Serverã®ç¥èªã§ãããã€ã¿ãªã¢ã®Salvatore Sanfilippoæ°ãéçºãåµå§ããKey-Valueåã®NoSQLã§ãããŸãã ã€ã³ã¡ã¢ãªããŒã¹ ãã¹ãŠã®ããŒã¿ãã¡ã¢ãªäžã«ä¿æãããããïŒæŽæ°ã»åç
§ãéåžžã«é«éã§ãã æ°žç¶å ã€ã³ã¡ã¢ãªã®é«éæ§ãæã¡ãªããïŒåæã«ãã£ã¹ã¯ããŒã¹ã»ããŒã¿ã¹ãã¢ã®æ°žç¶æ§ããåããŠããã®ãç¹åŸŽã§ããRedisã®æ°žç¶åæ©æ§ã¯ïŒå®æçã«ïŒãŸãã¯æŽæ°åæ°ãªã©ã®æ¡ä»¶ã«ããïŒã¡ã¢ãªäžã®ããŒã¿ã»ããã®ã¹ãããã·ã§ããããã¡ã€ã«ïŒ.rdbïŒã«ãã³ããïŒåèµ·åæã«ã¯ãã®ã¹ãããã·ã§ããã®å
容ãã¡ã¢ãªã«èªã¿èŸŒãããšã«ããïŒååãã³ãããç¶æ
ãŸã§ããŒã¿ã»ããã埩å
ããŸãã å€åœ©ãªããŒã¿æ§é String(æåå) List(é£çµãªã¹ãïŒ Set(éè€ã®ãªãéå) Sorted Set(ãœãŒãæžã¿ã®SET) Hash(飿³é
å) è€æ°ã®æååèŠçŽ ãããªãããŒã¿æ§é ãããªã¥ãŒãšããŠæã€ããšãã§ãïŒéåžžã®æåååã®ããªã¥ãŒãšåãããã«ããŒã§åç
§ããããšãã§ããŸãã åŒçšå
ïŒ http://gihyo.jp/dev/feature/01/redis/0001 Redisã®ã€ã³ã¹ããŒã« ä»åã®ç°å¢ mac OS ãããVPS php5.3.3 䜿ã£ãç°å¢ã¯ãããVPSäžã§ã€ã³ã¹ããŒã«ããŠãããŸããã ã§ã¯ã€ã³ã¹ããŒã«ããããŠã¿ãŸãããã $ wget http://redis.googlecode.com/files/redis-3.2.4.tar.gz $ tar zxvf redis-3.2.4.tar.gz $ cd redis-3.2.4 $ make $ sudo make install äžèšã³ãã³ãã§redisãã€ã³ã¹ããŒã«ããããšãã§ããŸããã åäœç¢ºèª ã§ã¯åäœç¢ºèª $ redis-server 以äžã®ãããªç»é¢ãåºãŠãµãŒããŒãç«ã¡äžãã£ãããšã確èªã§ããŸãã å¥ã®ã¿ãŒããã«ã«ãŠredis-cliã䜿ãããç¢ºèª $ redis 127.0.0.1:6379> ping PONG pingãšæãŠã°PONGãšè¿ã£ãŠããŸããããã§ãµãŒããŒãç«ã¡äžãã£ãŠããããšãããããŸãã redis.conf èšå® $ sudo mkdir /etc/redis $ sudo cp redis-3.2.4/redis.conf /etc/redis/redis.conf ãã®ãšãããã¯ã¢ããã念ã®ããã«ãšã£ãŠãããŸããã ãã®confãã¡ã€ã«ãç·šéããŠãããŸãã sudo vim /etc/redis/redis.conf ããŒã¢ã³ã®èšå®ãæå¹ã«ããŸãã #daemonize no ↓ daemonize yes ãã°ãã¡ã€ã«ã®åºåå
ã倿ŽããŸãã #logfile stdout ↓ logfile /var/log/redis.log ãµãŒãã®ãã°ã®æ
å ±éãèšå®ããŸãã #loglevel verbose ↓ loglevel notice ãµãŒãã®ãã°ã®æ
å ±éãèšå®ããŸãã #loglevel verbose ↓ loglevel notice ã¡ã¢ãªã®ãã³ããã¡ã€ã«ãä¿åããå Žæã倿ŽããŸãã dir ./ ↓ /usr/local/redis/ ããã§redisã®èšå®ãã§ããŸããã®ã§æ¬¡ã¯èªåèµ·åã¹ã¯ãªããã以äžã®ããã«èšè¿°ããŠãããŸããã sudo vim /etc/init.d/redis #!/bin/sh # chkconfig: - 85 15 # description: redis-server # processname: redis # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac 以äžã³ãã³ãã§èšå®ãåæ ããŸãã $ sudo chkconfig --add redis $ sudo chkconfig redis on äžèšã®ãããªã¬ã¹ãã³ã¹ãè¿ã£ãŠæ¥ããšæåããŠããŸãã $ /sbin/chkconfig --list | grep redis redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off ããã§redisãæ±ãç°å¢ãšç°¡åãªèšå®ãã§ããŸããã php åŽãã redis åäœç¢ºèª ã§ã¯phpåŽããå®éã«è»œã䜿ã£ãŠã¿ãŸããã phpåŽããredisãæ±ãããšãã§ããã©ã€ãã©ãªãã€ã³ã¹ããŒã« $ sudo yum -y install php-pecl-redis --enablerepo=epel $ sudo service httpd restart ããã§phpåŽããredisãæ±ãããšãã§ããŸãã ã§ã¯ä»¥äžã³ãŒãã§ã¡ãããšè¿çãããããšã確èªããŠã¿ãŸãããã index.php <?php $redis = new Redis(); $redis->connect("127.0.0.1",6379); // å€ãã»ãããã $redis->set('title', 'Redisè§Šã£ãŠã¿ãŸãã'); // å€ãååŸãã $value = $redis->get('title'); // 衚瀺 echo $value; ã¡ãããšè¿ã£ãŠããŠããããšãããããŸããã ãŸãšã Redisã®ç°å¢æ§ç¯ãšç°¡åãªåãåºããŸã§ã§ããç°¡åã«èšå®ããããšãåºæ¥ãŸããã ãã ããŒã¿æ§é ãè€éã§ã©ã®å Žé¢ã§ã©ã®æ§é ã䜿ãããšãã§ããããç¥ãããšã倧åã§ãããšæããŸããã ããããRedisã䜿ãããšãã§ãããšããªãé«éãªããã©ãŒãã³ã¹ãåºãããšãã§ããã®ã§å®éã«å€ãã®ããŒã¿ã䜿ã£ãŠè©ŠããŠã¿ãããšãæ
£ããããã«å¿
èŠã ãšæããŸããã æ¬¡åã¯å®éã«mysqlãšã®æ¯èŒãªã©ãããŠããã©ãŒãã³ã¹ã®æ€èšŒãããŠã¿ãããšæããŸãã
ããã«ã¡ã¯ããšã³ãžãã¢ã®æŠæ¬ã§ãã ããŒã éçºã«ãããŠããã¡ã€ã«æ°ãã¯ã©ã¹ãå¢ããŠãããšãæ°ããã¡ã³ããŒã«èª¬æãããéãªã©ãããã¥ã¡ã³ãããªããšèª¬æãé£ãããªã£ãŠããããšããããŸã ãããå®éã®ãšãããããã¥ã¡ã³ããäœæããå·¥æ°ã確ä¿ã§ããããã£ããäœã£ãããã¥ã¡ã³ãããã£ãŠãã©ãã©ãé³è
åããŠããçŸå Žãå€ãã®ã§ã¯ãªãã§ãããã ãã®ãããä»å㯠phpDocumentor ãçšã㊠PHP ã®ã³ãŒãããèªåã§ããã¥ã¡ã³ããçæããæ¹æ³ã玹ä»ããããšæããŸã äœæ¥ç°å¢ CentOS 7.2 PHP 7.0.12 Composer 1.2.2 phpDocumentor ã®ã€ã³ã¹ããŒã« ãŸãã¯æ°èŠã«ãã£ã¬ã¯ããªãäœæããComposer ã§ phpDocumentor ãã€ã³ã¹ããŒã«ããŸã $ mkdir dev $ cd dev $ composer require --dev phpdocumentor/phpdocumentor Using version ^2.9 for phpdocumentor/phpdocumentor ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) ...ïŒç¥ïŒ Writing lock file Generating autoload files ããã§ã€ã³ã¹ããŒã«ãå®äºã§ã Composer ã§ã€ã³ã¹ããŒã«ããããšãã§ããã®ã§ãšãŠãç°¡åã§ããïŒéçºç°å¢ã§ã®ã¿äœ¿çšãããšæããŸãã®ã§ --dev ãªãã·ã§ã³ãå¿ããªãããã«æ°ãã€ããŠãã ããïŒ ããã§ã¯ãã€ã³ã¹ããŒã«ãå®äºããã®ã§ããŒãžã§ã³ã確èªããŠã¿ãŸã $ composer show | grep phpdocumentor/phpdocumentor phpdocumentor/phpdocumentor v2.9.0 Documentation Generator for PHP Composer ã§ phpDocumentor ãåé¡ãªãã€ã³ã¹ããŒã«ãããããšã確èªã§ããã®ã§ãããã¥ã¡ã³ãã®çæå
ã®ã³ãŒããç°¡åã«æžããŠã¿ãããšæããŸã app/util/tax.php <?php namespace App\Util; class Tax { /** * çšç * * @var float */ const RATE = 0.08; /** * çšèŸŒéé¡ãè¿ã * * @param int $price * @return int */ public static function getIncluded(int $price) { return floor($price * (1 + self::RATE)); } /** * çšæéé¡ãè¿ã * * @param int $price * @return int */ public static function getExcluded(int $price) { return ceil($price / (1 + self::RATE)); } } app/controllers/product.php <?php namespace App\Controllers; use App\Util; class Product { /** * åå詳现ããŒãž * * @param int $id * @param int $price * @return void */ public function showAction(int $id, int $price) { $product = $this->getProduct($id, $price); $this->view->product = $product; } /** * ååæ
å ±ãè¿ã * * @param int $id * @param int $price * @return array */ private function getProduct(int $id, int $price): array { return [ 'id' => $id, 'price' => Util::getIncluded($price), ]; } } ãã£ã2ãã¡ã€ã«ã®ç°¡å㪠PHP ã®ã³ãŒãã§ãããäžèšã®ã³ãŒãããæ©éããã¥ã¡ã³ããèªåçæããŠã¿ãããšæããŸã ããã¥ã¡ã³ãã®èªåçæ ããã¥ã¡ã³ãã®çæã«ã¯ phpdoc run ã³ãã³ãã䜿çšããŸãïŒä»å㯠phpdoc ã³ãã³ã㯠Composer ã§ã€ã³ã¹ããŒã«ãããã®ã䜿çšããŠããã®ã§æ³šæããŠãã ããïŒ $ vendor/bin/phpdoc run -d app -t public/doc Collecting files .. OK Initializing parser .. OK Parsing files ...ïŒç¥ïŒ Analyze results and write report to log .. 0.000s phpdoc run ã³ãã³ãã®ãªãã·ã§ã³ã§ããã d ãªãã·ã§ã³ã§ã³ãŒãã眮ãããŠãããã£ã¬ã¯ããªãæå®ãã t ãªãã·ã§ã³ã§ããã¥ã¡ã³ãã®çæå
ãã£ã¬ã¯ããªãæå®ããŸãã ä»å㯠public/doc ã«èªåçæãããããã¥ã¡ã³ããé
眮ããããã«æå®ããŸããã ããã§ã¯ããã¥ã¡ã³ããçæãããã®ã§ãã©ãŠã¶ã§ç¢ºèªããŠã¿ãŸãã ãã£ã2ãã¡ã€ã«ãããªãã£ãã®ã§ãäžèº«ãå°ãªãã§ããããã®ããã«ã¯ã©ã¹ã®ã¡ãœããã®äžèЧããã¡ãœããã®åŒæ°ã®äžèЧãªã©ããã©ãŠã¶äžãã確èªã§ããããã«ãªããŸãã ã¯ã©ã¹ã®éå±€æ§é ãå¯èŠåãã phpDocumentor ã¯ããã¥ã¡ã³ãã®èªåçææã«ã¯ã©ã¹ã®éå±€æ§é ãå³åŒã§å¯èŠåããããšãã§ããã®ã§ãã©ã®ãããªå³åŒãã§ããã®ã詊ããŠã¿ãŸã ãŸãã¯ãå¿
èŠãªã©ã€ãã©ãªã yum ã§ã€ã³ã¹ããŒã«ããŸãã $ sudo yum install graphviz graphviz-gd ã€ã³ã¹ããŒã«ãå®äºããããããäžåºŠ phpdoc run ã³ãã³ãã§ããã¥ã¡ã³ããäœæããŠã¿ãŸãã ãã®ãããªå³ã衚瀺ãããã OK ã§ãïŒ ãŸãšã phpDocumentor ã䜿çšããŠãPHP ã®ã³ãŒãããèªåã§ããã¥ã¡ã³ããçæããŠã¿ãŸãã ã¯ã©ã¹ã®éå±€æ§é ãå¯èŠåããããšãã§ããã®ã§ãæ°ããã¡ã³ããŒããããžã§ã¯ãã®å
šäœåãææ¡ããããšããã©ãŠã¶äžã§ç°¡åã«è¡ãããšãã§ãããããžã§ã¯ãã®èª¬æãè¡ãéãªã©ã«ã圹ç«ã€ãšæããŸã Composer ã§ãšãŠãç°¡åã«ã€ã³ã¹ããŒã«ããããšãã§ããå°å
¥ãžã®éå£ãããªãäœãã®ã§ããã²çããã®ãããžã§ã¯ãã«ãå°å
¥ããŠã¿ãŠã¯ãããã§ãããã
ããã«ã¡ã¯ããµãŒããŒãµã€ããšã³ãžãã¢ã®æ å±±ã§ãã æ¯å¹ŽæäŸãšãªããŸãããåŠçåãã®å¬ã®ã€ã³ã¿ãŒã³ã WeddingPark Winter TechCamp ã ä»å¹Žãéå¬ããããŸãïŒ æŠèŠ ãŠãšãã£ã³ã°ããŒã¯ãéå¶ãããæ¥æ¬æå€§çŽã®ãã©ããŠãšãã£ã³ã°ã¹ã¿ãžãªæ€çŽ¢ãµã€ãã Photorait ãã®ããµãŒãã¹äŒç»ã»éçºãè¡ã£ãŠããã ããŸãã åå ããŠããåŠçå士ã§ããŒã ãçµã¿ã4æ¥éã§äŒç»ã»èšèšã»éçºã»ãã¹ããŸã§ã®äžé£ã®æµããè¡ã£ãŠããã ããå®éã®ãŠãšãã£ã³ã°ããŒã¯ã®ãµãŒãã¹éçºãããŒãäœæããŠããã ããŸãïŒ Photorait æ
åœãšã³ãžãã¢çŽ¹ä» æŠç° ç¿å¹³ ã¡ãã£ã¢éçºæ¬éšãã·ã¹ãã ãšã³ãžã㢠2014幎æ°åå
¥ç€Ÿã Goèšèªã®æ€èšŒã»å°å
¥ã®ãããžã§ã¯ããæ
åœåŸãçŸåšãä»åã€ã³ã¿ãŒã³ã§äŒç»ã»éçºããŠé ãã Photorait ãã®äž»æ
åœãšã³ãžãã¢ãšããŠãéçºã«æºãã£ãŠããŸãã æ å±± è ã¡ãã£ã¢éçºæ¬éšãã·ã¹ãã ãšã³ãžã㢠2013幎æ°åå
¥ç€Ÿã Google Adwords APIãçšããåºåå¥çŽç®¡çã·ã¹ãã ã®éçºãããžã§ã¯ããæ
åœåŸãçŸåšãå©çŽã»çµå©æèŒªã®ã¯ãã³ããµã€ãã Ringraph ãã®éçºã«æºãã£ãŠããŸãã ã€ã³ã¿ãŒã³ã®æ§å 1æ¥ç® 忥ã¯ãªãªãšã³ããŒã·ã§ã³ãããŒã 決ãããå§ãŸããŸãã ããŒã 決ãã®åŸãéçºããŒããçºè¡šããŸãã®ã§ãããŒãããšã«ããŒã ã§è©±ãåããããªããã éçºããæ©èœã«ã€ããŠäŒç»ãããŠããã ããŸãã 2ïœ3æ¥ç® éçºããæ©èœã決å®ããåŸã¯ãèšèšãããçŸåœ¹ãšã³ãžãã¢ã»ãã¶ã€ããŒããã®ã¬ãã¥ãŒãè¡ããŸãã ã¬ãã¥ãŒãçµãã£ãåŸã¯ãããããããŒã ã«åãããéçºãã¹ã¿ãŒãïŒ éçºäžã®ãšã³ãžãã¢ã»ãã¶ã€ããŒãžã®è³ªåã¯ãã€ã§ãOKã§ãïŒ æè¡çãªè³ªåããUIUXã«é¢ããè°è«ãªã©ãããªãããæ©èœã®ãã©ãã·ã¥ã¢ãããããŠããã ããŸãã éçºã¯ããŠãšãã£ã³ã°ããŒã¯ãªãã£ã¹ããŸã㯠ãšã³ãžãã¢ã»ãã¶ã€ãã®ããã®éäžã¹ããŒã¹ ãCã¹ã¿ã ã§è¡ãäºå®ã§ãã éçºåŸã«ã¯ãšã³ãžãã¢ã»ãã¶ã€ããŒããã®ã³ãŒãã¬ãã¥ãŒãè¡ããŸãã 4æ¥ç® æçµæ¥ã¯ãéçºããæ©èœã«ã€ããŠãŠãšãã£ã³ã°ããŒã¯ã®çµå¶å¹¹éšã»ç€Ÿå¡ã®åã§ããŒã æ¯ã«ãã¬ãŒã³ããŒã·ã§ã³ãè¡ã£ãŠããã ããŸãã ãã¬ãŒã³ããŒã·ã§ã³çµäºåŸãçµå¶å¹¹éšã§è°è«ãããåªåããŒã ãæ±ºå®èŽããŸãïŒ ã€ã³ã¿ãŒã³åŸã®æ§å æ¯å¹Žãã€ã³ã¿ãŒã³çµäºæã«ã¯ãåŠçå士ãšãŠã仲è¯ããªã£ãŠããŸãã 4æ¥éãå幎代ã®ä»²éãšäžç·ã«ãåç£ç¢ç£šããªããéçºãã§ããŸãïŒ æšå¹Žã®ã€ã³ã¿ãŒã³çãš ã€ã³ã¿ãŒã³åå è
ã®å£° è·å Žã®é°å²æ°ãç¥ãããšãã§ãããèŠææèã®ããéçºããæ¥œããåŠã³ãªãããããã ã·ã¹ãã éçºã®æµããå®éã®ã·ã¹ãã ãçšããŠäœéšã§ããã ããŒã ã§äŒç»ãèšèšã»éçºãŸã§è¡ãããšãéããŠãããŒã ã§æŽ»åãã倧åããç¥ã£ãã ã€ã³ã¿ãŒã³åŸå
¥ç€Ÿãã瀟å¡ã®å£° ä¹
ä¿ éç» 2016幎æ°åå
¥ç€Ÿ ã€ã³ã¿ãŒã³ã§ã¯ããŠãšãã£ã³ã°ããŒã¯ã§ã®äŒç»ããéçºãŸã§ã®äžé£ã®æµããåŠã¶ããšãã§ããŸãã æ§ã
ãªç€Ÿå¡ãšäº€æµã§ãããŸããã£ãŒãããã¯ã®å Žãå€ãããããŠãšãã£ã³ã°ããŒã¯ãªãã§ã¯ã®ã æãããã©ããã§åç£ç¢ç£šã§ããç°å¢ãèã§æããããšãã§ããŸããã ãã®äŒç€Ÿã§åããããšåŒ·ãæãããã«ãªã£ããã£ããããã®ã€ã³ã¿ãŒã³ã§ããã å
¥ç€ŸåŸã®çŸåšãã®ã£ãããæããããšãªã楜ããåããŠããŸãã 瀟å¡ã®æåããµããŒããåããªãããããŒã ã§æ°ãããµãŒãã¹ã®ææ¡ãããŠã¿ãŸãããã æåŸã« ä»å¹Žã® WeddingPark Winter TechCamp 2018 ã®åå è
ããçµ¶è³åéäžã§ãïŒ å¿åã¯ãã¡ããããã Wantedly ã/ã ãªã¯ãã
ã¿ãªããŸãããã«ã¡ã¯ïŒãšã³ãžãã¢ã®æ±ã§ãã ãã®ãã³ããŠãšãã£ã³ã°ããŒã¯ã§ã¯ããšã³ãžãã¢ã»ãã¶ã€ãã®ããã®ãã¢ãã¥ããã®ããã®éäžã¹ããŒã¹ãšããŠå©çšã§ãããµãã©ã€ããªãã£ã¹ãéèšãããŸããã ä»åããã¡ãã«ã€ããŠç޹ä»ããããšæããŸãïŒ ãµãã©ã€ããªãã£ã¹ã«ã€ã㊠ãµãã©ã€ããªãã£ã¹åïŒWedding Park CREATORS STUDIOïŒéç§°ïŒCã¹ã¿) ã³ã³ã»ãã ãæªæ¥ãåµé ããã¯ãªãšã€ã¿ãŒã®ããã®éçºã¹ã¿ãžãªã æ°ãã䟡å€ãåµé ããå Žæãšããæãã蟌ããããŠããŸãã ãããã§ããããïŒãã©ã€ãã«ãäŒããåŒç€Ÿã®ããŽãããã¯ãªãšã€ã¿ãŒããããæããããŽã§ãããã å©çšã«ã€ã㊠æ¬ç€ŸããåŸæ©åå
ã«ããããšã³ãžãã¢ã»ãã¶ã€ããåäººã®æè¡ååäžã®ããã®å匷ãã¢ãã¥ãããéäžããŠå©çšã§ããå Žæã§ããéåžžã«éããªå Žæã«äœçœ®ããŠããŸãã®ã§ãéåžžã«äœæ¥ã«éäžã§ãããšãå©çšè
ã«éåžžã«å¥œè©ã§ãïŒ Cã¹ã¿ã¯ãå€åæéäžã¯æ¥åã®éäžã®ããã«å©çšã§ããŸãããããŠãå€åæéå€ãäŒæ¥ã«ãéæŸãããåäººã®æè¡ååäžã®ããã«å©çšã§ããŸãã 忥ã«ããšã³ãžãã¢ãçµ¶ããå±
ãŠããããããããããããšèªåã®ããããããšã«éäžããŠããŸãã瀟å
ãšã³ãžãã¢ã«ã¯ãå®¶ã§ãšããããå€åºããŠã³ãŒãã£ã³ã°ããããããªãšã³ãžãã¢ãå€ããå¿«é©ãªã¹ããŒã¹ã§äœæ¥ã§ããCã¹ã¿ã¯åæ¥ã®å©çšçãé«ãã§ãïŒ ããã§ã¯å
è£
ã«ã€ããŠç޹ä»ããŠãããŸãã å
è£
çŽ¹ä» å
è£
å
šäœã¯ãã®ããã«ãªã£ãŠãŸãã 倩äºããã¡ã£ã±ãªãã«ããããšã§ãã¹ããŒã¹ã窮å±ã«æãããã·ã³ãã«ã§ã«ãã³ããããã€åŒç€Ÿãããã䜵ãæã£ãå
è£
ã§ãã çŽ æµãªå
è£
ã§ãïŒ ãŸãŒã³ ãã®Cã¹ã¿ã¯ã倧ãã3ãã¿ãŒã³ã®äœæ¥ã¹ããŒã¹ããããŸãã 1.å£åããåž – ç®ã®åã¯å£ãšãã£ã¹ãã¬ã€ïŒèŠçã¯äœæ¥ã«äžç¹éäžã§ããŸãããããŠãäœã«ãã£ãããããããå¿å°ã®ããªãè¯ããã§ã¢ã§é·æéã®äœæ¥ãå¿«é©ã§ãïŒ 2.ã¹ã¿ã³ãã£ã³ã°ãã¹ã¯ – ããæ°ããããªãããããªãšãã¯çæéäžïŒç«ã£ãŠã³ãŒãã£ã³ã°ã§ãã 3.ããŽããŒãã« – æ°å転æïŒãªã©ãã¯ã¹ã§éäžïŒ – åŒç€Ÿã®ããŽã象ã£ãããŽããŒãã«ãšä»ã®ã¹ããŒã¹ãšã¯ç°ãªãã€ã¹ã§ãæ°åãå€ããŠãªã©ãã¯ã¹ããŠäœæ¥ãã§ããŸã ãããŠãBluetoothã§ã€ãªããBoseã®ã¹ããŒã«ããããã°ã«ãŒãã§äœæ¥ããéã«ãå¿«é©ã§ãïŒ Cã¹ã¿ã§ã¯ãã®ããã«ããããªéäžã®ããã®å·¥å€«ããããŸãããå®ã¯ããã ãã¯ãªããã§ãïŒ ã®ãŒã¯ãªã¬ãžã§ãã ã¹ããã§ç°¡åããã°ã©ãã³ã°ã®IoTã¬ãžã§ããïŒMESH ããã°ã©ããã«ãªæé€æ©ïŒCocorobo ã¹ããã§VRïŒGalaxy Gear 360床ã«ã¡ã©: Theta æè¿æµè¡ã®ã¬ãžã§ããã«è§Šããããšã¯ãæ¥é webãµã€ããå®è£
ããŠãããšã³ãžãã¢ã»ãã¶ã€ãã«ãšã£ãŠã¯æ°ããåºæ¿ïŒããããã®æªæ¥ãåµé ããããã«ãä»ã®æµè¡ã远ã£ãŠãããªããšã§ããã Cã¹ã¿ããããã ã£ãã§ããããã Cã¹ã¿ããªãŒãã³ãããŠãããŸã éããªãã§ãããããããã©ãã©ããããããªæŽ»çšãããŠããããšã³ãžãã¢ã»ãã¶ã€ããšäžç·ã«ãããè¯ããã®Cã¹ã¿ãLEVEL UPããŠãããŸãïŒ ãããŠããŠãšãã£ã³ã°ããŒã¯ã§ã¯ãæè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããæªæ¥ã®ä»²éãåéããŠããŸããèå³ã®ããæ¹ã¯ããŸãã¯ãæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ
ã¯ãããŸããŠãã¡ãã£ã¢éçºæ¬éšãšã³ãžãã¢ã®ä¹
ä¿ã§ãã 2016幎8æã«å
¬éããããWindows 10 Anniversary Update ã§ã¯ Bash on Ubuntu on Windows ã®æäŸãå§ãŸããŸããã Windows ã§ããã€ãã£ã㪠Bash ç°å¢ãæŽã£ãããã§ããããŸã ãŸã Windows 7 ã 8.1 ã䜿ãããŠããæ¹ãããããšæããŸãïŒç§ããã®äžäººã§ãïŒïŒã ãã㪠Windows 8.1 以åã®ç°å¢ã§ã GNU ã³ãã³ãã䜿çšãããïŒãšæããWindows ã« Unix ã©ã€ã¯ãªç°å¢ãæ§ç¯ããŠã¿ãŸããã MSYS2 ãšã¯ MSYS2(Minimal SYStem2) 㯠Windows äžã§ Unix ã©ã€ã¯ãªã·ã§ã«ç°å¢ãæäŸãããã®ã§ã ã¿ãŒããã«ã« mintty ã·ã§ã«ã« Bash ããã±ãŒãžãããŒãžã£ã« pacman ã§æ§æãããŠããŸãã Windows ã§ Git ã䜿ã£ãŠããæ¹ã¯ãGit Bash ã§ããªãã¿ããšæããŸãã ä»å㯠MSYS2 ãã€ã³ã¹ããŒã«ããŠãWindows ã§ GNU ããŒã«ã䜿ããããã«ããããšæããŸãã MSYS2 ã®ã€ã³ã¹ããŒã«ãšèšå® æ€èšŒç°å¢ Windows 7 Professional SP1 64-bit MSYS2 ã®ã€ã³ã¹ããŒã« MSYS2 installer ãããã€ã³ã¹ããŒã©ãããŠã³ããŒãããŸãã ä»å㯠64-bit ã® Windows ãªã®ã§ã msys2-x86_64-*.exe ãããŠã³ããŒãããå®è¡ããŸãã ã€ã³ã¹ããŒã«ã¯ç¹å¥ãªæå®ãªãé²ããããããšæããŸãã ã€ã³ã¹ããŒã«å
ã¯ãæšæºã® C:\msys64 ãšããŸããã MSYS2 ã®èšå® ã€ã³ã¹ããŒã«ãå®äºããããã¹ã¿ãŒãã¡ãã¥ãŒãã MinGW-w64 Win64 Shell ãèµ·åããŸãã å
¬åŒããã¥ã¡ã³ã ã«æ²¿ã£ãŠé²ããŠãããŸãã ãŸãã¯ãã¢ããããŒããããŸããããããã±ãŒãžãããŒãžã£ã® pacman ã®ããŒãžã§ã³ã確èªããŸãã $ pacman --version .--. Pacman v4.2.1-463-g28da-dirty - libalpm v10.0.0 / _.-' .-. .-. .-. Copyright (C) 2006-2016 Pacman Development Team \ '-. '-' '-' '-' Copyright (C) 2002-2006 Judd Vinet '--' This program may be freely redistributed under the terms of the GNU General Public License. ããŒãžã§ã³ã¯ 4.2.1 ã§ããã pacman ã®ããŒãžã§ã³ã«ãã£ãŠãã¢ããããŒãã³ãã³ããç°ãªãã®ã§æ³šæãå¿
èŠã§ãã æ¬¡ã«ãcore ã® update ãããŸãã $ update-core ==> Update package databases... :: ããã±ãŒãžããŒã¿ããŒã¹ã®åæäž... mingw32 296.0 KiB 517K/s 00:01 [#####################] 100% mingw32.sig 96.0 B 0.00B/s 00:00 [#####################] 100% mingw64 295.7 KiB 2039K/s 00:00 [#####################] 100% mingw64.sig 96.0 B 0.00B/s 00:00 [#####################] 100% msys 135.8 KiB 924K/s 00:00 [#####################] 100% msys.sig 96.0 B 0.00B/s 00:00 [#####################] 100% ==> Checking if there are critical packages to upgrade. bash 4.3.042-4 -> 4.3.046-1 pacman 5.0.0.6348.cc5a8f1-1 -> 5.0.1-1 msys2-runtime 2.4.1.16860.40c26fc-1 -> 2.6.0-1 ==> Core packages require updating. ==> Please close all other MSYS2 derived windows (e.g. terminal ==> windows, Bash sessions, etc) before proceeding. ==> èŠå: When the update has completed, you MUST close this MSYS2 window ==> èŠå: (use Alt-F4 or red [ X ], etc.), rather than 'exit'!!! Press [Enter] key when ready to start update... ==> Updating core packages... äŸåé¢ä¿ã解決ããŠããŸã... è¡çªããããã±ãŒãžããªãã確èªããŠããŸã... ããã±ãŒãž (4) bash-4.3.046-1 msys2-runtime-2.6.0-1 msys2-runtime-devel-2.6.0-1 pacman-5.0.1-1 åèšããŠã³ããŒã容é: 14.42 MiB åèšã€ã³ã¹ããŒã«å®¹é: 72.88 MiB æçµçãªã¢ããã°ã¬ãŒã容é: 21.44 MiB :: ã€ã³ã¹ããŒã«ãè¡ããŸããïŒ [Y/n] :: ããã±ãŒãžãååŸããŸã ... msys2-runtime-2.6.0... 2.2 MiB 1273K/s 00:02 [#####################] 100% bash-4.3.046-1-x86_64 1876.6 KiB 1414K/s 00:01 [#####################] 100% pacman-5.0.1-1-x86_64 6.8 MiB 1354K/s 00:05 [#####################] 100% msys2-runtime-devel... 3.6 MiB 1458K/s 00:03 [#####################] 100% (4/4) ããŒãªã³ã°ã®ããŒãç¢ºèª [#####################] 100% (4/4) ããã±ãŒãžã®æŽåæ§ããã§ã㯠[#####################] 100% (4/4) ããã±ãŒãžãã¡ã€ã«ã®ããŒã [#####################] 100% (4/4) ãã¡ã€ã«ã®è¡çªããã§ã㯠[#####################] 100% (4/4) 空ã容éãç¢ºèª [#####################] 100% :: ããã±ãŒãžã®å€æŽãåŠçããŠããŸã... (1/4) æŽæ° msys2-runtime [#####################] 100% (2/4) æŽæ° bash [#####################] 100% (3/4) æŽæ° pacman [#####################] 100% (4/4) ã€ã³ã¹ããŒã« msys2-runtime-devel [#####################] 100% Please close this window. ã¡ãã»ãŒãžã«ããããŸãããã¢ããããŒããå®äºããããã¿ãŒããã«ãŠã£ã³ããŠãéããŸãã ä»åã¯ã close ã³ãã³ãã§ã¯ãªãã [x]ãã¿ã³ã Alt + F4 ã§éããŠãã ããã å床ãã¹ã¿ãŒãã¡ãã¥ãŒãã MinGW-w64 Win64 Shell ãèµ·åããŸãã ç¶ããŠãããã±ãŒãžã®ã¢ããããŒããããŸãããã $ pacman -Syuu :: Starting core system upgrade... èŠå: terminate other MSYS2 programs before proceeding äŸåé¢ä¿ã解決ããŠããŸã... è¡çªããããã±ãŒãžããªãã確èªããŠããŸã... ããã±ãŒãž (2) filesystem-2016.07-2 mintty-1~2.5.0-1 åèšããŠã³ããŒã容é: 0.18 MiB åèšã€ã³ã¹ããŒã«å®¹é: 0.39 MiB æçµçãªã¢ããã°ã¬ãŒã容é: 0.02 MiB :: ã€ã³ã¹ããŒã«ãè¡ããŸããïŒ [Y/n] y :: ããã±ãŒãžãååŸããŸã... filesystem-2016.07-... 37.4 KiB 18.2M/s 00:00 [#####################] 100% mintty-1~2.5.0-1-x86_64 151.2 KiB 445K/s 00:00 [#####################] 100% (2/2) ããŒãªã³ã°ã®ããŒãç¢ºèª [#####################] 100% (2/2) ããã±ãŒãžã®æŽåæ§ããã§ã㯠[#####################] 100% (2/2) ããã±ãŒãžãã¡ã€ã«ã®ããŒã [#####################] 100% (2/2) ãã¡ã€ã«ã®è¡çªããã§ã㯠[#####################] 100% (2/2) 空ã容éãç¢ºèª [#####################] 100% :: ããã±ãŒãžã®å€æŽãåŠçããŠããŸã... (1/2) æŽæ° filesystem [#####################] 100% WARNING: the shell starting scripts have been unified. Please update your shortcuts to the following targets, otherwise they will STOP WORKING: * MSYS2_ROOT\msys2_shell.cmd -mingw32 * MSYS2_ROOT\msys2_shell.cmd -mingw64 * MSYS2_ROOT\msys2_shell.cmd -msys (2/2) æŽæ° mintty [#####################] 100% èŠå: terminate MSYS2 without returning to shell and check for updates again èŠå: for example close your terminal window instead of calling exit ã¢ããããŒããå®äºãããã¿ãŒããã«ãŠã£ã³ããŠãéããŸãããã ã¡ãã»ãŒãžã«æžãããŠããããã«ãèµ·åã¹ã¯ãªããã倿ŽãããŠããŸãã èµ·åã¹ã¯ãªãããæ¬¡ã®ããã«å€æŽãããŸããã â MinGW-w64 Win32 Shell C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\mingw32_shell.bat ↓ C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.cmd -mingw32 â MinGW-w64 Win64 Shell C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\mingw64_shell.bat ↓ C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.cmd -mingw64 â MSYS2 Shell C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\msys2_shell.bat ↓ C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.cmd -msys ããäžåºŠã¿ãŒããã«ïŒ MinGW-w64 Win64 Shell ïŒãèµ·åããŠãã¢ããããŒãããªãã確èªããŠãããŸãããã $ pacman -Syuu :: ããã±ãŒãžããŒã¿ããŒã¹ã®åæäž... mingw32 ã¯ææ°ã§ã mingw64 ã¯ææ°ã§ã msys ã¯ææ°ã§ã :: Starting core system upgrade... äœãè¡ãããšããããŸãã :: ã·ã¹ãã å
šäœã®æŽæ°ãéå§... :: repman-git ã msys/pactoys-git ã«çœ®ãæããŸããïŒ [Y/n] y äŸåé¢ä¿ã解決ããŠããŸã... è¡çªããããã±ãŒãžããªãã確èªããŠããŸã... ããã±ãŒãž (42) bash-completion-2.3-1 bsdcpio-3.2.1-1 bsdtar-3.2.1-1 coreutils-8.25-1 crypt-1.3-1 curl-7.50.1-1 file-5.25-1 flex-2.6.1-1 gawk-4.1.4-1 gcc-libs-5.3.0-3 gettext-0.19.7-3 gmp-6.1.0-2 gnupg-1.4.20-1 grep-2.22-3 gzip-1.7-1 heimdal-libs-1.5.3-9 info-6.1-1 libarchive-3.2.1-1 libasprintf-0.19.7-3 libassuan-2.4.2-1 libcrypt-1.3-1 libcurl-7.50.1-1 libexpat-2.1.1-1 libgettextpo-0.19.7-3 libgpg-error-1.23-1 libgpgme-1.6.0-1 libidn-1.33-1 libintl-0.19.7-3 liblzma-5.2.2-1 libnettle-3.2-1 libopenssl-1.0.2.h-1 libssh2-1.7.0-1 libtasn1-4.9-1 mpfr-3.1.4-1 msys2-launcher-git-0.3.32.56c2ba7-2 ncurses-6.0.20160220-1 openssl-1.0.2.h-1 pactoys-git-r2.07ca37f-1 rebase-4.4.2-1 repman-git-r23.87bf865-1 [åé€] wget-1.17.1-3 xz-5.2.2-1 åèšããŠã³ããŒã容é: 0.90 MiB åèšã€ã³ã¹ããŒã«å®¹é: 87.40 MiB æçµçãªã¢ããã°ã¬ãŒã容é: 6.47 MiB :: ã€ã³ã¹ããŒã«ãè¡ããŸããïŒ [Y/n] y 以äžã§ã€ã³ã¹ããŒã«ãå®äºããŸããã ç¶ããŠãèšå®ãè¡ããŸãããã MSYS2 ã®èšå® çŸåšã ãšæäœéã®ããŒã«ããã€ã³ã¹ããŒã«ãããŠããªãããããã䜿ãããããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã ã¿ãŒããã«ïŒ MinGW-w64 Win64 Shell ïŒãèµ·åããŸãã base-devel ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã $ pacman -S base-devel :: 54 ã®ããã±ãŒãžãã°ã«ãŒã base-devel ã«ãããŸã: :: ãªããžã㪠msys 1) asciidoc 2) autoconf 3) autoconf2.13 4) autogen 5) automake-wrapper 6) automake1.10 7) automake1.11 8) automake1.12 9) automake1.13 10) automake1.14 11) automake1.15 12) automake1.6 13) automake1.7 14) automake1.8 15) automake1.9 16) bison 17) diffstat 18) diffutils 19) dos2unix 20) file 21) flex 22) gawk 23) gdb 24) gettext 25) gettext-devel 26) gperf 27) grep 28) groff 29) help2man 30) intltool 31) lemon 32) libtool 33) libunrar 34) m4 35) make 36) man-db 37) pacman 38) pactoys-git 39) patch 40) patchutils 41) perl 42) pkg-config 43) pkgfile 44) quilt 45) rcs 46) scons 47) sed 48) swig 49) texinfo 50) texinfo-tex 51) ttyrec 52) unrar 53) wget 54) xmlto éžæããŠäžãã (ããã©ã«ã=all): äŸåé¢ä¿ã解決ããŠããŸã... è¡çªããããã±ãŒãžããªãã確èªããŠããŸã... ããã±ãŒãž (76) db-5.3.28-2 docbook-xml-4.5-2 docbook-xsl-1.78.1-3 expat-2.1.1-1 gdbm-1.11-3 glib2-2.48.0-1 libgc-7.2.d-1 libgcrypt-1.6.4-1 libgdbm-1.11-3 libguile-2.0.11-3 libiconv-devel-1.14-2 libltdl-2.4.6-2 libpipeline-1.4.0-1 libunistring-0.9.6-1 libxslt-1.1.28-7 perl-Locale-Gettext-1.05-4 perl-Module-Build-0.4212-1 perl-Test-Pod-1.50-1 perl-XML-Parser-2.44-1 perl-YAML-Syck-1.29-1 python2-2.7.11-1 tar-1.29-1 asciidoc-8.6.9-4 autoconf-2.69-3 autoconf2.13-2.13-2 autogen-5.18.4-2 automake-wrapper-10-1 automake1.10-1.10.3-3 automake1.11-1.11.6-3 automake1.12-1.12.6-3 automake1.13-1.13.4-4 automake1.14-1.14.1-3 automake1.15-1.15-2 automake1.6-1.6.3-2 automake1.7-1.7.9-2 automake1.8-1.8.5-3 automake1.9-1.9.6-2 bison-3.0.4-1 diffstat-1.58-1 diffutils-3.3-3 dos2unix-7.3.4-1 file-5.25-1 flex-2.6.1-1 gawk-4.1.4-1 gdb-7.9-2 gettext-0.19.7-3 gettext-devel-0.19.7-3 gperf-3.0.4-3 grep-2.22-3 groff-1.22.3-1 help2man-1.47.3-1 intltool-0.51.0-2 lemon-3.8.7.0-1 libtool-2.4.6-2 libunrar-5.3.7-1 m4-1.4.17-4 make-4.2.1-1 man-db-2.7.4-1 pacman-5.0.1-1 pactoys-git-r2.07ca37f-1 patch-2.7.5-1 patchutils-0.3.3-2 perl-5.22.1-1 pkg-config-0.29.1-1 pkgfile-15-1 quilt-0.64-1 rcs-5.9.4-1 scons-2.5.0-1 sed-4.2.2-2 swig-3.0.10-1 texinfo-6.1-1 texinfo-tex-6.1-1 ttyrec-1.0.8-1 unrar-5.3.7-1 wget-1.17.1-3 xmlto-0.0.28-1 åèšããŠã³ããŒã容é: 50.00 MiB åèšã€ã³ã¹ããŒã«å®¹é: 282.87 MiB æçµçãªã¢ããã°ã¬ãŒã容é: 227.11 MiB :: ã€ã³ã¹ããŒã«ãè¡ããŸããïŒ [Y/n] y çŸç¶ã ãšãWindows ã® PATH ãåç
§ãããªããããWindows ã«ã€ã³ã¹ããŒã«ãããŠããããã°ã©ã ãå®è¡ã§ããŸããã ããã§ããããåç
§ããããã«ããŸãã C:\msys64\msys2_shell.cmd ã以äžã®ããã«å€æŽããŸãã rem set MSYS2_PATH_TYPE=inherit ↓ set MSYS2_PATH_TYPE=inherit 以äžã§èšå®ãå®äºããŸããã 䜿ã£ãŠã¿ãŸããã ããŒã ãã£ã¬ã¯ããªã¯ã /home/username ã§ãå®äœã¯ã C:\msys64\home\username ã§ãã ssh ãã€ã³ã¹ããŒã«ããŠã¿ãŸããããã±ãŒãžã®ã€ã³ã¹ããŒã«ã¯ã pacman -S ããã±ãŒãžå ã§è¡ããŸãã pacman -S openssh ã€ã³ã¹ããŒã«å¯èœãªããã±ãŒãžã¯ã次ã®ã³ãã³ãã§ç¢ºèªã§ããŸãã pacman -Sl ãããã« ä»åã¯ãWindows ã« Unix ã©ã€ã¯ãªç°å¢ãæ§ç¯ããããšãç®çã«ãMSYS2 ãçšã㊠Bash ç°å¢ãæ§ç¯ããŸããã Mac ã Linux ãšåäžã®ç°å¢ãšãŸã§ã¯ãããŸããããããŒã«ã«ç°å¢ã§ã¡ãã£ãšã³ãã³ããå®è¡ããããšããMac ã§äœæããã¹ã¯ãªããã Windows ã§ãå®è¡ããããšããªã©ã«ã倧ãã«åœ¹ç«ãŠãããã®ã§ã¯ãªãã§ããããã ãããŠããŠãšãã£ã³ã°ããŒã¯ã§ã¯ãæè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããæªæ¥ã®ä»²éãåéããŠããŸãã èå³ã®ããæ¹ã¯ããŸãã¯ãæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ
ããã«ã¡ã¯ãçµå©åçãæ®åœ±ã§ããã¹ã¿ãžãªæ€çŽ¢ãµã€ãã Photorait ããæ
åœããŠããããšã³ãžãã¢ã®æŠç°(@takedajs)ã§ãã å
æ¥ãŠãšãã£ã³ã°ããŒã¯ã§è¡ãããååLTäŒã«ã€ããŠå ±åèŽããŸãã ä»åååã§éå¬ãããŠé ããäŒç€Ÿã¯ãåã倧åŠé¢æä»£ã«ãšã³ãžãã¢ã€ã³ã¿ãŒã³ãšããŠåããããŠããã£ãŠãããããŒã·ãã¯(basic)ããã§ãã åã«æžããŸããã 瀟å
LTäŒã®åãçµã¿ã«ã€ã㊠ãã®èšäºãããŒã·ãã¯CTOã®æ¡åºããã«èŠãŠããã ããã®ããã£ããã§ãä»åã®ååLTäŒãéå¬ããããšã«ãªããŸããïŒ çºè¡šå
容 以äžãçºè¡šå
容ã§ãã å瀟3人ãã€åèš6åã«è³ªçå¿çåãããŠ10åã®çºè¡šãããŠããããŸããïŒ WeddingPark ä¹
ä¿ ãWedding Parkã«ã€ããŠã ããŒã·ã㯠æ¡åºãã ãããŒã·ãã¯ã®å€æãã WeddingPark è
å ãäžé±éã§Goãã£ãŠã¿ã go à SlackAPIã ããŒã·ã㯠森ãã ãferretã¬ã³ã¡ã³ãã WeddingPark æ± ãChrome extensionã§äœæ¥å¹çã¢ããïŒã ããŒã·ã㯠äºå³¶ãã ãDockerãCIã§ããã«ã³ããã«ã³ã 1: ãWedding Parkã«ã€ããŠã WeddingPark ä¹
ä¿ æ°å1幎ç®ã®ä¹
ä¿ã§ãããŠãšãã®æè¡ããµãŒãã¹ã«ã€ããŠçºè¡šããŠããããŸãããå€éšãšã®LTäŒã§åã®çºè¡šã§ãããããããããã¿ãŒã§å ã
ãšçºè¡šããŠããŠè¯ãã£ãã§ãïŒ 2: ãããŒã·ãã¯ã®å€æãã ããŒã·ã㯠æ¡åºãã 50æä»¥äžã®ã¹ã©ã€ãã§ããŒã·ãã¯ã®ãããŸã§ã®æè¡ã®æŽå²ãçºè¡šããŠé ããŸãããå
å®¹ãæ¿ãããã³ãã®è¯ãçºè¡šã¯ããšãŠãå匷ã«ãªããŸããïŒ(èªåã®Twitterã¢ã€ã³ã³Tã·ã£ããåãæ¬²ããã§ãç¬) 3: ãäžé±éã§Goãã£ãŠã¿ã go à slackAPIã WeddingPark è
å æ°å1幎ç®ã®è
åã§ããä»åã®çºè¡šãè¡ãããã«ãåããŠGoèšèªãè§Šã£ãã¿ããã§ãïŒGoèšèªãå匷ãå§ããŠããSlackã«å€©æ°äºå ±ãã€ã¶ãããããäœæãŸã§ãçºè¡šããŠããããŸããã 4: ãferretã¬ã³ã¡ã³ãã ããŒã·ã㯠森ãã WEBããŒã±ãã£ã³ã°ã®ããŒã¿ã«ãµã€ãã§ããferretãæ
åœãããŠããæ£®ããã«ãferretã®ã¬ã³ã¡ã³ãã«ã€ããŠçºè¡šããŠé ããŸãããTensorFlowãæ©æ¢°åŠç¿ãªã©ãä»ããããªã¯ãŒããå€ãåºãŠããŠãå匷ã«ãªãããšãå€ãã£ãã§ãïŒ 5: ãChrome extensionã§äœæ¥å¹çã¢ããïŒã WeddingPark æ± æ®æ®µæ¥åã§äžäŸ¿ã ãšæã£ãŠãããšãããChrome extensionãäœ¿ãæ¹åããããšã«ã€ããŠçºè¡šããŠããããŸãããChrome extension ã¯äœã£ãããšããªãã£ãã®ã§ãå匷ã«ãªããŸããïŒ 6: ãDockerãCIã§ããã«ã³ããã«ã³ã ããŒã·ã㯠äºå³¶ãã LTäŒã®åžäŒãšããŠäºåã«çºè¡šã¿ã€ãã«ãèãããšãã«ãããªãããã£ãŠããŸããŸããç¬åœæ¥ã®çºè¡šå
容ã§ãå€ãã®ç¬ããã€ã³ãããããDockerã®ããšãç¥ããã®ã§ãããªã«ãµããããçºè¡šã§ããïŒ LTäŒã®é°å²æ° ãã€ããšåæ§ã«ããã¶ x å¯¿åž x ããŒã« ã飲ãã ãé£ã¹ããããªããããªã©ãã¯ã¹ããé°å²æ°ã§ã®LTäŒã§ãïŒæåŸã¯ããŠãšãååLTã®æäŸãšãªã£ãŠããçžæã®äŒç€Ÿã®é æåããŒãºãããŠã®éååçã§ãç¬ æåŸã« å€éšã®ãšã³ãžãã¢ã®æ¹ãšäº€æµãã§ããä»åãè¯ãåºæ¿ãåããæè¡ã«å¯ŸããŠæŽãªãã¢ãããŒã·ã§ã³ã¢ããã«ãªããŸããïŒ ãŸããåèªèº«ãšããŠããã€ã³ã¿ãŒã³æä»£ã«ãäžè©±ã«ãªã£ãæ¹ãšãããã£ã亀æµãã§ããå¬ããã£ãã§ãïŒ ããŒã·ãã¯ã®çæ§ãååLTäŒãéå¬ããŠé ãæ¬åœã«ããããšãããããŸããïŒïŒ
ããã«ã¡ã¯ããµãŒããŒãµã€ããšã³ãžãã¢ã®æ å±±ã§ãã å°ãæéãçµã£ãŠããŸããŸããããå
æ¥ããŠãšãã£ã³ã°ããŒã¯ã§ã女åãšã³ãžãã¢LTå€ç¥ãããéå¬èŽããŸããïŒ ä»åã¯ã瀟å
å€ã®å¥³åãšã³ãžãã¢ã®10åã®æ¹ã«çºè¡šããã ãã倧å€çãäžãããŸããïŒ ãã®æ§åã«ã€ããŠã¬ããŒããããŠããã ããŸãã çºè¡šããŒã ä»åã®LTå€ç¥ãã®ããŒãã¯ãããšã³ãžãã¢ã©ã€ãã¹ã¿ã€ã«ãã æ®æ®µèå³ãããããšããæè¿æ°ã«ãªãæè¡ãããã¯ã¹ãå匷äŒã¬ããŒããªã©ãçºè¡šããã ããŸããïŒ LTå€ç¥ãã®æ§å äŒå Žã¯ããŠãšãã£ã³ã°ããŒã¯ã®ãªãã£ã¹ã ãšã³ãã©ã³ã¹ã«ã¯å€ããããã¹ã¿ãŒã äŒå Žã«å
¥ããšããããããæçã«ãã«ãã§ã©ãã ããã«ãã³ã·ã§ã³ãããããªã女åãããã§ããããã ãããªLTäŒã¯ãããŠã§ããïŒ ãã³ã·ã§ã³æé«æœ®ã®ãŸãŸãLTäŒã¹ã¿ãŒãïŒ â» ä»¥äžãã¿ã€ãã«ã®ââéšåã¯ãå人åããããã¯ãåã®ãã倿ŽããŠç޹ä»ããŠãããŸãã â» é çªã¯ãçºè¡šé ãšãªããŸãã 1. ã¯ãããŸããŠãââã§ãã 女åãšã³ãžãã¢ã®ããªã¢ã«ãªã©ã€ãã¹ã¿ã€ã«ã«ã€ããŠã æ®æ®µå¥œãã§ããè¡ãå Žæããã©ã€ããŒãã§å匷ããŠããããã°ã©ãã³ã°èšèªãªã©ã«ã€ããŠãããçãäžãããŸããïŒ ãããããªãã³å±ãããè¡ãããã 2. 3D楜ãããã£ãŠè©± æè¿æµè¡ã£ãŠããæ ç»ãã²ãŒã ãªã©ã身è¿ãªãšããã«ãã3Dã®äŸãæããªããããèªèº«ãæãã3Dã®é
åã«ã€ããŠã話ãããã ããŸããïŒ ãªã¢ã«ãªåœç©ã衚çŸã§ãããšãããçµµãæããªããŠã衚çŸã«é¢ããããšãããªã©ãé
åçãšã®ããšã 3Dã«é¢ããè³æ ŒãååŸãããŠããããã§ãïŒãã£ãããã 3. ââå®¶ãæ¯ããæè¡ çµå©æºåã®éã®ã話ã§ãããçµå©åŒã¯ããããžã§ã¯ããã§ããããããžã§ã¯ããåæ»ã«é²ããããã«ãRedmineãªã©ã®ããŒã«ã䜿ã£ãŠæºåãé²ããããããã§ãã Redmineã¯éçºã«äœ¿ããã®ããšæã£ãŠãããŸãããããããªäœ¿ãæ¹ããããšã¯ïŒ çµå©åŒæºåã¯ãããããããšæããŸããã誰ã®ã¿ã¹ã¯ã§ãæéã¯ãã€ãŸã§ãªã®ããæç¢ºã«ãªããŸããïŒ 4. Linda and Rails Girls 女æ§ã察象ãšããããã°ã©ãã³ã°ã®ã¯ãŒã¯ã·ã§ãããRails Girlsãã«åå ãããããšãããããã§ã åµå§è
ã®ãªã³ããããšäŒã£ãéã®ããšãå®éã«åå ããŠã¿ãææ³ãçºè¡šããŠãã ãããŸããã ãªã³ãããã¯ãRails Girlsã®æŽ»åã®ä»ã«ãããHello Rubyããšãããããã°ã©ãã³ã°èšèªã®Rubyã®åºç€ã楜ããåŠã¹ãçµµæ¬ãçºå£²ãããŠããããšããªãæåãªæ¹ã§ãããïŒïŒ ç§ãRails Girlsã«åå ããŠã¿ããã§ãã 5. 女æ§ã®åãæ¹ã«ã€ã㊠çµå©ãåè²ãŠãšãä»äºã®äž¡ç«ã«ã€ããŠããèªèº«ã®çµéšãå«ããŠçºè¡šããŠãã ãããŸããã äŒç€Ÿã®ä»ã®å¶åºŠã§ã¯è¶³ããªããæ¬åœã«å¿
èŠã ãšæããã®ã«ã€ããŠã¯ãèªåã§å£°ããããŠäœã£ãŠããããšãå¿
èŠã ãšè©±ããŠãã ãããŸããã ç§ã倧倿°ã«ãªãéšåã ã£ãã®ã§ãè峿·±ãã£ãã§ãïŒ 6. ãããã女åãå¿ããªãããã®10ã®çç± ãã¹ãããããšãã¯å¯æãç»åã䜿ããåšãã®ç·æ§ã髪åããã€ã«ã®å€åã«æ°ã¥ããŠãããããªã©ããããŸããïŒ å¥³ååã¯ãåšãã®ç·æ§ã«ãã£ãŠæ¯ããããŠããããã§ãã 7. Processingã§éãã§ã¿ã Processingãã€ãã£ãŠã®ãäŒå Žã®é³ã«åå¿ããŠã¹ã©ã€ãã®çµµããªã¢ã«ã¿ã€ã ã§å€ãããã¢ã宿ŒããŠãã ãããŸããã é³ã®å€§ããã§åããå€ãã£ããããŠãäŒå Žã倧å€çãäžãããŸããã åç»ãèŒããããªãã®ãæ®å¿µã§ãã»ã»ã»ïŒ 8. ââãšéçºææ³ãšç§ æ®æ®µããããã¯ãã®éçºããã广çã»å¹ççã«ããããã®éçºææ³ãç ç©¶ãããŠããããã§ãã ãããã¯ããæ¹åããã ãã§ãªããããŒã ãæ¥œããå
å®ããéçºãã§ããç°å¢ãåµã£ãŠããããšããèããããšãŠãçŽ æµã§ãã 9. GitHub Tips GitHubã®Tipsãã¹ããŒãã£ã«ã玹ä»ãã ãããŸããïŒ IssueãPull requestsã®ãã³ãã¬ãŒãã®è¿œå æ¹æ³ãªã©ãå
·äœçã§åœ¹ç«ã€Tipsã§ããã ãããŠããªãã¹ããŒãæã®ããLTã§ããã ç§ã¯Issueãªã©æžããšããã©ãæžãã°ããããããããšæ©ãããšãçµæ§ããã®ã§ããã³ãã¬ãŒãã远å ã§ããã®ã¯äŸ¿å©ã ãšæããŸããïŒïŒ 10. ã€ã³ãã©ãšã³ãžãã¢ã©ã€ã ãããã¯ãŒã¯æ©åšãææ°ã®æ©åšãžãªãã¬ãŒã¹ããéã®ã話ãããŠãã ãããŸããïŒ ãªãã¬ãŒã¹ããããšã§ããµãŒããŒã©ãã¯ã®äœ¿çšUæ°ïŒãµãŒããŒã©ãã¯ã®ïŒåºç»ã®é«ãã®åäœïŒãåæžããããè²»çšãåæžã§ããããã§ãã äŒå Žã®æ§å çŽ2æéåã®LTå€ç¥ãã§ããããçºè¡šäžã«å€æ°ç¬ãããããããããããšããé°å²æ°ã§ãšã£ãŠãçãäžãããŸããïŒ ã¢ããããŒã ãªé°å²æ°ãæ¬åœããã£ãã§ãã æåŸã« åå ãããç·å¢çŽ20åã®å¥³åãšã³ãžãã¢å
šå¡ã§èšå¿µåçâª çæ§ããç²ãæ§ã§ããâª
ã¢ã¡ãªã« ã·ãªã³ã³ãã¬ãŒã§éå¬ããããVelocity ã«åå ããŠããŸãã ãããã«ã¡ã¯ããšã³ãžãã¢ã®è¥¿èïŒ@yasuhiro1711ïŒã§ããå°ãåã§ãããæ¯å¹Žã¢ã¡ãªã«ã§è¡ãªãããŠããVelocityãšããæè¡ã«ã³ãã¡ã¬ã³ã¹ã«åå ããŠããŸããã®ã§ãã®å ±åããããŠé ããŸããVelocityãšã¯ããªã©ã€ãªãŒäž»å¬ã®ããã©ãŒãã³ã¹ã«é¢ããæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ããVelocityãšããååã®éãããã©ãŒãã³ã¹ã«ãã©ãŒã«ã¹ããæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ããããè¿å¹Žã¯ãã®ããŒãã«å ããŠãç£èŠãã¢ãã¿ãªã³ã°ããµãŒãéçšãDevOpsãSREãšãã£ãããŒã¯ãŒããçã蟌ãŸããŠãããå¹
åºãæè¡ãå
æ¬ããæè¡ã«ã³ãã¡ã¬ã³ã¹ãšãªã£ãŠããŸãããã®ã¬ããŒãã§ã¯ãæ¥æ¬ã§ã¯ãŸã 銎æã¿ãèãVelocityã®é
åããäŒãããããšæããŸãã ããŸããä»åã®Velocityåå ã«åãããŠãã·ãªã³ã³ãã¬ãŒããµã³ãã©ã³ã·ã¹ã³ã«ãè¿ãããšãããçŸå°äŒæ¥ã蚪åãçŸå°ãµãŒãã¹ã®å©çšãªã©ãéããŠçŸå°ã®ITæ¥çã®ãã¬ãŒã€ãŒãèŠãŠããè¯ãæ©äŒãšãªããŸããããã¡ãã®è©±ã¯å¥èšäºã«ãŠæžããããšæããŸãã äŒå ŽãŸã§ã®éã®ã ãããŠãä»åã®Velocityã¯ãã¢ã¡ãªã« ã«ãªãã©ã«ãã¢å·ã®ãµã³ã¿ã¯ã©ã©ïŒSanta ClaraïŒã§è¡ãããŸããããµã³ã¿ã¯ã©ã©ã¯ãµã³ãã©ã³ã·ã¹ã³ã®åã«äœçœ®ããŠããµãŠã¹ãã€ã®ãšãªã¢ã«ããéœåžã§ãããã®ããããµã³ã¿ã¯ã©ã©ã¯ãã¡ããã·ãªã³ã³ãã¬ãŒã®1ãšãªã¢ãšãªããŸããäžçªè¿ã空枯ã ãšãµã³ããŒç©ºæž¯ãè¿é£ã§ããšãµã³ãã©ã³ã·ã¹ã³ç©ºæž¯ãå©çšããããã§ããäž¡æ¹ã®ç©ºæž¯ãšãã«æ¥æ¬ããçŽè¡äŸ¿ãåºãŠããã®ã§ã¢ã¯ã»ã¹ãè¯ãã§ããä»åã¯ããµã³ãã©ã³ã·ã¹ã³ããç§»åããããããµã³ãã©ã³ã·ã¹ã³åžå
ããäŒå Žè¿ããŸã§ã¯ã«ã«ãã¬ã€ã³ (Caltrain) ãå©çšããŸããããµã³ãã©ã³ã·ã¹ã³åžå
ã«ãããµã³ãã©ã³ã·ã¹ã³é§
ãå§çºã§ããµã³ããŒåšèŸºãŸã§ã¯çŽ1.5æéã»ã©ããããŸããäŒå Žã®è¿ããŸã§ãªãå¥ã®ééããããŸããã ãã«ã«ãã¬ã€ã³ã¯ãããª2éç«ãŠã®ãããªåè»ã§ãããé äžããã§ããããŒã«ã«é»è»ã§ãããã®ã§è²ããªäººãéå€ã®è¶³ãšããŠäœ¿ã£ãŠããŸããïŒãµã³ãã©ã³ã·ã¹ã³ãããµã³ããŒã«è¡ãéäžæ²»å®ãæªããšãããããã®ã§ãéäžäžè»ã®å Žåã¯æ°ãã€ããã»ããããããã§ããïŒ ãäŒå Žã¯ãã¡ãã®ããã«ã«äœµèšã®ã³ã³ãã³ã·ã§ã³ã»ã³ã¿ãŒã§ããããã¡ããã·ãªã³ã³ãã¬ãŒã§ãããäŒå ŽããåŸæ©åå
ã«ã¯ãDellã®ç ç©¶æ ç¹ãããã¡ã€ã¢ãŠã©ãŒã«ã§æåãªPaloaltoãIntelãCitrixãAbbottãªã©ããããŸããã ãã¡ãªã¿ã«ã Intelãã¥ãŒãžã¢ã ãåŸæ©åå
ïŒã®ãªã®ãªåŸæ©åã§ããæ©ããŠããæ¹ã¯ã»ãŒããŸãããïŒã«ããããšã³ãžãã¢ã«ã¯ãªã¹ã¹ã¡ã¹ãããã§ããã ãŒã¢ã®æ³åãåå°äœã«é¢ããå±ç€ºãããIntelãªãªãžãã«ã°ããºãŸã§è²©å£²ãããŠããŸããå
¥å Žæãç¡æãªã®ã§è¿ãã«èšªããéã«ã¯æ¯éç«ã¡å¯ã£ãŠé ãããã¹ãããã§ãã Velocityã«ã€ã㊠ãã«ã³ãã¡ã¬ã³ã¹ã¯ãã¡ã€ã³ã¯3æ¥éãå
šäœã§ã¯5æ¥éã®ã€ãã³ãã§ãã ããã§ãã¯ã€ã³ã¯èªåã«ãŠã³ã¿ãŒã§åä»ããŸããäºåã«ã¡ãŒã«ã§ããã£ãŠããããŒã³ãŒãããããã°ããã©ã¹ãã£ãã¯ã«ãŒãã«å°åãããŠããŒã ãã¬ãŒãã«ãªãéŠããäžããŠåå 蚌ã«ãªããŸããããã§ãã§ãã¯ã€ã³å®äºã§ããæ¥œã§ããã ãã«ã³ãã¡ã¬ã³ã¹ã¯å€§ãã以äžã®ãããªã³ã³ãã³ãã«åãããŠããŸãã ããŒããŒãã»ãã·ã§ã³ ã倧ããŒã«ã«ãããŠãèåãªãšã³ãžãã¢ããšãã³ãžã§ãªã¹ããæè¡ããã¹ã¿ãŒãã¢ããã«ããããŒããŒãã»ãã·ã§ã³ãè¡ãããŸãããããã¯ãã€ã³ã¿ãŒãããæŸéã§çäžç¶ãããŠãŸãããã€ãã³ããçµäºããçŸåšã¯ãYoutubeã§èŠãããšãã§ããŸããããŒããŒãã«ã¯åå è
ãäžåã«éãŸãã®ã§ãåçã®ããã«åå è
ã§ãã£ã±ãã«ãªããŸãã ãVelocityã®Program chairsã§ãããJohn Allspawæ°ãCourtney Nashæ°ãSteve Soudersæ°ã®ããŒã¯ããããŸãããé·å¹ŽProgram chairsãããããŠãã圌ãã¯æ¬åœã«ãããæ¹ã ãšæããŸããããŸããæ¥å¹ŽããProgram chairsãå
¥ãæ¿ããããšãçºè¡šãããŸããã åçš®ã»ãã·ã§ã³ ãåã»ãããŒã«ãŒã ã«ãŠæ§ã
ãªçš®é¡ã®ã»ãã·ã§ã³ãè¡ãããŸããããã«é¢ããŠã¯ãå¥èšäºã§ãŸãšããããšæããŸããèšäºãåºãŸããããªã³ã¯ãæŽæ°ããããšæããŸãã Ignite Velocity ãVelocityã§ã¯ãæ¯å¹ŽIgnite talkãè¡ãããŸããIgnite talkãšã¯ã20ã¹ã©ã€ãã1æ15ç§ã§ãåèšïŒåéã®ããŒã¯ïŒãã¬ãŒã³ïŒããããšããã«ãŒã«ã®ã€ãã³ãã§ããIgnite talkèªäœãäžçååœã§è¡ãããŠãããã®ã§ãããããVelocityã§ãè¡ãããŠããŸããå®ã¯ä»åãç§ãããã§çºè¡šããããšå¿åããã®ã§ããæ®å¿µãªããéžèã§èœã¡ãŸããïŒæ¶ïŒãæ¬¡åæ©äŒãããã°ãæ¯éçºè¡šããããšæããŸãããŸãããã®ignite talk é¢çœãããªã®ã§æ¥æ¬ã§ãéå¬ããããªãšæã£ãŠããŸããæ±äº¬ã§ã®éå¬ã©ãããšæã£ãŠããã®ã§ãèå³ããæ¹ããã£ããã£ããé£çµ¡ãã ããã ãIgnite talkã¯ãããªæãã§è¡ãªãããŸããããã®åçã¯å€§å¥œããªãµãŒãã¹Datadogã®æ¹ã®ããŒã¯ã§ããç§ãçãäžã«åº§ã£ãŠããŸããåçã¯ã¿ããªéãããã§ãããããŒã¯ã¯ç¬ãã®æžŠã§ããïŒïŒ ãä»å¹Žã®Igniteã»ãã·ã§ã³ã¯ä»¥äžã®ããã°ã©ã ãšãªããŸãã詳现ã¯Velocityã®ããã°ã©ã ã® ãã¡ã ãã芧ãã ããã Brooksâs law and open source: Is community-driven software doomed? (Jason Yee) Tips for the other end of the table (Jamesha Fisher) The cloud will not save you (Jonah Horowitz) Why every developer needs to get better at Ops (Cindy Sridharan) How to not lead a team (Ulrich Dangel) One womanâs journey to becoming a software engineer (Alena Kruchkova) How to peel a banana (the right way) (Colin Bendell) How Bruce Lee made me a better software developer (David Hodge) Stop pretending youâre smarter than code (Matt Brender) How Mars made me a poet (Kate Greene) A brief history of timekeeping (Luke Francl) ãçŸåšããã®Talkã®ãããªã¯å
¬éã¯ãããŠããããIgniteãäœãªã®ãåããã«ãããããããŸãããã Igniteã®å
¬åŒãµã€ã ã§äžçäžã®ã€ãã³ãã®ããŒã¯ãããªãããã®ã§æ¯éåèã«èŠãŠã¿ãŠãã ããã ãã¡ãªã¿ã«ã2013幎ã®Velocityã§ã¯ãæ¥æ¬äººãšã³ãžãã¢ãçºè¡šããŠããŸãã ããããŸããã§ãïŒ Velocity 2013 ã«åå & LT ããŠããŸããïŒïŒ · takus’s blog Exhibit Hall ãVelocityã§ã¯ãã¹ãã³ãµãŒãäžå¿ãšããäŒæ¥ãåºåºããŠããäŒæ¥ããŒã¹ã¹ããŒã¹ãšãªãExhibit HallããããŸããæ¥æ¬ã§ãInteropãåçš®ã€ãã³ãã§èŠãããã¢ã¬ã§ããæ¬ã€ãã³ãã®ããŒãã«é¡ããäŒæ¥ãéãŸã£ãŠãããã©ã®äŒæ¥ãã¢ããŒã«ãç倧ã«ããŠããŸãããåäŒæ¥ã®åºåºããŒã¹ã®è©±ã¯åãµãŒãã¹ã®è©±ã«ãŸãšãŸããšæããŸãã®ã§ããã§ã¯ããŸããããæ¥æ¬ã«ã¯ãŸã é²åºããŠããªãéåžžã«è峿·±ããµãŒãã¹ãããã€ããããŸãããäœç€Ÿãã¯æ¥æ¬ã§ããµãŒãã¹å±éãå§ãããšè©±ããŠããŸããããŸãäœè«ã§ãããæœéžã§Amazon Echoã®ãã¬ãŒã³ããããŠããäŒæ¥ããã£ãŠçå£ã«ãçå£ã«ãçå£ã«çããŸãããè²°ããŸããã§ãããå®ã¯ãšãŠã欲ããã£ãã§ãïŒç¬ïŒ ããã¡ããããªã©ã€ãªãŒæ¬ããŒã¹ããèšããããŠãããŸãããåæžã«ãªãã®ã§ãã¹ãŠè±èªæžç±ã§ãããäžéšã¯ç¡æã§é
åžãããŠããŸããããŸããæ¥æ¬ã§ã¯Interopãªã©ã§ææã§çºå£²ããŠããããªã©ã€ãªãŒã¬ãçµµããé
åžãããŠããã®ã¯ãããããã£ãã§ããç§ãæ¥æ¬èªçã§é¢ãããŸãã ãããã©ãŒãã³ã¹åäžã®ããã®ãã¶ã€ã³èšèšã ã®åæžããããŸããã Birds of a Feather ãã©ã³ãã®æéã«ã¯ãBirds of a Feather ãšããã€ãã³ããéå¬ãããŠããŸãããã®ã€ãã³ãã¯ãã©ã³ãæéãå©çšããŠãããŒã¯ãããæè¡ããŒãã«èªç±ã«éãŸã£ãŠãéãŸã£ãã¡ã³ããŒã§ã©ã³ããé£ã¹ãªãããã®ããŒãã®ããŒã¯ããããšãããã®ã§ããåçã«ããããã«ãããŒãããšã«ããŒãã«ãåºåãããŠããŸãã ãä»åã¯ä»¥äžã®ããŒãããããŸãããèªåã¯ããWeb Performanceãã®ãšããã«å°ãã®æéã ãå ããå°ãã§ãããæ¥æ¬ã®äºäŸã話ãããšãã§ããŸããã DevOps Culture Web Performance Configuration Management/Infrastructure as Code ChatOps DevOps and Security Cutting-Edge Tools Container Orchestration: Swarm, Kubernetes, Mesos, Nomad HTTP/2 Site Reliability Engineering Internet of Things Diversity ã¬ã»ãã·ã§ã³ ã ãªã©ã€ãªãŒæ¬èè
ã«ãããµã€ã³äŒ ãã¬ã»ãã·ã§ã³ãæ¯æ¥ã®ããã«éãããŸãããããã«ã®ããŒã«ãµãŒãã¬ãŒãã³ãå©çšããŠãã¥ããã§ãããŒãæäŸãããŸããã¬ã»ãã·ã§ã³ã¯ãããã¯ãŒãã³ã°ã«ãã£ãŠããã®å ŽãšãªããŸããç§ã«ã¯ãã®æéãçµæ§ææçŸ©ã§ãããæ¥æ¬äººã¯ã»ãšãã©ããªãã§ãããèå³ããåéã®åå è
ãèŠã€ããŠè©±ãããã§ããŸãããçŽç²ã«ããŒã ã§é£²ãã§ãã®æéãæ¥œããã§ããåå è
ããããããŠãè¯ãæéã§ããã ããŸããç§ã«ãšã£ãŠãšãŠãããããã£ãã®ãããªã©ã€ãªãŒæ¬èè
ãã¡ã«ãããµã€ã³äŒã§ãããµã€ã³äŒã¯ã€ãã³ãæéäžåæã§è¡ãããŸããç§ããVelocityã®ãã¹ãã®äžäººã§ãããããã€ããã©ãŒãã³ã¹Webãµã€ããã®èè
ã§ãã Steve Soudersããã«ãµã€ã³ãé ããçŽæ¥è©±ãã§ããŸããããæè¿æ¥æ¬ã§ãçºå£²ããŠããã ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã ã®èè
ããµã€ã³äŒãããŠãã®ã¯è奮ããŸããã§ããã ãåçã¯ã ãUsing WebPageTestã ã®èè
Rick Viscomiæ°ã§ãã å
šäœãéã㊠ããããŠããåå ããããšæã£ãŠããVelocityã«åå ããŠã¿ãŠãæ¹ããŠå匷ã«ãªãã倧ããªæ
ç±ãè²°ãããšãåºæ¥ãŸãããæè¡å
容ã«é¢ããã¢ããããŒãã¯ãã¡ããã§ãããäžçèŠæš¡ã®æè¡ã€ãã³ãã®çé«ãèŠããã®ãè¯ãã£ãã§ãããŸãProgram chairsãã¡ã«ããæè¡ã«ã³ãã¡ã¬ã³ã¹ã®éå¶ãé©ãã®äžã€ã§ããããŸãå
šäœãéããŠãæµ·å€ã®ãšã³ãžãã¢ã®èšåãèŠèãããŠãããšãæ¥æ¬äººã¯çé¢ç®ãªãã ãªãšæ¹ããŠæããŸãããã·ãªã³ã³ãã¬ãŒã§ãã¢ãžã¢ç³»ã®ãšã³ãžãã¢ã掻èºããŠããŸããããã®çç±ããªããšãªãåãããŸããæ¥æ¬äººãšã³ãžãã¢ã¯ãç¥ããªãèšèªç°å¢ïŒããã§ã¯è±èªïŒã§ãå ã
ãšæ¯ãèããèªå·±è¡šçŸåãã身ã«ã€ããã°ããã¡ãã®ãšã³ãžãã¢ãšæž¡ãåãããšæããŸããããã ããã¡ãããè±èªã¯å¿
é æ¡ä»¶ã§ããããããŠãVelocityã®ãããªã€ãã³ãã宿çã«è¡ãªãããŠããããšãçŽ æŽããããšæããŸãããŠãŒã¶ã«ãšã£ãŠäžçªå€§åãªææšã§ããããã©ãŒãã³ã¹ãããµãŒãã¹ã«é¢ããå
šå¡ã§èããæ©äŒã宿çã«ããããšã¯æ¬åœã«è¯ãããšã§ããã ãæåŸã«ãªããŸããããŠãšãã£ã³ã°ããŒã¯ã§ã¯ãæµ·å€ã«ã³ãã¡ã¬ã³ã¹ã«ç©æ¥µçã«åå ããŠãèªç€ŸãµãŒãã¹ãåµã£ãŠãããšã³ãžãã¢ãç±ãåéããŠããŸããèå³ãããã°å人çã«ãWantedlyããã§ã声ããããŠãã ãããæ¯éãŸãã¯ãªãã£ã¹ã«éã³ã«æ¥ãŠãã ããã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ â» æ¬èšäºã®åçã®äžéšã¯Velocityå
¬åŒFlickrããåŒçšãããŠé ããŠãããŸãã
ãããã«ã¡ã¯ãåããŸããŠïŒã¡ãã£ã¢éçºæ¬éš ãšã³ãžãã¢ã®æ±ã§ãã2幎ç®ã®ãµãŒããµã€ãã®ãšã³ãžãã¢ã§ããµã€ãã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ããã£ãŠããŸããæ¬æ¥ã¯WebããŒãžã®ããã©ãŒãã³ã¹ãç¥ãäžã€ã®ææ®µã§ãããããŒãžã®è¡šç€ºå®äºãŸã§ã®ãŠã©ãŒã¿ãŒãã©ãŒã«å³ã«ã€ããŠãã®èŠæ¹ã玹ä»ããããšæããŸãã WebããŒãžã衚瀺ããããŸã§ WebããŒãžã¯ããã©ãŠã¶ãã衚瀺å®äºãŸã§ã«ãµãŒããžãªã¯ãšã¹ããéããããŒãžãæ§æããããã®èŠçŽ ïŒCSS, javascriptãã¡ã€ã«, ç»åãªã©ïŒããªã¯ãšã¹ãããå Žåã«ãã£ãŠã¯æŽã«ãªã¯ãšã¹ããéãã¬ã¹ãã³ã¹ãåŸ
ã¡ããããå®äºããŠåããŠããŒãžã®èªã¿èŸŒã¿ãå®äºããŸãã ãªã¯ãšã¹ããéã£ãŠããå®äºãããŸã§ãã¢ãã¿ããæè»œãªããŒã«ãšããŠã¯ã Firebugã®Net panelãChromeã®Developer Toolã®Networkããã«ãæããããŸããã ãããã¯ãããŒãžã«ãŠè¡ããããªã¯ãšã¹ããšãã®ã¬ã¹ãã³ã¹ã衚ããšã³ããªã®ãªã¹ãã§æ§æãããŠãŸãã ä»åã¯Firebugã®Net PanelãäŸã«ç޹ä»ããããšæããŸãã Firebug NetPanelã䜿ã£ãŠå¯Ÿè±¡ãšãªãããŒãžãã¢ãã¿ãããšãäžå³ã®ãããªãŠã©ãŒã¿ãã©ãŒã«å³ã衚瀺ãããããšæããŸãã ãŠã©ãŒã¿ãã©ãŒã«ã®èŠæ¹ ããã§ç»é¢ã®å
容ã«ã€ããŠç°¡åã«èª¬æããŠãããŸãã å·Šããé ã«ã URL ãªã¯ãšã¹ãããURL ã¹ããŒã¿ã¹ ãªã¯ãšã¹ãã®çµæïŒã¹ããŒã¿ã¹ã³ãŒãïŒ ãã¡ã€ã³ ãªã¯ãšã¹ãå
ã®ãã¡ã€ã³ ãµã€ãº ãªã¯ãšã¹ãããçµæã«å¯Ÿãããµã€ãº IPã¢ãã¬ã¹ æ¥ç¶å
ã®IP ã¿ã€ã ã©ã€ã³ ãªã¯ãšã¹ããã©ã®é åºãã¿ã€ãã³ã°ã§è¡ãããããã»ã¹ã«ã©ããããããã£ãããããããŸãã ã«ãªããŸãã ã¡ãªã¿ã«ãã¿ã€ã ã©ã€ã³ã«ã²ãããŠããéãç·ãšèµ€ãç·ã¯ããããã éãç·ã»ã»ã»DOMContentLoadedã€ãã³ãã®çºç«æé èµ€ãç·ã»ã»ã»loadã€ãã³ãã®çºç«æé ã瀺ããŠããŸãã ãããŠãäžéšã«è¡šç€ºãããŠããã®ã¯ããã®ããŒãžãèªã¿èŸŒãŸãå®äºãããŸã§ã«å
šäœçµæã«ãªããŸãã ããããã 51ä»¶ã®ãªã¯ãšã¹ã(å³ã®å Žå) ãã®ããŒãžãå®äºããããŸã§ã«çºçãããªã¯ãšã¹ãæ° 580.4 KB ããŒã¿ã«ã®ãã¡ã€ã«ãµã€ãº 4.93s (onload: 3.85s) 5.99s(onload: 4.26s) å
šãŠã®ãªã¯ãšã¹ããå®äºãããŸã§ã«ããã£ãæéã4.26ç§ loadã€ãã³ãããŸã§ã®æéã5.99ç§ ãšãªããŸãã â» DOMContentLoadedã€ãã³ãã¯ãåæã®HTMLããã¥ã¡ã³ãã®èªã¿èŸŒã¿ãšè§£æãå®äºããã¿ã€ãã³ã°ã§çºç«ããŸãã ããããStylesheetãç»åãªã©ã®èªã¿èŸŒã¿ã¯é€ããŸããâ»åæããŠååŸããjavascriptã¯DOMè§£æãåŸ
ãããããšã«ãªããŸãã ãããŠãloadã€ãã³ãã¯ããªã¯ãšã¹ãããããŒãžã®ãªãœãŒã¹ãšããã«å±ãããªãœãŒã¹ã®ååŸãçµäºããã¿ã€ãã³ã°ã§çºç«ããŸãã ã€ãŸãããŠãŒã¶ãããŒãžããªã¯ãšã¹ãDOMè§£æãå¯èœãªéãéãããããã«ã¯ãåºæ¥ãå Žåãéåæã§JavascriptãååŸããããã«ããã¹ã¿ã€ã«ã·ãŒãã®èªã¿èŸŒã¿ãæé©ã«ããã®ãåºæ¬ã§ããã ãªã¯ãšã¹ãã«å®éã«ããã£ãæé äžå³ã«ç€ºãããã«åãªã¯ãšã¹ããšã³ããªãŒã®ã¿ã€ã ã©ã€ã³ã«ã«ãŒãœã«ãåããããšã©ã®ã¿ã€ãã³ã°ã§ã©ããããæéãããã£ãŠè¡ãããããããããŸããäŸã ãšæ¥ç¶ã«æéãããã£ãŠããŸããã Blocking(ããããã³ã°) ãªã¯ãšã¹ããããã©ãŠã¶ã®ãããã¯ãŒã¯æ¥ç¶ãåŸ
ã€ããã¥ãŒïŒåŸ
ã¡è¡åïŒã«ãã£ãæé(SSLæ¥ç¶ã®å Žåããã³ãã·ã§ã€ã¯ãããªããŒã·ã§ã³ãããã«å«ãŸããŸãã) DNS Lookup(DNSã«ãã¯ã¢ãã) DNS解決ã«èŠããæé Connecting(æ¥ç¶) TCPæ¥ç¶ãäœãã®ã«ããã£ãçµéæé Sending(éä¿¡) ãªã¯ãšã¹ãããããŒãéã£ãŠããŸã Waiting(åŸ
æ©) ãµãŒãããã®ã¬ã¹ãã³ã¹ãåŸ
ã£ãŠãã Receiving(åä¿¡) ãµãŒãããã®ã¬ã¹ãã³ã¹ãåãåã£ãŠãã ããè©³çŽ°ãªæ
å ± ããã«è©³çްãç¥ãããå Žåãåãšã³ããªãŒãã¯ãªãã¯ããã°ã¬ã¹ãã³ã¹ãããããªã¯ãšã¹ãããããæž¡ããããã©ã¡ãŒã¿ãã¬ã¹ãã³ã¹ãCookieæ
å ±ãªã©ã確èªã§ããŸãã ããã§ãã»ãã¥ã¢ãã©ããã確èªãã§ããŸãããããã©ãŒãã³ã¹åäžã®ããã«åºæ¥ãããšããããŠãããã©ããã確èªã§ããŸããããšãã°ãHTTPãããã« Accept-Encoding:gzip ãã€ããŠãªã¯ãšã¹ããæããããšã§ããªã¯ãšã¹ããå§çž®ãããç¶æ
ã§éãããã¯ã©ã€ã¢ã³ãåŽã§å±éããã®ã§ãªã¯ãšã¹ããµã€ãºãå°ãããªããããéä¿¡ã«ãããã³ã¹ããå°ãããªããããã©ãŒãã³ã¹ãåäžããããšããããŸãã æåŸã« ãããã ã£ãã§ããããã æè¿ã®ãã©ãŠã¶ã§ããšãFirebug以å€ã§ãéçºè
çšããŒã«ããããã®ãã»ãšãã©ã§ãFirebugåæ§ãªæ©èœããã£ãŠããŸãã ãµã€ãããã©ãŒãã³ã¹ã¯ãŠãŒã¶ãããå¿«é©ã«ãµã€ããå©çšããããã«éèŠã§ãã ãã©ãŠã¶ã§ã®ããã©ãŒãã³ã¹ãã§ãã¯ã¯çŽæ¥ãŠãŒã¶èŠç¹ã§è¡ããŸããã äœããæè»œãªããããŸãã¯ããããå§ããŠãããŸãããïŒ
ã¿ãªããŸãããã«ã¡ã¯ïŒãšã³ãžãã¢ã®æ±ã§ãã ããã³ããšã³ãã®éçºã¯äžæ
£ããªç§ã¯CSSã®æ±ãããŸã ãŸã æªçã§ãã ãšããã®ããç§ã¯ãèªèº«ã®æ¥åã§ã¯ãCSSã¯ãªããªãè§Šãæ©äŒããªãã§ãã ããããã£ãŠãç§ã¯CSSã«ã¯èŠææèããããŸããŠã»ã»ã»ç¹ã«floatã®æ±ããããŸãã§ããªããã§ãããã»ã»ã»ïŒfloatã䜿ã£ãŠã³ã³ãã³ããé
眮ããããšãããšå€§äœã¬ã€ã¢ãŠãã厩ããŠãæ··ä¹±ããŸãã ãããªç§ã§ããfloatã®ä»£æ¿ãšããŠäœ¿ããéåžžã«äŸ¿å©ãªãã®ããããŸããã®ã§ãã¡ãã玹ä»ããããšæããŸãã ããã¯ã CSS3 Flexbox ïŒ ä»åããã¡ãã«ã€ããŠç޹ä»ããããšæããŸãã CSS3 Flexbox CSS3ã®Flexboxãšã¯ãFlexible Box Layout Moduleãšãã°ãã æ°Žå¹³æ¹åãããã¯åçŽæ¹åã«é
眮ãããèŠçŽ ã®ããžã·ã§ã³ãã³ã°ãè¡ãããã®æ¹æ³ã§ãã ã¡ãªã¿ã«ãCSS3ã®Flexboxã䜿ãããã©ãŠã¶ã¯ã http://caniuse.com/#search=flexbox ã«ãŠã確èªã§ããŸãã æ¥æ¬ã§ã¯IE11ã16.76%ãã®ã·ã§ã¢ãšãªã£ãŠãããéšåçãµããŒãã®ããããã°ããããšã®ããšã PCã§å®å¿ããŠäœ¿ãããã«ã¯ããå°ãåŸ
ã€å¿
èŠãããããã§ãã… ã§ãããFlexboxã¯éåžžã«æ±ããããã§ãã åŒç€Ÿã®ãã£ã¬ã¯ã¿ãŒã¯ã瀟å
å匷äŒã«ãŠãHTMLãšCSSã§ç°¡åãªãµã€ãããŒãžãèªãäœããšããç ä¿®ããã£ãã®ã§ã ãã®æã«ãç§ããµããŒãããæ¹ã«ã¯ã玹ä»ããã®ã§ãããåå¿è
ã§ãããã€ã³ãããæŒãããã°éåžžã«äœ¿ã£ãŠãè¯ããã¬ã€ã¢ãŠããç°¡åã«ããŸãã§ãã¡ãããŸãã CSS3 Flexbox 1 2 3 4 5 6 .list { width: 200px; } .item { height: 40px; width: 40px; border-radius: 5px; margin-right: 10px; margin-bottom: 10px; text-align: center; } .item:nth-child(1) { background:chocolate;} .item:nth-child(2) { background:tomato; } .item:nth-child(3) { background:slategray; } .item:nth-child(4) { background:pink; } .item:nth-child(5) { background:skyblue; } .item:nth-child(6) { background:limegreen; } äžèšã®ãœãŒã¹ã§ã®è¡šç€ºã¯ã 瞊ã«ãã ãªããã ã ãã«ãªã£ãŠããŸããã ããã§cssãããŸãæå®ããŠãããã ãã§ã .list { width: 200px; display: flex; flex-direction: row; flex-wrap: wrap; } 綺éºã«æŽåãããããŸãã ãã€ã³ãã¯èŠªèŠçŽ ãšåèŠçŽ èŠçŽ ãFlexboxã«ãããã€ã³ãã¯ã芪èŠçŽ ãšåèŠçŽ ã«CSSãã¡ãã¡ãã£ãšèšå®ããŠãããããšã§ãã 芪èŠçŽ ã¯åèŠçŽ ãã©ã®ãããªé
眮ã«ãªã£ãŠã»ãããããããŠãåèŠçŽ ã¯ãåèŠçŽ èªèº«ã䞊ã³ãèªèº«ã®å€§ãããäœçœ®ãã©ãããå
·åã§é
眮ããããããæå®ããŠãããã ãã§ãã ïŒä»åã¯ãã³ããŒãã¬ãã£ãã¯ã¹ã¯çããŠç޹ä»ããŸããïŒ èŠªèŠçŽ Flexboxã«ãã倧äºãªæå® display: flex | inline-flex åèŠçŽ ãã©ã䞊ã¶ããæ±ºãã flex-flow: <flex-direction> || <flex-wrap> flex-direction : raw | column | raw-reverse | column-reverse flex-wrap : nowrap | wrap | wrap-reverse é
眮æ¹åã®èŠçŽ ãžã®æå® justy-content : flex-start | flex-end | center | space-between | space-around é
眮æ¹åãšã¯åçŽã®èŠçŽ ãžã®æå® align-items : flex-start | flex-end | center | baseline | stretch åèŠçŽ å
šäœã®ãŸãšãŸããã©ãããé
眮ã«ããã align-content : flex-start | flex-end | center | space-between | space-around | stretch åèŠçŽ äžŠã³é order: <integer> èªèº«ã®å€§ãã (grow: ä»ã®ã¢ã€ãã ãšã®å€§ããã®æ¯çãshrink: 蚱容瞮å°ãµã€ãºãbasis: åºæºã®ãµã€ãºã) flex: <flex-grow> || <flex-shrink> || <flex-basis> flex-grow : <number> flex-shrink : <number> flex-basis : <number> èªèº«ã®é
眮 align-self : auto | flex-start | flex-end | center | baseline | stretch åè(https://www.w3.org/TR/2016/CR-css-flexbox-1-20160526/) Flexboxã䜿ãã°é
眮ãç°¡åïŒïŒ ãããŠãããããPCãµã€ãã®äœãã§ããã ããããŒãããã¿ãŒãå·Šãµã€ãã¡ãã¥ãŒãå³ãµã€ãã¡ãã¥ãŒã®é
眮ãã flexboxãã€ããã°ç°¡åã«å®çŸå¯èœã§ãïŒ CSS3 Flexbox Carousel header contents left side right side footer .container { display: flex; flex-flow: row wrap; font-weight: bold; text-align: center; } .header { background: chocolate; flex: 1 100%; height: 50px; } .left { height: 300px; background: pink; width: 50px; order: 1; } .main { background: slategray; order: 2; flex: 2 0px; height: 300px; } .right { width: 50px; height: 300px; background: skyblue; order: 3; } .footer { background: tomato; flex: 1 100%; order: 4; height: 30px; } æåŸã« ãããã ã£ãã§ãããããfloat䜿ããã§ãç°¡åã«ã¬ã€ã¢ãŠããçµããŸããã 芪ãšåã«å¯ŸããŠflexã®ã«ãŒã«ã«æ²¿ã£ãæå®ãããŠãããã ããªã®ã§ç°¡åã§ãã ç¹ã«åã®èŠçŽ ãå¢ãããæžã£ããããã³ã³ãã³ãã«äœ¿ãããšæããŸãïŒ æ¯éã詊ããŠã¿ãŠãã ããïŒ Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã èå³ã®ããæ¹ã¯ãã²äžåºŠæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ
ããã«ã¡ã¯ãGoèšèªã奜ããªãšã³ãžãã¢ã®æŠç°(@takedajs)ã§ãã åãããšã³ãžãã¢ãç®æããŠé±1ã®ããŒã¹ã§ãžã ã«éã£ãŠãŸããçãã¬ã¯çåã¢ããã¯ãã¡ããã§ãããéäžåã¢ããã«ã广çãªã®ã§ããšã³ãžãã¢ã®ã¿ãªããã«ããªã¹ã¹ã¡ã§ãã ããŠãæ¬é¡ã§ãã ä»åã¯åŒç€Ÿãè¡ã£ãŠãã瀟å
LTäŒã®åãçµã¿ã«ã€ããŠãã話ãããããšæããŸãã 瀟å
LTäŒã«ã€ã㊠å»å¹Žã®4æãããããæ¯æ1åææ«ã®å®æåŸ18æ~19æã«ããšã³ãžãã¢ãšãã¶ã€ããŒåãã®LTäŒãéå¬ããŠããŸãã ïŒäººã«ã€ãçºè¡š7åã質çå¿ç3åã§1åã®LTã«ã€ã4~5人ã«çºè¡šããŠããããŸãã ããŒãã¯ç¹ã«æ±ºããŠããããæè¡ã«é¢ããããšã§ããã°ãææ°æè¡ãã€ã³ãã©ããã¶ã€ã³ãããŒã«ãäœã§ãè¯ããšããã¹ã¿ã³ã¹ã§è¡ã£ãŠããŸãã åºæ¬ã¯ç€Ÿå
ã ãã§è¡ã£ãŠããã®ã§ãããæ°ã¶æã«äžåºŠãä»ç€Ÿãšã®ååLTäŒãéå¬ããŠããŸãã å§ããçç± çŸåšè¡ã£ãŠãã瀟å
LTäŒãå§ããåã¯ã瀟å
ã§æè¡çãªã¢ãŠãããããè¡ãå ŽããããŸããã§ããã ãã®ãããäžç·ã«åããŠãããšã³ãžãã¢ããã¶ã€ããŒããã©ããªæè¡ã«èå³ãããããã©ããªããšãè¡ã£ãŠãããããŸããæ¥çã§ã¯ã©ããªæè¡ãæµè¡ã£ãŠããããªã©ã瀟å
ã§ã®æ
å ±å
±æãããŸãè¡ãããŠããŸããã§ããã åèªèº«ãYAPC::Asia Tokyoãªã©ã®å€§ããªã«ã³ãã¡ã¬ã³ã¹ãæè¡å匷äŒã«åå ããŠãæè¡ã®æ
å ±å
±æã®å€§åãã宿ããŠããã®ã§ãæè¡çãªã¢ãŠãããããè¡ãåãçµã¿ã以åãã瀟å
ã§è¡ããããšæã£ãŠããŸããã ããã§ã瀟å
LTäŒã§ããã°æ
å ±å
±æãã§ãããã¬ãŒã³ã®ç·Žç¿ã«ããªãäžç³äºé³¥ã ãšæãå§ããŸããã 第1åç®é嬿ã®åçã§ãããããªæãã§åæ°ãããããšéå¬ããŠãŸãç¬ éå¬ããŠè¯ãã£ãããšãèŠåŽããããš ãããŸã§1幎éåžäŒãšéå¶è
ãšããŠæºãã£ãŠããèŠç¹ã§ã®ã瀟å
LTäŒãéå¬ããŠè¯ãã£ãããšãšèŠåŽããããšã§ãã è¯ãã£ãããš åå ããŒãã«ã®äœãã¢ãŠããããããå Ž å€éšã®å匷äŒã ãšç¥ããªã人ã°ããã§åå ããŠçºè¡šããããŒãã«ãé«ãã§ããã瀟å
LTäŒã§ããã°é¡èŠç¥ãããåå ããŠããªãã®ã§ãçºè¡šããããŒãã«ãããªãäœããªããŸãã N1(åŒç€Ÿã®æ°èŠäºæ¥åµåºããã°ã©ã )ãªã©ãšã³ãžãã¢ã§ãå
šç€Ÿã®åã§ãã¬ãŒã³çºè¡šããæ©äŒãããã®ã§ã瀟å
LTäŒãè¯ãçºè¡šç·Žç¿ã®å Žã«ãªã£ãŠããŸãã æè¡ãã€ã³ãããããè¯ããã£ãã ã³ã³ã¹ã¿ã³ãã«éå¬ããããšã§ã瀟å
LTäŒã§çºè¡šããããã«äœãå匷ããããšããè¯ãæµããã§ããŠããŸãã ãã åã«ã€ã³ãããããå Žåãšéãã誰ãã«çºè¡šããããšãåæãšããŠè¡ããããã€ã³ãããã®è³ªãé«ãŸããŸãã 瀟å€ãšã³ãžãã¢ãšã®äº€æµã®å Ž ç€Ÿå
LTäŒã®éå¶ãæ
£ããŠãããšããã§ãä»ç€Ÿãšã®ååLTäŒãäœåºŠãéå¬ããããŸããã LTäŒãä»ç€Ÿãšäº€æµãããã£ããã«ãªãã瀟å€ã®ãšã³ãžãã¢ãããšãŠãè¯ãåºæ¿ãåããããšãã§ããŸããã æè¿è¡ã£ãååLTäŒã®æ§åã§ãããã¡ãããã¶ã寿åžããé
ããã£ããçšæããŸããç¬ ãŠãšãã£ã³ã°ããŒã¯ à CAãªã¯ãŒã ã§ååLTäŒãéå¬ããŸãã èŠåŽããã㚠瀟å
LTäŒã¯è€æ°ã¡ã³ããŒã§éå¶ããã¹ã æè¿ãŸã§éå¶ããåžäŒãŸã§ïŒäººã§è¡ã£ãŠããŸããããèªåã®æ¥åãå¿ãããšéå¶ãçãã«ãªã£ãŠããŸã£ãããä»åŸã©ããã颚ã«éå¶ããŠããã°ããè¯ããªãããèããã®ã«éçããããŸããã ä»ã§ã¯è€æ°ã®ã¡ã³ããŒã§éå¶ããããšã§ããããã£ãåé¡ã解決ã§ããåœäºè
æèããã£ãŠåãçµãã§ãããã¡ã³ããŒãå¢ããŸããã åžäŒã®ä»åãã倧å LTäŒãè¯ããã®ã«ãªããã©ããã¯ãåœæ¥ã®åžäŒã«ãã£ãŠæ±ºãŸããšããããšã宿ããŠããŸããã ç¹ã«æé管çãéèŠã§ãçºè¡šæéãå
šäœã®çµäºæéããªãŒããŒããŠããŸããšãå
šäœããã¬ãŠããŸããç· ãããªããªã£ãŠããŸããŸãã åžäŒããã£ããä»åããçºè¡šè
ã®æ¹ã«ã¯æéå³å®ã培åºããŠãããããšã倧äºã§ãã æé管çã®ããã«ã瀟å
LTäŒå°çšã¿ã€ããŒãArduinoã§äœæããŠå©çšããããšããããŸãããäžåºŠã ãããå©çšãããŸããã§ããç¬ çºè¡šè
ãåºå®åããŠããŸã åãã®é ã¯è²ããªæ¹ãçºè¡šããŠãããã®ã§ãããæ¬¡ç¬¬ã«çºè¡šè
ãåºå®ããŠããŸããã åãšããŠã¯ä»»æåå ã§è¡ã£ãŠããã®ã§çºè¡šã匷å¶ãããã¯ãªãã§ãããå¯èœã§ããã°è²ã
ãªæ¹ã«çºè¡šããŠããã ãã®ããã¹ãã§ãã ããã«é¢ããŠã¯ãŸã è¯ãè§£æ±ºæ¹æ³ãèŠã€ãã£ãŠããªããããä»ç€Ÿã®ç€Ÿå
LTäŒã§ã¯ã©ãããŠãããæ°ã«ãªããŸãããã æåŸã« 瀟å
LTäŒã¯ãåå è
ã身è¿ãªäººã ããªã®ã§ãçºè¡šããããŒãã«ãäœã絶奜ã®ãã¬ãŒã³çºè¡šã®å Žã§ãããšåæã«ãè¯ãæè¡ã®æ
å ±å
±æã®å Žã«ãªã£ãŠããŸãã æ¥åã§åŠãã ããšãæ¥ã
å匷ããæè¡ãã¢ãŠããããããã®ãåœããåã®æåã«ãªã£ãŠãããããã«ãç¶ç¶ããŠç€Ÿå
LTäŒãã¡ã³ããŒã§éå¶ããŠãããããšæããŸãã ãŸãã瀟å
ã ãã«éãããå€éšã®ãšã³ãžãã¢ã®æ¹ãšã®äº€æµãšããŠä»ç€Ÿãšã®ååLTäŒãåŒãç¶ã宿çã«éå¬ããŠãããŸãã å人ãšããŠå°æ¥çã«ãæ°çŸäººèŠæš¡ã®ããã¯ã«ã³ãã¡ã¬ã³ã¹ããŠãšãã£ã³ã°ããŒã¯ã ãã§è¡ããšããããšãç®æšã«ã瀟å
ã®ãšã³ãžãã¢ããã¶ã€ããŒã®ã¢ãŠããããåãé«ããŠãããããšæããŸãã Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã èå³ã®ããæ¹ã¯ãã²äžåºŠæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ
ããã«ã¡ã¯ãGoèšèªã奜ããªãšã³ãžãã¢ã®æŠç°(@takedajs)ã§ãã æè¿ã¯Goèšèªã®å€éšå匷äŒãå€ãéå¬ãããŠå¬ããã®ã§ãããå®å¡ãªãŒããŒã§åå ã§ããªãããšãå€ãã§ãããåã«è¡ãããGoã«ã³ãã¡ã¬ã³ã¹åå ãããã£ãã§ãã»ã»ã» ããŠãæ¬é¡ã§ãã ä»åã¯æ®æ®µåãè¡ã£ãŠãããã¢ããŒããã¯ããã¯ã«ã€ããŠãšãããã«å©çšãããã¢ããŒãã¿ã€ããŒãäœæããŸããã®ã§ã話ããŸãã ãã¢ããŒããã¯ããã¯ãšã¯ 25åã®éäžããæéã1ãã¢ããŒããšãã1ãã¢ããŒããçµãããã³ã«5åã®äŒæ©ããŸãã ãããŠã4ãã¢ããŒããçµãã£ããã15åçšåºŠã®äŒæ©ãå
¥ãããšããã®ãç¹°ãè¿ããŠè¡ãäœæ¥å¹çã¢ããã®ãã¯ããã¯ã§ãã ä»ããã®ããã°ããã¢ããŒãã»ãã¯ããã¯ãå©çšããŠæžããŠããŸãã æµ·å€ã®ãšã³ãžãã¢ãã人æ°ã®æŽæžã§ãæè¿æ¥æ¬èªèš³ãçºå£²ããããšã³ãžãã¢ã®ã©ã€ãããã¯æ¬ã§ãåãäžããããŠããŸãããå®éã«è©ŠããŠå¹æã宿ããŠããæ¹ãå€ããšæããŸãã å®éã«è¡ã£ãŠã¿ãŠ åèªèº«ã倧åŠã®é ãããã®ãã¯ããã¯ãå©çšããŠããŸãã é·æéäœæ¥ããŠæ°ãåãããäŒæ©ããã®ãšã¯éãã25åäœæ¥ããŠåŒ·å¶çã«äŒæ©ããããšã§ãé«ãéäžåãä¿ã£ãŠäœæ¥ãã§ããŸãã ãŸãã25åãšããå¶éã1æ¥äœåºŠãè¡ãããšã§ããã®25åäžã«ã¯ããçµããããïŒãšããç· ãåã广ãçãŸããŸãã ãã¢ããŒããã¯ããã¯ãè¡ããšçްããäŒæ©ãå€ãæãã®ã§ãå®è·µããŠãã人ã®äžã§ã¯ãäŒæ©æéã«äœããããïŒãšããæ©ã¿ããããšæããŸãã åã¯ãã¢ããŒãéã®5åäŒæ©ã以äžã®ããã«éãããŠããŸãã ã5åäŒæ©ã åžãç«ã¡æ©ã ãè¶ãããã«è¡ã ãèåãé£ã¹ã ãã€ã¬ã«è¡ã äžåžã«å ±é£çžãã ãŸãã15åäŒæ©ã®ã¿ã€ãã³ã°ã§ãæ°åãå€ããããã«äœæ¥ããå Žæãå€ããŠããŸãã ãšã³ãžãã¢ã¯1æ¥äžç€Ÿå
ã«ããã®ã§ãåãå Žæã«ãã£ãšã¯èŸãã§ãããã ã¹ã¿ã³ãã£ã³ã°ãã¹ã¯ (æ¯è²ãè¯ãã§ããã¹ã¿ã³ãã£ã³ã°ã§äœæ¥ããã°æŽã«éäžã§ããŸãã) ãœãã¡ãŒ (ãªã©ãã¯ã¹ããŠäœæ¥ã§ããŸãã) ãã©ã¹ (ãŸã äžåºŠãããã§ã¯äœæ¥ããããšããããŸããç¬) ãã¢ããŒãã¿ã€ã㌠æ®éã®ã¿ã€ããŒã¢ããªã§ããã¢ããŒããã¯ããã¯ãè¡ãããšãã§ããŸãã ãã ãå°çšã¿ã€ããŒ(25åãš5åã亀äºã«èªåã§èšã£ãŠããã)ãçšæããæ¹ãããã¹ã ãŒãºã«äœæ¥ãè¡ããŸãã ããã§ãåŒç€Ÿãå©çšããŠããhipchatãšGoèšèªãå©çšããŠã·ã³ãã«ãªãã¢ããŒãã¿ã€ããŒãå®è£
ããŸãããã¿ãŒããã«äžã§åäœããŸãã ã¿ã€ããŒã®äœ¿ãæ¹ 1: hipchatã«ãã¢ããŒãå°çšã®ã«ãŒã ãäœæããŸãã 2: ã¿ãŒããã«äžã§ä»¥äžã®ãªãã·ã§ã³ä»ãã®ã³ãã³ããå©ãã¿ã€ããŒãå®è¡ããŸãã go run main.go -t ãhipchatã®API Auth Tokenã -r ãäœæããã«ãŒã åã -u ãã¡ãã»ãŒãžã®å®åã 3: ã¿ã€ããŒãå®è¡ããããšãäœæ¥éå§ãäŒæ©éå§ãéžæããã«ãŒã ã«éç¥ããŸãã 4: ã¿ã€ããŒèµ·åäžã¯ãã¿ãŒããã«äžã§æå®ã®ããŒãå
¥åãããšãã¢ããŒãã®ãªã¹ã¿ãŒããšçµäºãè¡ããŸãã [r] ãªã¹ã¿ãŒã [f] çµäº(ã¹ã¿ãŒãããçµäºãŸã§ã®éæãããã¢ããŒãã®åæ°ãéç¥ããŸãã) ã㢠ãã¢ã®ããäžæçã«èšå®ã倿ŽããŠããããã¢ããéç¥ãæ¥ãééãæ©ãããŠããŸãã (ç»åãã¯ãªãã¯ããŠæ¡å€§è¡šç€ºãããšèŠãããã§ãã) hipchatãèŠãŠããªããŠããããã¢ããéç¥ãæ¥ãã®ã§ãäŒæ©ããã¿ã€ãã³ã°ãªã©ãåãããŸãã äœæ¥ãä¹ã£ãŠãããšãã¯ãäŒæ©ã®éç¥ãç¡èŠããããšãå€ã
ãããŸããã»ã»ã»ç¬ å®è£
ã³ãŒã package main import ( "flag" "fmt" "log" "time" "github.com/andybons/hipchat" "github.com/tlorens/go-ibgetkey" ) var pom_time int var token *string var room_name *string var user_name *string func main() { token = flag.String("t", "", "hipchat access token") room_name = flag.String("r", "", "send message room name") user_name = flag.String("u", "", "send message user name") flag.Parse() kill := make(chan bool) finished := make(chan bool) restart__key := "r" t := int(restart__key[0]) finish_key := "f" f := int(finish_key[0]) go pomTimerGoroutine(kill, finished) loop: for { input := keyboard.ReadKey() select { case ãŸãšã ãã¢ããŒãã»ãã¯ããã¯ã¯ã¿ã€ããŒ1ã€ã§è¡ããäœæ¥å¹çã¢ãããã¯ããã¯ã§ãã ç°¡åã«è¡ããŸãããå®éã«è©ŠããŠã¿ããšãã®å¹æã®å€§ããã宿ã§ãããšæããŸãã®ã§ãæ¯é詊ããŠã¿ãŠãã ããã åŒãç¶ãã瀟å
ã§ãäœæ¥å¹çã¢ããã®ãã¬ããžãå
±æãåããçç£æ§ãäžããŠãããããšæããŸãã èªåããã£ãŠå¹æããã£ãäœæ¥å¹çã¢ããã®ä»çµã¿ãçºè¡šãåã瀟å
LTäŒãéå¬ããã®ãè¯ããããããŸãããã Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã èå³ã®ããæ¹ã¯ãã²äžåºŠæ°è»œã«ãªãã£ã¹ã«éã³ã«ããŠãã ããã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ
ããã«ã¡ã¯ããµãŒããµã€ããšã³ãžãã¢ã®æŠæ¬ã§ãã IBM ã OSS ãšããŠéçºããŠãã Swift ã® Kitura ãè§Šã£ãŠã¿ãŸãã Vagrant ã§ Kitura ãèµ·åãã Kitura ã® README ã®æé éãã«ã€ã³ã¹ããŒã«ããŸã â» ç§ã¯ Vagrant ã䜿çšããŸãããDocker ã§ãã€ã³ã¹ããŒã«ã§ããããã§ã ãŸãã¯ã git clone ããŸããã $ git clone git@github.com:IBM-Swift/Kitura.git 次ã«ã vagrant up ã§ Vagrant ãèµ·åããŸã $ cd Kitura $ vagrant up ãã¹ãåŽã® /path/to/Kitura ãš VM åŽã® /vagrant ã¯å
±æãããŠããã®ã§ãVM åŽã§ãããžã§ã¯ããäœæãããšãã¯ã /vagrant é
äžã§ããã°ãã¹ãåŽã§ããã¡ã€ã«ãç·šéã§ããã®ã§ã /vagrant é
äžã«ãããžã§ã¯ããäœæããŠãããããšæããŸã VM åŽã§ãããžã§ã¯ããäœæããã®ã§ã vagrant ssh ããŸã $ vagrant ssh ããããå
㯠VM äžã§ã®äœæ¥ã«ãªããŸã $ cd /vagrant $ mkdir TestApp $ cd TestApp Swift ã®æ°èŠãããžã§ã¯ããšããŠåæåããŸã $ swift build --init Creating executable package: TestApp Creating Package.swift Creating .gitignore Creating Sources/ Creating Sources/main.swift Creating Tests/ ãã£ã¬ã¯ããªå
ã¯ãããªæãã«ãªã£ãŠããŸã TestApp âââ Package.swift âââ Sources â  âââ main.swift âââ Tests Package.swift ã« Kitura ã远èšããŸã Package.swift import PackageDescription let package = Package( name: "TestApp", dependencies: [ .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 17) ]) Sources/main.swift ã«ã¯ã«ãŒãã£ã³ã°ã®èšå®ãšããµãŒãã®èµ·åèšå®ãèšè¿°ããŸã Sources/main.swift import Kitura let router = Router() router.get("/") { request, response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router) Kitura.run() ãã¡ã€ã«ã®ç·šéãçµãã£ãããã³ã³ãã€ã«ããŠãããŸã $ swift build -Xcc -fblocks ...ïŒç¥ïŒ Linking CHttpParser Compile Swift Module 'KituraSys' (3 sources) Compile Swift Module 'KituraNet' (12 sources) Compile Swift Module 'Kitura' (30 sources) Compile Swift Module 'TestApp' (1 sources) Linking .build/debug/TestApp ããã§ã¯ãå®è¡ããŠã¿ãŸã $ .build/debug/TestApp ç¹ã«äœãã¬ã¹ãã³ã¹ã¯ãããŸããããèµ·åã§ããŠãããããªã®ã§ããã©ãŠã¶ã§ç¢ºèªããŠã¿ãŸã ç¡äºããã©ãŠã¶ã§ã確èªã§ããŸããïŒ ãŸãšã ãŸã ãŸã æ©èœãããŸããªã Kitura ã§ããæ¥ã
ããŸããããã¢ããããŒããããŠããã®ã§ãããããã«æåŸ
倧ã§ãã Wedding Parkã§ã¯äžç·ã«æè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµã£ãŠãããšã³ãžãã¢ãåéããŠããŸãã ITÃãã©ã€ãã«ã§æ¥çãå€ããïŒãããã§ãã·ã§ãã«ãªWEBãšã³ãžãã¢åéïŒ
ããã«ã¡ã¯ããšã³ãžãã¢ã®è¥¿èã§ããå
æ¥ãŠãšãã£ã³ã°ããŒã¯ã§è¡ãããååLTäŒã«ã€ããŠã®å ±åãèŽããŸããä»åã¯ååã§ãCAãªã¯ãŒãïŒCA RewardïŒãããšLTäŒã宿œããŸãããè³ããã§å
容çãã ããããªäŒãšãªããŸããããé
ã飲ã¿ãªããããã¶ãé£ã¹ãªããã®æ¥œããäŒã§ããããŸããã çºè¡šå
容 ä»¥äžæ¬ç§°ç¥ã§ãã 1, ããµãŒãã¹çŽ¹ä» + Monitã§å°åãã®å¹ãç£èŠäœãã ãããããããã WeddingPark 西è 2, ããããã¯ãå
šäœèª¬æã ãããããããã CAãªã¯ãŒã å±±æ¬ 3, ãèšèªã®æ€èšŒãšå°å
¥ã ãããããããã WeddingPark æŠç° 4, ãGCPãå©çšããããŒã¿åæãã©ãããã©ãŒã ã«ã€ããŠã ãããããããã CAãªã¯ãŒã é¿éš 5, ãSentryãå©çšãããšã©ãŒéçŽãã©ãããã©ãŒã ã ãããããããã WeddingPark æŠæ¬ 6, ãCA Reward x Goèšèªã ãããããããã CAãªã¯ãŒã å±±å¡ 7, ãAI Lab ã®åãçµã¿ã«ã€ããŠã ãããããããã ãµã€ããŒãšãŒãžã§ã³ããã¢ããã¯æ¬éš éŠ¬å Ž ããã£ãŠçºããã ãã§ããçãã ãããã§ãïŒCAãªã¯ãŒããã¢ããã¯ã¹ã¿ãžãªåŽã®çºè¡šå
容ã«ã€ããŠã¯CAãªã¯ãŒã å
¬åŒãšã³ãžãã¢ããã°ã«æ²èŒããŠããã®ã§ãã¡ããã芧ãã ãããæåŸã®ãªã³ã¯ãåç
§ãã ãããæ¬èšäºã§ã¯ãWeddingParkåŽã®çºè¡šãäžå¿ã«ãå±ãããŸãã 1, ããµãŒãã¹çŽ¹ä» + Monitã§å°åãã®å¹ãç£èŠäœãã WeddingPark 西è ç§ã®æ¹ãããMonitã䜿ã£ãŠã¿ãä»¶ãå
±æãããŠããã ããŸãããMonitã®ãã£ã©ããªã¢ã«ãããŠããããšãããªã¢ã«ãªæèŠãå¯ããããŸããã 2, ããããã¯ãå
šäœèª¬æãã CAãªã¯ãŒã å±±æ¬ å±±æ¬æ¬éšé·ããã¯ãCAãªã¯ãŒãã®ãããã¯ãã玹ä»é ããŸããããããã¯ãåãããBOSATUãããMYOUOããªã©ä»ã®ååã§çµ±äžããŠããä»ã·ãªãŒãºã®è©±ã¯è峿·±ãã£ãã§ãã ãã 3, ãèšèªã®æ€èšŒãšå°å
¥ãã WeddingPark æŠç° èšèªãæ¯èŒæ€èšŒããŠã¿ãçµæã«ã€ããŠã§ããæ§èœã®éããã©ãã§åºãã®ããè¯ãããããŸããã 4, ãGCPãå©çšããããŒã¿åæãã©ãããã©ãŒã ã«ã€ããŠã CAãªã¯ãŒã é¿éš GCPãåãããã¯ããšçµã¿åãããŠå©çšããŠãããšããçºè¡šã§ãããGCPã¯AWSããã䜿ãããããšããæèŠãäžãããŸããããäœãããé¿éšããã®ç ç©¶å
容ã«é©ããããŸããïŒ ã çºè¡šè³æã¯ CAãªã¯ãŒã Techããã° ã«ããããŸãã ã 5, ãSentryãå©çšãããšã©ãŒéçŽãã©ãããã©ãŒã ã WeddingPark æŠæ¬ æ§ã
ãªçš®é¡ã®ãšã©ãŒãæ€ç¥ã§ããSentryã®äºäŸç޹ä»ã§ããããã®å°å
¥ã«ãããšã³ãžãã¢ã®å質æèã倧ããå€ãããŸããããããäžçªå¬ããããšã§ããïŒïŒ 6, ãCA Reward x Goèšèªã CAãªã¯ãŒã å±±å¡ Goèšèªã®åãçµã¿ã¯ãšã³ãžãã¢äžåç±å¿ã«èãå
¥ã£ãŠããŸããããã¯ã䜿ããèšèªã ãšããããšãåèªèã§ããŸãããããªããã£ãŠãGopherãããããããã®ãªãã®ïŒ çºè¡šè³æã¯ CAãªã¯ãŒã Techããã° ã«ããããŸãã ãã ãAI Lab ã®åãçµã¿ã«ã€ããŠã ãµã€ããŒãšãŒãžã§ã³ããã¢ããã¯æ¬éš éŠ¬å Ž æåŸã¯éŠ¬å Žããã«ããAI Labã®åãçµã¿ã«ã€ããŠã§ããAI Labã«è³ããŸã§ã®ã話ãããŠé ãåºæ¿ãããããŸããã ãã LTäŒé¢šæ¯ äŒå Žã§ã¯ããã¶ãšããªã³ã¯ã§çµå§ã¯ã€ã¯ã€ãšæ¥œããLTäŒãé²ããããšãã§ããŸããã ã¿ããªã§ä¹Ÿæ¯âª LTäŒã®å€ã«ãªãã£ã¹ããèŠããæ±äº¬ã®å€æ¯ ãŸãšã çãã«è³ªåã亀æµãé²ããããè¯ãäŒãšãªããŸããã æåŸã«èšå¿µåçãããŠãšãã¡ã³ããŒã¯CAãªã¯ãŒãããã®Rãµã€ã³ããCAãªã¯ãŒãããã¯ãŠãšãã®Wãµã€ã³ã§èšå¿µåçãæ®ããŸãããçæ§ãç²ãæ§ã§ããïŒ ãŠãšãã£ã³ã°ããŒã¯ã§ã¯ãLTäŒã§ã¯ã€ã¯ã€çãäžãããããšã³ãžãã¢ãåéããŠãããŸãã 詳现㯠ãã¡ã ãŸã§ã CAãªã¯ãŒã å
¬åŒãšã³ãžãã¢ããã° æ¬ã€ãã³ãã¯ãCAãªã¯ãŒãå
¬åŒãšã³ãžãã¢ããã°ã§ãåãäžããŠããŸãããã²ã芧ãã ããïŒ CAãªã¯ãŒã Techããã°
ã¯ãããŠã®ãšã³ããªãŒãšãªããŸããã·ã¹ãã éšéçµ±æ¬ã®è¥¿ã§ãã ä»åã¯ãšã³ãžãã¢ãšã¯ãªãšã€ã¿ãŒã«ãã瀟å
å¶åºŠåµåºã³ã³ãã¹ãã§ããããã©ã€ããã宿œããããããçãŸããæ°ããå¶åºŠãã玹ä»ããŸãã ãLetâs 5 out!(ã¬ããã³ããŒã¢ãŠã)ã ãLetâs 5 out!ããšããå¶åºŠåã«ã¯ãæè¡ååäžã®ããã®ã€ã³ãããããå匷äŒãªãšãã®ç€Ÿå€æŽ»åãŠãããããout(=å€éš)ãã®æŽ»åããè²»çšé¢(ãgo(=5)ã)ãŠãæ¯æŽããå
·äœçã«ã¯ãå匷äŒã®åå è²»çšãäžé5ååãŸãŠãã該åœè³æ Œã®åæ ŒãŠã5äžåããæ¯çµŠããããªãšããæè¡ååäžã®ããã®åããæ¯æŽããããŸãã ïŒ ãã¬ã¹ãªãªãŒã¹ ããæç²ïŒ ç®çãšããŠã¯æè¡éšéã®1人1人ã®ã¬ãã«ã®åäžãä¿é²ããçºã®å¶åºŠã§ãããéçºã¡ã³ããŒã«ãšã£ãŠèªç€ŸãµãŒãã¹ã®éçºãšããã®ã¯ã©ãããŠã瀟å
ã§å®çµããã¡ãªç°å¢ã§ãã®ã§ãåºæ¥ãã ãå€éšã®é«ãã¬ãã«ã«æ¥ãããèªçºçã«æ®æ®µäœ¿ã£ãŠããªãæè¡é åã«ããã£ã¬ã³ãžããŠæ¬²ãããšããèãããå¶åºŠãšããŠåãå
¥ããŸããã ãŸãããããŠç€Ÿå
ã§ã¯ãªãšãŒã¿ãŒãåç£ç¢ç£šåºæ¥ãç°å¢äœãã®äžç°ãšããŠã ãC1éžææš©ã ã®é嬿ºåã«å
¥ããŸããã ããã¯ã³ã³ãã¹ã圢åŒã§ãããŒãªã©ã®ã¯ãªãšã€ãã£ãã§äžå®æéABãã¹ãã宿œãã广ãäžçªé«ãã£ãã¯ãªãšãŒã¿ãŒãåªåãšããåãçµã¿ã§ããèªããšã³ããªãŒããŠçãæ³šç®ããäžã§æ¥œããç«¶ãåããæ§ãªåœ¢ã«ããããšèããŠããŸãã®ã§ããŸãéå¬åŸã«ããã§ãå ±ååºæ¥ãã°ãšæããŸãã ãããŠæåŸã« æè¡è
ã®æµ·å€ã«ã³ãã¡ã¬ã³ã¹æŽŸé£ ãç©æ¥µçã«è¡ãäºã«ããŸããã ããã¯é©å®å¿
èŠã«å¿ããŠææ°ã®æ
å ±ãååŸãã«è¡ãäºã§ããŠãšãã£ã³ã°æ¥çã®ITãã¬ã€ã€ãŒãšããŠåžžã«ãããã©ã³ããŒã§ããããããã«ãšããæããšããããã£ãåãçµã¿ãåœããåã®ç¶æ
ã«ãããã£ããšããã®ããããŸãã æåã®æŽŸé£å
ãšããŠã¯æ©éæ¥æã«Velocity 2016ãžã€ã³ãã©ããŒã ã®ãªãŒããŒã«è¡ã£ãŠãããäºã«ããŠããŸãã ãããããæè¡ã®ãŠãšãã£ã³ã°ããŒã¯ãåµãããšãã倧ããªç®æšã«åãã£ãŠãå¶åºŠãæ°èšããããããå
·äœçãªåãçµã¿ãå§ããŸããã®ã§ãèå³ããæ¹ã¯æ¯éãé£çµ¡äžããã
ããã«ã¡ã¯ããšã³ãžãã¢ã®è¥¿èã§ãã æ¡ã®éè±å®£èšããããŸããããè±ç²çã®äººãèŸããã«ãå§ããŸããã ããããé·ãæŠããå§ãŸãããã§ãã ããŠãæ¬æ¥ã¯3/17ã«åŒç€Ÿã§è¡ãããŸãã CyberZ ãããšã®ååLTäŒã®æ§åããå±ãããŸãã2瀟ã§èš4æ¬ã®LTçºè¡šã§ããããšãŠãçãäžãã£ãäŒã«ãªããŸããã㌠å
容 ä»¥äžæ¬ç§°ç¥ã§ãã ããããããããScalaãCyberZ éŽæš ãData VisualizationããŠã¿ãã WeddingPark æ± ãJavaScriptã¯éã®æ·±ãã¢ã»ã³ãã©ãªã®ããCyberZ éæ ãã²ãã£ããšã³ãžãã¢å¥®éèšã WeddingPark æç° CyberZããåŽã®çºè¡šå
容ã«ã€ããŠã¯æåŸã«ãªã³ã¯ãããããŸãã ã§ã¯ãŠãšãã£ã³ã°ããŒã¯åŽã®çºè¡šå
容ã§ãã 2. ãData VisualizationããŠã¿ãã æ± d3.jsã䜿ã£ãŠããŒã¿è¡šç€ºãããŠã¿ãŠããŸããæå€ãšDOMã®æäœéšåãé¢åã ãšããæèŠããc3.jsãããããªããŠçãäžãããŸããã 4. ãã²ãã£ããšã³ãžãã¢å¥®éèšã æç° ãããŒãããããŒããšãããphpã ããããã¯ã§ããªããã ããïŒããªã©ã¿ããªã§å¥®éèšã«ã€ããŠèªãåããŸããããã¿ããªããã
ããä¹ãè¶ããŠãããã§ãããïŒ CyberZããåŽã®çºè¡šå
容 ããããããããScalaãCyberZ éŽæš ãJavaScriptã¯éã®æ·±ãã¢ã»ã³ãã©ãªã®ããCyberZ éæ ãã¡ãã®è³æã«ã€ããŠã¯ãCyberZããã®æè¡ããã°ã CyberZå
¬åŒãšã³ãžãã¢ããã° ãã®èšäºãã芧ãã ããã ãŸãšã CyberZãããšã®ååLTäŒãããŠã¿ãŠããšã³ãžãã¢å士ã§ã¬ã€ã¬ã€è©±ãããŠã倧ãã«åºæ¿ã«ãªããŸããããããããä»ç€Ÿãšã®å匷äŒLTäŒãã©ãã©ããã£ãŠãããããªããŸããïŒãäžç·ã«ãããŸããããšããäŒç€Ÿæ§ãã²ã声ãããïŒ èšå¿µåçâª