WEB+DB PRESS Vol.107にCircleCI特集を寄稿しました。

今月24日発売のWEB+DB PRESS Vol.107に実践CircleCIという特集を寄稿しました。WEB+DBへの寄稿は、Vol.58のEmacs、Vol.86のAtomに続いて3回目となりますが、初めてエディタ以外の内容で記事を書かせてもらいました。


なぜCircleCI特集を書いたのか。

今回、WEB+DBにCircleCI特集を書いた一番理由は、WEB+DBの献本者リストから外れてしまったため、何か寄稿しなければWEB+BDが貰えなくなってしまったからというのが大きな理由です。

WEB+BDでは、原稿を書くと献本者リストにリストアップされ、しばらくの間、献本が行われるという素晴しい仕組みがあるのですが、献本者リストには定員があり、古い人から順番に卒業してしまう制度となっています。前回、寄稿したのが2015年だったのですが、それから約3年が経ち、ついに2010年の寄稿から初めて献本者リストを卒業してしまったため、何か記事を執筆しなければならない必然性が生まれたのです。

そこで、企画したのがCircleCI特集でした。

結果として、企画が無事に通って、今号に掲載されることになったので、これからしばらくWEB+DBに困らない日々を過ごせそうです。本当にありがとうございました。

というわけで、WEB+DBが読みたければ、買う以外にも記事を寄稿するという選択肢があるので、みなさまにもぜひ寄稿をオススメします。WEB+DB編集部はとても良い方ばかりなので、直接問い合わせても無下にされることはないですし、何なら僕に連絡を貰えれば繋ぐことくらいは可能です。

CircleCI特集の読みどころ。

そんな諸事情はさておき、CircleCI特集の読みどころを紹介します。

32ページもあるので、一通り全部解説したつもりですが、読者の方にとってもっとも嬉しいのは次の2点だと思います。

  1. CircleCIの設定をほぼ網羅している
  2. CircleCI 2.1に対応している

CircleCIはドキュメントが充実しているのですが、現時点では日本語のドキュメントはありません。第3章『基本設定』では、膨大なCircleCIのドキュメントの中から、マイナーなものを除いてほぼ網羅的に解説しています。こちらが日本語で読めるのは、なかなか価値があるのではないかと思います。

なお、第2章と第3章は、僕がジェダイマスターとして、彼が大学生の頃から育てているパダワンのurawayに執筆してもらいました。彼はとても英語が堪能なので、お陰で僕が翻訳するよりも正確な記事を書いてもらうことができました。

CircleCI 2.1 とは、CircleCI-Public/config-preview-sdkでまとめられていた、新たな設定記法です。

執筆開始の段階では陰も形もなく、その後、1.0終了間際(8月末)でプレビューとして提供され、9月末に全体に提供されるようになった設定を10月発売の雑誌に盛り込むのはスケジュール的になかなか厳しいものがあり、編集の池田さんには締切とか締切とかの面で大変ご迷惑をおかけしましたが、なんとか読者の方に提供ができて良かったです。

僕とCircleCIの出会い。

最後に僕とCircleCIとの出会いについて軽く思い出してみます。

確か、最初にCircleCIを使いはじめたのは2014年くらいで、それまで有料プランでしか利用できなかったプライベートリポジトリが、現状のように1コンテナに限り無料で利用できるようになったタイミングだと記憶しています。

Travis CIやJenkinsなどと比べて、とても簡単に動かすことができ、動作も早くキャッシュやアーティクルなども使えるため、これは良いと思って本格的に使い始めました。その後は仕事でも有料プランを利用して使い続けていたのですが、2016年頃からDockerを本格的に使うようになり、CircleCIのDockerのバージョンが確か1.11くらいで止まってしまっていたことに不安を感じるようになっていました。

ですがCircleCIは、Dockerをネイティブでサーポートする現在の2.0を発表しました。この2.0では、自由にDockerを利用できるようになり、お陰で個人的に一安心したのですが、この変更はこれまでの設定と互換性がないメジャーバージョンアップであり、CIのようなインフラに近いサービスとしては異例の対応となりました。

しかし、CircleCIは1年以上もの時間をかけて、丁寧に移行のアナウンスやサポートを行い、先日の2018年8月末で無事に1.0が終了となり、完全に2.0へと移行しました。これはサービスの非互換バージョンアップを行う手法として、後世において非常に参考になる出来事でした。

