Smalltalk

画像生成

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…

テンプレートエンジン

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: を参考にして(ぶっちゃけパクリました)作ってみた…

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>…

CGI

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

メタ

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

朝だ・・・

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

梅澤さん?

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

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

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