@numa08 猫耳帽子の女の子

明日目が覚めたら俺達の業界が夢のような世界になっているとイイナ。

kotlin本を書いた話

無事、12月26日に拙書のKotlin実践プログラミングが発売されました。

numa08.hateblo.jp

この記事では「どういう経緯で本を書くに至ったのか」「どういう方法で本を書いたのか(ツールとかマネジメントとか)」「反省点」についてまとめます。

本を書くことになった経緯

6月に酢酸先生( id:ch3cooh )から slack で「『kotlinで作るAndroidアプリ入門』的な本を出したいって秀和システムの人から連絡があったので、 numa さん書いてよ」って来たのがきっかけでした。人脈大事。同じ週くらいに秀和システムに直接行って打ち合わせをしました。

実際に編集の方とお話をしたり、都内某書店のAndroidやkotlin本の販売部数を見せてもらっていると面白いことがわかりました。Androidアプリの入門書って割りと飽和しているんですよね。毎月のように入門書が様々な出版社から出版されて、同じような販売部数で終わるような。ここにAndroidの入門書を投入するのは面白くないなーと感じました。

プログラミング言語kotlinは、3月に発売された長澤太郎さんの「kotlinスタートブック」が5月のGoogle I/O以降に売上が顕著に上がっていることも教えてもらえました。Androidの開発言語として正式に採用されたことの影響が非常に大きかったようです。

これらの情報を見るに市場が求めているのは入門書じゃないように思いました。kotlinの入門をするのであれば「kotlinスタートブック」は非常に優れた内容です。さらにWeb上にも一次ソースとしてリファレンスやQiitaの記事なども色々とあります。Androidについても同様。ここに本を一冊書くのであれば、特に自分が書くのであれば、kotlinをプロダクトのコードに導入してすでに1年以上を経験している自分の経験を活かして、今後おそらく増えてくるであろう「javaで書かれたコードをkotlinにリプレースする人」をターゲットとした本を書くのがベストなのではないかなと提案を行い、企画として上げてもらいました。

初めての本なのでそんなに上手には書けないだろうとは思ってましたが、それでも自分にしか書けない内容のものを書いたほうが価値があるのでは?と考えました。

どういう方法で本を書いたのか

re:View とか tex とか使うのかなー?って最初は思っていましたが、もっと原始的なプロセスで作業を進めました。マークダウンで執筆した原稿を編集の方と共有し、wordに整形をしてもらって校正。最後に印刷用の整形をしたものをpdfで見せてもらってレイアウトを含めて校正を行って完了でした。ファイルのやり取りはGoogle ドライブで行い、原稿や整形されたwordやpdfについては特にバージョン管理を行っていません。

校正はwordやpdfを利用したので、それらの校正機能やコメント機能を利用しました。

サンプルコードに関しては、githubリポジトリを作って章ごとにコミットをしていました。この本のサンプルコードは第2章から5章では1つのアプリのプロジェクトに対してコードの改変を行ったり追加を行う進行になっています。そのため、章ごとにディレクトリを作るわけではなく、コミットを章ごとに行って読者は自分の進捗に応じて checkout してもらう方法を意識しています。

また、サンプルコードの校正については奥さんに手伝ってもらいました。原稿を渡してサンプルコードのコンパイルが通るのか、説明文がおかしい場所はないかという点について見てもらいました。彼女はAndroidアプリのエンジニアでもないしkotlinも触ったことがないのでちょっとハードな作業だったかとは思いますが。印税入ったら食洗機を買おうと思います。

割りと地味な方法で執筆をしたので反省点も多いです。

反省点

ページ数の見積もりを盛大に間違えました。特に深い考えもなく原稿を書いていたので、当初想定していたページ数に届かないことが校正作業の後半の10月くらいに分かりました。たぶん、レイアウトの整形を行う段になって編集で気がついたのでしょうね。4章と5章に加筆としてテストコードを追加することでなんとか対応をしました。原稿を書いている段階でページ数がどうなるのかを何も考えていなかった自分も悪かったかなと思います。文字数からのページ数見積もりがもうちょっとできたらなぁと思いました。

加筆が必要だとわかったのが10月くらいだったので、実はこの時点で5章までの1回目の校正は終わっていました。そのため、加筆をした原稿をどうやって共有するのが良いやり方なのかなとちょっと悩みました。手元には最初に渡した原稿のファイルと校正指示をしたwordファイルしかありません。この時点での最新の状態の原稿が編集にしかなく私の手元にはありませんでした。これはちょっと困るなぁと。結局、校正指示をしたwordに追加をしてコメントを付けて送付しました。wordのコメントはタイムスタンプが自動で入るので。追記作業をする前にこの時点での最新のファイルを共有してもらえばよかったですね。

