えんぴつぶろぐ

子育て中のフロントエンドエンジニアのブログ。

2018年振り返り〜出産、ダブル育休、産技大、そして今後の生存戦略のこと〜

2019年あけましておめでとうございます。
もう2018年終わってしまったけれど私も振り返り記事を書く。
昨年は激動の1年だった。
ひとりの会社員からひとりの母にクラスチェンジし、生活と考え方の中心が自分から娘に変わった実感がある。

その中でも色々あったので順に振り返る。

2月:産休へ

産休に入ったのは、2月の予定日4週間前だった。
産前休暇は出産予定日6週間前*1から取得できるんだけど、その日は月初で、制度上税金を余計に払わなきゃいけないのもあって臨月ギリギリまで出社してた。

ただこれは、私の妊娠経過がずっと順調で、出社できないほどの体調不良もなく、
且つ座ってできるデスクワークで、
且つ家と会社が産院に比較的近く、通勤時間も短く、通勤ラッシュもそれほど酷くないという 良条件が揃っていたからこそできたことだったので、良い子のみんなは真似したり、周りの人に強要したりしてはいけません…。
出社はできてたけどやっぱりお腹は重いし、胃もたれ、動悸、腰痛、むくみetc..もあったのでしんどいはしんどかった。

引継ぎについては、小さいチームではあったけどリーダーをやっていたのでかなり時間をかけた。
上司や後任のメンバーに相談し始めたのは胎児の心拍が確認できたくらいの時期だから、かれこれ半年くらいかけて引継ぎのために動いてたことになる。
上司と何度も相談しながら後任を育てるところから始め、途中からリーダーも降りて見守りに徹し、最後の1ヶ月くらいは無事暇になりドキュメント整備おばさんになってた。

育休中もたまに会社のメンバーとは連絡取ったり近況を聞いたりしているけど、うまくやってるようで安心やら少し寂しいやら。

3月:出産

3月には無事女児を出産。
その時の詳しいレポートはこちら。
この日から生活は一変して、生活の中心が子供になった。

empitsu88.hatenablog.com

5月〜8月:夫とダブル育休

生後1ヶ月くらいまで実家で過ごしたあとは、夫が3ヶ月育児休業を取ってくれた。
取った経緯や育休中の過ごし方は夫が良い記事を書いてるので見てください!(宣伝)

a-tarime.blogspot.com

a-tarime.blogspot.com

この期間、夫は私と共に育児家事にフルコミットしてくれたので、今やひとりでも一日中面倒を見れるくらいパパスキルは高い。
なにより、夫婦ふたりで家庭を運営しているという共同経営者感覚がより強くなった。
育児は辛いこと、大変なことも多いけど 一緒に立ち向かう仲間がいるだけで精神的・体力的な負荷が激減するし、
家族3人で一日を過ごし、日々成長する娘の姿を夫婦で見守れるのは何事にも代えがたい経験だった。

12月:娘、生後9ヶ月

そして今は生後9ヶ月。

  • 起きてる間はほとんど2足で立ってる。
  • 時折2、3歩自力で歩くように!
  • 「いただきます」「ごちそうさま」のときは手を合わせて拍手してくれる。
  • 離乳食が3回食になって牛肉、豚肉、赤身魚、青身魚が食べれるように。
  • 身長70cm、体重8kgを越える。
  • よく喃語を喋るし、あやすとよく笑う。
  • 行動範囲がどんどん広がって全然目が離せない。

できることも増えてだいぶ赤ちゃんから人間に近づいてる感じがする。
本当に子供って昨日できなかったことが今日できるようになってる生き物で、一瞬一瞬が貴重。

その分、変わってしまったことも多い。
生まれたてのか細さはもう見る影もないし、
ギャラン反射*2やモロー反射*3もなくなったし、
ハンドリガード*4ももう見れないし、
自分で寝返りしたくせに自力で仰向けに戻れなくてえーんと泣いちゃったりすることもない。
成長が待ち遠しい一方、寂しさもある。
GooglePhotoにアップした娘の成長記録を定期的に見ては癒やされている。

子供は目が合うと毎回笑いかけてくれるし、ぐっすり寝ている顔は天使みたいでめちゃくちゃかわいい。
娘を見てると夫婦共々自然と笑顔が出るし産んで良かったなあと本当に思う。

今後の生存戦略に悩む

子供を産むということは、子供の人生も(少なくとも成人するまでは)背負うということ。
だから今後の生存戦略について色々考える。
子育てを楽しみ、仕事を楽しみ、健康を維持し、経済的にも苦労せず、子供と夫、そして自分の幸福度を保ち続けるにはどうしたらいいだろう?
なんせ人生あと50年以上は続く。子供のことまで考えると100年。

そう考えると今の職場、もっと言うと日本に依存するのはやっぱりだめで、どこででも生きていけるようにならないと苦労するだろうなと思う。
子供にグローバルな英才教育を受けさせるという選択肢もあるかもしれないけど、まずは自分の、市場価値を高めるのが先決。
今の会社が潰れるかもしれないし、
小1の壁にぶつかってフルタイムで会社に行くことができなくなるかもしれないし、
娘が学校に馴染めないかもしれないし、
自分がPTAとか学校の教育方針とかに嫌気が指すかもしれないし、
日本の少子高齢化によってますます子供が生きづらい世の中になるかもしれないし。
そういった、「ああ、この環境は脱しないとまずいな…」となったときに先立つものはやっぱりフットワークの軽さと自信なんじゃないかと思う。
場所や時間を選ばない柔軟な働き方ができるようになっておきたいし、そのためにはポータブルスキルとキャリアが欲しい。
幸いにもwebの仕事は他の職種に比べるとリモートワークもしやすいし、プログラミング言語は世界共通。
まずは英語で仕事できるくらいにはならんとな、っていうのに30代になって子供を産んでからようやく気づく…。
だから最近はスキマ時間にちまちま英語を勉強したり、プログラミングをしたりしている。
今すぐ日本を出たいとか、特別行きたい国を決めているわけではないけど、
「その気になったらいつでも行ける準備」をしておくことが大事だと思ってる。
ラブホの上野さんも「会社員は全員転職できる準備を日頃からした方がいい」って言ってた。

産技大で人間中心デザインを学び始めた

ということで自分のキャリアアップの一環として、10月から産業技術大学院大学の人間中心デザインプログラムも受け始めた。
もともと会社の同期が行ってて気になってはいたけど「毎週このためにノー残業で帰ったり週末の予定空け続ける自信ないわ…」と踏ん切りがつかないでいた。
でも、2019年は4月から職場復帰を予定している。(保育園に入れればね!)
育児と仕事と大学の三足のわらじは流石に難易度が高すぎる。
昼間会社に行っていると、残りの少ない時間で家事育児をこなさなきゃいけなくなるから夫婦共に負荷が増えるし、
復帰して保育園に預けたら娘も体調を崩すことが多くなるだろうし…。*5

だから今年を逃すと、娘の手がかからなくなる時期(10歳とか?)まで、もう受講するのは無理なのでは?と思って夫に相談。
当然授業がある時間は娘の面倒を夫にみてもらうことになるのでものすごく迷った。
けど、なんと快諾してくれた。
これには感謝しかない。
「いや平日日中はいつもワンオペで育児してくれてるんだからそれ以外の時間ぐらい好きなことしたらええやん」とのこと。
「育児も立派な仕事」と思っているからこその発言なんだろうと思う。
私は育休で家にいるんだから、普段仕事してる人にワンオペ育児やらせるのはなぁと、なんとなく申し訳ない気持ちがあったけど、それは呪いにすぎないのかもしれない。
確かに「家にいる方が家事育児全部やるべき。」って考えが罷り通ってしまったら、専業主婦や育児に専念してる人は24時間365日休みがなくなってしまうし、それって「外で働くのに比べて家で家事育児をするのは楽」というふうに下に見てるってことになる。
仕事と育児どっちが大変かは決められない*6し、夫も同じ考えらしい。

幸い娘の面倒を見てる日は、娘を見守りつつ乃木坂のDVDを見たり友達を家に招いたりして適度に楽しく過ごせているらしい。
こちらとしても「私の都合で貴重な週末に娘の面倒を看てくれてる」という負い目があるので、向こうに急な残業や飲み会や遊びの予定が入っても快く送り出せる。
むしろもっと頻繁に飲みに行ったり泊まりで遊びに行ったりフラリーマンしたりしてええんやで…とすら思う。

産技大では、UX/HCD/ユーザビリティの理論を基礎から学んだり、実際のプロダクトを題材にユーザービリティテストやユーザー調査/分析を実践したりと刺激的な経験ができている。
産前、事業会社で日々Webサービスの改善に腐心してた身としては、「わーこれもっと早く知っておいたほうがよかったやつ!!」て毎回感動している。

2019年は

キャリアとスキルを身に着けたいと思いつつ、まだまだ、やれてないことは色々残っている。
英語は全然身についてないし、
モダンフロントエンド開発の経験も足りないし、
読みたい本もたくさんあるし、
udemyの講座消化できてないし、
ブログも全然書けてないし、
当然娘とも毎日イチャイチャしたいし、
1歳の誕生日に向けて何を作るか考えたいし、
もーやりたいことが多すぎる。

自分の時間が持てるのは子供が寝ている時と、機嫌よく一人遊びしている時くらいなので、正直時間を作るのはなかなか大変ではある。
娘が成長するに連れて起きてる時間はどんどん伸びてるし、構ってあげないと泣くことも増えてきたので、今後どうなることやら…。
けどスキルアップしたいという気持ちは娘と家族が大切だからこそなので、無理しない程度に両立できたらいいな。
まずは無事職場復帰できるよう、保育園の1歳児クラスに内定しますように…🙏

