mochikoAsTechのdig日記

当方好きなコマンドはdigです!お友達から!!よろしくお願いします!!!

#技術書典 10で「#AWSをはじめよう」の改訂第2版を出しました

2020年12月26日(土) から2021年1月6日(水) にかけて、技術書典オンラインマーケットにて技術書典10が開催されています。

techbookfest.org

技術書典10で私が出した新刊は、「AWSをはじめよう 改訂第2版」です。

f:id:mochikoAsTech:20210104171303p:plain

弊サークルの書籍一覧はこちら。

techbookfest.org

AWSをはじめよう」は、2018年の技術書典5で初版を出してから、約2年が経過していましたが、未だに購入くださる方がいて、そのたびに「ありがたやー」と思いつつ、一方で「取り扱っているOSも古いし、AWSの画面もどんどん変わっていくし、S3のバケット名称のところにちょっと落とし穴があるし、なんだか申し訳ないな…」という気持ちがありました。

そこで改訂第2版では、次のような変更を行いました。

  • 取り扱うOSがAmazon Linux(CentOS6系)からAmazon Linux 2(CentOS7系)になりました
  • MySQLは5.7から8.0になりました
  • 使用するWordPressプラグインが変わりました
  • WordPressからS3に繋ぐ際の権限管理が、アクセスキーIDとシークレットアクセスキーを使う方法から、IAMロールを使う(より安全な)方法に変わりました
  • S3のバケット名が一意になるように修正しました
  • Auto Scalingで使用していた「起動設定」を、後継の「起動テンプレート」に変更しました
  • 環境構築の手順を見直し、画面のキャプチャもほぼ全て撮り直しました

諸々アップデートできたことで、今はほっとしています。なお過去に初版をお求めいただいた方は、あとがきもしくはダウンロードカードに記載のパスワードを用いて、改訂第2版も無料でダウンロード可能です。

そして「紙で欲しかった!もう再版しないんですか?」というお声もいただいていたので、技術書典10では「AWSをはじめよう」を含め、以下の4種類を各100冊ずつ用意しました。技術書典オンラインマーケットなら1月6日まで送料無料で買えるので、紙で欲しい方はこの機会にぜひー。

ちなみに「はじめようシリーズ3部作」の位置づけはこんな感じです。

f:id:mochikoAsTech:20210104180843j:plain

既刊を少部数で印刷し直すのは、印刷単価がすごく上がるので、著者的には実は負担が大きいのですが、オフライン(会場)で直接「1部ください!」「はい、ありがとうございます!」ができない中で、それでも「紙の本が欲しい!」って言ってくださる方に届けられたらはちゃめちゃうれしいなぁ、という気持ちで刷っちゃいました。てへぺろ

最後に表紙と紹介POPと目次です!「2021年はインフラとかサーバとかAWSとか、もう少し詳しくなりたいなー」という方はぜひ!

f:id:mochikoAsTech:20210104171553j:plain

f:id:mochikoAsTech:20210104182428p:plain f:id:mochikoAsTech:20210104182431p:plain

f:id:mochikoAsTech:20210104171610j:plain f:id:mochikoAsTech:20210104171616j:plain f:id:mochikoAsTech:20210104171620j:plain f:id:mochikoAsTech:20210104171625j:plain f:id:mochikoAsTech:20210104171630j:plain f:id:mochikoAsTech:20210104171633j:plain

techbookfest.org

「なんかつらい…」を減らすために頼んでみた食べ物・飲み物

2020年2月末からWFH(在宅勤務)がはじまって、もうそろそろ2ヶ月が経とうとしてる。 日によって「特に理由はないけどなんかつらい…」という気持ちになるので、そういうのが続かないように、いくつか食べ物や飲み物を頼んでみたよ、という記録。*1

スナックミー頼んでみた

隔週でおやつが8種セレクトされて届く、というおやつサブスク。1回分が1,980円で送料無料。 前から気になってたので試してみた。

lp.snaq.me

結果はこんな感じ。

でも「わー、おやつ8種届いたー!」という喜びはあったので、試してみて良かったと思う。

好きな紅茶をわんさか頼んでみた

アフタヌーンティーの水出しアイスティーを何種類か買ってみた。

好きな飲み物がいつでも飲めるのはよき。 シャルドネダージリンは自然な香りと味で美味しかったので、残り2種も楽しみー。

www.afternoon-tea.net

コーヒーを頼んでみた

こんな感じで聞いたら、色んな方から「猫廼舎」と「チモトコーヒー」をお勧めされた。インターネットはやさしい。