お陰で、今回のCircleCI特集では1.0については一切触れずに執筆が行えることとなり、解説内容も2.0以降の機能を存分に使ったものとなったので、書き手と読み手の双方にとって、満足度の高い内容にすることができました。もし、1.0が生き残り続けていたら、その差分についての解説を行わなければならず、内容がボリュームダウンしていたことでしょう。

勇気のある決断をして無事に移行を成功させたCircleCIの栄誉を称えずにはいられません。本当にお疲れ様でした。

おわりに。

今回、3回目の寄稿にして、初の特集1となり(別に特集2、3で違いがあるわけではないのですが)、表紙にでっかく載っているので責任感を感じてドキドキしていますが、良い文章を書いたつもりなので、ぜひみなさんに見てもらえると嬉しいです。

最後になりますが、本特集の執筆にあたり、今回も担当していただいた技術評論社の池田さんに厚く御礼申しあげます。また、ひょんな機縁からお会いしてレビューをしていただいたCircleCIの金さんにも重ねて御礼申しあげます。

はてなダイアリーも終わりを迎える平成の末ですが、まだ移行先が決まっていないため、未だにはてなダイアリーでブログを書いてしまいましたが、僕もCircleCIのように頑張ってブログを移行させたいと思います。

WEB+DB PRESS Vol.107

WEB+DB PRESS Vol.107

  • 作者: 大竹智也,浦井誠人,平野朋也,村田紘司,上野学,末永恭正,久保田祐史,吉川竜太,上野博司,牧大輔,西郡卓矢,桑原仁雄,小林謙太,竹馬光太郎,池田拓司,はまちや2,竹原,長谷川智希,北村壮大,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/10/24
  • メディア: 単行本
  • この商品を含むブログ (1件) を見る

0歳児のための便利育児グッズ(生活必需品編)。

年末に生まれた我が子もお陰様ですくすくと成長し、気がつけば7ヶ月目が経ちました。

僕の回りでは最近再び出産ラッシュを迎えており、同世代の子供が増えているのですが、そんな知人達に向けて、この7ヶ月の間で僕が購入した便利育児グッズをレビューとともに紹介したいと思います。

オムツ関連。

最初はオムツ関連です。

オムツはメリーズを使っています。オムツ選びのポイントは、うんち漏れと肌荒れだと思いますが、とりあえず、うちの子の場合はいままでウンチ漏れは一度もありません(いわゆる背中からうんちが漏れる現象)。また股の肌荒れもないため、現在も継続して利用しています(ついにLサイズになりました)。

ただし、子供の体格や肌によって異なると思いますので、1週間に2回漏れたり、肌が荒れたりしたら、すぐに他のメーカーのものを試してみるのが大事だと思います。

おしりふきは、このグーンのやつが大量でコスパがいい感じです。

オムツを捨てる専用のゴミ箱として購入しました。最初届いたときに20Lはでかいと思ったのですが、実際に使ってみたらすぐに溜まるので、これくらいで丁度良かったです。

ミルクしか飲んでなくても1ヶ月もすればうんちがめっちゃ臭くなるので、この袋はとても有効です。外出時にも数枚持ち歩いています。夏は生ゴミにも良いそうです。

保育園ではオムツに名前を書かないといけないのですが、面倒なのでこちらを使っていますがとても楽です。

ミルク関連。

次はミルクです。うちは最初の数ヶ月は母乳との混合で、保育園に通いだしてからは完全にミルクのみになりました。

アイクレオにした理由は、出産した産院で使っていたからです。他を試していないので何とも言えませんが、最も母乳の成分に近いそうです。

哺乳瓶は、当時Amazonですぐに届くのがメデラだったので、これを注文して使っています。特に飲みが悪いということもありませんでしたが、これも個人差がありそうです。

ローテを考えると3本では足りないので、4本〜6本くらいあったほうが余裕があって良いと思います。

標準で付いてくるニップル(乳首)がM(4ヶ月〜)なので、S(0ヶ月〜4ヶ月)を購入する必要があるのですが、いまAmazonを見たら品切れなので微妙ですね。ちなみに、最初はニップルに違いがあるのを知らなくてMであげたのですが、すぐにむせてやばかったです。

山善 電気ケトル

山善 電気ケトル

ちょうど今年の1月に発売されて、すぐに購入した電子ケトル。温度調節が60度から1度単位で調整可能なので、ミルクを入れるとき70度で湧かすことで最短で冷すことが可能です。

概ね満足しているのですが、1点だけ蓋が緩くなる傾向があるので、そのときはネジを締めましょう。