*1:法律上、産前休暇は、本人が希望すれば産む直前まで働くことができる。一方で産後は、少なくとも6週間は働かせてはいけないと決まっている。

*2:身体をこすった方向に傾ける反射。おしりがフリフリしてくそかわいい。

*3:大きな音に反応してビクッと両手を大きく広げる仕草。これで昼寝から起きちゃうこともあって悩まされたけどくそかわいい。

*4:生後2ヶ月頃、自分の手の存在に気づいて、しげしげと手を見つめたり手を動かしたりする仕草。くそかわいい。

*5:でも、産技大に行ってみたら、なんと1歳の子を育てるワーママもいらっしゃった…おそるべし

*6:大変さの種類が違うし、どっちも大変だし、そもそも個人(子供の人数、月齢、性質、仕事の内容、勤務時間)によって前提が異なるのだから比べるのがナンセンスすぎると思ってる派。

娘の成長振り返り〜出産編〜 無痛分娩レポート

はじめに

2018年も間もなく終わろうとしているので今年のことを振り返ってみる。
今年の一番のイベントはなんといっても出産。
2018年3月に長女を出産し、今や生後9ヶ月になった。
今年どころか人生の中でもビッグイベントなので、今更ながらちゃんと記録を残しておきたいと思った次第。
また、私は麻酔分娩(所謂無痛分娩)を選択したので、無痛分娩について知りたいと思っている人の参考に少しでもなれば。

免責事項

  • ここに書かれているのはあくまで個人の体験です。 出産の経過や子育ては大変個人差が大きいので「こんな人もいるんだ」くらいのライトな気持ちでお読みいただければ。
  • また、無痛分娩を闇雲に推奨しているわけでもありません。 検討してる人はご自分でメリット・デメリットをよく調べ、候補の産院の説明は納得いくまで聞いて下さい。

最初の兆候

最初に陣痛らしきものが始まったのは妊娠39週間、予定日まであと数日、というときだった。
この日はいつも以上に寝つきが悪く、だるくて朝方5時ごろトイレに起きたら出血してた。
あっこれがおしるしってやつかな?
少量の出血だけなら病院に連絡はしなくていいらしいけど…。破水はしてないよね…?
もし、気づかないうちに破水してたらやばいのかな…。
なんて思ってるうちに、お腹が鈍く収縮するような痛みがするようになってきた。
その間隔はきっちり10分ごとだったが、痛いというより、重いなぁ、程度。

f:id:empitsu88:20181223024224j:plain
メモ帳に痛みが来た時刻をメモってた。きっちり10分なのがわかる。

病院に電話すると、
「痛くないならただの前駆陣痛かもしれない。様子見て、どんどん間隔が狭くなってきたら来て」
的なことを言われる。
おいおい、すでにきっちり10分間隔だけど、これ以上間隔が狭くなっても大丈夫なのか?
もたもたしてると生まれちゃわない?
と思いつつ、まあ、まだ全然痛くないし今行ったら100%追い返されるな、と思い指示に従う。

妊婦っていつから入院するの?

ここで出産時の入院の流れついて説明しておく。
妊娠中、同僚や知人からたまに「入院は何日からですか?」とピュアな気持ちで聞かれることがあったけど、
妊娠の経過が順調な妊婦は、陣痛が本格的にくるまで入院はできない。
なので入院開始日もわからない。
出産予定日はただの目安であって、その日に陣痛が始まるかどうかは本人も医者にもわからない。
何ヶ月も早く産まれてしまう子もいれば、予定日前後に産まれる子もいれば、予定日を2週間すぎても産まれない子もいる。
※ただ、予定日を2週間すぎると母子共にリスクが高くなるので分娩誘発の措置が採られる場合が多い。

産院からは、
「初産婦さんは陣痛が10分間隔になったら病院に電話してね。状況をヒアリングするから、来ていいよって言ったら病院にきてね。」
「でもまだまだ産まれるのは先そう〜〜って判断したら追い返すかもしれないよ。」
「でも、破水したり、激しい腹痛があったり、大量の出血があったりしたら、様子を見ないで急いで病院にきてね」
と、説明される。
なので、「いつから病院に入院するか」は医者も妊婦も全くわからない。

たまにネット上とかで
「なんで臨月の妊婦が電車なんか乗ってるんだ、大人しく入院してろよ」みたいな的外れな発言を見かけるけど、
陣痛が来る前に入院できるのは、早産の恐れがある人、妊娠の経過に異常がある人、計画分娩の人など「イレギュラー」のパターンの人だけとなる。
(といってもなんらかのイレギュラーが発生する妊婦さんは非常に多く、なんら珍しいことではないけど。)

一方、経過が順調な妊婦は、正産期(赤ちゃんが産まれても問題ない時期。37週以降。)以降になったら、むしろお産を促すためウォーキングやスクワット、マタニティヨガなどの運動を産院に推奨される。
私は奇跡的に妊娠中なんの異常も指摘されなかった。(10ヶ月間全くない、というのは私の観測範囲の中だと珍しかった。)
なので臨月の時は毎日のように産院が開催しているマタニティヨガ教室に通ったり、3〜6km散歩してたりしていた。
ただ、歩いているときにいきなり陣痛がきたり破水する可能性もなきにしもあらず。
散歩するときは家や病院の周辺にし、なにかあったら陣痛タクシーですぐに病院に向かえるよう備えていた。

自宅ですごすこと、約20時間

話を戻す。相変わらずお腹の張りは規則的に来ていたけど、痛みはあまりなかったので普段どおり家で過ごしていた。
入院したらそのまま実家に帰って産後を過ごす予定だったので、自宅には1ヶ月ほど帰ってこれなくなる。
なので入院準備セットの最終確認したり、家事したり、掃除したり。

事前に助産師さんから
「初産なら陣痛きてもすぐには生まれないから。陣痛きたかな?と思ったらとにかく食べて。寝て。今のうちに体力つけといて。お風呂に入って体を温めるのもおすすめ。」
と言われていたので普段どおりもりもり食べ、湯船にもゆっくり浸かったり。
が、睡眠に関してはいざ昼寝しようにも鈍痛と緊張で全然眠れなかった…。朝5時から起きてたので寝不足だというのに。
陣痛間隔を気にしてきっちりメモをとっていたのも良くなかったかもしれない。
その結果あとで後悔することになるのである…。

そうこうしてるうちに痛みは少しずつ増していき、夜19時ごろからははっきりと「痛い」と感じるようになってきた。
未だに間隔は10分から狭まらないが、痛みの波が来た時は身動きできないくらいになってきたので、病院に電話し、向かうことにした。

いざ病院へ

事前に登録していた陣痛タクシーを呼んで、入院用の支度を持って病院に向かう。
この時すでに深夜2時。
夜間入口から病院に入って簡単な手続きをしてから、LDR(陣痛&分娩室)に通される。

荷物整理をしたり、入院着に着替えたり、設備の説明を受けたり、同意書を渡されてサインしたり。
この間、もちろん10分毎に陣痛は来るので時折フリーズしつつ行動する。
これ、私はまだ耐えられるレベルの段階だからかろうじて動けるけど、陣痛が進んでる人だったらろくに準備もできないし、同意書とか説明とか理解するの無理なのでは…?と思ったり。
現に、同意書の説明とかサインとかいくつかやった気がするけど、今となっては全く覚えていない…。

無痛分娩のプロセス

無痛分娩は、私が出産した産院では麻酔分娩と呼ばれていた。
ここでは陣痛がある程度進んでから麻酔を入れるのを推奨していたので、私の場合は「無痛」ではなく、陣痛の前半戦を味わった上での出産だった。
正確に言うと、子宮口が4〜5センチ開くのを待ってから硬膜外麻酔を入れる。

そこに行くまでには陣痛が始まってから約12時間、入院してから6時間かかった。
正直、途中で心が折れそうになる程度にはしんどかった…。
陣痛は人によって個人差が大きいので例えるのが難しいけど、その時点で「人生史上最大の生理痛が10分おきに、数分間続く」感じだった。
痛みそのものにも泣きそうだったけど、その痛みは今後どんどん強く、そして間隔が短くなっていく未来が約束されているという事実に絶望してた。

その産院は24時間いつでも麻酔分娩を受けることができるので、事前に申し込んでさえいれば、「やっぱり麻酔やる/やらない」を出産当日、陣痛の最中でも決めることができる。
「ある程度頑張ってみて、耐えられそうだったら麻酔なしで産んでみようかな」
と出産当日まで意気込んでいた私だったけど、脂汗が出るほどの陣痛にそんな決意はあっさりと揺らいだ。
子宮口4センチに達していないのに既にそれ。
陣痛の辛さのピークは全開と言われる子宮口10センチの、分娩最終段階なわけで、そこまで麻酔なしで産んでる人はどれだけの痛みなんだよ?と本当に尊敬の念を禁じ得ない…。

麻酔を入れることを決意するまで

出産前ではこの時が一番辛かったかもしれない。
LDRにはバランスボールやマットなど置かれ、好きな体勢で過ごすことができる設備が整っていた。
けれど、このときはNSTという陣痛の強さをチェックする機械をつけられていたため、仰向けからろくに動けず、どうやって痛みをやりすごしていいかわからなかった。
陣痛が来たときは腰や尾骨のあたりを強く押してもらうと良いらしいけど、
深夜故旦那も爆睡しており、(陣痛の初期段階のうちに寝ときな!と最初に言ったのは私なので責められない)
助産師さんもおらず、結局テニスボールを2個、腰の下に置くだけという焼け石に水な手法で一人耐え忍ぶしかなかった。
泣きながら旦那に声をかけて起こしてマッサージなりしてもらえば、もっとマシだったのかもしれない。
けれど、弱音を吐くと心が折れて、もう耐えられなくなってしまうんじゃないかってこのときは何故か思っていた。
今思えば、人に頼るのを我慢できるくらいの理性と余裕があったのだから全然大したことないレベルだったと思うけど。

