X



Smalltalk総合 Squeak Pharo

0087デフォルトの名無しさん
垢版 |
2013/05/15(水) 00:06:22.07
入門書でお勧めってある?

「Smalltalkで学ぶオブジェクト指向プログラミングの本質」は、
若干宗教臭いのと、このコード入力して実行してみてで説明が終わってる部分が多くて、
今一だった
0089デフォルトの名無しさん
垢版 |
2013/05/15(水) 20:26:42.75
>>87

サクサクSmalltalk―オブジェクト指向のアートとサイエンス
実際の所、smalltalkはコードからしか学べない。
0090デフォルトの名無しさん
垢版 |
2013/05/15(水) 20:45:29.52
「Smalltalkベストプラクティス・パターン - シンプル・デザインへの宝石集」が良かったが
入門書ではないかもしれん
0091デフォルトの名無しさん
垢版 |
2013/05/16(木) 02:13:59.81
>>88
これは読み易そう
無理してVisualWorksやPharo使うより、素直にSqueakからはじめたほうが、楽かもしれませんね

>>89
考え方が身につきそうな内容っぽいですね
中古価格も手頃だし…

>>90
長く使えそうだったので以前、購入しました
斜め読みした後、積読中ですが…
0092デフォルトの名無しさん
垢版 |
2013/06/03(月) 08:37:35.34
ExterenalStream系にbinary送って
StreamEncoderにbigEndian:false

とかおくってもほぼ全部のEncoderがこれ無視しててBigEndianしか考慮してないのな。
結局ちまちまとバイト単位で読んでbig<->littleの変換を手動でしなければいけないという

もうちょっとこの辺直してくれよ・・
0093デフォルトの名無しさん
垢版 |
2013/06/14(金) 03:36:25.67
パソコン初心者向けの本か、専門家向けだけど古くてタイプライターで文字打ったような本のどちらかしかない印象
0097デフォルトの名無しさん
垢版 |
2013/07/23(火) NY:AN:NY.AN
Pharo1.4ではダイアログって標準的にはどうやって作るものなのでしょう?

まずはOKボタンだけがあるダイアログを出そうとして、workspaceで以下をdo itしてみました。

| theme dialog |
theme := UIManager default theme.
dialog := theme builder newPluggableDialogWindow: 'OK?'.
dialog useDefaultOKButton.
dialog open

でもOKボタンのない空のpaneのダイアログが出てしまいます。
OKボタンつきのmodalなダイアログを出すにはどうしたらいいのでしょうか?
0098デフォルトの名無しさん
垢版 |
2013/07/24(水) NY:AN:NY.AN
>>97
Pharoは使っていないので、はずしていたらごめんなさい。
(ふだん使っているSqueakも、かなりあやしいんで言い訳にはならないんですが^^;)

#useDefaultOKButton の senders から #exampleBasicControls というメソッドを見つけて
この中身を削りながらためしてみたんですが、
どうやら何かしらコンテントを追加した状態で改めていったん #model: をコールしとかないと
OK ボタンは出てこないみたいですね。

| dialog builder |
builder := UIManager default theme builder.
dialog := (builder newPluggableDialogWindow: 'OK?') useDefaultOKButton.
dialog contentMorph: dialog newRow.
dialog model: nil.
dialog open
009997
垢版 |
2013/07/25(木) NY:AN:NY.AN
なんだそうでしたか。>98
コンテントはあるのが普通なので、それなら問題ないですね。
ありがと。
0100デフォルトの名無しさん
垢版 |
2013/08/12(月) NY:AN:NY.AN
aTextMorph中で、改行部位は単語の区切りの空白に限るようにすることはできますか?
transcriptやworkspaceがやってるように、行末で英単語が分断されないようにしたいんです。

例えば下のようにダイアログの中に英語を書くと、単語の区切りとは関係なく改行されます。
つまり、行末でaaaaaaaaという単語が、aとかaaとか、途中で分断されてしまいます。

| string |
string := ''.
100 timesRepeat: [string := string, ' aaaaaaaa'].
LongMessageDialogWindow new
textFont: UIManager default theme textFont;
title: 'example';
text: string asText;
open

