Scratch 1.4でブロックを追加するチュートリアル(続き)

前回のエントリは思ったよりアクセスがあったので補足しておく。
リストを扱うブロックを作る場合、ブロック追加のメソッドの修正と、リスト処理を行うメソッドの追加だけでは十分ではない。その他に、デフォルト値としてリスト名を自動的に設定することと、要素の位置を表す引数に数値以外が指定された時の処置を行う必要がある。
その辺りは、前回も参考にした’replace item’を真似しながら対応していくことにする。

続きを読む

Scratch 1.4でブロックを追加するチュートリアル

授業でアルゴリズムを教えるのにプログラミング言語を使わない方法を探していて、Scratchでいいじゃんと思ったけど、Scratchだと簡単なアルゴリズムを記述するのに多くのブロックが必要だったりするので、かえって面倒くさくなる。
そこで、簡単なソートアルゴリズムを実装するのに有用なブロックをScratchに追加することにした。
そもそもScratch 2.0を使えば自由にブロックを作れるが、ここではSmalltalkerらしくScratch 1.4を改造してブロックを追加する方法を示す。

簡単に説明しようと思ったら、かなりの大部になったのでチュートリアルとして公開することにした。おそらく今の時点でこれを必要とする人はいないだろうが、備忘録として残しておく。

続きを読む

さくらVPSのubuntuアップグレードでトラブル

さくらVPSで運営しているサーバーにログインするとOSアップグレードしろとうるさいので、つい出来心でアップデートしてしまった。
作業そのものは簡単だったが、いろいろトラブルが発生してしまった。

アップデート作業後に再起動したところ、sshでサーバーにログインできない。pingをかけても到達しない。VPSのコントロールパネルからコンソールログインは可能なのでそこからpingをかけても名前の解決すらできない。

トラブル1: 名前の解決ができない

まずは名前解決から。さくらのVPSでubuntu12.04にアップデートしたら、resolv.confの中身が空っぽになった件を参考にして、/etc/resolvconf/resolv.conf.d/base に以下を追加した。

search sakura.ne.jp
nameserver 210.188.224.10
nameserver 210.188.224.11

その後、sudo resolvconf -uを実行したらresolv.confが生成されて名前解決するようになった。(実際にはネットワークにつながらないので名前参照中にフリーズする)

トラブル2: ネットワークにつながらない

ネットワークがつながらない原因はよくわからない。が、ここを参考にしたらうまくいった。

具体的には、sudo ln -s /sbin/ethtool /usr/sbin/ethtoolとするだけ。(本当にこれが原因か?)
この後再起動したらネットワークがつながるようになった。

トラブル3: MySQLが起動しない

ネットワークがつながったところで、このブログを閲覧しようとしたら、大きな文字で「データベース接続確立エラー」と表示されてしまった。
mysqlコマンドでデータベースに接続しようとしても接続できない。(エラーメッセージは失念)
UbuntuをアップグレードしたらMySQLが起動しなくなったAdd Starを参考に、/etc/mysql/my.confを修正したら接続できるようになった。

理由は以前のサーバーの設定として認識されていたdefault-character-set=utf8が、アップデートされたサーバーで認識できなくなったからで、それらを全て(ウチの環境では2カ所)character-set-server=utf8に置き換えればよかった。
置換後にsudo service mysql startとしたら、無事にサーバーが起動しブログもこのように閲覧できるようになった。

やっと一息

今までの積み重ねでようやくここまできた。
Screen Shot 2014-03-06 at 21.36.20
上は、Cortex-M4ベースのマイコンボード(STM32F4DISCOVERY)上でMicroSqueakが動くの図。今のところシリアルにメッセージを流すくらいしかできないけど。

OS X(Maverics)にSTM32F4DISCOVERY用の開発環境を構築する(サンプル実行編)

前回ビルドしたサンプルプロジェクトの実行方法について説明する。

ST-LinkはSTM32のデバッガ&プログラマで、STM32F4DISCOVERYではジャンパピンの設定によりオンボードでST-Linkが利用できるようになっている。
openocdは、ST-Link経由のマイコンとのインターフェースをTCP/IP通信で提供するもので、gdbなどを用いたデバッグが容易にできる。
続きを読む

OS X(Maverics)にSTM32F4DISCOVERY用の開発環境を構築する(サンプルビルド編)

前回に引き続いて、STM32F4DISCOVERYのプログラムのビルドについて説明する。
STM32の開発環境は有償、無償も含めていろいろあるようだが、Eclipseのような○○なものを使いたくないので(○○はお気に入りの言葉を挿入)、Emacsおよびシェルを用いて開発を行うことにする。
続きを読む

OS X(Maverics)にSTM32F4DISCOVERY用の開発環境を構築する(準備編)

秋月電子でSTM32F4DISCOVERYを買ったので、Mac OS X(Maverics)上に開発環境を構築してみた。

STM32F4DISCOVERYはCPUとしてARM Cortex-M4をコアに持ったSTM42F407VGT6をもったワンボードマイコンである。1MB Flash ROMと192KBのRAMを積んで\1,650というのは安い買い物である。

開発環境構築の流れは、MacでSTM32F4-Discoveryの開発環境を構築してChibiOS/RTを動かすのサイトを参考にした。このサイトに従って、arm-none-eabi-gcc, arm-none-eabi-gdb, openocdを順にインストールしていく。
続きを読む

ubuntu上でMicroSqueakをビルドする

ふと思い立って(現実逃避ともいう)ずっと放っておいたMicroSqueakに手をつけた。

MicroSqueakは、John Maloneyにより作られた、小さなSqueakのVMとイメージを作るためのパッケージである。以下のサイトで公開されている。
http://web.media.mit.edu/~jmaloney/microsqueak/

MicroSqueakでは以下のような流れで新しいVMとイメージを作成する。

  1. 古いVMで開発用のイメージ(MicroSqueakDev.image)を起動する。
  2. 起動したSqueakで、新しいイメージ(msqueak.image)を生成する。このイメージが新しいVMで使われるイメージとなる。
  3. 同様にSqueakで、新しいVMのソースファイルを生成する。
  4. 生成されたソースファイルから新しいVMをビルドする。
  5. 生成されたイメージを、ビルドしたVMで起動する。

オリジナル版はMac用のソースを吐き出すようになっているが、手元の環境ではビルドできそうになかったのでそのままの状態で放置していた。

そこで、今回はVirtual Box上のubuntu 12.04LTS(32bit版)で動くように、機種依存部を作り(過去のVMソースからパクり)、機種非依存部のコード生成の問題を解決するチェンジファイルを作成した。

20140224a.3.cs

ubuntu上で動くMicroSqueak VMをビルドする手順を以下に示す。
続きを読む

ビデオ公開:「なんちゃってFlow-based Programming」

すっかり忘れていたのだが、昨年末のSmalltalk勉強会(兼忘年会)で発表したビデオを(遅ればせながら)公開しました。

「なんちゃってFlow-based Programming」 – YouTubeのビデオ貧弱なプレゼン資料

いま取り組んでいるPharo上のビジュアルプログラミング環境(Fluo)について簡単に発表しています。Fluoの細かいところは全て省いていますが、何となく雰囲気はつかめるのではないかと思います。

概要はこちらにもまとめてあります。

コメントなど歓迎です。