また、加筆でソースコードに対して大幅な追加が行われました。今回、サンプルコードは章ごとにコミットしているので章の内容が変わればその変更に追従するコミットも必要になります。しかし、何も考えずにHEADにコミットしてしまうと読者的に分けがわからない・・・。という事で、rebaseが発生します。4章と5章の内容に対してソースコードを追加・変更してrebase。ときどきコンフリクト。仕方がないとは言え、もうちょっとやり方あったかなー?と思いました。バージョン管理は捨てて、冗長になっても章ごとにプロジェクトのディレクトリを作った方が親切だったかもしれません。

原稿共有と整形に関してはどうなんだろうなぁ。re:Viewとか使ってみたかったし、利用実績秀和システムがまだないので、第1号になれたかもしれないですがタイトなスケジュールと教育コストを天秤にかけて今回は不採用に。vcsと組み合わせて校正作業をやりやすくできたのかもしれないですが、ちゃんとチーム体制を組み上げて自分自身も運用ノウハウを身に着けないとまだ採用しにくいかなって感じです。1人でやるのなら即採用なんだけどね。 

kotlinバージョンアップ早い問題もあるかな。執筆開始時点でv1.1だったけど、先日v1.2がリリースされてまぁまぁの変更が。Android Studioも3が出ました。どうすっかなーと思ったけど、コードの差し替えをやるわけにも行かないので「執筆時のバージョン」ということで執筆開始時点のバージョンをキープ。本として出す上で避けることのできない悩みなんでしょうね。これがあるからリファレンス的な内容の本をやりたくないとも思ってたのはある。

そして一番やばかったのが、11月に入ってから「本文中のソースコードの行が長い場所があるので、改行をしてくれ」という依頼が編集から来たことです。何も考えずにAndroid Studioで書いたコードを原稿ファイルにコピペしていただけだったので、本にすると改行がおかしくなってしまう可能性があるのでしょうね。これもたぶん、印刷用の整形を行ったタイミングで発覚したのでしょう。さて、プログラマーの皆様ならお分かりかとは思いますが、単純に改行をすれば良いというものではありません。文法上問題のない箇所で改行をする必要があります。とは言え改行自体はAndroid Studioの整形機能とかを利用してサクサク進めることができたのですが、変更したコードを本文に掲載する部分のみを抽出してテキストファイルにする作業が地味で面倒くさかったです。地味作業嫌い勢なので。思えば変更のあったソースコードを本文に反映させる編集の作業も大変だったでしょう。そう言えば、大学のときのレポートでもコードを印刷するときは適当に改行をしていたような気がします。最初に、コードの改行について意識合わせをしておくべきでした。

最後に来た作業としては索引作りがありました。索引なので、印刷用レイアウトが出来上がらないと作ることができないジレンマ。わりとシビアな締め切りに対して気合で乗り切りました。索引にする単語リストだけでも最初から作っておくのがよかったかなと思いました。

後やっぱり、契約についてもちょっとなぁと。契約書を取り交わしたのは実は10月になってからなので、原稿を書き始めてから3ヶ月以上経過してからでした。こういうの、良くないんだろうなぁと思いつつ執筆作業。もしも契約締結できなかったら技術書展あたりで供養するかという気持ちで原稿書いてました。これに関してはどうすれば良いんでしょうかね。他の人もそうなのかな?

感想

初めての書籍執筆で編集の方にかなり迷惑をかけたんだろうなぁと思いつつ、最初に意識合わせをやっておくべき項目も割りとあるなあという学び。今後もしも本を書くことがあればもっとうまくできると良いな。

なんかめっちゃ技術が進歩してる!「俺達は異世界に行ったらまず真っ先に物理法則を確認する3」感想 #異世界物理

@藍月要 先生の最新刊「俺達は異世界に行ったらまず真っ先に物理法則を確認する」を読み終えたので感想です。

新刊、おめでとうございます。

大精霊祭での活躍が注目された幹人たちは、国王から魔道具の祖ジーリンの情報と引き替えに自動生成ダンジョンの攻略を依頼される。難攻不落のその魔窟にも、彼らは持ち前の科学的思考でアプローチしていき――。

前作までの感想はこちら。

numa08.hateblo.jp

numa08.hateblo.jp

第2巻までは一応ネタバレを気にした文章にしていたけど、今回はもういいかなって感じで。

照兄、お前がトップなのか