哺乳瓶の消毒は、レンジと湯煎と消毒液の漬け置きがありますが、レンジが圧倒的に楽です。なので、レンジ消毒用のケースは絶対に購入した方が良いと思います。

外出先でミルクを飲ませたい場合、お湯を持ち運ぶための水筒が必要になります。最近はどれでも保温性は十分だと思いますので、あとは哺乳瓶に注ぎやすい注ぎ口のものを選ぶと良いでしょう。

最後はスマートスピーカーです。うちにはGoogle HomeとEcho Plusがあるのですが、手が離せない状態でアラームやタイマーがセットできるスマートスピーカーはとても役立ちました。

具体的には3時間置きのミルクの時間を、ミルクをあげた後に「0時にアラーム」という感じでセットしたり、母乳を与える時間を「10分タイマー」などで測ったりしまていました。

ベビーカー関連。

お次はベビーカーです。

色々と見た結果、エアバギーにしました。理由は近所に坂が多いのでブレーキがあるものが良いだろうという判断です。実際にブレーキがあると、下り坂で力を使わずに半ブレで安全に下れるのでとても重宝しています。

最近ではフロムバースという0ヶ月から使えるバギーも登場したようですが、当時はなかったのでマキシコシというチャイルドシートみたいなものをアタッチメントと一緒にレンタルして装着していました。

エアバギー Air Buggy イーバギーホルダー オリーブ AB6536

エアバギー Air Buggy イーバギーホルダー オリーブ AB6536

その他、オプションです。エアバギーは確か背中のシートがないので、おそらく何かを買う必要があります。スマホを持ちながらの運転は危険なので、ハンドルに装着できるようにしました。

ドリンクホルダーは小荷物入れにもちょうど良く、純正は折り畳んだときにフレームに挟まっても壊れないようになっているので、純正を買って良かったです。フックは何でも良い気がします。

日避け用の膝掛けです。抱っこ紐でも使えるのが人気みたいで街中でも良く見ます。

【第3類医薬品】ムヒ・ベビーb 15g

【第3類医薬品】ムヒ・ベビーb 15g

虫除けです。保育園で塗るようにと指示されているのでムヒベビーを塗っておき、ベビーカーにはアウトドアボディスプレーをします。

アネッサ パーフェクトUV マイルドミルク SPF50+/PA++++ 60mL

アネッサ パーフェクトUV マイルドミルク SPF50+/PA++++ 60mL

日焼止めです。こちらも保育園でつけるように指示されているので購入して使っています。いまのところ肌荒れは特にありません。

お風呂関連。

まだまだ買いました。次はお風呂関連です。

ベビーバスは首が据わる3〜4ヶ月目までしか使わなくてよいので、折り畳めるこいつが良いと思います。ちなみに背もたれがあるやつが圧倒的に安心安全で楽ちんです。

タオルですが、オーガニックコットンが良いとのことで、Amazonオススメのこいつを6枚くらい買いました。

沐浴のとき、体に巻くためのガーゼが必要だったので、こちらを購入しました。

その他、顔を拭いたりするための小さめのガーゼとしてこちらを購入しました。

ワイズ DX風呂スノコ ブルー GR-001

ワイズ DX風呂スノコ ブルー GR-001

首がすわったら、寝かせて体を洗ったほうが楽なので、こちらを下に敷いて寝かせて一気に体を洗っています。だいたい10分くらいでお風呂を終えられるようになりました。

こいつの良いところは、分厚いので洗って立て掛けておけるため、清潔に保てること。だめなところはデカいのでスペースを取るところですね。

いわゆる首浮き輪のスイマーバ。0ヶ月でもこいつがあれば安心してお風呂に入れて遊ぶことができます。2ヶ月目くらいから壁をキックしてスイスイと楽しそうに泳いでいましたのでオススメです。

ボディソープです。僕がそもそもこれを愛用しているので、同じものを使っています。そのため、香りが自分と一緒のせいか、あまり赤ちゃんの匂いが分かませんでした。

風呂上がりの素肌ケアにこちらを塗っています。前は別のローションを利用していたのですが、ポンプが楽でいいですね。

寝床関連。

次は寝床関連です。

うちはベッドが低いので、床に寝かせられるやつにしました。これじゃないといけないわけではないのですが、寝返りをうつようになった今でも使えているので、まぁよい買い物だったかと。

布団付近の温度と湿度を計りたくて買いました。枕元に置いて常に監視しています。冬は意外と湿度や温度がが足りなかったりしたのが分かったので、色々と対策しました。