これを、workspaceやtranscriptみたいに、空白部分だけで改行するようにしたいんです。
どうすればいいのでしょうか?

Pharo1.4を使っています。'UIManager default theme textFont'はMS UI Gothicの10pointです。
0101デフォルトの名無しさん
垢版 |
2013/08/13(火) NY:AN:NY.AN
>>100
例によってPharoは使っていないのでハズしていたらごめんなさい。

ちょっと調べてみたのですが、どうもPharo 1.4ではSqueakと違い、Workspaceや
Transcriptであっても単語の区切りで行を改めるようにはなっていないように見受けられます。

これは Paragraph>>#composeAll が常にマルチバイト文字列用の改行位置決めの機構を
使っているせいのようです。したがって、この部分をシングルバイト文字列用の当該機構を
使うように書き換えてやれば、ご呈示のスクリプトは変更無しに単語の区切りで改行される
ようになるはずです。

具体的には Paragraph の composeAll メソッドを探し、multiComposeLinesFrom: という
キーワード部分を composeLinesFrom: に書き換えて、黄ボタンメニューから Accespt (s) します。
0102デフォルトの名無しさん
垢版 |
2013/08/18(日) NY:AN:NY.AN
ありがとうございます。>>101
TranscriptやWorkspaceを実際に開くと、単語区切りで行を改めてくれているんです。

英単語だけのダイアログの例を出しましたが、
もちろん日本語のダイアログを出したいこともあるので、
Paragraph>>composeAllを書き換えるべきかも、もう少し考えてみます。
0103デフォルトの名無しさん
垢版 |
2013/08/18(日) NY:AN:NY.AN
お役に立てずすみません。Pharo 1.4 ですよね?

http://www.pharo-project.org/pharo-download/release-1-4

を念のため落として調べてみたのですが、
やっぱり手元の環境ではWorkspaceは単語で折り返さないようです。

いずれにせよ、単語区切りで折り返すか否かは Paragraph が
何か挙動を代えている可能性が高いので、そこを意識して
折り返さない LongMessageDialogWindow と折り返す StringHolder など
とでコードや設定の違いを調べてみると、答えが見つかるかもしれません。
0104100
垢版 |
2013/08/20(火) NY:AN:NY.AN
Paragraphは単語区切り作業をScannerに委譲しているはずですが、
委譲先を選ぶ際にどうも筋の悪いことをやっているように見えて、あきらめました。
実のところ、Pharo2.0を試したら、>>100のダイアログは簡単に単語区切りになったので、
移行しようと思ってます。
ありがとうございました。


なお、再度Pharo1.4を取り直して試しましたのですが、
私のところだとWorkspaceやTranscriptは何もせず単語で区切ってくれます。
MacでもWindowsでも。
Settings等を何もいじらない、取ってきたそのままの状態で試しました。
0105デフォルトの名無しさん
垢版 |
2013/11/08(金) 08:11:09.53
Smalltalkで書かれたnative用のCompilerと
Smalltalkで書かれたvmのSourceて無いの?

Pharo当たりで、Nativeで動くVMを生成して、
そのVMでPharoを動かしたい。
0106デフォルトの名無しさん
垢版 |
2013/11/08(金) 08:17:37.26
>>79
本番稼働前にimageのバックアップとっとけばいいだろう。
0107デフォルトの名無しさん
垢版 |
2013/11/08(金) 08:35:32.64
VMMakerでVM作れるんだな
0108デフォルトの名無しさん
垢版 |
2013/11/19(火) 23:08:13.53
>>105
自分で何を言ってんのかわかってんのか?
0111デフォルトの名無しさん
垢版 |
2013/11/29(金) 12:24:59.77
Pharoってデフォだとwindowsで、FileStreamのstdoutなんかから
取得した標準入出力がまともに動かんね。
そろそろなおらねぇかなぁ。
0112デフォルトの名無しさん
垢版 |
2013/12/08(日) 10:27:33.97
7.10pulのOSX版、各種描画や日本語表示入力関連がやっと直ってきたね
今までストレスマッハだっただけにこれはとてもありがたい
しかしVMが64bitじゃないのは今後に期待か・・
roadmap見ると一応いつかはやるらしいが
0114デフォルトの名無しさん
垢版 |
2013/12/19(木) 13:19:32.62
MatriXが面白すぎてブロック投げまくってる
Polycephaly1がpipe動作だったのに対してMatrix(Polycephaly2)がsocket動作になったようだ

