もう一つのJoy in Squeak

https://propella.hatenablog.com/entry/20070715/p1で出遅れてしまったJoyですが、ようやくマイJoyを作るところまできました。といっても3日仕事なので途中までしかできていません。

ちょっと思うところあってJoyの勉強をしはじめ、オリジナルのソースを眺めながらあれこれと処理系を作ってみました。特徴としては

  • 将来のことを考えて(?)再帰的に実装してない。
  • パーサにMMetaOMetaを使った。

くらいです。作りとしてはminiscmをマネました。

MMetaOMetaについてはかなり以前にhttps://squeaker.hatenablog.com/さんから丁寧な説明のメールをいただいたままにしていたのですが、アドバイスに従って作ってみたらあれよあれよとパーサができてしまいました。

パーサを作る段になると気分が滅入ってくる身としては本当にありがたかったです。

Squeak+MMetaOMeta万歳。

Joyのソースはもうちょっと体裁を整えたら公開します。

追記:OMetaとMMetaを混同してしまってすみませんでした。

教育力の向上

ここ数年、自分の教育力に大きな疑問を持つようになってきました。教育力の向上のために教員同士の授業参観のようなものもあるのですが、やはり同僚相手では構えてしまったり分野がかなり離れてしまっているせいかうまくいってません。

関係する分野で尊敬する先生が行っている授業を受けたいと思っていたところ、ちょうど良いことに比較的気軽に参加できそうな形態の大学が出来たのでさっそく科目等履修生として受講しようと思いました。

タイミングがずれて応募はできなかったのですが、当の先生に次回募集での受け入れをお願いしたところ激しく拒否されてしまいました。うーん残念。

受け入れていただけると本当にありがたいのですが…

GEMSキャンセル

宮坂先生のところのGEMSワークショップを家庭の事情でキャンセルすることになってしまいました。

http://mts-j.hiho.jp/2007/09/post_12.html

今年は忙しくなかなか外(=県外)に出られなかったので、このワークショップへの参加を楽しみにしていたのですが本当に残念です。また、急なキャンセルでご迷惑もかけてしまいました。

本家のサイトでも催しているので時間が調整できたら別途参加しようと思います。

http://www.jeef.or.jp/GEMS/gems.html

初志不貫徹

一度決めたことを最後までやり通せずに終わってしまうことが多くなったような気がします。個人的な事情も絡んでいるのですが、今までの経験上、後悔するハメになることはよくわかっているのですが。

予期しないエラー

debian化したUSL-5Pでsambaの設定は無事おわり、netatalkの設定をしました。iBookから接続したら予期しないエラーが発生してマウントできません。

パスワードダイアログやマウントボリュームの選択まで行くのでnetatalk関連の設定ではないようです。表示されるエラーは「エラーコード -5014」というものでネットをいくら探しても該当するエラーが見つかりませんでした。

仕方がないので一度USL-5Pを再起動したら接続できるようになりました。しかし今度は復旧したはずのフォルダが見えません。これは単にUSB接続のHDDが自動マウントできなかっただけだろうと思い、手動でマウントしました。

再度iBookから接続しようとしたらやっぱりマウントできません。

怪しいとおもって接続するボリュームのルートにある.AppleDB.AppleDoubleフォルダを削除したら無事に接続できるようになりました。やれやれ

OWL-EGP35/U2

今回HDDをUSB接続するのにOwltechの「3ステップケース簡単組み立てガチャポンパッ」という組み込みキットを買いました。近所のPCショップにファン付きがそれしかなかったのが購入の理由ですが、作りがしっかりしていてなかなか良いようです。

心配していたファンの音もそれ程でなく、ケースの開閉、HDDの固定など工夫がこらされていて使い易いです。ファンのおかげで発熱もひどくないようです。まあ、良さ(悪さ?)がわかるのは数年後になってからなのかもしれませんが、当面このHDDを使っていこうと思います。

USL-5Pのdebian化

幸いにもUSL-5Pを死蔵していたのでこれをdebian化して同様のシステムを構築するつもりです。とりあえず、下のサイトを参考にdebian化しました。

http://eggplant.ddo.jp/www/pukiwiki/index.php?USL-5P

おおまかな手順としては、

1.USL-5Pに載せられている64MのCFのバックアップをddでとる。

2.別途用意した256MのCFにバックアップデータを復元する。hosts等必要な設定ファイルを修正する。

3.usl5p-telnetd-update.tgzでtelnetdを組み込む。

4.1GのMicroDriveに3つのパーティション(オリジナル用、SWAP用、debian用)を切る。