猫廼舎」には「コーヒー豆5種類味見セット」、「チモトコーヒー」には「8種飲み比べセット」があって、どちらも楽しんでいます。ありがたや。

巣ごもりおやつに銀座ウエスト頼んでみた

デパ地下でよく見る洋菓子の老舗!銀座ウエストで普段なら買わない1枚200円!というお高めのクッキーをしこたま買ってみた。

ginza-west.online

砂糖とバターの味がして美味しい…つらい気持ちに砂糖とバターはてきめんに効くから好き…!

ばら売りしてくれて本当にうれしい。これは本当に買って良かった。(太るけど)

作り置きおかず宅配サービスを頼んでみた

これを読んだらめちゃくちゃ美味しそうだったので頼んでみた。

note.com

「野菜と肉おかずセットお一人様5000円8品(送料別)」を2人分頼んで、支払いは11,200円でした。 外食や出前って続けて食べると「疲れる」んだけど、こういう作り置きおかずは、親に持たせて貰ったご飯っぽくて疲れないのでよいなー。

届いたのはこんな感じ。

ちょこちょこ食べてるけど、新宿のデパ地下で買うお惣菜っぽい。「既にできあがってるおかず」が冷蔵庫にあると、「次のご飯どうしよ-」っていうのからひととき解放されるので、ストレスは減った気がする。

らでぃっしゅぼーやの「お試しセット」頼んでみた

まとめ買いすることで、スーパーマーケット行くのも2週間に1回くらいで済むようにしてたんだけど、状況が悪化していくのを見て「行かなくて済むなら行かない方がいいかなー」と思って、らでぃっしゅぼーや(宅配スーパー)のお試しセットを頼んでみた。

www.radishbo-ya.co.jp

高い!けど!今はお金で安全を買うのだ…家から出ないのだ…という気持ちで、定期申し込みもしました。 心配しすぎなのかもしれないけど「心配しすぎだったね」で済むならそれでいいか、と思って判断を安全側に倒しています。

どこまでやるべきか、今は分からないけど、その判断を迷ってることがもうストレスだったので、「安全側に倒すぞ」って決めてしまったことも、つらさを軽減する効果があったように思う。

そんな感じで、「なんかつらい…」を減らすために頼んでみた食べ物・飲み物でした。

最後にこちら、ランチに旦那様が作ってくれた仔羊の香草パン粉焼きです。大好きー。

f:id:mochikoAsTech:20200419180130j:plain
仔羊の香草パン粉焼き

*1:ちなみにWFHは設備整えてめちゃくちゃ快適にやってるので、それはそれで別に書きたい

みんなで確認しておくのはどうでしょう?大切なことだと思うんです!

SHIROBAKO Advent Calendar 2019の12日目です。

SHIROBAKOは定期的に見返しているので、最初に見たのはいつごろだったんだろう…?と振り返ったところ、2015年でした。
誰かに勧められて見始めたような気がするけど、もう何も思い出せない。


全力で走るために、ここで立ち止まって前提を共有しよう

#02 あるぴんはいます!」で、ただでさえスケジュールが押しているのに、監督が「あるぴんが最初に出会ったのはお姉さんだったわけダーッ!」みたいなことを言い出して、なんでそういう設定を後から出してくるんだよ、というシーンがあります。

仕事をしていると、こういう場面に出くわすことはままあります。

聞いてない情報が突然出てくる。もしそれを取り込むなら、今やってたところも直さなきゃいけない。なんで今さらそういうこと言い出すんだよ!どうする?直すの?直さないの?とにかく決めてよ!これ以上の後出しはやめろよな!と怒りで体温が上がってしまうような場面です。

普通なら直すか直さないかを決めておしまいですが、みゃーもりはちゃんと、このトラブルの元になった状況そのものを解決しようとします。

そこで出てくるのがこの台詞です。

今回の作画を直すとして、作業に入る前に、もっかい「あるぴん」や「えくそだすっ!」のキャラについて、みんなで確認しておくのはどうでしょう。
大切なことだと思うんです。

これってつまり「期限に向かって全力で走るために、ここで立ち止まって前提を共有しよう」ということだと思います。

リリース日や入稿の〆切といった「期限」が迫っていると、とにかく早く走りたくなりますが、情報や解釈の共有をしておかないと、結局後出しや迷いが妨げになって全速力で走れなくなります。

