Squeak

Squeak5.0で日本語表示をするシリーズ: とりあえずJapaneseEnvironmentを直してStrikeFontで日本語を表示できるようにする

おそらくここらへんは将来的にはなくなる予定の仕組みなのかもしれないのですが、とりあえず淡々と直していきましょう。いったん TrueType のことは忘れて StrikeFont(ビットマップフォント)で日本語を表示できるようにします。 まず最初に、既定のフォン…

Squeak5.0で日本語表示をするシリーズ: (寄り道編)ワークスペース内容をHTMLで保存する機能追加

Squeak5.0の日本語フォント表示周りをぼちぼち直していこうかと件のTTなんたらクラスの動きをちまちま調べている途中、ワークスペースにメソッド内容などをコピペしてメモを作ったりしているうちに、シンタックスハイライトできれいに色づけされた文字属性も…

Squeak5.0で日本語表示をするシリーズ: FontImporterTool を使う

ご多分に漏れず1バイト文字圏に自由気ままに振る舞われているのと、将来的には EncodingTag/leadingChar とかの仕組みが変わるような話も耳にして、5.0 までになった Squeak ではもはや日本語表示は無理なのかなぁ…4.3J とか 4.4J を使い続けるかなぁ…と、…

Ask Reddit に見る、そんなあなたが Squeak Smalltalk 使ってみたところで幸せになれるとはちょっと思えない10の場合

ときどきの雑記帖 リターンズ - Redditに訊け: Squeakのナニが間違っているのか? 経由で Ask Reddit: So what is wrong with Squeak Smalltalk? をながめていて、つらつらと「こういう場合は、ちょっと Squeak Smalltalk は薦めにくいなぁ…」とおもんみたと…

Squeak Smalltalk 向けの分散処理関連で遊ぶ

どう書く?org - 分散関数呼び出し に触発されて、これまで苦手にしてきた…というかほとんど知識のない通信・分散処理系のしくみをいじったのでメモ。例によっていろいろと勘違い and/or そんなことふつーやらねーよ的なことを書いているかもしれませんが、…

サンタクロース問題を Squeak Smalltalk で 2

id:sumim:20070607:p1 の続き。 jijixi さんの JoCaml 版に触発されて、トナカイとこびとたちが独立したスレッドになっていてチョーかっこいいっ!&ところでこのサンタってぜんぜん寝ないですげー勤勉に働いてなくなくね?版。 | トナカイたち こびとたち …

サンタクロース問題を Squeak Smalltalk で

今日の一行 - [お題] サンタクロース問題 Squeak Smalltalk のスレッドは、処理を記述したブロック [...] に fork を送信することで、手軽に作ってフォークさせられます。ただ、よほどのことがない限り、他へは制御を渡さないので(^_^;)、今回の求められてい…

Erlang の ring benchmark を Squeak Smalltalk で

haskell - haskellのある暮らし - リングノードベンチマーク: Erlang vs Haskell 経由で知った、Programming Erlang の Chapter 7 [β版 PDF] にある課題に Squeak Smalltalk にて挑戦。 そのまえに、Squeak Smalltalk でどのていど太刀打ちできるものなのか…

トレイトで遊ぶための最低限のブラウザ拡張

Squeak3.9 で Traits(トレイト)を扱うにあたっては、公式には OmniBrowser を使え…ということになるのでしょうが、ちょっと試した感じ、残念ながら OmniBrowser は私の手にはなじまないようです。そこで、使い慣れたクラシカルなシステムブラウザでも、ト…

トレイトで、再定義時に遮蔽されてしまうメソッドを super へのメッセージングで呼び出せるようにする方法

Ruby のモジュールや Strongtalk のミックスインは、継承パスに挿入された抽象的なクラスのように振る舞うため、下位のクラスやモジュール(ミックスイン)でオーバーライドしたメソッドでも、 super(Strongtalk では super へのメッセージング)でコールで…

トレイトにおける、メソッドコンフリクト時の対処のしかた

多重継承機構を利用する際の問題としてよく取りざたされる「メソッド名のコンフリクト(衝突)」ですが、Squeak Smalltalk のトレイト機構(Traits)では、同種のミックスイン機構の場合と異なり、その対処はユーザーに委ねられます。 たとえば、いずれもメ…

新規トレイト作成用のテンプレートをクラスブラウザに出させるための細工

「トレイト」は Squeak で 3.9 から組み込みになった Ruby のモジュールライクな多重継承機構(Traits。この場合、複数形?)や、そのエンティティの名前(trait)、および、オブジェクトとしてのそれ(Smalltalk なら当然!w)が属するクラス名(Trait)の…

Ruby の落とし穴:モジュールの特異メソッドは include 先クラスからはコールできない?

[ruby-talk:247201] Re: class を読みつつ、へぇ… Ruby には module_function なんて機能(インスタンスメソッドの特異メソッド化?)があるんだ…とか軽く驚きつつ、でもこれって include Foo した Bar からは呼べないのか…と不思議に思ったのでメモ。当初、…

Croquet SDK 1.0 リリース

Croquet(クロッケー)は、3D仮想空間をネットワーク経由で共有するためのフレームワークです。Squeak システム上に Smalltalk で実装されています(いまのところはまだ? 将来的はどうなんでしょう…)。 David A. Smith's blog - Croquet SDK 1.0 Release…

Squeak Smalltalk で FizzBuzz