その対策のひとつがこちら。窓と布団の間に置いて冷気をカットしつつ温めました。これで寒かった(都内でマイナス4度になったのを覚えていますか?)今年の冬も常に20度以上をキープできました。

健康関連。

次は健康関連です。

体温計は、普通のもあるのですが、非接触タイプのこちらを購入しました。1秒で表面温度が計れるのですが、実測と比べてほとんどずれていませんので、とても楽です。

鼻水がひどいときに吸うように買いました。最初は使い方がよく分からなかったので、あまり吸えないなと思ったのですが、コツ(しっかりと鼻の中に入れて、角度を変えながら吸う)を掴んでからは十分吸えるようになりました。RSウイルスに感染したときに、とてもお世話になりました。

ピジョン ベビー ピンセット

ピジョン ベビー ピンセット

鼻クソようのピンセットですね。近所の薬局で売ってなかったので、結局Amazonで購入しました。

離乳食関連。

最後は離乳食関連です。

KINTO (キントー) すり鉢 ホワイト 16247

KINTO (キントー) すり鉢 ホワイト 16247

すり鉢がなかったので購入しました。すりこぎが木製ではないものが良かったので、こちらにしましたが、いい感じですり潰せています。

いわゆるチョッパーです。少量を微塵切りするために買いました。いまのところ、茹でて擦り潰すので、まだあまり活躍はしていませんが、楽なのは確かです。

バンボという重ためのイスです。友達の家で存在を知ってすぐに買いました。普通のベルトのないやつがあるのですが、ベルトありのこちらの方が離乳食には向いていると思います。ただ、テーブルはお腹が邪魔で使っていません。

プレートセットは自分で購入したわけではありませんが、知人にプレゼントで貰いました。

エプロン、まえだれことビブです。こちらはシリコン製で洗いやすいです。こちらも離乳食には必須アイテムですね。

まとめ。

とういわけで、Amazonの購入履歴からこれまで買ったアイテムを整理して紹介してみましたが、個人的にはどれも買って満足していますので、これから育児をする人の参考になれば嬉しいです。

他にもおもちゃなどがあるのですが、それはまた今度ということで。

Puppeteerを使った保育園システムとSlackの連携。

20180615031039

先日、amachangがブログを再開したということで、僕も再開しようかなと思いネタを考えていたのですが、まずは軽いジャブ程度に最近作った便利ツールを紹介してみたいと思います。

年末に生まれた我が子ですが、お陰様で無事にすくすく育っており、4月から0歳児で保育園に通っています。

その保育園は、ポピンズが経営しているのですが、保護者と保育園との連絡手段として、会員マイページが用意されており、ログインして連絡事項を確認できるようになっています。

ポピンズメモリー

いつでもどこでも確認できますし、紙や口頭で連絡するよりもミスもなくなりそうで、とても良い仕組みなのですが、セッションの有効期限がなかなか厳しいため、基本的に毎日ログインしないと確認できないようになっています。

そこで、情報を取得してSlackに定期的にポストするツールが欲しいと思って作成したのが「ポピンズメモリーレポーター」です。

ポピンズメモリーレポーター

ポピンズナーサリースクールの会員マイページ https://ps.poppins.co.jp/nursery/login/index にある連絡ページ「ポピンズメモリー」の情報を取得してSlackに通知を行うツールです。

READMEには、上記の説明を書いていますが、こちらはPuppeteerを使ったNodeアプリです。いわゆるスクレイピングによってポピンズメモリーという連絡ページから情報を取得して、Slackへと通知するわけですが、これをPuppeteerを使って実装してます。

PuppeteerはヘッドレスChrome(コマンドラインからChromeを操作する仕組み)をNodeから扱うためのライブラリです。この手のライブラリは他にもあるのですが、最近はPuppeteerが最も有力な候補になってきています。

ヘッドレスChromeはリアルなブラウザであるため、ブラウザ操作で行えることは基本的にすべて行えます。これをPuppeteerを通じて利用するということは、Nodeモジュールを活用して、さまざまなWebサービスとも連携させることが可能だということになります。

ポピンズメモリーレポーターの中でPuppeteerが行っていることは、

  1. ブラウザを開いてログイン
  2. リンクをクリックしてページを移動
  3. 必要な情報をコピーして取得

という感じであり、かつてのスクレイピングに比べると、とても原始的な内容となっています。ですが、原始的であるが故にページの解析はほとんど不要で、とても簡単に実装することができました。