ひとりのキャラクター、ひとつのルール、ひとつの仕様、みんなで「同じことを考えている」と思っていても、実は細部で解釈が違った!ということはよくあります。

恐らくここで「あるぴん」や、「えくそだすっ!」のキャラについて、「いちごショートが好き」とか「良くも悪くも脇が甘い」みたいなイメージの共有をせずに進んでいたら、もっと先の話数でさらなる後出しが発生して、ぷるキューに代わる新たなネットスラングが生まれてしまう世界線があったように思います。

みゃーもりはすごい!えらい!

SHIROBAKO好きに勧める本

ちなみにこういう「好きなものに対するひたむきで純度の高い情熱」にぐっとくる人は、辻村深月の「ハケンアニメ」という小説もきっとぐっとくるはず。

お勧めだー。

adventar.org

取扱説明書そっくりな「テクニカルイラストを描く」はいいぞ!

本記事は「【推し祭り】技術書典で出会った良書 Advent Calendar 2019」の5日目の記事です。

adventar.org

どの本を推すか、技術書典で買った本を全部並べて考えてみたけど、ここはやっぱりいちばん好きな本を推したい。 ぬっきぃさんの「テクニカルイラストを描く」だ!

nukkey2017.booth.pm

f:id:mochikoAsTech:20191205085933j:plain
「テクニカルイラストを描く」の表紙。BOOTHより引用

「テクニカルイラストを描く」ってどんな本なの?

取扱説明書に載ってるイラストの描き方を解説した本!

例えば家電を買うと、それに取扱説明書が付いてくる。「取扱説明書」という時点で既に脇役なのに、さらにその取扱説明書のイラストの描き方を説明した本。脇役の脇役っぽくてとてもよい。

f:id:mochikoAsTech:20191205092724j:plain
「テクニカルイラストを描く」の目次。BOOTHより引用

どこが推せるポイントなの?

  • すごく取説っぽい装丁になっているところ
    • 横長の薄い冊子で、表紙もサイズも手触りもすごく取説っぽくてきゅんとする
    • 買ってきた加湿器の段ボールを開けたらそこに居そうで最高
  • 苦労するポイントの話や裏話が面白い
    • 線の太さにルールがあるとか
    • 見えない部分をどう表現するのかとか
    • 向きを矢印で説明するときの描き方とか
  • 組み立て方を分かりやすく伝えるために、色んな創意工夫がされてたんだなと気付く
    • これ読むと、押し入れから取説を出して改めて見たくなる
    • そうか、取説って人が書いてるんだよなという当たり前の事実に驚く
    • そういえばレゴの組み立てマニュアルって文章なしでイラストだけだな!と驚いたりする

読むとなんかの役に立つのか?

  • あなたが取説を書く人でなければ、今すぐ役に立つような知識は得られないと思うよ!
    • でもすごく面白いよ
    • 「面白い」というだけで十分読む理由になるので安心されたい
  • ただたのしく読んだだけなのに、後々になって「そういえば役に立ってるかもな」と思う本もあるので、すべての本は尊い
    • 守破離という言葉のように、まずは「基本ルール」を守って描いていて、その上にさらなる工夫があるんだなーと思ったのでした

ダウンロード版もあるけど、ぜひ冊子版を買って欲しい。(ほんとに取説そっくりなので) nukkey2017.booth.pm

HTTPステータスコードは「数字だけ」と「数字と文字」のどちらが返されるのか?

これは何?

  • 分からんぞ?ってなって、調べて、多分こうでは?っていうところまで辿り着いたけど、本当かどうかはまだ分かってない話

何が分からなかったの?

  • ウェブサーバにリクエストを投げたとき、レスポンスでHTTPステータスコードが返ってくる(ここまでは分かってるつもり)
  • 返ってくるHTTPステータスコードは「200 みたいな数字だけ」なのか、それとも「200 OK みたいな数字と文字の両方」なのか?が分からなかった

実際にリクエストを投げてみた

WSL(Ubuntu 18.04.1 LTS)からwww.yahoo.com

  • HTTP/2200 が返ってきた
$ curl --head https://www.yahoo.com/
HTTP/2 200
date: Fri, 15 Nov 2019 00:54:16 GMT
strict-transport-security: max-age=31536000
server: ATS
cache-control: no-store, no-cache, max-age=0, private
content-type: text/html
content-language: en
expires: -1
content-security-policy: sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-presentation; report-uri https://csp.yahoo.com/beacon/csp?src=ats&site=frontpage&region=US&lang=en-US&device=desktop&yrid=&partner=;
x-frame-options: SAMEORIGIN
x-xss-protection: 1; report="https://csp.yahoo.com/beacon/csp?src=fp-hpkp-www"
expect-ct: max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only"
content-length: 12

