.starファイル

最近からGNU Smalltalkのvar3.0をぼちぼちいじり始めているのですが、とりあえず最初に気付いたことは .starファイルをエディタなどで編集してはいけないという事。.starファイルはただのプレーンテキストかと思いきや実はちょっとしたアーカイブファイルみ…

画像生成

gnu-SmalltalkでCaptchaのような事をしたいのです。けど、今のところ画像を生成するようなメソッドやパッケージなどは用意されて無いようです。SqueakにはSW2Captchaというすごく便利そうなパッケージがある(Morphicで画像を生成しているらしい?)gstでもT…

gstの正規表現

日本語も使えるんだ。今更気付いた。(遅すぎ) #!/usr/bin/env gst | string rwStr | string := 'aてdigすlBaーa95Aj82とleぉぉぉ89348hg'. rwStr := ReadWriteStream on: ''. string onOccurrencesOfRegex: '[あ-ん]' do: [:regs | rwStr nextPutAll: regs…

テンプレートエンジン その2

以前の記事で書いたしょぼいコードの件なのです。あのコードの中では大域変数を使っているのですが、それよりも Dictionary を使えばいいんじゃねーか? ということで、ちょっと書き直し。 #!/usr/bin/env gst -Q FileStream fileIn: 'GST_DIR/smalltalk/net…

gstでTcl/Tk8.5 解決

昨日の記事で書いた GNU Smalltalk2.3.6+Tcl/Tk8.5 の問題が解決しました。 $ cd /usr/lib $ sudo ln -s /usr/local/lib/libtcl8.5.so.0 libtcl8.5.so $ sudo ln -s /usr/local/lib/libtk8.5.so.0 libtk8.5.so なんと、これだけで解決。Tcl/Tk8.5をインスト…

gstでTcl/Tk8.5

Tcl/Tk8.5の正式版がやっとリリースされたので早速導入してみたい。が、自分が使っているUbuntu用のバイナリはまだ無いようなので、ソースから入れる。 $ mkdir tcltkbuild $ cd tcltkbuild $ wget -c http://prdownloads.sourceforge.net/tcl/tcl8.5.0-src.…

テンプレートエンジン

gnu-Smalltalkをインストールすると、CGIから利用できるHTMLテンプレートエンジンらしき物もおまけで付いてくる。 smalltalk/net/httpd/STT.st がそれです。ちゃんとサンプルもある。↓ test | sttTest | sttTest := ' <html> <head> <title>{%= self class %}</title> </head> <body> <table> {% self to: 10</table></body></html>…

デコード3

懲りずにまたちょっと違うものを書いてみる。が、あまり美しくない。 !String methodsFor: 'converting'! urlDecode | highBit hex asciiVal str | str := ReadWriteStream on: ''. highBit := hex := false. self do: [:each | (each ~= $% and: [hex = fal…

デコード2

昨日の記事で書いたデコーダをもうちょっと簡単に出来ないものかと思い、ちょっと違うものを書いてみた。 !String methodsFor: 'converting'! urlDecode | inData str | str := ReadWriteStream on: ''. inData := self copyReplaceAll: '+' with: '%20'. in…

デコード

ホームページなどのフォームから入力された日本語文字列をデコードしたいのです。けど、gnu-Smalltalkにはそんなメソッド用意されてないみたいっす。なので、Squeakの unescapePercentsWithTextEncoding: を参考にして(ぶっちゃけパクリました)作ってみた…

ブラウザプラグイン

Squeakではブラウザ用のプラグインをインストールすると、ブラウザ上で色々遊べちゃうという面白い機能があるのですが、自分の環境(Squeak3.8-05+Ubuntu 7.04+Firefox2.0.0.10)ではこのプラグインが使えませんTT Firefoxがプラグインを認識してくれないの…

CGIのエラー

最近からgnu-SmalltalkでCGIなんぞをやってみようと思い、ちょこちょことプログラムを作っているのですが、一番最初のテストCGIを動かした時に 500 Internal Server Error が出て実行できませんでした。apacheのエラーログを見てみると、Tk_Init failed: no …

文字列展開

gnu-Smalltalkでは"%"を使って文字列を展開できる事を今日はじめて知った。 とても簡単な例で申し訳ないが、こんな感じ。 #!/usr/bin/env gst | title content html | title := 'てすと'. content := 'てすとこんてんつ'. html := 'Content-Type: text/html <html> <head></head></html>…

Tcl/Tk8.5

bitWalkさんのブログからちょっとだけ引用させていただきます。 11月19日付けで Tcl/Tk 8.5 の3番目のβ版がリリースされました。リリース予定は 11月16日だったのですが、Don Porter 氏が忙しかったためにリリースが遅れただけのようです。今回もバグフィッ…

レンタルサーバー

予定通り、さくらのレンタルサーバーだと簡単にgnu-Smalltalk環境を構築できた。先ず、sshでログインして、 % mkdir src % cd src % wget -c ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-2.3.6.tar.gz # 現在最新の安定版は2.3.6 % tar zxvf smalltalk-2.3.6…

CGI

レンタルサーバーを借りてgnuなSmalltalkでホームページを作ってみたい。 gnu-Smalltalkをインストールすると、独自のWikiサーバーがおまけで付いてくるけど、今回はレンタルサーバーなのでそれを利用するのは難しそうだ。なので、やはりCGIという事になる。…

メタ

「"Class"がインスタンスを分類し、"Metaclass"がクラスを分類する」とはどうゆう事だろうと、その裏を取るべく、色々いぢくり回しているうちに(何度もSqueakをフリーズさせながらw)やっとSmalltalk/Squeakのメタモデルの基本的な部分が解かったような気が…

朝だ・・・

もう朝になってしまった。膨大なクラスライブラリの中を探検しながら面白そうなメソッドを見付けては小さなコードを書いて試してみる。そんな事を繰り返してると時間が立つのも忘れてしまう。明日(もう今日だ)が仕事休みで良かった ーー;。 真のオブジェ…

梅澤さん?

今、おやっと思ったのだけれど、昨日の記事でコメントを頂いた「umejava」さんって、もしかして、自由自在Squeakプログラミングの著者 梅澤真史さん? 確信を得るべく、いろいろ検索してみたりしたら、やはりそうかもしれない。現在愛用している本の著者から…

ワークスペース変数

昨日の記事で書き足りない部分があったので書き足し。 勿論、ワークスペースだってSqueakの一部だもの、スペルチェックをしてタイプミスを教えてくれたりするのですが、変数名に限ってはチェックが効かないらしいのです。これはやっかいです。id:sumim:20061…

テキストファイルエディタを使う

Squeakでちょっとしたコードなどを書く場合、Workspaceを使うのが普通らしい。自分もよく使います。が、ちょっとこまった事があります。Workspaceはタイプミスを無視しちゃいます。たとえば、以下のようなコード |writer| writer := [:toWrite | Transcript …

filein出来ない

自由自在Squeakプログラミングでお勉強中なのだけれど、サンプルコードをfileinしようとすると、 This string contains a character (ascii value 180) that is not normally used in code と言われてfilein出来ない。調べてみると、どうやらサンプルコード…

はじめまして

はじめまして。hdb*1と申します。 なんとなくブログってみます。 *1:エイチ・ディー・ビーと読んで下さい