ポピンズメモリーレポーター

情報を取得した後は、Slack公式のNode Slack SDKを利用して、上図のようにSlackにポストするだけになります。

Puppeteerの可能性。

実際に使ってみるとよく分かりますが、ヘッドレスChromeとPuppeteerの組み合わせはとにかく楽です。

その上、Dockerと組み合わせることで、ポータブルなパッケージにすることも可能であるため、ちょっとした業務ツールの作成などにもぴったりだと思います。実際にこの後、業務でデバイスをエミュレートしてスクリーンショットを撮るツールを作成したりと大変活躍しています。

このあたりに関しては、色々と知見が溜ってきているのでどこかで纏めて公開できればと思っています。

それではまた。

結婚、起業、出産

2017年の末は結婚、起業、そして出産の3のイベントが同時多発的に行われ、忘れられない大きな節目の年になりました。

どれも自分にとって今後の人生を変えるイベントですが、今回はその中の結婚と出産について語りたいと思います。

結婚

まずは結婚についてです。

結婚とは、一般的に婚姻届を提出する、あるいは結婚式を挙げることを意味するかと思います。そして、多くの人がその両方を行いますが、婚姻届を提出すると、どちらかの姓が変更されてしまうため、姓を変更したくない人からすれば、残念ながらわざわざ届出をしたくなるものではありません。

また、法律を調べた限りでは、夫婦2人だけの場合、婚姻届を出さなくても、デメリットとなることはほとんどないため、入籍は事実上、世間体のためにあるようなものであるという結論に至っていました。

しかしながら、子供が出来るとなると話は別です。

例えば、婚姻届を出さずに子供が生まれたとき、その子供を僕の子供であると認めた上で、自分の姓を名乗らせたい場合、事実上、裁判所で調停を行わねばならず、いきなりハードルが上がります。

調停を経ずに認知する方法として、最も手軽なものは、婚姻届を提出後に離婚届をすくま出すことです。ただしこの場合、もれなく戸籍にバツが付くこと、また親権はどちらか一方のみとなるため、気になる人にとってはあまり好ましい手法ではないかもしれません。

また、この方法の場合は、子供が生まれるために婚姻と離婚を繰り返さなければならず、その度に各種免許や法務書類などの書き換えが必要になるため、それなりの時間とお金のコストを支払う必要もあります。

さて、そこまで面倒な方法を検討したり、また調べたりする必要があるがあるのは、ひとえに夫婦別姓が認められていないからに他なりません。

最近では、サイボウズの青野さんの国に対して訴訟を行なっており、大変応援するところでもありますが、国では、夫婦別姓以外の方法として、旧姓の併記のような方法を検討していることが伝えられています。

しかし、この方法では、残念ながら姓を変えたくないという人にとってなんら解決になっていません。

こと、コストに関しては、青野さんの訴状理由(資産の名義変更による課税コスト)だけでなく、行政のシステムが夫婦別姓ではなく、旧姓の併記に対応した場合の開発コストも膨大との試算が明らかになっており、別姓を認める方が目的とコストの両面で優れています。

さて、ここまで婚姻と夫婦別姓について私見を語ってきましたが、結局、僕がどのような選択をしたかについてですが、答えは『相手の姓を変えさせた』になります。

理由としては、子供が生まれた上で、お互いの姓を使い続けるのであれば、婚姻からの離婚の方が生まれてすぐの子供が自分の子供になるため、保育園の入園手続きなどを考えると、調停よりま手続き面で容易であることが大きな点です。

そして、称する姓についての選択は僕の姓にしたのですが、これは結局のところ自分だけの希望ではなく、男1人の長男である僕の両親の希望を鑑みた判断となります。

つまり、一種の古い仕来たりのようなものに判断を後押しさせたところがあり、夫婦別姓に対する反対意見と根本的に似た部分があるため、なんとも後ろめたい気分があるのですが、それよりも何よりも、最も重大な事実としては、本心として望んでいない相手の姓を変えさせてしまつまたという事実は、僕の中で罪悪感と呼んでも差し支えないくらいの心傷を残しました。

本来幸せであるはずの婚姻は、実際に行ってみると、後ろめたさと罪悪感を感じるものであることであることが分かった出来事でした。

起業

次は起業についてです。

僕は2010年に最初の起業をしていますが、2015年に買収を受け、2016年に役員も退任しました。そして、2017年の11月に2度目の起業をしました。

