give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

初校のゲラ(試し刷り)が届きました ~「プロを目指す人のためのRuby入門」制作レポート

アレが届きました

昨日、何やらでっかい封筒が僕宛に届きました。
「もしやこれは」と思って中を空けてみたところ・・・じゃーん!

f:id:JunichiIto:20170804060328j:plain

現在制作中の書籍「プロを目指す人のためのRuby入門」のゲラが入っていました。

ゲラというのは紙面の出来映えを確認するための試し刷りのことです。
こんな感じで完成品と同等の紙面が大きな紙に印刷されています。

f:id:JunichiIto:20170804060637j:plain

これをじっくり読んでいき、修正すべき箇所がないかチェックしていきます。
いわゆる校正作業っていうやつですね。
最初の校正作業なので、これを初校と呼ぶそうです。(へー)

ちなみに印刷された紙のゲラだけでなく、PDFデータも一緒にもらっています。

f:id:JunichiIto:20170804061347p:plain

編集者さんからは「紙とPDF、どっちがいいですか?」と聞かれたんですが、ディスプレイで見たときと紙で見たときで印象が変わりそうな気がしたので、両方もらうことにしました。

デジタルデータがようやく形になってきた

去年の終わりからずっと本を書いていたとはいえ、その原稿はあくまでデジタルデータでした。
また、原稿はマークダウンで書いていたので、必要最低限のフォーマットが適用されただけの素っ気ない見た目でした。

f:id:JunichiIto:20170804075553p:plain

これが編集者さんと紙面デザイナーさんの力によってデザインや装飾が施され、デジタルデータから「形のあるモノ」に変わって僕のもとに届いたわけです。
いやあ、嬉しいなあ😄

原稿の執筆は5月でひととおり終わっているんですが、こんなふうにいろんな人による、いろんな作業を経てようやく完成するので、発売まですごく時間がかかってしまうんですねえ。

というわけで、「プロを目指す人のためのRuby入門」は2017年11月の発売(現時点の予定)に向けて着々と制作進行中です。
書店に並んだら、ぜひ手にとってみてください!

で、「プロを目指す人のためのRuby入門」って何?

「プロを目指す人のためのRuby入門」は、Rubyの言語仕様やRubyの使い方を教える入門本です。
これまでRubyで仕事をしてきた僕自身の経験から、開発の現場で役立つ知識を重点的に説明しています。

また、「本を読むだけで、なんとなく分かった気になる問題」を避けるため、各章には例題を付けています。
例題の解答はチュートリアル形式で手順や考え方を詳しく説明しているので、読んで終わり、ではなく、ちゃんと手と頭も動かすこともできるようになっています。

詳しくは以前書いたこちらのエントリをご覧ください。


まとめ

というわけで、今回は現在制作中の書籍「プロを目指す人のためのRuby入門」の進捗状況をお伝えしました。
また何かあればこのブログで状況を報告していきますので、この本が気になる!という方はぜひ「読者になるボタン」をクリックしてやってください。

f:id:JunichiIto:20170804064420p:plain

さーて、僕はこの大量のゲラを読んで校正作業をやっていかなければ・・・。
がんばりまーす!

リモート参加もOK!簡単なRailsのお題を使って公開コードレビューをやります!(2017年8月24日)#railsdm

お知らせ

2017年8月24日(木)の19:30から開催される、Rails Developers Meetup #4で「プロを目指すRailsエンジニアのための公開コードレビュー」という講演をやります。
会場は東京がメインですが、中継で視聴可能な大阪会場と、日本全国どこからでも参加できるリモート会場(YouTubeライブ使用)の3箇所に分かれています。

また、僕自身も兵庫県西脇市の自宅からリモートでお話しする予定です。
話す人も聞く人もリモートで参加できる勉強会ってすごいですね。未来的!

申込みページはそれぞれ以下のとおりです。

僕の講演の概要はこんな感じです。

「プロを目指すRailsエンジニアのための公開コードレビュー」