「あ、これはだめだ、やっぱり麻酔にしないとだめなのでは、よし、入れよう」
と決意してからは時間の経過がものすごく長く感じた。

24時間いつでも麻酔ができる体制とはいえ、推奨されている段取りというものがある。
なぜなら麻酔2時間前からは何も食べることができない。
口にできるのは水・お茶・スポーツドリンクのみ。
でも分娩は体力勝負で、麻酔を入れてからも何時間かかるかわからないため、できるだけ食べられるうちに食べることを推奨される。
ようやく現れた助産師さんに「やっぱり麻酔入れたいです…」と控えめな感じに言ったら
「じゃあもうちょっと子宮口が開いてからのほうが良さそうだし、
今のうちにごはんを食べて、それから2時間後にまた進み具合チェックしようか!」と言われる。
えっ、どんどん痛みが強くなってきてるのに、まだ耐えるの…。しかも今ご飯手元にないし、買ってきてもらう時間+食べる時間考慮すると3時間以上あるのでは…。 と、軽く絶望したが、その時の私は妙に冷静で、
「とはいえ絶叫しまくるという、本格的な麻酔なしの陣痛に比べたらこんなものまだ序の口なんだろう」ともわかってはいたので、黙って了解する。
その頃深夜で痛みに悶続け体力も減っていたので、確かになにか食べておかないとやばい、という気持ちもあり。

結局そこから3時間ほど経って、朝8時位にようやく麻酔の処置が開始された。
買ってきてもらったおにぎりは結局痛くて2口くらいしか齧れなかった。

麻酔を入れてから

麻酔の担当の人が二人来て、脊髄の硬膜外というスペースに針を刺してチューブを挿入してもらう。
「麻酔処置中は大変危険なので動かないように」と事前に説明会で言われてたけど、陣痛は数分おきに来るわけで、動かないまま痛みといきみを逃すという高度な技を要求される。
麻酔が注入されてからは、徐々に徐々に効き目を感じてきた。
その後も麻酔医さんは麻酔の効きをチェックしたり、針を刺し直して位置を調整したりで、なんやかんや1時間以上は処置をしてくれたように思う。
やっぱ麻酔って刺して打てばいいってもんじゃなくて、デリケートな場所に入れるわけだし量とか位置とか、高度な調整が必要なんだな、そりゃ追加費用あんだけかかるわぁ、と思ったりする。
ちなみに麻酔の注入は一回だけではなく、お産が進むたびに随時足していく。
痛い時に自分でボタンを押して追加注入する機械も渡された。(もちろん、連打しても量が増えすぎることはない。)

また、麻酔を入れると陣痛自体が弱くなることが多く、その場合は子宮収縮促進剤を併用してお産を進める。
私も例に漏れず促進剤を使いつつ、また過ごすこと数時間。

麻酔が効いてきて痛みが和らいできたとはいえ、家で微弱な陣痛が始まってからその時点で30時間くらい経っていた。
その間は全く寝れていないので陣痛の合間は眠気と空腹との戦いだった。(眠くても陣痛で起こされる)

疲弊しつつも、いよいよ子宮口が全開になり分娩の最終段階に。
その頃にはすっかり麻酔が効いており、NSTの数値MAXレベルの陣痛がきても全く痛みを感じなくなってきた。

人口破水、会陰切開を経ていきんでいきんで、
そして入院してから13時間後、ようやく娘を産むことができた。

産んでから、産声をあげるまではほんの一瞬だったけど、すごく不安で「もし泣かなかったらどうしよう?」と緊張したことを今でも覚えている。
無痛分娩、痛くないんなら自分もそんな感動しないのかも…と、思っていたけど、
元気な泣き声を聞いて、安心と感動で自然と涙がこぼれていた。
あとは、足を伸ばした赤ちゃんは想像してた倍くらい大きかった。
「こんな大きい(身長55cm)のが本当に腹のなかにいたの?ふつうの人間じゃん!」と人体の神秘に驚いた。

麻酔分娩を選んで

途中まではそれなりにしんどかったけど、あくまで「それなり」で済んだので私は麻酔分娩を選択して本当によかったと思う。
ただ、もちろんリスクもあるので、検討してる人はご自分でメリットデメリットをよく調べ、候補の産院の説明は納得いくまで聞いて下さい。
私は自分や赤ちゃんに万一があったとき迅速に対応してもらえるよう、「母親と赤ちゃん両方のICUがある」というのと、「24時間麻酔医がいる」のを条件に産院を選んだ。
ただ、選択肢が豊富な都内だからこそ、そんな贅沢な条件で産める病院を探せたんだろうなとは思う。

24時間麻酔医がいない病院での無痛分娩は、深夜や休日の陣痛に対応できないため、自然な陣痛が始まる前から、陣痛促進剤と麻酔を入れてお産を進めるという計画分娩になることが多いらしい。
あらかじめ麻酔をいれるわけだからほとんど痛みを感じずにお産ができる人もいる一方、なかなかお産か進まない人もいるそう。
また、麻酔をしても急変した時に帝王切開となったり、鉗子分娩や吸引分娩になる可能性も十分ありえるので、そのあたりは理解した上で臨む必要がある。

この世には「無痛分娩とか甘え」「陣痛の痛みを乗り越えてこそ我が子に愛情が持てる」という考えの方がいらっしゃるらしいが、痛みを乗り越えないと愛情が云々はナンセンスだと思っている。
それを言ったら、ネグレクトや虐待している親はみんな痛みの少ないお産だったのか?
我が子を愛している親に無痛で産んだ人はいないのか?
ちょっと考えれば根拠が全くない言説だというのはすぐわかる。

そもそも痛みの感じ方やお産の進み方には個人差がありすぎる。
それなのに「乗り越えるべき」「耐えるべき」と人に押し付けるのは良くない。
もちろん、麻酔をうたず普通に産みたいという選択も尊重されるべきだけど、それを人に押し付けていいわけがない。

出産は無痛分娩だろうと普通分娩だろうと帝王切開だろうと命がけであることには変わりはないし、
(日本でも未だに年間50人前後の妊産婦が亡くなってる。)
10ヶ月間赤子を身ごもりつわりなどのさまざまな不調に耐え抜く点と、産後のダメージがつらい点に変わりはない。

最後に

なにより、今娘のことがめちゃくちゃかわいいし、娘のためなら命を投げ出せると当たり前のように思う。
だから出産時痛みがあったかどうかと愛情は別に関係がないと思っている。
出産方法で悩んでる人は、周りの声に惑わされず、自分がどうしたいかをパートナーや産院と話し合って決めて欲しいと思う。

思ったより長くなってしまった…。
入院中のことや退院後のことのことも忘れないうちに書いていきたいな。

Welcart for WordPressで常時SSL化を実施したメモとSearch Replace DBの注意点

最近、Welcartを導入したWordpress常時SSL化を行う機会があったので手順や調べたことについて備忘録。
SSL化って業務では苦労した記憶しかなかったけど、個人でやるような小規模でシンプルなサイトなら意外と簡単にできることがわかった。
実際に今回は多機能が売りのエックスサーバーを使っていたのもあり、半日ちょっとで作業は完了できた。

Welcartとは

www.welcart.com

WordPressECサイトを構築するためのプラグイン&テーマ。
基本無料で使用することができる。
公式マニュアルやフォーラム上の情報も充実しているため、開発の際は公式サイトを見るだけで大抵のことが解決できたのでとても助かった。
有償のプラグインやテーマ、保守サービス、専用のサーバーなども提供されているが、スモールスタートなら無料で十分だと思う。

常時SSLのメリット

おさらい。

セキュリティリスクに対抗できる

SSL/TLSで暗号化されてないと…特に暗号化されていない公衆のWi-Fiネットワークを使ったときに、

  • Cookieの盗聴
  • ログイン情報等、通信内容の盗聴
  • 通信を乗っ取り、マルウェア(仮想通貨のマイニングなど)を仕込まれる

などのリスクがある。 SSLにより通信途上で盗聴や改ざんなどがされないことを保証する。

フィッシング被害からユーザーを守る

サイトが正規の所有者によって運営されていることを証明することで、ユーザーを偽サイトに誘導するフィッシング詐欺に対抗できる。
ただし、「自分が本物のサイトである」と証明するには、「企業実在性認証型(OV)」もしくは「EV SSL証明書」を取得しないとあまり意味がない。
今回使う「Let‘s Encrypt」というオープンソースのDV証明書は、攻撃者がフィッシングサイトのために使うケースもあるのでぶっちゃけ「本物だと証明しユーザーに安心感を与える」効果はない…。
が、今回の目的はそこではなかったのでこの問題は許容することにした。

SSL証明書の種類

  • 自己署名型
  • ドメイン認証型
    • 正当なドメイン保持者である、ということしか証明できない。フィッシングサイトの運営者がこれを使用しているケースも有る。
  • 企業実在性認証型(OV)
    • 企業が実在することを認証する。
  • EV SSL証明書
    • 実在する事業所の住所まで証明できる

ブラウザーに警告表示がでなくなる

ChromeFirefoxではアドレスバーの部分に「保護されていません」という旨のメッセージが出てしまう。

参考:主要ブラウザ(Chrome, Firefox, Edge, IE, Safari)のSSL関連挙動一覧 | briccolog|東京都渋谷区のウェブ制作会社ブリコルール

SEOに有利

Googleでは2014年8月からHTTPS対応のWebサイトの順位を優遇するロジックとなっている。

(HTTP/2を使用した場合)Web表示速度の向上

HTTP/1.1に比較して表示速度が高速なHTTP/2はSSL化が必須。

アクセス解析の精度が向上