今回の起業は、まったくの一人で始めた起業で、ホームページもまだありません。別に秘密裏というわけではありませんが、とくにまだ表に出せる情報もないので、ここでは詳細は語りませんが、非常に意義のある面白い事業だと思っていますので、いつかみなさんに発表できる日を楽しみにしています。

ちなみに、一人なのでぶっちゃけ売り上げが立ったり、他のメンバーが加入するまで登記する必要はなかったりするのですが、当時はまだ生まれてなかった子供の保育所の申し込みの関係で、時期を早めて登記した次第です。

世の中には自分で起業しないと、社会的に無職になってしまう人間もいるのですよ。

出産

最後は出産について。

もちろん生んだのは僕ではありませんが、母子共に健康にめでたく無事に第一子を授かることができました。

結婚願望というのは、昔からあまり強く持つことはありませんでしたが、子供は昔から欲しいと願っていたので、自分にとって最愛のパートナーとの間に無事に子供をもうけることができてとても幸せです。

妻の入院時は、基本的に毎日昼から病室に面会に行っていたため、おそらくナースの方々には、夜の仕事をしている人、あるいはヒモのように思われていた可能性があります。

現在は1ヶ月検診も無事に通過して日々、元気に育ってきています。今後、どのような成長を見せてくれるか楽しみながら、頑張っていきたいと思いますので、みなさま宜しくお願いします。

欲しいものリスト

例によって、欲しいものリストを作成しましたので、もしお祝いしてくださる方がおられましたら、宜しくお願いします。

http://amzn.asia/fU8rtC7

父と娘

SD10月号に『実践! エディタからのGit操作[Atom編]』を寄稿しました。

ソフトウェアデザイン2017年10月号と[改訂新版]Emacs実践入門

今月は、[改訂新版]Emacs実践入門が出版されましたが、それだけではなく、ソフトウェアデザイン2017年10月号の第1特集『これだけは知っておきたいGitのキホン』にも僕が寄稿した『実践! エディタからのGit操作[Atom編]』が掲載され、初めて同じ月に自分が執筆した書籍と雑誌が発売されました。

こちらは、タイトル通りEmacsではなく、Atomを使ったGitの操作に関する解説になっております。

ちなみに、出版社は両方とも同じ技術評論社ですが、Emacs実践入門はWEB+DB PRESSなので、Software Designとは編集部が異なるため、担当編集も別の方になっています。

GitHub for Atom。

今年のソフトウェアデザイン6月号でもAtomの記事を執筆しましたが、本号では、そのときにはまだ存在していなかったAtom 1.18 から導入された GitHub for Atomパッケージを使ったGit操作を中心に解説を行いました。

GitHub for Atom

GitHub for Atomは、これまで外部パッケージに頼るしかなかったGit操作をAtomから行えるようにしたパッケージで、その名の通りGitHubとも連携して現在ブランチのプルリクエストもAtom上で確認できるようになっています。

もちろん、より快適なGit操作を求めるのであれば、追加パッケージが必要ですが、Gitフローの範囲であれば、Atom標準機能で対応できるようになったことは大きいと感じています。

Atomの今後について。

最近Atomは、Atom IDEを発表しました。

Atom IDE

Atom IDEは、Facebook社と協力して開発が行なわれており、Facebookが提供するAtomパッケージ群Nuclideからのポートとなっています。最大の特徴は、Microsoft社が仕様を策定したLanguage Server Protocol(LSP)に対応している点で、これによって、より賢い補完やタグジャンプに対応可能となっています。

当初のサポート言語は、JS, Java, PHP, C#と少なめですが、今後、正式リリースに向けて徐々に対応言語が増えていく予定だそうです(既にRustとか対応したみたい)。

Atomは、柔軟な拡張性を利用してエディタの枠に囚われない利用方法を提案しており、ますます面白くなりそうなので、今後もしばらく目を離さないようにしたいと思います。

次に向けて。

今月は書籍と雑誌の2媒体で自分の成果物が世にでることになり、忙しかったですが、その分の満足感は十分得られたと感じています。

これで一旦執筆の仕事は空になりましたので(もし執筆の依頼をしたい場合は、いまがチャンスです。)、次に向けて頑張っていきたいと思います。

[改訂新版]Emacs実践入門を執筆しました。

[改訂新版]Emacs実践入門

いよいよ夏が終り、本格的な秋の始まりを感じだしてきた今日この頃ですが、みなさんいかがお過しでしょうか?