自分が書いたコードは他の人が見たときにどう思われるのか、気になりませんか?

この発表では、参加者のみなさんが書いたコードをソニックガーデンのプログラマ、伊藤淳一がその場でコードレビューします。

お題は以下のURLにあるので、「レビューされてみたい!」という方はイベント当日までにREADMEに書いてある内容に従って自分の解答を提出してください。


https://github.com/JunichiIto/train-ticket-rails


当日は1~2件の解答をピックアップして、良いところや改善できそうな点をレビューしていきます。

参加者全員で「良いコードとは何か」を一緒に考えてみましょう!

はい、このように今回は「僕の話を聞いて終わり」ではなく、参加者の人が提出してくれた解答によって内容が変わる「全員参加型」の発表になります。

お題のRailsアプリは初心者向けのごくごく簡単なものなので、「まだRailsチュートリアルしかやってないんだよな~」という人でも解けるはずです。
みなさん、ぜひ参加申込み&解答にチャレンジしてみてください!

お題についてもうちょっと詳しく

お題は「TrainTicketRails」という名前の、電車の改札口を簡易的にシミュレーションするRailsアプリケーションです。

「切符を買って電車に乗る」「目的の改札口で降りる」という動きをブラウザ上でシミュレートします。
ただし、運賃が足りなかったり、同じ駅で降りようとしたりすると、エラーになります。

f:id:JunichiIto:20170802052627g:plain

上の画面は完成バージョンの動作ですが、前述のGitHubリポジトリからコードを落としてきた時点ではアプリはまだ未完成です。
そこでこのアプリを完成させるべく、解答者のみなさんに要件を満たすコードを書いてもらう、というのがこのお題のゴールです。

テストコードを書かずにテスト駆動開発(TDD)ができます

お題には最初からMinitestを使ったテストコードが付いています。
最初の状態ではアプリが完成していないので、以下のように当然テストが失敗します。

f:id:JunichiIto:20170802053612p:plain

ちゃんと要件を満たすコードを書けば、テストがすべてパスします。

f:id:JunichiIto:20170802053821p:plain

テストがパスしさえすれば、(コードの善し悪しはともかく)要件を満たしたコードを書いていることは証明できます。
つまり、解答者のみなさんはこのお題をテスト駆動開発(TDD)で解くことになるわけです。

TDDなのにテストコードは自分で書かなくていいので楽チンですね!

解答の提出はPull requestで

詳しい手順はREADMEに書いてありますが、解答はGitHubのPull requestを使って提出してもらいます。
Pull requestを使えばこんな感じで差分として表示されるので、レビューする側(つまり僕)もみなさんが書いてくれた解答を確認しやすくなります。

f:id:JunichiIto:20170802054828p:plain
(注:上の画像は解答が見えないようにボカしてあります)

余談:お題の原案は「プロを目指す人のためのRuby入門」から持ってきています

この問題は現在執筆中の書籍「プロを目指す人のためのRuby入門」(2017年11月発売予定)で使用した例題がベースになっています。

ただし、本の中ではまったくRailsを使わない「素のRubyコード」として実装しています。

「素のRubyで書けるんだったら、Railsに移植するのも余裕でしょ」と思ったんですが、実際やってみると「Railsならでは」の制約やルールに苦しめられて、意外と苦戦しました。。

それはともかく、書籍が発売されたら、こちらもぜひチェックしてみてください!

まとめ

というわけで、このエントリでは2017年8月24日(木)に開催されるRails Developers Meetup #4の発表内容と、発表で使用するRailsアプリの紹介をしてみました。

「最近Railsを始めたばかりなんだけど、がんばって書いたのでレビューしてほしい」という初心者の方から、「こんなの楽勝、楽勝!完璧な俺のコードを見よ!!」という上級者の方まで、たくさんのご参加をお待ちしています!

世間では不人気な?iPad(第5世代)とiPod shuffleを買いました

はじめに

最近買ったApple製品の紹介です。
iPad(第5世代)とiPod shuffleを買いました。