第3巻の表紙を見たたとき、真っ先に気が付きました。主人公である幹人やヒロインである魅依よりもトップに来ているのが、ギルドオオヤマコウセンのリーダーにして一番の変人あるいはバカ、もしかしたら変態、コミュ障ゼロの最年長で兄貴分の中久喜照治くんこと照兄です。そう、3巻は実は照兄回だったのです(ナ、ナンダッテー

今回、彼の二面性のような物が明らかになりました。過去の出来事をきっかけに雨ヶ谷兄妹や彼らの家族とほぼ家族同然の絆で繋がり、彼らのためなら命を投げ出すことを選択することができる人情味のある部分。そして、娘との再開を果たした現王に対して「この無駄な時間でやるべきことが沢山ある」という思いを汲み取り嘘をつかせるアドバイスをする異常なまでの効率主義者の部分。

今までの作品では現実主義的、効率主義的であるが故に人情的に振る舞おうとしても不器用に写ってしまう、そしてそれを自覚したキャラクターだったと思ったのですがどうやら彼は効率主義の方にステータスを全ブリしてしまっていたようにも見えます。

更に、今回彼がアドバイスをした現王、つまり今作のゲストキャラクターのジルベルタ・カラブレーゼの母親、ルキシロナ・ウェルエオンは彼のアドバイスを受けて「無駄な時間」を終わらせるためにかつて捨てた娘に対して「愛している」と言います。

良いですね、この感じ。親子の愛と言って思い出すのはやはり第1巻のザザと彼女の父との関係性です。

第1巻では幹人の賭けとも言える提案によって実は彼女の父は財産を捨ててまで彼女に愛を伝えたかったことが明かされました。自分なんて見ていない、ザザの思いは単なる思い込みで実は誰よりも家族として彼女を愛していたのは父であったことが明かされました。

それが一点、ジルとルキシロナの関係は本当の愛ではなく偽りの言葉で作られた関係であることが明かされます。現王は王としての責務を果たすために彼女を捨てた。それが自分の未来やあるいは国の未来の為にちょうど良かったからなのでしょう。大人になったジルは軍務の経験を経て施設を営みつつ冒険者をするそんなに拗れていないキャラクターに育ったようです。照治をして「雨ヶ谷兄妹のようだ」と言わせる善人の塊のような彼女に対しては、王となってその責務を果たす母の重みも理解している、それ故に「それでもお前をまだ愛している」と言われればそれで納得してしまう。言ってみれば、チョロイ。だけど当人としては十分に幸せな関係を築くことができたと言える。

良いのかなー、それで良いのかなー。照治も王もいい感じになんやかんやあって人情派になってくれたら面白いなぁとかちょっと思いました。

雨ヶ谷、お前はどうなんだ

3巻ではようやく幹人と魅依ちゃん先輩の関係が進展します。いやでもトップはなんやかんやで照兄なのでちょっとだけです。

2巻のラストで突然のザザからのプロポーズ、そしてそれへのレスポンス。更に3巻ではやたらと幹人とザザの距離感が近いようなそんなアレ。どうなるんだこれ?と思ったら、ああ魅依ちゃん先輩圧勝でしたかと。幹人君も君は君で案外頑固なんだなぁと。個人的には健気担当のザザ推しでしたけれど。3巻では恋愛関連の進展もあって楽しめます。

2巻で「カレーに漸近する何か」を完成させたらしい(このカレーに漸近する何かは今後出てこないんですか?)料理担当の塚崎さんはまさかの照兄への片思い。2巻までにそんな素振り無かったような。とうか、今回ようやく名前がつきましたねおめでとう。犯人顔のスキンヘッドのお兄さんにも名前をつけてあげてほしいです。

塚崎さんも塚崎さんでかなり奥手なようなのであんまり行動とかは無かったようですが、最後はちゃんと照兄を正気に戻したり仕事をしていました。あと空気も読める。今までのヒロインの中では一番有能なのでは?一番いい奥さんになりそうです。

また、2巻でモニカとちゃんと距離を取った男イヌちゃんも、序盤でちゃんと落ち込んで復活してました。うんうん、若い、いいなぁ。

恋愛と言えば最年少でお兄ちゃんラブの咲ちゃんもなんかあったら面白そうですね。今後に期待。

ロボコペとかシキとか

2巻で作った多脚型の精霊、シキ。実はこれのデザインは現実世界でロボコペのために作っていたオオヤマスパイダーがデザインのベースにあったことが明かされました。そう言えば2巻の中盤、シキ作成中のシーンでスキンヘッドのお兄さんの田川と照兄が足を6本にするのか8本にするのかで言い争いをしていたシーンを思い出しました。実は彼らの口喧嘩の背景にはロボコペ用のデザインを踏襲したい思いがあったのかもしれないですね?

DPS とか、絶対ヤバイでしょ

毎回、何かしらのアイテムを発明するオオヤマコウセンのメンバー。今回は第1巻から登場している魔導杖が更にパワーアップし、第2巻で登場したカートリッジシステムを搭載し小型化したものが正式採用されたようです。第3巻の舞台が2巻の大星霊祭の1週間後で、2巻のスタートが60日以上。そう考えるとそろそろ半年くらいが経過するタイミングかな?半年のうちに実践で利用できる武器を作って更に自律できる精霊も作り量産までしている。オオヤマコウセン恐るべし。2巻のラストで大精霊祭での活躍に対して金銭での報酬もあったようだし、今回の依頼に関しては王がスポンサーのような物なのだからまあ、経済力は相当な様子。となると彼らの技術力がすごいってことですね。

さらに今回、自動生成ダンジョンを攻略するためDPSなる位置座標を即位するシステムも開発、運用しちゃってます。光速よりも遅く、さらに波長やなんかを割りと自由にいじれるっぽい「魔力波」を利用した測位システムを使ってマッピング、さらにシキの自動操縦を行うことで自動生成ダンジョンの攻略を行おうとする。ゲームだとルールがそれを拒むでしょうが、もしもそれがリアルでルール無用ならダンジョン破壊の次に思いつく方法かもしれません。ダンジョン破壊もしっかりと「現実味がない」ということで非採用にしているのも偉い。

ちょっと気になったのは魔力波の速度って結局どうやって求めたんでしょうね?一応「光よりは遅そう」という話を作中ではしていましたが計測の描画は無かったような。1巻の時点で魔力波を観測する仕組みを作ろうとしていたしなんとかしたんでしょうが。結局、魔力波も電磁波のように目に見えないけれど存在するっぽいということはわかっていてもその実態についてはまだ作中で観測はされていないように思えます。その実態は何かのか、魔力波と言っているけれど「波」の特性を持った物なのか物質なのか、あるいはその両方なのか。今後に期待したいですね。

DPSと自動操縦のシキによるマッピングは今回の描画では非常に精度が高く、モンスターがいないあるいは弱いなどの条件付きであればかなり実用度が高いように思えました。あるいはDPSだけでも。第1巻の魔導杖や第2巻のシキなど、彼らの世界から持ち込んだ概念によって構成された物は確かに画期的だったけれど異世界では何か別のものに置き換え可能だった。しかし、今回のDPSに関してはおそらく異世界でも全く新しい発明品で変わるもののないユニークな物なように思えます。次巻以降、彼らがこれで経済的無双をしちゃうんでしょうか。それはそれで見てみたいw

結局、王の目的は?そしてアッドクライムとは

今回潜ったダンジョンは、じつは彼らが求めるジーリン・アッドクライムと非常に密接に関わる、というか彼女の居場所が記されたアイテムの眠るダンジョンでした。アッドクライムの情報を求めるオオヤマコウセンのメンバーを潜らせた。しかもダンジョンの攻略は王の意志で成功報酬は成功者の求めるものを可能な限り叶えるという。もう、これあれですね、アッドクライムさん、めっちゃ要人ですね、王様にとって。今回の描画から王が私利私欲で動くタイプでは無いと思われます。つまり、アッドクライムの居場所は国益にかなり影響をするということ。

次巻への期待も込めて、アッドクライムさんが何者なのか、なぜ王は彼女の居場所を知りたかったのかの予想を立ててみましょうかね。

ある特定の個人(あるいは団体)の居場所を求めるならそのスキルを求めると言ってもいいでしょうね。となると、魔道具を発明した彼女が作るその技術、あるいは製品が必要なはず。なぜそれが必要なのでしょうか?「戦争」とかがありそうかなぁと思いましたが、この王なら難攻不落のダンジョンの攻略をするよりも軍備を揃えたり外交的手段でなんとかしそう。となると彼女の魔道具じゃないと同しようもないレベルの「災害」が予言されているとかそういう感じでしょうか?ただ、今までの描画の中で「予言」とか「占い」とかに関する魔法がなかったのも気になります。魔法が「その結果をイメージする」ことで得られるパワーなら結果を得るために行う「予言」や「占い」は魔法としては利用しにくいはず・・・。

あれ?となるとこの世界の天気予報とかってどうなってるんだろう。風が吹くのなら「気圧」という状態があるっていうことだろうし、農作物があるのなら降った日、腫れた日があるはず。四季についても第1巻の時点で存在が明かされています。

となると、異世界の技術や魔法で観測可能な範囲でいろいろな予想を立てているということですかね?夕日がきれいな日の次の日は天気が悪いとかそういう。そういうのを根拠に国が滅びるレベルの天変地異を予測し、さらにそれを防ぐにはアッドクライムの技術が必要と。うーん、まあまあの線な気がします。

あとは、アッドクライムは国賊でとんでもないことをやらかした逃亡の身。捕らえる必要があるとか?まあ、それだとオオヤマコウセンのメンバーがアッドクライムを探している時点で逮捕とかされそうですね。

考えてもキリがないですし、そして現時点で描画されていない異世界の技術や文化のレベルも気になってきました。ぜひとも設定資料集の発行をお願いしたいですね!!

そんなわけで第4巻以降もかなり期待が膨らんできました!!

藍月先生と設定談義とかもしたいですねw

kotlin本出版のお知らせ

Androidアプリ開発のためのKotlin実践プログラミング

Androidアプリ開発のためのKotlin実践プログラミング

内容紹介

Amazon にはもう並んでいるようですね。夏に酢酸先生( id:ch3cooh ) から紹介をして頂いたご縁があってkotlinの本を執筆しました。タイトルにもありますが「Android開発のための」本です。

Amazonの書籍解説では

kotlinを使って、開発の現場ですぐにKotlin言語を採用したアプリ開発をするためのノウハウを解説する本です。

となっているので、著者目線でこの本が想定しているターゲットや本の内容を紹介します。

目次構成は次のようになっています。

目次の解説の前にこの本のターゲットをお伝えすると「すでにプログラミング言語kotlinの本(赤べこ本とか)を読み終えていて、公式リファレンスやqiitaなどの記事を見ながらコードを書くことのできる人」さらに「Androidアプリ開発の経験がある人でjavaで作られたアプリをkotlinに改修したい人」となっています。そのため本文中ではプログラミング言語kotlinのおさらいを兼ねた解説を第1章で行いますが、Androidアプリ開発に関する部分については省略をしています。

そして気になる各章の内容ですが、第1章は先に書いたようにプログラミング言語kotlinのおさらいを兼ねた解説です。簡単なCLIのアプリケーションを構築する手順を通して、gradleを利用したkotlinでコードを書く場合のプロジェクト構成の作り方やコードの書き方、標準ライブラリに用意されている関数、メソッドの利用方法などを紹介します。

第2章からはがっつりとAndroidアプリ開発を行っていきます。具体的にはよくあるシチュエーションと思われる「javaで書かれたアプリをkotlinに改修する」を想定ます。そのためのプロセスとして次の手順を私は提案しています。

  1. まずテストを書く
  2. kotlinを使って機能を拡張する
  3. java で書かれたコードをkotlinに書き換える

テスト大事ですよね、テスト。第2章ではkotlinを使ってAndroidのテストを書くやり方、関連するライブラリやフレームワーク(JUnit, Robolectric, mockito)の紹介を行います。世の中にアプリ開発をするための本は数あれど、テストを最初に持ってくる本もこの本くらいなんじゃないでしょうか?(要出典

なお、先に書いたテストライブラリ、フレームワークに espresso が含まれていないのは本文中では Instrumentation Test を書いていないからです。これについては迷ったのですが、自分自身があんまり Instrumentation Test をやりたくない(実行が遅いし)という気持ちを持っていてサンプルアプリを作る中で自然と Instrumentation Test を用意しないものにしてしまったからです。Androidフレームワークに依存する部分ならだいたい Robolectric でなんとかなるし、レイアウトをテストが必要なくらいややこしいものにするのもなぁって感じで。そもそも、頑張って Instrumentation Test を用意して espresso でテスト書いてもkotlinならではの詰まりどころ、変な所とかを紹介できるわけではないなといった部分を考えた結果です。

なので、「kotlinを使ってespressoでテスト書いてみたい!!」という人には本書の内容は適していないと思います。

第3章ではアプリケーションの方に手を加えて、kotlinに機能を実装した部分を既存のjavaのコードから呼び出すケースを想定したコードの書き方を解説します。アノテーションがいっぱい出てくるやつです。また、kotlinでは使えるけどjavaでは使えない機能の紹介も。今回のケースではjavaをkotlinに書き換える前提なので、javaから使えない機能もガンガンkotlinでは使っていってます。

第4、5章ではついにコードの書き換えを行います。コードの書き換えのためにテストを書いて、Intellij kotlin plugin の機能を使ってコードを自動変換し、自動変換で救いきれなかった部分を修正するという流れ。ひたすらそれの繰り返しの中で、自動変換がどんな動きをするのか、コンパイルが通っても直したほうが良い部分はどういう箇所なのかを解説します。また、5章では執筆時点でExperimental(というか今もか)なコルーチンにも触れてコールバックメソッドを消し去っていきます。

本の内容はこんな感じです。

カバーしていない部分

この本のターゲットや執筆のポリシーから今回カバーしていない部分も多くあります。全部を掲載することはできませんが思いつく限りを。

文法やコードの書き方、ifwhenなどの制御構文、その他標準ライブラリについての解説は第1章にありますがおさらい程度です。「はじめてkotlinに触ります!!」という人にはちょっと不親切かもしれません。そういう方は長澤太郎さんのkotlinスタートブックを先に読まれたほうがいいと思います。

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

  • Android アプリの基本的な所

これについての解説は一切ないです。「はじめてAndroidに触ります!!」という方の場合・・・今って最初に読んだほうが良い本って何なんでしょうかね?おすすめできる本が何なのかわからなくて恐縮ですが、ともかく初めての人向けの本を読んだほうが良いでしょう。

  • Android のデバイスとかセンサーとか、外部の機器やサービスとの連携

今回の本の内容はgradleによるアプリケーションのプロジェクト管理だったり、ソースコードの書き方に重点を置いています。したがって、デバイスのセンサー周りを触ったりあるいは外部の別の機械との通信とかを想定した内容はありません。今にして思えば、センサー系とか使えばkotlinっぽいコードが書けない部分を作り出せたかもなぁ。次回作にご期待下さい!(あるのか?

  • gitの解説

本文中に登場するサンプルコードはgithubで管理していますが、gitの使い方の解説は省略しています。本文中ではリリースページから.zipファイルをダウンロードできるようにリンクを用意しているのでgitわかんなくても大丈夫なハズ。

  • gradle の解説

これも最低限しか無いかな。本文中にgradlewコマンドの実行箇所とか出てくるけど基本的にコピペで大丈夫。

Androidで使えるjava7の文法についての解説はとくにありません。難しいことはやってないので大丈夫だと思う。

ツッコミとかまさかりとか

自分の経験をベースに執筆した本なので紹介している内容がベストプラクティスじゃなかったり、場合によっては間違っている場合もあるかもしれません。正誤表なんかは公式サイトに公開されるでしょうけど、そういうのに掲載されていない部分についてはアカウントに直接教えてもらえると。お手柔らかに頼みます :pray:

ゲームボーイ

これは Game Boy Advent Calendar 2017 - Adventar の記事です。本当は Visual Boy Advance で遊ぼうかと思ってたんだけど、すっかり忘れていたので一旦お茶をにごします 🍵。

6つの金貨

ゲームボーイを買ってもらってから一番長い間プレイしたのはマリオの6つの金貨だったような気がする。

www.nintendo.co.jp

マリオというコンテンツは友達がファミコンとかスーファミを持っていたので知っていた。初めて家でマリオをプレイできる・・・!!そんなことに感動しながら、アーケード街を家まで帰ったのを覚えている。あのアーケードも今ではもう無いけど。

ただ、6つの金貨はマリオ「ランド」だったんだ。敵にクリボーやノコノコなんかはいるけど、マントとかは無いし、ボスもコクッパじゃない。ラスボスだってクッパじゃないし、そもそもピーチ姫すら出ない。金貨を6つ集めたら、ピーチ姫が出てくると思っていたのに。

ステージボスも結構面倒くさかった。おもちゃのステージ(マリオゾーン)のボスの3体の豚はそれぞれが耐久力が3あるので、合計9回踏まなきゃいけない。普通のボスよりも耐久力が高いのだ。あいつに何回やられたことか。

そもそもこのゲーム、ゲームオーバーになるとボスを倒して集めた金貨が全て失われる。最近のマリオは死んだところでコインを10枚失うだけだというのに、失うコインは最大6枚だけどショックは大きい。

ただ、ラスボスのワリオを倒した後のBGMはまだ覚えている。それだけに嬉しかったんだろうなぁ。

レッド・オクトーバーを追え

ショーン・コネリーの同名の映画のゲーム版・・・らしい。らしいっていうのは映画見てないし、そもそもこのゲームが難しくてクリアをしたことがないので。

潜水艦を操作して敵を倒しながら進むシューティングだけど、敵の魚雷が避けられないし地形は全てダメージ特製だしでかなり難易度が高かったイメージ。

1面の中盤に航空母艦が配置されていたけれど、そこまで行くので精一杯だった。結局、編み出した勝利法はリスボーンしたときの無敵時間中に敵の潜水艦に体当たりをする特攻戦法だった。

Youtube なんかでプレイ動画を探しても全然見つからないので、わりとマイナーなゲームだったんだろうな。クリアをしたところを是非見てみたいものである。

タイトル画面でロシアの国歌が流れるため、このゲームでロシア国家を覚えた。むっちゃかっこいい。

まとめ

適当に思い出した2本のゲームについてちょっとだけ文章を書いてみた。こんなことやってるうちに gbdk のリンクとかがメンションで送られてきたりしたので、無言の圧力のようなものを感じる。

アドベントカレンダーもまだ空いている日があるので、なんかやるかもしれない。

郷路岳のキャンプ場に行って野生を感じてきた

引っ越しをして2週間くらい経ったころ、生活の急変や必需品の買い物などで消耗してしまったのでキャンプに行きました。

高速道路で福知山ICをおりてから1時間くらいのところにある郷路岳自然公園。

残念ながら天気がめっちゃ悪かったので見晴らしも悪い。福知山あたりは少しは晴れていたんだけど。

シュッと設営をした。

伐採して広場になっている所以外は森になっているので焚き火用の木材を集めるのは簡単でした。そして、それ以上に不法投棄と思われる木材が捨てられていてそれらも焚き火の材料として活用しました。ツーバイ材とかが落ちていて、明らかに不法投棄でちょっと怖い。

着火中に雨が降ってきたのでかなり火の付きが悪かったけどなんとか着火。

さて、広場部分以外は全部森なので野生動物の気配が割りとありました。明らかに鳥や雨のしずくとは異なる音が聞こえてきたり、挙げ句の果てには動物園で嗅いだことのあるような動物の臭がしてきたり。けものはいてものけものは居ないと思っていましたが、この場では人間がのけもののようです。とりあえず焚き火を起こして食材をテントの中に避難しました。鳥くらいであればなんとかなるかもしれないけど、猿やイノシシ相手には怪我する未来しか見えないので。

ちなみに、キャンプ場自体も林道を越えた先にあり、麓の村まで5km以上ある場所。道に街灯はなく場所によっては落石や道路の崩落も有ったので暗くなってからの撤退は無理でした。恐ろしい場所で一晩を過ごすことに・・・。

翌日はどうにか晴れて走りやすい気候に。

山を降りたところにあった野菜の直売所でコーヒーをサービスしていただきました。現地のおばちゃんに郷路岳でキャンプをしたことを伝えると「地元の人もあんなところへはいかん」とか言われて、ちょっと反省。

コーヒーはうまかった。

今までに行ったキャンプの中で、野生の鹿を見かけたことはありましたがあのときは他に人もいたし。かつて無いほどキャンプの中で自然の脅威を感じましたね。

DIYでカウンターを作った

前の家に住んでいたときからカウンターというものに憧れを持っていた。キッチンで料理をしたものを一時的に置く場所として、サクッとスタンディングでご飯を食べる場所として、酒でも飲む場所として。

前の家では結局カウンターを作ることはなかった。かわりに昔使っていた本棚をカウンター代わりで運用していた。

引っ越ししてからはちゃんとやるぞって思いを高めるために工夫をしながら作っていった。

モチベーションを強制的に上げる

やろうやろうと思っても結局やらないことは世の中にたくさんある。その解決策の1つとしてものを買ってしまいやらざるを得ない状態を作る方法があると思う。今回はその方法をチョイスして引っ越し直後の片付けも終わってない状態で木材を購入した。

今回はマルトクショップで2x4材を購入した。

shop.woodworks-marutoku.com

後、壁に2x4を立てるためのお約束のディアウォールも。

木材は2本でカット、送料込みの3,600円。ちょっと高い。後から気がついたけどホームセンターで購入して送ってもらったほうが安かったようだ。とは言え今回の目的はモチベーションを強制的に上げることだったので仕方がないとも言える。

天板を探す

ちょうどいい天板を探してインターネットの巡回をしたけど結局一駅隣にあるホームセンターで買うのが良かった。2千円くらいのパイン材をカットしてもらった。あと見た目を調整するためにブライワックスも。

本当は適当に使ったらメルカリか何かで使いさしを売っちゃおうと思ってたけど、水場のためのワックスなのでメンテナンスのためにとっておくことにした。ブライワックス自体に撥水機能は無いしニスを塗ると混ざるそうなので水で濡れて禿げたところにパッチのごとくワックスを当てていくんだと思う。

足場を探す

壁側の反対側の足場には適当なカラーボックスを利用しようかと思っていたけど、粗大ごみかメルカリアッテ送りを考えていたPCデスクがあったので再利用した。高さが低く感じたので床材を使って高さを増している。

床材とデスクの間には耐震用のグニグニのやつを入れてるのでちょっとやそっとじゃ壊れないはず。

完成

ある日一気にブライワックスを塗り組み立てをやって完成した。とりあえずmac book airGoogle Homeを並べておけばオシャレ感が出る気がする。

コーヒー関連の器具も並べることができて収納にも役立っていて嬉しい。

タブレットtorneアプリを入れておくとテレビも見れるので朝ごはんを食べるときに便利。

あこがれのカウンターをDIYで作ってみた。木材が思いの外硬かったりネジ止め強度が出なかったりして大変だったけど持ってた端材とかでなんとかなって助かった。とりあえず捨てるときのことは考えていないけど、長く住むのならこれでいいんじゃないかなって感じ。

ホームシアター的な空間を作ってみた

ミニスーファミが来たのでスト2をやるさま。

前回の記事で引っ越しをしたらホームシアターを作りたいなーとか書いた。

numa08.hateblo.jp

あと、ホームシアター的なものを作ろうかなって思いがある。

Amazonで買えるものを使って作ってみましたよ。あんまり高級なものは利用していないつもり。今のところニトリで注文をしたカーテンがまだ届いていないので昼間はあんまり使えないけど。

Amazon で買ったもの

まずはプロジェクター。

中華製のやつ。Amazonで見てみると同じ商品だけど値段や発売元が違うものがあるような。最近のアクションカメラ事情と同じで同じラインの製品の余剰パーツとかを組み合わせているのかなと予想。値段は2万円を切る格安プロジェクターだけれど、3000ルーメンの明るさで昼間の部屋でも使えないことはない。台形補正やピント調節はアナログな仕組みで自動での調節はない。とは言え、一度場所を決めたら固定するものだし問題ないかなと思ってる。

ファンの音が若干気になると言えば気になるけど収録して実況でもしない限りは問題ないと思う。

次はスクリーン。

ただの白い布に縁をつけただけやろって感じの商品。とりあえず写すことができればいい。四方と長辺の中央に穴が空いていてフックを掛けることができるようになっているので我が家では上からフックで吊るし下は文鎮をぶら下げている。ぐちゃぐちゃにするとすぐにシワになりそうだしアイロンをかけるにも大きすぎるのでメンテナンス性は皆無と言って良いかも。そのあたりが気になるようになってきたらちゃんとしたスクリーンの導入を検討したい。

そして分配器。

HDMIが5系統1出力、光デジタルへの音声分離もできる。5系統あるけど

で埋まってる。これ以上なんか増えた場合には同じ分配器をもう一個買ってネストしたハブにするかプロジェクターのもう一つの入力系統に刺すかを考えたい。

プロジェクターを配置するのに良い感じの台とかは存在しなかったので天吊り金具を導入した。

[asin:B0078199Z6:detail]

あと、買ったものじゃないけどサウンド

4年くらい前にPC用に購入したやつを流用している。サブウーファーを配置して2.1chにするかサウンドバーを導入するアップグレードを検討はしているけど当面これでいいかな。

配置のために用意したもの

ホームセンターで色々と仕入れた。

水道工事コーナーにあった金属のプレートに穴が空いたやつとパイプに引っ掛けるやつ。家には出窓部分があるのでそこに踏ん張り棒を装着。踏ん張り棒にパイプに引っ掛けるやつをつけてそこから金属のプレートを中継しプロジェクターを天吊り金具を使ってぶら下げている。

配置した状態はこんな感じ。

やってみて

でかい画面でイカをやるのは面白いし、映画を見るのも映画館的な雰囲気があって良い。

ただプロジェクターの設定かも知れないが発色が若干おかしい気もしている。でかい画面の前には些細な問題とも思える性格だけど気にする人にはよろしくない。

プロジェクターと固定器具だけで2万円未満、分配器もつけると3万円から4万円くらいでホームシアター的環境を作ることができた。サウンドシステムの増強を最低限でもやれば6万円程度くらいか。普通のプロジェクター1台未満の値段で環境を作ることができそうだ。

当面の課題は、部屋を暗くするソリューションが無いこと。カーテンの到着が待たれる。