Googleはすでに常時SSLされているため、自分のサイトがHTTPSであればリファラが引き継がれる。
HTTPSページからHTTPページへの移動では、リファラリンク元)の情報が引き継がれない。

開発効率の向上

環境がHTTPSに統一されることで、HTTP/HTTPSを行き来する際の実装について考慮しなくて済む。

例えばCookieはセキュア属性を使うとHTTPSでのみ送受信可能で、HTTP環境とは共有できない。
かといって使わずにセッションIDなどをCookieに保存すると盗聴・なりすましのリスクもあった。

参考

常時SSL化の手順

基本的にWelcart上のマニュアルの手順通り進めればOK。
今回は、エックスサーバーを使った手順となっている。

参考

1.SSLをサーバーにインストール

エックスサーバーでは無料独自SSLが使える。

  • エックサーバーに設置するWebサイトを対象なら無料で使用できる。
  • SSLサーバー証明書ブランドは「Let's Encrypt」
  • 発行されるSSL証明書の署名アルゴリズムは「SHA-2」
  • SNI SSL(ネームベース)で提供
  • 証明書の期限は90日間だが、自動で更新をしてくれる。

以下の手順に従う。

無料独自SSL設定 | レンタルサーバー【エックスサーバー】

.htaccessを編集してリダイレクトの設定

http:// でのアクセスを https:// にリダイレクトするためにApacheの設定をする。

以下の記述を .htaccess に追記。
Wordpressに関する記述よりに記述する。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

※記述内容はサーバーによって異なるので毎回確認すること。
エックスサーバーの場合はこちら

解説

RewriteEngine On

RewriteEngine ディレクティブをONにしてURLの書き換え処理を行う。

RewriteCond %{HTTPS} !on

このRewriteCondディレクティブの条件(=HTTPS通信じゃなかったら)を満たした場合に、直後の RewriteRule ディレクティブの書き換えが行われる。

HTTPS Will contain the text "on" if the connection is using SSL/TLS, or "off" otherwise. (This variable can be safely used regardless of whether or not mod_ssl is loaded).

CondPattern(条件)の詳細:https://httpd.apache.org/docs/current/expr.html

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

任意の文字列0回以上の連続のURLにアクセスしたらhttps://から始まるURLにリダイレクト。
レスポンスコードは301。
URLの書き換え処理を終了し、以降のルールは実行しない。

.htaccessに関する資料

2.WordPressの設定を変更する

3.Welcartの設定を変更する

  • ダッシュボードの「Welcart>システム設定」の「SSLを使用する」というチェックを外す。
  • WCEX Mobile プラグインを使う場合は、「SSLを無効にする」にチェックを入れる
    • ただ、このプラグインはすでに販売終了しており、もはや必要がない。

4.ソース内のhttp:// の記述を全てhttps://に置換する

大規模なサイトほどこの手順が一番面倒かと思う。

  • エディタ等で手動で置換
  • データベースを一括置換

の二通りの方法が考えられる。 今回は小規模サイトといってもWordPressプラグイン内にプロトコルを含んだURLが大量に存在(2000箇所くらい)したのと、 シリアライズされたデータの考慮が面倒だったので、Welcartのマニュアルにある通り以下のツールを使うことにした。

interconnectit.com

Search Replace DBの使用手順

マニュアルにもライトな感じで紹介されていたツールだけど、
これはデータベースを操作できるツールを誰にでもアクセスできるWeb上に設置するので、 そのことを認識しておかないと非常に危険。
Search Replace DBのサイトにも再三危険性について記載がある。
だけど日本語でSearch Replace DBを紹介しているページには、あまりリスクやその回避方法について詳しく書かれていないのでちょっと心配になる…。

Search Replace DBのTOPに掲載されている警告文:

It has come to our attention that some users have been leaving this script on their servers despite advice to the contrary. Due to the very real dangers it can present when used that way, we now ask that you complete a form where we make sure you’re aware of these risks in order to receive the download link.

意訳:

アドバイスにもかかわらず、このスクリプトをサーバーに置きっぱなしにしているユーザーがいることがわかりました。
そのような使い方は非常に危険なので、ダウンロードリンクを受け取るためのフォームに、リスクを承知しているかを確認する欄を設けているから記入してね。

参考:

## Usage

1. *Do backups.*
2. Migrate all your website files.
3. Upload the script folder to your web root or higher. 
4. Browse to the script folder URL in your web browser.
5. Fill in the fields as needed.
6. Choose the `Dry run` button to do a dry run without searching/replacing.

データーベースとサイトの全ファイルのバックアップ

データベースを書き換える前に、必ずバックアップを取っておく。
うっかり置換作業を失敗すると詰む。
今回はバックアッププラグインBackWPupを使う。

インストールと設定手順:
定期的にWPを自動バックアップするプラグイン「BackWPup」 | 三重県のHP制作会社エフ・ファクトリー

BackWPup>ジョブ>今すぐ実行 で、バックアップファイルをダウンロード。

万が一のために復元手順も予習しておく。

データの復元手順:

「BackWPup」のバックアップデータを復元する方法 | 三重県のHP制作会社エフ・ファクトリー

Search Replace DBのダウンロード

公式サイトDownload Search Replace DBに必要事項を入力してSubmitする。

Knowledge checkもきちんと確認する。

Knowledge check*
□ I accept this script can be a security risk
□ I understand that this script must not be left in a public facing web server
□ I am a developer and I know what I'm doing!

意訳:

□ このスクリプトはセキュリティリスクがあることを承諾します。
□ 一般に公開されているWebサーバーに置きっぱなしにしてはいけないことを理解しています。
□ 私は開発者なので自分がやっていることを理解しています。

するとメールが来る。 ここにも赤字で警告が書かれている。

Important: Search Replace DB is a professional developer tool, usually for helping with migrations where command line tools are not available. If you do not understand that this tool can easily damage your database then please do not use it and hire a professional. You should ensure that the script is placed in an obfuscated subdirectory that cannot easily be reached from the front end. If you wish to keep the script online permanently for some reason, make sure that as a bare minimum you set up http authentication for the folder in which it resides, otherwise you will leave your site open to hackers. And we don't want that, do we?

意訳:

重要:Searh Replace DBはプロフェッショナルディベロッパーツールです。
通常、コマンドラインツールが使えない場所でのマイグレーションに役立ちます。
このツールがデータベースに容易に損害を与えうるというリスクを理解していない場合は、プロフェッショナルを雇いましょう。
スクリプトは、フロントエンドから容易に到達できないように、難読化されたサブディレクトリに配置してください。
なんらかの理由でスクリプトを永続的にオンライン上に設置したい場合は、最低限、フォルダに対してhttp認証を設定してください。
さもなくばサイトはハッカーに対してオープンになりますよ。

注意事項を確認できたら 「Download Search Replace DB v 3.1.0 here. 」のリンクからダウンロードする。

フォルダの設置

zipをダウンロードして解凍したら、そのフォルダを wp-content/ と同階層に設置する。
ただし、再三「難読化しろ」と注意された通り、フォルダ名は推測されにくい名前にリネームしておく。
私はパスワード生成ツールを使って、ランダムな英数字を使った。
初期の名前のままアップロードはやめよう。

/susokusarenikuinamae ←ダウンロードしたSearch Replace DBのフォルダを推測されにくい名前にリネームして設置
/wp-admin
/wp-content
/wp-includes

Basic認証をかける

使ったらすぐに消すつもりだが、念のためツールのフォルダに対してBasic認識をかけた。
エックスサーバーは.htaccessを直接いじらなくてもサーバーの管理画面上から簡単にアクセス制限が設定できた。

ブラウザでツールにアクセス

ブラウザで設置したフォルダのパスを開く。

https://ドメイン/リネームしたフォルダ名/

Dry runでプレビュー

replaceに旧ドメインwithに新ドメインを入力。
※最後の/を入力しないように気をつける。

まずはDry runでプレビューする。

live run

Dry runの結果が問題なかったらいよいよ実行。live runをクリックする。
その後、このようなアラートが表示されたが、どうもBasic認証のid/passを正しく入れてなかったということに気づく。

f:id:empitsu88:20181222155735p:plain

再度live run を押して、表示されたダイアログにBasic認証のユーザー名とパスワードを入力。

delete me

作業が終わったら、必ずdelete meを押してディレクトリを削除しておく。

5.表示確認

一通りの画面をブラウザで確認する。
mixed content errors が出ていたら、読み込んでいるリソースのプロトコルhttpsに修正して完了。

HTML5 Conferenceに行ってきたレポートとリンク集

HTML5 Conference 2018

年に一度のフロントエンドの祭典、HTML5 Conference 2018に行ってきました。

f:id:empitsu88:20181126005255j:plain
もらったノベルティ

f:id:empitsu88:20181126005304j:plain
会場ごとにハッシュタグ

関連したハッシュタグがまとめてみれるリンク

#html5j OR #html5j_h OR #html5j_a OR #html5j_b OR #html5j_c OR #html5j_d OR #html5j_e - Twitter Search

ホール以外の動画も後日アップされるらしい!
(全部ではないかもとのことだが)

まさに「祭典」。学べるだけじゃなくて楽しい

学びの深いセッションばかりで本当に行ってよかった!
今どきのカンファレンスらしく動画配信やスライド共有もあるので、現地に行かなくても大いに学びは得られるのだろうけど…
直接プレゼンを聞いたほうがやっぱり臨場感がある。
Twitter実況をするのも追いかけるのも楽しいしね!
タイムテーブルとにらめっこしながら「なんでこの時間、聞きたいセッションかぶってるんや…!」と迷い、セッションが終わるや満席になる前に急いで次の会場に向かい、
展示ブースを物色し、「次は〇〇に行く」とハッシュタグをつけてツイート…の感じ、まさに音楽フェス。