気がつけば1年ほどブログを書いておりませんでしたが、この度、9月22日に僕の3冊目の自著となる[改訂新版]Emacs実践入門が発売されたので、久しぶりのブログ更新となります。

昨年はAtom実践入門を上梓しておりますので、これで自身初の2年連続の出版となります。今回も色々と大変だったのですが、それ以上に今回もお世話になった技術評論社の池田さんは、おそらく僕以上のご苦労があったのではないかと思いますので、改めてお礼申し上げます。

なお、電子版をご希望の方は、PDF/EPUB形式がGihyo Digital Publishingから購入できます。

Emacs実践入門の改訂は約束された未来でした。

さて、昨年僕がAtom実践入門を出版したとき、多くの人から驚きの声を聞きました。そして、おそらく多くの人が、僕が再びEmacsの本を書いているとは思っていなかったのではないかと思います。

実を申せば、Atom実践入門を執筆するとき、Emacs実践入門の改訂はすでに約束された未来だったのです。そして、Atom → Emacsという順番はEmacsのバージョンアップのタイミングによって、決められていたのです。

メジャーバージョン対応への思い。

Emacs実践入門の改訂を行ないましょうという企画が持ち上がったタイミングは、たしか2015年の初頭でした。その時のEmacsのバージョンは24.4で、25のリリースが近付いているという噂がありました(実際にその後リリースされたのは24.5で、25.1がリリースされたのは2016年7月でした。)。

以前、執筆したときはの対応バージョンは23.4で、その後、わりとすぐに24.1がリリースされ、24の目玉機能であるELPAについて触れていたものの個人的はメジャーバージョンが変わってしまい、書籍の宿命とはいえ、少しだけ悔しい気持ちがありました。

そのため、次は少しでも長い期間メジャーバージョンに対応したいという思いがあり、まず、Atom実践入門を執筆し、その後、リリースされているであろう25に対応した形でEmacs実践入門を改訂したいと申し出ました(しかし、実際には執筆を開始したときにはまだリリースされていませんでした。)。

そして紆余曲折を経て、Emacs 25.1がリリースされ、万全の体制で25に対応した形で改訂を行なったのが本書になります。

22年前の脆弱性により、発売直前にマイナーバージョンが上がる。

そんなこんなで執筆が完了し、2017年4月にリリースされた25.2でバージョンをフィックスし、校正などもすべて終えて印刷所への入稿が終った9月11日、その事件は起きました。なんと、143日で25.3がリリースされてしまったのです。しかも、その理由が22年からあった脆弱性が原因だという話です。

Emacs Release Date Diff

書籍あるあるな出来事とは言え、何とも神の悪戯のような出来事でしたが、気を取り直し、発売までにEmacs25.3でも本書の内容がすべて動作することを確認して、サポートページの補足情報での告知を行なってもらいました。

ちなみに、Emacs実践入門の初版が出たあとにリリースされた24.1も、リリースまで133日とかなり早く、Emacs実践入門を執筆すると、Emacsがリリースされるというジンクスがあるのかもしれません。

Atomから得たフィードバックによる改訂への影響。

さて、書籍出版に関する裏話はこのくらいにして、次は改訂について僕がどのような考えをもって行なったのかを具体的に語ってみたいと思います。

本書の改訂にあたってで2つのエディタを本格的に学ぶことで得た知見は,本書の改訂にも存分に活かされています。と触れていますが、具体的には『7.5 プロジェクトベースの編集──projectile』の追加が最も大きな点です。

Atomはプロジェクト(リポジトリと置き換えても構いません)という概念があり、プロジェクト毎にウィンドウを作成してコードを編集するスタイルを推奨しています。かたや、Emacsはひとつのウィンドウですべてのファイルを開いて編集を行います。Atomを本格的に使ってみるまでは、これはあくまでスタイルであり、それぞれ善し悪しがあると考えていました。

しかし実際に、Atomを使ってみると、現代における開発環境の上では、プロジェクトベースの管理の方がより大きなメリットがあることに気付かされたのです。

具体的なメリットは、本書でも述べていますが、フレームワークの一般化による同一ファイル名の増加により、絞り込みが機能低下を起してしまったことが、その最たるものでしょう。

その他、大きな変更。

上記以外の初版からの大きな変更は次の通りです。

  • 拡張インストールをpackage.el (ELPA) に全面書き換え
  • Anything から Helm へ
  • Flymake から Flycheck へ
  • Egg から Magit へ
  • 『web-mode』の追加
  • 『コードの実行(quick-run)』の追加
  • 『差分の表示──git-gutter』の追加
  • 『テスティングフレームワークとの連携(phpunitとrspec-mode)』を追加

