VisualWorks

画像URLを抜き出す

^block value: (HttpClient get: 'http://www.hatena.ne.jp/') contents. 1行中に複数URLが入ってると正しく取れないかも(実際には2chの画像ありそうなスレURL)。 レスポンスがすでにhtmlになってるんだが、datファイルってどこから取ってくればいいんだろう…

文字列中の画像URLを抜き出す

にゃんこスレとかから抜き出すとき用に。今のところ、文字列を用意しないと無理。 | str block | str := ' '. Transcript clear. block := [ :source | | stream col | col := OrderedCollection new. stream := ReadStream on: source. [ | line matches | …

Seasideを試してみる その2

MyStarRankComponent>>statesが正しく動かないのがなぜか。継続が効いてない気がする。 コードのリバートは、ブラウザの[Method]-[Browse Method Changes]、いずれかのバージョンを選択して[Replay]、でできた。 #isolate:で分離されたあと、ブラウザバック…

Seasideを試してみる その1.5

忘れないうちにメモ。 変数に保存しなかったサーバインスタンスを止めたりする。 "いくつか起動してみる" SeasideServer start. (SeasideServer newHTTPAt: 9091) start. "確認" SeasideServer allInstances inspect. "全部止める" SeasideServer allInstanc…

Seasideを試してみる その1

VW7.7NC版で。まず、[Parcel Manager]-[Web Development]-[Seaside-All]をLoad。 "サーバ開始" SeasideServer start " デフォルトのポートは7777 http://localhost:7777/ " "サーバ停止" SeasideServer stop 画面からアプリケーションの追加ってどうやるのか…

居眠り床屋を書いてみた

d:id:sumim:20090923 居眠り床屋問題どう書く?org 結城さんの本に出てるProducerConsumerみたいな? がんばればいけそうな気がしたので書いてみた。 | logger random barber q count customers | Transcript clear. q := SharedQueue new. random := Random…

FileEntryからファイル名取得いろいろ

'c:\source\test01.txt' asFileEntry name " => 'test01.txt'" 'c:\source\test01.txt' asFileEntry shortName " => 'test01'" 'c:\source\test01.txt' asFileEntry baseName " => 'test'" あー#shortNameで取れた。びっくりした。

FmFileEntry>>baseNameの動作

'c:\test01.txt' asFileEntry baseName " => test" 今、気がついた。

10進数を16進数へ変換

乗り遅れまくりだけどd:id:hagaeru3sei:20090812に関連して。 VW Transcript clear. #(十 九 八 七 六 五 四 三 参 二 弐 一 壱) asSortedCollection do: [ :each | Transcript show: each, ' ['; show: (each convertToByteArray inject: '' into: [:tmp :b…

FileManとかOnigurumaとかをまた使ってみる

リハビリ。 最初はSqueakで書いてたけど、日本語含みのファイルの取り扱いがどうにもうまくいかなかったのでVWに変更。ハッカソンでもVW使ってるはずだし、まあいいんではないか。 Jpl/FileMan/Onigurumaはインスコ済み。 ディレクトリの中にあるファイルは…

Twitterのタイムラインを取得する

知り合いがRubyだかPythonだかでやってたので、ビール飲みつつ、テレビ見たりしながらやってみた。Smalltalkに「ながら」は向かないことがわかった(ソース追っかけられない)。 VisualWorksの場合 1.Parcel ManagerからNetClientsをLoad 2.リポジトリからJSON…

「鬼車 for VW」の続き

確認するためのコードを書いてみた。 'abcdefg' indexReg: 'a'. " => 0" 'abcdefg' at: 0. " => Unhandled exception: Subscript out of bounds: " 'abcdefg' indexReg: 'b'. " => 1" 'abcdefg' at: 1. " => $a" 配列が0オリジンですよ、という話でした。

「鬼車 for VW」を使ってみる

またご紹介頂いたので早速。 1.http://d.hatena.ne.jp/kaminami/20090222/p1から、Oniguruma-VisualWorks-001.zipをダウンロードして解凍、$(VISUALWORKS)\Onigurumaあたりに放り込む 2.onigvw.dllはc:\windows\system32に入れた 3.VW起動して[System]-[Sett…

正規表現を使ってみる

あんなに早く上がれるのなら勉強会行けばよかった、と思ったけど、ノートも本もない状態では困りそうだったので断念。 まずSqueakは、いつものようにSqueakMapから[Regular Expression Plugin]をインストール。 | regex pattern string match | pattern := '…

またFileManを使ってみる

d:id:chobie:20090214:1234589900の続き。 エンコード指定するには。 'C:\st' asDirectoryEntry at: 'aaa.txt' put: 'こんにちは世界' by: #shiftjis. 'C:\st' asDirectoryEntry at: 'aaa.txt' by: #shiftjis. あっさりと。 | col | col := #(123 456 789 he…

動的にクラスを取得する、ついでに、ファイル読み込みと文字コード指定

動的にクラスを取得する d:id:chobie:20090121の続き。 すべてのクラスが#Smalltalkの中に入っているので、そこから取得する。 (Smalltalk at: 'CrLfFileStream' asSymbol) inspect " => CrLfFileStream class" ファイル読み込み ブラウザで#FileStreamのメ…

VisualWorksでPostgresに接続する(EXDI版)

environment:の引数がさっぱりわからない(hostとportが与えられない)せいでさっぱり接続できず、pg_hba.confの中身を書き換えれば通るところまでは先週時点で確認したけど、納得いかなかったので再挑戦。 | con session stream | [[ con := PostgreSQLEXDICo…

VisualWorksでPostgresに接続する

忘れたころに槍玉に挙げられる例の言語をやらされることになった。CVSクライアントとしてしか使わないのにeclipseまで入れることになるし(ごった煮でよくね?)、当然JDKまで必要になる。ふざけんなと思ったけど、これはこれでScalaに生かそう。 そんなおまけ…

VisualWorksのブラウザにある記号

StringとかCollectionとかを眺めてるときにふと思った。 メソッドペインの上下向き三角は、 △->親クラスに定義されてるのをオーバーライドした ▽->子クラスでオーバーライドされた じゃないか。 ついでにカテゴリペインとクラスペインの黄色のは、 コメント…

VisualWorksから.NET Frameworkを利用する

d:id:chobie:20080207のBlockClosure/BloclContextの違いの記述はソースコメント以外にないものかと思ってVisualWorksのdocディレクトリを眺めてたところ、DotNETConnect.pdfなんてものを見つけてしまったので(読んでないけど)ちょろっといじってみた。 用意…

VisualWorksでSQLiteに接続

わざわざPostgresインストールすんのやだなーとか考えてたら、SQLiteの存在を思い出したのでやってみた。 SQLiteを用意する 1.sqlite3.dllを拾ってくる(手元のやつは3.5.0)。 2.visual.exeかイメージファイルか、多分どっちかと同じディレクトリに入れる(ど…

実行時間の測定と浮動小数点数と、時々、#infinity

しばらくSqueakで遊んでたけど、ふとVisualWorksをインストール。 せっかくなのでパフォーマンスの差がどれほどあるのか試してみようと思ったところで、どう書くのかが問題。 実行時間の測定 たしか、id:sumimさんがレイトレースベンチを書いてたときに見か…

HTTPを利用する

screencastは、全く違うトピックを見てた。そりゃ見つからないはず。 " Percel Managerを開いて、 [Suggestions]-[Networking]-[NetClients]をLoadした。 " url := 'http://localhost:8080/'. response := HttpClient new get: url. content := response con…

ディレクトリの内容を一覧表示

ようやく仕事が落ち着いた。 dir := 'D:\test\smalltalk'. contents := dir asFilename directoryContents. contents do: [:each| "Transcript show: each." entry := (dir, '\', each). Transcript show: entry. entry asFilename isDirectory ifTrue: [Tra…

メソッドを実装しているクラスを一覧する

squeakの場合 World findATranscript: nil. Transcript clear. Object allSubclassesDo: [:each| "Transcript show: each printString; cr." each allSelectors do: [:m| (m = #nextLine) ifTrue: [ Transcript show: each printString; cr ] ] ]. Transcrip…

ファイル読み込んで表示

Transcript clear. stream := 'samplej.txt' asFilename readStream. [stream atEnd] whileFalse: [ line := stream upTo: Character cr. Transcript show: line; cr. ] ストリームの取得方法が変わっただけで、ほかには変わったところもない。

無限ループを止める

Squeak -> Alt+. VisualWorks -> Ctrl+YいわゆるCtrl+Cと同様の操作。 User Interruptてことは、javaのsleepとかが投げる例外と同じ感じ?

VisualWorks on Windows 続き

ブラウザからのソース参照でエラーが出る場合 該当パッケージのコンポーネントをインストールすると正しく参照される。 追加インストールは再度インストーラを実行する、 もしくはCincomのIndivisualFilesから個別にファイルを取ってくる。 後者の場合はファ…

VisualWorks on Windows

Cimcom Smalltalkからたどる。 細かい話はAsaoka Hiroko's Home Pageが詳しいけど、 個別ファイルをダウンロードしてきて自分で配置するんではなくて、 Net InstallerかCD-based Installerを使うなら、特に困ることもない感じ。 日本語化もすぐできたけど、…