41歳文系ノンプログラマ、ハード連携開発に挑戦す ~第4話「5分でできるNode.jsに5時間かかった」

January 3, 2016

 

前回の記事で入手したドローンを、Scratchで動かすべく、いよいよプログラミングへ。

 

Scratch からミニドローンをコントロールできる Scratch2Airborne をつくりました

(「僕は発展途上技術者」より)

 

この記事によると、Node.jsってのを使って、何やら書くらしい。

 

ドローンを入手しようと思い立った時点で、私の意識は、

 

----------
ドローンを買ってくる
 ↓
(ドローンとScratchをつなぐ何かをやる)
 ↓
Scratchでブロックを組み上げる
 ↓
ドローン飛ぶ!
----------

 

だったのですが、この(ドローンとScratchをつなぐ何かをやる)の部分が、Node.jsでやるところです。プログラムする中身はGitHubにあるそうなので、Node.jsってのを入れれば、コピペとかしてりゃ、どうにかなるんでしょう、たぶん。

 


5分でできるってのびすけくんが言ってる

 

ところで、Node.jsってなんだ。

 

つい.jpとか打ってしまうので注意が必要だ。たまにハッカソンとかで、参加者のエンジニアさんたちが、「Node.jsで書いた」みたいなことを言っているのを耳にしていたので、そういう言葉が存在するのは知っている。

 

最近流行っているであろうプログラミング言語らしき何か。

 

何をどうすればいいのかまったくわからないので、「Node.jsとは」でググってみる。「~とは」ってググると、大抵、だれかが懇切丁寧に説明してくれてるサイトとかがあるから便利だ。

 

すると、こんなページが出てきた。

 

(参照)いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜

 

著者は、株式会社LIGののびすけ氏。おぉ、知り合いだ。

 

のびすけくんは、彼が岩手県立大学の学生さんだった頃から、幾度となくお世話になっていた若者。

 

どこへ就職するのかと思ったら、「世界一即戦力な男」と話題だった人物と株式会社LIGへ同期入社で、入社式でダンクができなくて会社に入れてもらえなかったとかなんとか。

 

この会社のサイトで記事を書いてるってことは、どうやら入社はできていたようだ。おめでとう。

 

そんなのびすけくんが「個人差はありますが、手際が良い人なら5分程度でプログラムを実行するところまでいけると思います! 爆速!」とか言っている。

 

手際がよいわけないので、30分とか1時間くらいかかっちゃうんだろうけど、のびすけくんの言うとおりにすれば、きっと大丈夫だろう。

 

いいページといい人に出会えてよかった。

 


何も動かないんですけど


彼の説明では、最初に「以下についてはMacなどターミナルでの動作を想定していますので、ご了承ください。」とか書いている。

 

「Macなど」

 

Windowsは「など」に含まれるのだろうか。ターミナルってなんだっけ?まぁ、いい。前に進もう。

 

のびすけくんの記事に、「基礎から学ぶNode.js」(技術評論社)という連載のリンクがあるから、そっちもさらっと見ておくことに。

 

リンク先の記事に「Nodeのインストール」という項目がある。インストーラで簡単にインストールできるらしいので、のびすけくんの記事に沿ってやる前に、まずはこっちをやってしまおう。

 

ということで、Nodeをすいっとインストール。ダウンロードページにバージョン違いが2つ並んでいるけど、どうやら安定版と最新版ってことらしい。とりあえず安定版を入れる。

 

「基礎から学ぶNode.js」に書いてあるほかのことは、眺めててもよくわからないので、またいつの日か。ありがとう、技術評論社さん。

 

で、のびすけくんの記事に戻ると、このNode.jsなるものは、更新頻度が高いそうで、バージョンアップにあわせて適宜、アップデートしないといけないらしく、それをお手軽に進めるためのツールが必要とのこと。

 

「Node.jsを使う前に、Node.jsを使った開発をおこないやすくするツールとしてNVM(Node Version Manager)を導入します。」

 

とあり、MVNのインストールのためのコマンドが書いてある。

 

$ git clone https://github.com/creationix/nvm.git ~/.nvm

 