あとは顔見知りにばったり会場で遭遇したり、久々にお会いする方と挨拶できたり。
行ってる間娘を看てくれてた夫には感謝…(-人-)

基調講演

基調講演 吉川徹、えーじ

ビデオメッセージ 東京電機大学学長 安田浩教授

メッセージ 東京電機大学総合研究所特命教授・サイバーセキュリティ研究所長 佐々木良一 https://cysec.dendai.ac.jp サイバーセキュリティのより一層の充実は、社会を安心・安全・豊かにするための喫緊の課題です。東京電機大学CySecプログラムは、社会ニーズに応えるべく、社会人向けにサイバーセキュリティ意識の高揚を先導する、高度サイバーセキュリティ専門家を大学院レベルの授業により養成します。ご興味がある方、ご賛同頂ける方のご連絡をお待ちしております。

IoTとWEB技術が支える社会・大学としての人材育成の役割 岩井将行

吉川徹 html5j

えーじ Google

岩井将行 東京電機大学

source: https://events.html5j.org/conference/2018/11/session/#keynote

娘を朝寝に導いてから出発したので配信を道中の電車で見てました。
便利な時代…!

HTML5 Conference 2018 #html5j #html5j_h - YouTube

Highlight & memo

  • WebXR
    • ウェブ上からVRだけでなく、ARコンテンツにもアクセス可能にするAPI
  • Web Authentication API
  • Web Asesmbly + Web Audio
    • C++で書かれたオーディオ編集ソフトウェアをWeb Assemblyで変換してブラウザで動くようにしたり
  • Web Packagingを有効にしたAMP
    • 今年のGoogleI/Oで発表。
    • googleにキャッシュされたAMPのページにアクセスしても、GoogleではなくオリジナルのURLが表示される

Web is the only platform no one owns. by Dave Winer

  • ウェブをより良くするためにできること
    • ドキュメントの翻訳
    • 仕様やブラウザベンダーへのフィードバック
    • ブログを書く
    • 勉強会への参加・登壇

持続可能なプロダクト開発のために - フロントエンドと新陳代謝の話

Webフロントエンドの開発は日々進化していますが、徐々にそれも落ち着きつつあります。

それと同時に、 Web フロントの進化によって生まれた特有の事情とアーキテクチャ上の課題が私たちには残されました。

全ての要件の落としどころとなることが多いフロントの世界で、ソースコードの秩序を保ちつつ、持続可能なプロダクトを開発するためには何が必要か。

Vue.js による具体例を交えつつ、マイクロサービス文脈にも通ずる「捨てやすい」と「作り変えやすい」をテーマにした、フロントエンドのこれからについて考えてみます。

花谷拓磨(potato4d) ElevenBack

source: https://events.html5j.org/conference/2018/11/session/#c1

「変化が激しいフロントエンドにおいて、採用した技術はどれだけの期間使い続けることができるのか?」
「学習コストが高い技術を使った環境で、変化に強い設計を組めたとしても、多人数のチームでクリーンなコードを守り続けられるか?」
という悩みに対して、
ずばっと「捨てやすい設計にしたほうが心穏やかでいられるよ!」 という一つの解を与えてくれたセッション。

Highlight & memo

軽量な時刻操作で人気のday.jsは1年前になかった

Moment.js の存在を知って感動したのがつい最近だった記憶もあるけどいつの間にかより軽量なday.jsというものがでていたようだ。。

GitHub - iamkun/dayjs: ⏰ Day.js 2KB immutable date library alternative to Moment.js with the same modern API

フロントエンドにおける課題のサンプルケース

  • とある実装者に追加されたテスタビリティを欠いたコードや密結合な追加ロジックの実装が出現
  • すぐにマージするわけにもいかず、いは言え入れない場合の開発工数のロスも大きく、痛みを伴うトレードオフを要求される
    • => あるあるすぎて泣ける

闇の魔術に対する防衛策として求められる2つの選択肢

  • 「作り変える必要が極力ない」設計を組み上げる
    • 技術水準が高いかつ安定した環境ではワークする
    • => エンジニアの理想としてはこちらだけど・・・突然の外的要因変更には強くない
  • 「作り変えやすい」設計を組み上げる
    • =臭いものにフタ
    • エンジニアとしては「負け」と感じる箇所も出てくる
    • => 今回はこちらの「作り変えていく」方向性で課題解決を検討する

「分割統治」の徹底

壊れにくくするよりも破棄しやすくすることに主眼をおく

  • =>バックエンドやMicroService文脈が参考になる

  • Flux / Redux層の肥大化に注意する

    • グローバル関数・変数のようなものだから、なんでもかんでも突っ込まない。チェックボックスの値一つとか。
    • Redux ducks パターンやnamespaced Vuexの考え方が参考になる
  • フロントエンドの"ドメイン"はバックエンドやUIに引きずられやすい。
    • アプリケーションのプレゼンテーション層を担当している領域の一つとして考える
  • frameworkを使う必要ないところはpureJSのmoduleにして、SOLID原則さえ守れば問題なかったりもする

ドメイン駆動設計についてのおさらい

  • フロントエンドをMicroServices文脈における「サービス」の大きくなったものと解釈する

    • UIの操作= Inに対して適切なAPI Callとレスポンス=Outが得られる
    • ということは、In/Outが適切であれば、中のコードが変更されようが汚かろうが他のレイヤーに影響はない
  • UI/データモデル・ビジネスロジックの3種が混合する領域については「捨てやすさ」を重視したほうが費用対効果が高い

    • でも以下のようなものは息が長い
    • frameworkから切り出されたpureJSのコード
    • 単一責務を守っている便利なユーティリティコード
    • APIクラインアント
  • Vuex, Vue.jsコミュニティは分割統治に積極的

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

カンファレンススポンサーによるライトニングトーク大会

株式会社 ディー・エヌ・エー/株式会社サイバーエージェント /株式会社ドリコム/日本事務器株式会社/グレープシティ 株式会社/株式会社 日本経済新聞社

f:id:empitsu88:20181126005206j:plain

「先着順でお弁当がもらえる・・・だと・・・」

大行列でしたがなんとか240名の中に入れたのでお弁当がいただけました。太っ腹!

f:id:empitsu88:20181126005244j:plain

株式会社サイバーエージェント

新卒研修でslackをチームで開発してテストカバレッジ99%を達成した、という話でした。
slackを入社早々作るというのもすごいけど実務顔負けのモダン開発フローを実施し、かつ英語でのIssue作成やコードレビューをしたとのこと・・・すごすぎる!

アクセシビリティ、はじめよう! 〜「できない」から脱出するための20(仮)のネタ🍣〜

最近流行の兆しを見せつつある「アクセシビリティ」、取り組んでいますか?

まだ何もしていない、何をしていいかわからない、というあなたに向けて、アクセシビリティの基本的な考え方、取り組む理由などについてゆるーくトークしていきます。

これから取り組んでいく、周りの人を巻き込んでいく際のヒントになるかも?

困っている方からの質問も大募集します!

山本和泉

太田良典 弁護士ドットコム株式会社

source: https://events.html5j.org/conference/2018/11/session/#e2

スライド:
docs.google.com

Highlight & memo

  • アクセシビリティ:あらゆる状況の人にとっての使いやすさ
  • ユーザビリティ:特定のユーザにとっての使いやすさ

  • アクセシビリティが低い=そもそもアクセスできなくなるので、マイナスのユーザー体験が生まれてしまう

  • Q.「うちのターゲットに障害者や高齢者はいないよ?」
    • 実はターゲットかもよ?
      • ex)カメラはロービジョン(弱視)の人が遠くのものを観るために便利に使ってたりする
    • ターゲットの知り合いや友人かもよ?
      • 当たり前のことだけど、ハンディキャップのある人は一人で行きているわけじゃない。友人や家族とともに生活している。会話の中で製品の話題を出したり薦めたりするかも
  • Q.「最近アクセシビリティが流行りだしたのはなんで?」
    • 2016年に障害者差別解消法が施行
      • 民間企業も努力義務

Web Content Accessibility Guidelines (WCAG) 2.1

Web Content Accessibility Guidelines (WCAG) 2.1

2.0の翻訳版:
Web Content Accessibility Guidelines (WCAG) 2.0

2.1の翻訳も今やっている:
GitHub - waic/wcag21: WCAG 2.1 Japanese

PWAの導入で得られた成果と見えてきた課題

PWAに関するブログや事例を見聞きすることは増えてきましたが、実際にプロダクションに導入してみて得られた発見や運用面での課題について語られることは少なかったのではないでしょうか。

この発表では、PWAを導入して1年以上経つ日経電子版の開発を通じて得られた知見を交えつつ、PWAの現在地や今後の可能性について考えてけたらと思います。

宍戸俊哉 日本経済新聞社

source: https://events.html5j.org/conference/2018/11/session/#a3

PWAは本格的に導入してみたいなと思いつつ、導入ってそれなりにコスト=お金がかかって大変じゃないですか。
「ユーザー体験が向上するのはわかるんだけどビジネス的にどのくらいメリットがあるの?お金に直結するの?」
という疑問にどう戦えばいいのか、 そして導入した結果逆にデメリットはなかったのかiOSでUXがマイナスになったりとか) っていうのとても知りたかったのでその疑問が解消される良いセッションでした!

GoogleのPWA実績紹介にも日経さんは取り上げられてるのだそう。

Nikkei achieves a new level of quality and performance with their multi-page PWA  |  Web  |  Google Developers

Highlight & memo

Performance gains
* 2X better Speed Index
* 14 seconds faster time-to-interactive
* 75% faster loading with prefetch

Business impact
* 2.3X organic traffic
* 58% more conversions (subscriptions)
* 49% more daily active users
* 2X page views per session

