参加者の皆様、お疲れ様でした。 おかげ様で非常に面白い話が聞けました。 特に梅澤さん、質問ばかりですみませんでした。 梅澤さんのお陰で勉強会の体をなしていたといっても過言ではないと思います。 ありがとうございました。

確かに動き続けるプログラムを語る上でSmalltalkは避けて通れない、 大変参考にすべきものですね。 GemStone の話がとても興味深かったです。あと GLASS も。Smalltalk+マルチユーザ環境が僕が求めていたものなのかもしれません。 マルチユーザ環境を実現する過程で、他にあげた要素が必然的に 必要になってくる気がしますし。

惜しむらくは、マルチユーザっぽいSmalltalkの処理系で、 フリーで使える環境がないということですね。 しかしなんにしても、Smalltalk面白いなあ。

See Also

posted by Png genki on Wed 5 Mar 2008 at 00:46 with 4 comments
posted by Png genki on Tue 4 Mar 2008 at 13:18

コンソールから使えるバイナリエディタ 「bvi」 の紹介です。

bviは、名前の通りViのような使い勝手のバイナリエディタです。

bvi

ちょっとバイナリデータを修正しなければいけなくなったとき(?)に重宝します。

posted by Png genki on Tue 4 Mar 2008 at 13:11

このBlogシステムでは、myopenid.comにあわせて、 IdPに対して "nickname" と "email" を必須パラメータとしていましたが、 IdPによってデフォルトで持っているパラメータが違うため、 場合によってはこれらのパラメータを別途入力してから、 再度トライしてもらう必要がありました。

これは非常に敷居が高いため、要求したデータが得られなかった場合、 足りない情報をその場で追加できるようにしました。 OpenIDの仕組み上、このような仕組みを用意することは 必要になってきそうですね。

posted by Png genki on Tue 4 Mar 2008 at 06:49 with 3 comments

イベントのお知らせです。

Smalltalk勉強会

Smalltalkの基礎を学び、大いに語りあいます。

  • 日時: 3月4日 19:00-22:00
  • 場所: ドリコム(地図
  • 準備: Smalltalkの処理系 (Maiha氏のお勧め) をインストールしたノートPC or 熱い想い

参加人数は10人程度を想定しています。 参加希望者はTwitterで@takiuchiか@technohippyに声をかけてください。 この記事にコメントをいただいてもOKです。

それでは、よろしくお願いします。

See also

更新履歴

  • 2008/3/4 See also を追加
posted by Png genki on Mon 3 Mar 2008 at 19:01 with 4 comments

Background処理に関する最近の動向調査に関するメモ。

starling 面白そうだな。試してみよう。

posted by Png genki on Mon 3 Mar 2008 at 16:55

今回は、大げさな機能ではないですが、 知っているとちょっと便利なHelper関数を紹介します。

cycle

まずはcycle。これはCSSのクラスにeven, oddを指定する場合のような、 周期的に繰り返す文字列を簡単に埋め込むことが出来ます。

   1  @items = [1,2,3,4]
   2    <table>
   3    <% @items.each do |item| %>
   4      <tr class="<%= cycle("even", "odd") -%>">
   5        <td>item</td>
   6      </tr>
   7    <% end %>
   8    </table>

pluralize

英語のみですが、数詞の語尾変化を適切に行ってくれます。

   1  pluralize(1, 'person')          # => 1 person
   2  pluralize(2, 'person')          # => 2 people
   3  pluralize(3, 'person', 'users') # => 3 users
   4  pluralize(0, 'person')          # => 0 people

posted by Png genki on Mon 3 Mar 2008 at 15:29

身の回りに溢れているほとんど全てのプログラムは、 静止状態の表現としてソースコードを持ち、 計算機上で実行され、そして終了します。 少なくとも、終了しようと思えばできるように作られています。

しかしながら、近年では、Webサーバやネットワークプログラムのように、 継続的に動作することが当たり前で、停止状態に移行する事自体が 例外とされるようなプログラムが珍しくなくなってきています。

RubyやPerl, Pythonなどの動的言語と呼ばれる言語が普及し、 プログラム言語の価値は、実行速度から開発速度で測られる 比率が高くなりました。 そんな中、去年ぐらいから、静的言語でも動的言語でもない、 新しいプログラミング言語のパラダイムの可能性について考えています。

はてしない物語。終了状態の無いプログラム。

停止することなく、動き続けることが想定されるService型プログラムを 記述することに特化した言語があってもいいのではないか。 そんな事を思うようになったのは、 Rubyistにはお馴染みの irbdruby を頻繁に使っていたからかもしれません。

NEPL ≒ irb + druby + Erlang + Sandbox

今のところ、open な druby サーバに対して irbで接続しに行くというのが、 一番それらしいものが得られる方法だと思います。 しかしながら、openなdrubyサーバを用意するのは非常にリスキーです。 ErlangのActorモデルや、エラー処理に関する哲学が参考になりそうです。

NEPL処理系が実現すると、 ソフトウェア開発のスタイルが大きく変わるのではないかと思います。

  • ソースコードを書いて、リポジトリにコミットするのではなく、 NEPL処理系に接続し、irb的なshellからActorを登録する。
  • 仕様をActorの評価関数(計算機リソースの割り当て比率を決める)として定義する。
  • バグを見つけてソースコードを修正するのではなく、 バグを定義してActorに対する罰金(ペナルティ)を課し、終息させる。

何かとりあえず動くものを形にしてみるべきですね。 $SAFE = 4なrubyとdrubyをベースにするか、 JavaScriptを使ってやるか、そのあたりを考えています。

See Also

posted by Png genki on Sun 2 Mar 2008 at 17:07 with 8 comments

以前のブログで大量のSpamコメントに困っていた経験から、 コメントを付ける機能をなくしていたのですが、 OpenID認証によってコメントを付けられるようにしました。

RestfulOpenIDAuthenticationプラグインに、まだ若干バグがあるようで、 一部のIdPでは正しく認証できない事があるようです。 その際は、Twitterで@takiuchiにご連絡いただければ、 プラグインの実装の改善に役立てさせていただきます。

よろしくお願いいたします。

posted by Png genki on Sun 2 Mar 2008 at 09:49 with 5 comments

Skypeチャットが便利なので各所で使っているのですが、 P2Pである制約上、最低2人のユーザが同時にオンラインになっていないと メッセージが流通されないという問題があります。

Chatルームの中で自分だけがオンラインの場合、他の誰かが オンラインになるまで自分が発言したメッセージは、ローカルに 保持されて伝達が保留されてしまいます。 そのため、AさんとBさんの二人しかいないChatルームの場合、 Aさんが発言した後にオフラインになり、その後Bさんがオンライン になったとしても、Aさんの発言はAさんのPCに保留されたまま、 Bさんには届かないことになります。

この問題を解決するために、僕は1台のPCでSkype botを常時起動しておき、 自分が使っているOpenChatに参加させています。 こうすると、誰かが一人でもログインしていれば、ボットとあわせて必ず 2人以上のユーザがオンラインになっている状態を保てるので、 すべてのメッセージが滞りなく流通するようになります。

というわけで、誰でも参加できるようなOpen Chat (会話の内容が知られても特に困らないようなもの)をお使いで、 参加メンバーが少ないため、常時2人以上のオンラインメンバーを持つ事が 難しいChatルームをお持ちの方のために、 SkypeBotアカウントを提供いたします。

SkypeIDは skype.s21g です。 適当にChatに突っ込んでいただければOKです。 Mac miniのアップデートをしている時以外は常時立ち上げています。

posted by Png genki on Sat 1 Mar 2008 at 11:23