特に[改訂新版]Emacs実践入門を読んだにも書かれている通り、package.elの全面書き換えは非常に効果が大きく、基本的に解説を追加している(目次の項目は増えた)にも関わらず、総ページ数が減少したという事実は、原稿を書いているときには気がつかず、本になってページ数が確定して初めて気がつきました。

プログラミングでいうところの、リファクタリングがすすんだ結果、コード行数が減少したと考えれば、素晴しいことです。

また、サポートページでダウンロードできるサンプルコードも、そのまま追加すると、拡張が自動的にインストールされるようになり、簡単に設定を試すことができるようになったことも大きいです。

Emacs実践入門 出版記念イベント開催決定。

10月28日にPixivさんに会場をお借りして、Emacs実践入門 出版記念イベントを開催します。

残念ながら、ありがたいことに、すでに参加枠が埋まってしまっているようですが、もしかすると増枠の可能性もあるかもしれませんので、興味がある方はぜひお申し込みください。僭越ながらサインもします(Atom実践入門でも良いですw)。

参加者のみなさまは、当日はどうぞ宜しくお願い致します。

おわりに。

初版である『Emacs実践入門』から早5年、AtomやVSCなどの新しいエディタが誕生するなど、思いの外、大きな変化があったエディタ界隈ですが、元祖OSSであるEmacsも負けじと進化を続けておりますので、もしEmacsに興味を持たれた方は、ぜひ本書を手にとってみてください。

あなたの発音レベルは?一度は受けてみたいサウスピークの英語の発音診断テスト。

日本人は英語の発音が苦手です。そもそも上手く聞き取れないため、発音も上手くできません。残念ながらそれは仕方のないことです。

しかし、一体どれくらい発音が出来ないものなのか?一度、身をもって体験してみたいと思ったことはないでしょうか?

フィリピンのセブ島にある語学学校サウスピークは、発音レッスンの中で、英語の発音診断テストを実施しています。そのため、実際に自分の発音がどのくらいのレベルなのかを客観的に測ることが可能です。

というわけで、実際に発音診断テストを受けてみたので、その内容を紹介します。

パート1「ひたすら文章を読んで発音をチェック」

今回、僕の診断してくれる講師はサウスピークのシャーメイン先生です。決められた文章をひたすら2回ずつ読んで発音をチェックしてもらいます。

一度も読んだことのないワードも登場しますが、気にせずもりもり読んでいきます。

45センテンスを読んだところでようやく終了。次のテストに移ります。

パート2「2つの単語を聞いて、AかBかを当てる」

次は、シャーメイン先生が『A. light』と『B. right』のように2つの単語の中から1つの単語を読み上げるので、それがAかBかを当てるという形式のテストです。

どうですか?この動画を見てどちらか分かりましたか?僕は「もう一度」と言いたくなるところをぐっと堪えて答えていきました。

考えれば考えるほど分からなくなり、どんどん自信を失しないながら終了しました。

パート3「今度は自分で2つの単語を発音する」

今度は先ほどシャーメイン先生が読み上げた単語を自分で発音していきます。

発音していて、どちらも同じじゃないかという気がすごいしてきますが、ぐっと堪えながら(堪えきれずに same とか言っていますが)最後まで読み上げていきます。

これですべてのテストは終了です。そして、いよいよ診断結果の発表です。

採点「何が出来て何が出来なかったかをしっかり確認してくれる」

診断結果では、この問題は何を調べていたのか説明した後、出来ていた部分と出来なかった部分の認識を擦り合わせていきます。

例えば、パート1では、決められた箇所の発音をチェックしていて、減点箇所はなぜ減点されたのかを詳しく解説してくれます。

時間の許す範囲で、どのように発音すれば良かったのかを、シャーメイン先生が図を書いたりして丁寧に解説してくれます。自分の出来なかった箇所をしっかりとチェックできるため、今後の学習の参考になるでしょう。

11月19æ—¥〜27日に東京で発音レッスンが受けられるチャンス。

今回、僕が体験した発音レッスンですが、11月19æ—¥〜11月27日にサウスピークの講師が来日して、東京で無料体験レッスンを行うそうです。

普段は留学しないと受けることができない貴重なレッスンなので、ぜひこの機会に受けてみてはいかがでしょうか。

以上、サウスピークの発音レッスン体験レポートでした。