異なるマシン間でVisualWorks専用のプロトコル流すって話題があったと思って
store見たらPolycephaly-Networkなんてのがあるんだね
0116デフォルトの名無しさん
垢版 |
2014/04/29(火) 20:33:59.74ID:K0C+/bQ4
全画面表示のソフト作るのはこんだけ。

| os layout |

layout :=
'<?xml
version="1.0"
encoding="utf-8"?>

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android";
android:id = "@+id/BackGround"
android:orientation = "vertical"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:background= "#ff000000">

<Button
android:id = "@+id/Hello"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Hello"
>
</Button>

</LinearLayout>
'.

PackageLoader fileInPackage: 'Android'.

os := Android new.
os fullShow: layout.
0120デフォルトの名無しさん
垢版 |
2014/05/05(月) 15:43:39.05ID:s/emtMHD
VisualWorksいいっちゃいいけど、
Linux Unix 環境じゃ
全角文字の表示がダメダメ。
あと、OSのapi呼び出すときに使うthapiが遅すぎ。
job queue 方式にするなり何とかしてほしい。
0122デフォルトの名無しさん
垢版 |
2014/05/06(火) 00:36:20.51ID:lmYR+WVl
>>121
殆どドラッグ&ドロップでWebサイト作れたりする。
しかも、サーバーと区別がいらない。率直にいって比較にならん。

具体例:
 Seaside

難点は、OOが解らない人には使えないとこか。
多態やセレクターの指定で切り替えれば済む事を、
bool値とifで凌ごうとするヤツや、引数や戻り値は
色んなオブジェクトを使えばいいのに、数値や文字、
日付ぐらいしかつかわないみたいなヤツは使えないだろ。
オブジェクトの入れ替えで動作を切り替えていくからな。
0123デフォルトの名無しさん
垢版 |
2014/05/06(火) 00:54:28.37ID:jLlWJyza
どうでもいいけどHTML5なんて規格は存在しないから
正確にはDOM4規格だよね。
0126デフォルトの名無しさん
垢版 |
2014/05/06(火) 23:19:21.81ID:4OvGFEoo
小規模社内システムとかSeasideで十分だよな。
あんなんにJavaとPHPとかオーバースペックで効率悪すぎるわ。
0127デフォルトの名無しさん
垢版 |
2014/05/07(水) 22:43:21.01ID:4Qw1Q+lJ
そういやPharo 3.0が出たな。
そろそろVisualWorksやGSTみたいに名前空間搭載すればいいのに。
0129デフォルトの名無しさん
垢版 |
2014/05/09(金) 21:30:16.60ID:gPiH2iVe
そらやっぱ接頭辞と違って空間名の変更が楽だもの。
それにSmalltalk環境がClass名とちゃんと別扱いしてくれるし。
0130デフォルトの名無しさん
垢版 |
2014/05/28(水) 08:00:49.57ID:LnZUrzDK
GNU SmalltalkでImageに保存したClassの削除方法がわかんねー

removeFromSystemとか無いんかい
0131デフォルトの名無しさん
垢版 |
2014/06/01(日) 07:14:55.11ID:Q3FUAo9P
Seasideの新しいバージョンでてるな
パフォーマンスも向上したとかなんとか
あれの使い方分かってないんでまだ手出してないが
0132デフォルトの名無しさん
垢版 |
2014/06/13(金) 03:19:29.47ID:pu2H4m/c
どうにも詰まって進みようがなくなったので質問です

やりたいことはHTMLをparseしてタグ単位にnode化しtree状にばらして
rootから各nodeを辿れるようにしてelementを適当に参照したいわけです

XML.XMLParserに読ませるとまず通らないというか
HTML ≠ XML なので当然なのかも知れないですが
XMLMarshaler(これと連動しているXPath) , SIXX これらも見てみましたが
HTMLを読ませることはできないような気がします。

