Squeakでマターリ語り ..
2:デフォルトの名無しさん
05/11/07 16:50:10
⊂二二二( ^ω^)二⊃ ブーン
3:デフォルトの名無しさん
05/11/07 16:50:58
(ノ∀`)アチャー
4:デフォルトの名無しさん
05/11/07 17:10:26
Squeakで2chブラウザ作ってみたいけど
どうやって作ればいいんだろ
network関係のクラス漁ってもイマイチ
ワケわかんないし
5:デフォルトの名無しさん
05/11/07 22:35:22
スレリンク(tech板)
どうせ立てるならSmalltalkの総合スレ立ててくれればいいのによ。
どうすんだよこのスレ。
6:デフォルトの名無しさん
05/11/07 22:46:15
俺の場合、チュートリアルのレース作って
わーいわーい
ってよろこんだ後
なにしよう・・・
状態
7:デフォルトの名無しさん
05/11/07 22:47:13
↓以下、ム板用AAテスト専用スレ
8:1
05/11/08 12:28:24
ありゃりゃ
空気読めてなかったぽい私orz
じゃあ今から私が叩かれるスレで・・・一気に1000まで消化しますか
んでもって新たにやり直す感じでいいですか?
私のスペック
PC歴20年弱
28歳独身離婚歴あり子供中学生一人
住まいは埼玉県のどっか
可能な限り全レスして叩かれますので
age進行で罵詈雑言お願いします
Squeakの話も大歓迎です
PCには犬と窓両方Squeak入れて遊んでます
9:1
05/11/08 12:34:04
Squeakではクラス定義の仕方がイマイチわかってません
インスタンスメソッドとクラスメソッドの違いもわからない
概念はおぼろげにはわかるんだけど、いざ自分でコーディングしょうとすると
怖くてAccept出来ません
10:1
05/11/08 12:37:06
あ、そんなこと言う前にみんなに一言ですよね
糞スレ立ててごめんなさいm(_ _)m
反省してます
11:デフォルトの名無しさん
05/11/08 13:15:12
ま、いいんでね。
1はSqueak/Smalltalk/OOPに関して知っていること、分からないことを
逆さに振っても出てこなくなるまでひっきりなしに吐露しる!
で、ヒマなやつがつっこむ…と。
12:デフォルトの名無しさん
05/11/08 19:36:57
とりあえず、イメージを別名で保存して作業用、学習用イメージを新規につくればいいんじゃねーの?多分
13:1 ◆i3UKtYLxd2
05/11/09 06:51:31
>11
そう言って頂けると嬉しいです
なるべく毎日Squeakいぢるようにしますね
>12
助言ありがとうございます
新規に自分用のimage作るのはやってみました
新たにimageコピーして別の作業場を作る感じなのかな?
(OS側の)Squeakフォルダに*.imageと*.changesが
2つずつ出来てました
このコピーした方なら安心ってことですね
14:デフォルトの名無しさん
05/11/09 09:51:22
The Design and Implementation of Multilingualized Squeak
URLリンク(www.is.titech.ac.jp)
これ、日本語版はないんでしょうか?
15:デフォルトの名無しさん
05/11/10 05:12:48
SqueakToysのscriptingで、stop script と pause script ってどう違うんですか?
stop は状態を normal -- run when called にするってこと。
pause は状態を paused -- ready to run all the time にするってこと。
そこまでは分かったんですが、normal状態とpaused状態の違いがよく分かりません。
pausedの方がすぐに動き始めるような感じがしますが、具体的に何が違うんでしょう。
16:デフォルトの名無しさん
05/11/10 20:36:12
>15
全スクリプトを使ってみなよ。信号機みたいなやつ。
したら多分わかる。
17:デフォルトの名無しさん
05/11/10 22:13:30
gameにあるトランプの絵みたいな画像データはどうやってsqueakのなかに取り込むんだ?
なんか配列?データのなかに画像データがあるみたいだけどこれはjpgかgifのデータが
そのまま16進数で書いてあるのか?
この16進数列はhexdumpかなにかで作ってコピペで書き込む必要があるのか?
18:デフォルトの名無しさん
05/11/10 22:31:02
>17
Form class の instance creation カテゴリを見れ
19:デフォルトの名無しさん
05/11/11 12:04:36
えーっと
PackageLoaderで色々インストールしてたら
ダイアログ出て来て「Proceed」「Abandon」「Debug」を
選べってでたんですけどどうすればいいんですか?
20:デフォルトの名無しさん
05/11/11 12:55:31
「Debug」選んでどこでエラーが起きたか、エラーが発生したときの状態を調べる、かな?
発生箇所が解っても理由が解らないとどうしたらいいかわからない・・・
21:デフォルトの名無しさん
05/11/11 14:32:55
>>19
色々の具体的な中身が肝心だろ
パソコン初心者かよ
22:15
05/11/11 15:19:15
>>18
>>16
回答ありがとうございます。
その方法を試したり調べたりしてみます。
御礼が遅くなってすみませんです。
23:デフォルトの名無しさん
05/11/11 15:48:10
eToysで子供がアニメーションを作ってしまうことについて
関係者の間で議論になっているようですが、どういう問題が
あるんでしょうか?
24:デフォルトの名無しさん
05/11/13 14:37:47
Squeak関係のリンク
日本のSqueak公式サイト
URLリンク(squeakland.jp)
多言語化Squeakのホームページ
URLリンク(squeak.hp.infoseek.co.jp)
スクイーク e-トイ入門(工事中)
URLリンク(sumim.no-ip.com:8080)
25:デフォルトの名無しさん
05/11/16 00:21:40
これって、VMなんだよね?
ブートのときロードしたらOSの代わりにはならんの?(一応OS板だし)
デバイスドライバとか、ファイルシステムは持っていないのかね?
26:デフォルトの名無しさん
05/11/16 00:34:59
仮想のOSととらえることは可能ですが、デバイスやファイルへのアクセスは
通常は下層の本当のOSへ委譲する実装になってます。だから、
下層のOS抜きでbootしてSqueakのみで稼動させるのは事実上無理ですね。
でもソースが公開されているし、結構portabilityもあるので、、やりたければ
自前のデバイスドライバを組み込む程度は十分可能なんじゃないかな。
ここってOS板なの?情報システム板じゃない?
27:デフォルトの名無しさん
05/11/16 00:56:27
>>26
素で勘違いしてた。プログラム技術板ですね。
やっぱりデバイスへのアクセスにはOSの機能を使ってるんですね。
ちと探してみたら、sourceforgeにsqueaknosというプロジェクトがあるみたいだ。
OS無しでの稼働環境を目指す。と、
でも最終リリースが2001年4月・・・
28:デフォルトの名無しさん
05/11/20 18:24:17
閑古鳥が鳴いている
29:デフォルトの名無しさん
05/11/22 22:27:16
休み前だから・・・
Happy Squeaking!!
URLリンク(www.sra.co.jp)
30:デフォルトの名無しさん
05/11/22 22:35:29
すまん、間違えた
Happy Squeaking!!
URLリンク(www.ogis-ri.co.jp)
31:デフォルトの名無しさん
05/12/03 01:05:57
Smalltalk全般の話題もここでOK?
今何か話したいことがある訳じゃないけど、最近自分もオブジェクトランドに
行くようになったのでお世話になりますね。
32:デフォルトの名無しさん
05/12/03 02:29:28
>31
OK
33:デフォルトの名無しさん
05/12/05 07:21:33
サクサクsmalltalk買ってきました
ディペンデンシィ機構で詰まってます。Squeakだとどのクラスが
いいリファレンスになりますか?あちこちブラウジングしてても理解できません
34:デフォルトの名無しさん
05/12/06 00:46:29
>>33
ぜんぜん答えになってないのだけれど、面白そうなのでこんなの書いてみた。
| sysNavi adds removes classes messages |
sysNavi := SystemNavigation default.
adds := sysNavi allCallsOn: #addDependent:.
removes := sysNavi allCallsOn: #removeDependent:.
classes := (adds collect: [:each | each class]) intersection: (removes collect: [:each | each class]).
messages := (adds union: removes) select: [:each | classes includes: each class].
sysNavi browseMessageList: messages asSortedArray name: 'Usage of dependency'
35:デフォルトの名無しさん
05/12/06 01:03:50
>>34
スマン。間違えてた…。orz
each class は each classSymbol に again all (ctrl-J) してね。
36:デフォルトの名無しさん
05/12/07 10:21:26
SmalltalkのPointクラスを調べて思ったんですが
単なる二次元ベクトルとしても使われるんですね。
たとえば矩形の平行移動のパラメータとか。
Pointという名前は平面上の1点を表すオブジェクトとしか
思えないので、こういう使われ方は正直気持ち悪いです。
責務を分けるのが筋だと思うのですが、みさなんはどう思われますか?
37:デフォルトの名無しさん
05/12/07 12:39:34
点の位置はベクトルとして表されるって知ってる?
38:デフォルトの名無しさん
05/12/07 14:37:58
>>37
線形代数の初歩くらいは一応習ってますよ。
ベクトルを表すオブジェクトなら2DVectorとかそういう名前が適切じゃないかと
思うんですよ。
VWのPointのコメントにもわざわざ
> For special situations, a Point can be used to represent any
> two-dimensional quantity, such as a row-and-column location in a
> table.
って書いてありますね。
名前と責務の整合性よりも Number>>@ でリテラルとして書ける利便性を
優先したんじゃないかと邪推してしまいます。
39:デフォルトの名無しさん
05/12/07 14:52:48
Pointの用法、もっと汚い例あるよ。
大きさ2のArrayの代用にしてる例。
どこだっけかなあ。
見つけたのは大昔だったから今もあるか不明。
厳格には>>36の言うように責務に応じてクラスを分けるか、
それで複数できるクラスを捨象して抽象クラスを出すとか、
そうじゃなければ責務の違いを弁証法的に持ち上げて各種名称を変えるか、
そういうのが理想ではあると思う。
つまり、面倒だからちょっとサボりましたよ、正直スマンカッタ(AA略 じゃね?
40:デフォルトの名無しさん
05/12/07 19:45:57
で、その理想を実現すると
どんな感じになりますか?
41:デフォルトの名無しさん
05/12/08 21:42:13
>>38
へぇ
Dolphinのクラスコメントにはないや。
42:デフォルトの名無しさん
05/12/15 12:42:24
個人的に座標とベクトルは表現の違いで同じものってイメージだから
名前はどっちでもいいような気がする。
43:デフォルトの名無しさん
05/12/22 11:31:33
toyで確率の計算をするにはどうすればいいでしょうか…
1/3の確率のものを作りたいんですけど…
44:デフォルトの名無しさん
05/12/23 14:56:23
>>43
乱数タイルは知っている?
45:age
06/01/07 19:14:38
こういうシステムに使えばいいんじゃねーの?
GooglePCは本当だった
URLリンク(plusd.itmedia.co.jp)
46:デフォルトの名無しさん
06/01/28 01:23:13
DolphinSmalltalkのフリー版登場
URLリンク(www.object-arts.com)
47:デフォルトの名無しさん
06/01/28 17:45:20
Smalltalk/Vで遊んだことがあって、Squeakプログラミングは
いつでもできるつもりになっていたが、
Squeakプログラミングではacceptしなくてはならない、ということを
数日前に知った。
48:デフォルトの名無しさん
06/01/29 00:41:39
>>47
accept しないでいい処理系は、どういうタイミングでコンパイルされるの?
49:47
06/01/31 03:29:59
うろ覚えだがSmalltalk/Vではコードを書き込んだらすぐに実行可能
だったと思う。コードを書き込んだそばからコンパイルされている
のでは無いだろうか。
50:デフォルトの名無しさん
06/01/31 18:00:14
それだとタイピング途中はコンパイルエラー出まくると思う
51:デフォルトの名無しさん
06/03/05 06:14:04
タイピング途中にエラーが出ても問題ないのでは無いですか?エラーが見えて丁度良い。
52:デフォルトの名無しさん
06/03/05 09:43:33
>>51
はなしにならん。
53:デフォルトの名無しさん
06/03/12 00:48:30
このクラス菅ーと思ってよくよくみると
<primitive: 153>
だったりして残念
54:デフォルトの名無しさん
06/03/15 23:21:15
>>53
VMまでおっかけるのはいかが。
Slangだったらよかったのにね。
55:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:22:47
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
56:デフォルトの名無しさん
06/03/26 13:15:28
ブルーブックついにゲット
これから読みあさります
57:デフォルトの名無しさん
06/03/26 23:20:22
URLリンク(users.ipa.net)
58:デフォルトの名無しさん
06/03/27 01:35:45
パープル買って26-30章はネットで見ろと?
59:デフォルトの名無しさん
06/03/32 10:27:21
squeak をiPAQで走らせてます。
もう、現代版newtonという感じですね。
End User Programming に興味があります。
60:デフォルトの名無しさん
06/04/08 15:25:14
59です。
2-3年前まではiPAQでsqueakを走らせることは、あまりに遅くて
現実的でなかった。ところが、最近のPocketPC例えばiPAQ h2215
あたりから、そこそこストレスなしにsqueakが走ってくれます。
現場でコンピューティングパワーをsqueakを通して容易に使う
ことが出来るようになりました。もう、むちゃくちゃおもろい。
61:デフォルトの名無しさん
06/04/18 15:36:48
アラン・ケイにメールを
送りたいから、メールアドレス教えて。
62:age
06/04/19 01:04:16
ExcelVBAつついてたら見つけたんだが、Squeak.ocxってどうやって使うんだ?
63:デフォルトの名無しさん
06/04/19 16:37:32
>>48
forthだとwordが確定した時点で実行される
64:デフォルトの名無しさん
06/04/19 20:56:43
>>62
コントロールツールボックスから貼り付けて使います。何の役にも立ちませんが。
65:デフォルトの名無しさん
06/04/19 22:47:07
URLリンク(squeak.qp.land.to)
使ってる人はポロポロ居るんだよね。
66:デフォルトの名無しさん
06/04/23 15:25:42
>>61
メールの内容次第によっては、教えたる
67:デフォルトの名無しさん
06/04/24 18:50:49
>>61
まずググれ。
68:sage
06/04/28 01:20:31
なんか、squeakっていかにも子供向けっていう感じの画面なんだけど
いったい、子供がカメ?を動かしてみたり、お絵かきしてみたりして、
何の意味があるのかサッパリ解らないんです。
はっきり言って、金持ちの大人と、わけわからん大人の自己満足の世界がプンプンするよ。。
どっかのホームページに子供にいじらせている写真が出てますけど
こんな小さいときから、画面の前にかじりついているより、外に出て遊ばせた方が
絶対、その子供のためになると思うのですが。。。
しかしまぁ、百歩譲って、そんなにコンピュータを触らせたいななら、
smalltalkなんか教えるより、assemblerでコンピューターというのは
こんなもんだ、ってみっちり教え込んだ方が、絶対その子のためになると思うんだけど。。。
将来、squeakで食える事もなければ、仕事の役に立つこともまずあり得ないけど、
アセンブラが出来れば、ほぼ、食っては行けるし、コンピュータの基礎もばっちりだね。
いったい、何を考えているのかサッパリ解らん。
69:デフォルトの名無しさん
06/04/28 01:26:28
>>68
>いったい、何を考えているのかサッパリ解らん。
You too!!
70:デフォルトの名無しさん
06/04/28 02:11:37
食っていけるかどうかで考えるなら義務教育なんて殆ど糞
法律さえ守れば道徳なんてなくてもいい
71:デフォルトの名無しさん
06/04/30 20:05:29
道徳さえあれば法律なんてなくてもいい
72:デフォルトの名無しさん
06/05/01 07:34:51
道徳ってなに?
73:デフォルトの名無しさん
06/05/01 08:47:30
URLリンク(www.excite.co.jp)
74:デフォルトの名無しさん
06/05/01 16:43:15
>>72
マジレスすっと、社会的に守られるべきモラルのこと。人間とゲダモノの境界線。
塩野七生のローマ人の物語によれば、モラルを
哲学に求めたギリシア人
宗教に求めたユダヤ人
法律に求めたローマ人
となります。
75:デフォルトの名無しさん
06/05/01 20:16:11
世界の中心でアイを叫ぶのはどちらだ
76:デフォルトの名無しさん
06/05/01 20:53:13
アランケイは天才なのかw
77:デフォルトの名無しさん
06/05/02 00:52:14
画像(BMPとかJPEGとか)を出したい時はどうするんだ?
78:デフォルトの名無しさん
06/05/02 01:06:40
>>77
“出す”の意味によるけど。
ファイルから読み込んで表示…なら、Squeak のデスクトップにドラドロ。
あるいは、ファイルリストを使うか、ImageReadWriter のサブクラスを使うか。
モーフをファイルに出力…なら、選択して赤ハローから export... 。
あるいはやはり ImageReadWriter のサブクラスを使うか。
79:デフォルトの名無しさん
06/05/02 01:20:04
>>78
> ファイルから読み込んで表示…なら、Squeak のデスクトップにドラドロ。
出た。さんくす。
こんなに簡単だったんか。「smalltalkは環境だ」とかwikipediaにあったんで、
ドラッグアンドドロップという考えがうかばなかった。
うれしくてPDFもいれてみたが、ダメだった。グスン。
80:デフォルトの名無しさん
06/05/02 01:25:05
>>78
> ファイルリストを使うか
こんなんなった。squeakは拡張子という概念はないのか。関連付けも
なさそうだ。遊び方が判りにくい。
File 'up0698.jpg' is 141047 bytes long.
You may use the 'get' command to read the entire file.
Here are the first 5000 characters...
------------------------------------------
JFIF
81:デフォルトの名無しさん
06/05/02 02:48:04
>>80
.jpg ファイルなどを選ぶと、最上段のボタン構成が変わるから、
そこから open を選ぶと開けるよ。
システムとかアプリケーションという区別や概念が稀薄だからね…。
ファイルシステムがベースにある現在主流のコンピュータ環境にどっぷりだと、
ちょっと馴染むのに骨が折れるかも。
ルールは「メッセージング」(つまり、何にどんなメッセージを送るか、を考えて
それを調べ、知り、実践する)だけだから、本当は簡単なはずなんだけれどもね…。
この切り替えが、頭では分かっていたとしても、なかなか。
82:デフォルトの名無しさん
06/05/02 03:12:48
>>79
環境だけれども、柔軟で粘土みたいなものだから、いろんなものに擬態します。
アプリだったり、オーサウエアだったり、開発環境だったり。
メッセージングという考え方は、シンプルだけどパワフルだから、いろいろな
ものを記述したり、表現できたりするので、見た目に惑わされないようにしないと。
83:デフォルトの名無しさん
06/05/04 04:34:48
>いったい、子供がカメ?を動かしてみたり、お絵かきしてみたりして、
>何の意味があるのかサッパリ解らないんです。
ある意味、写真にだまされているのかも。写真は多くの情報が欠落しているから、
それを理解するには想像力が必要です。自分がどう感じたか、ということよりも。
逆に様々な情報が欠落しているからこそ、恣意的な主観を働かせることが出来る
余地があるとも言えますが。楽しいメディアですね。
84:デフォルトの名無しさん
06/05/04 12:03:01
実際squeakはとっつきにくい。関連したwebや書籍をみても
「オブジェクトありき」とか「すべてはメッセージ」とか、開発者寄りの話
しか見つからない。
初めて(生)MS-DOSを触ったときを思い出した。途方にくれるカンジ。
85:デフォルトの名無しさん
06/05/04 12:54:37
もっといいOSが欲しいなあ
URLリンク(web.archive.org)
インターフェイスデザインについても語っていきたい
URLリンク(web.archive.org)
GUIに「ファイル」はいらないと思う理由
URLリンク(web.archive.org)
とか読むと、Unix流ツールボックスアプローチ、Win/Mac/Emacs流キッチンシンクアプローチに対して、
Squeak流アプローチという解はどうよって思う。まだまだ荒削りかもしれないけれども。
86:デフォルトの名無しさん
06/05/04 13:55:42
>>84
Mac や Win の受け身的、限定的なところを心地よく思うようになると、
ユーザー側から攻めてなんぼの暫定ダイナブック環境はやっぱりキツい。
87:デフォルトの名無しさん
06/05/04 15:41:44
これってマイクロカーネル妄想信者が作ったの?
88:84
06/05/04 15:50:17
それでも俺はsqueakを知りたい。きっとこれは素晴らしいものだと感じている。
でも、どうすればいいのか検討もつかない。まるで青春時代の自分探しだ。
くもの糸はどこ?
89:デフォルトの名無しさん
06/05/04 16:15:57
アラン・ケイにメールかMLで直接質問すればイイじゃん。
あ、5/17は66回目のお誕生日です。>アラン・ケイ
90:デフォルトの名無しさん
06/05/04 18:03:32
>>88
知りたいことが分かっていれば、言ってくれれば、なんでも教えてあげますよ。w
もちろん当方の分かる範囲で…ですが。
ときに「自分探し」とは言い得て妙ですね。したいことがはっきりしていないと
ほとんど価値のない環境ですから…。
91:デフォルトの名無しさん
06/05/05 04:59:12
最新Squeak(英語版)をGetして実行したら、Package Browserを発見。
ここに列挙されたclassが全部実装されているかと思うと喚起雀躍。
さっそくSqueakからtelnetしたいと思った。
Package BrowserからTelnetMachineというclass発見。そこで、
host := TelnetMachine new. をdo it。->Error:UndefinedObject cannot be changed
どんなもんでもinstanceになるわけではないのか..。
テキスト「自由自在Squeakプログラミング」登場。
morph2 := Morph new openInWorld.
同じエラーメッセージが出た。そもそも考え方が違うってか。
92:デフォルトの名無しさん
06/05/05 05:24:30
テキストの一行だけをコピペってたからダメだったんだろうか。
全部で、たった3行だし真面目に入れるか。
"do it"
うんともすんとも言わなくなってしまった。タスクマネージャも
ユーザタブから変更が効かない。止む無くリブート。(Win2k)
もう寝ろ、と言っていたのかも知れない。
93:デフォルトの名無しさん
06/05/05 11:17:05
>>91
TelnetMachine はともかく、Morph がエラーになるのはなにかおかしいですね。
(
94:デフォルトの名無しさん
06/05/05 11:27:38
>>91
ちなみに TelnetMachine は TelnetMachine open の do it (alt/cmd + d) で
ウインドウが開きます。TelnetMachine class >> #open の定義は、ブラウザの
上段第2ペイン下の class ボタンを押して切り替えることで見ることができます。
95:デフォルトの名無しさん
06/05/05 11:34:19
>>92
とりあえず、3 + 4 とかの print it (alt/cmd + p) は出来ていますか?
96:デフォルトの名無しさん
06/05/05 11:36:17
>>95
あ、win2k なら alt + p ですね。念のため。(cmd は Mac ユーザー向け)
97:デフォルトの名無しさん
06/05/05 16:20:13
>squeakを知りたい。きっとこれは素晴らしいものだと感じている。
実はSqueakには2つのシステムがあって、1つは「Smalltalk」。
もう1つは、Smalltalkの上にある「SqueakToys」。子供たちが
使っているのはSqueakToysの方です。Squeakで素晴らしい、
すごいと言えるのはSmalltalkというシステムの方だと思います。
>smalltalkなんか教えるより
誤解じゃないかな。Smalltalkは教えていないと思います。
98:デフォルトの名無しさん
06/05/05 23:20:45
>>94
> ちなみに TelnetMachine は TelnetMachine open
たしかにopenで成功しました。そこで質問ですが、
・なぜ「open」という存在を知っていたのか、
・それがインスタンスでなくてクラスである理由
は なんでしょうか?判る範囲で構いませんのでゼヒ。
ちなみに、Morphにおける「new」というメソッドはMorphでも、そのSuperclassである
ObjectでもさらにそのSuperclassであるProtoObjectでも定義されていないんですが、
なぜ有効なんでしょう。
99:デフォルトの名無しさん
06/05/05 23:23:44
>>95
> とりあえず、3 + 4 とかの print it (alt/cmd + p) は出来ていますか?
7になりますね。
再起動後は問題ないです。「morph2 := Morph new openInWorld. 」も成功します。
コードをいじっているんだから頻繁に停止したり、そのために再起動することに
なるのは別に珍しくないような気もしますが。
100:デフォルトの名無しさん
06/05/05 23:30:33
TelnetMachine open. の do itで作成したオブジェクトにWorkspaceから
メッセージを送る方法はありますか?
表示されたobject(ウィンドウ)のハローを表示してインスペクタでselfを
みるとオブジェクトIDっぽい数字「a SystemWindow(3652)」が現れるんですが、
この数字を介してメッセージの送信は可能でしょうか。
101:デフォルトの名無しさん
06/05/06 01:13:43
>>98
> ・なぜ「open」という存在を知っていたのか、
知りませんでした。が、クラスメソッドで見つけました。
> ・それがインスタンスでなくてクラスである理由
いろいろと複雑な事情がありますが、簡単にいえば単なる慣習です。
MVC でいうところの M(モデル)の属するクラスのクラスメソッドに V や C を担当する
クラスと関連付けをする作業を定義することをよくします。
> ちなみに、Morphにおける「new」というメソッドは
> なぜ有効なんでしょう。
#new は Behavior に定義されています。
Morph はクラスですが、自身もインスタンスです。属するクラスは無名ですが、
便宜的に Morph class と呼称します。いわゆるメタクラスというやつです。
メタクラスのスーパークラスパスは、原則としてそのインスタンスである
クラスのスーパークラスパスと同じです。したがって、Morph class の
スーパークラスをたどると ProtoObject class に行き着きます。
ProtoObject class は ProtoObject と違って、さらにスーパークラスがあります。
それが、Class です。そこからは普通に ClassDescription、Behavior とたどることができます。
| superclass |
World findATranscript: nil.
superclass := Morph class superclass.
[superclass isNil] whileFalse: [
Transcript cr; show: superclass.
superclass := superclass superclass]
余談ですが、このスクリプトの全角スペースをタブに置き換えるには、
最初の全角スペースを削除してタブをタイプした後、alt + shift + j としてみてください。
again という機能です。
102:デフォルトの名無しさん
06/05/06 01:26:42
>>100
インスペクタの左側のペインで model をダブルクリックしてください。
新しいインスペクタが現れて、これのインスペクタワークスペース(下のペイン)で
self に束縛した a TelnetMachine にメッセージを投げれます。
そんなことをせずとも元のインスペクタのインスペクタワークスペースで model に対して
メッセージを送ってもよいでしょう。
どうしてもワークスペースを使いたい(例えば、ワークスペース変数が好き、とかの)
理由があるならば、グローバル変数に model を束縛しておくという手もあります。
Smalltalk at: #MYTELNET put: model
これで、ワークスペースからでも MYTELNET でアクセスできます。
103:デフォルトの名無しさん
06/05/06 01:31:41
>>102
どうして model に a TelnetMachine が束縛されているのをしっているのか?
という質問がきそうなので先に答えておくと、それは、TelnetMachine class >> #open
の定義をざっと見たからです。
104:デフォルトの名無しさん
06/05/06 02:06:50
あと、メソッド名が分かっている場合、たとえば今の場合 #new なら、new を
(必要ならタイプして入力して)選択した後、browse it (alt + b) か、
implementors of it (alt + m) すれば、定義をブラウズできます。
もちろん同名メソッドがあったり、オーバーライドされている場合は、
適切なクラスを探さないといけませんが…。クラスが分かっているなら
後述のプロトコルブラウザを活用したほうがよいでしょう。
メソッド名の一部しか分からない場合は、その文字列を選択して
selectors containing it (alt + shift + W) をします。
メソッドの機能しか分からないときはメソッドファインダが便利です。
(デスクトップメニュー → open... → method finder で起動)
<<レシーバ>>. <<第一パラメータ>>. <<第二パラメータ>>. …. <<返り値>>
というようにレシーバ、パラメータ群、結果をピリオドで区切って入れると、
そういう結果を返してくるメソッドを列挙してくれます。
クラスの定義を見るのにシステムブラウザは有効ですが、あるオブジェクトが
起動可能なメソッド(受信可能なメッセージ)を一覧するのには向きません。
そういう目的にはプロトコルブラウザを使います。そのオブジェクトの属する
クラスをシステムブラウザでブラウズしている状態で、クラスペインか、
メソッド名ペインにポインタを合わせて alt + p をタイプします。(あるいは、
黄ボタン=右クリック メニューから browse protocol を選択)
105:98
06/05/07 03:55:23
>>101-104
詳しい回答ありがとうございます。
簡単な質問ばかりして迷惑かけてそうなんで、疑問の解決は
しばらく書籍に頼ってみようと思います。ちょうど、手元の本に
メタクラスもメソッドファインダの話も載ってました。
(ゲームを実装する章だったんで飛ばしてた)
106:デフォルトの名無しさん
06/05/08 00:01:08
>>105
まあ、基本かどうかはあまり気にせず、悩んだときにはいつでもどうぞ。
Smalltalkは、コツがつかめるまでは、ささいな事でも人に訊いて解決するのが
一番ですから。
107:デフォルトの名無しさん
06/05/08 22:33:54
SqueakからXにウィンドウを表示させたりできるんですか?
GTKでGUI作っているんですけど,これと同じことってSqueakでもできるのか気になります。
後,シェルスクリプトみたいにコマンドラインツールとしてSqueakを利用できるのですか?
108:デフォルトの名無しさん
06/05/08 22:48:52
>>107
X --> むりぽ(多分...)
コマンドライン --> URLリンク(languagegame.org:8888)
109:デフォルトの名無しさん
06/05/08 23:03:51
>>108
> コマンドライン --> URLリンク(languagegame.org:8888)
Lisp見たいにソケット経由で式を評価する感じかなこれ。SqueakをOS起動時にデーモンとして動かして,接続毎に環境を作って動かせばシェルスクリプトっぽいもんとして使えそうな気が
110:デフォルトの名無しさん
06/05/08 23:27:23
どちらも GNU Smalltalk を使うと良いナリ。
JIT だから速いし、コマンドラインから使えるし、Tk で GUI 作れるし、クロージャもあるナリよ。
昔ちょっとインスコしただけだから保証は出来ないけどね。
111:デフォルトの名無しさん
06/05/11 21:24:06
>107
wxSqueakがある。
URLリンク(www.wxsqueak.org)
112:デフォルトの名無しさん
06/05/11 22:48:36
カッコいい!
使ってみよ
113:デフォルトの名無しさん
06/05/12 14:38:40
>>84
>俺はsqueakを知りたい。きっとこれは素晴らしいものだと感じている。
>でも、どうすればいいのか検討もつかない。くもの糸はどこ?
とりあえず。。。
佐々木かをりのwin-win 素敵な人に会いました、聞きました(アラン・ケイ)
URLリンク(yamabuki.ewoman.co.jp)
Squeak について 〜Dynabook OS としての Squeak/Smalltalk 考〜
URLリンク(sumim.no-ip.com:8080)
squeakの「何を」知りたいのですか?使い方?教え方?考え方?売り方?
114:84 & 88
06/05/14 01:57:29
>>113
>squeakの「何を」知りたいのですか?使い方?教え方?考え方?売り方?
squeakを通して『オブジェクト(指向)』というものを知りたいのです。概念を体験したい。
BASICでアルゴリズム、プログラミムというもの、
MS-DOSでカーネルやシェル、そしてファイルシステム、
Cとアセンブラでプロセッサのアーキテクチャ、スタックやメモリモデル、
unixでハードウェアの(ファイルという)仮想化、ツールボックスアプローチ、システム管理、
MACやwindwosでユーザインタフェース。
いろんなものを学びました。今度は「オブジェクト指向」がターゲットです。
いつでも感性が「コレだ!」と告げるものを学んできました。今は「Squeak」がソレです。
まあ、趣味なんですが。
115:デフォルトの名無しさん
06/05/14 02:04:47
オブジェクト指向なんて単なる hash と syntax sugar さ。
とりあえず workspace から色々弄ってみては? ↓こんな感じで。
URLリンク(squeak.qp.land.to)
116:デフォルトの名無しさん
06/05/14 03:40:08
それだけいろいろなものに触れてきた人が
自分で道を開けないなんて・・・
まさにローリングストーンだね
117:114
06/05/14 08:51:24
>>116
> それだけいろいろなものに触れてきた人が
> 自分で道を開けないなんて・・・
コンピュータ暦10年以上。それぞれ数年懸けて身に着けました。
いつまでたっても要領は良くならない、生みの苦しみはなくならない。
でも関連する書籍やモノに触れて一年か二年くらいすると、あるとき突然啓示が来ますね。
カーニハンとかストールマンとかエイホとか、アラン・ケイとかは
違うんだろうな。
生きてるうちに理解できれば良しとしたいところですが、生まれるまでは
苦しいんです。(コンビ芸人の片方の名前を思い出せないくらいの苦しみ)
118:114
06/05/14 08:58:25
>>115
thnx。とっかかりもつかめてないんで なんでもwelcom。
辛気臭くなると叶わんし、低姿勢なのもストレス溜まる。もうROMる。
119:デフォルトの名無しさん
06/05/14 10:53:15
Smalltalkイディオム
URLリンク(www.sra.co.jp)
>もうROMる。
せっかくなので、いろいろ書いてください。気軽に。
120:デフォルトの名無しさん
06/05/14 11:01:08
おっと、これも
Happy Squeaking!! -オブジェクト指向再入門-
URLリンク(www.ogis-ri.co.jp)
121:デフォルトの名無しさん
06/05/17 22:05:26
シンボルって何につかうんだろう。
122:デフォルトの名無しさん
06/05/17 22:17:02
>>121
事故解決。固定文字列を定義するものらしい。
しかもシステムでユニークだそうだ。適当に書いてもバッティングしないんかしら。
123:デフォルトの名無しさん
06/05/18 15:26:50
>>122
バッティング、即ち同一ですから。
新しいのをつくれば、シンボルテーブルに追加されます。
124:デフォルトの名無しさん
06/05/19 00:00:51
みんなSqueakで何やってんだ?まさかメイン環境にしてるってこたないよな。
125:デフォルトの名無しさん
06/05/19 01:14:36
>>124
しょっちゅう起動はするけれど、あんましたいしたことには使ってないなぁ…。
again が好きなので、短かい文章を書いたり、再構成の必要があるときの
エディタ代わりかな。あと、広い意味での(数値だけじゃなく、数値列や文字列、
画像なんかも対象とする…)ちょっとした電卓代わり。たまに、幾何的な図が
欲しいときにタートルに描かせたりとか。
126:デフォルトの名無しさん
06/05/19 17:21:01
インスコ作業で爆発的な満足感を得る。
その後、次のバージョンが出るまでねっとりとした放置プレイで愉悦。
127:age
06/05/20 01:46:21
設計のパクリのネタ元になるかと思ったけど今イチ使いこなせない...
使えないおいらが悪いのかもしれないけどね
なんつーかね、使いにくい訳よ、VisualStudioなんかと比べたら。
あとMacOSXのInterfaceBuilderみたいなGUIなビルダー(デザイナー?)が欲しい訳よ、おいら
eToyをやればいいのかもしれんがあれは亀動かしたら次がよくわかんねーし
なんか妙にCUI(?)に縛られてて気持ち悪い
128:デフォルトの名無しさん
06/05/20 03:14:22
>>127
俺もまだろくに触れてないんだけど、その比較はちょっと違うと思う。
GUIとかCUIとかじゃなくて、オブジェクトがたまたまグラフィカルに見せることもあるし、
そうでないこともあって、「GUIの部品」みたいな概念はないんだと思う。
他言語のIDEみたいに見てると、不満ばかり持つんじゃないかな。
間違ってたら誰か訂正して。
129:デフォルトの名無しさん
06/05/20 04:15:34
>>127
パクる目的なら、あえて慣れない場所でいつもの何かをどうやって作るか…ではなくて、
そこで新しく触れる手近なものたちがどんなふうに「メッセージング」というパラダイムのみで
実現されているのか…を調べるスタイルに接し方を変えてみたらどうでしょう?
例:
- ウインドウやポップアップはどう実装され機能しているか?
- テキストエディタは? テキストの入出力は?
- do it でどうやって単なる文字列がコードとして評価されているのか?
- コンパイラの仕組みは? デバッガの仕組みは?
- ワークスペースやシステムブラウザ、ファイルリストなどのアプリの実装は?
- クラスは? メソッドは? 継承機構は?
あとは、ライブラリ内に潜って、デザインパターンの実例を探してみる…とか。
その前に、キーとなる「メッセージング」というメンタルモデルのほうは大丈夫でしょうか?
130:デフォルトの名無しさん
06/05/20 07:29:41
これダウンロードしてインストールしたけど
そっから先、どうしていいかわかんない
131:デフォルトの名無しさん
06/05/20 09:50:13
>>130
大丈夫、わからんのは俺も一緒。一人じゃない。よかったね。
132:デフォルトの名無しさん
06/05/20 10:47:49
>>130
- ドラッグ&ドロップでプログラミングをする eToys と、
- メッセージングでプログラミングをする Smalltalk 、
どちらに興味がありま万か?
前者なら
1. 画面の下にある「ナビゲータ(Navigator)」タブから、刷毛ボタンでペイントツール起動。
2. 適当な絵を描いて(あまり凝ったものにはしないこと)「ほぞん(Keep)」
3. 絵を、Mac ならコマンド(以下、cmd)キーを、それ以外なら alt を押しながらクリックして選択。
4. 現れるボタン群から左中央の目玉をクリックして、ビューワを起動(画面左側に現れる)。
5. ビューワから [スケッチ][を回す:][5](または、[sketch][turn:][5])をデスクトップにドラッグ&ドロップ。
6. 現れたスクリプトパネルの時計ボタンをクリックしてプログラムを実行…
というようにするととりあえず遊べます。さらに詳しく知りたければ、
URLリンク(squeakland.jp)
などを参考にしてみてください。
後者(Smalltalk に興味…)なら、とりあえずは、
1. デスクトップをクリックしてメニューを呼び出し。
1'. もし無反応なら、デスクトップを ctrl クリック →「デスクトップメニュー…(desktop menu...)」
2. 「開く…(open...)」→「ワークスペース(workspase)」を選択。
3. 書き捨てのメモ帳(シンプルなウインドウ)が開くので、そこで 3 + 4 とタイプして入力。
4. 右クリック(Mac では option クリック)でメニューから print it (p) を選択して結果の 7 を確認…
というようにして遊べます。3 + 4 の代わりに 100 factorial などの Smalltalk 式が試せます。
分からないことは、些細なことだと思っても、自力で解決しようとせず、どんどん訊いてください。
133:デフォルトの名無しさん
06/05/23 22:50:34
ウィンドウのデフォルトサイズの変更の仕方を知っているひとはいます?
フォントサイズを大きくしたら、ボタン名がキレイに表示されなくなった。
毎回ウィンドサイズを変更するのがメンドイ。
134:デフォルトの名無しさん
06/05/24 13:40:08
>>133
いささか、その場しのぎ的方法で恐縮ですが、RealEstateAgent class >> #standardWindowExtent の
^ (allowedArea extent - (grid*(maxLevel+1*2) + (grid//2))) min: StandardSize "600@400"].
という行を、
^ 800@600
"(allowedArea extent - (grid*(maxLevel+1*2) + (grid//2))) min: StandardSize" "600@400"].
というように書き換えて accept(alt/cmd + s)してしまえば、指定した好きなサイズに固定できます。
135:デフォルトの名無しさん
06/05/24 22:55:17
長文失礼。書き込みたかっただけ。
コトの発端は、
Smalltalk keysDo: [:each |Transcript cr; show: each].
で、システムに登録されたキーをすべて表示したとき、途中を見たかったが、
量が多いし辞書順に出力されるわけでもないんでバックスクロールが面倒だったこと。
select:とか使えば見たい部分を引っ掛けられるんだが、「なんとなく見たい」場合は見たい部分を
指定できるハズもない。
windwowsなら中間ファイルにリダイレクトしてエディタで開く。unixならパイプでless起動。
squeak的にはどんなアプローチが『普通』なんだろう?
squeakではファイルという存在が見えにくい。ならsqueak的にデータは
どこに格納すべきなんだ。やっぱり生データではなくオブジェクトにする
んだろうか。すべてのオブジェクトは生きている(動いている)というのが
元の設計思想らしいので、これに従うと、例えばsqueakにmovieファイルを
ドラッグアンドドロップすると、そのファイルはオブジェクトに自動変換され、
Squeakの画面にある間はずっと再生しつづける、とかかな。オブジェクト4つくらいで
コマ落ちしそう。プロセッサパワーが無限にあると仮定しても、オブジェクトが50とか
あると1画面に入りきらないような気がする。大量のオブジェクトがあった場合、
必要なオブジェクトを探す方法が必要になるね。
いまのsqueakにそんなものってあったっけ。俺が探せていないだけか。
136:デフォルトの名無しさん
06/05/24 23:10:35
Smalltalk keys または
Smalltalk keys asSortedArray
を inspect するのはダメ?
137:135
06/05/25 00:11:42
>>136
まあ、確かに結果は得られるんですが。
なんというか、やっぱいいです。
138:デフォルトの名無しさん
06/05/25 00:23:56
>>136
インスペクタは途中を省略してしまうので、この局面には向かないかも…。
>>135
| contents |
contents := String streamContents: [:ss |
Smalltalk keys asSortedArray do: [:each | ss nextPutAll: each; cr]].
Workspace new contents: contents; openLabel: 'Smalltalk keys'
なんていうのではどうでしょう。あるいは、いっそファイルにはき出してしまうとか。
| file |
file := FileStream fileNamed: 'smalltalkkeys.txt'.
Smalltalk keys asSortedArray do: [:each | file nextPutAll: each; cr].
file edit
なお、ここでは、上のワークスペース同様、ファイルリストを使ってあえて出力したファイルを閲覧していますが、
メッセージング・パラダイムに脳が冒されているか、熱烈な暫定ダイナブック環境支持者、はたまた
again 中毒者(^_^;)…でもないならば、すべて Smalltalk 環境で済ませる必要はなさそうです。
作ったファイルはお好みのエディタで閲覧するほうが現実的だと思います。
Squeak を、使い慣れて熟知した環境と比べて、その使い勝手がひどく劣っていると判断したり、
馴染みのツールや機能が無いことを見つけて、使えないシステムだと切って捨ててしまうことは、
とてもたやすいことだと思います。でも、ちょっと見方を変えて、使い慣れた環境には存在し得なかった
面白いツールを発見したり、新しいコンピューティング像を模索してみるというのもまた一興かなと思います。
139:デフォルトの名無しさん
06/05/25 15:59:35
単純に'Smalltalk'をエクスプロアすればOKだと思うけど。
ところで、ショートカットをAlt-?からCtrl-?に変えるには、どうすればいいのでしょうか?
Alt-X、Alt-C、Alt-Vとか使いにくい。そもそもなんで、Ctrl-XじゃなくてAlt-Xなんだろう。
140:デフォルトの名無しさん
06/05/25 16:57:08
>>139
help.../appearance... → preferences... → general → swapControlAndAltKeys → ON
Squeak はもともと Mac 上で開発されていて(つか、ベースに使った Smalltalk が Apple 製…)
cmd-z/x/c/v だった。ctrl には shift+cmd のキーショートカットが割り振られていたので
Win などでは ctrl はそのまま shift + cmd 関係を引き継ぎ、alt が cmd の代わりになった。
あと、Squeak ではほとんどのアルファベットにキーショートカットが割り振られているが、
ctrl だと本来の意味とバッティングしてしまい起動できない場合があるのも無関係ではないかも。
141:135
06/05/29 22:11:34
>>138
どっちも文句ないです。
(前者はSmalltalkの前に全角スペースがあって戸惑った)
> メッセージング・パラダイムに脳が冒されているか、
ぜひ冒して欲しい。
142:135
06/05/29 22:13:24
>>136
否定的な書き込みすまん。
「オブジェクトブラウザ」を提案したつもりだったが食いつきがなかったもんで。
143:デフォルトの名無しさん
06/06/01 13:29:41
> Win などでは ctrl はそのまま shift + cmd 関係を引き継ぎ、alt が cmd の代わりになった。
Win に移植した時点で変更するべきだったのでしょうね。
今からでもデフォルトを swapControlAndAltKeys が ON の状態にしたほうが
良いのではないでしょうか。
>>138 さんのおっしゃるように Smalltalk 環境ですべてを済ませることが現実的
でないなら、もうすこし、OS や他のアプリケーションとの親和性を考慮したほうが
ユーザーにとってはありがたいと思います。
144:デフォルトの名無しさん
06/06/11 10:59:56
binaryファイル->textファイルの変換プログラムを作成したい。
[入力ファイル]
4byte unsigned long bigendian * 25 = 100byte
[出力データ]
25個の数字。(10進)
どーすんだー。(泣)
なんかクラスでもつくるんかー。
せめてサンプルになりそうなヤツのタイトル教えて。なるべくかんたんなヤツ。
URLリンク(squeak.qp.land.to)
145:デフォルトの名無しさん
06/06/11 12:53:24
入力が100バイト=800ビットで
出力が10進数25ケタってことは220ビットくらいか?
どっかで情報が失われてるぞ
入力に制限があるんじゃないの?
146:デフォルトの名無しさん
06/06/11 13:29:05
>>145
>どっかで情報が失われてるぞ
えーと、25個の数字というのは25桁の数字ではないです。
4byteなので1個の数字の最大桁数は10桁かと。
147:デフォルトの名無しさん
06/06/11 13:38:22
実は作成したいんは
バイナリログファイル->テキストログファイル
です。ハイ。
ファイルの先頭48byteはヘッダで、とりあえず無視します。
そのあとから16byteごとのレコードが続いています。で、レコードは
4つの4byteフィールドからなるっていて、フィールドはその数字に
対応する文字列が別途あり、ここを対応付けるスクリプトを書きたい。
でも4byteの数字をつくることさえ、ままならない。(現時点では掛け算で求めてる)
なお、Cでは簡単にかけちゃうんですが、そこはSqueakを使いたい。
クラス、メソッド、メッセージ。オブジェクト指向って何かがわかるかな〜と。
148:デフォルトの名無しさん
06/06/11 15:22:54
>147
Integer class >> byte1:byte2:byte3:byte4:
を見れ。
149:デフォルトの名無しさん
06/06/11 18:42:16
開発するときはsystem browserを直接書き換える以外の方法はないか。
他のクラスを参照するために複数のbrowser立ち上げる必要あって、それぞれの
概観が一緒なのでうざい。あと、一時的に作成する場合に、いったん過去のコードを
削除して作成したものをアクセプトするのがイヤ。(前のコードを忘れそう)
プロジェクト変えてもbrowserの中身は変わってないし。
複数のsqueak立ち上げるのもバカっぽい。
150:147
06/06/11 18:56:50
>>148
動かん。
fileStream := FileStream readOnlyFileNamed:'log.bin'.
fileStream binary.
fileStream position: 48.
b1 := Integer new.
b2 := b1 byte1:(fileStream next) byte2:(fileStream next) byte3:(fileStream next) byte4:(fileStream next).
Transcript cr; show: b2.
えーと、byte1:...はクラスメソッドだからオブジェクトb1は必要ないのか。
151:デフォルトの名無しさん
06/06/11 19:29:46
>>149
ナニ言いたいのかさっぱりわからない。きちんと整理してからしゃべってくれるか。
152:デフォルトの名無しさん
06/06/11 20:30:49
>>150
必要ない。Integer クラスに直接メッセージを送って起動する。>#byte1:byte2:byte3:byte4:
>>149
複数のブラウザを開くのは(タブブラウジングという文化がなかった時代からのなごりなので)
慣れるか、それがどうしても耐えられないなら、自分用にタブブラウザを作るしかないですね。
前のコードはバージョンブラウザで閲覧できます。
ブラウザで versions ボタンを押すか、メソッド名リスト枠で alt/cmd + v で起動できます。
もとのコードに戻すには、バージョンブラウザで過去のコードを選択して revert 。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/113 KB
担当:undef