58% more conversions (subscriptions)!! こんだけのビジネスインパクトもかなり与えられてるのはすごい!
これは導入にあたって上を説得する良い材料になりそう。

  • ブロッキングリソースをなくすためにInlineにcritical CSSを埋め込んでる。
    • ただ、自動生成ツールは使用していない。デバイスやユーザーごとに必要なスタイルの違いを担保できないため。
    • なので不要なスタイルも埋め込まれてしまってHTMLの容量は増えてしまっているが、それでも恩恵はある
  • A2HS(Add to Home Screen)がどのくらいされたかの計測はonBeforeInstallPromptのイベントハンドラを使うなど自前で計測しないとだめ
    • 重要な指標になるので計測しておくべし
  • Speedcurveでパフォーマンスはモニタリングしている。
    • モニタに常に重要指標を表示させておくことで気づくやすくする。
    • => 良いアイデア
  • Page Speed Insightは最近大幅にアップデートされ、lighthouseの機能が取り込まれている

  • 日本は通信環境は良いから、オフラインで読むためにコンテンツを保存したい、という要望があんまりでない

  • iOS PWAでは問題が山積み
    • ログインしようとすると、別ドメインなのでSafariが開いてしまう。
    • しかもセッションストレージをiOSとPWAで共有してないので、PWAに戻ってもログインされてない!!
  • ServiceWorkerを修正したときの手間
    • ImportScriptsで呼んでるファイルに対してはブラウザが更新確認してくれない。なのでメインのファイルに記載されてるクエリパラメータつけるなどでむりやり更新させてる。
    • 原則ServiceWorkerの更新はブラウザまかせ。
      • 一応skipwaiting()使えばできるけど

開発体制に合わせたCSS設計

CSS設計手法は、BEMやFLOCSSなど代表的なものから、ECSSやRSCSSなど種類も増えてきました。サイト規模や開発体制という視点から見たとき、どういったCSS設計が望ましいのかをお話します。 吉川雅彦

source: https://events.html5j.org/conference/2018/11/session/#e4

資料:開発体制に合わせたCSS設計 | 吉川ウェブ

プレゼン資料はHTMLでした!
Nodefestでも感じたけど、HTMLでプレゼン資料作ってる人、増えてきている印象。

webpackのいままでとこれから

今やフロントエンドの世界では、JavaScriptのmodule化が一般的となりました。 このセッションでは、多くの開発で使われているwebpackの歴史を辿りながら様々な仕組みを紹介していきます。 廣戸裕大 株式会社ドワンゴ / 株式会社メルカリ

source: https://events.html5j.org/conference/2018/11/session/#a5

スライド:
slides.hiroppy.me

Highlight & memo

  • Vote and Prioritize
    • webpackはスポンサーから調達した資金を貢献者に時給換算で割り振っているだそう!
  • runtimeのしくみ
  • 2012年:CJS をターゲットにmodules-webpack として開発がスタート
    • style-loader, css-loader, file-loaderなどのローダー実装
  • 2014年:プラグイン・ローダー機構、webpack-dev-server
  • Hot Module Replacement
  • Tapable
    • webpack プラグインシステム
    • Waterfall, Bail, Loop のタイプを持ち、
    • webpack のライフサイクルをフックする
  • 2017年:v2リリース
  • Tree Shaking
    • 未使用のモジュールを検知しバンドル時に分解する
  • Dead Code Elimination
    • 実行に影響しない未使用のコードを発見しそれを削除する。uglifyJS(or terser) が使われる。
  • 2017年:v3リリース
  • Scope Hoisting
    • インポートチェーンをフラット化し、1 つのインライン関数に変換できる場所を検出する。
    • 余分な関数呼び出しを減らし、実行時間・コード量を減らすことを期待する。
  • 2018:v4(Legato)
    • CommonsChunkPluginがsplitChunks, runtimeChunkへ
    • webpack-cliへ移行
  • SplitChunksPlugin
  • 未定:v5
    • persistent cachingの追加(FileCachePluginの追加)

展示ブース

夕方にはこのような結果になったようです。

他の方々の参加レポート

この記事を書くにあたってカンファレンスを振り返るのに参考にさせてもらいました。
スライドへのリンクも充実してるのでありがたく見させてもらってます。

布団生活の我が家では寝室にキッズランドのベビーサークルを導入して正解だった話

我が家ではベビーサークルがなくてはならない存在になってるので「うちではこんな風に使ってるよ!」という話です。
ベビーサークルといえば、危険な場所に入れないようブロックしたり、安全な場所で赤ちゃんを遊ばせるためになくてはならないアイテム。

こういうやつ。

そのベビーサークルを、寝室でベビーベッド風に使ってとても快適に過ごせています。

ここに至るまでは
「ベビーベッドってあったほうがいいの?」
「寝返りが激しくなって布団からはみ出まくるんだけどどうしたらいいの」
というのを悩みまくったので、
「結局うちではこうした!」というのを書いおくことで、誰かの参考になったらいいな。

赤ちゃんの寝床は最初ベビー布団のみだった

もともと我が家ではベッドは使わず布団で寝ていたので、赤ちゃんの寝床も自然とベッドではなく布団を選びました。
ベビーベッドは邪魔になりそうだったのと、布団なら大人と同じ目線で寝れると思ったのが決め手です。

ちなみに我が家で買った布団はこれ。
マット含めて全部丸洗いできて、柄も可愛い点が気に入っています。

「大人と同じ布団で添い寝」という選択肢もありましたが、
大人用の寝具だと柔らかすぎて窒息したり、大人が寝返りを打って潰すリスクがある、ということだったので除外しました。

参考: 安全第一!赤ちゃんのねんねスペースの作り方 | ハフポスト

ベビーベッドと比べてベビー布団のいいところ

転落の心配がない

高さ0メートルなので布団から落ちても死ぬような危険はありません。
ベビーベッドも柵を上げれば安全ですが、頻繁に夜泣きや夜間授乳があると、寝不足の状態で自分が毎回きちんと柵を上げられるのか自信がありません…。

布団の上で赤ちゃんと一緒にイチャイチャできる

大人の布団の隣にベビー布団を敷いて寝ていたので、夜中に間近で寝顔見たり、頭を撫でたりするのは至福のときでした。
昼間も夫婦で赤ちゃんを挟んで寝転がってイチャイチャしたり。
ベビーベッドでも、大人のベッドとくっつけて一面の柵を下ろせば頭を撫でたりはできそうですが、
私だったら柵をおろしたまま寝落ちしちゃいそうです…。

掃除しやすい

布団の下もめくればすぐ掃除機がかけられます。
カビ防止のために毎日立てかけるのも軽いので簡単。

それでも布団で心配だったところ

ホコリがたまりやすい、らしい

ホコリは床上0~30cmの間で多く舞っているので、ベッドに比べると布団はほこりが溜まりやすいらしいですね…。
とはいっても肉眼ではわからないし、娘はアレルギーがあったり呼吸器が弱いわけではないので、我が家は今の所は気にしていません。

参考:https://kaimin-times.com/futon-on-the-bed-5067

柵がないので潰しそうで心配

退院したばかりの頃は、生まれたての弱々しい生き物が自分の足元にいる、というのがすごく怖くて。
「私が万一不注意で転んで赤ちゃん潰しちゃったらどうしよう」
「万一よろけて踏んじゃったらどうしよう」
と、ベビー布団の周囲に立つ時は毎日ビクビクしてました。
成長し育児にも慣れるにつれて、そんな「最悪の事態」を想像して怖くなることは減ってきましたが…。

ただ、「大人が寝返りして赤ちゃんを圧迫する」可能性は無きにしもあらずなので、大人の布団とベビー布団は少し離して敷いていました。

寝返り・ズリハイが始まって布団からはみ出すことが多々

3ヶ月ごろ背ばいができるようになって、いつのまにか90度、ときには180度回転して布団から頭がはみ出てる、なんてことが増えてきました。

そうこうしてるうちに寝返りがはじまり、はみ出たおでこを床にごっつんしてふぇ〜ん、と泣くというおきまりのパターンを繰り返してました。

この時はまだジョイントマットを布団の周りに敷くことで対応してましたが、
5ヶ月にもなると寝返りローリングやズリハイで少しずつ行動範囲が広がっていく娘。
朝起きたら、布団やジョイントマットから大幅にはみ出した場所で寝返りしててびっくりしたこともありました。

このままどんどん行動範囲が広がってくると、朝、大人たちより娘が先に起きたときのことが心配です。
寝室にはなるべく物を置かないようにしてるといっても、枕元にあるiPhoneとか、メガネとか、充電ケーブルなんかで遊ばれると怖い…。

そこで、ベビーサークルで布団を囲っちゃえばいいんじゃない?!ということに思い至りました。

木製ベビーサークルSafe Playpen VS 日本育児 キッズランド

色々調べていくと、ベビーサークルで人気なのはこの二つらしい、というのがわかりました。



キッズランドは長く売られている人気商品で、プラスチック製で扉付き。トイパネルもありカラーバリエーションも豊富。
一方Safe Playpenの方は木製でシンプルなつくり。キッズランドに比べて少しお手頃価格。

安価なプレイペンにするか…人気のキッズランドにするか…。
迷いましたが、結局キッズランドにして正解だったな、と今は思います。

プラスチックなら木製のものよりぶつかっても安心

寝かしつけ中、超ハイテンションで私の体によじ登ってきたり、つかまって立とうとするので、
勢い余ってベビー布団の中ですってんころりんすることがよくありました。
その時、柵にも頭をぶつけてひやっとするのですが、泣きもせずケロッとしています。
たしかに、自分で頭をぶつけて見ても派手な音はしますがほとんど痛くないんですよね。
中が空洞だし、柵ががっちり固定されているわけではないからでしょうか。