いい加減に書かれているHTMLをこれまた適当にparseしてくれるようなクラスはないんでしょうか。
自力で書くことも出来ないわけじゃないと思いますが、WebServiceのドキュメントを見る限りはHTMLを読めるようにも見えるので情報不足過ぎて困ってます。

これを使えとか何かヒントがあったらお願いします!
0133デフォルトの名無しさん
垢版 |
2014/06/13(金) 20:19:37.10ID:NLaaux3h
>>132
古いWebBrowserの実装がコントリビュートかPublic Repositoryにあったはず。
それとは別に、埋め込みのWebBrowserコンポーネントが使えるから、パースはそちらに任せることができるかもしれない。
0135132
垢版 |
2014/06/14(土) 04:06:56.16ID:ITyiT+1l
>>133
探してみます

>>134
^true
0136132
垢版 |
2014/06/18(水) 05:38:46.87ID:RDasuJfa
うまくいかないのと追加したい機能があるんで
イチから作ることにしました
助言ありがとうでした
0137デフォルトの名無しさん
垢版 |
2014/06/22(日) 19:01:35.83ID:LtMDfcfl
>>132
本当にしたい事は何なの?
昔Web巡回ソフトつくったけど、その時は必要な情報以外は正規表現で消したよ。
この方法だと汎用性は無いけど結果はすぐ出せる。
0138132
垢版 |
2014/06/24(火) 03:53:12.30ID:XA65lbe0
>>137
特定キーワードの後に来ているtableを特定して要素抜き出したりとか
iframe分割するとかそんなとこです
csv入出力に加えてタグの値をセルから拾って再加工してhtmlに吐いたりとかそのへんも必要です
parseして再帰構造作るところまでは終わったので
/html/body/table/3@4
とかのString pathからelementを取得できるところを書いてます
0139デフォルトの名無しさん
垢版 |
2014/07/27(日) 18:29:02.03ID:JHUQ8wq7
VistaScript(VistaSmalltalk)使ったことあるヤツ居る?
0140デフォルトの名無しさん
垢版 |
2014/09/14(日) 01:26:41.03ID:kCUGk4im
VistaScriptには思い出もなにもあったもんじゃないらしい
やっぱりSmalltalkは言語だけを切り離せないんじゃないの
0144デフォルトの名無しさん
垢版 |
2014/11/03(月) 11:33:07.14ID:1HqxpQO9
青木導師の「Smalltalkイディオム」買いましたが、やっぱこれ、逝ちゃって
ませんか?
さまざまな文献からの綺羅星のごとき引用も、変化自在な例え話も、「ために
する」感じがして読み手のこと考えているのかなと。
例えば城砦都市の話とかでセキュリティの話をしているかとおもうと、それが
Smalltalkのオブジェクト間の通信の自由さと比較されたり。
それってぜんぜん別の話じゃあ・・・?
引用も多すぎて、なんか引用が多すぎる文章をからかった、パロディみたいだ
と思いました。本気ならコワイ。
でも内容は高度で、Smalltalk関連情報に飢えている心の隙間を埋めてくれる
良書であるとは思います。
結論:自意識過剰
0145デフォルトの名無しさん
垢版 |
2014/11/05(水) 09:21:18.62ID:DTvjdF5c
あの人の本は読んでも役に立たないから
MLでもそうだったけどわざわざ理解が遠くなるような投稿ばかりしてたり
本質そらすような誘導してたり
0147デフォルトの名無しさん
垢版 |
2014/11/05(水) 19:09:55.76ID:DTvjdF5c
読み物として買うならいいけどあの人の本は入門させる気がないって内容が多すぎる
どうでもいいことばかり書いてあるだけで何かできるようになるわけじゃないからね・・

一応それなりのポジション扱いされてるから表立って批判されることはないけど
MLでも登場すると他の人がいちいちフォローしなきゃいけなかったりとなかなか困った存在ではあったと思う
VWに関しては公式pdf読んだりExampleやったほうが早いしね
0148デフォルトの名無しさん
垢版 |
2014/11/08(土) 20:32:56.18ID:PCfU+KcI
Cincomに連絡すれば日本語版を送ってくれる。うれしいことにドキュメントも
日本語。
0151デフォルトの名無しさん
垢版 |
2014/11/09(日) 18:51:55.85ID:EfnQMxIS
 Cincomは、オブジェクト脳育成ツールとか、分析技術育成ツールと