・・・このコマンド、どこに書くの?入れたばかりNodeを開いて、そこに書いてみる。

 

はい、エラー。ここに書くんじゃないらしい。

 

どうやらGitというものをインストールしないといけないらしい。

 

Git。それはGitHubとは違う何か。何が違うのとかは、いまの関心事からはどうでもよくて、んじゃインストールしましょうよってことで、入れてみる。

 

Git Bashというのを開くと、ここにも何か書けるようなので、さっきのを書いてみる。

 

はい、エラー。でも、Nodeのバージョンの表示は、

 

$ node -v

 

と入れたら出てきた。半歩前進。しかし、そこから進まない。

 

 

「5分でできる」という甘美な誘い

 

「サルでもわかる」とか「5分でできる」とか、そういうタイトルで書かれたいろんな解説、世の中に多いですよね。初心者のハードルをぐいっと下げてくれるセンセーショナルなタイトル。

 

読み手からすればつい読みたくなるし、書き手にしても、いろんな人に多く見てほしいから、ついつけたくなるフレーズでもあります。

 

ところが、何かを伝えるというのはそう簡単な話ではないことがしばしば。

 

発した側がひとつの言葉にこめた文脈や情報量と、それを受け取った側の理解力や想像力にギャップがあると、発した側が「伝わるだろう」と思っていたとも、受け取る側には何ら伝わりません。

 

「Macなどターミナルでの動作を想定しています」という説明に、Windowsなど入るわけないだろうという、至極まっとうな指摘は、何も知らない側からすると、そうは受け取れない可能性もあるわけです。

 

何も知らない側からすれば、だったら「など」というあいまいな言葉を入れず、「Macを使ったターミナルでの動作を想定しています」とすべきでは?と、泣きながら反論したくなっちゃうわけです。

 

だって、何も知らないんだもん。

 


Windowsでどうにかしたい

 

しかし、インターネットの世界では、書いた側の意図通りに読めず、勝手に挫折しているバカな読み手が私という構図になるでしょう。だったら自分でもわかる情報を、自分で探せよってのが、おそらくインターネット的。

 

なので、Windowsではどうしたらいいの?というのを調べ直します。

 

いまはNode.jsのバージョン管理を簡単にできるようにするための環境を作ることに心を奪われているので、とにかくそこをどうにかしたい。

 

すると、NVMというのがそもそもMac向きであり、Windowsでは「Nodist」というのを入れるんだということがわかりました。

 

やり方が書いてあるサイトを見つけて、それに沿ってやってみます。

 

(参照)Windowsでnode.jsをバージョン管理する

 

NodeとGitはすでにパソコンにインストールしてある。次はこの記事にしたがって、「nodistをgit clone」する。コマンドを打ち込んだら、何やらいろいろ出てきた。

 

エラーっぽい表示があれこれあるけど、これでいいのかしら?まぁ、いい。何かできたっぽいから、次だ。

 

コントロールパネルから「環境変数」を変える。記事の説明が丁寧なので助かります。「理解しなくていいから、言われた通りにやれよ」みたいな感じで(書いたご本人はそういう意図はなさそうですが)進めちゃいます。

 

・・・が、動かない。Nodeのバージョンアップもできない。

 

ちょっと進んでは詰まる。こうしてやる気はそがれていく。敗北の歴史だ。

 

しかし、今回は違う。まだ「Scratchでドローンを飛ばしたい」というワクワクが勝っている。

 

今日中に攻め切らないと、気持ちが萎える可能性も高い。やりきらねば。

 


気がついてから戻ればいい

 

以前の記事で、ADHD的な要素に多動性、衝動性、不注意があるという話を書きました。多少の不注意があおうとも、プログラムの習得は、多動、衝動で進めてみようと。

 

ここまでの流れを見ていると、不注意全開でやっている様もよくわかるわけですが、あれこれやっていると、不注意だった内容にも注意が向いて、解決の糸口が見えてきます。

 

参照していた「Windowsでnode.jsをバージョン管理する」の記事の冒頭に、「nodistはどうやらバージョンアップでインストーラーが出たようです。」と書いてありました。

 