さくらのVPSCentOS release 6.10)からwww.yahoo.com

  • HTTP/1.1200 OK が返ってきた
$ curl --head https://www.yahoo.com/
HTTP/1.1 200 OK
Date: Fri, 15 Nov 2019 00:56:22 GMT
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Server: ATS
Cache-Control: no-store, no-cache, max-age=0, private
Content-Type: text/html
Content-Language: en
Expires: -1
Content-Security-Policy: sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-presentation; report-uri https://csp.yahoo.com/beacon/csp?src=ats&site=frontpage&region=US&lang=en-US&device=desktop&yrid=&partner=;
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; report="https://csp.yahoo.com/beacon/csp?src=fp-hpkp-www"
Expect-CT: max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only"
Content-Length: 12

WSL(Ubuntu 18.04.1 LTS)からgoogle.co.jp

  • HTTP/2301 が返ってきた
$ curl --head https://google.co.jp/
HTTP/2 301
location: https://www.google.co.jp/
content-type: text/html; charset=UTF-8
date: Fri, 15 Nov 2019 01:13:35 GMT
expires: Sun, 15 Dec 2019 01:13:35 GMT
cache-control: public, max-age=2592000
server: gws
content-length: 222
x-xss-protection: 0
x-frame-options: SAMEORIGIN
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000

さくらのVPSCentOS release 6.10)からgoogle.co.jp

  • HTTP/1.1301 Moved Permanently が返ってきた
$ curl -I https://google.co.jp/
HTTP/1.1 301 Moved Permanently
Location: https://www.google.co.jp/
Content-Type: text/html; charset=UTF-8
Date: Fri, 15 Nov 2019 01:20:48 GMT
Expires: Sun, 15 Dec 2019 01:20:48 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 222
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000

WSL(Ubuntu 18.04.1 LTS)から7net.omni7.jp

  • HTTP/1.1301 Moved Permanently が返ってきた
$ curl --head https://7net.omni7.jp/
HTTP/1.1 301 Moved Permanently
Date: Fri, 15 Nov 2019 01:22:54 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Vary: User-Agent,Accept-Encoding
X-Content-Type-Options: nosniff
Location: https://7net.omni7.jp/top
Content-Type: text/html; charset=iso-8859-1
Set-Cookie: lb.session.osz=!S/mVG1ZlvAacUoPMACvlP+YcZKUCT6QFwxr6nsi2KijB/22G23HZSZLuaeQFyqGCuYKUjqg58TZTxw==;Path=/;Domain=omni7.jp

さくらのVPSCentOS release 6.10)から7net.omni7.jp

  • HTTP/1.1301 Moved Permanently が返ってきた
$ curl --head https://7net.omni7.jp/
HTTP/1.1 301 Moved Permanently
Date: Fri, 15 Nov 2019 01:12:17 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Vary: User-Agent,Accept-Encoding
X-Content-Type-Options: nosniff
Location: https://7net.omni7.jp/top
Content-Type: text/html; charset=iso-8859-1
Set-Cookie: lb.session.osz=!jM+NMdGpeetXUnHMACvlP+YcZKUCT/lN+PpuVDXiNJIc+v3UJm4GjwIulP/ofHVwQi+MVSmUXjOfxm0=;Path=/;Domain=omni7.jp

RFCを読んでみた

The status-code element is a three-digit integer code giving the result of the attempt to understand and satisfy the request.
(意訳:ステータスコード要素は3桁の整数で、リクエストに対する結果を示してるよ)

The reason phrases listed here are only recommendations. they can be replaced by local equivalents without affecting the protocol.
(意訳:OKとかMoved Permanentlyとかのreason phrasesはあくまで推奨事項なので、同等の何かに置き換えられるよ)

取りあえず辿り着いた結論

  • 今回リクエストを投げてみた結果だけ見ると、 HTTP/2 だと「数字だけ」、 HTTP/1.1 だと「数字と文字」が返ってきているように見える
  • サーバにリクエストを投げたとき、レスポンスヘッダで何かしらのHTTPステータスコードが返ってくるけど、そのとき200301 のような「数字のみ」が返ってくるのか、200 OK301 Moved Permanently のような「数字と文字」が返ってくるのかは、ウェブサーバ(ApacheなのかNginxなのか)や、プロトコル(HTTP/1.1なのかHTTP/2なのか)や、その上のアプリケーションで何を返してるのかに依るっぽい