して割り切って使うようにプロモートすればいいのにな。

 
0152デフォルトの名無しさん
垢版 |
2014/11/09(日) 20:41:10.43ID:TyKSlevg
それよりいい加減ネイティブなGUIを使うようにしてほしい
7.10からUISkinningとか入って来てるけど
0154130
垢版 |
2014/12/04(木) 00:22:48.12ID:iyLFTAd9
GNU Smalltalkを使ってるとき
ObjectMemory snapshotで保存したClassを
削除できなかった件自己解決しました。

ClassだけじゃなくMetaClassの削除と
Namespaceからの削除が必要らしい。

Classを削除する手続の例:
! ClassManager methodsFor: ''!
deleteClass: aClass
 | superClass nameSpace |

 superClass := aClass superclass.
 nameSpace := aClass environment.

 nameSpace removeKey: aClass name.
 superClass removeSubclass: aClass.
 superClass class removeSubclass: aClass class.
!!
0158デフォルトの名無しさん
垢版 |
2014/12/10(水) 21:19:55.43ID:p5128+HO
Pharoいいな
Squeakが子供向けっぽくなったから敬遠してたけどまたSmalltalk系を
触ってみたくなった
0159デフォルトの名無しさん
垢版 |
2014/12/11(木) 00:09:29.09ID:mbz3wuYK
rasberry pi に scratch が入ってるらしいから、これから買ってポータブルの squeak 専用マシンにしようと思う
0160デフォルトの名無しさん
垢版 |
2014/12/17(水) 22:33:40.79ID:HhMJUnCz
Seaside を動かすサーバってログインしてSmalltalk動かしっぱなしにしとかなきゃ駄目なんか?
それとWebサーバ落ちたらどうやって再起動するの?
0161デフォルトの名無しさん
垢版 |
2014/12/17(水) 23:05:41.24ID:GPjgNjwM
>>160
Webアプリケーションサーバとはそういうものだ。

Webサーバが落ちたら、先に起動したときと同じ手順を踏むだけだと思うが、何がわからないのかがわからん。
0163デフォルトの名無しさん
垢版 |
2014/12/18(木) 07:03:50.12ID:r0K9Q3c7
>>161
普通のWebサーバならデーモンやサービスで動いているんでログオンしてる必要は無いし
死活監視があるので落ちても自動でサーバ立ち上がるし
サーバがバックグランドで動かいななんてあるんかと思っただけ

>>162
Smalltalkをデーモン化するようなものか?
0164デフォルトの名無しさん
垢版 |
2014/12/18(木) 07:05:42.31ID:r0K9Q3c7
Smalltalkのオススメの本かサイト教えてください。
正月休みに遊んでみたいんで。
0167デフォルトの名無しさん
垢版 |
2014/12/18(木) 20:38:12.20ID:r0K9Q3c7
>>165
有難う御座います〜♪

Squeak見て、何じゃこりゃ〜分けわからんになって
Pharo見てこれなら使えるかと思ってるところです。
0170デフォルトの名無しさん
垢版 |
2014/12/19(金) 09:22:17.06ID:5b1jdacN
>>160
Smalltalk にはいわゆる方言がたくさんあって、それぞれに事情が異なります。
さらに Seaside は人気で、処理系の差異も乗り越えて比較的多くの処理系に移植されているという
特殊な事情があるので、質問するときは特にどの処理系を想定しているか限定したほうがいいですよ。

