2019年01月01日

「子供の科学」バージョンの Raspbian を試してみる

 年が明けました。旧年中は各方面にお世話になりました。今年もよろしくお願いします。

 この正月休みは、ラズパイネタを仕込もうと思っている。しばらく離れていたけど、今年はぼちぼち進めていきたい。今日は、「子供の科学」の「ジブン専用パソコン2」の OS イメージを使って起動してみた。

20190101-1.png

 「KoKa」こと「子供の科学」のロゴがデスクトップピクチャになっている。なお、この画面は VNC viewer を使って Mac からリモート接続してスクリーンショットを撮っているので、メニューバーに VNC 接続のアイコンが出ている。素の状態だとこのアイコンは出ないので、念のため。

20190101-2.png

 このシステムで、Love2D を使ってみたい。ラズパイに Love2D をインストールする話は以前に取り上げたけど、X11 でなくフレームバッファに直書きする設定で進めていた。この設定は、ラズパイ 1/Zero のように非力なマシンでも実用的な速度で動作するというメリットがある一方、ラズパイ単体でプログラミングをするには向いていない。「ジブン専用パソコン」のユーザー層には、「普通の」(= X11 の)デスクトップの中で Love2D のウィンドウが開いて、その中でプログラムが動作する方が、はるかに使いやすいはず。

 実は Raspbian Stretch にも Love2D のパッケージがある。sudo apt-get install love でインストールできる。これは、X11 に対応しているので、ちゃんと Love2D のウィンドウが開く。ただし、0.9.1 とバージョンが古い。なんとか 11.x 系列にできないものかな?(2019/1/3 追記:できました。記事はこちら。)

20190101-3.png
posted by toshinagata at 23:11| 日記

2018年12月28日

iMac 21.5 インチ (Late 2012) のメモリ増設・SSD 交換

 家族で共用している iMac (late 2012) の動作が遅い、と不満が出ていた。特に、Safari がめちゃくちゃ遅い。OS が Yosemite というのも一因だが、「最近さらに遅くなってきた気がする」という声もあったので、HDD がへたっているかも知れない。そこで、HDD を SSD に交換することにした。ついでに、メモリを 8G から 16G に増設しようと思った。

 この「ついでに」が余分だった。この作業、めっちゃくちゃ大変。下のようなページを見て、これならできるかなと思ってやり始めたんだけど…

…いやまあ一応できたんだけど、一時はどうなるかと思った。あとからこの動画を見たんだけど、先にこれを見ておいたらもう少しスムーズだったかな。

 一番大変だったのは、大きい方のロジックボードを外すところだった。スピーカーのネジを外してずらしておかないと、非常に困難だった。この件、動画には出てくるんだけど、上のウェブサイトでは触れられてなかった。最初スピーカーをずらさずに作業していて、ボードを外すことはできたのだが、戻すことがどうしてもできなかった。

 なんとか組み立て直すことに成功した。立ち上げてみると、明らかに体感速度が速くなった。へとへとになったけど、家族も喜んでくれたので、良しとしよう。

タグ:Mac
posted by toshinagata at 23:37| 日記

2018年12月24日

wxLuaApp: コンソールで print なしに値を表示

 GitHub - wxLuaApp の件。立ち上げるとコンソールが出てきて、ここで1行の Lua コードを実行できる。

20181224-1.png

 実は今までいくつか Ruby を組み込んだアプリを開発して、同じような機能を実装していた。Ruby では式と文の区別がないので(注1)、実行した Ruby コードが返した値を表示するようにしていた。ところが、Lua では式と文が区別されている。このため、「式」を実行しようとするとコンパイルエラーになってしまう。

20181224-2.png

 そこで、Lua コードをコンパイルして、コンパイルエラーが出たら return を直前につけて再度コンパイルするようにしてみた。これなら、文は文として、式は return 文として実行される。return 文から戻ってくると値がスタックに残っているので、それを表示すれば「式の値」が表示されたように見える。

20181224-3.png

 コンマで区切った複数の値が返せるのは Lua ならでは、というところですね。

注1:「式と文、評価と実行、そして副作用 ―― プログラムはいかにして動くのか【前編】」郡司啓氏、Rubyist Magazine 0039号

 Lua/LuaJIT は、思いついたことをすぐに試せる手軽さがいい。Love2D (LÖVE) も LuaJIT が記述言語です。うちの坊(中学2年)が Love2D で RPG 風ゲームのコーディングをやっておりますが、始めて半年ぐらいで、かなり自由に自分のアイデアを試せる段階まで来ました。「Scratch の経験はあるけど、テキストベースのプログラミングは初めて」という人には、格好のプログラミング環境じゃないかと思う。難易度は BASIC とそんなに変わらないし、BASIC よりも現代主流の言語につながりやすいと思う。もっと流行ってほしいな。

Twitter で #love2d_jp というハッシュタグがあるようですが、私は Twitter やってないので…

posted by toshinagata at 23:32| 日記
email.png
Powered by さくらのブログ