誰か教えて

  • HTTP/2 だと「数字だけ」、 HTTP/1.1 だと「数字と文字」が返ってくる、が本当なのか?それとも今回たまたまそういう結果になっただけなのか?
  • RFCで推奨しているのはどっちなのか?

追記

  • 早速りんごさんが教えてくれた
  • わかめさんも教えてくれた

  • というわけで、詳しくはこちらのエントリにありますが、レスポンスヘッダの1行目であるstatus-lineは「HTTPバージョン(スペース)3桁のステータスコード(スペース)reason-phrase」で構成されるけれど、reason-phraseは省略可能、というのがRFC7230(や、改訂前のRFC2616)で定義されているそうですー。

    • status-line = HTTP-version SP status-code SP reason-phrase CRLF

blog.magnolia.tech

さらに追記

  • 高橋カヲルさんも教えてくれた

LINEでテクニカルライターの仕事をはじめました!

という訳で10月初旬からLINEでテクニカルライターの仕事をはじめました。

私も今回お誘いをいただくまで、

  • テクニカルライターという職種があること
  • LINEにはテクニカルライティング専門のチームがあること

をどちらも知らなかったんだけど、あるんです…驚き…!

どんなお仕事なの?は以下にありますが、端的に言うとデベロッパー向けのドキュメントを書くお仕事です。

linecorp.com

無職からいきなり週5フルで働ける気がしなかったので「週3で時短とかいけますか?」と聞いたら即確認&了承してくれて、そういうところも「大きい会社なのに柔軟ですごい…!」という気持ちになりました。

今までインフラエンジニアだったのでテクニカルライターとして働くのは初めてですが、「やったことないけどやってみる」の気持ちで謙虚に頑張るぞー。

ちなみにテクニカルライターは現在も募集中とのことですので、お気軽にご連絡ください。

Re:VIEW2の原稿に色々書き足してRe:VIEW3.2でPDF吐き出したらfootnoteでエラーが出た話

何が起きた?

  • Re:VIEW//footnote を1つ追加したら、エラーが出て docker-compose run --rm review rake pdf が通らなくなった
  • Re:VIEW開発者の@kmutoさんが助けてくれて無事エラーが解消した

どうやったら解消したの?

  • エラーが出たのと同じ章にあるコラム内の注脚はコラムブロック( ===[column] から ===[/column] まで)の外に出す

詳しく

  • もともとRe:VIEW2系で書いてた「DNSをはじめよう」の初版原稿があった
  • そこに色々書き足して、改訂第2版はRe:VIEW3.2の環境でPDF吐いてた
  • なんだけど @<fn>{nameSpace} を追加した瞬間にエラーで docker-compose run --rm review rake pdf が通らなくなった
    • footnoteの名前を変えてみたり @<fn>{nameSpace}//footnote[nameSpace][] の位置を変えてみてもだめ
    • エラーメッセージは色々出てたけど、その中に ./domain.tex:651: LaTeX Error: Counter too large. があった
  • うんうん悩んでたらRe:VIEW開発者の@kmutoさんがIssueを投げてくれた github.com
  • Issueから転載すると、こういうことだった
## エラー理由
columnブロック内に//footnoteを入れてしまうと、

- Re:VIEW2では何も考えていなかったので//footnoteをコラムの中に入れるとコラム単位で脚注がa,b,cの振り直しでつき、コラムの外に置くと脚注が「消える」という極めてわかりにくい挙動になる。Re:VIEW3では、column脚注を普通の脚注にするためにちょっと内部で特殊なことをして本文採番と合わせるようにしている(footnotemark+footnotetext)。
- ただし、//footnoteをコラムの中に入れるとa,b,c...というカウントになるが、本文採番に基づくのでおかしなことになる。
- 今回の場合、本文も合わせて …、27、28とカウントしてきて、ここはコラム内なのでabc採番で「28」を表現しようとして、zを超えてしまってcounter too largeエラーになる。

## 対処
脚注本体である `//footnote` はコラムの終わりの後ろに置く。
  • つまりコラム内の注脚の採番がRe:VIEWの2系→3系で変わったことが原因だった
  • コラム内の注脚はコラムブロック( ===[column] から ===[/column] まで)の外に出すのがよさげ
    • 章内に注脚なんか5,6個しかないよー、26個を超えることは絶対ないよー、という人はコラム内に書いてても問題なさそう