$B8e$+$i$@$H:#$NJ70O5$$N:F8=$OFq$7$$$N$G!";~7ONs5-;v$N:#7nJ,$O$3$3$KE,Ev$K$^$H$a$F$*$/!#(B
tag: $BIp4AGY1j(B
$B"#3F
2/9 $B;~E@$G$N%i%s%-%s%0!#=g0LJQF07c$7$9$.$k!#$?$V$s!"?tF|J,$^$H$a$FJs9p$7$F$$$k>J$,$"$k$+$i$+$J!#(B
2/7 $BFf$N9q(B $B!V(BOthers$B!W(B $B$,9qJL#20L$K5^Ib>e#w#w(B $B%/%k!<%:A%%@%$%"%b%s%I!&%W%j%s%;%99f$+$i$N3NDj46@w
2/6$B;~E@$G$N3NDj46@w$,B?$$=j!#?M8}$NB?$$FCJL;T$,>e0L$K$"$,$C$F$-$?!#5U$K!"ET;TIu:?$7$F$?>J$N=g0L$,2<$,$C$F$-$?!)0U30$K8z2L$"$k$N$+!)#10L$@$1$OJL3J$@$1$I!"$"$H$O;w$?$h$&$J?tCM$J$N$G=g0LJQF0$,Bg$-$$$N$+!#(B
2/1$B;~E@$G$O(BTop5$B$K$"$C$?$,!":#$O=g0L$,2<$,$C$F$$$k$H$3$m!#(B
$B"#;~7ONs$N%m%0(B
$BCY$9$.$?6[5^;vBV@k8@!#=U@a$N(B7$BF|A0$J$i@$3&@~JQ$o$C$F$?!#(B
$B%"%a%j%+@/I\$OCf9qA4EZ$X$NEO9RCf;_$HHrFq4+9p$r9T$C$?!#%l%Y%k#4$N:G9b7Y2|!#(B
$B%"%a%j%+@/I\$O8x=01R@8$NHs>o;vBV$r@k8@!#(B
$BD>6a$N#1#4F|4V$KCf9q$rK,$l$?309q?M$NF~9q$rEvLL6X;_$9$kJ}?K!#(B
$B30L3>J$NH?1~$O$a$:$i$7$/Aa$$46$8$,$9$k!#(B
$B@iMU8)$K=;$`%P%9%,%$%I$,46@w!#(B01/18$B$+$i(B01/22$B$K%P%9$N1?$A$c$s$H0l=o$K6PL3$7$F$$$?!#Ip4A$H$O%P%9$N1?$A$c$s7PM3$G$7$+$D$J$,$j$,L5$$$h$&$J$N$G#3
$B$@$$$?$$(B200$B?M$K$D$-(B25$B?M$G0BDj$7$F$k!#H/G.$7$F$k?M$O(B12.5%$B$/$i$$$+!#(B
$BBh(B3$BJX$G$O(B200$B?M$NDj0w$rKd$a$i$l$J$/$J$C$?$+!#(B
$B$9$0F0$1$k?M$O(B3$BJX$G40N;!#$"$H$O2?$+$N;v>p$,$"$C$FN%$l$i$l$J$$?M$+$J!#(B
$B0G$9$.$F%o%m%?#w!!$;$a$F8DJLJqAu$5$l$F$k%?%$%W$N%d%D$r;H$C$FM_$7$$#w!!AG
$B29=#;T$O3$4_1h$$$G>e3$$NFn$K(B200km$B$/$i$$!#(B
$BHtKw46@w$N$[$+$K!"7P8}46@w$N2DG=@-$b$"$k$+$b!"$H$$$&OC!#(B
$B%3%m%J%&%#%k%9B2$OJX$K$b=P8=$9$k$i$7$$$N$G$=$l$[$IIT;W5D$G$O$J$$OC!#(B
$B%H%$%l6&MQ$@$H46@w$9$k@b$O$"$j$=$&!#(B
$B30=P$7$F5"$C$?$i
$BCf9q6&;:E^<0$N3t<0;T>l!#3t<0GdGc%"%W%j$+$iGd$j%\%?%s$,>C$($k!#(B
$B8PKL>J$G$O(B3$BF|!"5^$-$g7z@_$5$l$?@lLg$NIB1!$G45
10$BF|$G(B1000$B>2$NIB1!7z$F$?$eA}2C!"$H$$$&%9!<%Q!<%3%s%\_ZNv!#$b$&$@$a$]!#(B
$B46@w45
$BA4@$3&$G%Q%s%G%_%C%/$9$k$N$O;~4V$NLdBj$J$N$G!"
$B;~4V2T$.$NCYBZ9TF0$r9T$&!#Cf9q!"9a9A!"%^%+%*$+$i$NN99T
$B0e3X0J30$N;~4V2T$.$G$O!"3X9;(B($B3X5i(B)$BJD:?!"?M$,Bt;3=8$^$k%$%Y%s%H$NCf;_!"2q5D$NCf;_!JEE;R2q5D2=!K$r
$B;~4V2T$.$7$F2?$rBT$D$N$+$H8@$($P!"2F$rBT$D#w#w(B
$B#67n$K$J$l$P$@$$$V29CH$K$J$k!#%&%#%k%9$NLT0R$b$*$5$^$k$O$:(B...$B!#(B
($B$?$@!"%?%$$H$+8=>u5$29$,9b$$9q$G$b$+$J$j46@w$,9-$,$C$F$$$k$N$G!"4|BT$O$G$-$J$$(B...$B!#(B)
$B;~4V2T$.$N>.5;$GGY1j45
$B3NDj?GCG45
$B:G=i$N45
$B$3$N$3$H$+$i8&5f%0%k!<%W$O@xIz4|4VCf$K$b46@w$r9-$2$F$$$k$H$_$F$$$^$9!#(B
$B$3$l$O?e:]KI8f$,Fq$7$$%?%$%W!#(B
$B@$3&J]7r5!4X!J(BWHO$B!K$N%F%I%m%9!&%"%@%N%`!&%2%V%l%$%'%9%9!J(BTedros Adhanom Ghebreyesus$B!K;vL36ID9$O(B4$BF|!"Cf9q$N6/NO$JA
$B0lJ}!"(BWHO$B$O5!G=ITA4$K4Y$C$F$$$?!#(B
$B%/%k!<%:A%(B($B%@%$%d%b%s%I!&%W%j%s%;%99f(B)$B$K$O!"F|K\$r4^$a#5#6$N9q$HCO0h$N>h0w#1#0#4#5?M$H!"F|K\?M#1#2#8#1?M$r4^$`>h5R#2#6#6#6?M$N7W#3#7#1#1?M$,>h$C$F$*$j!"F1>J$,H/G.$J$I$N>I>u$N$"$k#1#2#0?M$H!"$=$NG;8|@\?(
$B$J$s$H(B14$BF|4V!"A%$N>e$G3VN%$K!#(B
3700$B?M$H$+3VN%>l=jL5$$$+$i;EJ}$J$$!#(B
$B%[%F%k;0F|7n$G$O(B200$B?M$,<}MF$G$-$:$KAjIt20$K$J$C$F$7$^$C$?$7!#(B
$B%$%s%P%&%s%I$G#3@iK|?M$H$+8@$C$F$?3d$K!"Aj1~$N3VN%;\@_$,L5$$$N$O%@%a$G$9$J$!!#(B
$B3$>e<+1RBb$,%A%c!<%?!<$7$?L14V%U%'%j!
$B$3$l%9%Z%$%sIw
10$BF|$G(B1000$B>2$N3VN%IBEo$r7z@_$7$?$i!"#1F|$G(B2000$B?M$N3NDj45
2/4$B$K!"0J2<$N;T$,Iu:?@k8@$5$l$?LOMM!#(B
$B%*%$%*%$Iu:?$7$9$.$@$m!#$=$s$J$K@($$$N$+!)(B
$BITMWIT5^$N30=P$r95$($5$;$k$?$a$N;TFb%Q%H%m!<%k$r%I%m!<%s$G$d$C$F!"%9%T!<%+!<$G@<3]$1$7$F$k$i$7$$!#(B
$B1VIBBP:v$G<+Bp$K5o$m$C$F$$$C$F$b!"855$$J@8EL$O30$GM7$V$N$O$I$N9q$G$bJQ$o$i$J$$Iw7J!#(B
$BF|K\$N%-%c%Q%7%F%#$O(B1700$BIB>2$H$N$3$H!#%/%k!<%:A%0l@I$GK~GU$K$J$k#w(B
$BM}M3$O$h$/$o$+$i$s$,%(%$%:$NLt$,8z$$$?$i$7$$!#=E>I2=$7$F$b%o%s%A%c%s$"$k$+$b!#(B
$BLLGr$$$3$H$d$C$F$s$J#w#w(B
$B:#$O$_$s$J5$$,N)$C$F$k$+$i!"$d$a$?$[$&$,$$$$$H;W$w#w(B
$B:#F|$O%/%k!<%:A%$N%K%e!<%9$,B?$+$C$?!#$^$:$O>W7b$N(B41$B?MM[@-H?1~DI2C$G9g7W(B61$B?M%K%e!<%9!#(B
61/273$BM[@-$H$$$&$3$H$OIp4A$h$j9s$($d>uBV!#$b$C$H$b(B61/3700$B$H$9$k$H(B1.6%$B$Ke:No$K<}B+$9$kFf!#(B
$B%/%k!<%:A%$C$F8+$?L\$O9k2Z$@$1$I1R@84D6-$ONt0-$G!">h5RF1;N$N=8CD46@w$,H/@8$9$kCN8+$,F@$i$l$?!#(B
$BB3$$$F!"(BWHO$B$N=87W%k!<%kJQ99!#%/%k!<%:A%$NM[@-46@w
$BF1;~$KF|K\@/I\$,(BWHO$B$K;q6b$r5r=P$9$k1#$l%K%e!<%9$,F~$C$F!"$J$<$+$_$s$J;!$7$F$7$^$&!#(B
($B$J$*!"A%Gu$N>l9g$O%$%.%j%9A%@R$J$i%$%.%j%9NNEZ$N1dD9$H$5$l!"%$%.%j%9$G1VIBH/@8$H%+%&%s%H$9$k$N$,A%>h$j47Nc$N%+%&%s%HJ}K!$i$7$$$,!"$5$9$,$K%$%.%j%9$b7y$,$C$?$N$+(B Others $BGzCB$H$$$&$3$H$N$h$&$@(B)
$BBg7?%/%k!<%:A%$O$I$N9q$K$H$C$F$bMQ0U$7$F$$$?3VN%IB>2$,0l7b$GGKNv$9$kGzCF$H2=$7$?$?$a4s9A!&F~9A!&F~9q5qH]$,Aj
$B%/%k!<%:A%#1@I$GBgA{$.$K$J$C$F$$$k!#(B
$B#5$A$c$s$M$k$G$O!VBYJ?$NL2$j$r$5$^$9%/%k!<%6!<$?$C$?;M@I$GLk$bL2$l$:!W$H$&$^$$$3$H8@$C$F$?!#(B
$B8|@8O+F/>J0e@/6I7P:Q2]D9$NNS=S9(;a$O(B2$B7n(B6$BF|$N?77?%3%m%J%&%$%k%9!J(B2019-nCoV$B!K$NBP1~$K4X$9$kA49q1R@8
$BF|K\$G$b0eNEMQ$N%^%9%/$,J'Dl!#0eNEJx2u$NLOMM!#(B
$B%^%9%/$7$?$^$^$@$H(BiPhone$B$OG'>Z$G$-$J$$LdBj!#(B
$B%^%9%/$+$iI!$r=P$;$PG'>Z$G$-$k$i$7$$$1$I!"$=$l$8$c%^%9%/$N0UL#$,$J$$!#(B
$B9a9A$X$N1[6-$,(B2$B=54V$N3VN%$rI,MW$H$5$l$k$h$&$K$J$k(B2/8$B$rL\A0$K95$($?A0F|$N(B2/7$B$K6n$19~$_$G9a9A$K?tK|?M$,;&E~$H$N$3$H!#(B
$B$?$@IaCJ$+$i#1F|J?6Q#1#2K|?M$O9a9A1[6-
$B??LLL\$K?e:]KI8f$9$k$J$i!"1[6-
$B9a9A@/I\$O(B7$BF|!"3VN%$NFbMF$K$D$$$F8xI=!#$=$l$K$h$k$H!"(B8$BF|0J9_!"9a9A$KF~6-$7$??M$N$&$A!"9a9A$N=;L1$O<+Bp$GBT5!$9$k!#=;5o$r;}$C$F$$$J$$?M$O<+$i
$B9a9A$N;\:v$O8=
$B%"%a%j%+$N(BESAT$B$_$?$$$K!"<+
$B?<$,Iu:?$5$l$?$N$G!"%U%)%C%/%9%3%s$+$i=>6H0w$K(B2/10$B$^$G$O?&>l$KLa$i$J$$$h$&$K;X<($7$?$H$$$&%K%e!<%9!#(B
Switch$B$H$+(BiPhone$B$H$+$N@8;:$K1F6A$,$"$j$=$&!#(B
$B=U@a1dD9$N(B2/10$B$^$G?&>l$KLa$k$J$H$$$&OC$@$1$I!"$"$H(B2$BF|$G$I$&$K$+$J$k$H$O;W$($J$$#w(B
$B%/%k!<%:A%$N$&$A!"(B428$B?M$,%"%a%j%+?M$J$N$G!"%"%a%j%+?M$K$D$$$F$O%"%a%j%+$,
$B@5D>$J=j!"$=$&$7$F$b$i$($k$H=u$+$k#w#w!!(B
$BEl5~!A?@F`@nIU6a$N3VN%IBEo$O%/%k!<%:A%0l@I$G$"$U$l$F$7$^$C$?!#(B($B$@$+$i@E2,8)$G
$B$"$l!#$3$NOCL5$/$J$C$?$N$+!#(B
$BJF9qBg;H4[$+$i$N%U%)%m!
$B$^$?<}O?8e$N
$B$"$i!#%"%a%j%+?M$N0\AwOCL5$/$J$C$?$N$+!#NI$$=u$1=.$@$C$?$N$K!#(B
$BDI2C$GH/G.
$B$G$9$h$M$'!#(B
$B$*$C$H!#%(%"%m%>%k$G$b46@w@b$,=P$F$-$?!#(B
$B46@w>I4X78$N?M$K8@$o$;$l$P!"$=$s$J$NEvA3%$%s%U%k%(%s%6$b%(%"%m%>%k46@w2DG=$J$s$@$7!"$H$N$3$H!#(B
$B@\?(46@w$b%(%"%m%>%k46@w$bCm0U$7$^$7$g$&$C$F$3$H$K$J$k!#(B
$B$?$@$7!"FC
$BF|K\$G$OJsF;$5$l$F$$$J$$$,!"KL5~;T$H>e3$;T$G(B2/10$B$+$iH>Iu:?
$B$3$l$GKL5~!">e3$!"E7DE!"=E7D$ND>3m#4;T$H!"#8#0ET;T$,Iu:?$^$?$O0\F0!&30=P@)8B$5$l$?$3$H$K$J$k!#(B
$BCO0h$K$h$C$F$O(B2/10$B$+$i4k6H3hF0:F3+$H$J$k$,!"5">J@h$+$iLa$C$F$-$?
$B$&$o!#9g7W#1#3#5?M$K!(!(!!$b$&%3%l%@%a$@$m(B...$B!#(B
$B%/%k!<%:A%Fb$N46@wB.EY$,?R>o$8$c$J$$!#(B
$B%+%$%8$G$b$3$3$^$GDI$$9~$^$l$k$3$H$OLGB?$K$J$$$s$8$c!#(B
$B%/%k!<%:A%Fb$N46@wB.EY$,0[>o$KB.$$$N$G!"%/%k!<%:A%Fb3VN%$O%@%a$@!"$H$$$&H=CG$K$J$C$?$i$7$$!#(B
$B3VN%$H$$$$$D$D%G%C%-$r;6Jb$5$;$F$k$h$&$8$c46@w%Q!<%F%#!<$d$C$F$s$N$HF1$8#w(B
$B$o$6$H$d$C$F$s$8$c$J$$$+$C$F$/$i$$46@w3HBg$KG.?4$J%/%k!<%:A%$G$"$k!#(B
$B%/%k!<%:A%!V%@%$%d%b%s%I!&%W%j%s%;%9!W$N>h5R$i$K?77?%3%m%J%&%$%k%9$N46@w
$B8|O+>J$NDLCN$O6eF|IU!#46@w>IK!$O!V6[5^$=$NB>$d$`$rF@$J$$M}M3$,$"$k$H$-!W$O!";XDj0eNE5!4X0J30$NIB1!$G;XDj46@w>I$N45
$B;XDj46@w>IOH$,$"$U$l$?$N$G6[5^;vBV$H$$$&$3$H$i$7$$!#(B
$B?77?%3%m%J$K$h$k0eNE%7%9%F%`7h2u$N=V4V$G$"$k!#(B
$B$J$s$+%?%$%?%K%C%/$N1G2h$_$?$$$K$J$C$F$-$?!(!(!!$G$b%,%$%8%s$5$s$O(BZARD$BCN$i$J$$$H;W$w(B
$B%/%k!<%:A%!V%&%(%9%F%k%@%`9f!W$O0l2s%?%$$,0z$-C$($?$h$&$@!#(B
$BF|K\$N%6%^$r8+$?$i
$B2#IM9A2-$KDdGqCf$N%/%k!<%:A%!V%@%$%d%b%s%I!&%W%j%s%;%9!W9f$KBP$9$kF|K\@/I\$NBP1~$O!V%+%*%9$GL5Ca=x!W$H%m%7%"30L3>J$N%6%O%m%oJsF;41$,%3%a%s%H$7$?!#(B
$B$=$j$c%7%Y%j%"Aw$j$NHk1|5A;}$C$F$k%m%7%"$+$i$9$k$HA4A3%@%a$@$h$J#w(B
$B$3$N
$B#1?M$O!"Bh#1JX$G#17n#2#9F|$K5"9q$7$?Ip4A;T:_=;$N#5#0Be$NCK@-!#5"9q8e$O@iMU8)Fb$N%[%F%k$KBZ:_$7!"#3#0F|$N9qN)46@w>I8&5f=j$K$h$k%&%$%k%98!::7k2L$G$O1"@-$@$C$?$,!"#27n#7F|$K$J$C$FH/G.$d$;$-$J$I$N>I>u$,=P$?$?$a!"@iMU8)Fb$N0eNE5!4X$KF~1!!##8F|$K8)Fb$N5!4X$G8!::$r$7$F1"@-$@$C$?$b$N$N!"#1#0F|$K2~$a$F9qN)46@w8&$G8!::$r$7$?$H$3$mM[@-$,3NG'$5$l$?!#(B
$B0l?M$O:k6L8):_=;$NJ}$G$"$j!"#17n(B30$BF|$KIp4A;T$+$i$N%A%c!<%?!
$B$U!<$`!##1#4F|$C$F$N$O$^$!BEEv$J3VN%4|4V!"$H$$$&$+(BPCR$B$G8!=P$G$-$k$[$I%&%#%k%9A}?#$9$k$N$K$+$+$k;~4V$J$N$+$b!#(B
$B:#2s$O(BPCR$B$G8!=P$9$k$h$j$b@h$K9bG.$H$+GY1j$H$+$;$-$N>I>u$,=P$F$k$_$?$$$M!#(B
$B$=$&$J$k$o$J!#(B
$B%"%a%j%+?M$D$h$$#w(B
$B2#IM9A$N8!1V41$C$F$=$s$J$K?M?t5o$J$$$s$8$c(B...$B!#?&>l$GF1N=$K46@w$7$F$?$i:G0-$d$M!
$B%^%9%/$H
$B5!G=Dd;_$7$F$k@$3&J]7r5!9=(B(WHO)$B$N;X?K$J$s$+??$K
$B#5$A$c$s$M$k$K$p$5$l$F$$$?
$B9"$N1|$r$L$0$C$F8!BN$r
$B%/%k!<%:A%$N:W$j$r8+$F$k$H!"$I$&$b46@wNO$O:G6/%l%Y%k$K8+$($k$M!#(B
$B$o$j$H4q@W$8$c$J$$$+$J!
$B30L3>J$K$G$-$k:GBg8B$N7Y9p$+$J!#(B
$BIaDL$N?M$N46@w$,$I$s$I$sL@$i$+$K!#(B
$B$=$j$c5l@57n$KCf9q?M#7#0K|?M$bMh$F$?$i46@w$7$J$$$O$:$,$J$$!#(B
$B#g#d#g#d$N%0%:%0%:$H8@$o$l$F$b;EJ}$J$$(B....$B!#(B
$B$J$k$[$I!#:9$7F~$l$,%+%C%W%i!<%a%s$K$J$kM}M3$,$J$s$H$J$/!#(B
$B>CHq4|8B$,C;$$%b%N$r3FA%<<$KG[C#$9$kM>NO$,L5$$$N$+!#(B
$B%/%k!<%:A%$N?);v$O%S%e%C%U%'7A<0$GG[A7$N
$B$*0e
$B>e3$H6DY$7$+$J!)(B
$B>e3$$O?77?%3%m%JBP1~$NF0$-$,$H$F$bNI$+$C$?$+$iJsI|?M;v$N$h$&$J5$$,$9$k!#(B
$B>e3$H6$O=,6aJ?9q2H
$B$$$dK\Ev$KNI$+$C$?!#(B
$B3VN%4|4V$r1"@-$GL5;v$K$/$0$jH4$1$?$H;W$C$F@9Bg$K%Q!<%F%#!<3+$$$?$i!"$=$N8e$GH/G.!uM[@-$K!(!((B
$B@xIz4|4V$,0[MM$KD9$$%1!<%9$b$"$k$H!#(B
$B1*oh$K3+J|%Q!<%F%#!<$J$s$F3+$$$F$O$$$1$J$$!#(B
$B8|@8O+F/>J$K$h$j$^$9$H!"?@F`@n8)$K=;$`(B80$BBe$NF|K\?M$N=w@-$O!"@h7n(B22$BF|$KBND4$,0-$/$J$j!":#7n#1F|!"0eNE5!4X$GGY1j$H?GCG$5$l!"F~1!$7$^$7$?!#$=$7$F(B12$BF|!">I>u$,0-2=$7!"(B13$BF|;`K4$7$?$H$$$&$3$H$G$9!#(B
1$B7n(B22$BF|$+$i%3%m%J!)(B
$BIp4A$8$c5nG/$N(B12$B7nCf=\$K$O9bG.$G5Y$`?MB3=P$G9)>l$N?M=8$a$,:$Fq$K$J$C$F$?$i$7$$$+$i!"IT;W5D$G$O$J$$$+!#(B
$BCK@-$O!":#7n#2F|$K(B37$BEYBf$NG.$,=P$?$"$H!"MbF|$K0eNE5!4X$rI>u$,2~A1$;$:!"(B10$BF|$K$OJL$N0eNE5!4X$rI>u$,$h$/$J$i$J$+$C$?$?$a!"8!BN$r:N
$BIaDL$NGY1j$NLt$,8z$+$J$$$+$iJQ$@$J!<$H$$$&$3$H$G?77?%3%m%JGY1j8!::$7$F$_$?$iM[@-$@$C$?!"$H$N$3$H!#(B
$B$3$l$,0lHV4JC1$J8+J,$1J}$J$N$+$b!#(B
$BBP1~Aa$$$J!u67$O?<9o$J$N$M(B....$B!#(B
VirtualBox 6.1 $B$G2>A[%^%7%s$NF~$l;R(B ( Nested Virtualization ) $B$,$G$-$k$h$&$K$J$C$?$i$7$$(B
tag: virtualbox, virtualbox6.1, vagrant
$B$[$[!<(B
vagrant$B$+$i(BVM$B$r:n$k>l9g$O!"(B--nested-hw-virt $B$r(B on $B$K$9$k$HNI$$LOMM!#(B
vagrant 2.2.7 $B$@$H(B VirtualBox 6.1 $BBP1~$7$?$7!"$A$g$C$HM7$s$G$_$k$+!#(B
yum $B$r%G%P%C%0%b!<%I$G
tag: centos7, centos, yum
$B0J2<$N$h$&$J46$8$G%m%0$,I=<($5$l$k!#(B
epel $B$N85%M%?$K$J$C$F$$$k(B mirrors.fedoraproject.org $B$N(BDNS$B$,0z$1$J$/$J$C$?$h$&$@!#(B
p.s. 2/6$B$"$?$j$K$OD>$C$F$$$?!#(B
$B5^$0$J$i0J2<$J$N$+$J!)(B
DNS$B%5!<%P$K(B8.8.8.8$B$H$+(B1.1.1.1$B$r;XDj$9$k$H0z$1$k$h$&$@!#(B
tag: $BIp4AGY1j(B
$B"#3F
$B"#3F
$BIp4A$8$c$J$/$F!)(B
$B$=$s$J$K@($$$N$+(B...$B!*!)(B
$B%/%k!<%:A%!V%@%$%d%b%s%I!&%W%j%s%;%9!W$,#1F|$KFaGF9A$K4s9A$7$?:]!"2h5R$r0FFb$7$F$$$?!#(B
$B%@%$%"%b%s%I!&%W%j%s%;%99f%3%m%JL5AP!#(B2/1$B$NCJ3,$G$+$J$jA%Fb46@w$,?J$s$G$$$?$N$+$J!#(B
$B3FCO$G46@w3NDj$,$G$F$-$?!#@iMU8)$N?M$O>pJs$,$[$H$s$I=P$F$$$J$/$F:$$k!#(B
$BCK@-$OH/>IA0$N(B1$B7n(B18$BF|$KEl5~FnElIt$N>kFnCO6h$N207AA%$G3+$+$l$?8D?M%?%/%7!<4X78
$B207AA%$G$N=8CD46@w$,5?$o$l$F$$$kMM;R!#(B
1/18$B$K?7G/2q$+!#(B
$BCf9q$@$HKhG/91Nc$N?7G/%$%Y%s%H$H$7$F!VK|2H1c!W$,3+:E$5$l$k$N$,(B1/18$B$J$N$G!"Cf9q7O$N2q
$B$&!<$s(B....$B%3%a%s%H<+BN$O4V0c$C$F$O$$$J$$$s$@$,#w#w#w(B
$B$=$&$$$($P%^%i%j%"$,F|K\$G9-$^$C$?;~!"8|@8O+F/>J$O!V2c$K;I$5$l$J$$$h$&$K$7$F$/$@$5$$!W$H$+$L$+$7$F$?$N$r;W$$=P$7$?!#(B
2000$BBf$[$IDs6!$9$k$H$N$3$H!#$9$2!
$B$G$b%/%k!<%:A%$N?M8}J,I[$ND:E@$O(B70$B:PBf$G!"(B70$B:P$NO7?M$@$H(B iPhone $B$H(B LINE $B$r%]%s$HEO$7$F$b;H$($J$$$G$7$g#w(B
iPhone/Android$B$J$s$F>.3X9;$"$,$kA0$NMDCU1`;y$G$bF02h8+$k$@$1$J$i$G$-$k$1$I!"O7?M$K$O$=$l$,L5M}$J$s$@$h$J$!!#(B
$BEl5~$G$OEE
$B$O$F$5$F!"F|K\4k6H!u7PCDO"$O2?$+0l$D$G$bBP:v$&$F$k$+$J!
$B$*$*!
$B@iMU8)$G#2#0Be$N?M$O$3$3$+!#(B
2$B7n$KF~$C$FEE
$B;TCf46@w>uBV$G$9$M!#(B
$BIp4A@\?(
$BIp4AGY1j(B $BIB1!$,46@wCf?4$K!)(B
tag: $BIp4AGY1j(B
$BHs>o6P0e;U$,JL$NIB1!$K6PL3$7$?;~$KF1N=$N0e;U$K1!Fb46@w$9$k$H$+!"KvK!$N@$$9$.$k(B
$B;~4|$O$o$+$i$s$1$I!"$^$@46@w$7$F$J$$AG?M$OIB1!$K6a4s$kJ}$,4m$J$$46$8$K$J$k$+$b$J$!(B...
$B;TCfL"1d$K$J$C$F$-$?$HAGD>$KG'$a$k$"$?$j$ONI$$$M!<(B
tag: anime
$B0l1~?dM}%b%N!J!)!K!J?dM}$H$$$&$+G
$B7k9=LLGr$$$N$G$*4+$a!#(B
$BIp4AGY1j(B, COVID-19 $BN.9T4|(B
tag: $BIp4AGY1j(B, COVID-19
$BOC$H$7$F$OLLGr$$$1$I!"$I$&$J$s$@$m#w(B
$B:#$J$i%"%a%j%+$GH/@8$7$F$$$kGY1j$N860x$N0lIt$O?77?%3%m%J$N2DG=@-$,$"$k$1$I!#(B
$B%/%k!<%:A%$G$N3VN%$O$&$^$/$$$C$F$$$J$$$N$G:#EY$O5_=P$KF0$/$H$N$3$H!#(B
$B<+1RBb$,1)ED6u9A$^$GM"Aw$rC4Ev$9$kLOMM!#(B
$B%"%a%j%+$J$i(BCDC$B$,3VN%%-%c%s%W$r$A$c$s$H1?1D$7$F$/$l$k$3$H$@$m$&!#(B
2/5$B;~E@$G$O%/%k!<%:A%$NCf$NJ}$,3VN%$O>e
$BCf9q$H(BWHO$B$,5a$a$F$$$kO"BS$r<($7$?$H$$$&%+%s%\%8%"$Gh5R$OHt9T5!$G5"9q$9$k$3$H$K$J$C$?!#(B
$B$=$N$&$A0l?M$NJF9q?M(B(83)$B$,%^%l!<%7%"$N
$B%/%k!<%:A%$G46@w$7$F$$$J$$$O$:$b$J$/#w(B
$B$?$@!"=jA'$O309q?MN99T5R$J$N$G8!1V$GN1$aCV$/$h$j$b$5$C$5$H=P?H9q$KAw$jJV$7$F$7$^$&J}$,9A$K$H$C$F$O3Z$C$F$N$O$"$k$+$b!#(B
$B$7$+$7$^$"Cf9q$KCi@?$r@@$&$C$F$N$bBgJQ$J$3$H$@$J#w!!%&%#%k%9K~:\$N%/%k!<%:A%$N>h5R$K%U%s!&%;%s
$B46@w8!::7k2L$N:F8!F$$rMW@A$C$F$N$b0UL#$,$o$+$i$s#w#w(B
$B@dK>$N%/%k!<%:A%!#$3$3$^$G$/$k$H46@w$7$F$J$$%d%D$,5o$kJ}$,$*$+$7$$#w(B
$BCOL#$K%G%C%-;6Jb$H$+$7$J$$$GIt20$KdF$C$F$k?M$b5o$k$s$@$m$&$+!#(B
$B$_$s$J%^%9%/$7$FAv$C$F$F@($$3($K$J$C$F$k#w(B
$BF|K\$NBN0i2q7O$N%N%j$+$J!#(B
$B#13d$,;`$LIB5$$G$b6~6/$J%*%l$i$K$O4X78$J$$$C$F$$$&<+?.$,$&$+$,$($k!#(B
$B$3$N
$BN.9T@k8@$9$k$+$I$&$+!#(B
$B$A$g$C$HAa$$$h$&$J$=$&$G$b$J$$$h$&$JHyL/$J46$8$O$"$k$1$I!"N.9T$H8@$C$F$b4V0c$$$8$c$J$$!#(B
($B$I$&$;#2=54V$b$9$l$PN)GI$JN.9T4|$K$J$k(B)
$BAa$a$NN.9T4|$r@k8@$7$F2?$,$G$-$k$h$&$K$J$k$N$+!"$=$C$A$NJ}$,=EMW!#(B
$BF|K\$G6/@)E*$K5YF|$K$G$-$?$j$9$k!)$"$k$$$O9q:]@~$N%U%i%$%H$r86B'Dd;_$G$-$?$j$9$k!)ET;TIu:?$H$+$G$-$k!)(B
$B$I$l$bL5$5$=$&$@$J!
$B$[$\A40w$,46@w$9$k$N$rA0Ds$K$9$k$3$H$G!"2?$+$G$-$k$3$H$,$"$k$s$@$m$&$+!)(B
$BIp4A$NNc$@$H!"Ar<06X;_!J?M$,=8$^$k$+$i!K$H$+;`K4$7$?$i2PAr>lD>9T$H$+!"$=$l$/$i$$$7$+L5$$5$$,$9$k!#(B
$B4k6H$K;v6H7QB37W2h$r??LLL\$K9M$($5$;$k$-$C$+$1$K$J$k$+$J!)(B
$B?&>l$G=8CD46@w$7$F#5=54V$OI|3h$7$J$$$H$+!"$A$g$$$A$g$$;`?M$,=P$k$H$+!"8D?M7]$KMj$C$F$$$k%H%3%m$@$H;v6H<+BN$,L5$/$J$j$=$&$J!#(B
$B=E>I2=$7$J$$%1!<%9$@$H3d$H$"$C$5$j$7$F$s$J(B
$B$"$i$"$i!#?744@~$b
$BB3!9$H3NG'!#(B
$BIp4AGY1j(B $B%@%$%d%b%s%I%W%j%s%;%9>hA%Cf$5$s(B
tag: $BIp4AGY1j(B
$B85%@%$%"%b%s%I%W%j%s%;%99f$N%/%k!<$@$C$??M$,!":#EY$O>h5R$H$7$F>h$C$?$i(B2/5$B$K8!1V3VN%$5$l$F$7$^$C$?$N$G?)%l%]%D%$%"%+$r3+@_$7$?$H$N$3$H!#(B
$B85F1N=$H$$$&$N$b$"$k$@$m$&$1$I%/%k!<$N?M$dA%D9$d?'!9:n6H$7$F$/$l$F$$$k?MC#$K9%0UE*!#(B
$B:G6a$O$[$s$o$+$7$F$FL~$77O!#(B
$B?'!9$J2q
2/11$B$"$?$j$+$i$O!"$J$s$H(BAmazon$B$GGc$$J*$7$?$iA%<<$^$GFO$1$F$/$l$kFf$NA%FbG[C#Be9T$b9T$o$l$F$$$k$h$&$@!#(B($B%^%8$+$h%9%2!<$J(B)
$B;&H2$H$7$?%K%e!<%9$7$+N.$l$F$3$J$$$1$I!"$3$&$$$&$NNI$$$J$!$H6/$/46$8$?%"%+%&%s%H$G$7$?!#(B
$BB3JT(B$B$b$"$k$N$GCm0U!#(B
$B%*%l(Bwiki$B$r(BVue.js$B@8%?%$%W$+$i(Bwebpack+typescript(ts-loader)$B%?%$%W$KJQ99(B
tag: wiki, vue, webpack, typescript
$B3d$H9s$$L\$K2q$C$F%o%m%?#w#w#w(B
$B:#2s$I$&$7$F$b2r7h$G$-$J$+$C$?$N$,(B Vue.prototype.$appName $B$r;H$C$F%Q%i%a!<%?EO$7$7$F$k%d%D!#(B
webpack$B$G0lBN2=$5$l$?%V%D$O30It$NL>A06u4V$r1x@w$7$J$$$h$&$KIuF~$5$l$k$N$@$,!"%=%l$r$5$l$k$H30It$N(BJSP$B$+$i0J2<$_$?$$$J%Q%i%a!<%?EO$7$,$G$-$J$/$J$k!#(B
webpack$B$@$H(BVue$B<+BN$b30It$+$i8+$($J$$$h$&$KIuF~$5$l$F$k$7!"(BVue$B$@$1$O(Bglobal$B$K8x3+$7$F$b:#EY$O(BVue.prototype$B$,30It$+$i$OB8:_$7$J$$$b$N$H07$o$F%(%i!<$K!#(B
$B7k6I(BVue.prototype.$appName$B$rGQ;_$7$F!"(Bglobal$B8x3+4X?t$N0z?t$G%Q%i%a!<%?$rEO$9$h$&$KJQ99$7$F$J$s$H$+F($2$?!#(B
$B$"$H!"(BVue$B$H$+$O(B window.Vue $B$H$7$F(Bglobal$B8x3+JQ?t$K$7$F$_$?$1$I!"(Bwebpack$B30It$+$i$O(B new Vue(...); $B$G$-$J$/$J$k$N$G4X?t2=$7$F(Btypescript$BB&$K0\F0$7$FF($2$?!#(B
$BDL?.MQ$N(Baxios$B$@$,!"30It$+$iC$($F$7$^$&$N$,FqE@$+$J!
typescript$B$O8e$+$i7?%A%'%C%/$rDI2C$9$k$N$G!"(BC$B8@8l$N7?@k8@IU$-%W%m%H%?%$%W%X%C%@!
$B$J$*!"0lBN2=$7$?(Boutput.js$B$O%G%P%C%0%b!<%I$G(B1.2MB / $B%W%m%@%/%7%g%s%b!<%I$G(B132KB$B$K$J$C$?!#(B
vue.esm$B$H(Baxios$B$7$+;H$C$F$J$$$1$I7k9=$G$+$$!#(B
$B;29MJ88%(B
npm$B$K$h$k$$$m$$$m%$%s%9%H!<%k!#(B
$B%W%m%8%'%/%HFbIt$N%m!<%+%k%$%s%9%H!<%k$H$7$?!#(B
$B$3$l$@$H3F
package.json$B$N5-=R$N%"%C%W%G!<%H!#(B npm scripts $B$G?'!9
npm run build $B$H$9$k$H!"(Bwebpack -d (debug mode) $B$r
$B$3$3$K=q$$$?>l9g!"(B./node_modules/.bin/ $B0J2<$+$i
tsconfig.json $B$O0J2
typescript source$B0LCV$O(B /src/main/typescript $B$K$7$F$"$k!#(B
Gradle Java Web App $B$N%G%#%l%/%H%j9=@.(B( /src/main/java $B$H$+(B ) $B$NFbIt$K:.$<9~$`46$8!#(B
webpack.config.js $B$O0J2
$B%(%s%H%j!<%]%$%s%H$O(Bsrc/main/typescript/main.ts$B!"=PNO%U%!%$%k$O(Bsrc/main/webapp/js/output.js$B$K$7$F$"$k!#(B
$B4{B8$N(BGradle Java Web App$B$K:.$<9~$`$N$G!#(B
eslint$B@_Dj!#(Bprettier$B$r;H$&!#(B
window$B$KFH<+$N4X?t$rDI2C$7$F30It$+$i8F$S=P$;$k$h$&$K$9$k9uKb=Q!#(Bmain.ts$B$+$i;HMQ!#(B
main.ts$B$NH4?h$O0J2<$N$h$&$J46$8!#(B
$B30F;$C$W$j$,9s$$!#(B
$B%V%i%&%6$+$i4X?t8F$S=P$7$G$-$k$h$&$K$7$?$$$@$1$J$N$K!A!A!#(B
$B$b$C$H%^%7$JJ}K!$,$"$j$=$&$J$s$@$,(B....$B$o$+$i$s(B....$B!#(B
$BIp4AGY1j(B $B6571=8$a(B
tag: $BIp4AGY1j(B
$B1"]5$J%K%e!<%9$7$+N.$l$F$3$J$$#w(B
$B%,%s%Q%l!<%I%^!<%A$G$o$6$HIi$1B3$1$F?MN`LGK4E*D>A0$_$?$$$J46$8!#(B
$B:#8e$N6571$_$?$$$J$N$,$"$l$P=8$a$F$$$-$?$$!#(B
tag: $BIp4AGY1j(B
$B:#F|$O%3%s%S%K$G%^%9%/#1B^#58DF~$j$N%d%D$,#58D$/$i$$$"$C$?$N$G#18DGc$C$?!#$[$s$N$A$g$C$H$ON.DL$7$F$k$_$?$$$M!#(B
$B$^$H$^$C$F$F8+$d$9$$(B
$B$"$H!"4Z9q!"%$%?%j%"!"%H%k%3$G$b46@w
$BIp4AGY1j(B $B;3>l$i$7$$(B
tag: $BIp4AGY1j(B
$B$3$N(B1$B!"(B2$B=54V$,3HBg$+<}B+$+$N;3>l$J$s$@$=$&$J!#(B
$B$G!"?77?%3%m%J%&%$%k%946@w>IBP:vK\It!JBh#1#42s!K$K$F!"AmM}$O!VB??t$NJ}$,=8$^$k$h$&$JA49qE*$J%9%]!<%D!"J82=%$%Y%s%HEy$K$D$$$F$O!":#8e#2=54V$O!"Cf;_!"1d4|Kt$O5,LO=L>.Ey$NBP1~$rMW@A$9$k!W$H=R$Y$?$i$7$$!#(B
$B$=$l$r
$B8D?ME*$K$O(B3$B=54V$/$i$$CY$$0u>]$@$,!"$O$F!#(B
$B$*Ck$N%K%e!<%9$G$b%H%C%W07$$$@$7!"$h$&$d$/5!1?$,9b$^$C$F$-$?$C$FFI$_$J$N$+$7$i!#(B
$B%5%s%U%i%s%7%9%3$O5$$,Aa$9$.$k$h$&$@$,#w!"=`Hw$N$?$a$NHs>o;vBV@k8@$H$N$3$H!#(B
$B$3$l$$$$$J$!!#(B
$BF|K\A49q$N>.Cf9b$KNW;~5Y9;$rMW@A$i$7$$(B
tag: $BIp4AGY1j(B
$B
$B$9$2!<$3$H$K$J$C$F$s$J!#$A$g$C$H5-21$K$J$$$o!#(B
$B%3%m%JN.9T$K$O3d$HCO0h:9$"$k$H;W$&$s$@$1$I!";W$$@Z$C$?$3$H$9$k%b%s$@$M!#(B
$B@iMU;TD9$N?4G[$O$4$b$C$H$b!#(B
$B=w@-3hLv$H>N$7$FO+F/NO$H$7$F6n$j=P$7$F$$$k$N$G!"3X9;JD:?$9$k$HIB1!$K%@%a!<%8$,9T$/$s$8$c$J$$$+$J!#(B
NHK$B$K6l8@$rDh$7$F$$$k$H$3$m$b$4$b$C$H$b#w(B
$B8|@8O+F/>J$,!"$*$=$i$/:#$^$G$K$J$$L5Cc?6$j!V8!::$b$;$:!"$G$-$k$@$1<+Bp$K$$$F!"IB1!$K$b9T$+$J$$!W9TF0$r8F$S$+$1$F$$$kM}M3$r2r@b$7$F$$$k!#(B
$B$^$!!"$o$+$C$F$?;v$G$O$"$k!#G
$BKL3$F;$OHs>o;vBV@k8@(B $B30=P95$($k$h$&8F$S$+$1(B $B$i$7$$(B
tag: $BIp4AGY1j(B
$BKL3$F;$N>l9g$O$J$s$@$+JQ$J46@w$N9-$,$jJ}$7$F$k$+$i!"Hs>o;vBV@k8@$r=P$9J70O5$$O$o$+$k!#(B
$B$b$C$H$b!"@xIz4|4V$,4qL/$KD9$$:#2s$NIp4AGY1j$N>l9g!"$o$+$j$_$,?<$$!"$H$$$&$N$O
$B$3$l$ONI$$5-;v$+$b(B
$B?77?%3%m%J%&%$%k%9!J(B2019-nCoV$B!K$,8=:_$I$3$G$I$N$/$i$$H/@8$7$F$$$k$+%j%"%k%?%$%`$GJ,$+$k%&%'%V%5%$%H!#(B $B%8%g%s%:!&%[%W%-%s%:Bg3X!J(BLauren Gardner$B!K(B
$B@/I\%A%c!<%?!<5!Bh(B3$BJX$G5"9q$7$?(B149$B?M$K$D$$$F!"BND4ITNI$GIB1!$KHBAw$5$l$?(B10$B?M$N$[$+$K!"?7$?$K(B15$B?M$,F~1!$7$?$H8xI=$7$?!#$3$l$GBh(B3$BJX5"9q
$BCf9qElIt!&^69>!J(BZhejiang$B!K>J$N29=#!J(BWenzhou$B!K;T$O(B2$BF|!"=;L1$N0\F0$r@)8B$7!"F;O)$rIu:?$7$?!#(B
$B^69>>J!!9:=#;T!"\[@6;T!"G+GH;T(B
$B2OFn>J!!E"=#;T(B
$B;3El>J!!NW]k;T(B
$B|nN69>>J!!R}<$_@;T(B
$BJ!7z>J!!J!=#;T(B
$B9>AI>J!!Fn5~;T!"=y=#;T(B
$B"#(B $B1'ChNq(B 2020.02.02
2020.02.02($BF|(B) 15:52:54 VirtualBox 6.1 $B$G2>A[%^%7%s$NF~$l;R(B ( Nested Virtualization ) $B$,$G$-$k$h$&$K$J$C$?$i$7$$(B
config.vm.provider "virtualbox" do |vb|
vb.cpus = "2"
vb.memory = "2048"
vb.customize ["modifyvm", :id, "--nested-hw-virt", "on"]
end
$B"#(B $B1'ChNq(B 2020.02.04
2020.02.04($B2P(B) 15:44:29 yum $B$r%G%P%C%0%b!<%I$G
URLGRABBER_DEBUG=1 yum repolist
2020-02-04 06:27:22,929 attempt 1/10: https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64
2020-02-04 06:27:22,930 opening local file "/var/cache/yum/x86_64/7/epel/metalink.xml.tmp" with mode wb
* Could not resolve host: mirrors.fedoraproject.org; Unknown error
* Closing connection 23
2020-02-04 06:27:25,447 exception: [Errno 14] curl#6 - "Could not resolve host: mirrors.fedoraproject.org; Unknown error"
2020-02-04 06:27:25,447 retrycode (14) not in list [-1, 2, 4, 5, 6, 7], re-raising
root@40869638c931 /etc/yum.repos.d $ dig @8.8.8.8 mirrors.fedoraproject.org
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> mirrors.fedoraproject.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43788
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mirrors.fedoraproject.org. IN A
;; ANSWER SECTION:
mirrors.fedoraproject.org. 257 IN CNAME wildcard.fedoraproject.org.
wildcard.fedoraproject.org. 17 IN A 8.43.85.73
wildcard.fedoraproject.org. 17 IN A 8.43.85.67
wildcard.fedoraproject.org. 17 IN A 152.19.134.142
wildcard.fedoraproject.org. 17 IN A 209.132.181.16
wildcard.fedoraproject.org. 17 IN A 209.132.181.15
wildcard.fedoraproject.org. 17 IN A 152.19.134.198
wildcard.fedoraproject.org. 17 IN A 209.132.190.2
;; Query time: 11 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: $B2P(B 2$B7n(B 04 06:40:44 UTC 2020
;; MSG SIZE rcvd: 189
root@40869638c931 /etc/yum.repos.d $
$B"#(B $B1'ChNq(B 2020.02.14
2020.02.14($B6b(B) 21:00:34 $BIp4AGY1j(B $B$$$h$$$h%^%:$$(B $B;TCf46@w%b!<%I$X(B
$B?77?%3%m%J%&%$%k%9!J(B2019-nCoV$B!K$,8=:_$I$3$G$I$N$/$i$$H/@8$7$F$$$k$+%j%"%k%?%$%`$GJ,$+$k%&%'%V%5%$%H!#(B $B%8%g%s%:!&%[%W%-%s%:Bg3X!J(BLauren Gardner$B!K(B
2$B7n(B4$BF|(B $BSREG!"2
2$B7n(B2$BF|(B $BHyG.%9%?!<%H(B
2$B7n(B10$BF|(B $BGY1j$GF~1!(B
2$B7n(B14$BF|(B $BM[@-H=L@(B
$B"#(B $B1'ChNq(B 2020.02.15
2020.02.15($BEZ(B) 16:53:31 $BIp4AGY1j(B $BIB1!$,46@wCf?4$K!)(B
2020.02.15($BEZ(B) 22:40:22 $B5u9=?dM}(B
$B"#(B $B1'ChNq(B 2020.02.16
2020.02.16($BF|(B) 15:22:55 $BIp4AGY1j(B, COVID-19 $BN.9T4|(B
58 $B%"%J%(%m%W%i%:%^(B($BDm(B) [NO] 2020/02/15($BEZ(B) 15:41:14.73 ID:w4URh9a20
$B%"%a%j%+!VCf9q$dF|K\$O9s$$%3%m%J$@$i$1$8$c$M!<$+!"Cf9q?M$OF~9q6X;_$J!W(B
$B%"%a%j%+!V%$%s%U%k$K(B2200$BK|?M46@w$7$F;`
> $B3F9q$K5qH]$5$l$?!V%&%(%9%F%k%@%`!W$NF~9A$r%+%s%\%8%"$,5v2D$7$?$H$7$F!V$o$l$o$l$,5a$a$F$$$kO"BS$r<($7$?!W$HI>2A$7$?!#(B
> $B%+%s%\%8%"$N%U%s!&%;%s
> $B%+%s%\%8%"$OCf9q$H$N7P:QE*$J7k$SIU$-$b6/$/!"46@w3HBg8e$b1}Mh@)8B$J$I$NA
> $B%^%l!<%7%"B&$K8!::7k2L$N:F8!F$$rMW@A$7$?$HH/I=$7$?!#(B
> $B
> $BETFb$G?7$?$K46@w$,3NG'$5$l$?(B40$BBe$NCK@-2q
> $BCK@-2q
$B"#(B $B1'ChNq(B 2020.02.20
2020.02.20($BLZ(B) 22:38:40 $BIp4AGY1j(B $B%@%$%d%b%s%I%W%j%s%;%9>hA%Cf$5$s(B
$B"#(B $B1'ChNq(B 2020.02.23
2020.02.23($BF|(B) 13:19:28 $B%*%l(Bwiki$B$r(BVue.js$B@8%?%$%W$+$i(Bwebpack+typescript(ts-loader)$B%?%$%W$KJQ99(B
<script>
Vue.prototype.$appName = "<%= bean.getAppName() %>" ;
</script>
$B8E$$5-;v!J$D!<$F$b(B3$BG/A0$@$,(B...$B!K$J$N$G8=:_$OEv$F$O$^$i$J$$2U=j$b$"$k$,!"Ev;~$N35MW$K$D$$$F$h$/$o$+$k5-;v!#(B
$B4{B8$N(BVue.js$B%W%m%@%/%H$K(BTypeScript$B$rF~$l$k;29MJ88%(B
webpack$B$K$D$$$F4pK\$+$i!#(B
webpack$B$H(Beslint$B$NAH$_9g$o$;J}K!(B
$B%=!<%9%3!<%I$N%U%)!<%^%C%H$K4X$9$k(B linting $B$O(B eslint $B$O;H$o$J$$!#(B Prettier $B$KG$$;$k!#(BPrettier$B$J$i<+F0=$@52DG=$J$N$G!#(B
TypeScript$B$N(Bmodule$B$H$+(Bnamespace$B$H$+(Bimport$B$H$+(Bexport$B$H$+$NOC!#$3$NJU$OM^$($F$*$-$?$$!#(B
webpack$B$G$R$H$^$H$a$K$5$l$?%b%8%e!<%k$OFbIt$KIuF~$5$l$k$N$G!"(Bwebpack$B$N30B&$N(BJSP$B$H$+(BHTML$B$+$i(B Myfunc("fuga"); $B$H$+8F$S=P$7$G$-$J$/$J$k!#(B
window.Myfunc = function Myfunc(s) { ... } ; $B$9$k$HL5M}LpM}%V%i%&%6$+$i$b8+$($k$N$@$,!":#EY$O(BDOM$B$N(Bwindow$B$K$O(BMyfunc$B$OL5$$$H$$$&(Btypescript$B%(%i!<$K$J$k!#(B
$B$=$3$G(Binterface Window Myfunc$B$rDI2C$7$F(BTypeScript$B%(%i!<$r2sHr$9$k5;$r>R2p$7$F$$$k!#(B
# $B4{B8$N(Bgit$B$N%W%m%8%'%/%H$NCf$G$d$k$H!"(Bgit$B$N>pJs$r?'!9=&$C$F(Bpackage.json$B$r:n$C$F$/$l$k!#(B
npm init --yes
npm install --save vue
npm install --save axios
npm install --save-dev vue-property-decorator
# $B4D6-JQ?t@_DjMQ(B
npm install --save-dev cross-env
# $B%G%#%l%/%H%j$N$*A]=|MQ(B
npm install --save-dev rimraf
npm install --save-dev typescript
# var mymodule = require("mymodule"); $B$9$k;~$K;H$o$l$k(B
npm install --save-dev @types/node
# ts-loader$B$O(Bwebpack$B$+$i(Btypescript$B$r%3%s%Q%$%k$9$k;~$K;H$&%+%9%?%`%3%s%Q%$%i(B
# babel-loader$B$O(Bwebpack$B$+$i(Bjs$B$r%3%s%Q%$%k$9$k;~$K;H$&%+%9%?%`%3%s%Q%$%i(B
npm install --save-dev webpack webpack-cli ts-loader babel-loader vue-loader
npm install --save-dev eslint
npm install --save-dev eslint-config-standard
npm install --save-dev eslint-plugin-import
npm install --save-dev eslint-plugin-node
npm install --save-dev eslint-plugin-promise
npm install --save-dev eslint-plugin-standard
npm install --save-dev eslint-plugin-vue
npm install --save-dev prettier
npm install --save-dev prettier/eslint-config-prettier
npm install --save-dev prettier/eslint-plugin-prettier
npm install --save-dev @typescript-eslint/eslint-plugin
npm install --save-dev @typescript-eslint/parser
{
"scripts": {
"lint": "eslint src/main/typescript/**/*.ts",
"lint-fix": "eslint --fix src/main/typescript/**/*.ts",
"tsc": "tsc",
"build": "webpack -d",
"dev": "webpack -d --watch",
"prod": "webpack -p",
}
}
cat > tsconfig.json << "EOF"
{
"compilerOptions": {
"target": "es5",
"module": "es2015", /* umd$B$@$H2?$b4^$^$l$J$/$J$k$N$G(Bes2015$B$r;XDj!#(B */
"importHelpers": true,
"moduleResolution": "node",
"strict": true,
"noImplicitAny": false, /* Raise error on expressions and declarations with an implied 'any' type. */
"strictNullChecks": false, /* Enable strict null checks. */
"strictFunctionTypes": false, /* Enable strict checking of function types. */
"strictBindCallApply": false, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
"strictPropertyInitialization": false, /* Enable strict checking of property initialization in classes. */
"noImplicitThis": false, /* Raise error on 'this' expressions with an implied 'any' type. */
"removeComments": false,
"experimentalDecorators": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"isolatedModules": false,
"downlevelIteration": true,
"sourceMap": true,
"skipLibCheck": true,
"declaration": true,
"pretty": true,
"newLine": "lf",
"baseUrl": "./",
"outDir": "./dist",
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
},
"include": [
"./src/main/typescript/**/*.ts",
"./src/main/typescript/**/*.tsx",
"./src/main/typescript/**/*.vue"
],
"exclude": [
"node_modules"
]
}
EOF
cat > webpack.config.js << "EOF"
// output.path$B$K@dBP%Q%9$r;XDj$9$kI,MW$,$"$k$?$a!"(Bpath$B%b%8%e!<%k$rFI$_9~$s$G$*$/(B
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
// $B%b!<%ICM$r(B production $B$K@_Dj$9$k$H:GE,2=$5$l$?>uBV$G!"(B
// development $B$K@_Dj$9$k$H%=!<%9%^%C%WM-8z$G(BJS$B%U%!%$%k$,=PNO$5$l$k(B
mode: 'development', // "production" | "development" | "none"
// $B%a%$%s$H$J$k(BJavaScript$B%U%!%$%k!J%(%s%H%j!<%]%$%s%H!K(B
entry: './src/main/typescript/main.ts',
// $B=PNO@h(B
output: {
path: path.join(__dirname, "src/main/webapp/js/"),
filename: "output.js"
},
module: {
rules: [
// $B3HD%;R(B .ts $B$N>l9g(B
{
test: /\.ts$/,
// TypeScript $B$r%3%s%Q%$%k$9$k(B
use: 'ts-loader'
},
// $B3HD%;R(B.vue$B$N%U%!%$%k$KBP$9$k@_Dj(B
{
test: /\.vue$/,
use: [
{
loader: "vue-loader"
}
]
},
// $B3HD%;R(B.js$B$N%U%!%$%k$KBP$9$k@_Dj(B
{
test: /\.js$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
},
]
},
]
},
// import $BJ8$G(B .ts $B%U%!%$%k$r2r7h$9$k$?$a(B
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js', // $B40A4%S%k%I(B($B$5$l$?(BVue.js)$B$rFI$_9~$`(B
},
modules: [
"node_modules", // node_modules $BFb$bBP>]$H$9$k(B
],
extensions: [
'.ts',
'.js', // node_modules$B$N%i%$%V%i%jFI$_9~$_$KI,MW(B
'.vue'
]
},
// $B%W%i%0%$%s$rNs5s!#$3$3$K=q$$$F$*$/$H!"Kh2s(B import $B$7$J$/$FNI$/$J$k!#(B
plugins: [
// new VueLoaderPlugin()
],
};
EOF
cat > .eslintrc.js << "EOF"
module.exports = {
env: {
browser: true,
es6: true
},
extends: [
'plugin:vue/essential',
// 'standard',
'prettier',
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly'
},
parserOptions: {
parser: '@typescript-eslint/parser',
project: "./tsconfig.json",
sourceType: 'module'
},
plugins: [
'prettier',
'vue',
'@typescript-eslint'
],
rules: {
// $B%7%s%0%k%/%)!<%H$OI,?\$G$O$J$$!#%;%_%3%m%s$OI,?\!#(B
// "prettier/prettier": ["error", {"singleQuote": false, "semi": true}]
"prettier/prettier": ["error", { }]
}
}
EOF
cat > ./src/main/typescript/window.ts << "EOF"
// $B3d$H30F;$JDj5A!#(B window $B$K(B Vue $B$rDI2C$9$k$3$H$G!"30It$N(BJavaScript$B$+$i;H$($k(Bglobal$B$J(BModule$B$K$J$k(B
// https://sansaisoba.qrunch.io/entries/NrmnZGUHE3xZhO3a TypeScript$B$G(Bwindow$B$K%W%m%Q%F%#$rDI2C$9$k(B - sansaisoba's tech blog
import Vue from "vue";
// window.ts
interface MyWindow extends Window {
Vue: Vue;
axios: any;
createWebSocketVueControler: any;
createVueControler: any;
createVueForNewPage: any;
}
declare var window: MyWindow;
export default window;
EOF
// $B3d$H30F;$JDj5A!#(B window.Vue $B$K$bF~$l$k$3$H$G!"30It$N(BJavaScript$B$+$i;H$($k(Bglobal$B$J(BModule$B$K$J$k(B
// https://sansaisoba.qrunch.io/entries/NrmnZGUHE3xZhO3a TypeScript$B$G(Bwindow$B$K%W%m%Q%F%#$rDI2C$9$k(B - sansaisoba's tech blog
// new Vue $B$O;H$($J$$$1$I$M!#(B
import window from "./window";
window.Vue = require("vue");
window.axios = require("axios");
// module webchat $BFI$_9~$_(B
var webchat = require("./webchat");
// $B3d$H30F;$JDj5A!#(B window.createWebSocketVueControler $B$KF~$l$k$3$H$G!"30It$N(BJavaScript$B$+$i;H$($k(Bglobal$B$J4X?t$K$J$k!#(B
window.createWebSocketVueControler = function createWebSocketVueControler(
argDocumentLocationObj,
argAppName,
argAppContextPath,
argMountElementQuery,
argTextareaElementQuery,
argAppPictBbsUserName,
argRequestSessionId,
argPageUnit
) {
webchat.createWebSocketVueControler(
argDocumentLocationObj,
argAppName,
argAppContextPath,
argMountElementQuery,
argTextareaElementQuery,
argAppPictBbsUserName,
argRequestSessionId,
argPageUnit
);
};
$B"#(B $B1'ChNq(B 2020.02.24
2020.02.24($B7n(B) 21:30:55 $BIp4AGY1j(B $B6571=8$a(B
$B41
($B%(%\%i8~$1$J$i$3$&$J$C$F$J$$$H%-%D%$!#(B)
$B:GDc$G$b!"%P%9%H%$%l$,3FIt20$K$"$k%S%8%M%9%[%F%k7?$N41
2/5$BIU6a$N(BWHO$B$N%^%9%/$@$1$G(BOK$B!"$H$$$&$N$r1-F]$_$K$7$F?77?%&%#%k%9$KKI8nI~L5$7$GBP=h$K$"$?$C$?$N$O%J%a%W$9$.$F%@%a$@$C$?!#(B
WHO$B$O$b$&5!G=$7$F$$$J$$!#:#8e$b(BWHO$B$,5!G=$9$k$3$H$OL5$$$@$m$&!#(B
$B8|@8O+F/>J?&0w$H$+8!1V41$C$F$V$C$A$c$1@lLg$OK!N'4XO"!&
$B%^%9%/$N%U%#%C%F%#%s%0$9$i$G$-$J$+$C$?$H;W$o$l$k!#(B
CDC$B$_$?$$$J1VIB@lLg5!4X$H@lLg?M0w$r>oHw$7$F$J$$$H%@%a$G$7$g$&!#(B
$B"#(B $B1'ChNq(B 2020.02.25
2020.02.25($B2P(B) 21:21:09 $B%^%9%/Gc$($?(B / Yahoo$B?77?%3%m%J%&%$%k%946@w>I$^$H$a(B
$B"#(B $B1'ChNq(B 2020.02.26
2020.02.26($B?e(B) 20:44:04 $BIp4AGY1j(B $B;3>l$i$7$$(B
$B"#(B $B1'ChNq(B 2020.02.27
2020.02.27($BLZ(B) 21:23:56 $BF|K\A49q$N>.Cf9b$KNW;~5Y9;$rMW@A$i$7$$(B
$B"#(B $B1'ChNq(B 2020.02.28
2020.02.28($B6b(B) 23:25:54 $BKL3$F;$OHs>o;vBV@k8@(B $B30=P95$($k$h$&8F$S$+$1(B $B$i$7$$(B
$BF|5-%U%!%$%k%j%9%H:G?7#1#0#07o(B
$B;d$N:n@.$7$?%Z!<%8$X$N%j%s%/$O$4<+M3$K$I$&$>!#(B
$B$3$N%Z!<%8$K4V0c$$$dMWK>$J$I$,$"$j$^$7$?$i(B george@yk.rim.or.jp $B$^$G8fO"Mm$/$@$5$$!#(B
$B%a!<%kK\J8$K(B 6020-5440-3372 $B$H$+;d$N(B $BK\L>(B $B$r4A;z$G=q$$$FD:$/$H!"%&%A$N(BSPAM$B%U%#%k%?$rDL2a$G$-$^$9!#(B
home:
<george@yk.rim.or.jp>
or
<george@ceres.dti.ne.jp>