舐めたり汚したりしてもすぐ拭ける

プレイペンのQ&Aを見てて気になったのが、「子供が舐めるので塗料が安全か心配」というものでした。

Q.赤ちゃんがサークルをかじります。塗装は安全なものですか?
A.赤ちゃんがサークルをかじらないよう、歯固めなどのおもちゃで気をそらすなどし、必ず保護者の方の目の届く範囲でご使用ください。塗装につきましては、一般的に家具に使用されているエコ塗装のものと同様となります。ほぼ問題がないと言えますが、十分にご注意いただきますよう御願い致します。尚、イメージ違い、赤ちゃんがかじるなどでの返品はできかねます。

かまり立ちすると、ちょうど柵の上端のところに顔がくるのでめっちゃ舐めるんですよね…。
塗装の安全性も気になりますが、木製だと拭いてもシミにならないか、清潔になってるかどうか不安が残ります。

ベビー布団の中で一緒に過ごせる

ベビーベッドだと大人は一緒に乗れないと思うのですが、布団なら可能です。
寝かしつけのときはベビーサークルの中に一緒に入って授乳したり一緒に遊んだりしています。
扉があるのでサークルの外で寝かしつけしてもいいのですが、
扉は勝手に閉まる仕組みなので両手で抱っこしながらだと赤ちゃんを中に寝かせるのが結構難しいです。

トイパネル大好評

我が家ではキッズランドが気に入ったので、寝室に1つ、リビングに1つ導入しています。
寝室ではトイパネルを外した6枚を使い、リビングにトイパネル2枚を並べて使ってます。
トイパネルには歯車やメロディーの流れるボタンなど子供が喜びそうな仕掛けがたくさんあるのですが、
娘は特に鏡がお気に入りのようで、一人遊び中鏡の中自分を見て爆笑してることもありかわいい。

f:id:empitsu88:20181113210558j:plain
6枚だとこのくらいの大きさ

分解・組み立てが簡単

我が家ではスペースの都合上、クローゼットの前に赤ちゃんの寝床を置いているので、 クローゼットを開けたいときはベビー布団をどかさないといけません。 ですが、柵は持ち上げて引っ張ればすぐに外せるので、あとはベビー布団をちょっとめくればOK!
掃除するときも気軽に持ち上げられます。

メルカリで安定して需要があるので手放したいときも安心

最近大物を買うときは、「手放したいとき簡単に処分できるか」を気にして買い物をすることが多くなりました。
人気の商品であれば、メルカリですぐ買い手がつくので手軽に買って手軽に処分することができます。

キッズランドは安定して需要があるようなので、手放したいときも安心です。

注意点

ベビー布団がぴったりハマらない

キッズランドのパネルの外形は(約)幅84×奥行2×高さ56cmです。
6枚つかって長方形をつくって幅80x高さ120cmのベビー布団を囲っていますが、
微妙に幅が足りず、サークルが若干歪な形になってしまいます。

f:id:empitsu88:20181113210604j:plain
6枚つなげて長方形にして使っています。手前に微妙な隙間が…

床にはジョイントマットを敷くことで、空いた隙間に頭をぶつけても痛くないようにしてはいますが、
隙間が空いていると、顔が万一嵌ったときときの窒息しないだろうか?と不安になります。
我が家はもう体力がついて自在に寝返りができるので心配はしていませんが、
うつ伏せになったとき自力で体勢を直せないほど月齢が低い赤ちゃんにはおすすめできません。
やるのであれば、コの字型、もしくは8枚使って十分な隙間を空けたほうが良さそうです。それか、動き回らないうちは柵を使わないか。

ちなみに我が家では当初4枚使ってコの字型に置いていましたが、娘の押す力が強くなるにつれ壁と柵の隙間から脱走されるようになったので6枚使ってサークル状にした、という経緯があります。

まとめ

以上が、日本育児キッズランドを寝室に使う上でのメリット・デメリットでした。 このベビーサークルを使って以来、快適にすごせています。
朝気づいたら布団から居なくなってることもないし、少しの間一人で中で遊ばせていても危険はありません。
ベビーサークルと言えば遊ぶ場所として使うことが多いですが、同じ悩みを持っている人は寝床に使うのもおすすめです!

娘の成長振り返り〜もうすぐ生後8ヶ月〜

はじめに

早いもので娘はもうすぐ生後8ヶ月、産休育休に入ってから9ヶ月が経った。
まだ8ヶ月とも感じるし、もう8ヶ月とも感じるし不思議な感覚がある。
8ヶ月間、色んな出来事、色んな感情を経験した。
久しぶりの人にお会いすると「子育てどう?」「やっぱり大変?それとも楽しい?」と必ず聞かれるけどいまだに一言で答えるのは難しい。
「かわいい!幸せ!産んで良かった!」とも言えるし、「大変!」とも言える。
でも2つの感想は矛盾するものではなく、両立するんだよね。

日々成長していく娘の貴重な一瞬を振り返って、その時の感じたこと、思ったことを少しでも消化するために、少しずつまとめていきたいと思う。

尚、子育ての何が大変かは夫氏が良い記事を書いてるので是非。 a-tarime.blogspot.com

まずは最近の娘の近況をば。

※ここに書かれているのはあくまで個人の体験です。
育児や子供の成長過程は大変個人差が大きいので「こんな人もいるんだ」くらいのライトな気持ちでお読みいただければと思います。

ここ一ヶ月の娘の成長記録

安定のつかまり立ち & 伝い歩き

生後6ヶ月ごろ、つかまり立ちに成功して以来、立つのが大好きで日中起きてる間はほとんど立ってる娘。(疲れないのかな…)
立ち姿はしっかり安定してる。
立たせたままおむつを変えたりズボンを脱がせたりしても倒れない。

f:id:empitsu88:20181106155251j:plain
伝い歩きも余裕

拍手ができるようになった!

「自分の手を勢いよく合わせると音がなる」ということを覚えたらしく、
嬉しいとき、テンション高いとき、手をパチパチさせるようになった!
もちろん全力の笑顔つき。かわいい。
そしてこっちが拍手すると一緒にパチパチしてくれる。かわいい。

新生児の頃着てた服はもうサイズアウト

肌寒くなってきたので新生児の頃着ていた長袖を着せてみると、もうパツンパツン。
一応服のサイズは50-70で身長70未満の娘ならまだ着れるはずなんだけど、
洗濯による縮みもあり、手も足もつんつるてんに…。
7ヶ月でこんなに大きくなったのか〜と感慨深い。

f:id:empitsu88:20181106155356j:plainf:id:empitsu88:20181106155413j:plain
左が生後7ヶ月、右が生後1ヶ月で同じ服。

「ママ」「パパ」言ってる風の泣き声

喃語が発達してきて、発音のバリエーションが増えてきた。
泣いてるは特に饒舌で、「ま゛ーま゛ぁーー」とか「ぱぱ、ぱぱー」とか発声しているときもあるけど、果たして「ママ」「パパ」という意味で言ってるのかは不明…。

喃語って捉えようによってはどうとでも聞こえるけど、みんな「最初の言葉」ってどうやってわかるんだろう?

離乳食進捗

モグモグ期に入ったので、一気にいろんな食材が試せるようになった!
こんだけの食材を進められた。

  • 卵黄
  • 鳥ささみ
  • 鳥胸肉
  • 牛乳
  • ツナ缶
  • 納豆
  • 高野豆腐
  • わかめ
  • 青のり
  • ベビーせんべい

だいぶ人間らしい献立に近づいてきた。
でもまだ上手にモグモグできないみたいで、鶏肉や高野豆腐など、食感がしっかりしたものは、細かくすりつぶしても口に入ると苦手な様子。
いつもおかゆや豆腐と一緒に混ぜて、飲み込みやすくしてから与えてる。

相変わらず食事中は、食べかすや椅子の部品をいじって遊ぶのに夢中で、全然口を開けてくるないのだけれど、
こっちが何かを食べていると興味を持って食べたそうにしてくれるようになった。

どんどん少なくなってくる赤ちゃんぽさ

常に動き回ってるので前開きのタイプは着せるのが大変に…。
着せる服も頭からかぶせるセパレートが多くなってきた。
こういう服を着てると赤ちゃんというより女児って感じに見える。
どんどん成長して嬉しくなると同時に、一抹の寂しさも…。

でも、授乳中や寝起きでぼんやりしてるときは、赤ちゃんみがあってかわいいのだ…。

f:id:empitsu88:20181106155647j:plain

寝ているときは赤ちゃんみがあってかわいい

夕寝がすっかりなくなった

これまで娘は2時間ちょっとで眠くなっていたけど、起きてられる時間が、2時間半、3時間と少しずつ長くなってきた。

そのせいか、夕方のお昼寝をすることがほとんどなくなった。
寝かしつけてもギャンギャン泣いて全く寝ないので…。

ただ、そのせいか1日のトータルの睡眠時間が12時間台になることもあって、もう少し睡眠時間を確保したいなあ、というのが直近の悩み。

f:id:empitsu88:20181106153335p:plain
娘の睡眠記録。

夜泣きも少なくなった!

深夜に1〜2回あった夜泣きも、だんだん少なくなってきた。 朝、やけにスッキリ目覚めて、「あれっ、今日もしかして夜泣きなかった??」となることがしばしば。

時刻 行動
6:30 起きる・授乳
9:00 授乳・朝寝
10:00 起きる・軽く授乳
11:00 離乳食
12:30 授乳・昼寝
14:30 起きる・授乳
17:00 離乳食・授乳
18:00 お風呂
19:00 授乳・就寝
24:00 授乳・再び就寝
4:00 授乳(あったりなかったり)
6:30 起きる

授乳は6〜8回。
この月齢の割には回数が多いみたいだけど、
授乳しないと寝ないし、すぐ飽きて一度にたくさん飲まないときが多いので未だこの回数。
回数が減ってく気配はまだない…。