「以下のめんどい操作は必要ありません。」とか書いてあるのに、そのめんどい操作を頑張っていたわけ。その下にある記事本体の見出しの「Windowsからnode.jsを使いたい」に目を奪われ過ぎた。

 

そしてもうひとつ。ここまで、インストールの手順を

 

Node

Git

Nodist

 

と進めていたのですが、そもそもNodistなどのバージョン管理ソフトを入れてから、そのソフトでNodeを入れてねというのが正しい手順でした。のびすけくんの記事もそういう構成になっています。なので、たどるべきだったのは、


Git

Nodist

Node

 

というわけです。「知らない」というのは、こういうのにも気づきにくいわけです。だって、書いてあることの多くがわからないことだらけだから。この時点で、作業開始から4時間くらいが経過。でも、いいんです。

 

不注意で突っ走った結果、多少の困難があろうとも、気づいたら、そこまで立ち戻ればいいんです。学ぶプロセスに合理化や効率化は無用。それが独学ってもんです。(ただし、その気力が続く限り)

 

で、改めて調べると「node.js インストール備忘録(windows7)」という記事にも、Windowsで進める手順が書いてある。

 

先に入れていたNodeをパソコンからアンインストールして、今度はそっちに沿ってやってみて、ようやく成功!これでようやく、Nodeをバージョン管理できる状態でインストールすることができました。

 


ようやくわかる記事を見つめる

 

で、Node.jsを使える状態になったのはいいけど、どうやって使うのかしら?ちなみに、jsがJavaScriptの略の拡張子なのを、このくらいのタイミングで気づきました。なるほど。

 

のびすけくんの記事には、Hello Worldをやるところまでが書いてあった。

 

Hello World。

 

はじめて触るプログラミング言語で、ちゃんと動けすことができるかどうかを試すアレだ。画面にHello Worldって文字を、プログラムで表示させて「わーいわーい!」とか喜ぶヤツだ。

 

で、Node.jsでどうやって?あれこれ探していたら、ようやく出会えました。自分でもわかりそうな書き方をしてくれてるサイトに。

 

(参照)ビギナーのための Node.jsプログラミング入門
 

ここの最初にある「Node.js利用の準備を整えよう」という記事に、


「WindowsでもMacでも、Node.jsはコマンドプロンプトやターミナルを起動し、コマンドを実行して使います。何しろこれ、ただの『サーバー環境のスクリプトを実行するプログラム』でしかないのですから。コマンドで『このスクリプトを実行しろ』と命令するぐらい、他に機能なんてありません。」

 

とある。で、

 

「Node.jsの利用の仕方はとてもシンプルです。『スクリプトを書く』『コマンドで実行する』――これだけです。」

 

とある。なるほど、そういうことなのね。知らなかったよ。

 

自分にとってNode.jpに関する「知らない」とは、こういうレベルを言うのですw

 

やっと出会えた嬉しさで、この著者がお勧めするテキストエディタ「Notepad++」もインストールして、Hello Worldに挑戦すると、すんなり成功。よかったよかった。

 


いざ、Scratch連携へ・・・!

 

ここでようやく、Scratch連携に必要なNode.jsのプログラムに手をつけることができます。

 

ライブラリをインストールして、ドローンの電源を入れ、ついでにScratch1.4もインストールして・・・とやってところ、どうもBluetooh絡みでエラーが出てるっぽい。

 

パソコンのBluetoothがオフになってんだろうなと思い、設定を見ると、そもそもBluetoothの設定画面がない。もしやと思って調べてみると、いま使っているマシンにはBluetoothが搭載されていないことが判明!

 

まーじーかー!!

 

(つづく)

Please reload

Recent Posts

Monday, December 18, 2017

Please reload

Search By Tags
Please reload

Follow Me
  • Facebook - Black Circle
  • Twitter - Black Circle

※本ブログの掲載記事の取り扱いは、出典表記や特別な注記がない限り、クリエイティブコモンズCC-BY-2.1-JP ライセンスに従うものとします。