Smalltalk を学び始めるタイミングでは、すでに他の言語にかなり精通している人が多いので
めんどくさい手続きかもしれませんが…
0172デフォルトの名無しさん
垢版 |
2014/12/28(日) 23:14:19.55ID:R3dzA+5K
squeak eToysでキーボード入力を取得するにはどうしたらいいの?
0174デフォルトの名無しさん
垢版 |
2014/12/29(月) 20:09:43.03ID:Gybf5FK3
ありがとう
けれどそれeToys 5.0じゃダメみたい
でもそのページのワールドのキーストロークを使えるみたいな説明があったので
部分的には使えるかな
そこのページに書かれているけどモディファイやキーや複数キーの同時押しなんかには対応できないらしいのが残念
右と上の矢印キーの同時押しで右上に動くとかやりたいけど無理みたいね
0175デフォルトの名無しさん
垢版 |
2014/12/31(水) 15:15:04.47ID:eZK8RP2d
今年を振り返って一行プログラムでもやろうかと思ったけど
特に何も思いつかなかった
0177デフォルトの名無しさん
垢版 |
2015/02/01(日) 21:47:48.16ID:oqChC4NJ
>>4
超重要なのは君の頭の中だけで
誰も必要としてないからだよ

というツッコミがないのが凄いスレ
0178デフォルトの名無しさん
垢版 |
2015/02/01(日) 22:14:37.31ID:QJWUHP7z
Smalltalkより
キミがどうしてそんな書き込みを
今、わざわざしたくなったのかの方に興味がわく
0180デフォルトの名無しさん
垢版 |
2015/02/05(木) 01:14:54.06ID:Eev1wDUX
>>178
オブジェクト指向の元祖はSimulaだしSmalltalkなどは完全に無視できる派
ストラウストラップがSmalltalkを重要視してないので
かつてはC++ユーザーにもそういう人がいたのだという。
0181デフォルトの名無しさん
垢版 |
2015/02/05(木) 08:44:08.12ID:h79vg6iD
うん。
世の中にはそういう主張をする派があって、キミがその派に属することはわかった。

で、ならばその完全に無視していいはずの Smalltalk のスレを
今、ここにきてどうして無視できなくなったのかに興味がわく
0182デフォルトの名無しさん
垢版 |
2015/02/05(木) 11:22:44.97ID:I9l1mGeI
そんなことより
WindowsのVMはIMEのインライン化がいまだにできないことと
OSXのVMはネイティブのMenuBar(NSMenu)を使えるようにならないことが不満ではある
Windowにメニューが張り付くのはあんまりいい気がしない・・
0183デフォルトの名無しさん
垢版 |
2015/02/05(木) 21:34:10.11ID:axWRz5yo
これ最近さわりはじめて
発想がすごく面白いと思ったけど
やっぱ実用的な面で欲しい機能もある

たとえば作ったアプリは実行ファイル
(Windowsでいう .exeファイル)で配布したい

実行形式じゃないと絶対ダメってほど頭固くないけど
(速度が)早い・(容量が)小さい・(コードを)隠せる
ってメリットがあるから便利だと思う

それ(に近いこと)ができる処理系もあるようだけど
もともと少数派のSmalltalkの中で分家筋を使うと
さらに日本語ドキュメント少なくなって使いにくいし
(というわけでとりあえずSqueakさわってる)

Webアプリならサーバの部分はクライアントから見えないけど
今度はレンサバに入ってないからPHPのほうが早いってなる

そういうCファミリーのメジャー言語のいろんな恩恵に
どっぷり漬かっちゃってるから参入障壁になってる

自分ひとり用の環境としては面白いけど……

Smalltalkは初心者だから
なにか初歩的な誤解があるかもしれないが
あったらツッコミしてくれ
0184デフォルトの名無しさん
垢版 |
2015/02/05(木) 22:37:03.73ID:gaBdO10c
>>183
俺はずっと初心者だけど
やはり最初は.exe作りたいと思ってた
できることが面白くなってからは、そういうこだわりは無くなったかな
まぁ配布したいものもないんだけど

Scratchもそうだけどpr、sar、imageで配布だし、そういうプラットフォームなんだと割り切ってる
他の人に使ってもらうにはインストールから説明しないといけないから、
確かに寂しいと思うけどね
SqueakだとWindowsの.exe作る方法もあったと思うけど...

そうね 自分ひとり用の環境としては面白いからSqueakでArduinoと通信するものとか
自宅LAN用のComSwikiのプラグインたまに作るくらいだけど
レスを投稿する


ニューススポーツなんでも実況