コメント欄が「キミならどう書く? 〜いろんな言語で FizzBuzz 〜」状態…になっている Raganwald: Don't Overthink FizzBuzz より。当該エントリー中に提示されている Ruby で書かれたちょっと変わった実装の動きがよく分からなかったので、例によって Squea…

#includes:(あるいは Ruby の include?)のコストは高く付く

ユメのチカラ: Rubyで習作の性能評価 より。正直、あまりコストのことは考えていなかったのですが、こんなふうに歴然とした差を見せつけられると、簡潔に書けて便利だからといって、安易に #includes: を使ってはいけないのだな…と気づかされます。勉強にな…

自然対数の底を求める

shinh さん の anarchy golf に、自然対数の底を小数点以下 100 桁までを出力するコーナー(?)があるのですが、ちゃんと求めようとすると(もちろん、ゴルファとして、この時点ですでに考え方が間違っているというのはおいておくとして…)どうしてもタイムア…

3つのファイルから比較表を作成

404 Blog Not Found:ruby - 添削 - もっとDRYに と、Matzにっき- ユメのチカラ: Rubyで習作 添削 経由で。キミならどう書く?的なノリでトライしてみました。例によって、Squeak の Smalltalk で書いてから、あとで Ruby の直訳っぽいのを載せます。 まず Sq…

テニスの取得ゲーム状況

キミのコードが汚い理由 − @IT をうけた、Haskell 脳その他の方々による Ruby 版などを拝見。 sshi.Continual - 美しいコード? 趣味的にっき - テニスの勝負判定コード Tommy Heartbeat 2nd - 美しいプログラムコードとは。 バカが征く - めんどいからRuby…

特異クラス定義の文法のナゾ、と Squeak の“なんちゃって特異クラス”

rubyco(るびこ)の日記 - 疑問:特異クラスの構文の不思議 発で、サブクラス定義時は class NewSub 調べてみると Matz さんの発言で件の構文が登場するのは [ruby-list:4677] が比較的古いもののようですが、これ(と、一連のやりとりの中)にはなぜ 私は r…

Squeak3.9 のオートインデント機能をオフにする

いっとき鳴りを潜めていた改行時のオートインデントが 3.9 でまた性懲りもなく復活したのですが、どうにも慣れないので解除しようとしたところ、なんと、今度のはオフ and/or 回避ができない! がーん。 ソースを見ると、いちおう ctrl + return で回避でき…

プレゼント交換 再び… 2

鍋あり谷あり - あなたならどうお書きになります1.0 経由で、{informa,computa,evolu}tion: プレゼント交換の手伝い の Mathematica 版がどんなふうに動いているのか興味を持ったので、それを調べる過程で Squeak の Smalltalk で直訳…というか意訳ぎみにし…

プレゼント交換 再び…

仕切り直しで 鍋あり谷あり - あなたならどうお書きになります1.0 に再チャレンジ。 今度は大丈夫だと思うのですが…(^_^;)。 ウリは、大人数の場合、たとえば 100 人参加のパーティでも、平均 0.5 秒程度 @ 1 GHz PenM(ruby 1.8.5 (2006-08-25) [i386-cygwi…

プレゼント交換のペアを決めるスクリプト

#二組四人のときに四通り…というくだりで気づくべきでした(^_^;)。当方で問題を取り違えておりました。ごめんなさい。以下はそのまま晒しておきますが、タイトル共に間違いでリンク先の“お題”とは全然関係ない内容になってしまっていますので、どうぞあしか…

"if necessary" vs. "if need be" vs. "may be"

いやなブログ - 学校では教えてくれないバッドノウハウ英語 #3: if need be より。Squeak の Smalltalk におけるメソッド名(セレクタとも言う)ではどうなっているのか調べてみました。 話題の if need be はありませんでしたが、if needed for がよく使わ…

ハローワールドはどう書くべきか

もとはD言語で、d.y.d. - こんにちは世界 発の、import 不要な(しかしC言語の)printf 版、std.stdio.writefln 版、std.cstream.writeLine 版と、% を特別扱いしない writefln の提案。これを受けて他のユーザーから、プラグマを使った版、Smalltalk でい…

単語の出現頻度を調べる

rubyco(るびこ)の日記 - 単語の頻度を調べる を Squeak の Smalltalk で。 Smalltalk には、毎度お馴染みの Bag があるので、これを使うと便利です。というか、Bag が他に役立つ場面を思いつかんとです。 | string | string := 'We wish you a Merry Chris…

'SAKURA' -> 'HZPFIZ' な暗号文を復号する

熱血!平成教育学院の今夜の放送の問題より。復号(暗号化も同じ)のためのスクリプトを Squeak の Smalltalk を使ったいくつかの方法で。 ■対応する復号文字の ASCII コードを計算で求めて #collect: | codeString | codeString := 'HZPFIZ'. ^ codeString …

サブクラスから自身がオーバーライドしたスーパークラスのメソッドを呼びたいとき 2

id:sumim:20061201:p1 の続き。ここで、Ruby でメソッドを“引っこ抜いて叩く”例に相当するものを Squeak の Smalltalk で次のように書いたところなのですが… D >> bar2 | method | method := self class superclass lookupSelector: #foo. ^ method valueWit…

サブクラスから自身がオーバーライドしたスーパークラスのメソッドを呼びたいとき

より正確には、サブクラスのインスタンスから、自身が属するクラスがオーバーライドしたスーパークラスのメソッドを、自身が属するクラスに定義した別のメソッドからコールしたいときにはどうするか?…でしょうか。(^_^;) 2chの Ruby 初心者用スレへの投…