5.256MのCFをPCでマウントしてtgzにし、MicroDriveのオリジナル用パーティションに展開する。

6.256MのCFでUSL-5Pを起動し、MicroDriveをUSB接続してliloを組み込む。

7.あとは先のサイトで紹介されている方法でdebian化する。

試行錯誤を繰り返しながら正味4時間くらいの作業で完了しました。あとはUSBのHDDを接続してバックアップデータを元に戻すだけです。これはかなりかかりそう。

NASのHDDが死ぬ

休み中は停電があるので研究室のNAS(debian化玄箱)の電源を切っていました。先日ひさしぶりに研究室に行ってNASの電源を入れてみたらいつまでたってもPCからマウントできません。

フロントパネルを見てみたら電源やLINKのランプは消えていて、かわりにDIAGランプが点滅しています。点滅の回数を数えて見ると6回。悪い予感がしながらウェブを調べてみるとHDD異常のようです。

以前にも似たようなことがありました。このときはLinkStationで個人的なデータのほとんどが失われてしまいました。今回も電源を切る前に危険性があると思ってフルバックアップをとっていたのは幸いでした。

毎日動かしているHDDを急にとめるとよくないというのは聞いたことがありますが、知らない間に停電でバシャっと行くのも恐いので仕方なく止めていました。なんかそれだけの理由とも思えないのでもう玄箱を使うのはやめることにしました。

牧岡

昨日はいつもボランティア活動でご一緒させていただいている方のお家までお邪魔してきました。毎年夏にそのお宅が受け入れ先となってワークキャンプを行っているので、今年の実施を前に打ち合わせも兼ねて訪ねていったのです。

今年の参加者は海外勢が圧倒的に多く、さらにほとんどが女性ということで何をやろうかという話だったのですが、新潟で起きた地震のこともあるので、今年は山梨で活動するのではなく震災の地に行ってボランティア活動したいとの話でした。最終的にはワークキャンパーの議論によるのだと思いますが、良い結果になればと思います。

お宅のある場所は山梨県の牧岡町というところです。今は山梨市に合併されてしまいましたが、山梨県の中でも奥に入っていて静かで落ち着いたところです。国道からとにかく道を上にあがるように辿っていって、これ以上はないだろというあたりまでいくと、周囲を山に囲まれた別世界があります。下はうだるような暑さでも、そこはひんやりと静かで虫の鳴き声も涼しげです。一緒に行った人が、もし山梨に永住するならここにしたいと思っていたと話されていましたが私も同感ですね。

最近では団塊の世代とおぼしき方が土地を買いにくるようですが、そのうち賑やかになるのでしょうか。

SQL Server 2005のバックアップ&復元を使ってデータベースをコピーする

状況:2台のPCでSQL Serverが稼働中。一方のデータベースを丸ごともう一方にコピーしたい。

概要:一方でデータベースをバックアップし、そのファイルをもう一方に転送してリストアする。

手順:

MS SQL Server Management Studio(以下MSSMSと略)にて。

コピー元とコピー先のデータベースをsaアカウントで接続する。(うちの環境ではWindows認証不可のため)

MSSMSのオブジェクトエクスプローラでコピー元のデータベースを選び、管理を右クリックし「バックアップ」を選ぶ。

ソースのデータベースを選択し、バックアップの種類は「完全」とする。

バックアップ先のファイル名をメモ。

OKを押してバックアップする。

先ほどメモしたバックアップファイルをコピー先のPCに転送する。

MSSMSのオブジェクトエクスプローラでコピー先のデータベースを選び、データベースを右クリックし「データベースの復元」を選ぶ。

復元先データベースを入力or選択する。

復元用のソースを「デバイス」として参照ボタン(…)を押し、バックアップの場所の追加ボタンを押して、先ほど転送したバックアップファイルを指定する。

ページの選択で「オプション」を選び、復元オプションで「既存のデータベースを上書きする」を選ぶ。

OKを押してリストアする。

データのインポート/エクスポートウィザードではインデックスやストアドプロシージャなどがコピーできなかったので上記の方法を採用した。

きっと他にもっとスマートな方法があるはず。

補足1

どうもセキュリティ関係はそのまま引き継げないようで、ログインできなくなってしまった。仕方ないのでコピーしたデータベースのユーザーを一旦削除し、ログインのユーザーマッピングを設定しなおしてユーザーを再生成したらログインできるようになった。

また、ストアドプロシージャの権限もユーザーを追加してExecute属性を設定しなければならない。