f:id:JunichiIto:20170801074320j:plainf:id:JunichiIto:20170801074351j:plain

とりあえず、我が家では必要だと思って購入したんですが、世間的にはどちらもあまり人気がないような感じもしますね。。

本当はiPad miniが欲しかったんだけど・・・

iPadを買った理由は、それまで使っていた初代iPad miniが遅くて使い物にならなくなってきたからです。
なので最初は「じゃあ新しいiPad miniに買い換えるか~」と思ったんですが、よく調べてみるとiPad miniってもうかれこれ2年近くアップデートされてないんですね。
(iPad mini 4の発売日は2015年9月)

しかも、ストレージの選択肢が128GBしかなく、値段もiPad(第5世代)32GBより高いんです。

  • iPad mini 4(128GB) 45,800円
  • iPad(第5世代、32GB) 37,800円

もちろん、ストレージが大きいからminiの方が高い、という見方もできるのですが、単純に安い方が嬉しいし、そこまで容量いらないし・・・というのが僕の感想です。
あと、ネットの情報を見ていると、iPad miniは現行バージョンで販売終了になるんじゃないかという噂もチラホラ見かけました。

「サイズは手頃だが、古くて高い、iPad mini」vs「サイズは無駄に大きいが、新しくて安い、普通のiPad」。

どちらにするか非常に迷ったんですが、「iPad miniはこのままAppleに見捨てられる可能性が高い」と踏んで、普通のiPadを購入することにしました。

f:id:JunichiIto:20170801075809j:plain
新しく購入した普通のiPadと、初代iPad mini

新しく購入したiPadは可も不可も無く、「ふつう」です。
我が家ではこれで4台目のiPadになるので、もはや新しい感動はないですね~。
あえて言うなら「アプリが当たり前のようにサクサク動くようになって良かったね」ということぐらいです。

購入直後に販売終了のアナウンスが流れたiPod shuffle

一方、iPod shuffleは自分のためではなく、息子のために購入しました。
息子は最近よく音楽を聴くんですが、「もっと気軽に音楽を聴きたい」というリクエストに応えてiPod shuffleを購入することにしました。

個人的には「画面が付いてるiPod nanoの方がいいんじゃない?」と思ったんですが、息子いわく「別にiPod shuffleで構わない」そうです。
「そう言うんならiPod shuffleでいいか~」と思ってiPod shuffleを注文したんですが、その数日後、「iPod nanoとiPod shuffle、販売終了」のニュースが飛び込んできました。

なんと、ビックリ!!・・・なんですが、まあわからなくはないですねえ。
僕も今はMacやiPhoneで音楽を聴くことが多いんで、音楽専用機の必要性はそこまで感じないです。

とはいえ、我が家ではまだカーオーディオ用の音楽専用機として、第5世代iPodが現役で活躍中です。
あと、iPodといえばその昔バンドをやっていた頃に「これはすげー!便利~!!」と感動して愛用していた時代があるので、「古き良きiPodの末裔」がなくなっていくのは少し寂しい気もしますね。

もちろん、iPod touchはまだ存在しているんですが、あれはどちらかというと「電話機能を無くしたiPhone」っていうイメージなんですよね~。
時代の流れとはいえ、iPodがなくなっていくのはちょっと寂しいです。

f:id:JunichiIto:20170801083937j:plain
僕が愛して止まなかった頃のiPodくんたち

まとめ

というわけで、このエントリでは最近買ったiPadとiPod shuffleを紹介してみました。
「新品で買ったものの、iPadもiPodも最近はあまり人気ないんだな~」と感じる伊藤さんなのでありました。

おわり。

Apple iPad 9.7インチ Wi-Fiモデル 32GB ゴールド MPGT2J/A

Apple iPad 9.7インチ Wi-Fiモデル 32GB ゴールド MPGT2J/A

Apple iPod shuffle 2GB 第4世代 2015年モデル ブルー MKME2J/A

Apple iPod shuffle 2GB 第4世代 2015年モデル ブルー MKME2J/A