f:id:empitsu88:20181106153403p:plain
授乳の記録。

Vue CLI 3 x Atomic Design × Storybookを使ったコンポーネント開発を試す【環境構築編】

はじめに

先日「Atomic Design ~堅牢で使いやすいUIを効率良く設計する」を読みました。

Atomic Design ~堅牢で使いやすいUIを効率良く設計する

Atomic Design ~堅牢で使いやすいUIを効率良く設計する

こちらの本では、Atomic Designの考え方だけでなく、ReactやStorybookを使った具体的な実装方法まで詳しく解説されています。
早速試してみたい!と思い、せっかくなのでVue.jsで試してみました。

まずは環境構築から始めます。
本当はComponent作成時のTipsについてをメインに書きたかったのですが、思ってたより長くなってしまったので分割して更新していきまます…。

Atomic Designとは

Atomic Designについてはここでは割愛します。
素敵な記事がすでにたくさんあるのでそちらを参照してください。

Vue CLI 3とは

Vue CLI 3を使用すれば、webpackやらbabelやらの依存モジュールを個別にセットアップする必要がなく、簡単に本格的なVue.jsの開発を始めることができます。
ReactでいうCreate React Appみたいなものでしょうか。
今年2018年8月にアップデートされ、さらに強力なプラグインシステムとなりました。

Vue CLI 3.0 が来ました! — Vue.js

Storybook

Storybookとは、UIコンポーネントのショーケースを作成できるツールです。
いわゆるスタイルガイドジェネレーターですね。
Vue.jsとの親和性が高く、Vue.jsで開発したコンポーネントを直接呼び出して、簡単にスタイルガイドをビルドできます。

類似ツールPattern Lab

Atomic Designの提唱者であるBrad Frost氏のサイトではPattern Labが紹介されています。
こちらもスタイルガイドジェネレーターとなりますが、手動でsourceフォルダー配下にコーディングしたファイルを設置した上でビルドが必要です。
Vue.jsと連携するにはプラグインを入れないとだめそう、且つ、Vue.jsとPattern Labの連携方法については情報が少ないのでStorybookをオススメします。

環境

以下の前提で進めていきます。

Vue CLINode.js 8.11.0以降を推奨しています。

Node Version Requirement Vue CLI requires Node.js version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with nvm or nvm-windows.

Quote source:Installation | Vue CLI 3

nodenvのセットアップについては以下の記事にまとめています。

empitsu88.hatenablog.com

Vue CLI 3のインストール

公式の手順にしたがって@vue/cliをインストールします。

$ npm istall -g @vue/cli

インストールが成功したか確認します。

$ vue
-bash: vue: command not found

が、vue: command not found となっています。

vue: command not foundの解消

nodenvを使っているせいかわかりませんが、現在使っているNode.jsのbinにパスが通ってないようです。

参考:

上記の記事を参考に、npm bin -g$PATHに追加します。

$ npm ls -g --depth=0
/Users/hoge/.nodenv/versions/10.13.0/lib
├── @vue/cli@3.1.0
└── npm@6.4.1

$npm root -g
/Users/hoge/.nodenv/versions/10.13.0/lib/node_modules
$ls /Users/yoshie/.nodenv/versions/10.13.0/lib/node_modules
@vue    npm
$npm bin -g
/Users/hoge/.nodenv/versions/10.13.0/bin
$ls /Users/hoge/.nodenv/versions/10.13.0/bin
node    npm    npx    vue
$echo 'export PATH=$PATH:`npm bin -g`' >> ~/.bash_profile
$source ~/.bash_profile
vue --version
3.0.5

Vue.jsのプロジェクト作成と実行

$ cd ~/works/ # プロジェクトを設置したい任意のフォルダに移動
$ vue create vue-cli-sample

対話形式で、使用する機能を選択します。

今回は以下のように選択しました。

Vue CLI v3.1.0
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, Vuex, CSS Pre-processors, Linter
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS
? Pick a linter / formatter config: Prettier
? Pick additional lint features: Lint on save
? Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? In dedicated config files
? Save this as a preset for future projects? (y/N) N
  • BabelとVuexを使う
  • CSSプリプロセッサはSass/SCSS
  • ESLint + Prettierによるコードの自動整形を保存時に行う
  • Babel, PostCSS, ESLint, などの設定は、package.jsonではなく固有のファイルで管理する

プロジェクトの作成が完了すると、以下の通り、必要なファイルがセットアップされた状態になります。

f:id:empitsu88:20181102170526p:plain

一度、以下のコマンドでビルドしてみます。

$ npm run serve

コンソールに表示されたURL http://localhost:8080/ などをブラウザで開くと、素敵なページが仕上がってます。

f:id:empitsu88:20181102170535p:plain

新しいGitHubリポジトリを作成する

公式のヘルプを参考に、GitHubで新しいリポジトリも作っておきます。

Vue CLI 3で作成したプロジェクトではあらかじめgitの初期設定がされており、自動で.gitignoreREADME も作成されています。
よってGitHubでのリポジトリ作成時にこれらのファイルの作成は不要となります。

リポジトリ作成時の設定:

  • Repository name: vue-cli-sample(任意)
  • Initialize this repository with a README: no
  • Add .gitignore: None
  • Add a license: 任意

gitへのfirst push

作成したリポジトリのclone用URLを使ってリモートリポジトリの追加とpushを行います。
vue createで作成されたプロジェクトファイルはすでにすべてのファイルがcommitされているので、pushするだけでOKです。

$ git remote add origin git@github.com:empitsu/vue-cli-sample.git
$ git push -u origin master

push時にエラーが出た場合

もし、GitHubで新しいリポジトリを作成する際にREADME.gitignoreを作っていたらpush時にエラーが発生します。

$ git push -u origin master 
To github.com:empitsu/vue-cli-sample.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:empitsu/vue-cli-sample.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

まずはgit pullしてみる

hint にあるようにgit pullをしてみます。

$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master

--set-upstream-toを使ってリモートブランチの紐付け

リモートブランチを指定しろと怒られるので、git branch --set-upstream-to を使ってリモートブランチとローカルブランチの紐付けを行います。

$ git branch --set-upstream-to=origin/master master 
Branch master set up to track remote branch master from origin.
$ git pull
fatal: refusing to merge unrelated histories

が、fatal: refusing to merge unrelated histories となってしまいます。

--allow-unrelated-historiesを使ってmerge

無関係なヒストリを持つ2つのブランチをマージするために、--allow-unrelated-histories を指定します。

参考:初めてGitHubリポジトリにpushしたらrejectedエラーになったときの対応メモ - Qiita

$ git fetch
$ git merge --allow-unrelated-histories origin/master

これでリモートの内容が取り込めましたので、あとは発生したコンフリクトを解消するだけです。

$ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both added:      .gitignore
    both added:      README.md

checkout --oursでコンフリクト解消

エディタで不要な箇所を削除してもいいのですが、以下のコマンドを使えば一発でローカル側を優先できます。

$ git checkout --ours README.md
$ git checkout --ours .gitignore

解消したコンフリクトをcommit & push

$ git add .
$ git commit # コミットコメントを入れて`:wq`

これで無事pushができるようになりました。

$ git push -u origin master

プロジェクトフォルダー内でNode.jsのバージョンを固定

nodenvでノードのバージョンをプロジェクトフォルダー内で固定しておきます。

$nodenv local 10.13.0

Storybookのインストール

Storybook公式のスタートガイドである、 Starter Guide Vue に記載の方法はどうやらVue CLI 3に対応してないようです。
そこで vue-cli-plugin-storybook というプラグインを使います。

vue-cli-plugin-storybook - npm

プラグインを追加する前に、一度commitしておきましょう。

$ git add .
$ git commit

公式サイトのWARNINGに記載があるように、vue add を実行すると既存のファイルが変更されるからです。

WARNING
It is recommended to commit your project's current state before running vue add, since the command will invoke the plugin's file generator and potentially make changes to your existing files.

Quote source: Plugins and Presets | Vue CLI 3

vue-cli-plugin-storybookを追加

vue addコマンドでvue-cli-plugin-storybook を追加します。

$ vue add storybook

vue addを使う際は、package名のvue-cli-plugin-の部分を省略して書くことができます。

Without the @vue prefix, the command will resolve to an unscoped package instead. For example, to install the 3rd party plugin vue-cli-plugin-apollo:

# installs and invokes vue-cli-plugin-apollo
vue add apollo`

Quote source: Plugins and Presets | Vue CLI 3

https://github.com/vuejs/vue-cli/issues/1244

Storybookのビルド

下記のコマンドでStorybookがビルドできます。

$ npm run serve:storybook

warningがいくつか出ますがCompileには成功します。
コンソールの最後に記載されたURL(http://localhost:6006/など)をブラウザで開くと、
サンプルのボタンがStorybookに掲載されています。

f:id:empitsu88:20181102200825p:plain

ESLint + Prettierの自動整形の設定をする[2018.11.7追記]

初期設定では、ESLintとPrettierの設定がちぐはぐで
「Prettierが自動整形でセミコロンを勝手につけた結果、ESLintではセミコロンでwarnを出す設定になってるためwarnが大量に出る」
なんてことが起こってます。
先の大量のwarnがそのためです。

Prettierの設定をESLintの設定に合わせて変更します。

  • .eslintrc.js
   rules: {
    "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off"
+    'prettier/prettier': [
+      'warn',
+      {
+        singleQuote: true,
+        semi: false,
+        trailingComma: 'none'
+      }
+    ]
   },

これで、整形がされてもwarnがでなくなりました。

参考:

これで、一通りのセットアップが完了しました。
次回は、Atomic Designの各コンポーネントを作成していきます。