From merlyn at stonehenge.com Wed Nov 11 16:43:36 1998 From: merlyn at stonehenge.com (Randal Schwartz) Date: Sat Jan 28 03:59:44 2012 Subject: Results of proposal to create squeak-help list... In-Reply-To: ohshima@is.titech.ac.jp's message of "Thu, 12 Nov 1998 01:15:16 +0900" References: <19981111161516.17982.qmail@n0ud.is.titech.ac.jp> Message-ID: <8csofqxjrb.fsf@gadget.cscaper.com> >>>>> "ohshima" == ohshima writes: ohshima> The fourth is who read only squeak-help. This is my ohshima> concern. If he is new to Squeak and Smalltalk, how can ohshima> he figure out what he is trying to post is advanced enough ohshima> for "squeak mailing list" or not? Or if he just knows there ohshima> are two separated mailing lists, how can he figure out which ohshima> mailing list he should subscribe? Let us not forget the lesson of "comp.unix.questions" and "comp.unix.wizards" as well. For those of you that haven't been around Usenet for 19 years like I have... Originally, there was just a comp.unix.questions... and all sorts of stuff got discussed there, from "how do I give more than one argument to cat" to "the interrupt half of my device driver is leaking memory". Eventually, the "wizards" got tired of seeing the questions about "cat", and wanted to create a group where they would discuss heavy-duty development questions amongst themselves. (Sound familiar?) So, we forked off a new group "comp.unix.wizards". But, thanks to the collective lack of intelligence on Usenet... a newbie would come along and say "my question about cat is VERY difficult and I want an *EXPERT* answer, not a beginner to answer. Oh look, here's a place where *EXPERTS* hang out" and then post immediately to comp.unix.wizards. So the experiment was a failure. Any "expert" group is a lightning rod for beginners. We even posted FAQs that said "don't post here if you want to *talk* to a wizard. Post here if you *are* a wizard." But that didn't help. So the group had to be re-created as a moderated group to filter out the beginners. Just another guy trying to prevent repeating history, -- Name: Randal L. Schwartz / Stonehenge Consulting Services (503)777-0095 Keywords: Perl training, UNIX[tm] consulting, video production, skiing, flying Email: Snail: (Call) PGP-Key: (finger merlyn@teleport.com) Web: My Home Page! Quote: "I'm telling you, if I could have five lines in my .sig, I would!" -- me From wDargel at shoshana.com Fri Nov 6 01:40:52 1998 From: wDargel at shoshana.com (William O. Dargel) Date: Sat Jan 28 03:59:44 2012 Subject: CrLfFileStream as default? References: <199810312032.PAA17964@cleon.cc.gatech.edu> Message-ID: <364253A4.59E411B7@shoshana.com> lex@cc.gatech.edu wrote: > [snipped good description of the distinction between the guessing > used to pick line ending that should be used for new files, and that > for appending to old files] > > Now in the CrLfFileStream in the standard image, this second guess > is also used when reading. If the convention was guessed to be CR, > then any LF's read in will be left as is. This is also debatable, > and in fact I think that LF's should be converted to CR's no matter > what convention has been guessed. > > So I sent a patch around a few days ago that did just this. > > Now, I've been using this setup for a week or so now with no troubles. > However, I've not messed with any *really* strange files.... I checked out the patch for #next and it has a problem of getting stuck when the *last* character of the file is a Cr. The position gets bumped back, and you keep getting the Cr over and over again, never reaching the end. The following is one way to fix it: CrLfFileStream >> next | char secondChar | char _ super next. self isBinary ifTrue: [^char]. char == Cr ifTrue: [secondChar _ super next. secondChar ifNotNil: [secondChar == Lf ifFalse: [self skip: -1]]. ^Cr]. char == Lf ifTrue: [^Cr]. ^char Personally, I haven't decided whether to start using this method or to stick with the (current) approach of expecting consistent line endings within a file being read. I do use something like the above, but only on an as-needed basis to fix-up "problem" files. I can see cases where each of the two approaches (accepting mixed line endings vs. expecting only one type) can each have their uses. Maybe someone can figure out an approach that could allow either in a flexible yet clean implementation. Anyone up for refactoring the Stream hierarchy? :-) ------------------------------------------- Bill Dargel wdargel@shoshana.com Shoshana Technologies 100 West Joy Road, Ann Arbor, MI 48105 USA From david_mitchell at my-dejanews.com Mon Nov 23 20:09:19 1998 From: david_mitchell at my-dejanews.com (David Mitchell) Date: Sat Jan 28 03:59:46 2012 Subject: HOWTO fodder (was: Re: Fonts too small -- from a clueless Message-ID: Agreed. I'll update the Squeak Discussion Swiki tonight. -- On Mon, 23 Nov 1998 16:02:59 chris patti wrote: >At 12:48 PM 11/23/1998 -0700, you wrote: >>Try this: >>TextStyle changeDefaultFontSizeBy: 1 >> >>I filed out the code that does this, so you can browse TextStyle for more >info. > >This should be in an FAQ or HOWTO. > >Also the answers I'm getting WRT SmallTalk Express, as they cover questions >people flailing at SmallTalk and squeak in particular *WILL* ask. > >If I were to build such a HOWTO page, where should I put it? Is a page on a >Swiki somewhere most appropriate, or should I just do my own webpage on my >own site? (Which makes the info the most readily available?) > >-Chris > > -----== Sent via Deja News, The Discussion Network ==----- http://www.dejanews.com/ Easy access to 50,000+ discussion forums From nishis at urban.ne.jp Tue Nov 10 02:54:52 1998 From: nishis at urban.ne.jp (Satoshi NISHIHARA) Date: Sat Jan 28 03:59:48 2012 Subject: [Squeak] How to get the size of any object (sorry too long) References: Message-ID: <3647AAFC.C77E0BE7@urban.ne.jp> Thanks this GREAT HELP!! Dan Ingalls wrote: > >Q1.4) > >getting the byteSize of aMethod, must add methodHeaderSize (4 bytes) > >So its total is methodHeaderSize + bytesize of aMethod self + size of literals. > >Is this right? > > No. The response to size is the size in bytes, including the literal frame and the 4-byte sourcecode pointer at the end. Just add 4 for the method header. > But sorry for 2 more questions. ex) result := (Point compiledMethodAt: #rounded) size. Q1.5) Does this result include its objectHeadersSize? If not, I think I must add *more* 4 byres as objectHeadersSize of an instance of CompiledMethod (4 bytes). a) byteSize := result (31) + 4. b) byteSize := result (31) + 4 + 4. Which is right? Q1.6) Must I consider "4 bytes boundary" or not? If I must, c) byteSize := (result + (4 - 1) bitAnd: 4 negated)(32) + 4 + 4. -- -------------------------------------------- 西原聡士 (NISHIHARA Satoshi) e-mail: mailto:nishis@urban.ne.jp mailto:tcc00164@nifty.ne.jp URL: http://www.urban.ne.jp/home/nishis/ -------------------------------------------- From stan at stanheckman.com Wed Nov 11 22:08:21 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 03:59:55 2012 Subject: units In-Reply-To: Ken Dickey's message of "Wed, 11 Nov 1998 10:06:01 -0800" References: <199811111806.KAA14382@scv3.apple.com> Message-ID: <87u305naqy.fsf@streamer.msfc.nasa.gov> >> OK, so when one of these funky non-mathematical o Ken Dickey writes (with salt): > Numerical operations such should only operate on the numeric part of the > object. Do you mean that the units operations and numerical operations should be in separate methods, or that these objects shouldn't be numbers, or what? I think the message #* is telling a dimensional object both to change its numerical value, and to change its units. How would it "only operate on the numeric part of the object"? -- Stan From cohenb at gemstone.com Thu Nov 12 18:26:15 1998 From: cohenb at gemstone.com (Bruce Cohen) Date: Sat Jan 28 03:59:56 2012 Subject: Good Public Domain info for Squeaking In-Reply-To: Your message of Thu, 12 Nov 1998 07:06:49 -0800. Message-ID: Dan Ingalls writes: >> I have in mind a couple of fun Squeak aps, but I'd like them not to rely one= >> proprietry material. So I would like to hear from anyone regarding >> >> Maps, covering the US >> Maps, covering the world >> Deck of cards >> Dictionary of english >> ideally with some flags and factored rules >> for purals, verb endings, etc >> Other interesting stuff >> bird calls >> star charts >> images of art and architecture >> >> Does anyone know a meta-solution to this? Are there good web sites or other= >> repositories for such P.D. info and artwork? Obviously I can search this= >> myself, but I'm hoping someone has already done this and can provide some= >> guidance regarding what is good and not so. For many years, my first reaction to a problem like this was to look for an appropriate book from Dover Books. Dover publishes (along with a lot of other fascinating titles) a long list of books of clip art, copyright free. They have a few collections of clip art on disk as well, but I've had good results scanning in pages from their books. Unfortunately, they don't seem to have a website, but you can look for the books on one of the online bookstores, like Amazon or Powell's. A quick search for "Dover Books" on amazon.com got 457 hits. I can vouch for the selection at Powell's; I visit their store in Portland at least once or twice a month, and often walk past or browse through the shelves of the clip art books. ----------------------------------------------------------------------------- Q: How many surrealists does it take to screw in a lightbulb? A: Two. One to hold the giraffe and the other to fill the bathtub with brightly colored machine tools. ----------------------------------------------------------------------------- Bruce Cohen, | email: cohenb@gemstone.com GemStone Systems, Inc. | phone: (503)533-3602 20575 NW Von Neumann Drive | fax: (503)629-8556 Beaverton, OR USA 97006 | web: http://www.gemstone.com From patc at teleport.com Mon Nov 16 15:16:02 1998 From: patc at teleport.com (Pat Caudill) Date: Sat Jan 28 03:59:57 2012 Subject: Multi-threading the interpreter Message-ID: <19981116151457.23273.qmail@relay1.teleport.com> Jan Bottorff wrote >At 03:18 PM 11/14/98 -0500, dick Peskin wrote: >>A multi-threaded interpreter would be a good idea anyway. For example, if >>there were a way to make the interprter multi-threaded, performance would >>really be enhanced under the BeOS on multi-processor systems, since it is a >>pervasively multi-threaded OS which will map threads to available >>processors. Has any work been done on multi-threaded interpreters? I can >>see all sorts of issues such as how to handle garbage collection. > >There are many very sticky issues of doing a multi-threaded, >multi-processor Smalltalk. It's not just in the VM. Look at what might happen if two processes tried to add an element to an OrderedCollection at the same time. I suspect a significant part of the image code would have to be updated too. Pat Caudill patc@acm.org Pat_Caudill@Instantiations.com From raab at isgnw.CS.Uni-Magdeburg.De Mon Nov 9 15:00:05 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 03:59:57 2012 Subject: Latest updates In-Reply-To: from "Andreas Raab" at Nov 9, 98 03:56:43 pm Message-ID: <199811091500.QAA14303@monet.cs.uni-magdeburg.de> > Starting from a vanilla image with all updates loaded should result in > "true" for 1) and "false" for 3) if your system does not support sound > output. Oops - of course it's "false" for 1) and "true" for 3) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From jdbell at fareselaw.com Sun Nov 22 02:23:31 1998 From: jdbell at fareselaw.com (Jerry Bell) Date: Sat Jan 28 03:59:58 2012 Subject: Hyperbolic Tree Class Browser In-Reply-To: <01BE15A4.5DA707C0@maq065b.advance.com.ar> Message-ID: <000301be15bf$19c46230$a3646464@graphics.farese.com> I don't know of any non-java demos. I'm running IE4 with the newest updates under NT Workstation 4.0 SP4, if that helps. The demos load and run fine. If there is interest maybe I can do a screen grab and post it somewhere? You really won't be able to get the full effect unless you can play with it live, though. jdb -----Original Message----- From: Alejandro F. Reimondo [mailto:aleReimondo@sugarweb.com] Sent: Saturday, November 21, 1998 8:12 PM To: squeak@cs.uiuc.edu Subject: RE: Hyperbolic Tree Class Browser I've tried to enter in the Louvre demo, it takes 10 minutes to load the Java applet and my IExprorer crashed closing all the opened browsers windows. Are there any demonstration not written in Java ? thanks. Ale. From Jarvisb at timken.com Wed Nov 11 16:42:00 1998 From: Jarvisb at timken.com (Jarvis, Robert P.) Date: Sat Jan 28 03:59:58 2012 Subject: Results of proposal to create squeak-help list... Message-ID: <602F235CF2ACD011977E00805F91637B017CDAF3@ctnhemail01.corp.timken.com> > -----Original Message----- > From: ohshima@is.titech.ac.jp [SMTP:ohshima@is.titech.ac.jp] > Sent: Wednesday, November 11, 1998 11:15 AM > To: squeak@cs.uiuc.edu > Subject: Re: Results of proposal to create squeak-help list... > > (A Japanese saying: "Asking is a shame for one moment, not > asking is a shame for life." (better translations?)) > The closest phrase in English which comes to mind is "The only stupid question is the one not asked". (We tend to be much more rude in English :-). > My conclusion is: We are a community, we have a mailing > list and everyone post his own article to it. > Yes. Well said. Bob Jarvis The Timken Company From patrickl at servio.gemstone.com Sat Nov 7 16:06:00 1998 From: patrickl at servio.gemstone.com (Patrick Logan) Date: Sat Jan 28 03:59:59 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: <364421B9.EE681E17@netvision.net.il> References: <364421B9.EE681E17@netvision.net.il> Message-ID: Does anyone here have any experience with things like Twiddlers or such? References, please? An initial web search turned up nothing for me. Thanks -- Patrick Logan mailto:patrickl@gemstone.com Voice 503-533-3365 Fax 503-629-8556 Gemstone Systems, Inc http://www.gemstone.com From janb at pmatrix.com Tue Nov 3 21:46:42 1998 From: janb at pmatrix.com (Jan Bottorff) Date: Sat Jan 28 04:00:00 2012 Subject: some not-so-random questions In-Reply-To: References: <199811031554.QAA19299@monet.cs.uni-magdeburg.de> Message-ID: <3.0.3.32.19981103134642.031df960@mailhost.pmatrix.com> At 09:53 AM 11/3/98 -0800, Tim Rowledge wrote: >Windows? Hmm, how about actually allocating a huge virtual space but pretending >to the VM that you only have as much as the -memory param asked for. Then to >expand, you just change that 'fake' boundary. The only trick that springs to >mind is remembering to reset the size of the free chunk at the top of memory. > >Shrinking object space wouldn't be much harder from the VM point of view, >though I'm not sure whether the released memory would get back to the OS pool >very efectively. This is trivial to do under Windows. Just do a VirtualAlloc of a huge chunk of uncommitted address space on startup (like 512 MBytes), and then commit the pages as needed. You can do multiple linear arrays of memory that can each grow independently as needed. For example, old/perm space, large space, code cache space. This seems like just the ticket for interesting memory managers. You can also uncommmit the pages (without deallocating the address space) to give memory back to the os. What's missing is an "ignore the contents of some pages to make them clean, so they won't be paged out", like after a new space sweep. - Jan ___________________________________________________________________ Paradigm Matrix Inc., San Ramon California "video products and development services for Win32 platforms" Internet: Jan Bottorff janb@pmatrix.com WWW http://www.pmatrix.com Phone: voice (925) 803-9318 fax (925) 803-9397 PGP: public key fingerprint 52 CB FF 60 91 25 F9 44 6F 87 23 C9 AB 5D 05 F6 ___________________________________________________________________ From rowledge at interval.com Mon Nov 30 03:29:35 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:00:04 2012 Subject: 2.3 beta buglets In-Reply-To: Message-ID: On Sun 29 Nov, Dan Ingalls wrote: > Methinks it's because Squeak compresses all its Forms in a normal snapshot, but the im > age running the systemTracer will have expanded many of them (such as fonts). The fact that there are 1.7+Mb of Bitmap in the image looks very likely to be the culprit! > I would > try > Form shutDown > at the beginning of writeClone. Also, I'm not sure if we clamp the displayScreen. If > not, that would make a difference, or you could at least go to color depth 1 before w > riting the image. Substituting the Display is definitely a good option, and an easy one (I have some Tracer hacks that make it very easy to do a substitution of that sort) but I think some care is probably needed about shutting down Form -- the Tracer does some displaying as it goes and I can image some possible problems if the Display and a font are unhibernated in the middle of tracing them. I'll see how it goes before worrying too much! I love the Tracer. You can do so many unnatural thins with it.... tim -- Useful random insult:- A natural talent for finding subliminal messages in ice cubes. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From gollmann at edvz.tuwien.ac.at Fri Nov 6 10:34:08 1998 From: gollmann at edvz.tuwien.ac.at (Georg Gollmann) Date: Sat Jan 28 04:00:04 2012 Subject: Is Squeak limited to 512Mbyte process size? In-Reply-To: References: <3642C6F6.27C2E96B@bbn.hp.com> <3640B79F.6FD5@pacbell.net> <364173C1.BC946E47@bbn.hp.com> <36427E37.7AA7@pacbell.net> Message-ID: >At 10:52 Uhr +0100 06.11.1998, Markus Kohler wrote: >>I'm just curious. >>I started my mmap Squeak with 520Mbyte and strange things happened. >>It started up but the process size went to about 140 Mbyte whereas it >>remained >>at 5 when I used 500Mbyte. >>Also Smalltalk bytesLeft gave back around 8 Mbytes of free space ... > >Having a quick look at the image there could indeed be a 512 MB limit in >the garbage collector (browse class var references to >ObjectMemory>FreeSizeMask). But I could be totally up the creek as well... Me again :-) A little further investigation indicates that free chunks of memory can be at most 512 MB or so (FreeSizeMask := 16r1FFFFFFC). I dont?t think this precludes a larger image, but the memory setup can?t just do ObjectMemory>initializeMemoryFirstFree: firstFree .... self setSizeOfFree: freeBlock to: (endOfMemory - firstFree). "bytes available for oops" .... but would have to allocate multiple free chunks. Further code would be needed to allow objects larger than 512 MB, but one could have very few of those anyway :-) Georg ---- Dipl.Ing. Georg Gollmann TU-Wien, EDV-Zentrum phon:(+43-1) 58801 - 42022 fax: (+43-1) 58801 - 42099 mail:gollmann@edvz.tuwien.ac.at http://macos.tuwien.ac.at/Gollmann.html From lamneth at aei.ca Wed Nov 11 04:06:01 1998 From: lamneth at aei.ca (Benoit St-Jean) Date: Sat Jan 28 04:00:05 2012 Subject: Results of proposal to create squeak-help list... In-Reply-To: <36489FB7.D19005B9@ipa.net> References: <199811101942.NAA26479@sal.cs.uiuc.edu> Message-ID: <3.0.5.32.19981110230601.007ac350@mail.aei.ca> At 14:19 98-11-10 -0600, you wrote: >I wanted to see if there were enough people interested in participating >in such a list to make it a worthwhile addition to the original Squeak >list -- instead of just creating an abandoned notion like squeak-annc -- >and to see if it was worth asking any of the Squeak list maintainers to >take the time and trouble to create such a thing in the first place, >since I do not have the webserver resources available to do so myself >[otherwise I would just go ahead and do so]. I do not take >"volunteering" someone else's time lightly. It could even contain some "basic" smalltalk help about the language itself to help newbies overcome this "strange" language... :) ____________________________________________________________________________ Benoit St-Jean Creative Technologies International 871-8585 #234 1440 Ste-Catherine ouest, Bureau 400 email (work) : bstjean@yahoo.com Montreal, Quebec, Canada, H3C 3R7 (home) : lamneth@aei.ca The opinions expressed in this message are my own personal views and do not reflect the official views of CTI From rlpcon at vermontel.net Sat Nov 21 05:11:46 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:00:09 2012 Subject: C code for Block context Message-ID: How does the Squeak Smalltalk to C translation handle Smalltalk code that contains Blcok context? It was my impression that it is difficult to program Block context in C. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From DanI at wdi.disney.com Thu Nov 19 16:53:30 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:00:11 2012 Subject: Diff code available? In-Reply-To: <3653A6E2.AEC48908@shoshana.com> References: <3d43435d.36539436@aol.com> <3653A260.D2EECC56@ipa.net> Message-ID: OK, Folks, I got it! I now have Andreas's code, and am importing it into 2.3. Thanks, all, for the pointers and the enthusiastic recommendations. Andreas: sorry I didn't try this out sooner. - Dan ---------------------- >Bill Dargel wrote... >I'm afraid that I can't take credit for writing it. That honor goes to Andreas >Raab (among his many other contributions to Squeakdom). I merely ported it from >1.23 to 2.0 and got it to open up within Morphic in addition to MVC. >Dwight Hughes wrote... >> The FileContentsBrowser for Squeak, written by Bill Dargel, contains a >> source code diff for comparing code in external files to code in the >> image - quite nice it is too: >> http://isgwww.cs.uni-magdeburg.de/~raab/fcb/FileContentsBrowser-Squeak2.0.st From Simon.Bates at cl.cam.ac.uk Tue Nov 17 09:26:06 1998 From: Simon.Bates at cl.cam.ac.uk (Simon Bates) Date: Sat Jan 28 04:00:15 2012 Subject: Is Squeak useful for me ? Message-ID: I have just joined the Squeak mailing list today. My name is Simon Bates and I am a PhD student at the Computer Laboratory at Cambridge University in England. I am starting a project to present information using ambient sound, for example status information, and I am considering using Squeak. I am new to Smalltalk and Squeak and I have some queries that I was wondering if you could help me with concerning communication between objects in Smalltalk and outside the Squeak Virtual Machine. >From reading the documentation that I have found on Squeak I get the impression that it is only possible to communicate outside the Squeak Virtual Machine using TCP/IP networking and reading and writing files. Is this correct ? In particular is it possible to 1. Communicate with UNIX processes ? 2. Call routines from a library written in a language other than Smalltalk ? Thank you very much for your time, Simon. From hmm at heeg.de Fri Nov 13 12:05:57 1998 From: hmm at heeg.de (Hans-Martin Mosner) Date: Sat Jan 28 04:00:26 2012 Subject: Update on Dynamic Primitives Message-ID: <364C20A5.794BDF32@heeg.de> Hello all, in the last couple of weeks, I've made some more progress towards compiling primitives directly to native code from within Squeak. I'm now able to compile the PluckedSound and SampledSound primitives to native code which runs just as fast as the original primitives generated via intermediate C code. And this is completely without optimizations... I don't think that including the stuff in the next release would make any sense, since it's still too much in flow, and there's no framework for other processor architectures than PowerPC yet. I can imagine putting the support primitive into the mainstream VM since it's fairly small and easily portable. So people could just load the code generation into their image when it's usable and can just go ahead without re-generating their VM. My current plans (if family and job permit) are to have a version for PowerPC and 68K ready for christmas. This will probably not include FP operations yet, but it should be able to do some interesting sound and graphics things. (maybe Andreas Raab's font rendering, too?) I do not yet have a clear picture how this meshes with the pluggable primitive support. Probably the two systems can complement each other. I could also imagine doing the wavelet stuff and the font rendering stuff using dynamic primitives, but I would have to try that out first. I'll keep the list informed about further development... Hans-Martin From jmarker at max.cs.kzoo.edu Mon Nov 23 18:35:15 1998 From: jmarker at max.cs.kzoo.edu (Joshua Johnson Marker) Date: Sat Jan 28 04:00:27 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? Message-ID: <199811231835.NAA19781@max.cs.kzoo.edu.> I love PHW as well. OTS is okay, but there are a few reallly good web tutorials that I prefer to his text. It was good, and for $15 you can't lose, but not ideal. > After doing an Amazon search I just found a book called _On to > Smalltalk_ by Patrick Henry Winston - I really like his style, _On to > Java_ is one of my fave Java books by far. > > So, how close is Smalltalk Express, the dialect he uses in the book, > to Squeak? > > Will I hopelessly scramble myself trying to learn using his book and > Squeak instead of ST Express? > > Thanks, > > -Chris P. > (Aspiring Squeaker) > > ____________________________________________________________________ > |Chris Patti|ICQ#16333120|feoh@cosmic.com|Home > #:(617)625-3194|JAPH| > |"The best way to predict the future is to invent it" - Alan Kay | > > From rowledge at interval.com Sun Nov 29 00:04:58 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:00:27 2012 Subject: Squeak 2.3 beta available - the sheep look up In-Reply-To: <365D14CE.51F8115E@ipa.net> Message-ID: Grabbing the interp.c & misc prims .c from Ian's site allowed me to make a VM that runs ok with the new image. Adding a temporary startup.st to the command line allowed me to work around the missing deletion of the little endian blt stuff. Programming blind is such fun...but at least it _is_ possible with this system. Now just how do I find the runtime address of a function known only by its name - under RiscOS :-) Anyone? Bueller? tim -- Never do card tricks for the group you play poker with. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From raab at isgnw.CS.Uni-Magdeburg.De Wed Nov 18 11:13:33 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:00:35 2012 Subject: Bug: disableSounds preference spontaniously becomes false In-Reply-To: <19981118002552.A18807@calum.csclub.uwaterloo.ca> from "Chris Reuter" at Nov 18, 98 00:25:52 am Message-ID: <199811181113.MAA11122@gaugin.cs.uni-magdeburg.de> Chris, > I'd post a patch but I don't know the sound system well enough to know > _where_ the fix ought to go. The problem is that the sound start prim on Unix system doesn't fail, even though sound is not supported. Ian put this in to avoid the annoying walkbacks but it will probably be fixed with the next release. For now, you could just comment out the sound start prim in SoundPlayer class (e.g., in primSoundStartBufferSize:...) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From zss at ZenSpider.com Mon Nov 16 18:14:42 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:00:37 2012 Subject: Multi-threading the interpreter In-Reply-To: <365050CF.B9D8BC5C@sdrc.com> References: <19981116151457.23273.qmail@relay1.teleport.com> Message-ID: >I'm agreeing with you. But that problem is a design of concurrency access >in gerneral. Back when I did a lot of the architecture >work on a VSE project that had 38 to 40 forked processes running at once, >we had to account for this possibility even though the >Smalltalk/V VM was not multi-threaded. I remember getting bitten by the >#reverse method where the size changed while walking the >collection. The lesson I learned was to never assume that existing >Smalltalk frameworks work well in a concurent environment and >that what you might htink is an atomic operation isn't. Gemstone's RC classes might be a good thing to study in this regard... Also java has a bit to offer as well. (and by extension, Gemstone/J would be worth looking at)... Also, isn't the whole single-threaded vs multi-threaded issue parallel to java's green vs native threads??? If so, then if we followed that design we could transition between the two w/o the programmer taking account for it (for the most part--there were several gotcha's in Sun's implimentation of green threads). Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From ssadams at us.ibm.com Mon Nov 2 22:26:38 1998 From: ssadams at us.ibm.com (Sam Adams) Date: Sat Jan 28 04:00:41 2012 Subject: Units package (was Method names) Message-ID: <5040100024760936000002L062*@MHS> alank wrote: < >> Yes, I'm interested. I implemented a start for such a package years ago and learned a great deal but the code was lost. If I remember correctly the main objects in the framework were Measurement, Measure, MeasurementSystem, Unit and a few others. It used coercions based on a "gold standard" for conversions and lots of unary messages for syntactic sugar (inch in inches squareInches cubicInches etc). Some experiences: Unit conversions within a MeasurementSystem are trivial: ( 1 inch + 12 feet ) asYards Unit conversions across MeasurementSystems( English vs Metric) for the same Measure (Linear, Area, Volume) were easy for addition and subtraction (3 meters - 2 feet) asAngstroms Multiplication and division were OK (LinearMeasure * LinearMeasure yields AreaMeasure) (2 feet * 10 meters) asHectares What got complicated fast (and what I never finished) was the general case which ends up with composite units like furlongs per cubic fortnight per dyne centimeter. You then needed an algebraic system with mappings for unit definitions (dyne cm = erg, etc) so these composite units could recognize whether they were compatible or not and if the units could be reduced or mapped to another unit. The really cool stuff you could do with a system like this is divide aDistance by aTime and get aVelocity and divide by aTime again and get anAcceleration, then multiply by aMass and get aForce. Each Measurement object would be the natural place to implement all of those equations we learned in Physics. I had dreams of an environment like Morphic where animated measurement objects would collide and react almost chemically, perhaps implementing an updated version of the old General Problem Solver. One other piece of advice: check out a book on measurement theory or find a MathPsych major for tips on abstractions for this domain. Oh yes, Kent Beck and Ward Cunningham's experiences with financial modeling with deferred currency conversions would also be excellent here. They had some great models that might be useful. Regards, Sam Sam S. Adams, Distinguished Engineer, IBM Network Computing Software Division tie line 444-0736, outside 919-254-0736, email: ssadams@us.ibm.com <> From cgreuter at calum.csclub.uwaterloo.ca Sun Nov 29 01:35:27 1998 From: cgreuter at calum.csclub.uwaterloo.ca (Chris Reuter) Date: Sat Jan 28 04:00:43 2012 Subject: Squeak licensing questions In-Reply-To: <199811260054.QAA24407@jasper.he.net>; from russell.allen@firebirdmedia.com on Thu, Nov 26, 1998 at 12:54:55AM +0000 References: <199811260054.QAA24407@jasper.he.net> Message-ID: <19981128203527.A6974@calum.csclub.uwaterloo.ca> On Thu, Nov 26, 1998 at 12:54:55AM +0000, russell.allen@firebirdmedia.com wrote: > >Dear Squeakers, > > > >I have a few questions about the Squeak license and was wondering if > >people on the list could help me out in getting them answered. > >Definitive answers from authoritative source are especially welcome, > >however general kibitzing would be of interest to me as well, especially > >in terms of pointing out questions I haven't thought to ask. [cut] > As an example, what about adding copyright information to classes? Each class > could have a date, name and a licence number. Every distribution of the Squeak > core classes could have a document which provides a list of licencing options, > from GPL to fully commercial. Tools could be provided to browse licences etc. This smacks of trying to solve a social problem with software. I think a better idea might just be to do what many of the perl folks do--distribute their modules under the same license as perl itself. It makes this really easy because everyone knows what the terms of the license are. My suggestion is that that the powers that be consider either rewriting the squeak license to make it simpler and easier for others to adopt or to switch to one of the better-known licenses (BSD, Artistic, GPL with extensions[1]). This would then be the preferred license for addons. All I would need to do when uploading a goodie is to add the comment, "released under the XXX license" and everyone who uses it will know what I mean and won't come under any additional restrictions. > This is just an off-the-cuff suggestion which may cause technical/legal/social > criticisms (what fun!)... but it's worth considering to save the Squeak > community a lot of problems later on. Ditto. > >It has been said "Don't worry. Apple has already forgot about it..." in > >terms of the license and its enforcement. However that probably won't > >cut it with IP lawyers of a major corporation. These are sorts of > >questions such a lawyer might ask, and it would be nice to have ready > >answers available for anyone contemplating getting Squeak into their > >organization. And, if the day comes that some GiantEvilCorporation [tm] sees Squeak as a threat to its proprietary products, a flaw in the license could prove disastrous. > > > >-Paul Fernhout > Russell Allen --Chris [1] The GPL as-is is a bit too restrictive for my tastes. It doesn't allow non-GPL'd applications to be written with a GPL'd interpreter or library (i.e. vm and image). From bruce_oneel at yahoo.com Fri Nov 13 08:08:38 1998 From: bruce_oneel at yahoo.com (Bruce O'Neel) Date: Sat Jan 28 04:00:44 2012 Subject: squeak-list error messages Message-ID: <19981113080838.16706.rocketmail@send204.yahoomail.com> Hi, This means that that x400 user who gets their mail via a gateway in Holland isn't getting mail anymore. Ideally there should be an Errors-To: header (I can't see from this account if there is) and even more ideally the remote system should send the error messages to that address rather to the address of the poster. In the real world mail systems don't always follow the rules, ergo, you get bounces you don't care about and have no control over. Would someone at UIUC mind looking into this, please? Thanks! cheers bruce Dwight Hughes wrote: > > Yes, I get the same bounce. > > -- Dwight > > Michael S. Klein wrote: > > > > Im constantly getting messages like below, even though my posts > > apparently make it through. Anybody else experienceing this noise? > > Also, this is a test :-) > > > > -- Mike > > mklein@alumni.caltech.edu > > > > Date: Thu, 12 Nov 1998 23:10:46 +0200 > > From: system@mgate > > To: mklein@alumni.caltech.edu > > Subject: Delivery Notification: Delivery has failed > > Parts/attachments: > > 1 Shown 5 lines Text > > 2 Shown 1.3 KB Message, "Re: What class should include "5 > > kilograms" > > 2.1 Shown 18 lines Text > > ---------------------------------------- > > > > Report on your message to: /R=AM_PAREL/U=BAVECO/@gate.agro.nl > > Reason: Failed to transfer; communications failure (0) > > Diagnostic: Maximum time expired (5) > > Extension-id: 1 > > Arrival-date: Thu, 12 Nov 1998 23:10:46 +0200 > > == Bruce O'Neel - beoneel@acm.org http://homepage.iprolink.ch/~bioneel _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From dwighth at ipa.net Mon Nov 23 18:49:52 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:00:45 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? References: Message-ID: <3659AE50.5EA685D7@ipa.net> Squeak and StExpress are _very_ close syntactically. The differences will primarily be in method and class names, but they should be reasonably straightforward to translate. I'm not sure about his coverage of the WindowBuilder portion of StExpress, but that will be totally different from Squeak (of course, the original Smalltalk/V gui classes were totally different also). You might find it useful to download the StExpress documentation from ObjectShare -- the old Digitalk tutorials were some of the best for getting started in Smalltalk and should be reasonably applicable to Squeak. http://www.objectshare.com/se/seinfo.htm#sedownload If you haven't taken a look at the Wolfgang Kreutzer's getting started tutorial on Squeak, I would recommend it: http://kaka.cosc.canterbury.ac.nz/~wolfgang/cosc205/smalltalk1.html -- Dwight Asymptotically Approaching Harmony wrote: > > Hi folks; > > After doing an Amazon search I just found a book called _On to > Smalltalk_ by Patrick Henry Winston - I really like his style, _On to > Java_ is one of my fave Java books by far. > > So, how close is Smalltalk Express, the dialect he uses in the book, > to Squeak? > > Will I hopelessly scramble myself trying to learn using his book and > Squeak instead of ST Express? > > Thanks, > > -Chris P. > (Aspiring Squeaker) > ____________________________________________________________________ > |Chris Patti|ICQ#16333120|feoh@cosmic.com|Home #:(617)625-3194|JAPH| > |"The best way to predict the future is to invent it" - Alan Kay | From stan at stanheckman.com Wed Nov 11 21:06:25 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:00:46 2012 Subject: What class should include "5 kilograms"? In-Reply-To: "Michael S. Klein"'s message of "Wed, 11 Nov 1998 05:07:39 +0000 (America/Los_Angeles)" References: Message-ID: <871znandm6.fsf@streamer.msfc.nasa.gov> I agree that tensors and units should be bound together. But squeak doesn't have very useful tensors yet. Should we wait on the units until the tensors are done? The units package would be a little easier to write and a lot easier to read if it had access to linear algebra objects. -- Stan From rowledge at interval.com Mon Nov 16 05:30:15 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:00:46 2012 Subject: Multi-threading the interpreter In-Reply-To: Message-ID: On Sun 15 Nov, Richard L. Peskin wrote: > At 11:47 AM +0100 11/15/98, Hans-Martin Mosner wrote: > > If you use TCP/IP, for example, your > >Smalltalk process will be suspended while waiting on the socket for a > >response, but other Smalltalk processes are free to run regardless. > > I would have thought this was the case, but when I do an "update" (from the > update server), it looks like all Smalltalk processes are blocked untilthe > complete update is finished. That would be because only a small part of the overall update process involves waiting on the socket. The code has to be compiled as well... tim -- Useful random insult:- Blew the hatch before the lock sealed. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From caniglia at dm.uba.ar Sat Nov 7 07:16:09 1998 From: caniglia at dm.uba.ar (Leandro Caniglia) Date: Sat Jan 28 04:00:50 2012 Subject: Starting with MorphicWrappers (was Re: Morphic Graphs & MorphicWrappers) Message-ID: <01be0a1e$7e4a0770$0132c8c8@notung> Try filingIn MorphicWrappers from the MVC side of Squeak. Once they are in the image, any Morphic World or Project will start as a WrapperWoldMorph. No other special action is required for MorphicWrappers to work. Saludos, Leandro PS: Please, let me know the result! -----Original Message----- From: Daniel Vainsencher To: squeak@cs.uiuc.edu Date: Friday, November 06, 1998 3:09 PM Subject: Starting with MorphicWrappers (was Re: Morphic Graphs & MorphicWrappers) >I highly recommend that you start by reading MorphicWrapper's comment. >It includes links to some very instructive demos.... > >As to your specific problem, >It seems that you attempted to use MWs on a WorldMorph - >you should use WrapperWorldMorph instead. > >That is a subclass with various added facilities (it can remember variables > >like a workspace, in the inst variable bindings, and it has a history of >messages you've type, in inst var history, for example). > >If the problem persists, please mail me the details of what you were doing, > >I'll be glad to help. > >Jochen Schneider wrote: > >> Hi, >> >> I tried the MorphicWrappers both at http://www.dm.uba.ar/MathMorphs and >> at http://www.sugarweb.com/, but neither of them worked for me under >> Squeak 2.2 with update 372. >> >> The error that gets reported is that WorldMorph doesn't understand >> "bindings": >> >> WorldMorph(Object)>>doesNotUnderstand: >> ClassWrapper(MorphicWrapper)>>bindings >> ClassWrapper(MorphicWrapper)>>names >> ClassWrapper>>updateBalloon >> ClassWrapper(SimpleMorphicWrapper)>>step >> [] in WorldMorph>>runStepMethods >> OrderedCollection>>do: >> WorldMorph>>runStepMethods >> WorldMorph>>doOneCycleNow >> WorldMorph>>doOneCycle >> >> It looks like "bindings" should be sent to the wrapper of the world >> instead of the world itself, but that's just a first guess (especially >> considering that you can't ask an object for its wrapper). >> >> Can I download the correct version of MorphicWrappers somewhere? >> >> Jochen > > From zhan1 at uiuc.edu Wed Nov 11 22:30:18 1998 From: zhan1 at uiuc.edu (John (Zhijiang) Han) Date: Sat Jan 28 04:00:50 2012 Subject: Creating new directories from UNIX Squeak In-Reply-To: Message-ID: Also, it seems that you cannot delete a directory as when you select a directory, it is *automatically* expanded and ... On Wed, 11 Nov 1998, Mark Guzdial wrote: > Some of the UNIX PWS users have complained that creating new directories > (for Swikis) from Squeak leads to really odd change access. Basically, > Squeak can't actually write in the directories that it creates, unless it's > running as root. > > Is there an environment variable that we can set to set what the directory > access should be? Or is this a fix-able bug? > > Thank you! > Mark > > -------------------------- > Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 > (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu > http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html > > Cheers John (Zhijiang) From Craig.Latta at NetJam.ORG Thu Nov 5 02:12:53 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:00:51 2012 Subject: EToys In-Reply-To: <199811050202.VAA02485@fellspt.charm.net> Message-ID: <199811050205.SAA28705@interval.interval.com> > > I had the opportunity to see Alan do his etoy demo last week... > > I was there, too... Where? thanks, -C -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From lrozier at thepattern.com Mon Nov 23 19:14:16 1998 From: lrozier at thepattern.com (Laurence Rozier) Date: Sat Jan 28 04:00:52 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? References: Message-ID: <3659B407.40E05037@thepattern.com> Asymptotically Approaching Harmony wrote: > Hi folks; > > After doing an Amazon search I just found a book called _On to > Smalltalk_ by Patrick Henry Winston - I really like his style, _On to > Java_ is one of my fave Java books by far. > > So, how close is Smalltalk Express, the dialect he uses in the book, > to Squeak? Extremely close. > > > Will I hopelessly scramble myself trying to learn using his book and > Squeak instead of ST Express? Absolutely not with regard to the non-gui aspects. Once you get comfortable with the basics, then even the GUI differences won't really throw you off. I think that the Smalltalk Express tutorial is the best hands-on guide to learning Smalltalk available, but must admit my bias since I was a co-author of the Smalltalk Programming for Windows book that the tutorial is based on :-) > > > Thanks, > > -Chris P. > (Aspiring Squeaker) > ____________________________________________________________________ > |Chris Patti|ICQ#16333120|feoh@cosmic.com|Home #:(617)625-3194|JAPH| > |"The best way to predict the future is to invent it" - Alan Kay | From andang at nmt.edu Tue Nov 3 01:50:13 1998 From: andang at nmt.edu (Andang Kustamsi) Date: Sat Jan 28 04:00:53 2012 Subject: bugs (a suggestion) References: Message-ID: <363E614C.65BAE86C@nmt.edu> Have you tried to open Transcript while you were updating? It gives you ability to watch the progress. Andang Ryan Davis wrote: > > I love the update feature... Tre Cool. One more very nice feature would be > P.S. I seem to have frozen in mid-update. Can't tell you which filestream > as they don't have names or numbers... From danielv at netvision.net.il Fri Nov 6 18:10:42 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:00:58 2012 Subject: Starting with MorphicWrappers (was Re: Morphic Graphs & MorphicWrappers) References: <36421802.3C5DC378@core-sdi.com> <3642CC3D.50731768@isg.cs.uni-magdeburg.de> Message-ID: <36433BA2.895F28D@netvision.net.il> I highly recommend that you start by reading MorphicWrapper's comment. It includes links to some very instructive demos.... As to your specific problem, It seems that you attempted to use MWs on a WorldMorph - you should use WrapperWorldMorph instead. That is a subclass with various added facilities (it can remember variables like a workspace, in the inst variable bindings, and it has a history of messages you've type, in inst var history, for example). If the problem persists, please mail me the details of what you were doing, I'll be glad to help. Jochen Schneider wrote: > Hi, > > I tried the MorphicWrappers both at http://www.dm.uba.ar/MathMorphs and > at http://www.sugarweb.com/, but neither of them worked for me under > Squeak 2.2 with update 372. > > The error that gets reported is that WorldMorph doesn't understand > "bindings": > > WorldMorph(Object)>>doesNotUnderstand: > ClassWrapper(MorphicWrapper)>>bindings > ClassWrapper(MorphicWrapper)>>names > ClassWrapper>>updateBalloon > ClassWrapper(SimpleMorphicWrapper)>>step > [] in WorldMorph>>runStepMethods > OrderedCollection>>do: > WorldMorph>>runStepMethods > WorldMorph>>doOneCycleNow > WorldMorph>>doOneCycle > > It looks like "bindings" should be sent to the wrapper of the world > instead of the world itself, but that's just a first guess (especially > considering that you can't ask an object for its wrapper). > > Can I download the correct version of MorphicWrappers somewhere? > > Jochen From rlpcon at vermontel.net Fri Nov 13 19:58:10 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:00:58 2012 Subject: Examples of API In-Reply-To: References: <199811121855.NAA09839@cleon.cc.gatech.edu> Message-ID: At 8:40 AM +0200 11/13/98, michal starke wrote: >but most platforms have a mechanism to interact with external processes >(AE, BMsg, COM, etc.). it would be very powerful to create an abstraction >regrouping them, very much like (File)Stream abstracts over distinct file >systems... And squeak would gain so much by being able to talk to others >productively :-) For a start it looks like TCP/IP can be used. I don't feel this really meets the long term needs for abstraction, but it might be a short term solution. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From paradigm at unixg.ubc.ca Fri Nov 20 00:46:57 1998 From: paradigm at unixg.ubc.ca (Peter Lount) Date: Sat Jan 28 04:00:58 2012 Subject: Squeak running on Japanese PDA Message-ID: <199811200046.TAA23847@tor-smtp2.netcom.ca> Hi, Here is a picture of Squeak running on a Japanese PDA. The picture was taken at OOPSLA '98. Peter Content-Type: application/octet-stream; name="SqueakOnPDA.jpg" Content-Description: SqueakOnPDA.jpg (JPEG Image) Content-Disposition: attachment; filename="SqueakOnPDA.jpg" Attachment converted: Anon:SqueakOnPDA.jpg (JPEG/JVWR) (00003794) From dwighth at ipa.net Tue Nov 10 20:19:03 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:01:02 2012 Subject: Results of proposal to create squeak-help list... References: <199811101942.NAA26479@sal.cs.uiuc.edu> Message-ID: <36489FB7.D19005B9@ipa.net> I wanted to see if there were enough people interested in participating in such a list to make it a worthwhile addition to the original Squeak list -- instead of just creating an abandoned notion like squeak-annc -- and to see if it was worth asking any of the Squeak list maintainers to take the time and trouble to create such a thing in the first place, since I do not have the webserver resources available to do so myself [otherwise I would just go ahead and do so]. I do not take "volunteering" someone else's time lightly. I don't especially care if the list automatically adds the [sqh] prefix or not - though this would be rather nice (assuming it did not duplicate the prefix on replies). [Does Mark Guzdial's Pluggable Web Server list automatically add the [pws] prefix?] -- Dwight Ralph Johnson wrote: > > Since we run the squeak list, I asked John Brant about setting > up the squeak-help list. He said that he doesn't know how to > put a prefix like [sqh] on the front of every subject, and that > he could break down and learn procmail hacking and do it, but > that becoming a procmail hacker was low on his list of life goals. > > In fact, I'm not sure what the purpose of the voting was. There > is not group in charge, so there is nobody to act in behalf of the > electorate. If you think something should be done, just do it! > If you set up a sqeak-help list, I'm sure that the people who own > the Squeak home page would put a pointer to it there. > > Or, if you don't care about having a [sqh] prefix, you could > ask John Brant to set it up. > > -Ralph From nimrod at netzero.net Tue Nov 10 23:57:33 1998 From: nimrod at netzero.net (thomas k.) Date: Sat Jan 28 04:01:05 2012 Subject: problem after using "update from server" Message-ID: <3648D2ED.BDDC819C@netzero.net> I recently updated 2.2 using the "update from server" feature. Now, if I open Squeak while I'm not online, a message window appears after a few seconds which says: Trouble resolving server name. Keep trying? Retry Give up Clicking on either option only makes the message box disappear for an instant; it pops right back up (in a slightly different position). No other window (workspace, transcript, etc.) will open while this message is present. (When I first open Squeak, I can open a window quickly, before the message appears, but once the message is there, nothing else will work.) As I said, this is only happening if I'm offline; if I am online, Squeak opens up and seems to work fine. How can I correct this? Should I delete this updated file and reload 2.2 from the original zip file? Should I have a transcript window open when I use the "update from server" feature (I didn't last time, but it seemed to download and update fine, and I saved the image) as someone hinted? Thanks in advance. thomas k. workingstiff@usa.net From wDargel at shoshana.com Wed Nov 11 00:32:04 1998 From: wDargel at shoshana.com (William O. Dargel) Date: Sat Jan 28 04:01:11 2012 Subject: problem after using "update from server" References: <3648D2ED.BDDC819C@netzero.net> Message-ID: <3648DB04.B4A8CD6@shoshana.com> thomas k. wrote: > I recently updated 2.2 using the "update from server" feature. Now, if I > > open Squeak while I'm not online, a message window appears after a few > seconds which says: > > Trouble resolving server name. Keep trying? > Retry > Give up I don't have any answers as to what might be causing this. But my suggestion would be to see what it is trying to do when this come up. Something is trying to access the net. When the message window appears, interrupt it with a Cmd-"." (that's Cmd-key and "period") [On windoze that would be Alt-"." (or even Ctrl-Break)]. That should give you a notifier with the stack of messages sends. You should be able to open up the debugger and poke around at that point. Hope that helps. ------------------------------------------- Bill Dargel wdargel@shoshana.com Shoshana Technologies 100 West Joy Road, Ann Arbor, MI 48105 USA From Russell.Allen at FirebirdMedia.com Mon Nov 9 00:44:14 1998 From: Russell.Allen at FirebirdMedia.com (Russell Allen) Date: Sat Jan 28 04:01:14 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: References: Message-ID: <3.0.5.32.19981109114414.0080e760@jasper.he.net> Alan, I found when using my Newton that although the character recogniser was useful (especially for things such as email addresses), for ease of use I ended up using it in cursive mode (it felt faster and more natural). Is it possible to modify the Squeak/GRAIL interpreter to handle cursive? Or would that require a completely new recognition engine? Also, Grafitti is not entirely based on single stroke characters - characters such as "x" ( \ / ) and capital letters (upstroke letter) use more than one stroke. This makes it hard to fit Grafitti into GRAIL as it currently stands. (This may or may not matter...) cheers, Russell. At 08:26 AM 7/11/98 -0800, Alan Kay wrote: >Carl -- > >I don't know where the Newton OS 2.0 recognizer came from (or anything >about it). > >I don't think anything makes GRAIL unique except that it was the first >really good and comprehensive all-pen-based GUI. RAND invented the tablet >(in 1964) in order to do such an interface. The recognizer was done in '66 >by Gabe Groner, and fit into 2k words of the single user 360/44 that was >used as the host machine. Their basic notion was that whatever a UI does, >it should do it essentially perfectly, because it is so jarring to have >something that is supposed to feel like a transparent extension of one's >body constantly stop the action with errors. So they opted for a recognizer >that the user would have to learn -- and eventually decided to try to do >everything with single strokes for speed. The result was really great, and >the totality of human factors was better than grafitti on the palm pilot. > >The one I did that is now in Squeak comes from a long line of recognizers >that go all the way back to GRAIL. It is only a page of Squeak code, and >you can see that the GRAIL approach was quite elegant and simple. > >Cheers, > >Alan > >------- > >At 3:19 PM -0000 11/7/98, Carl E Gundel wrote: >>On Sat, 7 Nov 1998, Alan Kay wrote: >>> In the early Dynabook design, Engelbart's idea was adapted to a pen-based >>> interface. RAND had done GRAIL, a really great pen-based system with a >>> recognizer similar in spirit to and better than Grafitti. We realized from >>> experience with Engelbart that even a perfect recognizer (which GRAIL >>> almost was) was still too slow for some interactions, so I put a keyboard >>> on the Dynabook model. Again the scheme was to navigate, give commands, fix >>> typos, and do short text inputs with the pen, and then to switch to the >>> keyboard for intensive text entry. >>> >>> This scheme was argued for the Newton and rejected (not on logical grounds). >> >>Alan, >> >>What makes GRAIL unique? I understand that the Newton OS 2.0 does come >>with a character by character recognizer. Do you know where this came >>from. I read someplace on the web that is was from Xerox. >> >>Carl >>------------------------------------------------------------------ >> Carl Gundel carlg@world.std.com Shoptalk Systems 508-872-5315 >> author of Liberty BASIC, a 1996 PC Magazine Awards Finalist! >> http://world.std.com/~carlg/basic.html >>------------------------------------------------------------------ > > > > ------------------------------------------------------------ Russell Allen russell.allen@firebirdmedia.com Random Quote: "They must often change who would be constant in happiness or wisdom." Confucius, Analects. ------------------------------------------------------------ From marcel at system.de Tue Nov 17 14:26:29 1998 From: marcel at system.de (Marcel Weiher) Date: Sat Jan 28 04:01:14 2012 Subject: Squeak for MacOS-X Server (aka Rhapsody) and OPENSTEP Message-ID: Hi folk, a pre-alpha version of Squeak for the Yellow Box APIs now exists, currently running on MacOS X Server (aka Rhapsody). It is based on Pascal Bourguignon's NEXTSTEP port, but rapidly diverging. Marcel From mklein at alumni.caltech.edu Thu Nov 12 20:03:03 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:01:16 2012 Subject: Porting to VW In-Reply-To: <364B36CC.E53E4A68@keyww.com> Message-ID: > Has anybody had any luck using Squeak fileouts to filein to VW? Yeah, but some of it was bad luck ;-) > I have > some Squeak stuff I want to play with in VW. I know its not quite what you wanted, but here a couple of mods to the ChangeScanner to support Squeak code. > I figured out the > methodsFor:stamp:, that was easy. But this commentStamp:prior: > message... making that be a pass through to comment:, does not seem to > work. It appears that in VW fileout format, the comments are dealt with > as just straight message sends, whereas in Squeak they are done using > the chunk format. You need to make reader just for the class comment. Can you say "agglutination of features". Personally, I think extending the smalltalk's chunk-style fileOuts are the wrong way to go for source. -- MIke P.S. yet here I go using it :-) "Changes in change set SqueakCompatibility" 'From VisualWorks. Non-Commercial, Release 3.0 of May 8, 1998 on September 18, 1998 at 3:46:17 pm'! !ChangeScanner methodsFor: 'file scanning'! scanSpecialDo: aBlock "Scan a chunk of file beginning with a !!. For now, the only thing I understand is method definitions." | class category | (class := self nextClass) notNil ifTrue: [(tokenType == #keyword and: [token = 'methodsFor:' or: [token = 'publicMethodsFor:' or: [token = 'privateMethodsFor:' or: [token = 'methodsForUndefined:']]]]) ifTrue: [self scanToken. tokenType == #string ifTrue: [category := token. self scanToken. "Squeak compatibility" (tokenType == #keyword and: [token = 'stamp:']) ifTrue: [self scanToken; scanToken]. tokenType == #doIt ifTrue: [^self scanMethodsClass: class category: category asSymbol do: aBlock]]]. (tokenType == #keyword and: [token = 'commentStamp:']) ifTrue: [self scanToken. tokenType == #string ifTrue: [self scanToken. "Squeak compatibility" (tokenType == #keyword and: [token = 'prior:']) ifTrue: [self scanToken; scanToken]. tokenType == #doIt ifTrue: [^self scanSqueakClassComment: class do: aBlock]]]. (tokenType == #word and: [token = 'methods']) ifTrue: [self scanToken. tokenType == #doIt ifTrue: [^self scanMethodsClass: class category: nil do: aBlock]]]. "I don't understand what's on the file. Scan for a blank chunk and hope for the best." [self nextChunkStream atEnd] whileFalse.! scanSqueakClassComment: class do: aBlock | theChange | theChange := ClassCommentChange new file: file position: file position; className: class; yourself. self nextChunkStream. file skipSeparators peek = $] ifTrue: [ self nextChunkStream. "The style" ]. ^aBlock value: theChange! ! From laheadle at cs.uchicago.edu Wed Nov 4 15:35:35 1998 From: laheadle at cs.uchicago.edu (Lyn A Headley) Date: Sat Jan 28 04:01:20 2012 Subject: Double dispatch In-Reply-To: Your message of "Wed, 04 Nov 1998 15:02:04 CST." <3641632f.3214206@rusty.kronos.com> Message-ID: <199811041535.JAA21202@yeenoghu.cs.uchicago.edu> >>>>> "L" == L M Rappaport writes: [snip double dispatch is delegation] L> This is double dispatch - when you call Documents foreground L> color, it instead goes to its instance variable and dispatches L> the method there. Now granted this is a lot of trouble to go [snip] L> Hope this clears it up. OTOH, if I'm full of crap, I'm sure L> someone will mention it! I'm afraid I must speak up here. I believe you are confusing delegation with double dispatch. The way I understand it is that double-dispatch is a *language* feature which looks up the method to call based on the runtime type/class of *two* of its arguments rather than simply the first as is the case with most OO languages. when I say argument I really mean the object to which the message is sent, but multi-dispatch languages usually use generic messages so the object really *is* an argument to the method. confusing, huh? see Common lisp's CLOS for an example. -Lyn From Russell.Allen at FirebirdMedia.com Mon Nov 23 03:24:34 1998 From: Russell.Allen at FirebirdMedia.com (Russell Allen) Date: Sat Jan 28 04:01:20 2012 Subject: Hyperbolic Tree Class Browser In-Reply-To: <000001be159d$6e874480$a3646464@graphics.farese.com> References: <3.0.5.32.19981121194138.008adab0@kiel.netsurf.de> Message-ID: <3.0.5.32.19981123142434.00810760@jasper.he.net> At 04:22 PM 21/11/98 -0600, Jerry Bell wrote: >Has anyone looked at hyperbolic trees? I find them hard to explain, but >very easy to grasp once you play with them. Try: > >http://www.inxight.com/Content/7.html > >The Library of Congress demo is especially nice. > >I think a hyperbolic tree would make a great UI for a class browser, maybe >as a replacement for the left-most pane. It would definately help a new >user like myself get a feel for which classes belong where in the hierarchy. > >Unfortunately I don't know if we could put one in Squeak without permission >from Inxight. I know they hold license to their implementation of >hyperbolic trees, but I don't know if they somehow own the idea also. I've >never understood that sort of thing very well. > There are two types of intellectual property which apply to computer programs. The first is copyright law, and the second is patent law. Patents apply to algorythms - ie the .gif format isn't free because of a patent held on the compression algorythm. Similarily, certain crytography algorythms are patented under US law (but not in other countries). Where patents are involved, you need legal advice before writing a program which does the same thing as the patented one. It may not be possible. Copyright, however, unlike patents, is a right to prevent copying (lawyers get paid a lot of money for this :-). Copyright attaches to the actual code which performs the task, not to the task itself. This is normally expressed as saying that copyright protects the expression and not the idea. However, determining what the idea is and what the expression of that idea is can be difficult. People who recreate versions of software which is "compatible" with other software, or which has the same functionality rely a lot on "clean room" techniques - so that they can sucessfully argue that they were only copying the idea and not the expression. This boils down to a few rules, for instance: 1. Never even look at the object or source code of the product you are imitating, let alone copy any of it! 2. Create a user interface which is as unlike the original as possible, or where the similarities are due to generic features of all modern software (ie a File|Open menu). 3. Use different names for all of the features. (This is to avoid allegations that you are attempting to confuse people into thinking that your version is the original.) The line is tricky, however, to draw. There is a line of US cases which gave protection to the "look and feel" of computer programs; remember Apple suing Microsoft, Lotus suing Borland etc? Not all of the cases were sucessful, but some such as Lotus v. Paperback Software were. Indeed Lotus was successful in suing Borland for copying its menu tree, but luckily this was reversed on appeal. The golden rule is, then, copy as little as possible, make your recreation as different as possible, so that you only copy the idea (and change the idea to something better if you can!). PS - this isn't legal advice, or a comment on the legal situation with Inxite/Hyperbolic Trees. It's just a description of what I believe to be the status of the law with regard to software. Have fun! Russell ------------------------------------------------------------ Russell Allen russell.allen@firebirdmedia.com Random Quote: "They must often change who would be constant in happiness or wisdom." Confucius, Analects. ------------------------------------------------------------ From dwighth at ipa.net Wed Nov 4 04:37:20 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:01:21 2012 Subject: But what about Flash? (Re: Toward the next release...) References: <882566B2.000E46E0.00@d53mta01.boulder.ibm.com> Message-ID: <363FDA00.9F58860@ipa.net> wirth@almaden.ibm.com wrote: ---really neat history of the Flash vector graphics format snipped--- When Dan mentioned the possibility of supporting the Flash format, I'm afraid it meant nothing to me. Thanks for your excellent history of the technology. Now _I'm_ excited too. One thing though -- Macromedia is hardly giving away the candy store in their Flash open file format package. The swfparse code is a nice start, but it's hardly a reference implementation is it? You still get to implement all the primitives yourself. [Yeah I know - I'd bitch if they hung me with a new rope. ] -- Dwight From elcm at pacbell.net Thu Nov 5 02:54:01 1998 From: elcm at pacbell.net (Eliot & Linda) Date: Sat Jan 28 04:01:26 2012 Subject: some not-so-random questions References: Message-ID: <36411349.27BC@pacbell.net> Michael S. Klein wrote: > > > Yesterday I did a quick hack on Unix (HP-UX) to use mmap instead of > > allocating memory > > by malloc. It seems to work very well. I can start squeak with 300 MByte > > and > > it comes up very quickly. What's interesting is that "top" shows only > > the Megabytes > > actually used. So mmap seems to use a "lazy" mechanism on HP-UX. > > I heard that VW uses mmap with copy-on-write so that if you start the > same image multiple times, you only pay the image memory cost once. > (Is this true, Elliot?) We used to support "shared perm-spacve" where perm-space was memory-mapped. Alas HPUX 9.x implemented _copy-on-read_ not copy-on-write. HP was the platform customers wanted the facility on most so we dropped it. > I suppose that this could work for Squeak also. You would want to make > sure that the byte sex got written out to the image the same as your > platforms, otherwise you'd have to pay that cost too. Look at VisualAge for Smalltalk's shared Smalltalk libraries. The map Smalltalk compoenents read-only and sharable. George Bosworht and I did a paper design for such a scheme but never got a chance to implement it. Talking with IBM people at an x3j20 standards meeting I discovered that the approach VWST takes is very similar. The idea is that one develops components using normal techniques (e.g. BOSS, Parcels, Ted's scheme) and then "publishes" them in sharable form. When published each component chooses a range of virtual addresses it occupies, and uses an external symbol table to discover thge addresses of objects it imports. One would maintain a copy of the published form for each OS, since OSs differ in how they allocate address space, and in their endian-ness. A sharable component should require as little modification as possible to load, otherwise sharing is lost. E.g. one would try to arrange that adding/removing methods and adding/removing subclasses, the common kinds of modifications, have as little impact on sharing as possible. Imagine arranging that all the method dictionaries and subclasses sets in a published component are clustered together in a small set of pages. However, this whole approach is aimed at deploying fairly fixed applications on SMP hardware. I think its an old idea that's dying the death. SMP boxes are relatively *very* expensive. See what LLNL are doing with Linux clusters to see you can produce networked systems an order of magnitude cheaper than Sun and SGI offerings. For example, the LLNL guys spend about 75% of the cost of a node on the *ethernet card*, and use low-end pentium boards and cheap boxes. In this kind of context sharing just isn't important. The hoops you have to go through to get real sharing are difficult, and the result lacks dynamism. I think an interesting part of e.g. VisualWorks' future is dynamic 24x7 applications running on networks of commodity processors. The emphasis needs to be on how to manage the network, i.e. supporting dynamic updating of programs across the network, allowing the network to grow when adding new nodes, and keeping running when nodes die, etc, etc. _______________,,,^..^,,,_______________ Eliot Miranda, ParcPlace Aspect, ObjectShare From Craig.Latta at NetJam.ORG Wed Nov 25 18:15:14 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:01:31 2012 Subject: Please HELP promote Squeak. In-Reply-To: References: <365BD10D.994@pitnet.net> Message-ID: <199811251817.KAA02397@interval.interval.com> > > http://directory.mozilla.org/Computers/Programming_Languages/Squeak > > Oh my, Jerry, such flattery, and at the top of the list too... Hmm... also note that, while it was trivial, the NetWinder port was done by me, not Tim. It was Tim's idea to get a NetWinder, though. :) -C -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From aleReimondo at sugarweb.com Sun Nov 1 23:18:15 1998 From: aleReimondo at sugarweb.com (Alejandro F. Reimondo) Date: Sat Jan 28 04:01:31 2012 Subject: Object databases for Squeak Message-ID: <01BE05D5.0FF15640@maq107b.advance.com.ar> Is anyone working on ObjectDatabases for Squeak? With ObjectDatabases I mean, pure & transparent object storage of active objects. Has anyone worked on a disk-based Squeak VM ? Ale. From lrozier at thepattern.com Thu Nov 26 14:38:33 1998 From: lrozier at thepattern.com (Laurence Rozier) Date: Sat Jan 28 04:01:37 2012 Subject: Squeak 2.3 beta available References: <199811261351.OAA23330@gaugin.cs.uni-magdeburg.de> Message-ID: <365D67E9.D6E72F61@thepattern.com> Andreas Raab wrote: > Folks, > > > * Balloon > This is a vector graphics engine that will hopefully bring a new quality > of graphics into Squeak. For the moment it's still in preliminary state > but for those of you who want to get an impression, Playing Flash files is way coool! I'm impressed. An excellent example of assimilating! THANKS! > here are two things > to try: > - Playing with TrueType fonts (Yeah!!) > Just open one of those guys from the file list and enjoy ;-) > [Note that TTFs are not yet used outside this example] > - Playing with MacroMedia Flash files > Flash is a vector graphics package designed for vector graphics > content delivery over the internet. Many sites use this to enhance > their web pages and it's a lot of fun to play with. If you have access > to any .SWF files just open them from the file list. From josch at isgnw.CS.Uni-Magdeburg.De Fri Nov 6 10:15:26 1998 From: josch at isgnw.CS.Uni-Magdeburg.De (Jochen Schneider) Date: Sat Jan 28 04:01:38 2012 Subject: Morphic Graphs & MorphicWrappers References: <36421802.3C5DC378@core-sdi.com> Message-ID: <3642CC3D.50731768@isg.cs.uni-magdeburg.de> Hi, I tried the MorphicWrappers both at http://www.dm.uba.ar/MathMorphs and at http://www.sugarweb.com/, but neither of them worked for me under Squeak 2.2 with update 372. The error that gets reported is that WorldMorph doesn't understand "bindings": WorldMorph(Object)>>doesNotUnderstand: ClassWrapper(MorphicWrapper)>>bindings ClassWrapper(MorphicWrapper)>>names ClassWrapper>>updateBalloon ClassWrapper(SimpleMorphicWrapper)>>step [] in WorldMorph>>runStepMethods OrderedCollection>>do: WorldMorph>>runStepMethods WorldMorph>>doOneCycleNow WorldMorph>>doOneCycle It looks like "bindings" should be sent to the wrapper of the world instead of the world itself, but that's just a first guess (especially considering that you can't ask an object for its wrapper). Can I download the correct version of MorphicWrappers somewhere? Jochen From dwighth at ipa.net Sun Nov 8 22:54:50 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:01:41 2012 Subject: Anyone using alternative input devices with Squeak? References: <364421B9.EE681E17@netvision.net.il> Message-ID: <3646213A.D77795A2@ipa.net> Check out the "Alternative Keyboards & Accessories" site: http://www.tifaq.com/keyboards.html Personally, I find the Infogrip chorded BAT Keyboard quite interesting -- anyone used one of these? http://www.infogrip.com/ -- Dwight From kfisher at rim.net Thu Nov 26 14:18:14 1998 From: kfisher at rim.net (Kevin Fisher) Date: Sat Jan 28 04:01:46 2012 Subject: Squeak 2.3 beta available In-Reply-To: Your message of "Thu, 26 Nov 1998 08:51:50 EST." <"kG-ac.A._NF.W0VX2"@jerry> Message-ID: <199811261418.JAA27224@klaymen.rim.net> Andreas Raab wrote: > to try: > - Playing with TrueType fonts (Yeah!!) > Just open one of those guys from the file list and enjoy ;-) > [Note that TTFs are not yet used outside this example] Ah, this sounds intreguing....how is this done on UNIX systems? Does it leveredge the various TrueType font servers out there or does it rasterize the fonts some other way? I use xttfs all the time and it works quite well for any X application I've tried...love that Comic font under netscape! I know that XFree86 4.0 is going to have 'native' support for TrueTupe as well, whenever it appears. > - Playing with MacroMedia Flash files > Flash is a vector graphics package designed for vector graphics > content delivery over the internet. Many sites use this to enhance > their web pages and it's a lot of fun to play with. If you have > access > to any .SWF files just open them from the file list. > [Note: The integration into Scamper didn't make it for the beta. > It will be in the final 2.3 and I'll post a couple of links > for you to play with]. Wow! This is excellent! Is the Flash code derived from the freeware flash plugin for Netscape? It's been quite a week! Macromedia even released an official beta flash plugin for Linux too! :) > > I think that are the biggest changes in 2.3 beta [Dan - did I miss > anything important?!] > > Cheers, > Andreas > -- > Linear algebra is your friend - Trigonometry is your enemy. > +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ > I Department of Simulation and Graphics Phone: +49 391 671 8065 I > I University of Magdeburg, Germany Fax: +49 391 671 1164 I > +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From esower at clearware.com Fri Nov 13 18:37:27 1998 From: esower at clearware.com (Enoch Sower) Date: Sat Jan 28 04:01:51 2012 Subject: XML [was Re: Porting to VW] References: <364C1EFC.7E6A57DB@ix.netcom.com> <364C75F3.23168D05@ipa.net> <364C78C6.6DEB2D4@appliedReasoning.com> Message-ID: <364C7C67.5A2F@clearware.com> Chris Grindstaff wrote: > > I've had fairly good luck with their XML utilities. I've been using them in VAST and VW to > implement serialization for a generic data walker tool that we've been working on. > > If you're interested in DataWalker > http://www.appliedreasoning.com/goodies/vw/vwFree.html > > -chris > > Dwight Hughes wrote: > > > Mike Anderson wrote: > > > > > > > > > > > I'm new to the list so please forgive any reopening of old woundsbut has an XML-based > > > source externalization been discussed? > > > > > > ...Mike > > > > It has been mentioned 2 or 3 times but there hasn't been any real > > discussion about it. > > > > Intelligent Documents, Inc has released some free XML utilities for > > Smalltalk: > > http://www.intelligentdoc.com/sxpdom.htm > > if you're interested. > > > > -- Dwight > > -- > ------------------------------------ > Chris Grindstaff - Applied Reasoning > mailto:chrisg@appliedreasoning.com > http://www.appliedreasoning.com > 919-851-7677 Chris, Can we get a peek at DataWalker for VAST? Regards, -- Enoch Sower, Objectician || "Have Virtual Machine--Hate Travel" Email: esower@clearware.com; Web: http://www.clearware.com From mitch at gw2.redback.com.au Thu Nov 12 15:32:41 1998 From: mitch at gw2.redback.com.au (Michael J. Mitchell) Date: Sat Jan 28 04:01:52 2012 Subject: Good Public Domain info for Squeaking References: Message-ID: <364AFF99.7CF2B3DA@gw2.redback.com.au> Dan Ingalls wrote: > > Folks - > > I have in mind a couple of fun Squeak aps, but I'd like them not to rely one proprietry material. So I would like to hear from anyone regarding > > Maps, covering the US > Maps, covering the world > Deck of cards > Dictionary of english > ideally with some flags and factored rules > for purals, verb endings, etc > Other interesting stuff > bird calls > star charts > images of art and architecture > > Does anyone know a meta-solution to this? Are there good web sites or other repositories for such P.D. info and artwork? Obviously I can search this myself, but I'm hoping someone has already done this and can provide some guidance regarding what is good and not so. > > Thanks in advance for any help you can give. > > Maybe it would be best to reply direct to me, and I'll publish a summary of anything useful I find out in this regard. > > - Dan Dan, as far as the dictionary goes www.dict.org looks reasonably good. Cheers, mitch From gritton at pop5.ibm.net Sun Nov 8 07:24:46 1998 From: gritton at pop5.ibm.net (Greg & Cindy Gritton) Date: Sat Jan 28 04:01:54 2012 Subject: Interesting :-) article and whitepaper on Open Source Software In-Reply-To: Message-ID: <3.0.5.32.19981107232446.00824100@pop5.ibm.net> At 11:53 AM 11/4/98 -0500, you wrote: >FUD, techo-hijacking, NIH syndrome... Is it just me or >does it seem that Microsoft is the IBM of the 90's? (And >wouldn't *that* get Billg's boxers in a bunch if he heard it? >Of course, he never will - his handlers won't allow it :-). > >Bob Jarvis >The Timken Company > I don't know if I would equate Microsoft completly with IBM. IBM was known for high-quality, very expensive products with top-notch support. Microsoft is known for moderate (many say low) quality products, moderate prices, and mediocre support. They both achieved a (near-)monopoly, but using very different means. Greg Gritton From mklein at alumni.caltech.edu Mon Nov 2 19:45:16 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:01:55 2012 Subject: Method names In-Reply-To: <3.0.1.32.19981102094855.0090ddb0@mail.objectpeople.com> Message-ID: > >or not "aBitStream next: 40 bits" meant ((aBitStream next: 40) bits). First, it already says aBitStream, so the second pseudo-selector-noop-bits is just stuttering reminicent of programming in java. I.E. BitStream bitStream = BitStream.newBits(...) Either it is unambiguous that you mean bits, in which case the second bits pseudo-selector-part is unneeded, or there is a posible second semantics, let's say it could be bytes of any size, 1 to n. The I would do: (for a machine with a ten-bit byte size) aBitstream next: numberOfNotNecesarily8BitBytes byteSize: 10 and expect to get back a sequence of Integers between 0 and 1023. -- Mike P.S. Somebody on the list uses Knuths quote about it being intollerable to depend on a specific byte size. I actually like the term Octet. What say we rename ByteArray to OctetArray :-) Nah. 8-bit Bytes are just too entrenched. Be carefull when you make you bed. You may be sleeping in it a looooong time. From marcel at system.de Thu Nov 19 15:42:25 1998 From: marcel at system.de (Marcel Weiher) Date: Sat Jan 28 04:02:01 2012 Subject: Interstitial Interfaces for Squeak Message-ID: Coming back to 'ma', I'd say interfaces are a first step to making the interstitial aspects of our systems more explicit. I agree that Squeak should not follow examples such as Java interfaces blindly, but rather take the lead by providing mechanisms for making system architecture more flexible by making it explicit. The problems with interfaces in Java are really the problems of required static typing, I think. My experience with optional interface typing in Objective-C has been very positive. Protocols are optional, so they don't get in the way initially. Once interfaces have stabilized, protocols then allow major / recurring communication patterns to be formally documented and verified. This makes it much easier to read code on a basic level, because the reader can 'chunk' information and thus handle more of it. The benefits of forml verification and well-defined interfaces for reasonabl stable components is also without doubt, I think, because it allows for easier variation of the non-stable parts. With a statically typed system, of course, the latter benefit is lost and so the first one not really worth that much. Marcel > From: Laurence Rozier > > I agree that the benefits you list are desirable, but perhaps should be > implemented as Roles or better yet, class behaviors associated with a > prototype. Interfaces exist in part in Java because classes in Java are not > real objects which makes it impossible to provide the capabilities you've > described. Interfaces can and in my view of the Java world, often do lead to > layers of abstraction and infrastructure which tend to make the executing > system brittle and difficult to comprehend. It seems to me that Squeak, > especially from a Morphic perspective, is leading us towards more > concrete > and flexible representations. While there are some valuable lessons to > learn > from Java, I think that Squeak should lead rather than follow in the case of > interfaces. > > Regards, > Laurence > > GTE/staypufd wrote: From raab at isgnw.CS.Uni-Magdeburg.De Sat Nov 7 01:01:20 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:02:03 2012 Subject: Suggested enhancement to UNIX README file. In-Reply-To: <364398E8.1A410AC@mit.edu> from "Bill Cattey" at Nov 6, 98 07:48:40 pm Message-ID: <199811070101.CAA08859@monet.cs.uni-magdeburg.de> > 2. advise people to use the: > > -memory > > option to enlarge the system image above the default 5m. (I'd recommend > 16m or 32m.) Hah! Ian - I told you ;-) > 3. warn people to do the following FIRST THING: > > start an image. > select > help/edit preferences/disable sound. > set the value to TRUE. > save out the image. >From 2.3 this will be no longer necessary. I've submitted a fix that will disable sounds automatically if the primitive fails - I should have done so in the first place ;-( Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From harmonra at webname.com Mon Nov 2 16:04:46 1998 From: harmonra at webname.com (R. A. Harmon) Date: Sat Jan 28 04:02:11 2012 Subject: CrLfFileStream as default? Message-ID: <1.5.4.32.19981102160446.00678b4c@pop3.rconnect.com> At 03:32 PM 10/31/98 -0500, Lex wrote: >"R. A. Harmon" wrote: [snip] >> I don't think there is any reason for "guessLineEndConvention" in the >> approach I propose and if it guesses wrong (especially on an already >> anomalous file), CrLfFileStream, seems to produce anomalies that I don't >> think are caused just by cut-and-paste. >> > >The purpose of this method is to pick a convention for *new* files. > The idea being if you create a text file on Windows, it should have >CRLF line endings, and if you create a file on Unix, it should have >LF line endings. That way you can view Squeak files using other >applications on your operating system, without having to convert the files first. >If you don't do this method during startup, then CrLfFileStream won't notice > it is operating on a new platform. It will continue using whatever convention >it was using when the image was saved, even if it was saved on a different platform. Yes, I agree a default should be set at start up. I think all that is needed is a defaultLineTermString class variable set at start up for the platform it's running on, and a stream instance lineTermString that is set to the default and can be reset to something else manually if you want. This is how Smalltalk Express (SE) does it, if I remember correctly. I assume Squeak can determine at start up what platform it's on, or should be changed to do so, because it's useful in other areas also. I think the CrLfFileStream approach to append applies only to files, and not streams which my be ports, sockets, or something equally as exotic (means I don't understand it). >Now, there's a second "guess" going on in CrLfFileStream, and that's when a >specific file is opened. This guess is to ensure that new data written to >the file will have the same convention as the data that's already in the file. I think this will produce a mixed convention file if it gets a mixed convention file. >If you have a CRLF-delimitted file on Unix, then you should keep writing CRLF >endings, and not start appeding lines with LF endings. The point is debatable, >I suppose, but that's the purpose of this one. [snip] I can see where this would be quite useful, especially for someone working in both UNIX and Windows (dual boot). I propose it be an option that one can select as the default append, new, or both behavior. I think the convention I propose works in all the following cases: - Writing a new file, Crs are appropriately transformed to Cr, CrLf, or Lf according to lineTermString. - Append an exiting file, Crs are appropriately transformed to Cr, CrLf, or Lf according to the lineTermString. - Reading an exiting file, Cr, CrLf, Lf, or a mixture of these, are appropriately transformed internally to Crs. On Windows, some applications gracefully handle Cr, CrLf, Lf, or a mixture of these, while others, make it difficult to work with any file that doesn't conform to its line termination convention. A mixture of conventions makes no difference to the later, so I would prefer a Squeak default that produced mixed convention on append. This approach doesn't require exceptional handling for append. >So I sent a patch around a few days ago that did just this. Yes, I saw it. >Now, I've been using this setup for a week or so now with no troubles. > However, I've not messed with any *really* strange files.... I'm not sure why I did. Somebody else said they were getting strange stuff too. Have you tried cut-and-paste operations. I think these might confuse CrLfFileStream. I think they are valid operations that the fix to line termination should handle. I appreciate that you did CrLfFileStream. I would have probably spent a fair amount of time trying out the same idea, but not doing it as well. At 03:28 PM 10/31/98 -0800, Michael S. Klein wrote: >> I don't think there is any reason for "guessLineEndConvention" in the >> approach I propose and if it guesses wrong (especially on an already >> anomalous file), CrLfFileStream, seems to produce anomalies that I don't >> think are caused just by cut-and-paste. > >Sometimes you may want to guess, sometimes you may want a rigid line end >policy. After some reflection, I agree (see above). >> The native platform line termination conventions I know of are as follows: >> >> DOS/Windows on x86 CrLf >> UNIX Lf >> Mac Cr > >Smalltalks use cr. There is also Unicode which has explicitly different >line separators and paragraph separators ( U+2028 and U+2029 ). [snip] Adding Unicode (same as double-byte characters?) will require overriding some behavior I suspect. The line termination will be one of them. I don't no enough to join in that conversation. >This works sometimes, but there are some of us who actually use ff & vt's >placed in text by other people. My question is what do the Ff and Vt characters in Text instances mean? If it means line termination, I suggest the code that uses them be changed to reflect the convention if adopted. If they are used as for some other purpose, say optimization because of the sorting order (simple-minded example), I think that is one of those case-by-case exceptions. If the Text instance has Ff put in, something done with the instance, then it's thrown away then that seems reasonable and won't break any code. If the instance is used by other code then this additional Ff behavior instance should probably be in a new subclass of Text (or new wrapper class, etc.), and conversation methods added. External strings terminated with a binary zero are good examples of why one might want a string like object that breaks the convention. SE has conversation methods to add and remove the trailing zero. I envision the line termination convention not as coercive, but as liberating us a little bit. One doesn't need to code for all the odd cases everywhere. I think this is especially important in a cooperative endeavor like Squeak. That's why I add the last rule: - You run into something that doesn't follow the convention, send in a fix or at least point it out. I think we need to backstop each other like baseball players do. One player will get behind another play trying to catch a ball, so if he misses it the second player is there to help. Someone might not know of the convention, or ported code from another platform and didn't get around to changing to convention (it happen to me, anyway). I'd appreciate any back-stopping I could get. I guess I approach the Squeak community as a team rather than a group of "rugged individuals". >> This does require reading external text a character at a time, but doesn't >> seem prohibitively expensive. > >First make it work.... then make it fast [snip] I heartily agree. >As far as line end convention goes, I think the important thing to do is >to factor out the handling into a Policy object. Otherwise the streaming >code just gets all krufted up with different cases. > >If somebody wants a different policy, they add a new class instead of >futzing with the convoluted code. Would this be similar to the External Stream Decorator suggestion I copped from the preview of the book "The Design Patterns Smalltalk Companion"? Your idea sounds promising, could you explain it a little more concretely for me. -- Richard A. Harmon "The only good zombie is a dead zombie" harmonra@webname.com E. G. McCarthy From gera at core-sdi.com Wed Nov 4 19:39:00 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:02:22 2012 Subject: Double dispatch References: <199811041608.KAA01009@sal.cs.uiuc.edu> <36409494.EF4AC870@keyww.com> Message-ID: <3640AD54.E50BD139@core-sdi.com> Travis explained: > The original Squeak Math protocol does this. It works fine for the simple set > of Integer, Fraction, Float, where one can basically define a heirarchy of > supremacy. The original Squeak Math protocol is a good implementation of mathematical definition for operators (find a superset containing both elements, closed for the operation you what to perform). Is there an example where DD is needed (and squeak's protocol doesn't make it). The only problem I found is that when you create a new class (such as AlgebraicNumber) you need to add #adaptAlgebraicNumber: and #adaptToAlgebraicNumber to every other class you what to interact with. DD is good for speed, but it's is not good when the operation is not commutative, I think that a mixed solution (as usual) may be the better... Does anybody has an idea on how to implement such a mixed solution? I mean DD and #adapt* protocol. Protocolar Bye! Richie++ From wlewis at mailbag.com Tue Nov 10 20:53:50 1998 From: wlewis at mailbag.com (William Barnett-Lewis) Date: Sat Jan 28 04:02:34 2012 Subject: time zones? References: Message-ID: <3648A7DE.4DBDA3A0@mailbag.com> My understanding is that Saudi Arabia is on solar time. William "Michael S. Klein" wrote: > > > > Does anyone out there know how timezones work, in detail? > > > > > > more elusive. Is everyone's local time always an integral number of hours > > > offset from Greenwich, or can it be more complicated? > > [various responces indicating 1/2 hour & 1/4 hour offsets] > > Worse still... There are zones whose legal definition of time was solar, > although, I beleive there are no such current zones. To do timezones > right, you need to handle historical changes. > > -- Mike Klein -- Live without fear; your Creator loves you as a mother. Go in peace to follow the good road and may God's blessing be with you always. St. Claire From stp at create.ucsb.edu Tue Nov 17 17:38:39 1998 From: stp at create.ucsb.edu (Stephen Travis Pope) Date: Sat Jan 28 04:02:35 2012 Subject: More Palatino Fonts ? Message-ID: <3651B49F.DDB4641B@create.ucsb.edu> Hello all, In some recent version of Squeak, there were a few extra strike font files (e.g., Palatino12.sf...). Does anyone have a complete set of any one serif variable-pitch font for sizes from 6 to 24 points as strike font files? -- stp _ Stephen Travis Pope _ stp@create.ucsb.edu, http://www.create.ucsb.edu/~stp/ From markus_kohler at bbn.hp.com Mon Nov 16 09:28:03 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:02:38 2012 Subject: SqueakOS References: <3.0.5.32.19981114213403.008f6960@gateway> Message-ID: <364FF022.E32E3356@bbn.hp.com> Jerry Bell wrote: > > I'm new to the list, but I've found some references to 'bare-metal' Squeak > implementations. Is anyone working on this? > > What would be the ideal kind of kernel to run Squeak on top of? I know > portability would be on the top of the list. How about single vs. > multithreaded? Maybe even something completely different to take advantage > of the unique needs of a smalltalk environment? > > I assume that a goal would be to eventually make Squeak classes that could > generate the low-level kernel code for a given platform, much like the > interpreter generator. Then, to port to another platform you would simply > define the characteristics of that specific platform. All from within > Squeak. That would be.... nice. > > I don't have much experience with Smalltalk, and even less with OS design. > But it seems that one way to approach this would be to build something > quickly using simple, existing tools. Then, when there is a working system > we could factor parts of the original low-level code out and replace them > with code generated by Squeak. At that point, we could make refinements in > speed, portability, etc. from within Squeak itself. > > Specifically, I've started looking at FreeDOS's kernel, dos-c, as a > possible starting point. There is already a DOS port of Squeak out there, > and it seems as if it would not be too terribly complicated to take dos-c > and the DOS port of Squeak and kinda mash them together to make a booting > SqueakOS. Plus, the dos-c kernel is supposed to be pretty portable, and is > written mostly in C so it shouldn't be not TOO hard to work with. It > should also be simpler than a more advanced kernel. And, it's GPL'd. I would rather try a Linux port to ggi (http://synergy.foo.net/~ggi/). Some (older) stripped down Linux kernels seem to run in 1MB. If you would throw out the file system and replace it by something simpler, I guess you would gain again some memory. > > I've just started looking at dos-c, I'm reading the author's book now. > Unfortunately, it doesn't look like the current version of dos-c will > handle the DPMI stuff that the DOS port of Squeak needs, but maybe that > would be easy to fix for someone who knows what they are doing? I guess it's not that easy because Squeak assumes a 32bit memory model. Markus -- Markus Kohler mailto:markus_kohler@hp.com From lex at cc.gatech.edu Tue Nov 10 23:05:56 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:02:43 2012 Subject: units Message-ID: <199811102305.SAA24395@cleon.cc.gatech.edu> Craig Latta wrote: > > > > > 5 kilogram meters per second squared > > > > Actually, in context, squared associates just with the > > immeadiately leftmost unit. > > Sure, and the thing answered by (5 kilogram meters per second) knows this also. > > > As for #per, I think you are underestimating the amount of funkiness > > required to pull this off given Smalltalk semantics. > > Not at all. >>per could answer an instance of a new class called "CompositeUnit" or somesuch, which performs dimensional analysis algebra. It could have a "numerator" of (5 kilogram meters), and a "denominator" which is set by the ensuing >>second. I think it's quite doable. > True, it's doable. However, it would be really nice if the underlying semantics were simple, too, as opposed to merely *looking* simple. If you were reading the code for this, it would look really odd! One of the cool things about Squeak is that you can relatively easily dig down to any depth in the system you want. To be practical, this requires that every level be intuitive, not just the level that "end users" see. Okay, here are two specific proposals. First, instead of a generic #per, have #perSecond, #perMinute, etc. Second, just use #/ and go home :). These would look like, respectively: 9.8 meters perSecond perSecond 9.8 meters / (1 second squared) of course "squared" is still funny.... "2 seconds squared" would be different than "2 seconds seconds" under either of these proposals. Lex From Craig.Latta at NetJam.ORG Fri Nov 20 22:42:17 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:02:48 2012 Subject: How To Re-evaluate A Block? In-Reply-To: <1.5.4.32.19981120221849.006642a8@pop3.rconnect.com> Message-ID: <199811202229.OAA26167@interval.interval.com> > What is the Squeak code I need to do before I send value to the protected > block so that it can be re-evaluated? That's BlockContext>>fixTemps, I believe. -C -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From zss at ZenSpider.com Mon Nov 9 08:00:34 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:02:55 2012 Subject: morphic scripting Message-ID: I am learning morphic with the intent of using it to teach my SO's son how to program. He REALLY wants to program games, but he doesn't have a clue about it at all, and I thought using morphic in an OO-logo fashion would be a very nice start... I'm not familiar w/ morphic at all, so I was happy to see that there is finally some documentation for beginners out there. Very cool. But I have some further questions.... (some of these may be obvious to those more experienced w/ morphic... I'd be happy to collect the results and put them on someone's swiki) 1) I wrote a method called touches: which is based on some of the logic in moveTowards: in order to have a test for collisions (which has obvious value to a 9 year old programmer-wannabe). I am now able to create a cat and mouse simulation where the cat can catch the mouse and make it attack (the mouse turns red when touched, the cat makes a noise when it touches). But the mouse code would be better if he could detect if ANY cat is touching him... Can it? checkBleeding | blood normal | blood _ (Color r: 1.0 g: 0 b: 0). normal _ (Color r: 0 g: 0 b: 1.0). (self touches: (self class refPlayer61)) " <--- here is the problem" ifTrue: [ self setColor: blood ] ifFalse: [ self setColor: normal ]! ! 2) I don't understand the model too well... From the debug menu, I learn that the mouse is an instance of StarMorph. But when I edit one of his methods it is an instance of a subclass of Player... Is this an analog to View and Controller? 3) Is there a registry of known players in a given morph? (possibly a shorter version of #1). 4) I assume that the costumes are akin to sprites? That way I could have several different costumes for a spaceship or car and have it rotate through them??? How? 5) Is there some clean way to get all my changes saved to a text file? I found the save morph, but they are at least partial binary files... 6) Any way to automatically clean or not generate these: !Player5 methodsFor: 'anonymous scripts'! xxxScript7 ^ self! ! 7) I can name a player in the debug menu, can I have something rename the class? Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From alank at wdi.disney.com Tue Nov 3 12:58:51 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:02:55 2012 Subject: Method names In-Reply-To: <0025553370103b8MAIL2@cvtci.com.ar> Message-ID: Andres -- I am on your side in spirit. Smalltalk-72 allowed one to put a grammar on each class, and this allowed quite a bit of syntactic extension. The result was good until we tried to share code -- then we found it difficult to read each other's "perfectly obvious syntaxes". Dan Ingalls did a cool thing when he designed Smalltalk-76: make an operator/keyword grammar that all can read regardless of where the code was written. At the time I made your suggestion that the compiler could know about other forms, and the very good answer was that this could make it very difficult again to write code that would not generate lots of syntax conflicts. The best solution to this problem that I have seen is CodeWorks by Mark Lentzner, in which a little more flexibility is allowed in where the keywords can go, but in which the language is still unambiguous to read and write. Better readability is one of the main issues we are addressing over the next months and year, so perhaps some of your hopes will be realized ... Cheers, Alan ------- At 1:37 AM -0000 11/3/98, sqrmax@cvtci.com.ar wrote: >Hi. > >>[Incidentally, that would be (aBitStream next: (40 bits))] >>Knowing what method selectors exist in the image would not be enough. If >>there existed #next:bits, #next:, and #bits, you would not be able to tell >>which interpretation of " next: bits" was the proper one >>without knowing (and you can't) the types of the expression results. >What's >>even worse, in a dynamic environment where selectors come and go, adding >or >>removing a selector would mean potentially changing the parse tree of some >>of the already compiled methods. > >What I also wanted was a way to tell the compiler that the method indeed is >#next:bits, and then no ambiguity can happen (I guess). > >Andres. From rapp at lmr.com Wed Nov 4 15:02:04 1998 From: rapp at lmr.com (L. M. Rappaport) Date: Sat Jan 28 04:02:57 2012 Subject: Double dispatch In-Reply-To: <199811041400.IAA03780@dillinger.io.com> References: <199811041400.IAA03780@dillinger.io.com> Message-ID: <3641632f.3214206@rusty.kronos.com> On Wed, 4 Nov 1998 08:00:27 -0600 (CST), you wrote (with possible editing): >Gang, > >I've seen quite a few references to double dispatching. What is that? >URL's, pointers to docs, or a simple RTFM (but *which* FM) would be >appreciated. > >Jim I'm new to Squeak, so my notation might be wrong, but here's an example based on the other Smalltalks I'm familiar with: Say you have a document class. You want the document to appear in different colors based on some criteria, like urgency. I.e., you want the behavior of the document object to change throughout it's life. A good example of the State pattern. One way to do it is via double dispatching. The Document class will have a method called foregroundColor, but instead of it doing anything directly, you decide to have Document delegate it's foregroundColor to one of its Documents instance variables - theColor which will contain a simple object which returns color. This color object will be part of a simple polymorphic family of classes, such as UrgentColor and NormalColor. UrgentColor has a method; UrgentColor>>foregroundColor ^Color red NormalColor has the same method but with different behavior: NormalColor>>foregroundColor ^Color black Now you add accessor methods to Document: Document>>color: aColor theColor := aColor Document>>color ^theColor and: Document>>urgent self color: UrgentColor new Document>>normal self color: NormalColor new To use this, you give Document a foregroundColor method as follows: Document>>foregroundColor self theColor foregroundColor What is happening here is: You send the message "foregroundColor" to a Document object It resends the message "foregroundColor" to the delegated object which lives in Document's instance variable. This is double dispatch - when you call Documents foreground color, it instead goes to its instance variable and dispatches the method there. Now granted this is a lot of trouble to go to just to avoid an ifTrue: [] ifFalse: [] construct, but you can see where it might be both useful and powerful when several or many methods change behavior based on state. (In fact this is a design pattern called the State pattern) I.e., double dispatch works really slick when you want to delegate behavior in one object to another. It is good for "policy" objects. Hope this clears it up. OTOH, if I'm full of crap, I'm sure someone will mention it! Regards, Larry -- rapp@lmr.com From rowledge at interval.com Sun Nov 29 19:25:28 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:03:08 2012 Subject: 2.3 beta buglets In-Reply-To: <199811291914.UAA05013@gaugin.cs.uni-magdeburg.de> Message-ID: On Sun 29 Nov, Andreas Raab wrote: > This might be a problem (I actually never used the tracer) but I'd think > that the tracer probably doesn't compress any forms which makes quite a > bit of image space. Ooh, yeah, maybe so. Though I can't easily see that making nearly two meg of difference; that would be a lot of bitmaps... but it has to be coming from somewhere, so who knows? I'll see if I can measure it. tim -- Fractured Idiom:- QUE SERA SERF - Life is feudal Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From verx at ix.netcom.com Sun Nov 15 08:07:16 1998 From: verx at ix.netcom.com (Mike Anderson) Date: Sat Jan 28 04:03:09 2012 Subject: XML: Miracle drug or communist plot? (was Re: Porting to VW) References: Message-ID: <364E8BB4.16C23208@ix.netcom.com> Michael S. Klein wrote: > > I'm new to the list so please forgive any reopening of old woundsbut has an > > XML-based > > source externalization been discussed? > > Not here, really. My personal take, having only given XML a cursory look, > is that XML has a rather large amount of overhead for Smalltalk source > externalization. > > 1) The general overhead it has by trying to be 'human-readable' without > really succeeding. [snip] > 2) XML seems to have a rather large amout of intellectual overhead to > cater to the static-typing crowd. > > On the upside: XML is a standard, and there is a fair body of (non-Smalltalk) > code for parsing/validation/... I envision a higher upside. I don't know much about XML so my envisioned upside might be up in the clouds, but here's a scenario I envision: ----------begin envisioned scenario---------- Source code can be stored in XML documents. Many of these Squeak source holding documents will be published on the internet. Internet search engines will understand XML. I will be able to request a search engine to do things like: Search every XML document of type "SqueakSource" and retrieve every attribute of type "Method" that has a subattribute of type "Author" that has a subattribute of type "LastName" that is equal to "Smith" or Retrieve every XML document of type "SqueakSource" that has an attribute of type "SqueakVersion" that is greater than "2.1" and has an attribute of type "Subsystem" that matches pattern "Source code *" ----------end of envisioned scenario---------- I'm betting that there will soon be services that are similar to internet search engines, that understand XML, and can retreive things that match arbitrarily complex (XML) structural patterns. There will be no-cost services (peppered with ads, of course) low cost services without ads, and services accessible via APIs (and these APIs will no doubt involve XML). There will be all kinds of data grinding machinery out there that can be used free of charge or for a small charge, and the language of all this machinery will be XML. Data conforming to XML can be grinded, data not conforming to XML must be cut with your own fork. Maybe I bit too hard on the XML hype, but it looks to me to be getting or gotten critical mass and is simple enough to work. ....Mike From rowledge at interval.com Tue Nov 10 20:48:10 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:03:17 2012 Subject: [sqvm] squeak vm startup (interpreter?) In-Reply-To: Message-ID: On Tue 10 Nov, Dan Ingalls wrote: > P.S. I'm including one method def that is needed for the simulator to run these days. > And if you have a little endian machine (PC, Acorn, NetWinder etc) you'll possibly need some minor changes to #byteAt: etc depending on whether you're loading an image that matches you 'normal' endianness or not. If loading your image seems to go wrong, fetch http://sumeru.stanford. edu/tim/pooters/SqFiles/deltas/VMsimulator.6Nov.cs which may well help tim -- Machine independent code isn't. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From arning at charm.net Sat Nov 14 16:29:18 1998 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 04:03:18 2012 Subject: Is the swiki working? Message-ID: <199811141629.LAA28006@fellspt.charm.net> I have not been able to connect to the swiki at minnow.cc.gatech.edu for a couple of days. Did it move? Is it down? Cheers, Bob From mklein at alumni.caltech.edu Tue Nov 10 04:30:16 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:03:18 2012 Subject: Units package (was Method names) In-Reply-To: <87g1btl00u.fsf@streamer.msfc.nasa.gov> Message-ID: > Five meters can be entered as '5 meters', and 5 > kilogram meters per second squared could be entered as the string of > messages '5 kilogram meters per second squared'. We will ignore the problem of plurals (i.e. '1 foot' and '2 feet'). Its pretty trivial. How in the world are you goind to define #per ???? Also, #squared would square the whole result, not just the last unit. Stick with the (rather nice) direction you have already taken. Consider the rest to be a UI problem. -- Mike Klein From caniglia at dm.uba.ar Tue Nov 17 14:15:32 1998 From: caniglia at dm.uba.ar (Leandro Caniglia) Date: Sat Jan 28 04:03:20 2012 Subject: Accented characters Message-ID: <01be1234$bce05390$0132c8c8@notung> Is there any (simple?) way to tell Squeak to accept accented characters (a', e', i', o', u', n~, etc.) in selectors and variables? Saludos, Leandro ----- "Although it is quite possible to write programs which depend on the byte size, this is an illegal act which will not be tolerated" Donald E. Knuth, The Art of Computer Programming, Vol 1. From greg at quokka.demon.co.uk Tue Nov 3 21:28:18 1998 From: greg at quokka.demon.co.uk (Greg Lewin) Date: Sat Jan 28 04:03:25 2012 Subject: squeak hogs memory on linux? In-Reply-To: <19981030233030.25637.rocketmail@send101.yahoomail.com> Message-ID: >Greg (or anyone else familiar with the problem), > >Have you been able to resolve this problem. I have been playing with >Squeak for a while on Win32, DOS, and HP-UX, but only recently I >reinstalled Linux on a Thinkpad. I am having the same problem with >Squeak 2.2 locking up. Top says it is using more than 90% of the CPU >(don't remember exacly how much memory it's using, but I have 40MB >installed). I am running kernel 2.0.34 (slackware) and wondering if I >need to upgrade. > It's better on RedHat 5.1 and Squeak 2.2 (was 5.0 and 1.3), but I still get similar trouble if I click on one of the buttons in "play with me 4". >Last time I had Linux loaded (on another PC) I was at kernel 1.1.59 or >something, so I was quite pleased at being in the 2.x ballpark. I >guess I didn't upgrate *far* enough :-). Does it really need a newer >kernel, or have you found another fix? I didn't get anywhere with my old kernel. > >BTW, I am running on a 486 and I couldn't get the compiled version of >Squeak 2.2 for Linux to run, so I downloaded the sources and >recompiled. At first the image seems to run fine, until I try to >update the code from the server (after setting my proxy server and >port). I get a socket timeout error. When I popup the menu and select >debug, I see the debugger, but when I click on the stack, the image >locks up. Any ideas? sorry! all my net access is from NT. -- Greg Lewin From mklein at alumni.caltech.edu Wed Nov 11 21:59:59 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:03:28 2012 Subject: [squeak][pws] Win32 Server Sockets In-Reply-To: Message-ID: On Wed, 11 Nov 1998, Andreas Raab wrote: > Folks, > > John Maloney pointed me to a very instructive problem within the Win32 > socket implementation. Without going into details, let me say that the > current scheme of Squeak accepting only a single incoming connection does > not work reliably in the threaded Win32 environment used in Squeak. I pointed this out to John, I guess he pointed it out to you. I had trouble even accepting any second connection. > I have been thinking about a solution to the problem, and found one, but I > would like to have an opinion from your side about this. What I'm planning > to do is that each server socket (e.g., started with a listenOn: port) > will introduce a separate thread in the VM handling the incoming > connections, but FOR THE LIFETIME OF THE CURRENT SQUEAK SESSION. The lifetime should be that of the socket. I.E. kill the OS thread when the serverSocket is closed (or ungracefully destroyed). Obviously, sockets can't meaningfully outlive VM sessions. Otherwise you will chew up your thread pool... blech. > Thus, > whenever you're doing a listenOn: port after the first one on this > particular port the only thing that happens is that the already running > thread get's a notification that there is some interest in handling the > next connection. I would have #listeOn: be a primitive that calls the listen() function, and #accept should wait on the parent socket's activity semaphore untill incoming connection arrives. Accept should answer the child socket. BTW, the external object registry (Smalltalk registerExternalObject:) is not thread-safe. This needs to be fixed for robust server applications. > This has two interesting consequences. First of all, it would allow to > handle more than one incoming connection. So, for instance, the following > sequence would perfectly work: > > "... usual init stuff goes before..." > server1 listenOn: 12345. "<- This starts the VM level thread" > client1 connectTo: localHost port: 12345. > > "Now comes the fun!" > client2 connectTo: localHost port: 12345. "<- will immediately connect" > server2 listenOn: 12345. "<- will get the connection from client2" I think it is important for writing robust servers to separate listen and accept, so the client should have it's connection established only after the server does an accept. For more info, check out TCP/IP Illistrated Vol 1 W. Richard Stevens ch 18.11, TCP Server design > I consider the above sort of good news. > > However, there are two downsides of this. First of all, there is a running > OS thread for every port that's been served in the current session. This beats Unix's select... > Also, > if clients don't check for timeout conditions they could wait forever > without getting any response from the server (see above, if server2 would > not be started, client2 would get no response at all from the server it's > been "connected" to). So, the major question is, how likely is it to have > "temporary serving ports", e.g., sockets that are only used for serving on > a particular port just once - and then never again? I don't think that > this is likely but I would like to get an opinion from folks that use the > Squeak networking stuff more than I. I have done a fair amout of client/server work in VW. I had trouble using squeak because of the problems we are now discussing. I think that timeouts are certainly better handled by image code than by VM code, and usually better handled in a separate monitor (Smalltalk image) process. One problem with using squeak processes is that processes waiting on a semaphore do not create a context (stack frame). This makes debugging, monitoring, deadlock detection, and all other reflective niceties very krufty. I outlined a solution for this to John. > Thanks for any responses, > Andreas Sure thing, Mike mklein@alumni.caltech.edu From whisper at accessone.com Sat Nov 14 06:58:34 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:03:28 2012 Subject: Help building Squeak VM w/VC 5.0 Message-ID: <3.0.1.32.19981113225834.01146690@accessone.com> Hi; Followiwng the directions in the win32 source download, I had the following problem: The winmm.dll file is reported as "corrupt or unusable". Then wsock.dll file does not exist. I guessed that the files needed where in c:\winnt\system32; is this correct?. Are there newer instructions for building the VM on later versions of VC++? Sincerely, Dave LeBlanc From patc at teleport.com Thu Nov 19 15:24:25 1998 From: patc at teleport.com (Pat Caudill) Date: Sat Jan 28 04:03:33 2012 Subject: Diff code available? Message-ID: <19981119152312.20209.qmail@relay1.teleport.com> I asked Brian and he said it was originally developed by Roxie Rochet for Tektronix Smalltalk. Juanita ( and/or Steve Messick) and then Brian rewrote it for use by Team/V. Brian was the final author. I think the code is still property of Objectshare though. Perhaps someone there (hint, hint Stephan B.) could get permission to release it. Pat Caudill Stephan B. Wessels intimated >I liked the one they had in Team too. but I think the primary author may >have been Brian Wilkerson. > >Allen could tell us for sure. > > - Steve > >JArchibald@aol.com wrote: > >> In a message dated 11/18/98 2:15:24 PM Eastern Standard Time, >> DanI@wdi.disney.com writes: >> << I would do this myself, but if anyone has such code around, or knows of a >> goodie that does it, it would save some time. >> Please respond directly to me, not to the list. >> >> >> Lot's of us would probably like this, Dan. I would encourage whoever knows >> about such to post to the list. >> >> The best that I recall was in Team/V, and might have been done by Juanita >> Ewing. >> >> Jerry. > > > From stephan.wessels at sdrc.com Mon Nov 2 17:14:19 1998 From: stephan.wessels at sdrc.com (Stephan B. Wessels) Date: Sat Jan 28 04:03:34 2012 Subject: some not-so-random questions References: <199811021707.SAA15835@monet.cs.uni-magdeburg.de> Message-ID: <363DE86B.D4AED15B@sdrc.com> Andreas Raab wrote: > I doubt it - running Morphic on a 90Mhz Pentium is a hard thing to do > (but I'm a hero - I've been running Morphic on a DX2/66 ;-)) > It's even harder if you have only 8MB of RAM. But if you want to try then > start Squeak with > > Squeak -memory: NN Squeak2.2.image > > where NN is number of MB of memory to use (note the space before NN). Years ago I worked on a 386 with 16MB running OS/2 developing in Smalltalk/V PM and it really wasn't too bad. But I love the technology we have available today. I have a question about the memory argument for Squeak that you show above. Wait, I have 2: 1) Is that only for the Win versions of Squeak? 2) What is the default memory allocation then, if none is specified explicitly? Thanks, - Steve From rowledge at interval.com Sun Nov 15 04:34:20 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:03:34 2012 Subject: SqueakOS In-Reply-To: <3.0.5.32.19981114213403.008f6960@gateway> Message-ID: On Sat 14 Nov, Jerry Bell wrote: > I'm new to the list, but I've found some references to 'bare-metal' Squeak > implementations. Is anyone working on this? Yup. We've been doing stuff along those lines for a while now. We have custom hardware to run it on and can also run the same images on 'normal' machines, though without the sort of full-control you can get with your own h/w. > > What would be the ideal kind of kernel to run Squeak on top of? I know > portability would be on the top of the list. How about single vs. > multithreaded? Maybe even something completely different to take advantage > of the unique needs of a smalltalk environment? We sort of started from the ARM/Digital 'Angel' + a sort-of port of microC/OS (I always think of it as 'mucus' because it snot an OS) and then waltzed off into the sunset. > > I assume that a goal would be to eventually make Squeak classes that could > generate the low-level kernel code for a given platform, much like the > interpreter generator. Then, to port to another platform you would simply > define the characteristics of that specific platform. All from within > Squeak. That would be.... nice. It was, it does and it is. Mix in the direct-compile for primitives that Hans-Martin has also spent some time on along with something like Andreas' pluggable prims and yo uget quite a useful improvement on DLLs. If there is serious interest in acutally using this sort of thing (not to mention handling the work of writing code-gen backends for non-ARM cpus) we might be able to release the code translator. Be warned - it requires quite a bit of syntactically rejigging the VM code, like getting rid of all the #cCode: stuff. Personally I think that makes it worth doing by itself :-) tim -- Useful random insult:- Couldn't hit water if he fell out of a boat. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From DanI at wdi.disney.com Thu Nov 26 01:47:38 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:03:38 2012 Subject: Squeak 2.3 beta available Message-ID: Folks - I have just stored a beta version of Squeak 2.3 out on the UIUC server: ftp://st.cs.uiuc.edu/Smalltalk/Squeak/ A few things to note: This image will want a new VM, although it should run on an old VM if you don't use any of the new pluggable primitives (it may crash if you try). The Mac VM supplied is FAT (will run on 68K machines), but pluggable primitives will fail on the 68K (they should run in Squeak, though). We will complete the 68K section in due time. The image and changes are there as of this msg. The Mac VM (and a compact archive for Macs) should appear in a few hours. There are some awesome new capabilities in this version of Squeak. I'll send out a complete message in the next day or two, and perhaps Andreas will as well (he is responsible for Balloon, the awesome new graphics engine, as well as the considerable interface support surrounding it). [Andreas: Can you send out a brief message pointing folks at some flash files to try, and any other things you might want to suggest for people to try (like the TrueType access or the lightning-fast FFT). Also, if you have a VM for 2.3, where can people find it? Thanks in advance] Enjoy - Dan From JArchibald at aol.com Fri Nov 20 06:21:12 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:03:40 2012 Subject: Tentative 2.3 release schedule Message-ID: At 11/20/98 12:51:15 AM EST, DanI@wdi.disney.com writes: << I'm anticipating an official release more like a week from Monday or Tuesday >> Wow! We are impressed--so close on heels of 2.2 Jerry. From DanI at wdi.disney.com Tue Nov 10 03:47:30 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:03:41 2012 Subject: Subclass problem In-Reply-To: Message-ID: Ivan - >I attempted to add an ivar to the Morph class, but upon recompilation the >debugger stated that the ivar was defined in another class (SketchMorph). > >I corrected the problem by changing the variable's name, but now >almost all the subclass of Morph do not recognize that Morph is their >superclass. > >Upon further inspection, it appears that there are two definitions of >Morph in the system. Executing "implementors of it (m)" on a >method defined in Morph returns two methods. > >Has anyone encountered this problem? Any help will be appreciated. Yes. The check for conflicts is unfortunately not made before any changes. Therefore you were partly through the process when you bailed out. This leaves everything in a bad state with exactly the symptoms you describe. The solution for you is (sorry to say) go back to where you were, and add an instvar with a name that does not conflict. The solution for Squeak is to make this test before beginning its recompilation of the class hierarchy. i'll try to get this into 2.3. Thanks for the report. - Dan From DanI at wdi.disney.com Sun Nov 29 22:02:16 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:03:48 2012 Subject: 2.3 beta buglets In-Reply-To: Message-ID: >Something odd is going on with the Tracer -- it produces an image somewhat >bigger than 6Mb, which starts up ok and saves back to 4-ish MB. Rather >spoils the 'coffee-break garbage collector' story doncha think? It seems to >be a recent problem, as older images clone same/smaller as appropriate. I >though it might be related to the Display size/depth, but seem to have >ruled that out. Maybe the WeakArrays need more careful cloning? Methinks it's because Squeak compresses all its Forms in a normal snapshot, but the image running the systemTracer will have expanded many of them (such as fonts). I would try Form shutDown at the beginning of writeClone. Also, I'm not sure if we clamp the displayScreen. If not, that would make a difference, or you could at least go to color depth 1 before writing the image. Hope this helps. - Dan From dwighth at ipa.net Wed Nov 11 06:12:17 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:03:59 2012 Subject: [sqvm] squeak vm startup (interpreter?) References: Message-ID: <36492AC1.3B1DABE6@ipa.net> For Squeak 2.2 that would be: ftp://st.cs.uiuc.edu/pub/Smalltalk/Squeak/SmallSqueaksForPDAs/MiniSqueak2.2/ and you want both the mini.image and mini.changes files. -- Dwight JArchibald@aol.com wrote: > > Dan Ingalls, > > I would like to try your suggested direction, but am not sure which is correct > download for this. What's the correct URL for this? > > In a message dated 11/10/98 2:42:45 PM EST, DanI@wdi.disney.com writes: > << I find it nice to work with the Mini.image on the UIUC server. >> > > Thanks, > Jerry. From markus_kohler at bbn.hp.com Fri Nov 20 16:19:06 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:04:00 2012 Subject: /. mentions squeak References: <365578CB.FD031AF3@netvision.net.il> <36559046.E42097C3@gui.com> Message-ID: <3655967A.162EB45E@bbn.hp.com> Dan Shafer wrote: > > While there are some in the /. community who are well-informed about it, > a seemingly larger number seem intent on criticizing my characterization > of the possible relationship of Squeak and Linux. On the show, I talked > about the potential power of emedding Squeak into Linux as one way this > might work. The rabid /. folks jumped on that to point out that I was > obviously ignorant about Squeak since I didn't even know there was a > Linux port. > Since I wasn't at "the show" and there are for sure others that missed iy, do you have any references, documents were we can read about it ? I'm very interested in this idea, and a first step might be to port squeak to ggi for example. Markus -- Markus Kohler mailto:markus_kohler@hp.com From david_mitchell at my-dejanews.com Mon Nov 23 19:48:23 1998 From: david_mitchell at my-dejanews.com (David Mitchell) Date: Sat Jan 28 04:04:09 2012 Subject: Fonts too small -- from a clueless newbie Message-ID: Try this: TextStyle changeDefaultFontSizeBy: 1 I filed out the code that does this, so you can browse TextStyle for more info. 'From Squeak 2.2 of Sept 23, 1998 on 23 November 1998 at 2:47:00 pm'! !TextStyle class methodsFor: 'instance creation' stamp: 'di 6/16/97 12:31'! changeDefaultFontSizeBy: delta "TextStyle changeDefaultFontSizeBy: 1" "This sample method recreates the default textStyle, with font 1 being a size larger than the smallest. It then initializes most references in the system as well, although most windows will have to beclosed and reopened to get the effect." | allFonts | allFonts _ TextStyle default fontArray asSortedCollection: [:a :b | a height < b height]. TextConstants at: #DefaultTextStyle put: (TextStyle fontArray: ((1 to: allFonts size) collect: [:i | allFonts atWrap: i+delta])). PopUpMenu initialize. "Change this method for difft menu font" ListParagraph initialize. "Change this method for difft ListPane font" StandardSystemView initialize. "Change this method for difft Window label font" ! ! -- On Mon, 23 Nov 1998 15:24:41 Jeffrey J. Hallman wrote: >I started Squeak 2.2 on NT, and found the fonts too small to read comfortably. >What should I do? > > -----== Sent via Deja News, The Discussion Network ==----- http://www.dejanews.com/ Easy access to 50,000+ discussion forums From caniglia at dm.uba.ar Tue Nov 24 22:41:49 1998 From: caniglia at dm.uba.ar (Leandro Caniglia) Date: Sat Jan 28 04:04:13 2012 Subject: Class LinearFit - What does the comment mean? Message-ID: <01be17fb$9fa344a0$0132c8c8@notung> >The comment for class LinearFit (a subclass of Path) says : > >"I represent a piece-wise linear approximation to a set of >points in the plane." > > >Is this a correct statement? I think that the author was thinking about a linear interpolation problem. In these problems you want the graph of a function, but you only have some points of it. A linear interpolation is obtained joining the points with segments. Hope this helps Leandro From rlpa80 at email.sps.mot.com Wed Nov 25 17:01:21 1998 From: rlpa80 at email.sps.mot.com (John-Reed Maffeo) Date: Sat Jan 28 04:04:13 2012 Subject: Bug Report/Fix References: <199811242255.SAA01637@garlic.acadiau.ca> Message-ID: <365C37E1.E2429507@email.sps.mot.com> I was working on some graphics code last night and found what I think is a problem in the Path hierarchy. The original methods collect: and select: tried to send the message form: to newCollection. The method form: is a Path instance message; it is not understood by collection. The original method displayOn: transformation: clippingBox: rule: fillColor: sent the message do: to transformedPath. The message collect: should be used instead. In addition to the code fix, I am suggesting a modification to the comment associated with LinearFit. The definitions I got from Ivan Tomek and Leandro Caniglia were very helpful. original comment: "I represent a piece-wise linear approximation to a set of points in the plane." revised comment: "I represent a piecewise-linear approximation to a set of points on a plane. A piecewise-linear approximation is the best fit of a set of points by a continuous series of straight line segments. A square is an example of a piecewise-liner approximation of a circle." 'From Squeak 2.2 of Sept 23, 1998 on 24 November 1998 at 10:36:51 pm'! !Path methodsFor: 'enumerating'! collect: aBlock "Evaluate aBlock for each point in the receiver's collectionOfPoints. Answer with a new collection." | newCollection | newCollection _ collectionOfPoints collect: aBlock. ^newCollection! ! !Path methodsFor: 'enumerating'! select: aBlock "Evaluate aBlock for each point in the receiver's collectionOfPoints. Answer with a new collection." | newCollection | newCollection _ collectionOfPoints select: aBlock. ^newCollection! ! !LinearFit methodsFor: 'displaying'! displayOn: aDisplayMedium transformation: aTransformation clippingBox: clipRect rule: anInteger fillColor: aForm "Create a new LinearFit and apply aTransformation to the collectionOfPoints. Display the new LinearFit." | newLinearFit transformedPath | transformedPath _ aTransformation applyTo: self. newLinearFit _ LinearFit new. transformedPath collect: [:point | newLinearFit add: point]. newLinearFit form: self form. newLinearFit displayOn: aDisplayMedium at: 0 @ 0 clippingBox: clipRect rule: anInteger fillColor: aForm! ! From mklein at alumni.caltech.edu Sun Nov 8 00:17:53 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:04:14 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: <36447465.C9291ADD@netvision.net.il> Message-ID: I am using a Twiddler. http://www.HandyKey.com/ I am still on the steep part of the learning curve, but it is a lot easier to use than one might imagine (I thought it would be extremely difficult). Anybody who is interested in this stuff should definately check out the stuff by Thad Starner and Steve Mann. (You can find them through the Handeykey testimonials link). There was also an article in Scientific American: http://www.sciam.com/cgi-bin/search.cgi?query=Starner&searchby=strict&groupby=confidence&docs=25 (The main article is on Smart Rooms... ) > Down sides - one manufacturer, $199 bucks a piece, and it's a mail > order thing, so I don't see how one can try it yourself. There is another one like it (more home-brewish): http://www.mbhs.edu/~ojenkins/wearable/fiddler.html You can see a more complete list at: http://wearables.ml.org/hardwear.html One of the things that is poorly thought out on the twiddler is the key map. It is layed out alphabeticly. They claim this 'design' has no handedness preference. Yeah, no shit! Alphabetic layouts are pathetic. I refuse to train myself on that layout. (Anybody out there use a key-tronic?) Alan Kay wrote: > His instance of the theory was to have a five finger "chord" keyboard for > the nonmouse hand. I have two primary input modes using traditional mouse/keyboard: A) Normal two-handed typing B) Left-hand in ordinary typing position, but with thumb ready for command/modifier key gestures, and right hand on (3-button) mouse. While in mode (B), I edit using command keys (cut/copy/paste), drag & drop and perform functions using doIt (CMD-D). I only use printIt (CMD-P) whilst in mode (A). Herein lies the rub: inspectIt (CMD-I) is not tenable in mode (B), and is not usefull in mode (A) because the RealEstateAgent sucks big time, and window placement requires the mouse. Solution: I have a message, #edit, that when sent to an object, brings up something generally more usefull than an Inspector. For a MethodReference or a Class, this would be a browser, for a String this would be a Workspace, for a Form this would be a FormEditor, for a Collection this would be a sequence view, etc. Of course Object implements edit as inspect. (CMD-E) does an editIt, and away you go. Working this way in VisualWorks allows me to drive the UI about twice as fast as without these changes (on a system with point-to-focus, click doesn't raise window). It still is nice to use this in Squeak, unfortunately, because Squeak's windows still raise on click, the win isn't quite as big. To you UI wanabes out there: Read: TOG on Interface, Tognazzini Designing the User Interface, Schneiderman Design of Everyday Things, Norman Notice: While driving the UI, little shifts in your focus... these cost! Other people using your interfaces...encourage them to gripe Violations in your expectations... especially small ones. Best trick to *really* learn how to do UI stuff: Stop using *all* other environments other than your primary one. This includes Netscape and the Finder/File Manager. It is OK to call-out to other programs, but do not use their UI's. Do this for 3 monthes. If you don't go back... you will have learned. (And Squeak will be better) Cheers, Michael Klein mklein@alumni.caltech.edu From guzdial at cc.gatech.edu Wed Nov 25 19:14:11 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:04:18 2012 Subject: Squeak MIDI and Mac Serial Ports Message-ID: Does anyone know how to make Squeak let go of a Mac serial port after it uses it (say, for a MIDI interface)? On my G3 Powerbook, I have one lone serial port. After using it for MIDI-ing, I wanted to backup my PalmPilot, but it insisted that Squeak still had the serial port -- despite moving back to internal synthesizer, and despite quitting Squeak. I could backup after restart. It's not a huge deal (I don't backup that often :-), but if there's an easy solution (a Mac-centric thingie? A Squeak expression to evaluate?), I'd appreciate it. Thanks! Mark -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From jwdavison at lucent.com Tue Nov 10 20:53:47 1998 From: jwdavison at lucent.com (Joe Davison) Date: Sat Jan 28 04:04:23 2012 Subject: Results of proposal to create squeak-help list... In-Reply-To: <199811101942.NAA26479@sal.cs.uiuc.edu> References: <199811101942.NAA26479@sal.cs.uiuc.edu> Message-ID: <13896.42971.593907.463042@nwswd131.ih.lucent.com> Ralph Johnson said: > Since we run the squeak list, I asked John Brant about setting > up the squeak-help list. He said that he doesn't know how to > put a prefix like [sqh] on the front of every subject, and that > he could break down and learn procmail hacking and do it, but > that becoming a procmail hacker was low on his list of life goals. > > In fact, I'm not sure what the purpose of the voting was. There > is not group in charge, so there is nobody to act in behalf of the > electorate. If you think something should be done, just do it! > If you set up a sqeak-help list, I'm sure that the people who own > the Squeak home page would put a pointer to it there. > I suppose someone has asked the obvious? Why does the help list need to be a mailinglist? Would not comp.lang.smalltalk.squeak be more effective? Voting would even make sense, then... I understand why developers prefer a mailinglist, but for help a newsgroup seems more appropriate -- plus, it gets archived on dejanews "for free?" and people can review previous questions... joe From stephan.wessels at sdrc.com Thu Nov 19 14:08:12 1998 From: stephan.wessels at sdrc.com (Stephan B. Wessels) Date: Sat Jan 28 04:04:25 2012 Subject: Diff code available? References: <3d43435d.36539436@aol.com> Message-ID: <3654264C.C74D4F11@sdrc.com> I liked the one they had in Team too. but I think the primary author may have been Brian Wilkerson. Allen could tell us for sure. - Steve JArchibald@aol.com wrote: > In a message dated 11/18/98 2:15:24 PM Eastern Standard Time, > DanI@wdi.disney.com writes: > << I would do this myself, but if anyone has such code around, or knows of a > goodie that does it, it would save some time. > Please respond directly to me, not to the list. >> > > Lot's of us would probably like this, Dan. I would encourage whoever knows > about such to post to the list. > > The best that I recall was in Team/V, and might have been done by Juanita > Ewing. > > Jerry. From rlpcon at vermontel.net Sat Nov 14 20:20:52 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:04:27 2012 Subject: Squeak-Jitter Message-ID: Can someone give me a short description of the difference between the "Dynamic Interpreter" (Jitter) and the "Squeak Interpreter" (Interpreter classes)? thanks, --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From jb at speed.net Tue Nov 17 14:04:06 1998 From: jb at speed.net (Jim Benson) Date: Sat Jan 28 04:04:37 2012 Subject: FAQ: Re:problem with sources Message-ID: <000601be1233$23f45600$330c8218@pavilion.we.mediaone.net> Jason, The last time I saw this happen, there was an 'off by one' problem in the sources file. As I recall, the sources file was downloaded missing a byte, a result of a communications misunderstanding with the server. This results in the missing character in the front of some methods. Methods that are before the missing byte look fine, the ones after the missing byte are, well, missing a byte. As always, if the system doesn't look correct after downloading, it probably didn't download correctly. jb -----Original Message----- From: Jason Karney To: squeak@cs.uiuc.edu Date: Tuesday, November 17, 1998 5:53 AM Subject: Re: FAQ: Re:problem with sources >Well, while people were discussing whether or not my problem belongs in a FAQ, I >downloaded another copy of SqueakV2.sources for the Mac, and I can now browse thru >the system just fine. But if somebody knows what the problem was, I would still be >interested in knowing about it. Could my sources file have been corrupt? Or is it >some simple matter? > >Thanks. > >Jason > >Bill Felton wrote: > >> At 10:08 AM 11/16/98 -0800, you wrote: >> >>I ran into a frustrating, yet interesting, problem over the weekend with >> >>Squeak >> >>2.2 running on a Mac. While browsing source methods, I noticed that many >> (but >> >>not all) methods would show up in the source window with the first letter >> >>missing, e.g. "mphasizeLabel" and "nitialize" for "emphasizeLabel" and >> >>"initialize." My standard test case was the TextAttribute methods, which all >> >>displayed the problem. And accepting any changes for these corrupt methods >> >>resulted in creating a new, misnamed version of the method. >> > >> >THIS is why we need a REAL FAQ. Swiki by itself will not do because: >> > >> >1) It isn't independent of the web (not downloadable). >> >2) It isn't guaranteed to be up and running. >> >3) It isn't KNOWN by everyone. >> >> And not only is it not independant of the web, it REQUIRES the >> web. >> And this is a problem because not all Squeak users have direct >> connection to the internet, or do not have it for the machine >> executing Squeak for them. >> While I think its wonderful that Squeak has these nifty features >> for on line updates and so forth, those same features are a >> nightmare, or at least major speed-bump, for those of us who >> run Squeak on machines that are not internetted. >> >> [snip] >> >> Lets by no means limit or eliminate the 'live update' features, >> but let us also never lose sight of the fact that we must provide >> ways to get Squeak and Squeak updates onto machines that are not >> directly connected (or connectable) to the internet. And these >> ways must not translate into a sort of 'second class citizenship' >> for those whose Squeak machines are not on the net. >> >> regards, >> Bill F. > > > > From guzdial at cc.gatech.edu Wed Nov 11 21:27:21 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:04:50 2012 Subject: Creating new directories from UNIX Squeak Message-ID: Some of the UNIX PWS users have complained that creating new directories (for Swikis) from Squeak leads to really odd change access. Basically, Squeak can't actually write in the directories that it creates, unless it's running as root. Is there an environment variable that we can set to set what the directory access should be? Or is this a fix-able bug? Thank you! Mark -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From tim at jumpnet.com Sun Nov 15 03:40:32 1998 From: tim at jumpnet.com (Tim Olson) Date: Sat Jan 28 04:04:54 2012 Subject: HELP with font sizes on browsers etc. Message-ID: <199811150339.VAA05656@mail11.jump.net> >>Hi; >>I've looked high and low for where I could adjust the font sizes on the >>tools such as the transcript, system and class hierarchy browsers with no >>luck. I'm running a 17" monitor @ 1280x1024 and the eye strain is >>considerable. >> >>If someone could please point me to where to adjust the font size values, >>i'd be very grateful. > >Try: > > TextStyle changeDefaultFontSizeBy: 1 By the way, a very handy trick when you are looking for something like this is to type some plausible keyword into a workspace (e.g. "fontsize"), select it, and perform "Selectors containing it" (in the shifted Yellow button menu), (cmd-shift-W). Up will pop a list of all selectors in the system that contain the phrase you typed. In this case, the TextStyle class method above was the third one on the list. -- tim From rowledge at interval.com Thu Nov 26 07:26:41 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:05:05 2012 Subject: Squeak 2.3 beta available In-Reply-To: Message-ID: On Wed 25 Nov, Dan Ingalls wrote: > Folks - > > I have just stored a beta version of Squeak 2.3 out on the UIUC server: > ftp://st.cs.uiuc.edu/Smalltalk/Squeak/ > OK - first bug for Acorn:- I sent johnM a patch to remove the LEBB startup sequence, since I've withdrawn it from use. Isn't in there, so my new VM don't work. Otherwise, same as Dwight said. registering the file stream gets its knickers twisted and goes into a screaming powerdive to oblivion, pilot shrieking for mother, smoking crater, fire blazing across the desolate moors as puzzled sheep look on. Rain comes, puts out the flames, silence returns. The mist rolls in.... -- Useful random insult:- Renewable energy source for hot air balloons. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From jason at netgenics.com Tue Nov 17 14:00:04 1998 From: jason at netgenics.com (Jason Karney) Date: Sat Jan 28 04:05:07 2012 Subject: FAQ: Re:problem with sources References: <3.0.32.19981116102834.007f2210@pop1.ibm.net> Message-ID: <36518164.8D3F980@netgenics.com> Well, while people were discussing whether or not my problem belongs in a FAQ, I downloaded another copy of SqueakV2.sources for the Mac, and I can now browse thru the system just fine. But if somebody knows what the problem was, I would still be interested in knowing about it. Could my sources file have been corrupt? Or is it some simple matter? Thanks. Jason Bill Felton wrote: > At 10:08 AM 11/16/98 -0800, you wrote: > >>I ran into a frustrating, yet interesting, problem over the weekend with > >>Squeak > >>2.2 running on a Mac. While browsing source methods, I noticed that many > (but > >>not all) methods would show up in the source window with the first letter > >>missing, e.g. "mphasizeLabel" and "nitialize" for "emphasizeLabel" and > >>"initialize." My standard test case was the TextAttribute methods, which all > >>displayed the problem. And accepting any changes for these corrupt methods > >>resulted in creating a new, misnamed version of the method. > > > >THIS is why we need a REAL FAQ. Swiki by itself will not do because: > > > >1) It isn't independent of the web (not downloadable). > >2) It isn't guaranteed to be up and running. > >3) It isn't KNOWN by everyone. > > And not only is it not independant of the web, it REQUIRES the > web. > And this is a problem because not all Squeak users have direct > connection to the internet, or do not have it for the machine > executing Squeak for them. > While I think its wonderful that Squeak has these nifty features > for on line updates and so forth, those same features are a > nightmare, or at least major speed-bump, for those of us who > run Squeak on machines that are not internetted. > > [snip] > > Lets by no means limit or eliminate the 'live update' features, > but let us also never lose sight of the fact that we must provide > ways to get Squeak and Squeak updates onto machines that are not > directly connected (or connectable) to the internet. And these > ways must not translate into a sort of 'second class citizenship' > for those whose Squeak machines are not on the net. > > regards, > Bill F. From rowledge at interval.com Sat Nov 28 23:50:04 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:05:07 2012 Subject: Squeak 2.3 beta available In-Reply-To: <199811261351.OAA23330@gaugin.cs.uni-magdeburg.de> Message-ID: On Thu 26 Nov, Andreas Raab wrote: > * Pluggable primitives > Those of you not having been to OOPSLA, PPs are a way of extending the > virtual machine without actually modifying it. PPs are pluggable in such > that they're called by name, not by number and that they can reside [SNIP] > Implementors: Have a look at class InterpreterPlugin and it's subclasses > to see how this works (yes - I ought to write a bit of documentation > about this stuff ;-) There's already a page on the central Swiki awaiting your input :-) Look for 'named primitives' on the Virtual Machine Hacking page. -- Useful random insult:- Some Assembly Required. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From jason at netgenics.com Mon Nov 16 14:56:03 1998 From: jason at netgenics.com (Jason Karney) Date: Sat Jan 28 04:05:08 2012 Subject: problem with sources (?) - long message Message-ID: <36503D03.5E69D854@netgenics.com> I ran into a frustrating, yet interesting, problem over the weekend with Squeak 2.2 running on a Mac. While browsing source methods, I noticed that many (but not all) methods would show up in the source window with the first letter missing, e.g. "mphasizeLabel" and "nitialize" for "emphasizeLabel" and "initialize." My standard test case was the TextAttribute methods, which all displayed the problem. And accepting any changes for these corrupt methods resulted in creating a new, misnamed version of the method. After much trial and error, I discovered that a minor tweak to the sources file fixed this problem, and method source seemed to display normally. The problem and fix (an extra cr) is shown in bad/fixed sources fragments one, below. I soon came across another problem, where certain class comments were corrupt, as in the fragment that showed up for class StandardSystemController: ------ tandardSystemController comment: 'I am a controller for StandardSystemViews, that is, those views that are at the top level of a... ------ The source and fix are shown below as bad/fixed fragments two. I didn't seem to experience this problem with the same sources file running under Windows. Can anybody explain what's going on? Thanks. Bad sources fragment one: ------------------------------------------------------------- !StrikeFont class methodsFor: 'derivative font caching'! shutDown "StrikeFont shutDown" "Deallocate synthetically derived copies of base fonts to save space" self allInstancesDo: [:sf | sf reset]! ! ArrayedCollection variableByteSubclass: #String instanceVariableNames: '' classVariableNames: 'AsciiOrder CaseInsensitiveOrder ' poolDictionaries: '' category: 'Collections-Text'! !String commentStamp: 'di 5/22/1998 16:38' prior: 0! ------------------------------------------------------------ Bad sources fragment two: ------------------------------------------------------------ MouseMenuController subclass: #StandardSystemController instanceVariableNames: 'status ' classVariableNames: 'HBorderCursor ScheduledBlueButtonMenu ScheduledBlueButtonMessages VBorderCursor ' poolDictionaries: '' category: 'Interface-Support'! !StandardSystemController commentStamp: 'di 5/22/1998 16:38' prior: 0! StandardSystemController comment: 'I am a controller for StandardSystemViews, that is, those views that are at the top level of a project in the system ...'! ------------------------------------------------------------- Fix sources one: ------------------------------------------------------------ !StrikeFont class methodsFor: 'derivative font caching'! shutDown "StrikeFont shutDown" "Deallocate synthetically derived copies of base fonts to save space" self allInstancesDo: [:sf | sf reset]! ! ArrayedCollection variableByteSubclass: #String instanceVariableNames: '' classVariableNames: 'AsciiOrder CaseInsensitiveOrder ' poolDictionaries: '' category: 'Collections-Text'! !String commentStamp: 'di 5/22/1998 16:38' prior: 0! ------------------------------------------------------------ Fix sources two: ------------------------------------------------------------ MouseMenuController subclass: #StandardSystemController instanceVariableNames: 'status ' classVariableNames: 'HBorderCursor ScheduledBlueButtonMenu ScheduledBlueButtonMessages VBorderCursor ' poolDictionaries: '' category: 'Interface-Support'! !StandardSystemController commentStamp: 'di 5/22/1998 16:38' prior: 0! StandardSystemController comment: 'I am a controller for StandardSystemViews, that is, those views that are at the top level of ... ------------------------------------------------------------ -- Jason Karney <- Advanced Technology Scientist NetGenics, Inc. [jason@netgenics.com] [STOP] Okay, you were there yesterday, but Where do you want to go tomorrow? From tim at jumpnet.com Sat Nov 7 15:13:51 1998 From: tim at jumpnet.com (Tim Olson) Date: Sat Jan 28 04:05:15 2012 Subject: StandardSystemView etc Message-ID: <199811071512.JAA16980@mail11.jump.net> >I've written a couple of classes that display histograms inside a >standard system view. Everything seems to be working except that the >view isn't redrawn when it's exposed by another window moving. It >seems like I must be missing something simple. Any hints? Chose "windows..." from the main display menu and turn on "don't save bits (compact)". If everything then works as you expect, the problem is that your histogram window is drawn in color, and you should be using a ColorSystemView for the top level, instead of a StandardSystemView. The StandardSystemView assumes that a window is "two-tone", with a single background color and a black foreground. When a StandardSystemView is displayed, its bits are cached in a 1-bit deep ColorForm (see ColorForm>>twoToneFromDisplay...). This works great for the standard text windows, and saves a lot of space, but doesn't work well for other views. A ColorSystemView caches the view directly from the Display at the full Display depth. Try changing the top level view to a ColorSystemView, and change the window caching policy back to "save bits (fast)", and see if everything works as expected. >More generally: I was also wondering if there's any documents on >smalltalk-80 MVC stuff I could read. I've got some idea of what's >going through reading the code for existing stuff, and looking at >"Smalltalk-80 : Interactive Programming Environment" but but I don't >really have a good firm of what's going on, especially with >controllers. Has some basic info about using the MVC model. -- tim From oliver at fritz.traverse.net Mon Nov 30 01:08:17 1998 From: oliver at fritz.traverse.net (Christopher Oliver) Date: Sat Jan 28 04:05:22 2012 Subject: Squeak licensing questions [longish] In-Reply-To: <199811300050.QAA25954@jasper.he.net>; from russell.allen@firebirdmedia.com on Mon, Nov 30, 1998 at 12:50:04AM +0000 References: <199811300050.QAA25954@jasper.he.net> Message-ID: <19981129200817.A1377@fritz.traverse.net> > > This smacks of trying to solve a social problem with software. > > Isn't this what software's for? ;-) But seriously, fixing Squeak might be > must simpler and easier then fixing society! The ghost of Camus just lowered his head in sadness. -- Christopher Oliver, Traverse Internet, oliver@traverse.net We've secretly replaced their web server with Folgers Crystals. Let's see if they notice. From raab at isgnw.CS.Uni-Magdeburg.De Fri Nov 20 22:45:26 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:05:33 2012 Subject: How To Re-evaluate A Block? In-Reply-To: <199811202229.OAA26167@interval.interval.com> from "Craig Latta" at Nov 20, 98 02:42:17 pm Message-ID: <199811202245.XAA14323@gaugin.cs.uni-magdeburg.de> Craig, > > What is the Squeak code I need to do before I send value to the protected > > block so that it can be re-evaluated? > > That's BlockContext>>fixTemps, I believe. That's not an extremely good idea in an exception handler. #fixTemps will create a new home method for the block - so every reference to variables will not have any effect when you leave the guarded block. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From dwighth at ipa.net Thu Nov 26 08:43:58 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:05:51 2012 Subject: Squeak 2.3 beta available References: Message-ID: <365D14CE.51F8115E@ipa.net> Tim Rowledge wrote: > > On Wed 25 Nov, Dan Ingalls wrote: > > Folks - > > > > I have just stored a beta version of Squeak 2.3 out on the UIUC server: > > ftp://st.cs.uiuc.edu/Smalltalk/Squeak/ > > > OK - first bug for Acorn:- I sent johnM a patch to remove the LEBB > startup sequence, since I've withdrawn it from use. Isn't in there, so my > new VM don't work. > > Otherwise, same as Dwight said. registering the file stream gets its > knickers twisted and goes into a screaming powerdive to oblivion, pilot > shrieking for mother, smoking crater, fire blazing across the desolate > moors as puzzled sheep look on. Rain comes, puts out the flames, silence > returns. The mist rolls in.... Such an evocative image. I can almost hear Churchill in voice-over saying, "Yes, I believe I will have another brandy." :-) -- Dwight From stephan.wessels at sdrc.com Thu Nov 19 16:35:25 1998 From: stephan.wessels at sdrc.com (Stephan B. Wessels) Date: Sat Jan 28 04:05:59 2012 Subject: Diff code available? References: <19981119152312.20209.qmail@relay1.teleport.com> Message-ID: <365448CC.60395DF6@sdrc.com> Pat, I left OBJS 6 months ago. I don't even know who to ask anymore. All or most of the folks I knew well (like yourself) are gone. - Steve Pat Caudill wrote: > I asked Brian and he said it was originally developed by Roxie Rochet for > Tektronix Smalltalk. Juanita ( and/or Steve Messick) and then Brian > rewrote it for use by Team/V. Brian was the final author. I think the > code is still property of Objectshare though. Perhaps someone there > (hint, hint Stephan B.) could get permission to release it. > > Pat Caudill > > Stephan B. Wessels intimated > >I liked the one they had in Team too. but I think the primary author may > >have been Brian Wilkerson. > > > >Allen could tell us for sure. > > > > - Steve > > > >JArchibald@aol.com wrote: > > > >> In a message dated 11/18/98 2:15:24 PM Eastern Standard Time, > >> DanI@wdi.disney.com writes: > >> << I would do this myself, but if anyone has such code around, or knows of a > >> goodie that does it, it would save some time. > >> Please respond directly to me, not to the list. >> > >> > >> Lot's of us would probably like this, Dan. I would encourage whoever knows > >> about such to post to the list. > >> > >> The best that I recall was in Team/V, and might have been done by Juanita > >> Ewing. > >> > >> Jerry. > > > > > > From markus_kohler at bbn.hp.com Mon Nov 16 15:22:27 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:06:06 2012 Subject: Multi-threading the interpreter References: <19981116151457.23273.qmail@relay1.teleport.com> Message-ID: <36504333.36233A9@bbn.hp.com> Pat Caudill wrote: > > Jan Bottorff wrote > >At 03:18 PM 11/14/98 -0500, dick Peskin wrote: > >>A multi-threaded interpreter would be a good idea anyway. For example, if > >>there were a way to make the interprter multi-threaded, performance would > >>really be enhanced under the BeOS on multi-processor systems, since it is a > >>pervasively multi-threaded OS which will map threads to available > >>processors. Has any work been done on multi-threaded interpreters? I can > >>see all sorts of issues such as how to handle garbage collection. > > > >There are many very sticky issues of doing a multi-threaded, > >multi-processor Smalltalk. > > It's not just in the VM. Look at what might happen if two processes tried > to add an element to an OrderedCollection at the same time. Couldn't that happen already today ? If I have today a multithreaded application in squeak with more than one thread using the same collection of course I have to synchronize the access to that collection. Another question is, if we have enough support for multithreaded programming. IMHO what's at least missing is debugger support. > I suspect a > significant part of the image code would have to be updated too. > Some standard thread-save collections could be usefull ... Markus -- Markus Kohler mailto:markus_kohler@hp.com From Craig.Latta at NetJam.ORG Fri Nov 20 23:10:25 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:06:08 2012 Subject: How To Re-evaluate A Block? In-Reply-To: <199811202245.XAA14323@gaugin.cs.uni-magdeburg.de> References: <199811202229.OAA26167@interval.interval.com> Message-ID: <199811202257.OAA28695@interval.interval.com> > > > What is the Squeak code I need to do before I send value to the protected > > > block so that it can be re-evaluated? > > > > That's BlockContext>>fixTemps, I believe. > > That's not an extremely good idea in an exception handler. #fixTemps will > create a new home method for the block - so every reference to variables > will not have any effect when you leave the guarded block. Oh well; that was off the top of my head. I ought to have looked up what I do in my exception-handling stuff, but I'm too lazy at the moment. -C -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From mwai at ibm.net Wed Nov 11 23:06:47 1998 From: mwai at ibm.net (Mark Wai) Date: Sat Jan 28 04:06:17 2012 Subject: Info Only, Non -Technical Post Message-ID: <1.5.4.32.19981111230647.006cec38@pop1.ibm.net> Warning: This email contains no technical contents or merit. Skip reading it if you are looking for these. My apology for wasting your bandwidth.... ------------------------------------ Out of my usual curiousity on things that I have deep interests, I have always wondering the driving force and the goals behind the Squeak project at Disney. I have seen quite a few messages here in the list asking: 'Why we do Squeak?' or 'What kind of practical things we can do with Squeak' or something similiar. I don't recall seeing replies that are very specific. While the potential of Squeak is probably unlimited, thinking about blue and pink all the times are not easy to swallow, at least to me. While reading the book 'Work in Progress' today, I find out some background information on the Squeak project. In the section 'Cocooning and Connecting', - Our hope was that the project would turn out to be not just imaginative and promising, but also practical and usable in the near term. - Already Alan Kay (and his team) has helped to develop a new programming language for our on-line initiative that takes a leap beyond Java, as well as a new form of on-line entertainment for kids called E-toys, which can be downloaded directly from the Internet. - ............... While these statements are not official and probably very limited in terms of the real goals, nevertheless, it is good to know some of the near term goal. Well, hopefully, some of us who don't have the luxuary to work at the Squeak central or work full time on Squeak can also come with another dimension/form of Squeaky ideas towards the the same technological ideal. P.S. To those of you who have read about Eisner's proposal for changing professional ice-hockey rules about 2 years ago, you will probably agree that he is quite a visionary (his proposal is totally out of whack and ridiculous but - refreshing). It is amazed how different his ideas (well, I should add that if the proposal are originated by him) are to the rest of the people who don't move forward... Disney and Squeak seems to be a pretty good fit. -- Mark Wai Wator Innovision mailto: mwai@ibm.net or:[ mwai@frontiersa.com ] __ From russell.allen at firebirdmedia.com Thu Nov 5 00:57:44 1998 From: russell.allen at firebirdmedia.com (russell.allen@firebirdmedia.com) Date: Sat Jan 28 04:06:24 2012 Subject: PROPOSAL: create the squeak-help list Message-ID: <199811050057.QAA02893@jasper.he.net> Hi again! I'm not familiar with the the PARC Sparrow lightweight editable webpage you mentioned - do you have a link to info about it? It sounds interesting. Russell P.S Australian coins in circulation are: 5c, 10c, 20c, 50c, $1, $2. The Aussie dollar is currently trading at $1.59 to the US Dollar, so A$0.02 is worth US$0.012 (Our opinions must be worth less :-)
russell.allen@firebirdmedia.com wrote:
> 
> Hi
> 
> Would there be some way of moving answers to questions on this new list over 
to
> the Squeak Swiki so that people are not forced to trawl through thousands of
> old emails to find that answer they are seeking?  (Either something automated
> or a rule such as "The person who asks the question updates the Swiki"?).
> 
> That sort of rule could make the swiki into a self-updating FAQ...

I like the "the person who asks the question updates the Swiki" rule --
it would have to be pasted into the Swiki by hand though. Perhaps we
could have a special "append" form or something like the PARC Sparrow
lightweight editable webpage to simplify the process.  It would make a great 
resource for everyone.

> Russell
> 
> P.S. As as aside, 1 and 2 cent coins are still legal tender in Australia
> (although not used), so $0.02 must be worth *something* ;-)

Hmmm, what is your smallest value coin then?

-- Dwight

From DanI at wdi.disney.com Tue Nov 10 16:51:07 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:06:24 2012 Subject: C.L.S. FAQ In-Reply-To: <199811050205.SAA28705@interval.interval.com> References: <199811050202.VAA02485@fellspt.charm.net> Message-ID: Craig - I notice you are cited as the source for a Comp.Lang.Smalltalk FAQ. It seems very out of date. How about merging in some of the appropriate stuff from the Squeak home page? http://squeak.cs.uiuc.edu/ Just a suggestion. - Dan From stan at stanheckman.com Tue Nov 3 06:48:11 1998 From: stan at stanheckman.com (Stan Heckman) Date: Sat Jan 28 04:06:34 2012 Subject: Units package (was Method names) In-Reply-To: Sam Adams's message of "Mon, 2 Nov 1998 17:26:38 -0500" References: <5040100024760936000002L062*@MHS> Message-ID: <87iugxuv9w.fsf@streamer.msfc.nasa.gov> I too am interested in a units package for squeak. I have implemented a units package in another language (Mathematica) that handles Sam's "general case which ends up with composite units like furlongs per cubic fortnight per dyne centimeter." I agree with Sam that "you then need an algebraic system with mappings for unit definitions (dyne cm = erg, etc) so these composite units could recognize whether they were compatible or not and if the units could be reduced or mapped to another unit." The only two "mathematical" functions I used from Mathematica to do this were one that told me whether a set of vectors was linearly independent, and one that returned combinations from a set, taken N at a time. I know squeak already has a function for returning combinations N at a time, so all we need is the linear independence checker. Can someone point me to a linear algebra library for squeak? Things that gave me grief before, and that would be good to do more simply this time, are non-absolute temperatures, lists and tensors, automatic unit simplification and functions other than (+ - * /). What's the problem with non-absolute temperatures? Well, when I say that I heated my dinner from 40 Fahrenheit to 400 Fahrenheit, I would like to keep the same units, and describe the temperature difference as 360 Fahrenheit. If I want the heat put into dinner, I multiply dinner's mass and heat capacity by 360. But if I let the oven cool 40 degrees, and then want to compute the density of the air using the ideal gas law, I want not 360, but 360 + 459.67. As human beings we figure out the right thing to do in each case from context, but I don't think Squeak can be that smart. The resolution I've used before is to never use non-absolute temperature scales for temperature differences, only for temperatures. The Mathematica units package handles this automatically; I doubt that feature was really worth the complexity it cost. What's the problem with lists? One must either keep the units once per list, or once per element of the list. No matter which one chooses, half the time one wishes it were the other way. My bias is to keep the units of homogeneous lists only once per list, because this preserves the information that the list is dimensionally homogeneous, and without this I found my code became cluttered with checks to see whether a list was homogeneous. What's the problem with automatic simplification? Well, when I divide newtons per ampere squared by farads per meter, it's a very good bet that I want to see units of ohms squared. But when I divide miles by hours, I probably don't want to see this simplified to knots. Humans have a lot of heuristics for this, learned in years of classwork, and learned differently in different disciplines. I found that I could do a pretty good job of reproducing my own heuristics by simplifying only if I could reduce the total number of base units required, not introduce any fractional powers, and I restricted my base units to the set of units I started with plus joule, watt, pascal, newton, coulomb, volt, ohm, farad, henry, tesla, weber, and siemens. Using units in the original expression before the units above will usually keep absorbed dose in rads, instead of converting it to pascals. What's the problem with functions other than +, -, *, and /? The problem is that there are so many of them. :-) In the Mathematica package, I kept encountering functions that should work with dimensional quantities but didn't. See the functions section on the web page. If someone can figure out any way to avoid the same proliferation of tiny methods in the Squeak units package, that would be a very important contribution. An HTML version of my (Mathematica) units package is available at http://stanheckman.com/a/98h/glimpsedotter/html/PhysicalUnits.html The (brute force) automatic simplification section might be interesting to someone implementing similar functionality in Squeak. -- Stan From alank at wdi.disney.com Tue Nov 3 12:59:05 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:06:42 2012 Subject: Units package In-Reply-To: <3.0.1.32.19981103031544.0099f400@wuerzburg.netsurf.de> References: <363E44C3.BCA584AB@keyww.com> <5040100024760936000002L062*@MHS> Message-ID: Helge -- This looks good, and also some of his music stuff looks cool too. I sent Andrew an email also. Cheers and thanks, Alan ----- At 4:15 AM -0000 11/3/98, Helge Horch wrote: >Alan Kay wrote: >> Any interest out there in making a great units package for Squeak? > >FWIW, Andrew Brault (of PocketSmalltalk fame) is working on a similar >package for Dolphin Smalltalk (and offering it as "giftware"). See > for details. The package is >downloadable in Dolphin "pac" format only, but I have had good success >viewing that with a text editor (just skip over the binary parts). > >Before incorporating or adapting it to Squeak, however, we'd have to >respect Andrew's copyright and conditions. I have contacted him and will >summarize the answer here when I receive it. > >Cheers, >Helge From hhorch at wuerzburg.netsurf.de Tue Nov 3 04:15:44 1998 From: hhorch at wuerzburg.netsurf.de (Helge Horch) Date: Sat Jan 28 04:06:49 2012 Subject: Units package In-Reply-To: <363E44C3.BCA584AB@keyww.com> References: <5040100024760936000002L062*@MHS> Message-ID: <3.0.1.32.19981103031544.0099f400@wuerzburg.netsurf.de> Alan Kay wrote: > Any interest out there in making a great units package for Squeak? FWIW, Andrew Brault (of PocketSmalltalk fame) is working on a similar package for Dolphin Smalltalk (and offering it as "giftware"). See for details. The package is downloadable in Dolphin "pac" format only, but I have had good success viewing that with a text editor (just skip over the binary parts). Before incorporating or adapting it to Squeak, however, we'd have to respect Andrew's copyright and conditions. I have contacted him and will summarize the answer here when I receive it. Cheers, Helge From Ian.Piumarta at inria.fr Mon Nov 2 12:49:50 1998 From: Ian.Piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 04:06:49 2012 Subject: Porting squeak to the Alpha In-Reply-To: <19981101150136.B8136@sanctuary.smart.net> References: <19981101150136.B8136@sanctuary.smart.net> Message-ID: <13885.43630.50316.499377@tif.inria.fr> Rob, > Does anyone know how this code runs on Alpha OSF/1? I use the native OSF linker (rather than GNU ld) which has a *really* useful option "-taso" that locates all the program segments in the bottom 32-bits of the address space. For aesthetic reasons I also have a wrapper around gcc (util/decgcc) that filters out the thousands of warnings about 64-bit pointers being converted to 32-bit ints (which are irrelevant since the linker guarantees that there will be no pointers >= 2^32). Check whether GNU ld on Alphas has an option similar to "-taso". Squeak will almost certainly work just fine if you use it. If there's no such option, and no other way to configure GNU ld to locate everything in the first 2^32 bytes of memory, then you're probably in trouble. :^( Looking at the GNU ld manual page, you might be able to force everything into the low end of memory using the -Ttext -Tdata and -Tbss flags with some vaguely suitable arguments. You might also have to link with -Bstatic to avoid problems with ld.so allocating stuff in higher memory. (You might find the -Map option useful for seeing precisely where the linker is putting things.) Good luck. > Thanks in advance. You're welcome in arrears. Regards, Ian From guzdial at cc.gatech.edu Mon Nov 30 14:44:53 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:07:04 2012 Subject: Squeak MIDI and Mac Serial Ports In-Reply-To: <008301be1a21$b0156e30$2b02010a@jgfoster-tp760> Message-ID: Thanks, James. I tried it, but it doesn't recognize the G3 Powerbooks "modem/printer" port. Rebooting is still the only way to do it, it seems. Mark >When I was writing code that used the serial driver I found a utility that >forced a close of the serial port (since my code did not always word!). A >search on CompuServe's Mac forums found something named CommCloser by Ron >Grunwald from 1995. The file is 11kb in size and I've sent it directly to >Mark. I don't know if attaching will work, however, since my daytime machine >is Wintel. > >James Foster >james@foster.net > >-----Original Message----- >From: Mark Guzdial >To: squeak@cs.uiuc.edu >Date: Wednesday, November 25, 1998 1:15 PM >Subject: Squeak MIDI and Mac Serial Ports > > >>Does anyone know how to make Squeak let go of a Mac serial port after it >>uses it (say, for a MIDI interface)? On my G3 Powerbook, I have one lone >>serial port. After using it for MIDI-ing, I wanted to backup my PalmPilot, >>but it insisted that Squeak still had the serial port -- despite moving >>back to internal synthesizer, and despite quitting Squeak. I could backup >>after restart. >> >>It's not a huge deal (I don't backup that often :-), but if there's an easy >>solution (a Mac-centric thingie? A Squeak expression to evaluate?), I'd >>appreciate it. >> >>Thanks! >> Mark >> >>-------------------------- >>Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 >>(404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu >>http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html >> >> -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From stp at create.ucsb.edu Thu Nov 19 17:14:33 1998 From: stp at create.ucsb.edu (Stephen Travis Pope) Date: Sat Jan 28 04:07:10 2012 Subject: Interfaces ala Java for Squeak References: <199811190340.VAA11683@smtp2.mailsrvcs.net> Message-ID: <365451F9.2E3847B7@create.ucsb.edu> There have been several browser extensions in various Smalltalks over the years to use method protocols more formally, i.e., to extend their semantics beyond that of pure annotation. One simple approach is to add automatic delegation-generation, so that you can tell a class (e.g.,) to forward Magnitude>>comparison protocol to its "value" instance var. Another extension is to allow "protocol copy" so that, if you define a protocol named "printing" the browser copies a template "printOn:" method there. You can add a browser menu that lets the user choose among the common protocols for class or metaclass methods, enabling you to define a class and simply select a few standard protocols -- "gimme a class with these instVars and with 'initialize-release,' 'accessing' (auto-gen instVar accessors), 'displaying,' and 'printing' protocols (interfaces)." The third useful technique I've seen is static protocol-based testing, which complains (e.g.,) if there's a "printing" protocol but no "printOn:" method in it. All of these are simple tool hacks, not extensions to the class description object or the class definition method. -- stp _ Stephen Travis Pope _ stp@create.ucsb.edu, http://www.create.ucsb.edu/~stp/ From wdc at MIT.EDU Sat Nov 28 01:34:00 1998 From: wdc at MIT.EDU (Bill Cattey) Date: Sat Jan 28 04:07:26 2012 Subject: Unix sound bug not fixed in 2.3 beta. In-Reply-To: <199811271354.IAA17696@klaymen.rim.net> References: <199811271354.IAA17696@klaymen.rim.net> Message-ID: I am confused here. Is the reason you are distributing binaries that have the different definition of FAIL() that you expect a subsequent update to the 2.3 image to have the required "auto-disable-on-primitive-fail" very soon? At this point, I'd favor your distributing interim VM's with the work-around definition of FAIL so that people with UNIX hosts can actually run Squeak 2.3. (The cost is fetching another 150K image.) Am I failing to understand something here? Is it intentional that all UNIX versions of Squeak should randomly hang when the user trips over an object that happens to play a sound? Am I just using Squeak incorrectly? Two out of four systems that I'm running Squeak on are Linux, so I'd be happy to run with a sound-enabled beta. If the only way I'm gonna get a usable 2.3 squeak is to compile it myself, point me at sources that have the Linux sound patches too. -wdc From raab at isgnw.CS.Uni-Magdeburg.De Thu Nov 26 13:20:22 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:07:37 2012 Subject: Squeak 2.3 beta available In-Reply-To: from "Dan Ingalls" at Nov 25, 98 05:47:38 pm Message-ID: <199811261320.OAA22726@gaugin.cs.uni-magdeburg.de> Folks, The Win32 version of 2.3 beta is there at ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/free/squeak/win32/Squeak.zip http://isgwww.cs.uni-magdeburg.de/~raab/squeak/Squeak.zip [VM recompilers: The sources have not been updated yet - I'm still working on networking stuff]. Have fun, Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From danielv at netvision.net.il Sat Nov 7 10:32:25 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:07:38 2012 Subject: Anyone using alternative input devices with Squeak? Message-ID: <364421B9.EE681E17@netvision.net.il> I'm a keyboard type of person, and I generally don't like the mouse at all, but I hate switching between them even more. Using Smalltalk, and Squeak specifically, requires almost constant use of the mouse. Does anyone here have any experience with things like Twiddlers or such? The idea of a device that combines the mouse and keyboard into one device, not requiring the annoying context switch, sounds great in theory. Any "but"s? As it is now I simply use one hand for most typing, one hand constantly on the mouse, occaisonally abandoning the mouse when on a real coding roll. I'd be interested to hear how others play. From elcm at pacbell.net Fri Nov 6 04:42:31 1998 From: elcm at pacbell.net (Eliot & Linda) Date: Sat Jan 28 04:07:44 2012 Subject: some not-so-random questions References: <3640B79F.6FD5@pacbell.net> <364173C1.BC946E47@bbn.hp.com> Message-ID: <36427E37.7AA7@pacbell.net> Markus Kohler wrote: > At least on HP-UX (10.20) the man page says that sbrk can be used with > negative arguments > to shrink the process. Right, but if more than one allocator used sbrk the shrinking isn't a possibility because one may end up deallocating memory used by another allocator. e.g. malloc implementations are often built above sbrk. > But what's nice about mmap is that it so quickly allocates the memory > without ant paging. > What I not yet understand is how munmap can be used to shrink or grow > the memory. mmap allocates memory in empty ranges of the address space, typically high addresses below the stack. > Or do you never grow ? Previous to VisualWorks 2.5.2 oldSpace grew by on Unix, mallocing memory, and on Windows by reserving 512M bytes of address space and committing pages to it as required. > My understanding was that munmap releases the memory and one cannot get > back the data that > was stored in the released area. That's right; the pages associated with the mapped address-range are freed and the range removed from the address space. > > > We added the ability to shrink memory in VW 2.5.2, and its now being > > used in real server applications. > > Ah, I didn't know that. Was it advertised ? Not very well. It was in the release notes. We've done a better job with VW 3.0. _______________,,,^..^,,,_______________ Eliot Miranda, ParcPlace Aspect, ObjectShare From ohshima at is.titech.ac.jp Fri Nov 20 13:27:24 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:07:53 2012 Subject: Squeak running on Japanese PDA In-Reply-To: Your message of "Thu, 19 Nov 1998 16:46:57 -0800" References: <199811200046.TAA23847@tor-smtp2.netcom.ca> Message-ID: <19981120132724.17377.qmail@n0ud.is.titech.ac.jp> Peter Lount wrote: > Here is a picture of Squeak running on a Japanese PDA. The > picture was taken at OOPSLA '98. The Thumb must be mine:-) I've been looking forward to seeing this picture. Thank you. OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology From tod.blanchard at kanisa.com Thu Nov 19 17:52:26 1998 From: tod.blanchard at kanisa.com (Blanchard, Tod) Date: Sat Jan 28 04:07:54 2012 Subject: Interfaces ala Java for Squeak Message-ID: I believe a better/more useful mechanism than interfaces would be something akin to ObjectiveC's Categories and Protocals. Take a look. http://gemma.apple.com/techpubs/rhapsody/System/Documentation/Developer/Yell owBox/TasksAndConcepts/ObjectiveC/moreobjc.htm#663 > -----Original Message----- > From: Laurence Rozier [SMTP:lrozier@thepattern.com] > Sent: Thursday, November 19, 1998 6:00 AM > To: squeak@cs.uiuc.edu > Subject: Re: Interfaces ala Java for Squeak > > I agree that the benefits you list are desirable, but perhaps should be > implemented as Roles or better yet, class behaviors associated with a > prototype. Interfaces exist in part in Java because classes in Java are > not > real objects which makes it impossible to provide the capabilities you've > described. Interfaces can and in my view of the Java world, often do lead > to > layers of abstraction and infrastructure which tend to make the executing > system brittle and difficult to comprehend. It seems to me that Squeak, > especially from a Morphic perspective, is leading us towards more concrete > and flexible representations. While there are some valuable lessons to > learn > from Java, I think that Squeak should lead rather than follow in the case > of > interfaces. > > Regards, > Laurence > > GTE/staypufd wrote: > > > >What would > > >they buy us in Squeak? > > > > Some of what I thought they'd give us would be: > > > > 1) A very trace-able view of how we are using polymorphism. > > 2) A better understanding of how the system is partitioned. > > 3) They might also lead to a nice way of verifing that a ST package > that > > you are loading supports a complete interface. (We would need to > > implement something like SSL's in VW) > > 4) They are also kinda like a typing mechanism. Not for individual > > variables, but for groups of functions. Like the object is declaring I > > am one of these things that can do 'X". Where 'X' is the interface. > > 5) They are kind of like a 'contract' in the way I was thinging of > > implementing them. Because when you declared it in the class defintion, > > and then accepted it, the methods in that interface would then be > > auto-generated for you. Thus you would fullfill the 'Contract'. > > > > and finally, the one that Java really uses them for: > > 6) In addition to allowing multiple inheritence of interface. > > > > Any more thoughts? > > > > Sam Griffith Jr. > > staypufed@aol.com From workingstiff at usa.net Wed Nov 11 22:20:37 1998 From: workingstiff at usa.net (thomas k.) Date: Sat Jan 28 04:07:56 2012 Subject: update problem fixed! Message-ID: <19981111222038.29960.qmail@www0r.netaddress.usa.net> Hooray for me! I fixed my problem! I deleted the whole updated 2.2 folder, started with a fresh 2.2, updated it from the server, closed my net connection, _then_ saved the image. Now it works offline again. thomas k. workingstiff@usa.net socrates preferred death to not asking 'why?' ____________________________________________________________________ Get free e-mail and a permanent address at http://www.netaddress.com/?N=1 From dwighth at ipa.net Thu Nov 5 00:25:00 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:07:58 2012 Subject: PROPOSAL: create the squeak-help list References: <199811050011.QAA28222@jasper.he.net> Message-ID: <3640F05C.9EE014D4@ipa.net> russell.allen@firebirdmedia.com wrote: > > Hi > > Would there be some way of moving answers to questions on this new list over to > the Squeak Swiki so that people are not forced to trawl through thousands of > old emails to find that answer they are seeking? (Either something automated > or a rule such as "The person who asks the question updates the Swiki"?). > > That sort of rule could make the swiki into a self-updating FAQ... I like the "the person who asks the question updates the Swiki" rule -- it would have to be pasted into the Swiki by hand though. Perhaps we could have a special "append" form or something like the PARC Sparrow lightweight editable webpage to simplify the process. It would make a great resource for everyone. > Russell > > P.S. As as aside, 1 and 2 cent coins are still legal tender in Australia > (although not used), so $0.02 must be worth *something* ;-) Hmmm, what is your smallest value coin then? -- Dwight From Jarvisb at timken.com Thu Nov 12 13:40:25 1998 From: Jarvisb at timken.com (Jarvis, Robert P.) Date: Sat Jan 28 04:08:00 2012 Subject: timezones Message-ID: <602F235CF2ACD011977E00805F91637B017CDAF6@ctnhemail01.corp.timken.com> Hey, who needs a GPS? A few accelerometers, the odd gyrocompass or two, and voila! You've got a reasonably accurate dead reckoning system. :-) Bob Jarvis The Timken Company > -----Original Message----- > From: lex@cc.gatech.edu [SMTP:lex@cc.gatech.edu] > Sent: Wednesday, November 11, 1998 10:32 PM > To: Craig Latta > Subject: re: timezones > > Craig Latta wrote: > > > > Hasn't someone done a server on the Net that answers the delta > from GMT for any given latitude-longitude pair? :) That might be > useful. > > > > > I can see it now. > > Smalltalk lattitudeAndLongitude. > > Hords of people thinking, "if only Squeak had a driver for my GPS...." > > Lex From whisper at accessone.com Sun Nov 15 01:24:20 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:08:08 2012 Subject: Help building Squeak VM w/VC 5.0 In-Reply-To: <199811142053.VAA20401@gaugin.cs.uni-magdeburg.de> References: <3.0.1.32.19981113225834.01146690@accessone.com> Message-ID: <3.0.1.32.19981114172420.00940040@accessone.com> Yes, I was trying to link with the dlls instead of the libs - oops. The necessary lib files live in /devstudio/vc/lib. the wsock.lib is now called wsock32.lib The linker reported that the winmm.dll sas corrupted or unusable... which it was from it's perspective. Thanks for the help. Dave LeBlanc At 09:53 PM 11/14/98 +0100, you wrote: >> Followiwng the directions in the win32 source download, I had the following >> problem: >> The winmm.dll file is reported as "corrupt or unusable". > >Reported by whom?! > >> Then wsock.dll file does not exist. >> >> I guessed that the files needed where in c:\winnt\system32; is this correct?. > >Yes. > >> Are there newer instructions for building the VM on later versions of VC++? > >The above sounds to me as if you've tried to add winmm.dll and wsock.dll >to your linker settings. Please note that you have to add winmm.LIB and >wsock32.LIB to the linker settings. This should do the trick. > > Andreas >-- >Linear algebra is your friend - Trigonometry is your enemy. >+===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ >I Department of Simulation and Graphics Phone: +49 391 671 8065 I >I University of Magdeburg, Germany Fax: +49 391 671 1164 I >+=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ > > > From raab at isgnw.CS.Uni-Magdeburg.De Fri Nov 20 22:43:13 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:08:11 2012 Subject: How To Re-evaluate A Block? In-Reply-To: <1.5.4.32.19981120221849.006642a8@pop3.rconnect.com> from "R. A. Harmon" at Nov 20, 98 04:18:49 pm Message-ID: <199811202243.XAA14140@gaugin.cs.uni-magdeburg.de> Hi, > What is the Squeak code I need to do before I send value to the protected > block so that it can be re-evaluated? It's not so easy since you're in a handler response. What you need is to make sure that the retry response cleans up the caller stack up to the #value message sent to the block so that the block is not recursively executed. The way I did this in my little exception exercise was to use something like: ExceptionHandler>>executeBlock: doBlock marker: marker retryBlock := [^marker]. ^doBlock value. retryBlock is the block that's been executed on Exception>>retry and the #on:do: method was then actually done by the handler as some sort of [result := self executeBlock: doBlock marker: marker. result == marker] whileTrue. The non-local return cleans up the stack here so you don't send #value recursively to the block. It's a little tricky ;-) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From mklein at alumni.caltech.edu Thu Nov 5 02:09:29 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:08:26 2012 Subject: some not-so-random questions In-Reply-To: <36402AAF.6D0F2CB8@bbn.hp.com> Message-ID: > Yesterday I did a quick hack on Unix (HP-UX) to use mmap instead of > allocating memory > by malloc. It seems to work very well. I can start squeak with 300 MByte > and > it comes up very quickly. What's interesting is that "top" shows only > the Megabytes > actually used. So mmap seems to use a "lazy" mechanism on HP-UX. I heard that VW uses mmap with copy-on-write so that if you start the same image multiple times, you only pay the image memory cost once. (Is this true, Elliot?) I suppose that this could work for Squeak also. You would want to make sure that the byte sex got written out to the image the same as your platforms, otherwise you'd have to pay that cost too. -- MIke From sqrmax at cvtci.com.ar Sat Nov 14 21:08:36 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:08:35 2012 Subject: Multi-threading the interpreter Message-ID: <0ca8b3508210eb8MAIL2@cvtci.com.ar> Hi. >I may be wrong, but it appears that the Squeak interpreter is single >threaded. (At least that is the impression I get from looking at interp.c, >and observing the behaviour during a net-based "upgrade".) For those of us >interested in using Squeak in an IPC environment, this single thread >operation can be a problem. For example, if a Squeak process calls a >numerically intensive external process (say using a TCP/IP based >primitive), everything is "on hold" until that external process returns. >Any ideas on how to deal with that problem? A possibility would be to allow >asynchronous communication with primitives. Has that been done? There's Smalltalk MT... .... and it would be nice to take a look at hardware designed to perform multitasking, to copy the hardware design into the software design. The Amiga motherboard, for instance, is a well known and yet simple multitasking piece of hardware. Andres. From stan at stanheckman.com Wed Nov 11 04:06:32 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:08:37 2012 Subject: What class should include "5 kilograms"? In-Reply-To: lex@cc.gatech.edu's message of "Tue, 10 Nov 1998 18:05:56 -0500 (EST)" Message-ID: <87u306j2k7.fsf@streamer.msfc.nasa.gov> "3.4 centimeters" and "9.8 meters per second squared" want to know where in the class hierarchy they can live. These two new inhabitants have almost the same algebra as polynomials, including addition, a zero, multiplication, and a one. Magnitude says in her class comment that she includes "linear" things. So 9.8 meters per second squared suggests they live there. 3.4 centimeters objects that magnitudes respond to the comparison messages (<,<=,>,>=). He says they cannot be Magnitudes, because "3.4 centimeters < 9.8 meters per second squared" makes no sense. 9.8 meters replies that both Time and Number are Magnitudes, and comparisons such as "2 Seconds < 3" make no sense, either. As long as 3.4 centimeters is willing to compare himself to 1.4 inches, no one will complain that he refuses to compare himself to 2 grams. This argument convinced 3.4 centimeters, so they moved in. Now 3.4 centimeters is feeling deceived by Magnitude's advertisement that she specializes in linear things. Magnitude defines only messages related to ordering, not messages relating to addition or multiplication. Indeed, neither date nor time supports any sort of multiplication whatsoever. Still, Magnitude is the best home they have found. Anyone have any better ideas? -- Stan From raab at isgnw.CS.Uni-Magdeburg.De Sat Nov 14 20:53:30 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:08:42 2012 Subject: Help building Squeak VM w/VC 5.0 In-Reply-To: <3.0.1.32.19981113225834.01146690@accessone.com> from "David LeBlanc" at Nov 13, 98 10:58:34 pm Message-ID: <199811142053.VAA20401@gaugin.cs.uni-magdeburg.de> > Followiwng the directions in the win32 source download, I had the following > problem: > The winmm.dll file is reported as "corrupt or unusable". Reported by whom?! > Then wsock.dll file does not exist. > > I guessed that the files needed where in c:\winnt\system32; is this correct?. Yes. > Are there newer instructions for building the VM on later versions of VC++? The above sounds to me as if you've tried to add winmm.dll and wsock.dll to your linker settings. Please note that you have to add winmm.LIB and wsock32.LIB to the linker settings. This should do the trick. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From patrickl at servio.gemstone.com Mon Nov 16 18:39:00 1998 From: patrickl at servio.gemstone.com (Patrick Logan) Date: Sat Jan 28 04:08:48 2012 Subject: Multi-threading the interpreter In-Reply-To: References: <19981116151457.23273.qmail@relay1.teleport.com> <365050CF.B9D8BC5C@sdrc.com> Message-ID: Gemstone's RC classes might be a good thing to study in this regard... The RC (Reduced Conflict) collections in Gemstone Smalltalk are *not* thread safe. They assume a consistent view within a Smalltalk image, and the Gemstone "image" is not multi-threaded (well, it's not asynchronously pre-emptive). What is an RC class? Each specific RC class defines special conditions under which concurrent transactions to the persistent storage will succeed even though there may be lower-level "write/write" conflicts. For example, concurrent transactions adding objects to the same Bag each "write" the Bag, but should succeed WRT Bag semantics. Also java has a bit to offer as well. (and by extension, Gemstone/J would be worth looking at)... Well, Java has the "synchronized" keyword for monitoring access to shared data. Applications sometimes use other mechanisms such as mutexes because of the limitations of monitors. Also, isn't the whole single-threaded vs multi-threaded issue parallel to java's green vs native threads? Part of the issue is thread-safe methods. A method that is not aware of other threads may stomp all over the same data as the other thread. -- Patrick Logan mailto:patrickl@gemstone.com Voice 503-533-3365 Fax 503-629-8556 Gemstone Systems, Inc http://www.gemstone.com From gera at core-sdi.com Mon Nov 23 19:03:37 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:08:49 2012 Subject: System Windows problems Message-ID: <3659B189.1CA3C561@core-sdi.com> While condig latest version of MorphicWrappers (soon available), we found a problem: After setting allowSysWindowsEmbedding in Preferences, when you drag an opened (not collapsed) system windows to the TrashCan, not only two error pops up, but the StackTrace is dumped. The problems are in SystemWindows' #passivate and #activate methods, sorry for only posting the problem and not the solution... Problematic Bye! Richie++ From dwighth at ipa.net Tue Nov 10 17:27:05 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:08:53 2012 Subject: Results of proposal to create squeak-help list... References: <199811100617.BAA28530@max.cs.kzoo.edu.> Message-ID: <36487769.3E882046@ipa.net> Joshua Johnson Marker wrote: > > > In short, there does not appear to be the need yet to go so far as > > creating a separate squeak-help list. > > Seeing how easy they are to create, why not? I don't feel > strongly, but I'm surprised you came to that decision. Personally, I > love the 'bazzar' atmosphere and credit a lot of my education to > similar settings, though. I could go either way. I think the squeak-help list could be very good, and I agree with the benefits of less structured knowledge acquisition -- but if only a handful of people are interested right now, it could get rather lonesome in the bazaar. Thus my conclusion. I think it would be better (for now) to create a corner in the big bazaar of the Squeak list using subject line prefixes. > > I would however like to see such queries marked out clearly in the list > > -- perhaps we could have a subject line prefix: one respondent foresaw > > > confirmation with no further info - not even unsubscribe info. > > I could write up a better intro, if you'd like. I like the > idea of [sqh], etc, too. Sure, that would be good. Now if only the prefix notion will catch on. -- Dwight From dwighth at ipa.net Sun Nov 29 03:30:02 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:08:53 2012 Subject: Newbie questions References: Message-ID: <3660BFBA.A4BE9A23@ipa.net> Hi Stan, Go to the getting started tutorial at: http://kaka.cosc.canterbury.ac.nz/~wolfgang/cosc205/smalltalk1.html and then: http://www.phaidros.com/DIGITALIS/englisch/sqk/sqk00002.htm which should get you well on the way. Squeak is a rapidly changing and evolving system, so you can expect to have to wade in and figure some things out, but be sure to ask questions too. Also make sure you check out the Squeak Swiki: http://minnow.cc.gatech.edu/squeak.1 and the Squeak Directory: http://directory.mozilla.org/Computers/Programming_Languages/Squeak/ -- Dwight Stanley Wilson wrote: > > I got Squeak 2.2 loaded on my windows 95 machine. It comes up with the > multi-windows, etc. > > My background is assemble language. write code, compilie, run "And now for something completely different" -- Monty Python's Flying Circus > I havn't a clue on how to start. i.e. how do I use squeak to to get on the > web as a browser ? how do I do anything ? the readme doesn't address > simple questions. :-) Help ! can anyone point me in the right > direction ? > > Thanks, Stan > microres@crl.com From josch at isgnw.CS.Uni-Magdeburg.De Mon Nov 30 08:09:04 1998 From: josch at isgnw.CS.Uni-Magdeburg.De (Jochen Schneider) Date: Sat Jan 28 04:08:54 2012 Subject: Scamper history in MVC Message-ID: Hi, when you run the Scamber web browser in MVC, the history function doesn't work for me in MVC. It seems to be because the history menue is created with reference to the morphic "World", which is nil in MVC (even for a MVC window). A quick'n dirty hack which I attached below is to get the "primaryHand" from one of the dependents of Scamper, which are morphic most of the time (which could be checked for). That doesn't look right, because a model is making assumptions about its views. Any other suggestions? Jochen '>From Squeak 2.3 beta of Nov 25, 1998 on 30 November 1998 at 08:56:34'! !Scamper methodsFor: 'menus' stamp: 'js 11/30/1998 08:42'! displayHistory "let the user selecet a previous page to view" | menu | menu _ MenuMorph entitled: 'Recent URLs'. menu defaultTarget: self. menu addStayUpItem. menu addLine. recentDocuments reverseDo: [:doc | menu add: doc url toText selector: #displayDocument: argument: doc]. menu popUpAt: Sensor mousePoint forHand: self dependents first primaryHand! ! From mwai at ibm.net Tue Nov 17 07:44:56 1998 From: mwai at ibm.net (Mark Wai) Date: Sat Jan 28 04:09:00 2012 Subject: [sqvm] squeak vm startup (interpreter?) Message-ID: <1.5.4.32.19981117074456.0067b8d0@pop1.ibm.net> Dan Ingalls wrote: >-snipped- > > (InterpreterSimulator new openOn: 'mini.image') test > >-snipped- I've tried 2.2 (both the SqueakVM and Jitter) under Windows but it didn't work. It complains an improper store in the Bitmap object (primitive 61). But the problem I believe started in >>initializeInterpreter:. Should the bytesToShift contains a negative value? I have also tried Tim's patch and I got the same result. I will poke around more tomorrow morning. Thanks. -- Mark Wai Wator Innovision mailto: mwai@ibm.net or:[ mwai@frontiersa.com ] __ From alank at wdi.disney.com Sat Nov 7 16:26:17 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:09:04 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: References: Message-ID: Carl -- I don't know where the Newton OS 2.0 recognizer came from (or anything about it). I don't think anything makes GRAIL unique except that it was the first really good and comprehensive all-pen-based GUI. RAND invented the tablet (in 1964) in order to do such an interface. The recognizer was done in '66 by Gabe Groner, and fit into 2k words of the single user 360/44 that was used as the host machine. Their basic notion was that whatever a UI does, it should do it essentially perfectly, because it is so jarring to have something that is supposed to feel like a transparent extension of one's body constantly stop the action with errors. So they opted for a recognizer that the user would have to learn -- and eventually decided to try to do everything with single strokes for speed. The result was really great, and the totality of human factors was better than grafitti on the palm pilot. The one I did that is now in Squeak comes from a long line of recognizers that go all the way back to GRAIL. It is only a page of Squeak code, and you can see that the GRAIL approach was quite elegant and simple. Cheers, Alan ------- At 3:19 PM -0000 11/7/98, Carl E Gundel wrote: >On Sat, 7 Nov 1998, Alan Kay wrote: >> In the early Dynabook design, Engelbart's idea was adapted to a pen-based >> interface. RAND had done GRAIL, a really great pen-based system with a >> recognizer similar in spirit to and better than Grafitti. We realized from >> experience with Engelbart that even a perfect recognizer (which GRAIL >> almost was) was still too slow for some interactions, so I put a keyboard >> on the Dynabook model. Again the scheme was to navigate, give commands, fix >> typos, and do short text inputs with the pen, and then to switch to the >> keyboard for intensive text entry. >> >> This scheme was argued for the Newton and rejected (not on logical grounds). > >Alan, > >What makes GRAIL unique? I understand that the Newton OS 2.0 does come >with a character by character recognizer. Do you know where this came >from. I read someplace on the web that is was from Xerox. > >Carl >------------------------------------------------------------------ > Carl Gundel carlg@world.std.com Shoptalk Systems 508-872-5315 > author of Liberty BASIC, a 1996 PC Magazine Awards Finalist! > http://world.std.com/~carlg/basic.html >------------------------------------------------------------------ From bobsh at innw.net Tue Nov 3 19:37:20 1998 From: bobsh at innw.net (Bob Shafer) Date: Sat Jan 28 04:09:08 2012 Subject: XP test cases and message semantics Message-ID: [ Travis mentions, in c.l.s, that XP test cases are written *before* the code is, and I'd rather reply here, in ramble-mode, with.... ] More importantly, the study of program correctness proofs has led to the discovery and elucidation of methods for developing programs. Basically, one attempts to develop a program and its proof hand-in-hand, with the proof ideas leading the way! -David Gries, in "The Science of Programming" (1981) Extreme Programming's test cases are "proof ideas", in effect. These "proof ideas" Gries is discussing evolved. A program is correct relative to its specification. A program is said, then, to satisfy its specification: A program p satisfies its specification s, if any client asking for s would be happy using p. (Sound like Eiffel?) A program can itself be seen as a specification: a program is a specification with no "non-algorithmic" components. This induces a notion of refinement between specifications, with the ultimate goal of refinement being to start with a (formal) specification and, through a series of small refinements, remove the non-algorithmic parts, resulting in a program. Calculi and methods of program refinement were developed. It seems to me that a Smalltalk message is a "non-algorithmic" specification, in the sense given above. A method satisfies/refines its message, within the context of the receiver. Now, a message is not exactly formal. Rather, a message is fuzzy-formal, to coin a phrase. It corresponds to a fuzzy concept, not a formal, concrete one. But that's a good thing, because that's what we think with: fuzzy concepts. The fuzzy is why Smalltalk is so cool. Isn't it? However, there are good reasons to constrain the fuzzy. The IRS is a good reason, in the context of a payroll system. XP test cases constrain the fuzzy, where it needs constraints, and nowhere else. Protocols constrain the fuzzy (in a fuzzy way). Typing constrains the fuzzy (to the point of throttling it, I'm guessing). One very neat thing about the fuzzy nature of messages: they are like natural language words in that while they don't necessarily have a precise meaning, they do have a fuzzy, shared meaning. Smalltalk: The programming language of common sense? From dan at gui.com Sun Nov 15 16:46:46 1998 From: dan at gui.com (Dan Shafer) Date: Sat Jan 28 04:09:15 2012 Subject: XML: Miracle drug or communist plot? (was Re: Porting to VW) References: Message-ID: <364F0569.607AA270@gui.com> Check out Dave Winer's site (http://www.scripting.com). He's making extensive use of XML and doing more of it every day. He has proposed an XML-based extension to HTML document headers that would provide a scriptable way to let search engines know which pages at a site had been modified since they last crawled it, for example. The kind of use to which Mike Anderson proposed XML be put in the Squeak world is exactly on the mark as far as I'm concerned. "Michael S. Klein" wrote: > > [Nice, but optimistic XML scenario sniped] > > During my cursory delve into XML, I went out on the web to try and find a > single XML resource. I did not succeed. (By XML resource, I mean some > actual usefull information... not some toy example, and I certainly don't > mean information about XML. > > My cursory conclusion: In most cases, people don't want to give up > control over there own data. I can see limited contexts in which data > will be published in XML.... FIPS, for instance. But for the most part, > I expect that the public part of XML will be in a "write-only" format. > > Just look what happened to HTML. It went from a markup language to layout. > That is to say, most of the people writing HTML want to try to use it as > a layout language, not a markup language, and most of the popular tools > (browsers and editors) seem to encourage this. > > Truly, here's hoping that I'm wrong, > > Mike Klein > > mklein@alumni.caltech.edu -- Dan Shafer, Looking at Technology from Every Angle Home Page: http://www.gui.com - Email: dan@gui.com There is nothing more powerful than an idea whose time has come. From sma at kiel.netsurf.de Sat Nov 21 18:41:38 1998 From: sma at kiel.netsurf.de (Stefan Matthias Aust) Date: Sat Jan 28 04:09:17 2012 Subject: C code for Block context In-Reply-To: Message-ID: <3.0.5.32.19981121194138.008adab0@kiel.netsurf.de> >How does the Squeak Smalltalk to C translation handle Smalltalk code that >contains Blcok context? It was my impression that it is difficult to >program Block context in C. Actually, it cannot translate real blocks. The translator only translates a subset of Smalltalk, just enough to compile the interpreter. It does the usual optimization for ifTrue: and whileTrue: blocks, but can't handle full block closures. bye -- Stefan Matthias Aust // Are you ready to discover the twilight zone? From scottw at wdi.disney.com Sun Nov 15 06:17:00 1998 From: scottw at wdi.disney.com (SWallace) Date: Sat Jan 28 04:09:25 2012 Subject: Question about update from server. In-Reply-To: <3.0.1.32.19981114173756.00942cd0@accessone.com> Message-ID: At 5:37 PM -0800 11/14/98, David LeBlanc wrote: >Hi; >I tried the update from server functionality, and it seems to have worked. >I'm wondering if all the .cs and .st files left in the Squeak dir are >needed after saving the image? David, This is a one-time transitional glitch that happens only when you do an update-from-server that brings in update #365; in this case, all updates from that one through the last one loaded at the same time as #365 are duplicated onto your local disk. This glitch does not happen a second time -- though if you *want* local copies of the update files to be written to your local disk, you can proactively set the Preference #updateSavesFile to true. You can freely discard those .cs and .st files. -- Scott From DanI at wdi.disney.com Mon Nov 9 03:49:26 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:09:38 2012 Subject: with:collect: on OrderedCollection In-Reply-To: <87k915lf4r.fsf_-_@streamer.msfc.nasa.gov> References: Daniel Vainsencher's message of "Mon, 09 Nov 1998 00:16:18 +0200" Message-ID: Stan - >a := OrderedCollection with: 1 with: 2. >b := OrderedCollection with: 3 with: 4. >a with: b collect: [:x :y | x + y] > >produces a walkback, because with:collect: creates a new, empty OrderedCollection >to hold the answer, then tries to at:put: the answers there. But an empty ordered >collection has no place at which to put them. :-) You're absolutely right. Travis Griggs has a fix in his Math For Engineers goodies and I have incorporated it in the latest Squeak updates (specifically ihn update #386). Therefore it will be fixed in 2.3. Thanks for the report. - Dan From markus_kohler at bbn.hp.com Fri Nov 6 08:17:01 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:09:48 2012 Subject: Bot-Kit for Dolphin Smalltalk and LEGO MindStorms Message-ID: <3642B07D.321DECB1@bbn.hp.com> This is really cool ! http://www.users.globalnet.co.uk/~objarts/Bower/Bot-Kit/Bot-KitTitle.htm Anyone to port it to Squeak ? Markus From Ian.Piumarta at inria.fr Wed Nov 4 16:16:10 1998 From: Ian.Piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 04:09:58 2012 Subject: Regenerating the VM Message-ID: <13888.32202.878254.161563@tif.inria.fr> > Not unless you've changed it manually. The sq.h file simply says > > #define ioLowResMSecs() clock() Err, pas du tout d'accord. Mine (and the one on alix) says this: int ioShowDisplay( int dispBitsIndex, int width, int height, int depth, int affectedL, int affectedR, int affectedT, int affectedB); #ifdef USE_CLOCK_MSECS /* optional millisecond clock macro */ # define ioMSecs() ((1000 * clock()) / CLOCKS_PER_SEC) /* cheap clock with coarse resolution (about 17 msecs on Mac) */ # define ioLowResMSecs() ((1000 * clock()) / CLOCKS_PER_SEC) #else /* clock() returns uSecs on Unix, so the above definition wraps after only 2 seconds because of the prescale by 1000. This is clearly unacceptable. (Who invented this ioLowResNonSense anyway?) */ # define ioLowResMSecs ioMSecs #endif /* image file and VM path names */ extern char imageName[]; If yours is any different then life itself is in contempt of court for failing to be either beautiful or true. Salut, Ian From rlpcon at vermontel.net Sat Nov 14 22:42:05 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:10:01 2012 Subject: Multi-threading the interpreter In-Reply-To: <0ca8b3508210eb8MAIL2@cvtci.com.ar> Message-ID: At 6:08 PM -0300 11/14/98, sqrmax@cvtci.com.ar wrote: >There's Smalltalk MT... Is MT "public domain"? Is there a web site? > >... and it would be nice to take a look at hardware designed to perform >multitasking, to copy the hardware design into the software design. The Amiga >motherboard, for instance, is a well known and yet simple multitasking >piece of >hardware. For a variety of reasons, our current interest is a multi-threaded port to BeOS --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From aleReimondo at sugarweb.com Sun Nov 22 02:12:05 1998 From: aleReimondo at sugarweb.com (Alejandro F. Reimondo) Date: Sat Jan 28 04:10:23 2012 Subject: Hyperbolic Tree Class Browser Message-ID: <01BE15A4.5DA707C0@maq065b.advance.com.ar> I've tried to enter in the Louvre demo, it takes 10 minutes to load the Java applet and my IExprorer crashed closing all the opened browsers windows. Are there any demonstration not written in Java ? thanks. Ale. ---------- De: Jerry Bell[SMTP:jdbell@fareselaw.com] Enviado: S?bado 21 de Noviembre de 1998 19:22 Para: squeak@cs.uiuc.edu Asunto: Hyperbolic Tree Class Browser Has anyone looked at hyperbolic trees? I find them hard to explain, but very easy to grasp once you play with them. Try: http://www.inxight.com/Content/7.html The Library of Congress demo is especially nice. I think a hyperbolic tree would make a great UI for a class browser, maybe as a replacement for the left-most pane. It would definately help a new user like myself get a feel for which classes belong where in the hierarchy. Unfortunately I don't know if we could put one in Squeak without permission from Inxight. I know they hold license to their implementation of hyperbolic trees, but I don't know if they somehow own the idea also. I've never understood that sort of thing very well. They are a Xerox company, by the way. It's another neat idea from PARC. Jerry Bell jdbell@fareselaw.com -----Original Message----- From: Stefan Matthias Aust [mailto:sma@kiel.netsurf.de] Sent: Saturday, November 21, 1998 12:42 PM To: squeak@cs.uiuc.edu Subject: Re: C code for Block context >How does the Squeak Smalltalk to C translation handle Smalltalk code that >contains Blcok context? It was my impression that it is difficult to >program Block context in C. Actually, it cannot translate real blocks. The translator only translates a subset of Smalltalk, just enough to compile the interpreter. It does the usual optimization for ifTrue: and whileTrue: blocks, but can't handle full block closures. bye -- Stefan Matthias Aust // Are you ready to discover the twilight zone? From Craig.Latta at NetJam.ORG Wed Nov 11 02:40:00 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:10:23 2012 Subject: timezones In-Reply-To: References: <602F235CF2ACD011977E00805F91637B017CDAE5@ctnhemail01.corp.timken.com> Message-ID: <199811110229.SAA04139@interval.interval.com> Hasn't someone done a server on the Net that answers the delta from GMT for any given latitude-longitude pair? :) That might be useful. -C -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From mklein at alumni.caltech.edu Wed Nov 11 05:07:39 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:10:31 2012 Subject: What class should include "5 kilograms"? In-Reply-To: Message-ID: I would design something that binds together tensors and units. I.e. 4 meters per second is a scaler (rank 0 tensor) A force vector (rank 1 tensor) could have the units of pounds. Math is one of those areas where the static single inheritence model of Smalltalk is not so hot. Double dispatching, coersion, adaptation, etc. are mechanisms to do something else without being totally ad-hoc. For an interesting read, see Structure & Interpretation of Computer Programs, Chapter 2. Of particular interest is footnote 52 on page 200. (it is in a section named 'Inadequacies of hierarchies' on the statement "Dealing with large numbers of interrelated types while still preserving modularity in the design of large systems is very difficult, and is an area of much research." Math is hard, Mike Klein From raab at isgnw.CS.Uni-Magdeburg.De Sat Nov 7 18:51:43 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:10:32 2012 Subject: Recompiling the VM with finalization In-Reply-To: <364487B9.3C90BBC2@netvision.net.il> from "Daniel Vainsencher" at Nov 7, 98 07:47:38 pm Message-ID: <199811071851.TAA10375@monet.cs.uni-magdeburg.de> > I still can't manage it. > Now I get - > > Linking... > Creating library Release/SqVM.lib and object Release/SqVM.exp > sqWin32ExternalPrims.obj : error LNK2001: unresolved external symbol > _sqGetInterpreterProxy [...] > Another thing - when first trying to compile interp.c, it ignores the file. Okay, this means you've been using the interpreter sources from the 2.2 distribution. I was assuming you know how to generate a new VM from scratch ;-) So here's how this works: * Write out the Mac support code, e.g., execute InterpreterSupportCode writeMacSourceFiles * Convert the files from CR to either LF or CRLF line endings (you might use CrLfFileStream for this) * Create a project from all of the sqXYZ.c files from the above and add the appropriate Win32 support files (e.g., the ones starting with sqWin32*) * Compile. * Link. * Run. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From russell.allen at firebirdmedia.com Mon Nov 30 00:50:04 1998 From: russell.allen at firebirdmedia.com (russell.allen@firebirdmedia.com) Date: Sat Jan 28 04:10:41 2012 Subject: Squeak licensing questions [longish] Message-ID: <199811300050.QAA25954@jasper.he.net> On Sat, 28 Nov 1998 20:35:27 -0500: Chris Reuter wrote: [cut] >> As an example, what about adding copyright information to classes? Each >> class could have a date, name and a licence number. Every distribution of >> the Squeak core classes could have a document which provides a list of >> licencing options, from GPL to fully commercial. Tools could be provided >> to browse licences etc. > > This smacks of trying to solve a social problem with software. Isn't this what software's for? ;-) But seriously, fixing Squeak might be must simpler and easier then fixing society! > I think a better idea might just be to do what many of the perl folks > do--distribute their modules under the same license as perl itself. > It makes this really easy because everyone knows what the terms of the > license are. > > My suggestion is that that the powers that be consider either > rewriting the squeak license to make it simpler and easier for others > to adopt or to switch to one of the better-known licenses (BSD, > Artistic, GPL with extensions[1]). This would then be the preferred > license for addons. Why restrict ourselves to just one license? Can't Artistic packages live together with commercial packages? Also I am unsure as to what extent Squeak Central can change the licence - see below. > All I would need to do when uploading a goodie is to add the comment, > "released under the XXX license" and everyone who uses it will know > what I mean and won't come under any additional restrictions. I agree - this is like what I was trying to suggest, only with a choice of what licence to put in ?XXX'. [CUT] > >It has been said "Don't worry. Apple has already forgot about it..." in > >terms of the license and its enforcement. However that probably won't > >cut it with IP lawyers of a major corporation. These are sorts of > >questions such a lawyer might ask, and it would be nice to have ready > >answers available for anyone contemplating getting Squeak into their > >organization. > > And, if the day comes that some GiantEvilCorporation [tm] sees Squeak > as a threat to its proprietary products, a flaw in the license could > prove disastrous. Indeed. The licence which is shown at http://squeak.cs.uiuc.edu.au/license.html is a licence given to use/modify/distribute the orginal Apple software - that is the version which Squeak was at when the Squeak team left for Disney (which was that?). (On my reading, before they left, they were adding to the core classes under their employment contracts; now they are creating a derivate work under the license). The license for the last Apple version (apart from disclaimers of liability etc) gave some rights eg: (1) Modified versions of the system could be created, and distributed *provided* that they were distributed under a licence which protected Apple at least as much as the original license, and (2) If the modified version contained "modification, overwrites, replacements, deletions, additions or ports to new platforms of (1) the methods of existing class objects or their existing relationships [?], or (2) any part of the virtual machine" then the modifications etc must be made publically available for free. (3) If you are selling a modified version *you can't include the orginal Apple fonts*. If you are using/adapting a recent version of Squeak then you are *not* using the orginal software, but a modified version (which has been modified by Squeak Central). On my reading, this means that Squeak Central can create a license for the new versions of Squeak, provided that the license: (1) protects Apple's rights/liabilities (2) includes the clause saying that modifications of the orginal classes/VM must be published for free. Because the newer (modified) versions of Squeak have been released under the original Apple licence, I don't know whether the classes which are part of the current distribution, but not part of the Apple distribution, are considered to be "core" classes, so that modifications have to be published. However, these classes have several authors (eg Celeste, File Contents Browser etc), so if they have been released under a "Publish if you Modify" agreement then that license must have been given by the author, not Apple. Yes, this is messy. I think we should clean it up before Squeak starts being pored over by corporate lawyers in Armani suits :-). The Gurus at Squeak Central probably have a better idea of this then I do - in particular Disney Corp may have ideas of their own. Comments anyone? Russell From DanI at wdi.disney.com Mon Nov 30 07:06:11 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:10:51 2012 Subject: Image size / PS: alpha-blend In-Reply-To: <0c3864128061eb8MAIL2@cvtci.com.ar> Message-ID: Andres - >I'm still using Squeak 2.0. I was doing something with function plotters >and I wanted to make alpha-blending while drawing. My video card is set up at a >bitdepth of 16, and so was the image. But I had to make the image bitdepth >32 for alpha blending to work. Correspondingly, the image size went up by over >4mb. But the video card was still set up at a bitdepth of 16, so bitmap >bitdepth crunching was being performed somewhere. After I finished the thing, and >noticing that display speed was much slower (maybe due to such bitdepth >crunching), I closed the morph worlds and set the display depth back to 16. But >the image never got smaller, and the screen updating did not recover its >original speed. I tried a bitdepth of 8, but the image didn't recover its original >size. > >Where should I take a look to see what's going on? Try this... Paragraph allInstancesDo: [:p | (p destinationForm class == DisplayScreen and: [p destinationForm ~~ Display]) ifTrue: [p destinationForm: nil]] I discovered a couple of months ago that the label paragraphs of some MVC windows (mainly project views after relabelling) can hold onto the global display object. Since this changes from time to time (as, for instance, when you change display depth, change projects, etc), you can end up with lots of (I had 7) extra instances of DisplayScreen. At 1.2MB a pop, this gets expensive (plus, they don't get compressed). I believe I fixed this in 2.2. - Dan P.S. Have you looked at the alpha-blend drawing demos in Squeak? They actually provide a sliding 32-bit buffer with alpha blending and anti-aliasing for sketching. The screen depth can even be 8 bits and they work. Try... Display restoreAfter: [BitBlt alphaBlendDemo] and... Display restoreAfter: [BitBlt antiAliasDemo] Each of these puts something on the screen and then goes into scribble mode until you hit option-click. Also, note that Squeak 2.2 introduced a new bitBlt mode supporting copyBits of any source form at a given alpha value into EITHER 16 or 32 bits, so you can do some alpha blend experiments now without having to go to 32 bits. Try the example comments in BitBlt>>copyBits: sourceForm at: destOrigin translucent: factor and BitBlt>>paintBits: sourceForm at: destOrigin translucent: factor. Note that your display must be in 16 or 32 bits for these to work. From tgriggs at keyww.com Thu Nov 12 16:34:57 1998 From: tgriggs at keyww.com (Travis Griggs) Date: Sat Jan 28 04:11:05 2012 Subject: What class should include "5 kilograms"? References: <87zp9ylycl.fsf@streamer.msfc.nasa.gov> Message-ID: <364B0E31.6ACE8C0D@keyww.com> stan@stanheckman.com wrote: > Here's what I found awkward: The coercion method has us cast numbers up > to a more general number type, then do an operation between two > objects of the general type. But in the course of that operation, I > found that I sometimes had to check to see whether one of the objects > was "really" of the less general type. (We don't want to raise > anything to the power "3 meters".) So my first iteration of the code > was turning Floats into DimensionedNumbers with no dimensions, then, > because I could no longer tell from their type, asking them to iterate > over their dimensions and check that they were all zero. Yuck. > > The current version (http://stanheckman.com/a/98h/glimpsedotter) uses > a helper class DimensionlessNumber that lives at the same level of the > coercion hierarchy and knows how to do arithmetic with dimensioned > numbers. This is not so awful, but not as nice a fit with the coercion > scheme as Integer, Fraction, and Float manage. Stan, Having done this before, and being a little ways out before I finish porting an older units package to Squeak, let me put the following twist on things. Normal numbers are also dimensioned numbers (or Measured Values as I will call them). In the domain of measurement mathematics, if you divide 4 in by 4 in, you get 1 in/in. What the hell kind of unit is in/in?!?!? Well, it's a valid, non-reduced unit. It does happen to reduce to the "unitless" unit. But the unitless unit is just as well expressed with kg*m3/kg*m3, which is quite united. The VERY FIRST unit type you define should be the unitless one (unit unity :) ). Now if you need a Number to behave like a Measured Value, just make it do so by sending unit to it. This allows your number object to masquerade as an MV without having to coerce to a different object type. -- Travis Griggs Key Technology tgriggs@keyww.com Member, Fraven Skreiggs Software Collective - C for Sinking - Java for Drinking - Smalltalk for Thinking From DanI at wdi.disney.com Wed Nov 25 22:15:58 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:11:23 2012 Subject: squeak2.2 buglet in SequenceableCollection In-Reply-To: Message-ID: Doug - >I think I have come across a small possible bug in 2.2. > >In SequenceableCollection>>asStringWithCr... > >A possible simple solution... Thanks for the fix. It will go into 2.3. - Dan From raab at isgnw.CS.Uni-Magdeburg.De Wed Nov 4 12:25:52 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:11:34 2012 Subject: But what about Flash? (Re: Toward the next release...) In-Reply-To: <363FDA00.9F58860@ipa.net> from "Dwight Hughes" at Nov 3, 98 10:37:20 pm Message-ID: <199811041225.NAA23289@monet.cs.uni-magdeburg.de> Dwight, > One thing though -- Macromedia is hardly giving away the candy store in > their Flash open file format package. The swfparse code is a nice start, > but it's hardly a reference implementation is it? You're right - the Open-SWF documentation has a lot of inaccurate statements and the parse code provided doesn't even work as expected. Fortunately, there are couple of people working on similar stuff in the (graphics) community and I was able to share my insights with them and so figure out how to deal with some of the more strange descriptions from the spec. > You still get to implement all the primitives yourself. Luckily, this is not too hard. The technology that's needed for this dates back at least to the 80's (e.g., use a simple scan-line renderer with an active edge table approach, couple of lines and quadratic bezier segments, a little forward-differencing here and there, and away you go). But today we have the processing power to do this with neat anti-aliasing at 10 frames per second ;-) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From dwighth at ipa.net Fri Nov 13 18:09:55 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:11:34 2012 Subject: XML [was Re: Porting to VW] References: <364C1EFC.7E6A57DB@ix.netcom.com> Message-ID: <364C75F3.23168D05@ipa.net> Mike Anderson wrote: > > > I'm new to the list so please forgive any reopening of old woundsbut has an XML-based > source externalization been discussed? > > ...Mike It has been mentioned 2 or 3 times but there hasn't been any real discussion about it. Intelligent Documents, Inc has released some free XML utilities for Smalltalk: http://www.intelligentdoc.com/sxpdom.htm if you're interested. -- Dwight From stp at create.ucsb.edu Mon Nov 30 23:27:58 1998 From: stp at create.ucsb.edu (Stephen Travis Pope) Date: Sat Jan 28 04:11:38 2012 Subject: Squeaky Sounds on a G3 Powerbook References: Message-ID: <366329FE.82ECEA6F@create.ucsb.edu> Mark Guzdial wrote: > > ... > > - There doesn't seem to be a way to "close" a G3 Powerbook modem/printer > port, so rebooting is the only way to switch between apps (even AppleTalk) > that don't close the port well. There's a good freeware app/conreol panel called MIDI Mangler that frees serial ports (and can zap PRAM as well). I'm confused by a couple of the statements on your SWiki page. 1) OMS should work fine on a G3 PowerBook (I use one all the time). It's really the only way to go for serious MIDI. Getting OMS to recognize your synthesizer should be easy; what kind of MIDI interface do you have? 2) Please send me email about the startup problems you've had with Siren. I'm preparing a new release of the "polished" Siren for 2.3. -- stp _ Stephen Travis Pope _ stp@create.ucsb.edu, http://www.create.ucsb.edu/~stp/ From arning at charm.net Fri Nov 6 00:36:03 1998 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 04:11:46 2012 Subject: Morphic>>step Message-ID: <199811060036.TAA10695@fellspt.charm.net> On Thu, 05 Nov 1998 20:20:28 -0300 Gerardo Richarte wrote: > I can understand why this happens, and that it?s perfectly normal >(if there is such an error), but I?d like to have a way of stopping >this, or better, to make the morph stop stepping if there is an error in >its #step method. > Any idea out there? Richie, One solution is to alter the #step (or #drawOn: or whatever) to something like: step inProgress ifTrue: [^self] inProgress _ true. .... do real stepping stuff here inProgress _ false. where inProgress is an instance variable. This way, if you get a walkback in a Morph's #step (or whatever) method and you do not manage to proceed through it, the Morph will not try the same (presumably bad) thing again. Cheers, Bob From DanI at wdi.disney.com Mon Nov 9 01:01:08 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:12:11 2012 Subject: Latest updates Message-ID: Folks - I have just released 19 new updates. There is not a lot of significant stuff here -- mainly gradual preps for 2.3. The most significant items are pane resizing for morphic windows, a wavelet transform, and a new coercion package. New coercion package? That's right! I had to bite my tongue during the Double Dispatch discussion ;-). I have not gone to Double Dispatch. I simply can't feel good about adding over a hundred methods to the system. Instead, I have folded the old adaptToType: and adaptType methods into a single method described below. This has a number of beneficial effects 1. The number of methods is halved 2. The entire AxB conversion situation can be examined in a single method 3. Collections can be dealt with without having to create intermediate structures If people want to peek ahead without doing a full update, they can look at updates 386 and 387. I should tell you that there is one further coercion feature yet to come in 2.3: I have reworked the VM so that before failing arithmetic and comparisons, it checks for the situation of Integer op Float. In this case it does the conversion in C and proceeds in the twinkling of an eye. This greatly accelerates the dominant use of coercion. - Dan --------------------------------- P.S. Here's the preamble from the coercion update in case you want a short summary... This changeSet implements a new arithmetic coercion package for Squeak, based on a single coercion message for every pair of types. The pattern is as follows: If there is a failure of self op: arg then it is handled by ^ arg adaptToType2: self andSend: #op: and this is resolved by a coercion method such as adaptToType2: aType2 andSend: selector "If I am involved in arithmetic with a Type2, convert us first." ^ aType2 coerced perform: selector with: self coerced Each such method exactly summarizes the coercion between type1 and type2. The coercions supported include arithemtic (+ - * / // \\) and comparison (< = > <= >=) between Integer Fraction Float Point with arithmetic also extended to Collections. The extension to collections includes scalars with collections and commensurate sequenceable collections. The number of coercion messages is less than N squared, where N is the number of arithmetic types. This compares to M * (N squared) for double dispatching, in the case that M different arithmetic operations are being supported (we have M = 11 for arithmetic plus comparisons). The actual number is less owing to sharing by inheritance. The entire arithmetic family above is accomplished with only 18 small methods. This compares to 26 in the previous Squeak coercion, in which Points were not fully supported, and no collections were. It compares to over a hundred methods in a full double dispatch solution. From dwighth at ipa.net Thu Nov 12 21:25:05 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:12:12 2012 Subject: squeak-list error messages References: Message-ID: <364B5231.B5A4C357@ipa.net> Yes, I get the same bounce. -- Dwight Michael S. Klein wrote: > > Im constantly getting messages like below, even though my posts > apparently make it through. Anybody else experienceing this noise? > Also, this is a test :-) > > -- Mike > mklein@alumni.caltech.edu > > Date: Thu, 12 Nov 1998 23:10:46 +0200 > From: system@mgate > To: mklein@alumni.caltech.edu > Subject: Delivery Notification: Delivery has failed > Parts/attachments: > 1 Shown 5 lines Text > 2 Shown 1.3 KB Message, "Re: What class should include "5 > kilograms" > 2.1 Shown 18 lines Text > ---------------------------------------- > > Report on your message to: /R=AM_PAREL/U=BAVECO/@gate.agro.nl > Reason: Failed to transfer; communications failure (0) > Diagnostic: Maximum time expired (5) > Extension-id: 1 > Arrival-date: Thu, 12 Nov 1998 23:10:46 +0200 From wDargel at shoshana.com Thu Nov 19 05:04:34 1998 From: wDargel at shoshana.com (William O. Dargel) Date: Sat Jan 28 04:12:18 2012 Subject: Diff code available? References: <3d43435d.36539436@aol.com> <3653A260.D2EECC56@ipa.net> Message-ID: <3653A6E2.AEC48908@shoshana.com> Dwight Hughes wrote: > The FileContentsBrowser for Squeak, written by Bill Dargel, contains a > source code diff for comparing code in external files to code in the > image - quite nice it is too: > > http://isgwww.cs.uni-magdeburg.de/~raab/fcb/FileContentsBrowser-Squeak2.0.st I'm afraid that I can't take credit for writing it. That honor goes to Andreas Raab (among his many other contributions to Squeakdom). I merely ported it from 1.23 to 2.0 and got it to open up within Morphic in addition to MVC. ------------------------------------------- Bill Dargel wdargel@shoshana.com Shoshana Technologies 100 West Joy Road, Ann Arbor, MI 48105 USA From dwighth at ipa.net Thu Nov 5 19:00:31 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:12:18 2012 Subject: But what about Flash? (Re: Toward the next release...) References: <199811051812.TAA05498@monet.cs.uni-magdeburg.de> Message-ID: <3641F5CF.5E73D81A@ipa.net> If we can get good quality fonts onto the screen and can import new ones easily - and have them look good - I will be happy with it. -- Dwight Andreas Raab wrote: > > Folks, > > > > http://fonts.apple.com/ > [...] > > Another interesting thing is the freetype Project: http://www.freetype.org/ > > Without taking your enthusiasm, we're currently not aiming at a fully > featured True-Type renderer. Hinting is generally a difficult thing to do > and even more so with True-Type instructions. The goal is to get away with > anti-aliased fonts rather than putting a (True-Type) interpreter into the > (Squeak) interpreter. We'll see where this leads us. > > Andreas From raab at isgnw.CS.Uni-Magdeburg.De Sun Nov 29 01:37:38 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:12:27 2012 Subject: Newbie questions In-Reply-To: from "Stanley Wilson" at Nov 28, 98 05:21:58 pm Message-ID: <199811290137.CAA17474@gaugin.cs.uni-magdeburg.de> > I havn't a clue on how to start. i.e. how do I use squeak to to get on the > web as a browser ? how do I do anything ? the readme doesn't address > simple questions. Well, as a matter of fact, it does ;-) Go looking into the "Getting started" window which is right above the "Welcome to..." window. Then, [now quoting from the window] "just click on..." the highlighted link to http://minnow.cc.gatech.edu/SqueakDoc.1 say "yes" if you're asked to open a web browser (answering your first question ;) and read everything else online. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From rlpcon at vermontel.net Fri Nov 13 22:52:05 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:12:31 2012 Subject: Need help with primitives Message-ID: Can someone point me to documentation that will guide me (step-by-step) through the process of adding a primitive? That is, assuming I have written a Smalltalk method that I want to convert to a primitive, how do I use the C translator and my C compiler/linker to produce a new (interpreter) which contains my primitive. thanks, --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From raab at isgnw.CS.Uni-Magdeburg.De Sat Nov 28 20:39:57 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:12:42 2012 Subject: Squeak 2.3 beta available In-Reply-To: from "Ivan Brusic" at Nov 28, 98 03:09:57 pm Message-ID: <199811282039.VAA14067@gaugin.cs.uni-magdeburg.de> Hi, > Are there any plans to use TrueType fonts for Squeak in general? That is a difficult question (more than you might expect ;-) For one thing, TrueType fonts are generally not free and we'd need free fonts for shipping them with the base package. Another problem is readability of vector fonts at small sizes. Even though anti-aliasing helps, I personally prefer the bitmap fonts we already have. They're much better to perceive at small sizes. A third thing to keep in mind is that TTFs are pretty expensive to render and caching them can cost a lot of memory. So, I my *personal* feeling about TTFs is that they're very useful as graphical text (the kind you know from vector graphics packages such as CorelDraw or Illustrator) in Morphic but I'm not extremely positive about using vector fonts in general. But we need to try out more things before we can really decide where it's useful and where it isn't. > I have attempted to view the example provided in TTFontReader>>class > exampleString:, but it contains a bug that I am not able to correct. > First, the comment should read: 'TTFontReader exampleString:'Warum?' > not TTFont exampleString:'Warum?' Oops - this method was not at all supposed to be in there. > The error I receive when trying to execute the example is that the > (class?) method default is not understood by TTFontReader. I can not > identify which method should actually be called. If you look closer at the method then you'll that it uses something called "ScheduledControllers activeController view graphicsContext" which is one of my favorite expressions from VisualWorks ;-) So, no, this method doesn't work at all. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From jehamby at lightside.com Mon Nov 23 20:30:36 1998 From: jehamby at lightside.com (Jake Hamby) Date: Sat Jan 28 04:12:43 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? References: <3659B407.40E05037@thepattern.com> Message-ID: <3659C5EC.78985144@lightside.com> Laurence Rozier wrote: > > Asymptotically Approaching Harmony wrote: > > > Hi folks; > > > > After doing an Amazon search I just found a book called _On to > > Smalltalk_ by Patrick Henry Winston - I really like his style, _On to > > Java_ is one of my fave Java books by far. I ordered this book from Amazon.com and am also extremely impressed with it. I'm still very new to Smalltalk so hopefully some Squeak experts can expand on my comments below about problems with using the book to learn Squeak. > > So, how close is Smalltalk Express, the dialect he uses in the book, > > to Squeak? > > Extremely close. In addition to GUI differences, file I/O is also handled quite differently from either Smalltalk (though it's a little closer to VisualWorks). While I was able to figure out the basics of file I/O in Squeak through trial and error, and looking at the Squeak source, I couldn't figure out an easy way to approximate the nextWord message supported by Smalltalk Express. I'll probably write my own nextWord so I can get past chapter 22. The class browser is more similar to VisualWorks than to Smalltalk Express, so it may be helpful to jump to chapter 38 and read up on that difference. I haven't looked at the GUI stuff yet, but hopefully it's close enough to VisualWorks that I'll be able to figure it out without much trouble. -Jake From ivan at cc.gatech.edu Wed Nov 25 19:51:53 1998 From: ivan at cc.gatech.edu (Ivan Brusic) Date: Sat Jan 28 04:13:07 2012 Subject: Squeak MIDI and Mac Serial Ports In-Reply-To: Message-ID: On Wed, 25 Nov 1998, Mark Guzdial wrote: > Does anyone know how to make Squeak let go of a Mac serial port after it > uses it (say, for a MIDI interface)? On my G3 Powerbook, I have one lone > serial port. After using it for MIDI-ing, I wanted to backup my PalmPilot, > but it insisted that Squeak still had the serial port -- despite moving > back to internal synthesizer, and despite quitting Squeak. I could backup > after restart. > > It's not a huge deal (I don't backup that often :-), but if there's an easy > solution (a Mac-centric thingie? A Squeak expression to evaluate?), I'd > appreciate it. I do not know about serial ports, but Squeak does not relinguish control of my sound card after playing sounds in Morphic. The only "fix" I have found is to interrupt the current process using CMD-. Works most of the time. Hope this helps and Happy Thanksgiving to all, Ivan -- "Computers are nothing but a perfect illusion of order" - Iggy Pop Ivan Brusic Graduate Student GVU Center & College of Computing, Georgia Institute of Technology From stp at limbo.create.ucsb.edu Tue Nov 3 23:13:50 1998 From: stp at limbo.create.ucsb.edu (Stephen Pope) Date: Sat Jan 28 04:13:14 2012 Subject: Units package (was Method names) References: <199811031855.AA27903@bobo.rd.wdi.disney.com> Message-ID: <363F8E2E.590BACA@create.ucsb.edu> johnm@wdi.disney.com wrote: > > Stephen Pope was able to build a really nice "units" system > using normal Smalltalk syntax. He did it in the context of a > music system where you could say things like: > > sound pitch: 440 asHz > > or > > sound pitch: 69 asMidiKey > > The selectors "asHz" and "asMidiKey" are unary messages that > return a pitch object, I believe. (Stephen: please correct me if > I'm not explaining this correctly.) (I didn't get into this in my previous posting.) This is how Siren creates MusicMagnitudes, either with "verbose" class instance creation messages sent to abstract "species" classes such as, (Duration value: 1/16) asMsec "Answers Duration 62 msec." (Pitch value: 60) asHertz "Answers Pitch 261.623 Hz." (Amplitude value: 'ff') asMIDI "Answers MIDI key velocity 100." or with terse "post-op" format as in John's examples (note that I don't use the "as" prefix because I think of these as instance creation rather than coercion). 440 hz 1 / 4 beat -3.566 dB For coercion among MusicMagnitudes, I do use "as," as in, (440 hz) as Midi (1 / 4 beat) asSeconds -- stp Stephen Travis Pope stp@create.ucsb.edu -- http://www.create.ucsb.edu/~stp/ From sqrmax at cvtci.com.ar Tue Nov 3 04:38:54 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:13:17 2012 Subject: A bit of header Message-ID: <0150448380403b8MAIL2@cvtci.com.ar> Hi. What do you think about using one of the unused bits in the image header as a flag to tell if the image was properly closed or not? This would allow the VM to warn the user if he/she tries to open a not closed image. An example of this is to open an image twice, which can result in a damaged changes file. Andres. From DanI at wdi.disney.com Tue Nov 10 19:31:42 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:13:17 2012 Subject: [sqvm] squeak vm startup (interpreter?) In-Reply-To: <36487D57.5001C29D@netgenics.com> Message-ID: Jason - >I am trying to poke about in the VM; specifically, I'm trying to learn how the >interpreter loads in image and starts running. Any pointers (or high-level >roadmaps) would be appreciated. Thanks! I suggest that you start by running the simulator, which I did only two days ago, so I know it works (at least on the Mac, but I believe it will on Windows as well). The thing actually cruises along at 30000 bytecodes per second. I find it nice to work with the Mini.image on the UIUC server. Being so small it is relatively quick to load, and it also does not need to find the sources file. If you try to run your own image, be prepared for a lot of time (and space) spent loading, uncompressing fonts, painting windows, etc. Assuming you have that image (and changes) in your directory, then execute the following statement: (InterpreterSimulator new openOn: 'mini.image') test In about 4 seconds (on a fast machine) you should see bits on the screen. If you want to watch everything happen then you can do (InterpreterSimulator new openOn: 'mini.image') inspect and then execute various peices of the test method, and look what changes. There are a bunch of methods in the simulator for letting you print values and structures in the image. Have fun - Dan P.S. I'm including one method def that is needed for the simulator to run these days. Attachment converted: Anon:InterpreterSim...gstartingAt.st (TEXT/MSIE) (00003639) From wdc at MIT.EDU Tue Nov 10 17:08:31 1998 From: wdc at MIT.EDU (Bill Cattey) Date: Sat Jan 28 04:13:29 2012 Subject: Latest updates In-Reply-To: References: Message-ID: <8qG7ADEGgE6gRXmIVy@mit.edu> I ran the debugger on a different system which had subtly more visible colors, and FOUND where the system hung. Remember the code fragment I mentioned before: UseReadySemaphore ifTrue: [PlayerProcess _ [SoundPlayer playLoop] newProcess] ifFalse: [PlayerProcess _ [SoundPlayer oldStylePlayLoop] newProcess]. UseReverb ifTrue: [self startReverb]. PlayerProcess priority: Processor userInterruptPriority. PlayerProcess resume. The caret was just before the period in the last line of the fragment: PlayerProcess resume^. Does this help? -wdc From Michal.Starke at lettres.unige.ch Fri Nov 13 06:40:46 1998 From: Michal.Starke at lettres.unige.ch (michal starke) Date: Sat Jan 28 04:13:35 2012 Subject: Examples of API In-Reply-To: <199811121855.NAA09839@cleon.cc.gatech.edu> Message-ID: >Right now, neither external processes or Unix pipes are directly >supported in Squeak. It's also unlikely that such platform-specific >features will ever end up in the core system. but most platforms have a mechanism to interact with external processes (AE, BMsg, COM, etc.). it would be very powerful to create an abstraction regrouping them, very much like (File)Stream abstracts over distinct file systems... And squeak would gain so much by being able to talk to others productively :-) michal. From whisper at accessone.com Thu Nov 26 19:17:12 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:14:00 2012 Subject: Squeak 2.3 beta for windows yet? Message-ID: <3.0.1.32.19981126111712.0096c0b0@accessone.com> Hi; I see a changes and an image file - neither compressed in the "2.3" dir. Not to be terminally obtuse, but do I just download those to my squeak dir or what? Thanks, Dave LeBlanc From ivan at cc.gatech.edu Tue Nov 10 03:27:45 1998 From: ivan at cc.gatech.edu (Ivan Brusic) Date: Sat Jan 28 04:14:01 2012 Subject: Subclass problem Message-ID: I am relatively new to Squeak/Smalltalk, so I am unable to debug the following problem: I attempted to add an ivar to the Morph class, but upon recompilation the debugger stated that the ivar was defined in another class (SketchMorph). I corrected the problem by changing the variable's name, but now almost all the subclass of Morph do not recognize that Morph is their superclass. Upon further inspection, it appears that there are two definitions of Morph in the system. Executing "implementors of it (m)" on a method defined in Morph returns two methods. Has anyone encountered this problem? Any help will be appreciated. Thanks in advance, Ivan -- "Computers are nothing but a perfect illusion of order" - Iggy Pop Ivan Brusic Graduate Student GVU Center & College of Computing, Georgia Institute of Technology From eau at astsun.fujitsu.com.au Mon Nov 2 02:16:20 1998 From: eau at astsun.fujitsu.com.au (Eric Ulevik) Date: Sat Jan 28 04:14:07 2012 Subject: Object databases for Squeak Message-ID: <00a701be0606$c95df120$eed2ac89@eau-nts-2> I'm not promising that I'm working on anything, but I have some questions on OODB integration. Consider an OODB which contains objects and schema. The question is how to integrate this nicely into Squeak. Ideally I would like to dynamically create the schema on-the-fly as the references are followed. I think this should be easy. Is this correct? And a supplementary question: given a client-server OODB, where the objects live on the server, do you want to write server-side methods in Squeak? -----Original Message----- From: Alejandro F. Reimondo To: 'Squeak List' Date: Monday, 02 November 1998 9:21 pm Subject: Object databases for Squeak >Is anyone working on ObjectDatabases for Squeak? >With ObjectDatabases I mean, pure & transparent object storage of active objects. > >Has anyone worked on a disk-based Squeak VM ? > >Ale. > > From hacker at norna.net Wed Nov 4 09:33:23 1998 From: hacker at norna.net (Hacker) Date: Sat Jan 28 04:14:10 2012 Subject: List service... In-Reply-To: <199811032202.RAA16988@cleon.cc.gatech.edu> Message-ID: <199811041138.MAA08139@pippi.grm.se> Hello world... I've been subscribeing to this list for quite some time. I think Squeak is an interresting project, but I also feel that this list is a bit too advanced for me. I'm not that much into Smalltalk and I don't have the knowledge to appreachiate the constant flow of all your enthustiastic essays... --- I have the feeling this list is not ment for peple like me. Do anyone know of or maybe run a list that still cover Squeak but is less technical than this list? If not, I would greatley appreachiate the startup of such list. regards, / jakob krabbe From whisper at accessone.com Sun Nov 15 01:33:29 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:14:14 2012 Subject: Serious problem with Squeak 2.2 on Win NT Message-ID: <3.0.1.32.19981114173329.00940850@accessone.com> Hi; Using the distribution binary (not one I built myself), Squeak, when idle, uses 100% of one of my dual Pentium Pro 200mhz processors. This is reported by the task manager. This seems continuous and I would think the MM would have scavenged everything after some short time had passed. If this was a single cpu system, it would be virtually unusable for anything but Squeak when it is running. This is seen on Windows NT Workstation, version 4.0sp4. System is a dual Pentium Pro 200mhz with 256mb of memory. Sincerely, Dave LeBlanc From jdbell at fareselaw.com Sun Nov 15 03:34:03 1998 From: jdbell at fareselaw.com (Jerry Bell) Date: Sat Jan 28 04:14:25 2012 Subject: SqueakOS Message-ID: <3.0.5.32.19981114213403.008f6960@gateway> I'm new to the list, but I've found some references to 'bare-metal' Squeak implementations. Is anyone working on this? What would be the ideal kind of kernel to run Squeak on top of? I know portability would be on the top of the list. How about single vs. multithreaded? Maybe even something completely different to take advantage of the unique needs of a smalltalk environment? I assume that a goal would be to eventually make Squeak classes that could generate the low-level kernel code for a given platform, much like the interpreter generator. Then, to port to another platform you would simply define the characteristics of that specific platform. All from within Squeak. That would be.... nice. I don't have much experience with Smalltalk, and even less with OS design. But it seems that one way to approach this would be to build something quickly using simple, existing tools. Then, when there is a working system we could factor parts of the original low-level code out and replace them with code generated by Squeak. At that point, we could make refinements in speed, portability, etc. from within Squeak itself. Specifically, I've started looking at FreeDOS's kernel, dos-c, as a possible starting point. There is already a DOS port of Squeak out there, and it seems as if it would not be too terribly complicated to take dos-c and the DOS port of Squeak and kinda mash them together to make a booting SqueakOS. Plus, the dos-c kernel is supposed to be pretty portable, and is written mostly in C so it shouldn't be not TOO hard to work with. It should also be simpler than a more advanced kernel. And, it's GPL'd. I've just started looking at dos-c, I'm reading the author's book now. Unfortunately, it doesn't look like the current version of dos-c will handle the DPMI stuff that the DOS port of Squeak needs, but maybe that would be easy to fix for someone who knows what they are doing? Any suggestions? Jerry Bell jdbell@fareselaw.com Links: http://www.iop.com/~patv/ - this is the dos-c site. http://www.freedos.org/ - freeDOS, freely available DOS clone. Dos-c is the kernel. Book: FreeDOS Kernel / Pat Villani , it's available at Amazon. I'm reading it now and starting to look at the source. From johnson at cs.uiuc.edu Thu Nov 5 12:03:58 1998 From: johnson at cs.uiuc.edu (Ralph Johnson) Date: Sat Jan 28 04:14:36 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] Message-ID: <199811051203.GAA28179@sal.cs.uiuc.edu> I bet that we would all benefit if Alan were to make some videos of playing with Morphs and we were to put them on the web. Since video takes a long time to download, it might be better to make several five minute videos rather than one half-hour one. -Ralph From DanI at wdi.disney.com Thu Nov 5 16:05:57 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:14:41 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] In-Reply-To: Message-ID: JArchibald@aol.com wrote... >Hopefully, Dan's comments about making some of Alan's PowerBook available in >2.3 (I hope I'm not over-selling this, Dan), is right on track. Giving us the >tools AND the message might enable some of us to contribute a bit more. Jerry, and all - I don't expect we'll get any more of the actual content out in 2.3; just more of the tools. BUT... Our long-term intention is exactly what you want, I believe: we hope to put essentially all the content in web pages accessible to any squeak, AND with a thread of commentary, possibly even voice-over, that will add Alan's many inimitable ways of tying it all together. Alan will probably want to say more about this, so I'll stop here. - Dan From zss at ZenSpider.com Wed Nov 4 18:27:54 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:14:42 2012 Subject: List service... In-Reply-To: <199811041138.MAA08139@pippi.grm.se> References: <199811032202.RAA16988@cleon.cc.gatech.edu> Message-ID: >I have the feeling this list is not ment for peple like me. > >Do anyone know of or maybe run a list that still cover Squeak but is less >technical than this list? I agree that having multiple levels of lists, with varying levels/purposes, can be very beneficial. Especially if those lists have a very defined purpose/goal. I can envision one as a plain q&a (w/ faq), one as an advanced list (this one), one for exploring the new things in squeak that aren't present in squeak's kin (e.g. morphic), and possibly others.... Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From chris at cnd.co.nz Tue Nov 10 05:07:01 1998 From: chris at cnd.co.nz (Chris Double) Date: Sat Jan 28 04:14:52 2012 Subject: HTTPSocket proxy authentication Message-ID: <01ac01be0c67$fabb5b60$35304ed1@double> The proxy at work requires authentication when using it. I have to supply a user id and password. Has anyone done any work on allowing the HTTPSocket proxy code to work using authentication? At the moment I've hacked in the correct Proxy-Authentication string which allows me to be authenticated so I can use Scamper and the remote updates, etc. But I have no idea how this authentication code is generated. Can someone provide a reference to some code (in any language) or documents that describe the protocol for this? Or even better, is there some Squeak code ferreted away that already does it? Thanks, Chris. From cgreuter at calum.csclub.uwaterloo.ca Wed Nov 18 05:25:52 1998 From: cgreuter at calum.csclub.uwaterloo.ca (Chris Reuter) Date: Sat Jan 28 04:14:56 2012 Subject: Bug: disableSounds preference spontaniously becomes false Message-ID: <19981118002552.A18807@calum.csclub.uwaterloo.ca> Hi all, I just installed Squeak 2.2 on a Solaris PC and then installed updates from the web up to "393ChangeSetMsgs-di.cs". I then switched off sound (set disableSounds to true on the new preferences window), opened "Play With Me-4" and clicked the next-page button. The system proceeded to set disableSounds to false and then hang inside SoundPlayer. It seems that AbstractSound>>play ends up calling SoundPlayer class>>startPlayerProcessBufferSize:rate:stereo:, which enables sound. The complete stack trace can easily be found by putting a breakpoint in SoundPlayer class>>startUp. I'd post a patch but I don't know the sound system well enough to know _where_ the fix ought to go. --Chris From raab at isgnw.CS.Uni-Magdeburg.De Wed Nov 4 12:06:40 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:15:16 2012 Subject: Regenerating the VM In-Reply-To: <199811040618.BAA24782@cleon.cc.gatech.edu> from "lex@cc.gatech.edu" at Nov 4, 98 01:18:39 am Message-ID: <199811041206.NAA23229@monet.cs.uni-magdeburg.de> > The quick fix is simple: in sq.h, redefine ioLowResMSecs to just be ioMSecs: > > #define ioLowResMSecs() ioMSecs() > > > In the long run, this definition should be made platform specific > somehow. Maybe sq.h should #include a platform-specific header file? It would be easier to something like #ifndef ioLowResMSecs #define ioLowResMSecs clock() #endif In the sq.h file - then you could define the appropriate function in sqPlatformSpecific beforehand. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From lex at cc.gatech.edu Tue Nov 3 04:05:37 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:15:16 2012 Subject: some not-so-random questions Message-ID: <199811030405.XAA27491@cleon.cc.gatech.edu> Andreas Raab wrote: > > > 2) What is the default memory allocation then, if none is specified > > explicitly? > > 16 MB - that's an average choice between common memory sizes and the > amount of memory you need to have fun with the system. Oh, but don't > expect Squeak to physically use the amount of memory - we're on Windows, > we *do* have dynamic virtual memory management ;-)=) > Yeah, but doesn't Squeak cycle through all its free memory over and over as it runs? So if you allocate 40 megs, and 10 megs of that is old, then all 30 megs of the "free" space will be cycled through periodically. If you only have 32 megs of RAM on your machine, then that 30 megs of free won't fit and it should be paged out and in over and over and over again. It's not just the least-common memory pages that will be paged out, because all the pages are being used. But it's fixable! Squeak just needs to garbage collect more often when there is a lot of free space, so that it doesn't need to get near the top of its memory allocation. Then, the top of Squeak's memory can usufelly page out and stay out. It would be nice, and I think it would work, but I don't know enough about how the memory management works to actually implement it.... Lex From ChrisG at appliedreasoning.com Tue Nov 17 15:16:51 1998 From: ChrisG at appliedreasoning.com (Chris Grindstaff) Date: Sat Jan 28 04:15:21 2012 Subject: [sqvm] squeak vm startup (interpreter?) References: <1.5.4.32.19981117074456.0067b8d0@pop1.ibm.net> Message-ID: <36519362.E29C38E6@appliedReasoning.com> Mark, I had the same problem. What worked for me was to load Tim's patch and then execute InterpreterSimulatorLSB new .... instead of just InterpreterSimulator. HTH, chris Mark Wai wrote: > Dan Ingalls wrote: > > >-snipped- > > > > (InterpreterSimulator new openOn: 'mini.image') test > > > >-snipped- > > I've tried 2.2 (both the SqueakVM and Jitter) under Windows but it didn't > work. It complains an improper store in the Bitmap object (primitive 61). > But the problem I believe started in >>initializeInterpreter:. Should the > bytesToShift contains a negative value? I have also tried Tim's patch and > I got the same result. I will poke around more tomorrow morning. > > Thanks. > -- > Mark Wai > Wator Innovision > mailto: mwai@ibm.net or:[ mwai@frontiersa.com ] > __ -- ------------------------------------ Chris Grindstaff - Applied Reasoning mailto:chrisg@appliedreasoning.com http://www.appliedreasoning.com 919-851-7677 From rowledge at interval.com Tue Nov 3 17:53:20 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:15:45 2012 Subject: some not-so-random questions In-Reply-To: <199811031554.QAA19299@monet.cs.uni-magdeburg.de> Message-ID: On Tue 03 Nov, Andreas Raab wrote: > Ian, > > > On Unix there is a -memory option that takes a memory size > > (in bytes) as argument (with optional 'k' or 'm' suffix to avoid typing lots > > of zeroes). There is also an environment variable "SQUEAK_MEMORY" that you > > can set, the existence of which implies the -memory option (I leave this > > permanently set to "10m", and I've never run out of memory in Squeak ;-). > > How the heck do you manage this?!?! I'm usually run Squeak with at least > 32MB memory - that's my way not to run out of memory too early. Well, > perhaps you've never imported a large JPEG image in 32bit Morphic?! Acorn Squeak runs perfectly happily with -memory:5m unless you want to generate new VM when 8m is more useful. Obviously the Windows bloat virus has found a way to infect your VM Andreas! Expanding the memory allocation for Squeak should not be too difficult in most cases. For Unix, sbrk() ought to work. For Acorn, resizing the dynamic area is trivial. I _think_ Mac's finally got some way to expand memory a while ago. Windows? Hmm, how about actually allocating a huge virtual space but pretending to the VM that you only have as much as the -memory param asked for. Then to expand, you just change that 'fake' boundary. The only trick that springs to mind is remembering to reset the size of the free chunk at the top of memory. Shrinking object space wouldn't be much harder from the VM point of view, though I'm not sure whether the released memory would get back to the OS pool very efectively. The real problem with both expansion and shrinking is the policy decision of when to do it. VW has quite a complicated policy implemented in the image, with hooks to change it almost any way you want. IIRC almost no customer ever changed anything, they just complained that the default wasn't good enough for them! tim PS I did a multi-space object memory with cross-space garbage collection and compaction, plus grow/shrink stuff about ten years ago for the Active Book version of BrouHaHa. It worked ok in 1Mb ram/2Mb rom, but it was not anywhere near as efficient as I would like to see. -- Strange OpCodes: SHUTDOWN: (See EFB) Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From JArchibald at aol.com Thu Nov 5 06:44:53 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:15:49 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] Message-ID: In a message dated 11/4/98 9:03:35 PM Eastern Standard Time, arning@charm.net writes: << I, too, enjoyed the car demo and demonstrated it to a fellow squeaker a few days later at work. >> Being the "demonstratee," I have to admit that the Morphic material is quite impressive. And I have been touching this stuff in a modest way for over a year now. However, many of us in outer Squeakdom are seldom able to "grok it in its fullness." Not having seen Alan's demo (and I am among the first to come out with jazzy stories about 'Alan's talk at Xyz in '06,' etc.), I can only imagine how much it conveyed "the message." Unfortunately, much of what we have seen through Squeak offerings are the tools without the "mechanic" being present, and we are only guessing at the "message." I have gone back and printed out some of the relevant Morphic background (Self 4.0 as an example), and I would have to say that I think that the Disney guys have been stomping out some new ground for us to follow--going beyond some of the earlier morphic conception. Hopefully, Dan's comments about making some of Alan's PowerBook available in 2.3 (I hope I'm not over-selling this, Dan), is right on track. Giving us the tools AND the message might enable some of us to contribute a bit more. For my own interest, I would like to see some "morphs" which have software engineering application. I.e., gadgets presenting a simple slice of programming (design, software engineering) reality, which can be combined into more complex and powerful presentor's of program knowledge. Jerry. From patc at teleport.com Wed Nov 4 15:52:06 1998 From: patc at teleport.com (Pat Caudill) Date: Sat Jan 28 04:15:52 2012 Subject: Double dispatch Message-ID: <19981104155121.16345.qmail@relay1.teleport.com> >Gang, > >I've seen quite a few references to double dispatching. What is that? >URL's, pointers to docs, or a simple RTFM (but *which* FM) would be >appreciated. I'd suggest that you look at the paper "A simple technique for Handlling Multiple Polyymorphism" by Daniel H. H. Ingalls in OOPSLA '86 Conference Proceedings. Also published as SigPlan Notices Volume 21 Number 11 November 1986. pp 347. Pat Caudill From ahill at users.arco.com Sat Nov 7 00:55:14 1998 From: ahill at users.arco.com (Adam Hill) Date: Sat Jan 28 04:15:56 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] In-Reply-To: <89735745.364365b5@aol.com> Message-ID: <001601be09e9$47466be0$74bec982@adamhill> I will volunteer to digitize the videos if they get done. I have access to a full blown digitizing suite and a engineer to tweak it. We can take VHS, SVHS or Beta (If anyone has a REAL camera :-) I can out put AVI(any codec), QT(any codec) and MPEG (We have a realime encoder) We do a LOT of video for our projects, we are pretty darn good at it and have the equipment to tweak it till it looks great. I can't offer anything in the way of editing but if some one can get me a finished tape I could digitize it pretty darn quickly. adam hill... > -----Original Message----- > From: JArchibald@aol.com [mailto:JArchibald@aol.com] > Sent: Friday, November 06, 1998 3:10 PM > To: squeak@cs.uiuc.edu > Cc: JArchibald@aol.com > Subject: Re: The Message and the Morphs [was: Where can I get some > etoys?] > > > In a message dated 11/5/98 7:04:46 AM Eastern Standard Time, > johnson@cs.uiuc.edu writes: > > << bet that we would all benefit if Alan were to make some videos > of playing with Morphs and we were to put them on the web. >> > > I personally like the idea of some videos--could we convince Alan that we > think it's worth his time? > > Jerry. > > From dwighth at ipa.net Thu Nov 12 20:53:37 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:16:01 2012 Subject: Good Public Domain info for Squeaking References: Message-ID: <364B4AD1.EA1D00E@ipa.net> Dan Ingalls wrote: > > Folks - > > I have in mind a couple of fun Squeak aps, but I'd like them not to rely one proprietry material. So I would like to hear from anyone regarding > Dictionary of english > ideally with some flags and factored rules > for purals, verb endings, etc Take a look at the FRELI Project (the Free Repository of English Lexical Information): http://www-personal.umich.edu/~nkuitse/FRELI/ -- Dwight From bruce_oneel at yahoo.com Tue Nov 24 11:31:00 1998 From: bruce_oneel at yahoo.com (Bruce O'Neel) Date: Sat Jan 28 04:16:10 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? Message-ID: <19981124113100.5529.rocketmail@send203.yahoomail.com> Hi, I've also used On To Smalltalk by PHW and found it good. It was pretty much perfect up to the files chapter, which I didn't really do, and then the GUI chapter seemed wrong. I am, oh so slowly, learning how to get GUIs to come up. cheers bruce Jake Hamby wrote: > > Laurence Rozier wrote: > > > > Asymptotically Approaching Harmony wrote: > > > > > Hi folks; > > > > > > After doing an Amazon search I just found a book called _On to > > > Smalltalk_ by Patrick Henry Winston - I really like his style, _On to > > > Java_ is one of my fave Java books by far. > > I ordered this book from Amazon.com and am also extremely impressed with > it. I'm still very new to Smalltalk so hopefully some Squeak experts > can expand on my comments below about problems with using the book to > learn Squeak. > > > > So, how close is Smalltalk Express, the dialect he uses in the book, > > > to Squeak? > > > > Extremely close. > > In addition to GUI differences, file I/O is also handled quite > differently from either Smalltalk (though it's a little closer to > VisualWorks). While I was able to figure out the basics of file I/O in > Squeak through trial and error, and looking at the Squeak source, I > couldn't figure out an easy way to approximate the nextWord message > supported by Smalltalk Express. I'll probably write my own nextWord so > I can get past chapter 22. > > The class browser is more similar to VisualWorks than to Smalltalk > Express, so it may be helpful to jump to chapter 38 and read up on that > difference. I haven't looked at the GUI stuff yet, but hopefully it's > close enough to VisualWorks that I'll be able to figure it out without > much trouble. > > -Jake > > == Bruce O'Neel - beoneel@acm.org http://homepage.iprolink.ch/~bioneel _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From danielv at netvision.net.il Sat Nov 7 16:25:09 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:16:11 2012 Subject: Anyone using alternative input devices with Squeak? References: <364421B9.EE681E17@netvision.net.il> Message-ID: <36447465.C9291ADD@netvision.net.il> An HTML attachment was scrubbed... URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/19981107/30fe4407/attachment.htm From sqrmax at cvtci.com.ar Mon Nov 30 06:28:46 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:16:33 2012 Subject: Image size Message-ID: <0c3864128061eb8MAIL2@cvtci.com.ar> Hi. I'm still using Squeak 2.0. I was doing something with function plotters and I wanted to make alpha-blending while drawing. My video card is set up at a bitdepth of 16, and so was the image. But I had to make the image bitdepth 32 for alpha blending to work. Correspondingly, the image size went up by over 4mb. But the video card was still set up at a bitdepth of 16, so bitmap bitdepth crunching was being performed somewhere. After I finished the thing, and noticing that display speed was much slower (maybe due to such bitdepth crunching), I closed the morph worlds and set the display depth back to 16. But the image never got smaller, and the screen updating did not recover its original speed. I tried a bitdepth of 8, but the image didn't recover its original size. Where should I take a look to see what's going on? Andres. From gera at core-sdi.com Thu Nov 5 23:13:14 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:16:42 2012 Subject: Multiple MorphicWrappers Message-ID: <36423109.4084F157@core-sdi.com> you, MW users. What do you think? Is it better to allow an object to be represented as any MW, or to be represented as one of the MW it answer to #morphicWrapperClasses, and letting it thefault to be object morphicWrapperClasses first? My personal point of view is that it should be a selective list of the MW that will properly show the object... Another aproach can be, for example: RegularPolygonMorphicWrapper class methods: canRepresent: anObject | objectClass | objectClass := anObject class. self neededSelectors do: [:eachSelector | ((objectClass canUnderstand: eachSelector) ifFalse: [^false])]. ^ true. neededSelectors ^ #( #sides #vertices #someOtherNeededSelector) and then the list can be constructed selecting on the MW that #canRepresent: theObject... I don't like this option, but somebody can improve it... may be... what do you think? Representative Bye! Richie++ From guzdial at cc.gatech.edu Sun Nov 15 03:15:27 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:16:57 2012 Subject: Is the swiki working? In-Reply-To: <199811141629.LAA28006@fellspt.charm.net> Message-ID: It was working Friday (I check it pretty regularly), but I do verify that it's down now. (It moved several weeks ago -- glad you didn't notice :-) It should be up again tomorrow (Sunday) -- Monday at the latest, if there's a deeper problem than just a reboot (e.g., network hiccup) Mark >I have not been able to connect to the swiki at > >minnow.cc.gatech.edu > >for a couple of days. Did it move? Is it down? > >Cheers, >Bob -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From alank at wdi.disney.com Sat Nov 7 04:13:24 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:17:50 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] In-Reply-To: <001601be09e9$47466be0$74bec982@adamhill> References: <89735745.364365b5@aol.com> Message-ID: Thanks to all for all the encouragement. I'm game to do some demos -- but I think the coolest way to do them would be to just capture me actually doing them while talking and be able to replay them from the new Squeak WebPages. This would also help bridge the gap on some of our more embarassing shortfalls on documentation ... There's no real need for video when we have a completely controllable system like Squeak. I think we at Squeak Central have decided this would be a good thing to do, and you can all expect that some of these demos will show up as pages in the next (very) few months ... Cheers, Alan At 12:55 AM -0000 11/7/98, Adam Hill wrote: >I will volunteer to digitize the videos if they get done. > >I have access to a full blown digitizing suite and a engineer to tweak it. >We can take VHS, SVHS or Beta (If anyone has a REAL camera :-) I can out put >AVI(any codec), QT(any codec) and MPEG (We have a realime encoder) We do a >LOT of video for our projects, we are pretty darn good at it and have the >equipment to tweak it till it looks great. > >I can't offer anything in the way of editing but if some one can get me a >finished tape I could digitize it pretty darn quickly. > >adam hill... > >> -----Original Message----- >> From: JArchibald@aol.com [mailto:JArchibald@aol.com] >> Sent: Friday, November 06, 1998 3:10 PM >> To: squeak@cs.uiuc.edu >> Cc: JArchibald@aol.com >> Subject: Re: The Message and the Morphs [was: Where can I get some >> etoys?] >> >> >> In a message dated 11/5/98 7:04:46 AM Eastern Standard Time, >> johnson@cs.uiuc.edu writes: >> >> << bet that we would all benefit if Alan were to make some videos >> of playing with Morphs and we were to put them on the web. >> >> >> I personally like the idea of some videos--could we convince Alan that we >> think it's worth his time? >> >> Jerry. >> >> From lex at cc.gatech.edu Thu Nov 12 03:32:08 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:18:12 2012 Subject: timezones Message-ID: <199811120332.WAA25235@cleon.cc.gatech.edu> Craig Latta wrote: > > Hasn't someone done a server on the Net that answers the delta from GMT for any given latitude-longitude pair? :) That might be useful. > I can see it now. Smalltalk lattitudeAndLongitude. Hords of people thinking, "if only Squeak had a driver for my GPS...." Lex From dan at gui.com Fri Nov 20 15:55:45 1998 From: dan at gui.com (Dan Shafer) Date: Sat Jan 28 04:18:22 2012 Subject: /. mentions squeak References: <365578CB.FD031AF3@netvision.net.il> Message-ID: <36559046.E42097C3@gui.com> While there are some in the /. community who are well-informed about it, a seemingly larger number seem intent on criticizing my characterization of the possible relationship of Squeak and Linux. On the show, I talked about the potential power of emedding Squeak into Linux as one way this might work. The rabid /. folks jumped on that to point out that I was obviously ignorant about Squeak since I didn't even know there was a Linux port. Sigh. Daniel Vainsencher wrote: > > Dan, > does the Squeak team mind the attention or may I post some more attractive info in > reply? > > Ryan Davis wrote: > > > http://www.slashdot.org/ just had a mention of us (about a mention of us). > > Check it out: > > > > Jim Thompson writes "Today's edition of Project > > Heresy at CNET News covers a very interesting new > > (?) project called Squeak by, of all people, The > > Disney Co. This project, targetted at embedded > > devices, has a Smalltalk heritage and is based, to > > some extent, on code from Apple. Apple required that > > Disney not commercialize their product, so Disney has released it as Open > > Source. Squeak is not itself an OS, but the Heretics speculate that Squeak > > will soon be married to a scaled-down linux kernel an ported to all > > sorts of > > handheld devices. Squeak sounds reasonably cool in that it's based on > > Smalltalk-80 and has what sounds like a built-in "skins" feature for > > its UI. > > Do any Slashdotters have more info on Squeak, on where to go for > > more information? " > > > > Ryan Davis -=- Zen Spider Software > > -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- > > I know that you believe you understand what you think I said but, > > I'm not sure you realize that what you heard is not what I meant. -- Dan Shafer, Looking at Technology from Every Angle Home Page: http://www.gui.com - Email: dan@gui.com There is nothing more powerful than an idea whose time has come. From alank at wdi.disney.com Thu Nov 5 17:06:49 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:18:26 2012 Subject: PROPOSAL: create the squeak-help list In-Reply-To: References: <3640F05C.9EE014D4@ipa.net> <199811050011.QAA28222@jasper.he.net> Message-ID: No, because the Swiki is dog-simple to use, no Squeak is necessary, that is one of its many charms. Cheers, Alan ---- At 4:46 PM -0000 11/5/98, Duane T Williams wrote: >>I like the "the person who asks the question updates the Swiki" rule -- >>it would have to be pasted into the Swiki by hand though. > >Let me see if I understand. The proposal is supposed to help beginners to >Squeak (and possibly to Smalltalk like environments in general), but in >order to get help the beginner has to first know how to use the Swiki. Do >I sense a slight circularity here? From ohshima at is.titech.ac.jp Thu Nov 12 09:57:20 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:18:34 2012 Subject: [sqh] Re: FormView and StandardSystemView In-Reply-To: Your message of "Wed, 11 Nov 1998 11:59:18 -0700" References: <3649DE86.183D25F6@email.sps.mot.com> Message-ID: <19981112095720.22449.qmail@n0ud.is.titech.ac.jp> Hello. > Have you received a reply to your question? I did not see > one on the mailing list. No. > I have been frustrated by a similar problem and I hoped > that the answer to your question would be the answer to > mine. I just created a subclass of StandardSystemController and override #checkForReframe method. Then I set its minimumSize equal to the size of the form, and its maximumSize equal to (minimumSize + (0@theView labelHeight)). This works, at least. But I don't think it is a 'right' way... > I want to learn how to display a form on a view and then > be able to corner drag the view to scale it. The code of 'FormView class>>open:named:' may help you. all you have to do is tocopy the code and set minimumSize and maximumSize appropriately. StandardSystemController will take the responsibility the scaling. Thank you. OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology From DanI at wdi.disney.com Thu Nov 12 15:06:49 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:18:34 2012 Subject: Good Public Domain info for Squeaking Message-ID: Folks - I have in mind a couple of fun Squeak aps, but I'd like them not to rely one proprietry material. So I would like to hear from anyone regarding Maps, covering the US Maps, covering the world Deck of cards Dictionary of english ideally with some flags and factored rules for purals, verb endings, etc Other interesting stuff bird calls star charts images of art and architecture Does anyone know a meta-solution to this? Are there good web sites or other repositories for such P.D. info and artwork? Obviously I can search this myself, but I'm hoping someone has already done this and can provide some guidance regarding what is good and not so. Thanks in advance for any help you can give. Maybe it would be best to reply direct to me, and I'll publish a summary of anything useful I find out in this regard. - Dan From gera at core-sdi.com Tue Nov 24 06:55:51 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:18:34 2012 Subject: Changeset Problems Message-ID: <365A5877.700F1DAA@core-sdi.com> While building the package for MorphicWrappers, we found a problem that we cannot reproduce right now, but I can describe: We had two classes, ClassWrapper and BitmappedWrapper, we renamed them to ClassMorphicWrapper and BitmappedMorphicWrapper, we made fileOut of the change set, and when we made fileIn from a fresh image, those renamed classes where missing. I'm not sure if it has something to do with renaming the classes (I tried to reproduce this behaviour, but I culdn't). What I do have is a .ZIP (2.5M) file with a .image and a ..changes that will have this problem. Problematic Bye! Richie++ From rlpcon at vermontel.net Wed Nov 11 17:32:06 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:18:43 2012 Subject: digest form of this list Message-ID: Is this mailing list (squeak@cs.uiuc.edu) available in digest form? If not, it might be a good idea given its heavy traffic. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From wirth at almaden.ibm.com Wed Nov 4 03:54:30 1998 From: wirth at almaden.ibm.com (wirth@almaden.ibm.com) Date: Sat Jan 28 04:18:44 2012 Subject: But what about Flash? (Re: Toward the next release...) Message-ID: <882566B2.000E46E0.00@d53mta01.boulder.ibm.com> Dan, You said: If you have other features that you feel should be included at this time, please send me a message. I will try to assemble a beta release about a week before the target date of issue. What about Flash? There was a tantalizing hint in your msg before OOPSLA (which I missed again; sigh...) but nothing in your msg about the next release. Or is that technology related to "Andreas Raab's as-yet-to-be-named resolution-independent outline-based anti-aliasing 2-D rendering engine"? I dearly hope so. It would be wonderful to get that technology into Squeak. Story for the uninitiated: ==================== Once upon a time, in the earliest days of the Mac, there was a company called Silicon Beach Software from San Diego (get it?), founded by Charlie Jackson. They produced a really cool bitmap drawing program, SuperPaint. I bought a copy from Charlie at his booth (a cardtable) at the Dallas MacWorld Expo, where he appeared in his trademark Hawaiian-print shirt. Silicon Beach Software was successful and was eventually bought by Aldus (creators of Pagemaker), which was in turn bought by Adobe. SuperPaint, long in the tooth, was forgotten. Charlie apparently used some of his money from the sale of SBS to found a new company, FutureWave Software (was this guy a surfer dude?), which created a new, really cool vector-based drawing tool, SmartSketch. I bumped into him again at his booth (better cardtable now) at the '91 (approximately; probably later) MacWorld Expo in SF. This new tool had two key features: 1. It used an innovative graph-theoretic data structure to represent the drawing elements. Thus, you could draw three strokes on the screen, which happened to intersect forming an inner triangle. The data structure would record all these intersections, segments, etc., so you could drop paint in the middle and it would flow to fill just the triangle. And since this was a vector-based representation, it was very compact and could be rotated, magnified, stretched, etc., without loss of detail. There was a whitepaper on the FutureWave website that described this "third generation" drawing tool and data structure, but the website is long gone (see below). 2. With this data structure, you could have the ease-of-use of a bitmap drawing program and the power of a vector-based program. I saw Charlie demoing the program to a couple 10-year old kids. He'd do a freehand shape; pick up part of the curve and drag it to change its shape (without any Bezier curve control points and handles like Illustrator). I asked him how you added a "corner" (i.e., hinge point). He said "Simple", took the erasure and rubbed out a section of the curve, took the pencil and drew in a cusp. When he picked up the curve on one side and pulled it out, the corner behaved like a hinge point! Even though they wrote SmartSketch in MFC (another story there) and introduced it on the PC first :-) I was blown away. I plunked down my money and walked away with a copy. Since the representation was so compact and resolution independent, it soon became obvious that the technology was great for doing key-frame animation. FutureWave did an animation authoring tool based on SmartSketch. And it was ideal for web-based content -- small, quick to download, really high quality animations. About this time, Macromedia was trying to adapt their Director technology to the web. But the bitmap-based Director movies were incredibly bloated and problematic even for CD-ROM access, much less over a modem. They produced a "compiler" (Shockwave) to compress the movies; but that was only a partial solution. So they bought FutureWave (Jan. '97, press release at http://www.macromedia.com/macromedia/proom/pr/1997/flashacq.html) and reintroduced the technology as "Flash" (now at version 3). Of course, Macromedia treated the "Flash" data structure as proprietary, to be protected at all costs. More recently, in the Internet/Web standards wars, Macromedia has decided to make the Flash format an "open standard" (Apr. '98, press release and pointers to the spec and sample code at: http://www.macromedia.com/macromedia/proom/pr/1998/flashstandard.html), where it will compete with an Adobe-sponsored XML/PostScript-based entry for mindshare. I presume it was this opening up of the format that made it possible for the Disney Squeak team to consider it. The press release on the FutureWave acquisition by Macromedia says it was a "stock-for-stock merger", i.e., no cash. I hope Charlie sold his Macromedia shares (didn't they take a dive in mid-'97?) and is enjoying a beach somewhere. ==================== So now you know where Flash came from (if you ever wanted to know :-) and a little bit about why I'm excited to see the technology appear in Squeak. What's the news, Dan? Mike Wirth From wDargel at shoshana.com Fri Nov 6 01:34:55 1998 From: wDargel at shoshana.com (William O. Dargel) Date: Sat Jan 28 04:18:46 2012 Subject: CrLfFileStream as default? References: <199809242238.SAA15081@cleon.cc.gatech.edu> Message-ID: <3642523F.64B8B82D@shoshana.com> Lex Spoon wrote: > If a file has a CRLF pair in it, and CrLfFileStream converts that to > a CR, then the idea of "position" gets messed up. It looks like > 1 character, but "file position" will act like 2 characters have > gone by. For CrLfFileStream to go the final mile, it should > probably have some code to make positions truly transparent to > the user. I've been bitten by the "position mismatch" in a number of places. Us poor windoze users probably get it more than most, having CrLf as the default. Attached is a change set that fixes the problems I've seen. Doing a 'save as' of the image messes up the source pointers to the changes file when the Cr's get written as CrLf's. I changed the copy to use 'binary' mode, which seems appropriate. Both #peek and #upTo: in StandardFileStream assume the 1:1 correlation between characters and positions. The re-writes for CrLfFileStream fix that. I'm sure there are other parts to the protocol that also need fixing -- I just haven't run across them yet. Also included is a #correctLineEndings method that makes a copy of a file while changing every type of line ending into the current default. I've found it to be handy in dealing with certain "problem" files where the line endings have been mixed and matched. I also explored the slowness of some file parsing I was doing. By changing CrLfFileStream>>next (and 3 other methods) I got better than a factor of 5 speed up. I agree with others here that the FileStream (and probably the whole Stream) hierarchy needs some rework to both clean it up and make it more flexible. However, I'm hoping that the attached changes can get incorporated into the standard image, while we figure out what we really want to do. I've added below the more detailed description from the change set. ------------------------------------------- Bill Dargel wdargel@shoshana.com Shoshana Technologies 100 West Joy Road, Ann Arbor, MI 48105 USA ------------------------------------------------------------------ Change Set: CrLfFileStream updates Date: 5 November 1998 Author: William O. Dargel Some bug fixes and enhancements for CrLfFileStream for Squeak 2.2. FileDirectory>>copyFileNamed:toFileNamed: - Set both files to #binary mode in order to make an exact copy. Fixes problem with 'saveAs' possibly converting Cr to CrLf in the changes file, thereby messing up the image offsets to the source code. CrLfFileStream>>peek - Fixes the erroneous assumption made in StandardFileStream that #next will always change the position by 1. Note that this implementation in CrLfFileStream could be promoted, replacing StandardFileStream's. CrLfFileStream>>upTo: - Fixes the assumption made by StandardFileStream that positions and character counts are directly correlated. Uses the simple, one character at a time implementation similar to PositionableStream. At one point I implemented a complicated buffer based version, but found that after optimizing #next, there was no appreciable speed difference between it and the simple version. CrLfFileStream>>next - Optimized to be about 5.5 times faster when just doing #next through a large file. This was accomplished by adding a caching instance variable for 'lineEndFirstCharacter', used instead of doing a dictionary lookup each time. This is updated whenever the line-ending convention is set. The speedup was measured for Windows (NT 4.0), and is predicated on a fairly efficient primitive for getting a single character from the file system, YMMV. CrLfFileStream>>lineEndConvention: - Setter method for lineEndConvention. Updates the 'lineEndFirstCharacter' caching instance variable. Also useful for explicit external control of the lineEndConvention on individual file instances. CrLfFileStream>>detectLineEndConvention - Uses the lineEndConvention: setter. Also changed to use a 'nil' lineEndConvention while it is operating in order to have next and peek operate in a basic manner. CrLfFileStream>>binary - Changed to use the lineEndConvention: setter. FileStream>>correctLineEndings - A utility that re-writes a file changing all flavors of line endings, Cr, Lf and CrLf, into the current CrLfFileStream default line ending. Makes use of a temporary file, renaming it after copying and deleting the original. I hooked this method up as an option on the FileList menu. 'From Squeak 2.2 of Sept 23, 1998 on 5 November 1998 at 8:23:18 pm'! "Change Set: CrLfFileStream updates Date: 5 November 1998 Author: William O. Dargel Some bug fixes and enhancements for CrLfFileStream for Squeak 2.2. FileDirectory>>copyFileNamed:toFileNamed: - Set both files to #binary mode in order to make an exact copy. Fixes problem with 'saveAs' possibly converting Cr to CrLf in the changes file, thereby messing up the image offsets to the source code. CrLfFileStream>>peek - Fixes the erroneous assumption made in StandardFileStream that #next will always change the position by 1. Note that this implementation in CrLfFileStream could be promoted, replacing StandardFileStream's. CrLfFileStream>>upTo: - Fixes the assumption made by StandardFileStream that positions and character counts are directly correlated. Uses the simple, one character at a time implementation similar to PositionableStream. At one point I implemented a complicated buffer based version, but found that after optimizing #next, there was no appreciable speed difference between it and the simple version. CrLfFileStream>>next - Optimized to be about 5.5 times faster when just doing #next through a large file. This was accomplished by adding a caching instance variable for 'lineEndFirstCharacter', used instead of doing a dictionary lookup each time. This is updated whenever the line-ending convention is set. The speedup was measured for Windows (NT 4.0), and is predicated on a fairly efficient primitive for getting a single character from the file system, YMMV. CrLfFileStream>>lineEndConvention: - Setter method for lineEndConvention. Updates the 'lineEndFirstCharacter' caching instance variable. Also useful for explicit external control of the lineEndConvention on individual file instances. CrLfFileStream>>detectLineEndConvention - Uses the lineEndConvention: setter. Also changed to use a 'nil' lineEndConvention while it is operating in order to have next and peek operate in a basic manner. CrLfFileStream>>binary - Changed to use the lineEndConvention: setter. FileStream>>correctLineEndings - A utility that re-writes a file changing all flavors of line endings, Cr, Lf and CrLf, into the current CrLfFileStream default line ending. Makes use of a temporary file, renaming it after copying and deleting the original. I hooked this method up as an option on the FileList menu. "! StandardFileStream subclass: #CrLfFileStream instanceVariableNames: 'lineEndConvention lineEndFirstCharacter ' classVariableNames: 'Cr CrLf Lf LineEndDefault LineEndStrings LookAheadCount ' poolDictionaries: '' category: 'System-Files'! !FileDirectory methodsFor: 'file operations' stamp: 'wod 11/5/1998 18:41'! copyFileNamed: fileName1 toFileNamed: fileName2 "Copy the contents of the existing file with the first name into a new file with the second name. Both files are assumed to be in this directory." "FileDirectory default copyFileNamed: 'todo.txt' toFileNamed: 'todocopy.txt'" | file1 file2 buffer | file1 _ (self readOnlyFileNamed: fileName1) binary. file2 _ (self newFileNamed: fileName2) binary. buffer _ String new: 50000. [file1 atEnd] whileFalse: [file2 nextPutAll: (file1 nextInto: buffer)]. file1 close. file2 close. ! ! !FileStream methodsFor: 'as yet unclassified' stamp: 'wod 11/5/1998 17:46'! correctLineEndings "Correct the line-endings in the receiver by writing a new copy of the file. All combinations of line-endings found, Cr, Lf and CrLf, are converted into the default used by CrLfFileStream." | tempName out char | tempName _ self directory fullNameFor: '~LinEnd~.tmp'. out _ CrLfFileStream newFileNamed: tempName. self reset. [self atEnd] whileFalse: [char _ self next. char == Character cr ifTrue: [out cr. self peek == Character lf ifTrue: [self next]] ifFalse: [char == Character lf ifTrue: [out cr] ifFalse: [out nextPut: char]]]. self close. out close. self directory deleteFileNamed: self name. self directory rename: tempName toBe: self name.! ! !CrLfFileStream methodsFor: 'open/close' stamp: 'wod 11/5/1998 17:31'! lineEndConvention: aSymbolOrNil "Set the line-ending convention of the receiver to be #cr, #lf, #crlf, or nil." lineEndFirstCharacter _ aSymbolOrNil ifNotNil: [(LineEndStrings at: aSymbolOrNil) first]. ^ lineEndConvention _ aSymbolOrNil. ! ! !CrLfFileStream methodsFor: 'access' stamp: 'wod 6/18/1998 14:00'! binary super binary. self lineEndConvention: nil! ! !CrLfFileStream methodsFor: 'access' stamp: 'wod 11/5/1998 15:01'! detectLineEndConvention "Detect the line end convention used in this stream. The result may be either #cr, #lf or #crlf." | char numRead pos | self isBinary ifTrue: [^ self error: 'Line end conventions are not used on binary streams']. self lineEndConvention: nil. numRead _ 0. pos _ self position. self position: 0. [self atEnd not and: [numRead < LookAheadCount]] whileTrue: [char _ self next. char = Lf ifTrue: [self position: pos. ^ self lineEndConvention: #lf]. char = Cr ifTrue: [self peek = Lf ifTrue: [self lineEndConvention: #crlf] ifFalse: [self lineEndConvention: #cr]. self position: pos. ^ lineEndConvention]. numRead _ numRead + 1]. self position: pos. ^ lineEndConvention ifNil: [self lineEndConvention: LineEndDefault]! ! !CrLfFileStream methodsFor: 'access' stamp: 'wod 11/5/1998 17:49'! next | char secondChar | char _ super next. self isBinary ifTrue: [^char]. char == Cr ifTrue: [secondChar _ super next. secondChar ifNotNil: [secondChar == Lf ifFalse: [self skip: -1]]. ^Cr]. char == Lf ifTrue: [^Cr]. ^char! ! !CrLfFileStream methodsFor: 'access' stamp: 'wod 6/18/1998 13:52'! peek "Answer what would be returned if the message next were sent to the receiver. If the receiver is at the end, answer nil. " | next pos | self atEnd ifTrue: [^ nil]. pos _ self position. next _ self next. self position: pos. ^ next! ! !CrLfFileStream methodsFor: 'access' stamp: 'wod 11/5/1998 14:15'! upTo: aCharacter | newStream char | newStream _ WriteStream on: (String new: 100). [(char _ self next) isNil or: [char == aCharacter]] whileFalse: [newStream nextPut: char]. ^ newStream contents ! ! From mklein at alumni.caltech.edu Tue Nov 10 08:16:07 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:18:47 2012 Subject: Frivolity was: Units package (was Method names) In-Reply-To: <3647E02A.75A53565@NetJam.ORG> Message-ID: > > How in the world are you goind to define #per ???? > > > > Also, #squared would square the whole result, not just the last unit. > > >>per could answer some funky thing like a fraction which has yet to > get a denominator. That thing could know that >>squared means to square > the denominator. Actually, in context, squared associates just with the immeadiately leftmost unit. As for #per, I think you are underestimating the amount of funkiness required to pull this off given Smalltalk semantics. > I think there's a fair way to go before it gets rediculous. :) I like > it so far. I think we've run the only traffic light in the Ridiculous town limits. > Smalltalkers do: [:it | All with: Class, (And love: it)] I tried evaluating this in Squeak.... It corrected it to: Smalltalk do: [:it | Url with: Class, (AbstractSound leave: it)] Is there something I should file in first :-? I particularly liked the way Squeak corrected #love: to #leave: I wonder if the system is trying to tell me something. From sqrmax at cvtci.com.ar Tue Nov 3 04:34:59 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:18:53 2012 Subject: Float>>#rounded Message-ID: <017c557340403b8MAIL2@cvtci.com.ar> Hi. Why isn't Float>>#rounded implemented as a primitive? I think most FPUs have this nice feature... Andres. From patrickl at servio.gemstone.com Mon Nov 23 19:10:00 1998 From: patrickl at servio.gemstone.com (Patrick Logan) Date: Sat Jan 28 04:18:56 2012 Subject: Squeak Performance as a Web Server In-Reply-To: <199811231840.NAA17548@cleon.cc.gatech.edu> References: <199811231840.NAA17548@cleon.cc.gatech.edu> Message-ID: >>>>> "Lex" == Lex Spoon writes: > Patrick Logan wrote: >> I would get one of the real Web servers like Apache. I am >> currently trying out the AOLserver, which is also free and >> full-featured. I would connect one of these Web servers to >> Smalltalk... Lex> Once you've got "parse a request" and "lookup a handler", Lex> what more features does a web server need? The benefits depend on your needs. Here are some things on the AOLserver feature list that I would rather use than build myself: * Web-based Administration * Fast and efficient handling of simultaneous connections through a combination of multi-threading, in-memory caching, and single-threaded asynchronous I/O. * Multihomed Architecture * Secure Sockets Layer * Hierarchical Access Control - Restrict access to all or part of your Web through lists of users, groups, and/or client address * FTP Server - Uses the same access control as the HTTP server and lets you write scripts that run every time pages are uploaded or downloaded * SHTML server-side includes * etc. -- Patrick Logan mailto:patrickl@gemstone.com Voice 503-533-3365 Fax 503-629-8556 Gemstone Systems, Inc http://www.gemstone.com Now they have Isomighty Apomorphin Power LaGrangers. Kids. From Ian.Piumarta at inria.fr Thu Nov 26 13:24:40 1998 From: Ian.Piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 04:19:04 2012 Subject: Squeak 2.3 beta available Message-ID: <199811261324.OAA26868@tif.inria.fr> 2.3beta for Intel/Linux, Sparc/{Solaris,SunOS}, Alpha/DU4.0 are at: ftp://alix.inria.fr/pub/squeak/unix/2.3beta/ The image/changes files are not there, simply due to lack of space. I'll clear out some old stuff to make room for these files when 2.3proper arrives. For now, image/changes are at: ftp://st.cs.uiuc.edu/Smalltalk/Squeak/2.3/Squeak2.3beta.{changes,image} I've not tested these VMs, beyond launching the vanilla 2.3 image and totally failing to puzzle in the slightest any of the local sheep. In particular, I've not tried to use the new dynamic primitive stuff. Let me know if there are any problems. Enjoy. Ian From danielv at netvision.net.il Fri Nov 20 14:18:58 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:19:05 2012 Subject: ummm... morphic errors References: Message-ID: <36557A52.4F3389A8@netvision.net.il> Well, I'd be interested in this further explanation. IMHO, a detailed post would be appropriate to the list, though maybe two posts, one detailed, the other less so, would be best. SWallace wrote: > At 9:25 PM -0800 11/17/98, Ryan Davis wrote: > >"Sorry, for the moment you cannot tear off a new anonymous script for any > >instance of a uniclass other than the flagship instance. If this makes no > >sense to you, you surely got here in error" > > > >That is one of the better dialogs I've seen in a long time. :) So, anyone > >care to tell me what I did? > > Ryan, > > Well, gosh, I was wondering when that one would first surface! It's been lurking there for more than six months. > > As the jargon in the error message suggests, this stuff isn't ready for prime time yet. > > The message came up because you had a morph that had been scripted; you then used the menu item "make another instance of me" to get a second instance of it; then you brought up a Viewer on that new instance; and finally you dragged a phrase from that new Viewer and tried to drop it. Innocent enough! > > -- Scott > > PS: The strange error message cited will be gone from Squeak 2.3, and the sometimes-irrecoverable state that could ensue when the sequence is performed inside a Morphic project will also be fixed. Thanks! > > PPS: My first draft of a response to this was a full page of text describing in detail what "anonymous scripts", "uniclassees", and "flagship instances" were and explaining the dilemma for which the error message was a bailout. On further review, it was obvious that such a response was not appropriate for the Squeak list. However, anyone interested in knowing more about this stuff is welcome to email me privately and I'll be glad to forward the details. From kdriedge at crosskeys.com Thu Nov 12 15:27:57 1998 From: kdriedge at crosskeys.com (Kevin Driedger) Date: Sat Jan 28 04:19:06 2012 Subject: Good Public Domain info for Squeaking Message-ID: Below is a reference to the Project Gutenberg's Websters Dictionary. They release public domain texts. Hope this satisfies the requirements. ftp://sailor.gutenberg.org/pub/gutenberg/etext96/pgwxz04.zip ]{evin. > -----Original Message----- > From: Dan Ingalls [SMTP:DanI@wdi.disney.com] > Sent: Thursday, November 12, 1998 10:07 AM > To: squeak@cs.uiuc.edu > Cc: recipient.list.not.shown; @cs.uiuc.edu@nfsbrute > Subject: Good Public Domain info for Squeaking > > Folks - > > I have in mind a couple of fun Squeak aps, but I'd like them not to rely > one proprietry material. So I would like to hear from anyone regarding > > Maps, covering the US > Maps, covering the world > Deck of cards > Dictionary of english > ideally with some flags and factored rules > for purals, verb endings, etc > Other interesting stuff > bird calls > star charts > images of art and architecture > > Does anyone know a meta-solution to this? Are there good web sites or > other repositories for such P.D. info and artwork? Obviously I can search > this myself, but I'm hoping someone has already done this and can provide > some guidance regarding what is good and not so. > > Thanks in advance for any help you can give. > > Maybe it would be best to reply direct to me, and I'll publish a summary > of anything useful I find out in this regard. > > - Dan > From mklein at alumni.caltech.edu Wed Nov 11 22:07:37 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:19:07 2012 Subject: What class should include "5 kilograms"? In-Reply-To: <871znandm6.fsf@streamer.msfc.nasa.gov> Message-ID: On 11 Nov 1998 stan@stanheckman.com wrote: > I agree that tensors and units should be bound together. But squeak doesn't > have very useful tensors yet. Should we wait on the units until the tensors > are done? The units package would be a little easier to write and a lot > easier to read if it had access to linear algebra objects. Of course you don't want to wait untill we have tensors. But neither do you want to forge ahead without considering them. I.E: Do NOT make UnitThingy a subclass of Number (or some such). I would declare UnitThingy two have instance variables ('units tensor'), and would only assing numbers to the tensor instVar untill I had other things like vectors and matrixes, etc. to try out. -- Mike P.S. I would probably also come up with a better name than #UnitThingy From jimm at io.com Wed Nov 4 14:00:27 1998 From: jimm at io.com (Jim Menard) Date: Sat Jan 28 04:19:12 2012 Subject: Double dispatch Message-ID: <199811041400.IAA03780@dillinger.io.com> Gang, I've seen quite a few references to double dispatching. What is that? URL's, pointers to docs, or a simple RTFM (but *which* FM) would be appreciated. Jim -- Jim Menard jimm@io.com http://www.io.com/~jimm/ BeOS developer #1283 "An object at rest cannot be stopped!" -- The Evil Midnight Bomber What Bombs At Midnight From joconnor at roadrunner.com Fri Nov 20 18:23:43 1998 From: joconnor at roadrunner.com (Jay O'Connor) Date: Sat Jan 28 04:19:17 2012 Subject: Squeak Performance Message-ID: <98112011293906.00448@localhost.localdomain> All, Hi. I'm using VisualWorks NC on Linux and have Squeak as well. I was going to be using VWNC for a semi-commercial usage but I may not be able to afford it commercially. I'm using it for a Web Server (using a Web Server I built in VW similar in concept to the Squeak PWS and an HTML framework I wrote). I'm curious if Squeak has general performance good enough to investigate using it as a web server. Thanks and take care, -- Jay O'Connor joconnor@roadrunner.com http://www.roadrunner.com/~joconnor "God himself plays the bass strings first when He tunes the soul" From raab at isgnw.CS.Uni-Magdeburg.De Mon Nov 2 17:07:16 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:19:43 2012 Subject: some not-so-random questions In-Reply-To: <363DE4C4.4953E8FC@netgenics.com> from "Jason Karney" at Nov 2, 98 11:58:44 am Message-ID: <199811021707.SAA15835@monet.cs.uni-magdeburg.de> > First, what is the latest and "official" version of the Win32 port of the VM? My > first download of Squeak 2.2 (as a complete zip archive) included a VM called > "SqueakBeta.exe." As the name says, this was a beta version ;-) > Then I got a distribution whose VM binaries are "Squeak.exe" > and the jitter version, "SqueakJ.exe" Then while browsing the Swikis this > morning, I saw a notice that Squeak for Win32 was going back to a single VM. Where did you read this?! I haven't seen nor stated it. Even though the Jitter VM is not as stable as the interpreter VM and hopefully to be replaced soon by Jitter II (Ian, how's going?!) it is still supported on most systems. > Second, does anybody have any suggestions for optimizing Squeak running on a > 90Mhz pentium laptop with 8M ram? Some operations (and morhpic in general) bog > the system down. I thought perhaps the vm has options to control initial memory > allocation, or some such things. I doubt it - running Morphic on a 90Mhz Pentium is a hard thing to do (but I'm a hero - I've been running Morphic on a DX2/66 ;-)) It's even harder if you have only 8MB of RAM. But if you want to try then start Squeak with Squeak -memory: NN Squeak2.2.image where NN is number of MB of memory to use (note the space before NN). > Thanks! You're welcome, Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From elcm at pacbell.net Wed Nov 4 20:22:55 1998 From: elcm at pacbell.net (Eliot & Linda) Date: Sat Jan 28 04:19:49 2012 Subject: some not-so-random questions References: Message-ID: <3640B79F.6FD5@pacbell.net> Tim Rowledge wrote: > Expanding the memory allocation for Squeak should not be too difficult in most > cases. For Unix, sbrk() ought to work. For Acorn, resizing the dynamic area is > trivial. I _think_ Mac's finally got some way to expand memory a while ago. > Windows? Hmm, how about actually allocating a huge virtual space but pretending > to the VM that you only have as much as the -memory param asked for. Then to > expand, you just change that 'fake' boundary. The only trick that springs to > mind is remembering to reset the size of the free chunk at the top of memory. > > Shrinking object space wouldn't be much harder from the VM point of view, > though I'm not sure whether the released memory would get back to the OS pool > very efectively. While sbrk would work its not at all ideal. Its much better to use mmap, and on Windows to use VirtualAlloc. Don't yet know what to use on Macs, but there's presumably some analogous function. What these functions do is map a chunk of address space and associated backing store into the process address space. The big advantage they have over normal sbrk is one _can_ unmap the memory and backing store, shrinking the process's footprint, and the memory _is_ released back to the OS pool. We added the ability to shrink memory in VW 2.5.2, and its now being used in real server applications. > The real problem with both expansion and shrinking is the policy decision of > when to do it. VW has quite a complicated policy implemented in the image, with > hooks to change it almost any way you want. IIRC almost no customer ever > changed anything, they just complained that the default wasn't good enough for > them! In fact, we did a better policy for VisualWave. VisualWave is an extension to VW that allows applications to output HTML and hence be used through web browsers. In the web context one can have an arbitrary number of users using the system, and the new memory policy was built to provide more graceful degradation in the presence of large numbers of users. VW's memory policy really does need to get extended to automatically shrink memory. Its not that hard; one simply needs to provide sufficient hysteresis. But we can say that having an image level scheme for controlling memory is a *good thing*. We use MemoryPolicy and ObjectMemory for the policy/mechanism split, and it works well; one can plug-in new memory policies (e.g. for Wave) as required. Essentially the VW memory policy does the following - handle allocation failures (new & new: primitives that fail due to low space) and decide whether to garbage collect or grow. Currently there's just a simple threshold below which growth is favoured, and above which garbage collection is favoured. But one can imagine more sophisticated memory policies that interrogate the running app to decide what's required - handle low space and decide whether to run just the incremental gc, or the full gc, or to interrupt the "current process". Deciding what the current process is is hard, and the default choice of the currently active user-interface process isn't always the right choice. I expect we'll add a post-GC action which will attempt to shrink memory if the total amopunt of free space is greater than some minimum freespace threshold. _______________,,,^..^,,,_______________ Eliot Miranda, ParcPlace Aspect, ObjectShare From dwighth at ipa.net Sun Nov 15 04:52:24 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:19:53 2012 Subject: HELP with font sizes on browsers etc. References: <199811150327.VAA05615@mail11.jump.net> Message-ID: <364E5E08.500FF34E@ipa.net> Tim Olson wrote: > >If someone could please point me to where to adjust the font size values, > >i'd be very grateful. > > Try: > > TextStyle changeDefaultFontSizeBy: 1 > > Then close and re-open any existing windows. > > -- tim If you need to make the default font _much_ larger (for a presentation maybe, or if you are visually impaired) do the same with: TextStyle changeDefaultFontSizeBy: 2 Open up a menu to see what the effect was - if you like it, do as above and save the image. -- Dwight From stan at stanheckman.com Wed Nov 11 21:21:30 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:19:56 2012 Subject: What class should include "5 kilograms"? In-Reply-To: Dan Ingalls's message of "Tue, 10 Nov 1998 20:52:13 -0800" References: Message-ID: <87zp9ylycl.fsf@streamer.msfc.nasa.gov> < make dimensioned quantities into subclass of Number. > < file in new coercion methods from squeak central. > < write three simple methods adaptToFloat, adaptToFraction, and adaptToInteger> < everything just works > Hey this new coercion package is great. Really easy to use. < realize I'm supposed to also write adaptToDimensionedNumber > < it too is easy to write, and everything still just works > Yep, this coercion package is wonderful. < realize I ought to *send* adaptToDimensionedNumber messages > Sure, that will be no problem, this coercion package is wonderful. < write some really ugly code > Um, well, kind of wonderful, I guess. < potter some more with the code > Better, but coercions are still merely "kind of wonderful". :-) Here's what I found awkward: The coercion method has us cast numbers up to a more general number type, then do an operation between two objects of the general type. But in the course of that operation, I found that I sometimes had to check to see whether one of the objects was "really" of the less general type. (We don't want to raise anything to the power "3 meters".) So my first iteration of the code was turning Floats into DimensionedNumbers with no dimensions, then, because I could no longer tell from their type, asking them to iterate over their dimensions and check that they were all zero. Yuck. The current version (http://stanheckman.com/a/98h/glimpsedotter) uses a helper class DimensionlessNumber that lives at the same level of the coercion hierarchy and knows how to do arithmetic with dimensioned numbers. This is not so awful, but not as nice a fit with the coercion scheme as Integer, Fraction, and Float manage. -- Stan From janb at pmatrix.com Wed Nov 4 00:32:36 1998 From: janb at pmatrix.com (Jan Bottorff) Date: Sat Jan 28 04:19:56 2012 Subject: Squeak security [changed from Re: A bit of header] Message-ID: <3.0.3.32.19981103163236.031e1308@mailhost.pmatrix.com> At 01:38 AM 11/3/98 -0300, sqrmax@cvtci.com.ar wrote: >What do you think about using one of the unused bits in the image header as >a flag to tell if the image was properly closed or not? This would allow the >VM to warn the user if he/she tries to open a not closed image. An example >of this is to open an image twice, which can result in a damaged changes file. If the goal is to prevent changes corruption, wouldn't it be better to open the changes file with exclusive sharing access? Mabey on the first time you write something to changes. I could easily imagine cases where you might want multiple instances of an image open, each in a different process, that never write to a changes file. For example, an end application image (people might actually want to deploy finished Smalltalk apps, not just live in the development environment). Or mabey some method of putting a checksum on an image. The very best case would be you put a digital signature on an image, not only would this prove the image was not corrupted, but could prove where it came from. The danger of viruses loading in an image seem quite real. Every time you fileIn a piece of random Smalltalk code, your image is in danger of getting infected. The Java folks have taken steps to prevent this, even the Microsoft folks have taken steps. Any kind of crypto support in Squeak might cause US export issues though :( Mabey instead of making armchair comments, I should look into what really might be done to improve Squeak security. Any pointers to previous Smalltalk security projects? - Jan ___________________________________________________________________ Paradigm Matrix Inc., San Ramon California "video products and development services for Win32 platforms" Internet: Jan Bottorff janb@pmatrix.com WWW http://www.pmatrix.com Phone: voice (925) 803-9318 fax (925) 803-9397 PGP: public key fingerprint 52 CB FF 60 91 25 F9 44 6F 87 23 C9 AB 5D 05 F6 ___________________________________________________________________ From tgriggs at keyww.com Wed Nov 4 17:53:25 1998 From: tgriggs at keyww.com (Travis Griggs) Date: Sat Jan 28 04:20:09 2012 Subject: Double dispatch References: <199811041608.KAA01009@sal.cs.uiuc.edu> Message-ID: <36409494.EF4AC870@keyww.com> Ralph Johnson wrote: > The best paper on double-dispatching was the one that Dan Ingalls wrote > for OOPSLA'86. But if you don't have the OOPSLA'86 proceedings, or the > CD with the first ten years of papers on it, you might read the paper > that Kurt Hebel and I wrote on it at > ftp://st.cs.uiuc.edu/pub/papers/patterns/double-dispatch.ps > > Our paper focuses on how to implement arithmetic, and on a tool > that we built to make double-dispatching easier. Another reference is both the GOF Patterns book, or the ST Companion version. Both give good descriptions of doube dispatching. The most common application of DD is with reference to the Numeric protocol. If you want to see DD math in Squeak, I've added something at the UIUC archive. There's also a little html overview therein that gives a terse description of DD. DD works well any time you have 2 or more object kinds which you must "mix" via some behavior, and neither of the objects coerces readily to the other. That last part is the key part. If you can coerce one or the other readily to the other, then you just coerce so that both are uniform, and then apply the "mixing" behavior (e.g. add the two). The original Squeak Math protocol does this. It works fine for the simple set of Integer, Fraction, Float, where one can basically define a heirarchy of supremacy. But what if you want to mix Points numerically with the simple numbers. Now the coercion method has to create a more hefty intermediate object in the coercion process, nevertheless, it's not too hefty. But if one wants to mix numbers with Collections of numbers, then what to do. Do you coerce the sole number up to an equally sized collection that contains all the same number, so that you can add the collections piecewise? Could get expensive! This is where DD begins to really pay off. The same is true if one adds Measured Values to the system. The Numeric protocol is not the ONLY place where DD works nice. Unfortunately, I think too often people just think that's the way math is done in Smalltalk, and forget the pattern behind it. Back when I worked in the dieing Nuclear industry, we wrote an Engineering Analysis and Design tool, which greatly assisted the engineer in deciding how to shuffle fuel assemblies at the end of the cycle. In that process, old fuel assemblies are taken out of the core and placed in the spent fuel pool to gather dust and be dealt with later. Some of the remaining fuel assemblies are shuffled around for power distribution reasonds. A truck (or two) comes in with fresh fuel assemblies to load into the core. Then you have this concept called symmetricity. The symmetricity for each reactor may be different than the next, usually octant or quadrant (reflected either across lines or rotated). The whole game of the tool we wrote then, was to provide a drag and drop interface to move assemblies around. There were basically three sites you could draw fuel from, and three sites you could place fuel at. But the rules in each case of combination were different for each case, and a couple weren't allowed. IOW, when moving assemblies from the truck to the core, you had to not just add one, but it's symmetric counterparts, also drawn from the truck. The solution (which blew the C/Fortran guys minds) was to use DD. When a drag op started, a crane object took hold of the assembly that was being moved. It also remembered where it had picked the assembly from. When the drag op ended, it would end over one of the three views. The message was the time, addFuel: aFuelAssembly from: aSite. The reciever (one of the three sources) would then use DD to dispatch back to aSite by typifying itself (e.g. takeFuel: aFuelAssembly forCore: aSite) and the correct behavior would be achieved. -- Travis Griggs Key Technology tgriggs@keyww.com Member, Fraven Skreiggs Software Collective - C for Sinking - Java for Drinking - Smalltalk for Thinking From Jarvisb at timken.com Wed Nov 4 16:09:33 1998 From: Jarvisb at timken.com (Jarvis, Robert P.) Date: Sat Jan 28 04:20:38 2012 Subject: Double dispatch Message-ID: I don't think DD is a language feature - it's an implementation issue. You can use DD in any language you like, but it seems to be especially valuable/common in Smalltalk. Of course my view on this is somewhat myopic as Smalltalk is the only "real" OO language I'm familiar with (I no longer consider C++ to be an OO language :-). Bob Jarvis The Timken Company >-----Original Message----- >From: Lyn A Headley [SMTP:laheadle@cs.uchicago.edu] >Sent: Wednesday, November 04, 1998 10:36 AM >To: rapp@lmr.com >Subject: Re: Double dispatch > >>>>>> "L" == L M Rappaport writes: > >[snip double dispatch is delegation] > > L> This is double dispatch - when you call Documents foreground > L> color, it instead goes to its instance variable and dispatches > L> the method there. Now granted this is a lot of trouble to go > >[snip] > > L> Hope this clears it up. OTOH, if I'm full of crap, I'm sure > L> someone will mention it! > >I'm afraid I must speak up here. I believe you are confusing >delegation with double dispatch. The way I understand it is that >double-dispatch is a *language* feature which looks up the method to >call based on the runtime type/class of *two* of its arguments rather >than simply the first as is the case with most OO languages. when I >say argument I really mean the object to which the message is sent, >but multi-dispatch languages usually use generic messages so the >object really *is* an argument to the method. > >confusing, huh? see Common lisp's CLOS for an example. > > >-Lyn From mafm at cs.uwa.edu.au Wed Nov 4 02:54:00 1998 From: mafm at cs.uwa.edu.au (Matthew McDonald) Date: Sat Jan 28 04:20:39 2012 Subject: about oss doc from MS In-Reply-To: <001301be0788$c62039e0$2e0cc5ca@hb.nudt.edu.cn> References: <001301be0788$c62039e0$2e0cc5ca@hb.nudt.edu.cn> Message-ID: <199811040254.KAA04095@parma.cs.uwa.oz.au> Hi Hans, > Folks: > It is I that sent the confidential doc of oss from M$ to Eric Raymond. I > am a fun of a little hacker group named "Aka" in China. Who need the > original oss doc( in Word97 format )? Please email to me. I'd love to have the original in word-97 format! Could you send me a copy, thanks. -- Matthew McDonald From whisper at accessone.com Sun Nov 15 01:40:03 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:20:50 2012 Subject: HELP with font sizes on browsers etc. Message-ID: <3.0.1.32.19981114174003.00943e70@accessone.com> Hi; I've looked high and low for where I could adjust the font sizes on the tools such as the transcript, system and class hierarchy browsers with no luck. I'm running a 17" monitor @ 1280x1024 and the eye strain is considerable. If someone could please point me to where to adjust the font size values, i'd be very grateful. Thanks, Dave LeBlanc From Craig.Latta at NetJam.ORG Wed Nov 11 02:38:48 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:21:04 2012 Subject: units In-Reply-To: References: <199811101916.LAA23658@interval.interval.com> Message-ID: <199811110228.SAA04044@interval.interval.com> Mike Klein writes: > OK, so when one of these funky non-mathematical objects gets passed to some > code that sends it the message #squared (intending on squaring), how do we > guess the right squared semantics, because you proposal will give the > wrong answer. Perhaps it's the wrong message at that point. In common practice natural language, one would need to delimit, e.g., "5 kilogram meters per second, squared". The delimiter is the comma before "squared". (In common practice technical notation, one would use parentheses and a superscript.) So perhaps sending >>, tells the Unit to "group" (the equivalent of the parentheses in technical notation). Then a succeeding >>squared squares the whole thing, as intended. Given your responses so far, I expect you'll *really* hate *this*. :) But hey, wasn't someone just wondering about alternate meanings for >>,? Here's one! > If all you are interested is in improved readability, why not: > > #(5 kilogram meters per second) asUnits > > or > > '5 kilogram meters per second' asUnits Some might say those notations are cumbersome by comparison. I myself start to have bad lisp flashbacks whenever I'm expected to balance parentheses. :) But I do tend to be able to keep track of commas. Your suggested alternatives are certainly more "classically Smalltalkish" though, sure. > Although it is easy to have messages like > > someDictionary keysCollect: someBlock > > do the same as > > someDictionary keys collect: someBlock > > I wouldn't want to go through the contortions you suggest to write > something like: > > things asOrderedCollection > > by writing: > > things as Ordered Collection I would never suggest that. I think the domain of units is one where these "contortions" might be useful. They allow frequently-encountered natural-language phrases to be scanned without modification, *and* without violating parsing constraints. I can't see any motivation for writing "things as Ordered Collection"; I would never say that in any other context. This is funny... I tend to yawn when people propose new extensions to things like literal array syntax. I have no qualms with just being a little verbose when I compose collections. But I think this units stuff is fun and potentially very useful, in its own little way. Lex writes: > However, it would be really nice if the underlying semantics were simple, too, as > opposed to merely *looking* simple. I think they are. I'm weird, though. > Okay, here are two specific proposals. First, instead of a generic #per, have > #perSecond, #perMinute, etc. I'd rather define the division and dimension concepts in as few places as possible and use polymorphism to do The Right Thing. >>perSecond feels just as odd syntactically to me as "per second", with the extra baggage of unredeemed redundancy. -C p.s. Mike writes: > What *should* (Class new new) do? In the current system, it should create a new instance of Class, then instantiate it. In particular, (Behavior new new) should instantiate a new Behavior, which you can then use for "lightweight" objects, or in the first steps of converting to a prototype-based system (to mention another classic can of worms :). For now, it's just a good way to hang; Class>>new could instead answer a better-initialized thing. -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From zss at ZenSpider.com Tue Nov 10 05:12:53 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:21:09 2012 Subject: morphic scripting In-Reply-To: References: Message-ID: [major snip] >Thanks for your interest in our early experiments in morphic scripting. >Obviously, this work is in a preliminary state; it does a few things well >and many other things not-so-well or not-at-all. At the moment, it's much >more suited for the presentation of suggestive demos in the hands of >people who already know precisely what they're doing, and not really >well-suited at all to the true novice user, nor to the accomplished >Smalltalk programmer who wants to be able to remain in complete control of >everything. As time goes on, we intend to evolve this facility outward in >both of these directions. Very cool. Thanks for the very complete reply... Yes collision detection would be very nice. I will soon require something more complete than the current facilities allow (detecting one color only, or based on color alone, is not sufficient for a 9 year old (for more than 10 minutes)). The demo/doc was very easy to go through and helped a lot. W/O it, I have simply been avoiding morphic... (and downloading very boring ports of logo for the mac). I assume that a couple more features and I can do everything _I_ can think of that a 9 yo would want initially... Noises, color, custom graphics, movement and interaction. If I can get collision detection (incl. knowledge of WHAT I touched), and possibly a more complete physics model (mass and velocity!!!), I can rock this kid's world... Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From raab at isgnw.CS.Uni-Magdeburg.De Thu Nov 26 16:06:43 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:21:13 2012 Subject: So, how do you stop execution In-Reply-To: <19981126155248.5573.rocketmail@send203.yahoomail.com> from "Bruce O'Neel" at Nov 26, 98 07:52:48 am Message-ID: <199811261606.RAA02136@gaugin.cs.uni-magdeburg.de> > So, how does one stop execution? FWIW, I'm on a mac. Thanks! Not really sure what you mean by "stop execution" (of what?) but you might try the Cmd-. (period) combination to interrupt Squeak at what it's doing at the moment. Hope this helps, Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From james at foster.net Fri Nov 27 16:17:06 1998 From: james at foster.net (James Foster) Date: Sat Jan 28 04:21:34 2012 Subject: Squeak MIDI and Mac Serial Ports Message-ID: <008301be1a21$b0156e30$2b02010a@jgfoster-tp760> When I was writing code that used the serial driver I found a utility that forced a close of the serial port (since my code did not always word!). A search on CompuServe's Mac forums found something named CommCloser by Ron Grunwald from 1995. The file is 11kb in size and I've sent it directly to Mark. I don't know if attaching will work, however, since my daytime machine is Wintel. James Foster james@foster.net -----Original Message----- From: Mark Guzdial To: squeak@cs.uiuc.edu Date: Wednesday, November 25, 1998 1:15 PM Subject: Squeak MIDI and Mac Serial Ports >Does anyone know how to make Squeak let go of a Mac serial port after it >uses it (say, for a MIDI interface)? On my G3 Powerbook, I have one lone >serial port. After using it for MIDI-ing, I wanted to backup my PalmPilot, >but it insisted that Squeak still had the serial port -- despite moving >back to internal synthesizer, and despite quitting Squeak. I could backup >after restart. > >It's not a huge deal (I don't backup that often :-), but if there's an easy >solution (a Mac-centric thingie? A Squeak expression to evaluate?), I'd >appreciate it. > >Thanks! > Mark > >-------------------------- >Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 >(404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu >http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html > > From marcus at ira.uka.de Thu Nov 5 18:07:37 1998 From: marcus at ira.uka.de (Marcus Denker) Date: Sat Jan 28 04:21:49 2012 Subject: But what about Flash? (Re: Toward the next release...) In-Reply-To: <3641E448.73C37FC2@ipa.net>; from Dwight Hughes on Thu, Nov 05, 1998 at 11:45:44AM -0600 References: <882566B2.0068B04F.00@d53mta01.boulder.ibm.com> <3641E448.73C37FC2@ipa.net> Message-ID: <19981105190737.A892@ira.uka.de> On Thu, Nov 05, 1998 at 11:45:44AM -0600, Dwight Hughes wrote: > For those who would like to know more about TrueType, take a look at the > Apple Font/Tools Group page -- it has the complete TrueType Reference > Manual on line, plus more goodies on fonts: > > http://fonts.apple.com/ > Another interesting thing is the freetype Project: http://www.freetype.org/ |What is FreeType | |The FreeType engine is a free and portable TrueType font rendering engine. |It has been developed to provide TT support to a great variety of platforms |and environments. | |Note that FreeType is a library. It is not a font server for your favorite |platform, even though it was designed to be used in many of them. Note also |that it is not a complete text-rendering library. Its purpose is simply to |open and manage font files, as well as load, hint and render individual |glyphs efficiently. You can also see it as a "TrueType driver" for a |higher-level library, though rendering text with it is easy, as demonstrated |by the test programs. | |FreeType is a clean-room implementation that is not derived from the |original TrueType engine developed by Apple and Microsoft. It has been |created with the sole help of the published TrueType specifications, which |to our great surprise (and pain) turned out to be extremely poor or |misleading in critical areas. Much hard work has been undertaken to solve |ambiguities. The end result is a portable and fast renderer. | |Its quality matches these of Windows and the Macintosh, while its memory |foot-print and code size (between 48 and 55 kByte of Intel code) remain |modest. A thing that cannot be said for most other commercial engines |available. -- Marcus Denker marcus@ira.uka.de fon@home:(0721)614235 @work:(0721)608-2749 From tgriggs at keyww.com Thu Nov 12 19:28:13 1998 From: tgriggs at keyww.com (Travis Griggs) Date: Sat Jan 28 04:21:53 2012 Subject: Porting to VW Message-ID: <364B36CC.E53E4A68@keyww.com> Has anybody had any luck using Squeak fileouts to filein to VW? I have some Squeak stuff I want to play with in VW. I figured out the methodsFor:stamp:, that was easy. But this commentStamp:prior: message... making that be a pass through to comment:, does not seem to work. It appears that in VW fileout format, the comments are dealt with as just straight message sends, whereas in Squeak they are done using the chunk format. -- Travis Griggs Key Technology tgriggs@keyww.com Member, Fraven Skreiggs Software Collective - C for Sinking - Java for Drinking - Smalltalk for Thinking From dnsmith at watson.ibm.com Wed Nov 4 21:05:47 1998 From: dnsmith at watson.ibm.com (David N. Smith) Date: Sat Jan 28 04:21:58 2012 Subject: Units package (was Method names) In-Reply-To: Message-ID: At 4:09 -0500 11/4/98, JArchibald@aol.com wrote: >Dave Smith (of IBM Research) did a units package of some completeness many >years ago. I was surprised when he did it how much it clarified things in >certain cases. This stuff may be in his book (early one). > >Jerry. Jerry: I still have that code someplace, probably. Since I wrote it I have run into two guys who wrote a much better, open ended (ie, define your own units), and much faster package for the engineering department of a large aerospace(?) company. The technique used to make it really fast should have been patented but the company they worked for didn't want to do it. They were going to publish, and at one point we agreed I'd even write the paper, but somehow it never got done. Anyhow there is a truly neat trick which can let units accumulate (ie, feet cubed * seconds squared * meters) and rapidly figure out later what's included. I'll send some mail and see what the current state of publicity is. Dave _______________________________ David N. Smith IBM T J Watson Research Center Hawthorne, NY _______________________________ Any opinions or recommendations herein are those of the author and not of his employer. From rmcilhar at sanctuary.smart.net Sun Nov 1 20:01:36 1998 From: rmcilhar at sanctuary.smart.net (Rob McIlhargie) Date: Sat Jan 28 04:22:05 2012 Subject: Porting squeak to the Alpha Message-ID: <19981101150136.B8136@sanctuary.smart.net> Hi Everyone, I'm trying to compile the Squeak v2.2 VM on Alpha GNU/Linux(Linux on the DEC Alpha microprocessor), but it won't run at all. I've made the appropriate changes to the sqConfig.h and GNUmakefile.conf and sqXwindow.c. It compiles with a lot of warnings. It won't run because time_t on a 64-bit architeture is greater than 4. I commented out the check for sizeof(time_t)!= 4 and now I get a core dump. It looks like this is caused by converting pointers to integers, which causes a loss of precision since pointers are 64 bits and integers are 32 bits. Does anyone know how this code runs on Alpha OSF/1? Thanks in advance. -- ------------------------------------------------------------------------------ Rob. | http://www.smart.net/~rmcilhar/ rmcilhar@smart.net | rmcilhar@sanctuary.smart.net | POWERED by LINUX!!!! ------------------------------------------------------------------------------ From zhan1 at uiuc.edu Mon Nov 9 10:14:33 1998 From: zhan1 at uiuc.edu (John (Zhijiang) Han) Date: Sat Jan 28 04:22:08 2012 Subject: Socket In-Reply-To: Message-ID: I'm wondering how could you make a socket (created by socket := createIfFail: [] and the result was not nil) invalid, besides doing socket destroy (explicitly or implicitly, like snapshot.) Is it possible for a socket being both invalid and connected? I mean are those states (shown in Socket class>>#initialize) mutually exclusive? Cheers John (Zhijiang) From jason at netgenics.com Tue Nov 10 17:52:23 1998 From: jason at netgenics.com (Jason Karney) Date: Sat Jan 28 04:22:24 2012 Subject: [sqvm] squeak vm startup (interpreter?) Message-ID: <36487D57.5001C29D@netgenics.com> (Note the usage of a tagged subject line, hee hee :-) I am trying to poke about in the VM; specifically, I'm trying to learn how the interpreter loads in image and starts running. Any pointers (or high-level roadmaps) would be appreciated. Thanks! Jason From Jerome.Garcia at wj.com Mon Nov 2 17:52:22 1998 From: Jerome.Garcia at wj.com (Jerome Garcia) Date: Sat Jan 28 04:22:33 2012 Subject: Method names Message-ID: <001475E0.C21407@wj.com> Sorry to jump in but parse trees again! As this message and the others in this thread mentioning parse trees indicate, having to parse text has its bad points. I think the problems with the more readable forms mentioned all go away if you edit the parse tree directly using an editor that displays the parse tree as text with appropriate visuals to indicate "types" of elements displayed. A comment is just another node in the tree and is visually identifiable as such. Jerome -- Jerome E. Garcia jegarcia@adventurousmind.com ______________________________ Reply Separator _________________________________ Subject: Re: Method names Author: Vassili Bykov at INTERNET Date: 11/2/98 2:45 PM At 01:37 PM 11/2/98 +0800, Matthew McDonald wrote: >It looks like the main difficulty would be that the resulting language >couldn't be parsed without extra information - you'd need to know >whether or not there was a message called #next:bits to decide whether >or not "aBitStream next: 40 bits" meant ((aBitStream next: 40) bits). [Incidentally, that would be (aBitStream next: (40 bits))] Knowing what method selectors exist in the image would not be enough. If there existed #next:bits, #next:, and #bits, you would not be able to tell which interpretation of " next: bits" was the proper one without knowing (and you can't) the types of the expression results. What's even worse, in a dynamic environment where selectors come and go, adding or removing a selector would mean potentially changing the parse tree of some of the already compiled methods. --Vassili -- Vassili Bykov vassili@objectpeople.com The Object People http://www.objectpeople.com +1(613)225-8812 "Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp." -- Greenspun's Tenth Rule of Programming From mklein at alumni.caltech.edu Tue Nov 10 20:53:38 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:22:39 2012 Subject: units In-Reply-To: <199811101916.LAA23658@interval.interval.com> Message-ID: > > > > 5 kilogram meters per second squared > > > > Actually, in context, squared associates just with the > > immeadiately leftmost unit. > > Sure, and the thing answered by (5 kilogram meters per second) knows this also. > > > As for #per, I think you are underestimating the amount of funkiness > > required to pull this off given Smalltalk semantics. > > Not at all. >>per could answer an instance of a new class called "CompositeUnit" or somesuch, which performs dimensional analysis algebra. It could have a "numerator" of (5 kilogram meters), and a "denominator" which is set by the ensuing >>second. I think it's quite doable. OK, so when one of these funky non-mathematical objects gets passed to some code that sends it the message #squared (intending on squaring), how do we guess the right squared semantics, because you proposal will give the wrong answer. If all you are interested is in improved readability, why not: #(5 kilogram meters per second) asUnits or '5 kilogram meters per second' asUnits Although it is easy to have messages like someDictionary keysCollect: someBlock do the same as someDictionary keys collect: someBlock I wouldn't want to go through the contortions you suggest to write something like: things asOrderedCollection by writing: things as Ordered Collection -- MIke Although I obviously don't mind considering them. What *should* (Class new new) do? From gera at core-sdi.com Fri Nov 13 21:40:11 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:22:47 2012 Subject: Anyone using alternative input devices with Squeak? References: <01BE0BAE.B506F660@rdutlp18a7.impsat.net.ar> Message-ID: <364CA73B.643A57DD@core-sdi.com> Ale asked: > Does anoyone know any low cost VR globes ? I started a project to do one with some friends some time ago, but we didn't finished it, BUT a friend of mine have done one lately, it's very cheap and easy to do (I will ask him to make one for me... I'll let you know), it's not as good as I would like, but it's something: it can only measure a finger closing to the palm, not lateral moves nor twisting. And it only has one sensor per finger (which is better than nothing, but not as good as three, as it should be) It only uses a LED (light) per finger, and LDR (light level detection) and a hose. It measures how much each hose is folded. Folded Bye! Richie++ From tim at jumpnet.com Sun Nov 15 03:28:30 1998 From: tim at jumpnet.com (Tim Olson) Date: Sat Jan 28 04:22:50 2012 Subject: HELP with font sizes on browsers etc. Message-ID: <199811150327.VAA05615@mail11.jump.net> >Hi; >I've looked high and low for where I could adjust the font sizes on the >tools such as the transcript, system and class hierarchy browsers with no >luck. I'm running a 17" monitor @ 1280x1024 and the eye strain is >considerable. > >If someone could please point me to where to adjust the font size values, >i'd be very grateful. Try: TextStyle changeDefaultFontSizeBy: 1 Then close and re-open any existing windows. -- tim From wirth at almaden.ibm.com Tue Nov 3 20:18:47 1998 From: wirth at almaden.ibm.com (wirth@almaden.ibm.com) Date: Sat Jan 28 04:23:31 2012 Subject: Interesting :-) article and whitepaper on Open Source Software Message-ID: <882566B1.006E4FC9.00@d53mta01.boulder.ibm.com> Dan Gillmor had an interesting column in the San Jose Mercury News this morning, "Microsoft wary of open source, embedded systems", which you can find at: http://www.mercurycenter.com/columnists/gillmor/docs/dg110398.htm He discusses a purported internal MS whitepaper on Open Source Software (called "OSS" in the whitepaper :-) which was leaked by Eric Raymond as "The Halloween Document". You can find it, along with Eric's analysis and marginal comments (with ongoing updates, now at version 1.4) at: http://www.tuxedo.org/~esr/halloween.html Eric's comments include a reference to Squeak: "This prediction is of a piece with the author's earlier assertion that open-source development relies critically on design precedents and is unavoidably backward-looking. It's myopic -- apparently things like Python, Beowulf, and Squeak (to name just three of hundreds of innovative projects) don't show on his radar." Enjoy, Mike Wirth From rlpcon at vermontel.net Wed Nov 11 22:20:41 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:23:34 2012 Subject: Multiple inheritance Message-ID: Has anyone tried to implement multiple inheritance under Squeak? Would the VisualWorks implementation work? --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From Ian.Piumarta at inria.fr Mon Nov 2 13:10:09 1998 From: Ian.Piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 04:23:48 2012 Subject: 2.2 VM for FreeBSD 3.0 In-Reply-To: <19981031210858.A15151@cs.uni-magdeburg.de> References: <19981031210858.A15151@cs.uni-magdeburg.de> Message-ID: <13885.44849.486921.815838@tif.inria.fr> > Just in case that anybody is interested - I put a Squeak 2.2 VM for the > latest FreeBSD (3.0-RELEASE) into ftp://alix.inria.fr/pub/incoming/. Thanks! This is now in the unix/2.2/bin directory, and there's a corresponding "distribution" for FreeBSD. > the diff file for GNUmakefile.conf that I used The 2.2 makefiles have been updated accordingly. Thanks again! Regards, Ian From DanI at wdi.disney.com Mon Nov 9 22:21:34 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:24:00 2012 Subject: [Squeak] How to get the size of any object (sorry too long) In-Reply-To: <199811092007.FAA23520@smtp.urban.ne.jp> Message-ID: NISHIHARA Satoshi wrote... >byteSize:= bytesInOTE + objectHeadersSize + instVarFieldSize + >indexableFieldSize. > >mmm... Is this right? Yes. Except... >case: right >Q1.1) >object table entry size is 8 bytes? or 12 bytes? Zero. Squeak does not have an object table. >Q1.2) >If anObject is a instance of BlockContext, >must add the size of home method or not? No. Contexts and BlockContexts point to the home method rather than copying it. >Q1.3) >aSmallInteger or aCharacter is immediate object. >So consider as its bytesize = 0. >Is this right? Not quite. SmallIntegers are immediate. Characters are not, but there are only 256 of them which are shared, so their space is effectively 0. >Q1.4) >getting the byteSize of aMethod, must add methodHeaderSize (4 bytes) >So its total is methodHeaderSize + bytesize of aMethod self + size of literals. >Is this right? No. The response to size is the size in bytes, including the literal frame and the 4-byte sourcecode pointer at the end. Just add 4 for the method header. Hope this helps. - Dan From DanI at wdi.disney.com Mon Nov 9 22:49:05 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:24:06 2012 Subject: Morphic>>step -- repeated errors In-Reply-To: <199811092152.QAA23902@cleon.cc.gatech.edu> Message-ID: >Gerardo Richarte wrote: >> Sometimes I have a problem... When some Morph is stepping and >> suddenly an error pops up from its #step method, I can stop this >> happen, soI need to quit squeak without saving, what I dont like! >> I can understand why this happens, and that its perfectly normal >> (if there is such an error), but Id like to have a way of stopping >> this, or better, to make the morph stop stepping if there is an error in >> its #step method. >> Any idea out there? >> >> Unsolvable Bye! >> Richie++ lex@cc.gatech.edu replied... >I've noticed you can still use the root menu to jump to another project. Then you can do a few "allInstance"'s and "delet" the offending morph, before heading back in. > >I agree, though, this is a common nuisance.... > >Maybe the world should simply stop stepping when a debugger pops up? That's one approach, but then the inspectors that you might want to use won't update. I have two solutions in mind, but they're both a little ways out. 1. Add some intelligence to the debugger, so that if it sees that a morph was doing drawOn:, fullDrawOn: or step, then it wraps it in another morph that looks like a radiation warning. That wrapping morph has a couple of menu commands that will restore its place in the morphic structure and the list of stepping morphs after (you think) you've fixed the problem. 2. The debugger already detects recursive errors. This is just as much of a problem in MVC as in Morphic. In MVC it bails out to a primitive stack dump, and the chances are slim that you can proceed. This happens if you make an error editing something used by the debugger like text or window or pane code. In morphic, it's not usually a recursive error, but a repeated call to step or display before the error is fixed. One possibility is to call display and step once from the debugger and thus force this to appear as a recursive error. Then at least we have recursive errors in both the MVC and Morphic flavors of disaster. Now all we need is a better answer to recursive errors. There are two main causes: bad code and bad stuff in the world. My proposal is (as part of the forthcoming history mechanism) to establish instant code change retraction at project boundaries. Then when all else fails (ie when you have a recursive error), you should be able to perform a code change retraction and jump to another project, and put up the debugger THERE. The code should be OK, and the debugger would be the only thing on the screen. This is in many ways equivalent to debugging one image from another, except it's all in one simple (clever) Squeak. I'm hoping we can try this out early next year. Never say Unsolvable - Dan From mafm at cs.uwa.edu.au Sat Nov 7 09:43:42 1998 From: mafm at cs.uwa.edu.au (Matthew McDonald) Date: Sat Jan 28 04:24:06 2012 Subject: StandardSystemView etc In-Reply-To: <057af21010202b8MAIL2@cvtci.com.ar> References: <057af21010202b8MAIL2@cvtci.com.ar> Message-ID: <199811070943.RAA21195@parma.cs.uwa.oz.au> I'm new to squeak and smalltalk, and was wondering if anybody could offer advice on MVC stuff. I've written a couple of classes that display histograms inside a standard system view. Everything seems to be working except that the view isn't redrawn when it's exposed by another window moving. It seems like I must be missing something simple. Any hints? More information: If I red-click on the view, it gets displays itself nicely. The view in question has a NoController, and is the only subview of a StandardSystemView that is using a StandardSystemController. More generally: I was also wondering if there's any documents on smalltalk-80 MVC stuff I could read. I've got some idea of what's going through reading the code for existing stuff, and looking at "Smalltalk-80 : Interactive Programming Environment" but but I don't really have a good firm of what's going on, especially with controllers. -- Matthew McDonald From Michal.Starke at lettres.unige.ch Wed Nov 11 19:02:07 1998 From: Michal.Starke at lettres.unige.ch (michal starke) Date: Sat Jan 28 04:24:18 2012 Subject: AE/interProcess (was: Examples of API) Message-ID: > Anyway SCENE depended heavily on a couple of available technologies: > > 3. Interaction with external (non-Smalltalk) processes. (It is this need > that I am having trouble seeing how to accomplish in Squeak.) > > 3. was critical to SCENE. [...] To implement this (Unix versions only) > we actually wrote AppleEvents for Unix to handle the event interchange.) couldn't you just add primitives for AppleEvents using the new pluggable primitives framework? (ie. AE call wrappers essentially). sounds like peanuts wrt the work you already did reimplementing the whole AE framework on unix. or am i missing something? [and have AE/interprocessComm would be a big + for many other uses in squeak!] michal From raab at isgnw.CS.Uni-Magdeburg.De Thu Nov 5 18:33:24 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:24:28 2012 Subject: auto update & random comments In-Reply-To: <19981105181908.2815.qmail@www0g.netaddress.usa.net> from "thomas k." at Nov 5, 98 11:19:08 am Message-ID: <199811051833.TAA05537@monet.cs.uni-magdeburg.de> Thomas, > Discovered the auto-update feature by reading this discussion group. Cool. > (Patience is required; eventually, it finishes. This is not a complaint, just > a newbie observation on the situation of watching the screen, wondering > "what's it doing?") You should open a Transcript before doing the updates. A couple of messages will appear there and you see what's actually going on. > One question: what did it update? (I'm running 2.2) Use a ChangeSorter to view the updates. They're numbered and the last n (n is the number from "n new updates loaded") contain the stuff that's new. > Unfortunately, that's about as far as I've gotten (although, I can make a new > window, and change its background color, in Dolphin Smalltalk). Pretty good > for a 43 year old pc-phobe who just got his first computer in March, huh? Not to bad ;-) Try playing with Morphic - it's a lot of fun. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From wdc at MIT.EDU Mon Nov 9 16:08:39 1998 From: wdc at MIT.EDU (Bill Cattey) Date: Sat Jan 28 04:24:29 2012 Subject: Latest updates In-Reply-To: <199811091500.QAA14303@monet.cs.uni-magdeburg.de> References: <199811091500.QAA14303@monet.cs.uni-magdeburg.de> Message-ID: Looks like the new image is trying to use sound even when it's disabled. 1) Preferences disableSounds displayed 'true' 2) SoundPlayer startUp hangs system From danielv at netvision.net.il Fri Nov 6 18:10:36 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:24:34 2012 Subject: Morphic>>step References: <364232BC.642096C1@core-sdi.com> Message-ID: <36433B9C.9AF7FD58@netvision.net.il> Gerardo, I'm not sure what the scenario for your problem is and what you would consider convinient, but the following code simply makes sure that an object that does not return from it's step is not called again until it does so. This means that if you are not able to fix the bug and proceed, you will have to send it startStepping after exiting the debugger. (that's pretty easy if you're using MWs - you simply point at the morph, and type self startStepping or if the morph is a wrapper self asMorph startStepping) This should be inserted in WorldMorph>>runStepMethods, replacing the similar true-block after "m world == self ifTrue:" (wakeupTime <= now and: [ wakeupTime > 0]) ifTrue: [ entry at: 2 put: (0 - wakeupTime). m step. entry at: 2 put: now + m stepTime]] Tell me if this fixes your problem. BTW, does anyone that knows this code better see any possible problems (feel like a thief, simply swiping objects of a queue...) Gerardo Richarte wrote: > Sometimes I have a problem... When some Morph is stepping and > suddenly an error pops up from it?s #step method, I can stop this > happen, soI need to quit squeak without saving, what I don?t like! > I can understand why this happens, and that it?s perfectly normal > (if there is such an error), but I?d like to have a way of stopping > this, or better, to make the morph stop stepping if there is an error in > its #step method. > Any idea out there? > > Unsolvable Bye! > Richie++ From kbrown at tnc.com Sun Nov 15 20:26:34 1998 From: kbrown at tnc.com (Ken G. Brown) Date: Sat Jan 28 04:24:35 2012 Subject: Multi-threading externals In-Reply-To: Message-ID: The new version of MacApp (R13U4) has support for multi-threading (nifty demo of this ready to go), open transport and apple events, of course among many other features. What if Squeak were to communicate without blocking via TCP/IP to a multi-threaded MacApp application which set up appropriate threads to do the compute intensive stuff, reporting back when finished? Ken G. Brown >For example, if a Squeak process calls a >numerically intensive external process (say using a TCP/IP based >primitive), everything is "on hold" until that external process returns. >Any ideas on how to deal with that problem? A possibility would be to allow >asynchronous communication with primitives. Has that been done? >--dick peskin From markus_kohler at bbn.hp.com Thu Nov 5 09:51:51 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:24:35 2012 Subject: Memory mapping [was Re: some not-so-random questions] References: <3640B79F.6FD5@pacbell.net> Message-ID: <36417537.603D348A@bbn.hp.com> Hi, all Oh I forgot to mention that on Linux I was told there's a non standard call to remap mapped memory. That could be a very simple and efficient and way on this platform to get what we want. Markus -- Markus Kohler mailto:markus_kohler@hp.com From nimrod at netzero.net Wed Nov 11 06:49:10 1998 From: nimrod at netzero.net (thomas k.) Date: Sat Jan 28 04:24:39 2012 Subject: more on problem after updating Message-ID: <36493366.4ADB12E6@netzero.net> Thanks for the suggestion; here's where I am now: After the "trouble" message box appears, I press "Alt-."; nothing happens until I press the mouse button, then a window titled "user interupt" appears; within it is a line of text that reads: [] in BlockContext>>newProcess ( I can't close this window.) I have discovered that the "trouble" message box moves following the cursor; I point the cursor to anywhere, click either button, and the message box jumps to that spot. Pressing neither button brings up a context menu and the only way to exit Squeak is is with the Windows close app "X" button on the top right corner. Wait, I just thought of something: when I saved my image after downloading the update, my internet connection was still open. Maybe this saved image, then, is expecting an open connection! That would explain why it seems to work properly when I'm online. Eureka! So, I will test this tomorrow. I will delete the updated 2.2 file, reload the original, update it but go offline before saving it. I'll let you know if this solves the problem. thomas k. workingstiff@usa.net socrates preferred death to not asking "why?" From bruce_oneel at yahoo.com Tue Nov 10 10:52:13 1998 From: bruce_oneel at yahoo.com (Bruce O'Neel) Date: Sat Jan 28 04:24:44 2012 Subject: HTTPSocket proxy authentication Message-ID: <19981110105213.3569.rocketmail@send203.yahoomail.com> Hi, I think that one of the places for a fairly long and involved discussion would be RFC 2068, the HTTP 1.1 RFC. One source is: http://sunsite.cnlab-switch.ch/ftp/doc/standard/rfc/20xx/2068 though this is probably pessimal from your bit of the world. Other choices for RFC servers are listed at: http://dir.yahoo.com/Computers_and_Internet/Standards/RFCs/ Cheers. bruce ---Chris Double wrote: > > The proxy at work requires authentication when using it. I have to supply a > user id and password. Has anyone done any work on allowing the HTTPSocket > proxy code to work using authentication? At the moment I've hacked in the > correct Proxy-Authentication string which allows me to be authenticated so I > can use Scamper and the remote updates, etc. But I have no idea how this > authentication code is generated. > > Can someone provide a reference to some code (in any language) or documents > that describe the protocol for this? Or even better, is there some Squeak > code ferreted away that already does it? > > Thanks, > Chris. > > == Bruce O'Neel - beoneel@acm.org http://homepage.iprolink.ch/~bioneel _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From JArchibald at aol.com Wed Nov 4 09:17:56 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:24:47 2012 Subject: Method names Message-ID: In a message dated 11/3/98 1:47:29 PM Eastern Standard Time, johnm@wdi.disney.com writes: << Stephen Pope was able to build a really nice "units" system using normal Smalltalk syntax. He did it in the context of a music system where you could say things like: sound pitch: 440 asHz or sound pitch: 69 asMidiKey >> Getting tired here--not thinking these through correctly. Shouldn't these be sound pitch: 440 hz and sound pitch: 69 midiKey for proper "units" thinking? Jerry. From lex at cc.gatech.edu Thu Nov 5 17:57:04 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:24:49 2012 Subject: about oss doc from MS Message-ID: <199811051757.MAA07019@cleon.cc.gatech.edu> Matthew McDonald wrote: > (I need to work out why my mail reader doesn't want me to be able to > reply-to-sender for messages on the squeak list.) This list uses Reply-To: list headers pointing back to the list. It means there is more discussion out in public on the list--sometimes moreso than intended! Lex From dufrp at oricom.ca Fri Nov 13 08:18:11 1998 From: dufrp at oricom.ca (dufrp@oricom.ca) Date: Sat Jan 28 04:24:50 2012 Subject: Oops, forgot to give the URL of Agora Message-ID: <0F2C0070SPQAGS@sims-ha.videotron.net> The URL of Agora language is: "http://progwww.vub.ac.be/pools/agora/contents.html" From mklein at alumni.caltech.edu Mon Nov 2 23:13:50 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:25:01 2012 Subject: Units package (was Method names) In-Reply-To: <5040100024760936000002L062*@MHS> Message-ID: Of course it would be nice to apply units not only to scaler quantities, but to vectors (and tensors) as well.. -- Mike From feoh at cosmic.com Mon Nov 23 17:57:20 1998 From: feoh at cosmic.com (Asymptotically Approaching Harmony) Date: Sat Jan 28 04:25:10 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? Message-ID: Hi folks; After doing an Amazon search I just found a book called _On to Smalltalk_ by Patrick Henry Winston - I really like his style, _On to Java_ is one of my fave Java books by far. So, how close is Smalltalk Express, the dialect he uses in the book, to Squeak? Will I hopelessly scramble myself trying to learn using his book and Squeak instead of ST Express? Thanks, -Chris P. (Aspiring Squeaker) ____________________________________________________________________ |Chris Patti|ICQ#16333120|feoh@cosmic.com|Home #:(617)625-3194|JAPH| |"The best way to predict the future is to invent it" - Alan Kay | From dwighth at ipa.net Thu Nov 26 03:10:42 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:25:29 2012 Subject: Squeak 2.3 beta available References: Message-ID: <365CC6B2.FA3906CD@ipa.net> Dan Ingalls wrote: > > Folks - > > I have just stored a beta version of Squeak 2.3 out on the UIUC server: > ftp://st.cs.uiuc.edu/Smalltalk/Squeak/ > > A few things to note: > This image will want a new VM, although it should run on an old VM if you don't use any of the new pluggable primitives (it may crash if you try). Well, I don't seem to be getting any results using the existing Squeak22.exe VM (Oct 16) for Win32 with the Squeak2.3beta.image -- or rather I _am_ getting results, just nothing useful. I get a blank Squeak desktop window and the mouse pointer is the Squeak pointer, but I cannot bring up any menus or get anything else to come up. However, it is not "hung" in any normal sense, nor does it crash. Anything I might try other than just punting? -- Dwight From mafm at cs.uwa.edu.au Thu Nov 5 02:24:24 1998 From: mafm at cs.uwa.edu.au (Matthew McDonald) Date: Sat Jan 28 04:25:38 2012 Subject: about oss doc from MS In-Reply-To: <6F155D13AB83D111922A0060083A1A2701DE6A2C@cartman.lex.rational.com> References: <6F155D13AB83D111922A0060083A1A2701DE6A2C@cartman.lex.rational.com> Message-ID: <199811050224.KAA04291@parma.cs.uwa.oz.au> Bob Houston writes: > I am concerned about the sending of a company confidential document > to the squeak list. I think it was accidental, and I'm at least partly to blame. As I understood Hans' original message, he was asking interested people to asking him off-list for a copy. I meant to do this but accidently sent it to the list, rather than Hans directly. I assume Hans replied to my mail, without noticing it had gone to the list. (I need to work out why my mail reader doesn't want me to be able to reply-to-sender for messages on the squeak list.) Sorry, -- Matthew McDonald From caniglia at dm.uba.ar Wed Nov 25 04:36:24 1998 From: caniglia at dm.uba.ar (Leandro Caniglia) Date: Sat Jan 28 04:26:09 2012 Subject: MorphicWrappers Propaganda Message-ID: <01be182d$2849c230$0132c8c8@notung> Hi everybody! All squeakers are invited (one more time, I know) to download and try the MorphicWrapper package. http://www.dm.uba.ar/MathMorphs (search them under the title "MorphicWrappers and Books") (For those of you that allready have the package, consider downloading this new version) MorphicWrappers where first implemented by Luciano and Richie in the times when many people at Sugar were trying to understand Morphic. They did the work as a way to learn Squeak. Now the package has grown into a useful framework. Some other people have contributed to the package too: Daniel Vainsencher Pablo Malavolta Valeria Murgia Leandro Caniglia With MorphicWrappers installed in your image, you enjoy some nice properities: - Any object is able to live in a Morphic World. - Any Squeak expression can be written and evaluated on the air. - You send messages dragging and droppoing objects (the arguments) and double clicking the receiver. - You edit Squeak Classes using ClassMorphicWrappers. - You never need a Workspace and almost never open a Browser when programming. For example, with MW installed you don't need FillInTheBlankMorph any more! Instead you use RequestBoxMorph which is polymorphic to the former but has the (exceptional) ability to request *any* object, not just a String! Using MW is real cool. Please, try them and send us your feedback, we will stay here waiting for your comments. Also take into account that all contributions on ideas, bug reports, or code will be wellcome. Many thanks Leandro (for the MW team) From aleReimondo at sugarweb.com Wed Nov 11 01:33:47 1998 From: aleReimondo at sugarweb.com (Alejandro F. Reimondo) Date: Sat Jan 28 04:26:11 2012 Subject: Examples of API Message-ID: <01BE0D03.DABDFE20@maq226b.advance.com.ar> Richard, If you are using the sqAPIs... there are two examples of use. The JPEG & TIFF examples at sugar's site. please see downloads page at http://www.sugarWeb.com Note: the sqAPIs model to interface with C structs are compatible with VisualSmalltalk's model and extended to support recursive structures/substructures and pointers transparently. Ale. ---------- De: Richard L. Peskin[SMTP:rlpcon@vermontel.net] Enviado: Martes 10 de Noviembre de 1998 16:31 Para: squeak@cs.uiuc.edu Asunto: Examples of API Where can I find examples of API's that will allow me to exchange data between Squeak data structures and C strucs? I understand that the socket primitives do this but I don't know where to find the source code for these primitives. thanks, --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From gollmann at edvz.tuwien.ac.at Fri Nov 6 10:18:31 1998 From: gollmann at edvz.tuwien.ac.at (Georg Gollmann) Date: Sat Jan 28 04:26:13 2012 Subject: Is Squeak limited to 512Mbyte process size? In-Reply-To: <3642C6F6.27C2E96B@bbn.hp.com> References: <3640B79F.6FD5@pacbell.net> <364173C1.BC946E47@bbn.hp.com> <36427E37.7AA7@pacbell.net> Message-ID: At 10:52 Uhr +0100 06.11.1998, Markus Kohler wrote: >I'm just curious. >I started my mmap Squeak with 520Mbyte and strange things happened. >It started up but the process size went to about 140 Mbyte whereas it >remained >at 5 when I used 500Mbyte. >Also Smalltalk bytesLeft gave back around 8 Mbytes of free space ... Having a quick look at the image there could indeed be a 512 MB limit in the garbage collector (browse class var references to ObjectMemory>FreeSizeMask). But I could be totally up the creek as well... ---- Dipl.Ing. Georg Gollmann TU-Wien, EDV-Zentrum phon:(+43-1) 58801 - 42022 fax: (+43-1) 58801 - 42099 mail:gollmann@edvz.tuwien.ac.at http://macos.tuwien.ac.at/Gollmann.html From bparsia at email.unc.edu Tue Nov 10 20:32:57 1998 From: bparsia at email.unc.edu (Bijan Parsia) Date: Sat Jan 28 04:26:53 2012 Subject: Results of proposal to create squeak-help list... In-Reply-To: <36489FB7.D19005B9@ipa.net> References: <199811101942.NAA26479@sal.cs.uiuc.edu> Message-ID: At 3:19 PM -0500 11/10/98, Dwight Hughes wrote: [snip] >I don't especially care if the list automatically adds the [sqh] prefix >or not - though this would be rather nice (assuming it did not duplicate >the prefix on replies). > >[Does Mark Guzdial's Pluggable Web Server list automatically add the >[pws] prefix?] Yes, and it doesn't duplicate the prefix. Cheers, Bijan Parsia. From johnson at cs.uiuc.edu Tue Nov 10 19:42:11 1998 From: johnson at cs.uiuc.edu (Ralph Johnson) Date: Sat Jan 28 04:26:53 2012 Subject: Results of proposal to create squeak-help list... Message-ID: <199811101942.NAA26479@sal.cs.uiuc.edu> Since we run the squeak list, I asked John Brant about setting up the squeak-help list. He said that he doesn't know how to put a prefix like [sqh] on the front of every subject, and that he could break down and learn procmail hacking and do it, but that becoming a procmail hacker was low on his list of life goals. In fact, I'm not sure what the purpose of the voting was. There is not group in charge, so there is nobody to act in behalf of the electorate. If you think something should be done, just do it! If you set up a sqeak-help list, I'm sure that the people who own the Squeak home page would put a pointer to it there. Or, if you don't care about having a [sqh] prefix, you could ask John Brant to set it up. -Ralph From mklein at alumni.caltech.edu Mon Nov 9 22:12:33 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:26:57 2012 Subject: time zones? In-Reply-To: <199811092152.QAA23953@cleon.cc.gatech.edu> Message-ID: On Mon, 9 Nov 1998 lex@cc.gatech.edu wrote: > Does anyone out there know how timezones work, in detail? No single person does ;-) > I'm interested in distinguishing "local time" and "absolute (Greenwich) time" in Squeak > Absolute time is simple enough, but the definition of local time seems more elusive. Is everyone's local time always an integral number of hours offset from Greenwich, or can it be more complicated? Also, where do all the names like "EST" come from? Actually "absolute time" is far trickier to do right than you may imagine. (There is no such thing as absolute time, for starters) As it pertains to Smalltalk, witness the differences in the DateAndTime class between ANSI Smalltalk rev 1.2 and rev 1.9. They completely blew it. They started of trying to do the "right" thing, make an attempt at handling leap seconds in UTC. But it was to difficult, I guess, and perceived as not woth the effort, so they took it out for 1.9. Where they blew it, is that they still call it UTC. For people who know time, this ranks up there with the same sloppiness that Java did. Oh, well. Anybody who is going to be doing anything with time that requires (sub)second accuracy will be using there own stuff, anyway. > Thanks for any input, and lots of thanks for pointers to code :) If you punt on the leap second issue, and accept what I would call 'POSIX time' (very loosely speaking, GMT), you will find that the best time zone information tables are kept by the UNIX world. One of the guys who helps maintain this stuff (and knows more about time keeping than anyone else I know could possibly care about :-), Paul Eggert, has the following page of resources: http://www.alumni.caltech.edu/~mklein/timezone.html And you thought it was going to be simple ;-) -- Mike Klein "Nothing works, and nobody cares" -- Woody Allen From dwighth at ipa.net Tue Nov 3 22:41:33 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:27:06 2012 Subject: Squeak memory allocation References: <199811032202.RAA16988@cleon.cc.gatech.edu> Message-ID: <363F869D.93B73D4B@ipa.net> lex@cc.gatech.edu wrote: ---snip--- > > Next, I modified the ObjectMemory to also trigger a GC if more than 3 megs have been allocated since the last GC. When I executed the above line with the new VM, the Squeak process only went up to 17 megs. > > The patch is below, for anyone who wants to play with it. It's a bit of a hack as is, but simply adding a "maxAllocationBetweenGCs" instance variable, and finding a better name than "lastFreeSpace" would make it pretty clean. > > Also, maybe the max allocation should be smaller for smaller images; for a 2 meg image, for instance, you might want to do a GC after just 1 meg of allocation. > > Lex It would be nice to adjust the value of this "maxAllocationBetweenGCs" automatically in proportion to the -memory command line argument, so one would not normally need to fuss with it (but could if desired -- say with an argument like this: ... -memory: 64.8 ... which means allocate 64MB total, 8MB maxAllocationBetweenGCs). -- Dwight From DanI at wdi.disney.com Thu Nov 26 18:57:22 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:27:41 2012 Subject: Squeak 2.3 beta available In-Reply-To: <199811261351.OAA23330@gaugin.cs.uni-magdeburg.de> References: from "Dan Ingalls" at Nov 25, 98 05:47:38 pm Message-ID: Many thanks, Andreas, for highlighting the new features of Squeak 2.3 that are available for test in the beta image. I was busy with Charlie's birthday and didn't want to spend the whole evening at the computer. A couple of other things occur to me worthy of mention, as folks may want to try them out in beta and let us know of anything that seems amiss. >* Interface changes > We have now new Morphic menus (I just love them) and a preferences panel > with help messages for most entries. Note especially the preference for inboard scrollbars. I spent a while getting these to work right, as it really makes a difference on PDAs where there is no mouseOver tracking. Also note that Morphic windows now have the ability to adjust pane boundaries (and I fixed a couple of bugs there, too). And the multiple selections finally work in morphic (cf changelist) Andreas was too modest to mention that his file contents browser has been included. The normal way to get at it is through the fileList menu options. It is wonderful to have the diff feature, and I extended its availability to the changeList and versions browsers. Also note that the 'compare to clipboard' command (in the "special" menu of the text editor) has been changed so that it spawns a window with the detailed diffs. It can be really useful. >* Numerical stuff > The new coercion scheme is in 2.3beta, we have array math and a brand > new wavelet transform hanging around (see class FWT). The new coercion scheme has been extended to collections and points. This was inspired by Travis Griggs's collection arithmetic package. We probably have some more work to do to fully include, eg, the FloatArrays. Also note that the 2.3 VM does Float/Integer coericons internally which makes this most common case uncommonly fast. Finally, although it's not exactly numerical, the VM now includes a string search primitive that dramatically changes the performance of most string searches. The primitive is parameterized for casesensitivity, and has been incoporated into most of the other code such as beginsWith:, match: and the like. >* Weak classes / finalization support is now part of the standard image > [Note: Some people were already running into this - you really need a > new VM for this stuff to work properly] Oops. I forgot to mention that. >* Balloon > Flash is a vector graphics package designed for vector graphics > content delivery over the internet. Many sites use this to enhance > their web pages and it's a lot of fun to play with. If you have access > to any .SWF files just open them from the file list. Note that balloon objects built from SWF files can be scaled and rotated to any angle without loss of detail. Use cmd-click to get a halo for the flash player, and then choose make controls from its menu. This will allow you to choose fastest, medium or nicest, the Sears good/better/best choice applied to anti-aliased rendering. Also bear in mind that speed and quality will depend on your color depth setting. Things will be nicest if you use 16- or 32-bit color (natch). Finally, there is a significant new system (called Squeak Pages) designed to allow morphic worlds to be cached in Squeak, but resident on Web Pages. This is largely the work of John Maloney and Ted Kaehler. We will write more specifically about this when we have had a chance to shake it down a bit ourselves. Enjoy - Dan From wdc at MIT.EDU Sat Nov 28 22:35:11 1998 From: wdc at MIT.EDU (Bill Cattey) Date: Sat Jan 28 04:27:46 2012 Subject: 2.3beta: don't hit update. Message-ID: Just for fun, I told the 2.3 beta image to perform an update from the net. It went and got all the 2.2 updates since October. I guess this is because the update code is the same in all images, and the expectation is that there will only be one 'true and correct' squeak image out there for updating. This may become problematic if there are to be 2.3 beta updates while 2.2 is still extant, though. -wdc From raab at isgnw.CS.Uni-Magdeburg.De Mon Nov 9 17:38:25 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:27:47 2012 Subject: Detailed update descriptions? In-Reply-To: from "Carl E Gundel" at Nov 9, 98 12:23:15 pm Message-ID: <199811091738.SAA14595@monet.cs.uni-magdeburg.de> > When I update from a server, I do not get a very detailed description of > each change. It would be great to have even a single line for each change > with a simple and meaningful comment about it. Does this require a > non-trivial modification to the way Squeak manages changes? It's already there. Open a ChangeSorter and choose "edit preamble" from the change set you're interested in. This will give you the description of the change set (given that there is any, of course ;-) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From sqrmax at cvtci.com.ar Sun Nov 15 20:50:43 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:27:55 2012 Subject: Serious problem with Squeak 2.2 on Win NT Message-ID: <01a0f4250200fb8MAIL2@cvtci.com.ar> Hi. >Using the distribution binary (not one I built myself), Squeak, when idle, >uses 100% of one of my dual Pentium Pro 200mhz processors. This is reported >by the task manager. This seems continuous and I would think the MM would >have scavenged everything after some short time had passed. Yes, this is because the virtual machine is configured not to give idle time away. But right-clicking on the top blue bar gives you a menu with preferences and there you can change it. Andres. From rowledge at interval.com Sun Nov 29 19:03:16 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:27:56 2012 Subject: 2.3 beta buglets Message-ID: The image is set to 16bpp Display instead of the more traditional 8bpp. The vm simulator needs 'From Squeak 2.3 beta of Nov 25, 1998 on 29 November 1998 at 10:48:42 am'! !InterpreterSimulator methodsFor: 'other primitives' stamp: 'TPR 11/28/1998 21:58'! primStringfindSubstringinstartingAtmatchTable ^ self primitiveFail! ! adding in order to work. Something odd is going on with the Tracer -- it produces an image somewhat bigger than 6Mb, which starts up ok and saves back to 4-ish MB. Rather spoils the 'coffee-break garbage collector' story doncha think? It seems to be a recent problem, as older images clone same/smaller as appropriate. I though it might be related to the Display size/depth, but seem to have ruled that out. Maybe the WeakArrays need more careful cloning? While tracking down prolbems with cloingetc, I found this pair of changes useful:- it saves a bit of time when looking for method versions by not opening a browser if there is only the one version. I'm sure it could be done more prettily... 'From Squeak 2.3 beta of Nov 25, 1998 on 28 November 1998 at 5:45:52 pm'! !ChangeList methodsFor: 'accessing' stamp: 'TPR 11/28/1998 17:38'! listHasSingleEntry "does the list of changes have only a single item?" ^list size = 1! ! !ChangeList class methodsFor: 'public access' stamp: 'TPR 11/28/1998 17:45'! browseVersionsOf: method class: class meta: meta category: category selector: selector | changeList | Cursor read showWhile: [changeList _ self new scanVersionsOf: method class: class meta: meta category: category selector: selector]. changeList ifNil: [self inform: 'No versions available'] ifNotNil: [changeList listHasSingleEntry ifTrue:[^self inform: 'No other versions of this method']. self open: changeList name: 'Recent versions of ' , selector multiSelect: false]! ! tim -- Two wrongs are only the beginning. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From Michal.Starke at lettres.unige.ch Thu Nov 5 15:55:43 1998 From: Michal.Starke at lettres.unige.ch (michal starke) Date: Sat Jan 28 04:27:56 2012 Subject: PROPOSAL: create the squeak-help list In-Reply-To: References: <3640F05C.9EE014D4@ipa.net> <199811050011.QAA28222@jasper.he.net> Message-ID: >in order to get help the beginner has to first >know how to use the Swiki. Do >I sense a slight circularity here? the presuposition (probably) being that *using* the swiki (much like browsing the web) requires no squeak knowledge at all. no recursion there :-) [since i'm here, let me add a me-too: the "i-ask-therefore-i-swiki" rule is a great way of collective FAQ/documentation building] michal From mklein at alumni.caltech.edu Wed Nov 11 07:31:26 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:28:24 2012 Subject: Anyone using alternative input devices with Squeak? (fwd) Message-ID: In the attempt to create a keymap for the twiddler that caters specifically to Smalltalk, I did a digram analysis on all of the Smalltalk method bodies (VW. random image) For comparison I include the ten most common digrams in English (corpus: The Cambridge encylopedia) Smalltalk: se in er re el on te al en th nt st or English: in th he an er re on nd or es Notice that 'self' makes a lot of the difference In case you care, here is the top of the results, with percentages. I elided all punctation digraphs except for '.' and ':' because they are interesting. : 2.28572 se 1.28356 in 1.22589 er 1.15395 .. 0.981066 re 0.970116 el 0.911408 on 0.873386 te 0.859283 al 0.84533 en 0.8142 th 0.803529 nt 0.788988 st 0.756039 or 0.751325 le 0.734368 at 0.730698 de 0.696744 ec 0.659717 tr 0.642849 co 0.639527 an 0.62985 es 0.612803 ti 0.595647 he 0.583981 as 0.580262 ar 0.560629 me 0.56051 nd 0.556363 ct 0.52763 lf 0.504785 ne 0.498728 it 0.49473 to 0.486585 ed 0.469996 ue 0.468036 is 0.464456 ta 0.443451 la 0.440796 if 0.42719 ro 0.42717 ng 0.411775 ex 0.411257 ri 0.402973 ss 0.392381 il 0.392351 ra 0.387348 io 0.38527 From danielv at netvision.net.il Sat Nov 7 17:47:38 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:28:40 2012 Subject: Recompiling the VM with finalization References: <199811071655.RAA10195@monet.cs.uni-magdeburg.de> Message-ID: <364487B9.3C90BBC2@netvision.net.il> I still can't manage it. Now I get - Linking... Creating library Release/SqVM.lib and object Release/SqVM.exp sqWin32ExternalPrims.obj : error LNK2001: unresolved external symbol _sqGetInterpreterProxy Another thing - when first trying to compile interp.c, it ignores the file. I can get around this by deleting the line endings on the first couple of lines, and retyping them, removing the first two comments in the process (the compiler complains about tokens after a pragma, with a pragma nowhere to be seen...). Andreas Raab wrote: > > What am I missing? > > A piece of code. I haven't yet updated the public VM sources because the > new stuff is still subject to change (the EXPORT macro will eventually go > away) but what you need is the sqWin32ExternalPrims.c file (can be found > at http://isgwww.cs.uni-magdeburg.de/~raab/squeak/src) and the following > definition (somewhere in the header file sqPlatformSpecific.h) > > #define EXPORT(returnType) __declspec( dllexport ) returnType > > Andreas > > -- > Linear algebra is your friend - Trigonometry is your enemy. > +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ > I Department of Simulation and Graphics Phone: +49 391 671 8065 I > I University of Magdeburg, Germany Fax: +49 391 671 1164 I > +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From johnm at wdi.disney.com Tue Nov 3 18:55:26 1998 From: johnm at wdi.disney.com (johnm@wdi.disney.com) Date: Sat Jan 28 04:28:40 2012 Subject: Method names Message-ID: <199811031855.AA27903@bobo.rd.wdi.disney.com> Stephen Pope was able to build a really nice "units" system using normal Smalltalk syntax. He did it in the context of a music system where you could say things like: sound pitch: 440 asHz or sound pitch: 69 asMidiKey The selectors "asHz" and "asMidiKey" are unary messages that return a pitch object, I believe. (Stephen: please correct me if I'm not explaining this correctly.) -- John From vassili at objectpeople.com Mon Nov 2 14:48:55 1998 From: vassili at objectpeople.com (Vassili Bykov) Date: Sat Jan 28 04:28:42 2012 Subject: Method names In-Reply-To: <199811020537.NAA26907@parma.cs.uwa.oz.au> References: <199811020005.BAA13151@monet.cs.uni-magdeburg.de> <045a324352201b8MAIL2@cvtci.com.ar> <199811020005.BAA13151@monet.cs.uni-magdeburg.de> Message-ID: <3.0.1.32.19981102094855.0090ddb0@mail.objectpeople.com> At 01:37 PM 11/2/98 +0800, Matthew McDonald wrote: >It looks like the main difficulty would be that the resulting language >couldn't be parsed without extra information - you'd need to know >whether or not there was a message called #next:bits to decide whether >or not "aBitStream next: 40 bits" meant ((aBitStream next: 40) bits). [Incidentally, that would be (aBitStream next: (40 bits))] Knowing what method selectors exist in the image would not be enough. If there existed #next:bits, #next:, and #bits, you would not be able to tell which interpretation of " next: bits" was the proper one without knowing (and you can't) the types of the expression results. What's even worse, in a dynamic environment where selectors come and go, adding or removing a selector would mean potentially changing the parse tree of some of the already compiled methods. --Vassili -- Vassili Bykov vassili@objectpeople.com The Object People http://www.objectpeople.com +1(613)225-8812 "Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp." -- Greenspun's Tenth Rule of Programming From mafm at cs.uwa.edu.au Mon Nov 2 05:37:47 1998 From: mafm at cs.uwa.edu.au (Matthew McDonald) Date: Sat Jan 28 04:28:46 2012 Subject: Method names In-Reply-To: <199811020005.BAA13151@monet.cs.uni-magdeburg.de> References: <045a324352201b8MAIL2@cvtci.com.ar> <199811020005.BAA13151@monet.cs.uni-magdeburg.de> Message-ID: <199811020537.NAA26907@parma.cs.uwa.oz.au> Andreas Raab writes: > > Messages usually have the arguments last. Wouldn't it be nice to have > > messages that could have arguments between a phrase? > No. [...] > > aBitStream next: 40 bits [...] > The above should be written as > > aBitStream next: 40 "bits" I thought the trailing no-op in the message selector was a nice idea. Comments aren't as good as the message selector syntax. Comments get out of date and people leave them out. If it's really worth mentioning in a comment, that you're expecting with 40 _bits_, then it's worth making this explict/mandatory using the method selector. Also, the trailing no-op in the method-selector allows you to have a similar method you invoke like this: aBitStream next: 40 bytes. It looks like the main difficulty would be that the resulting language couldn't be parsed without extra information - you'd need to know whether or not there was a message called #next:bits to decide whether or not "aBitStream next: 40 bits" meant ((aBitStream next: 40) bits). -- Matthew McDonald From mklein at alumni.caltech.edu Thu Nov 19 04:07:55 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:28:59 2012 Subject: Diff code available? In-Reply-To: <3d43435d.36539436@aol.com> Message-ID: There was a Difference browser for VW which I got from the Manchester archive (now defunct). There is probably a copy at UIUC. When I got time, if anybody wants, I'll look into extracting it from my image. VW3.0 has such built in, but far be it for me to even intimate at copyright violation. -- Mike Klein mklein@alumni.caltech.edu On Wed, 18 Nov 1998 JArchibald@aol.com wrote: > In a message dated 11/18/98 2:15:24 PM Eastern Standard Time, > DanI@wdi.disney.com writes: > << I would do this myself, but if anyone has such code around, or knows of a > goodie that does it, it would save some time. > Please respond directly to me, not to the list. >> > > Lot's of us would probably like this, Dan. I would encourage whoever knows > about such to post to the list. > > The best that I recall was in Team/V, and might have been done by Juanita > Ewing. > > Jerry. > > From abbey at cc.gatech.edu Wed Nov 4 05:47:52 1998 From: abbey at cc.gatech.edu (Aibek Musaev) Date: Sat Jan 28 04:29:16 2012 Subject: Toward the next release... Message-ID: <001901be07b6$acd0a5f0$33403d80@aibek.res.gatech.edu> Dan, Could you please change: PositionableStream nextLitteEndianNumber: put: into PositionableStream nextLittleEndianNumber: put: "Little with l" Thanks, Aibek. From DanI at wdi.disney.com Wed Nov 25 19:40:34 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:29:36 2012 Subject: 44 new updates Message-ID: Folks - I have just put out 44 more updates. There will be a few more to come today. Note that this is only for completeness, prefatory to putting out the 2.3 beta image. I would not bother updating unless you are maintaining an independent fork of Squeak. It will be much simpler just to get the beta or final release of 2.3. I will have more to say about the many new features when I put out the 2.3 beta image. - Dan From johnm at wdi.disney.com Sat Nov 7 06:17:14 1998 From: johnm at wdi.disney.com (johnm@wdi.disney.com) Date: Sat Jan 28 04:30:09 2012 Subject: Building the VM with MPW Message-ID: <199811070617.AA14813@bobo.rd.wdi.disney.com> Jeffrey Chapman wrote: > Does anyone have an MPW project for a 2.2 VM they would like to share? Or > perhaps some tips on building the VM using MPW/MrC? Squeak generated > interp.c and supporting files successfully, and MPW attempts to build the > VM, but reports some hangups with unused parameters. Bob Arning wrote: > Jeffrey, > > Here are some notes I made for 2.1 - I don't know how relevant or = > complete they are for 2.2: I incorporated most of Bob's changes into the 2.2 release. If you are merely getting compiler warnings about unused parameters or other things, I'd just ignore them. Compilers differ in what they warn you about, but Bob found that a Squeak VM built with MPW worked fine despite the warnings. You *will* have to comment out the includes of , which MPW doesn't have, and add the line: static QDGlobals qd; to sqMacWindow.c. And there may be a few new problems that have crept in since Bob tried it; let me know if you find any. Good luck. Let me know how you make out! -- John From kend at apple.com Wed Nov 11 18:06:01 1998 From: kend at apple.com (Ken Dickey) Date: Sat Jan 28 04:30:12 2012 Subject: units Message-ID: <199811111806.KAA14382@scv3.apple.com> >> OK, so when one of these funky non-mathematical objects gets passed to some >> code that sends it the message #squared (intending on squaring), how do we >> guess the right squared semantics, because you proposal will give the >> wrong answer. > > Perhaps it's the wrong message at that point. In common practice natural >language, one would need to delimit, e.g., "5 kilogram meters per second, >squared". The delimiter is the comma before "squared". (In common practice >technical notation, one would use parentheses and a superscript.) So >perhaps sending >>, tells the Unit to "group" (the equivalent of the >parentheses in technical notation). Then a succeeding >>squared squares >the whole thing, as intended. [I have not been following this, so take the following "cum grano salis"] Numerical operations such should only operate on the numeric part of the object. I would punt on "squared" but use "kilogram meters per second second" in the units part of the object. I.e. I suggest working out the model/abstraction first and optimizing the unit syntax later. $0.02 -KenD From carlg at world.std.com Mon Nov 9 17:23:15 1998 From: carlg at world.std.com (Carl E Gundel) Date: Sat Jan 28 04:30:17 2012 Subject: Detailed update descriptions? In-Reply-To: Message-ID: When I update from a server, I do not get a very detailed description of each change. It would be great to have even a single line for each change with a simple and meaningful comment about it. Does this require a non-trivial modification to the way Squeak manages changes? All I see now for each change is: www.webpage.com /~kaehler2/Squeak2.0/updates/391ObjStore-tk-TH.cs HTTP/1.0 200 OK Server: Netscape-FastTrack/2.01 Date: Mon, 09 Nov 1998 17:03:18 GMT Accept-ranges: bytes Last-modified: Mon, 09 Nov 1998 00:14:29 GMT Content-length: 2088 Content-type: text/plain data byte count: 2088 Socket closed File 391ObjStore-tk-TH.cs successfully filed in to change set 391ObjStore-tk-TH Thanks, Carl ------------------------------------------------------------------ Carl Gundel carlg@world.std.com Shoptalk Systems 508-872-5315 author of Liberty BASIC, a 1996 PC Magazine Awards Finalist! http://world.std.com/~carlg/basic.html ------------------------------------------------------------------ From danielv at netvision.net.il Fri Nov 20 14:12:27 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:30:23 2012 Subject: /. mentions squeak References: Message-ID: <365578CB.FD031AF3@netvision.net.il> Dan, does the Squeak team mind the attention or may I post some more attractive info in reply? Ryan Davis wrote: > http://www.slashdot.org/ just had a mention of us (about a mention of us). > Check it out: > > Jim Thompson writes "Today's edition of Project > Heresy at CNET News covers a very interesting new > (?) project called Squeak by, of all people, The > Disney Co. This project, targetted at embedded > devices, has a Smalltalk heritage and is based, to > some extent, on code from Apple. Apple required that > Disney not commercialize their product, so Disney has released it as Open > Source. Squeak is not itself an OS, but the Heretics speculate that Squeak > will soon be married to a scaled-down linux kernel an ported to all > sorts of > handheld devices. Squeak sounds reasonably cool in that it's based on > Smalltalk-80 and has what sounds like a built-in "skins" feature for > its UI. > Do any Slashdotters have more info on Squeak, on where to go for > more information? " > > Ryan Davis -=- Zen Spider Software > -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- > I know that you believe you understand what you think I said but, > I'm not sure you realize that what you heard is not what I meant. From stefans at isgnw.CS.Uni-Magdeburg.De Wed Nov 4 15:31:11 1998 From: stefans at isgnw.CS.Uni-Magdeburg.De (Stefan Schlechtweg) Date: Sat Jan 28 04:30:24 2012 Subject: Double dispatch References: <199811041400.IAA03780@dillinger.io.com> <3641632f.3214206@rusty.kronos.com> Message-ID: <3640733F.75F82E10@isg.cs.uni-magdeburg.de> Hi, [document color stuff deleted] I think you didn't describe double dispatching. What I understand as double dispatching is the following: If you want to know what's double dispatching, you might check the VisualWorks Number classes (I'm new to Squeak and therefore just know that Squeak does the same stuff somewhat different). For instance Integer>>+ is implemented as follows: + aNumber ^aNumber sumFromInteger: self This message send delegates the task to the actual argument (aNumber) and passes on the class of the (actual) receiver in the message name (sumFromInteger:). The receiver of this message then implements the right behaviour for - in this case - adding an Integer value to itself. Let's have some examples. In VisualWorks the method sumFromInteger: is implemented in the class Float as follows: sumFromInteger: anInteger ^anInteger asFloat + self So it converts the integer argument into a float and then adds the receiver. Another example, the class Fraction in VisualWorks implemets sumFromInteger: anInteger "Reduction should not be necessary" ^self species numerator: anInteger * denominator + numerator denominator: denominator which actually creates a Fraction. So double dispatching basically sends a message to the argument of the message and passes on information about the class of the first receiver. I hope I could make this clear somehow. There might be more examples also in Squeak but the one I mentioned above was the one which came in my mind immediately. The next time I promise to chose an example from Squeak. Stefan -- --[ Stefan Schlechtweg ]-------[ stefans@isg.cs.uni-magdeburg.de ]-- | Otto-von-Guericke-Universitaet Magdeburg TEL: +49 391 67 128 61 | | FIN, ISG, Uniplatz 2, D-39106 Magdeburg FAX: +49 391 67 111 64 | ----------[ http://isgwww.cs.Uni-Magdeburg.DE/~stefans/ ]----------- From dwighth at ipa.net Wed Nov 4 22:34:41 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:30:56 2012 Subject: PROPOSAL: create the squeak-help list Message-ID: <3640D681.D94C229B@ipa.net> I would like to semiformally propose that we create the squeak-help list. This list would be for how-to questions about Squeak and its environment ("how do I turn the sound off?", "how do I get a list of all the classes?", "how do I store something in a file?",...); for learning how to start programming in Squeak/Smalltalk; for "why doesn't this code work?" questions; and the like. A few reasons for a squeak-help list: (1) The advanced topics often discussed in the Squeak list can be a rather overwhelming to those just learning Smalltalk/Squeak. (2) Those who know Smalltalk but are new to Squeak may be embarrassed to ask simple "stupid" questions that they need answers to. (3) The shear volume of email to the list can bury simple questions for help, which may never get answered. (4) Newbies may just not feel comfortable discussing simple basic problems when everyone else on the list is splitting quarks. (5) With the upcoming version 2.3, I expect the level of discussion to get even more advanced (and that the email volume will increase): pluggable primitives, weak arrays and finalization, 2-D device-independent anti-aliasing vector graphics, .... (6) The number of newbies coming to Squeak through things like the Pluggable Web Server and through Squeak becoming more and more widely known on the net seems to be increasing -- it would be good for them to have a forum that more directly addresses their needs. If you would like to see such a list created, DO NOT REPLY TO THE SQUEAK LIST - email ME directly at mailto:dwighth@ipa.net and I will tally the responses and send the results back to the list. I will not be the one setting up this list: I do not have any webserver resources available to me -- this will probably fall to John Brant, should he be willing. However, I might be persuaded to compile a Squeak FAQ as my contribution. -- Dwight From dnsmith at watson.ibm.com Sat Nov 7 22:22:52 1998 From: dnsmith at watson.ibm.com (David N. Smith (IBM)) Date: Sat Jan 28 04:31:12 2012 Subject: CrLfFileStream as default? In-Reply-To: <199809242238.SAA15081@cleon.cc.gatech.edu> Message-ID: At 17:38 -0500 9/24/98, Lex Spoon wrote: >If a file has a CRLF pair in it, and CrLfFileStream converts that to a CR, >then the idea of "position" gets messed up. It looks like 1 character, >but "file position" will act like 2 characters have gone by. For >CrLfFileStream to go the final mile, it should probably have some code to >make positions truly transparent to the user. > >Other than that, CrLfFileStream seems very nice. I've been using it as >the default for several months now and found it nothing but convenient. > > >Lex I've just discovered this thread and read it quickly. The root seems a good a spot as any as a base a few comments. I'm wearing my Here's-What-Other-System-Do hat. IBM Smalltalk has a different design which I've kind of liked. It gets around the problems of having explicit classes for CrLf streams or of guesing. There are line delimiter values in the same pool dictionary that holds character definitions: MACLineDelimiter There's no Mac version but you might get Mac files. PMLineDelimiter OS/2 UNIXLineDelimiter UNIX (tm) WINLineDelimiter Windows LineDelimiter The appropriate one of the above for this platform Streams and file streams all have a #lineDelimiter: method that lets the value be changed (and a #lineDelimiter method too). By default, the value is that of the current host platform. Line delimiters are strings. So, if I open a file on Windows, I get CrLf by default. I can do a #nextLine which internally does a (self #upToAll: lineDelimiter) to read a line. A #cr puts the stream's current line delimiter value. For example, here is some (untested) code: | in out | in := CfsReadFileStream open: 'UnixFile'. in lineDelimiter: UNIXLineDelimiter. out := CfsWriteFileStream open: 'WinFile'. out lineDelimiter: WINLineDelimiter. [ in atEnd ] whileFalse: [ out nextPutAll: in nextLine; cr ]. in close. out close. This reads a file in UNIX format and writes one in Windows format, regardless of what platform it is run on. Omit the 5th line of code and it converts a UNIX format file to whatever the native platform format is. There is a general mechanism for calling code at image startup (and at image shutdown) and at other times. With such a mechanism it is easy to set the defaults, and it is an easy mechanism to build (if there isn't already one in Squeak that I've missed). There is one flaw, though: if you read the file character by character then you get whatever is in the file. There is no attempt to map, say CrLf, to a native Cr. One usually avoids this by reading lines but that is not always what you want. I suspect that it'd be easy to add a #mapToLineDelimiter: method which specifies another line delimiter for a mapping from the stream's line delimiter but then you'd have the length of the read text differ from the stream position. Dave _______________________________ David N. Smith IBM T J Watson Research Center Hawthorne, NY _______________________________ Any opinions or recommendations herein are those of the author and not of his employer. From jwdavison at lucent.com Tue Nov 3 14:12:40 1998 From: jwdavison at lucent.com (Joe Davison) Date: Sat Jan 28 04:31:13 2012 Subject: Units package (was Method names) In-Reply-To: <87iugxuv9w.fsf@streamer.msfc.nasa.gov> References: <5040100024760936000002L062*@MHS> <87iugxuv9w.fsf@streamer.msfc.nasa.gov> Message-ID: <13887.3928.874485.942337@nwswd131.ih.lucent.com> Stan Heckman said: > .... > > What's the problem with functions other than +, -, *, and /? The problem > is that there are so many of them. :-) In the Mathematica package, I > kept encountering functions that should work with dimensional quantities > but didn't. See the functions section on the web page. If someone can > figure out any way to avoid the same proliferation of tiny methods in > the Squeak units package, that would be a very important contribution. Well, obviously, all you need are before:, after:, and around: methods -- units should be a mixin... but that's CLOS. joe From rowledge at interval.com Wed Nov 18 17:51:34 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:31:28 2012 Subject: Bug: disableSounds preference spontaniously becomes false In-Reply-To: <199811181113.MAA11122@gaugin.cs.uni-magdeburg.de> Message-ID: On Wed 18 Nov, Andreas Raab wrote: > Chris, > > > I'd post a patch but I don't know the sound system well enough to know > > _where_ the fix ought to go. > > The problem is that the sound start prim on Unix system doesn't fail, even > though sound is not supported. Ian put this in to avoid the annoying > walkbacks but it will probably be fixed with the next release. For now, > you could just comment out the sound start prim in SoundPlayer class > (e.g., in primSoundStartBufferSize:...) > > Andreas I get around this problem on Acorn by making the machine specific sound functions cheat. So far as I recall, this basically only needed snd_InsertSamplesFromLeadTime(int frameCount, int srcBufPtr, int samplesOfLeadTime) { // return frameCount to pretend the buffer was filled return frameCount; } and snd_Start(int frameCount, int samplesPerSec, int stereo, int semaIndex) { return true; } but fetching my VM sources from http://sumeru.stanford.edu/tim/pooters/SqFiles/deltas/sq22VM.zip would give you the whole file to compare. I haven't noticed any problemas apart from the fact that no sound comes out... tim -- Strange OpCodes: PO: Punch Operator Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From bruce_oneel at yahoo.com Tue Nov 17 09:44:11 1998 From: bruce_oneel at yahoo.com (Bruce O'Neel) Date: Sat Jan 28 04:31:29 2012 Subject: Cute semi squeak related note from Comdex Message-ID: <19981117094411.5086.rocketmail@send204.yahoomail.com> From: http://www.upside.com/texis/tsdiary/fallComdex98/story.html?id=362d4d250 Steve Kirsch went on to tell why Disney invested in Infoseek. The system will now be called the Go Network, with Disney marketing behind it. I still vote for InfoSqueak. == Bruce O'Neel - beoneel@acm.org http://homepage.iprolink.ch/~bioneel _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From dwighth at ipa.net Wed Nov 11 06:08:09 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:31:32 2012 Subject: Results of proposal to create squeak-help list... References: <199811101942.NAA26479@sal.cs.uiuc.edu> <3.0.5.32.19981110230601.007ac350@mail.aei.ca> Message-ID: <364929C9.E5EE1B7D@ipa.net> Benoit St-Jean wrote: > > At 14:19 98-11-10 -0600, you wrote: > >I wanted to see if there were enough people interested in participating > >in such a list to make it a worthwhile addition to the original Squeak > >list -- instead of just creating an abandoned notion like squeak-annc -- > >and to see if it was worth asking any of the Squeak list maintainers to > >take the time and trouble to create such a thing in the first place, > >since I do not have the webserver resources available to do so myself > >[otherwise I would just go ahead and do so]. I do not take > >"volunteering" someone else's time lightly. > > It could even contain some "basic" smalltalk help about the language itself > to help newbies overcome this "strange" language... :) Absolutely. My proposal was that a squeak-help list would cover the basics of how to start programming in Squeak/Smalltalk and such things as "why doesn't this code work?". Of course, such things as "dang this code is ugly -- is there a better way to do this?" could also be part of this. -- Dwight From wDargel at shoshana.com Wed Nov 18 17:11:17 1998 From: wDargel at shoshana.com (William O. Dargel) Date: Sat Jan 28 04:31:39 2012 Subject: Bug: disableSounds preference spontaniously becomes false References: <199811181113.MAA11122@gaugin.cs.uni-magdeburg.de> Message-ID: <3652FFB5.746FF1B5@shoshana.com> Andreas Raab wrote: > The problem is that the sound start prim on Unix system doesn't fail, even > though sound is not supported. Ian put this in to avoid the annoying > walkbacks but it will probably be fixed with the next release. For now, > you could just comment out the sound start prim in SoundPlayer class > (e.g., in primSoundStartBufferSize:...) I don't know how you're planning to fix this so I thought I'd put in my 2 cents. >From a user perspective, I might want to disable sounds via the preferences, irrespective of whether sounds work on my system or not. So I'd change #startPlayerProcessBufferSize:rate:stereo: to simply return if sounds were disabled rather forcing the disable flag to be false. Maybe the problem is that the meaning of #disableSounds is being overloaded? It seems to be getting used in this context as "are sounds *possible*?" as compared to "should sounds be disabled?". ------------------------------------------- Bill Dargel wdargel@shoshana.com Shoshana Technologies 100 West Joy Road, Ann Arbor, MI 48105 USA From DanI at wdi.disney.com Wed Nov 11 15:58:28 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:31:42 2012 Subject: [sqvm] squeak vm startup (interpreter?) In-Reply-To: Message-ID: >I would like to try your suggested direction, but am not sure which is correct >download for this. What's the correct URL for this? > >In a message dated 11/10/98 2:42:45 PM EST, DanI@wdi.disney.com writes: ><< I find it nice to work with the Mini.image on the UIUC server. >> Jerry - You just have to want it real bad... Start with the Squeak Home Page http://squeak.cs.uiuc.edu/ Then look under Downloading, and click the directory link for either Mac or WIndows. Now you're in ftp -- go to the next higher directory, and open the folder SmallSqueaksForPDAs. There you will find the old Mini1.2, and a new 2.2 version of MiniSqueak. To cut to the chase, here's the URL: ftp://st.cs.uiuc.edu/pub/Smalltalk/Squeak/SmallSqueaksForPDAs/MiniSqueak2.2/ When things slow down a bit (uh-huh) I'll add a section on Small Squeaks on the home page. Enjoy - Dan From lex at cc.gatech.edu Tue Nov 3 22:02:27 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:31:49 2012 Subject: Squeak memory allocation Message-ID: <199811032202.RAA16988@cleon.cc.gatech.edu> Okay, since my words have been unconvincing, I hacked a little code to see how this really works. First, my gloom and doom about static memory allocations was worse than the true case. I claimed that if you allocate a larger heap (via command line flags or whatever) than you have actual RAM, that you will definately get swapping. In fact this is not quite true. The current ObjectMemory does an incremental collection after every 2000 allocations, and so in the typical case the upper parts of a large but mostly empty heap will never get touched. However, that's only the typical case. If you start allocating very large objects, then you can allocate tons of space before the 2000-allocations trigger goes off. To test this, I ran an image with 50 megs of heap, and executed: 10000 timesRepat: [ Array new: 1000000 ] The Squeak process grew to 40 megs resident, and all my other running apps started getting swapped out. Next, I modified the ObjectMemory to also trigger a GC if more than 3 megs have been allocated since the last GC. When I executed the above line with the new VM, the Squeak process only went up to 17 megs. The patch is below, for anyone who wants to play with it. It's a bit of a hack as is, but simply adding a "maxAllocationBetweenGCs" instance variable, and finding a better name than "lastFreeSpace" would make it pretty clean. Also, maybe the max allocation should be smaller for smaller images; for a 2 meg image, for instance, you might want to do a GC after just 1 meg of allocation. Lex 'From Squeak 2.2 of Sept 23, 1998 on 3 November 1998 at 4:52:29 pm'! "Change Set: FrequentGCs Date: 3 November 1998 Author: Lex Spoon trigger a GC after every 3 megabytes of allocation, so that Squeak doesn't use memory high in its heap unless it really needs it."! Object subclass: #ObjectMemory instanceVariableNames: 'memory youngStart endOfMemory memoryLimit lastFreeStart nilObj falseObj trueObj specialObjectsOop rootTable rootTableCount child field parentField freeBlock lastHash freeLargeContexts freeSmallContexts allocationCount lowSpaceThreshold signalLowSpace compStart compEnd fwdTableNext fwdTableLast remapBuffer remapBufferCount interruptCheckCounter checkAssertions allocationsBetweenGCs tenuringThreshold statFullGCs statFullGCMSecs statIncrGCs statIncrGCMSecs statTenures statRootTableOverflows displayBits ' classVariableNames: 'AllButHashBits AllButMarkBit AllButMarkBitAndTypeMask AllButRootBit AllButTypeMask BaseHeaderSize CharacterTable ClassArray ClassBitmap ClassBlockContext ClassByteArray ClassCharacter ClassCompiledMethod ClassFloat ClassInteger ClassLargePositiveInteger ClassMessage ClassMethodContext ClassPoint ClassProcess ClassPseudoContext ClassSemaphore ClassString ClassTranslatedMethod CompactClasses ConstMinusOne ConstOne ConstTwo ConstZero Done ExternalObjectsArray FalseObject FreeSizeMask GCTopMarker HashBits HashBitsOffset HeaderTypeClass HeaderTypeFree HeaderTypeGC HeaderTypeShort HeaderTypeSizeAndClass LargeContextSize MarkBit MinimumForwardTableBytes NilContext NilObject RemapBufferSize RootBit RootTableSize SchedulerAssociation SelectorCannotReturn SelectorDoesNotUnderstand SelectorMustBeBoolean SmallBlockContext SmallContextSize SmallMethodContext SpecialSelectors StackStart StartField StartObj TheDisplay TheFinalizationSemaphore TheInputSemaphore TheInterr! ! ! uptSemaphore TheLowSpaceSemaphore TheTimerSemaphore TrueObject TypeMask Upward ' poolDictionaries: '' category: 'Squeak-Interpreter'! !ObjectMemory methodsFor: 'initialization' stamp: 'ls 11/3/1998 15:43'! initializeMemoryFirstFree: firstFree "Initialize endOfMemory to the top of oop storage space, reserving some space for forwarding blocks, and create the freeBlock from which space is allocated. Also create a fake free chunk at endOfMemory to act as a sentinal for memory scans." "Note: The amount of space reserved for forwarding blocks should be chosen to ensure that incremental compactions can usually be done in a single pass. However, there should be enough forwarding blocks so a full compaction can be done in a reasonable number of passes, say ten. (A full compaction requires N object-moving passes, where N = number of non-garbage objects / number of forwarding blocks)." | fwdBlockBytes | "reserve space for forwarding blocks" fwdBlockBytes _ MinimumForwardTableBytes. (memoryLimit - fwdBlockBytes) >= (firstFree + BaseHeaderSize) ifFalse: [ "reserve enough space for a minimal free block of BaseHeaderSize bytes" fwdBlockBytes _ memoryLimit - (firstFree + BaseHeaderSize). ]. "set endOfMemory and initialize freeBlock" endOfMemory _ memoryLimit - fwdBlockBytes. freeBlock _ firstFree. self setSizeOfFree: freeBlock to: (endOfMemory - firstFree). "bytes available for oops" "make a fake free chunk at endOfMemory for use as a sentinal in memory scans" self setSizeOfFree: endOfMemory to: BaseHeaderSize. checkAssertions ifTrue: [ ((freeBlock < endOfMemory) and: [endOfMemory < memoryLimit]) ifFalse: [ self error: 'error in free space computation' ]. (self oopFromChunk: endOfMemory) = endOfMemory ifFalse: [ self error: 'header format must have changed' ]. (self objectAfter: freeBlock) = endOfMemory ifFalse: [ self error: 'free block not properly initialized' ]. ]. lastFreeStart _ freeBlock.! ! !ObjectMemory methodsFor: 'allocation' stamp: 'ls 11/3/1998 15:57'! allocateChunk: byteSize "Allocate a chunk of the given size. Sender must be sure that the requested size includes enough space for the header word(s)." "Details: To limit the time per incremental GC, do one every so many allocations." | enoughSpace newFreeSize newChunk | self inline: true. allocationCount >= allocationsBetweenGCs ifTrue: [ "do an incremental GC every so many allocations to keep pauses short" self incrementalGC. ]. freeBlock - lastFreeStart > (3*1024 * 1024) ifTrue: [ "do a GC if we've allocadet more than 3 megs" self incrementalGC. ]. enoughSpace _ self sufficientSpaceToAllocate: byteSize. enoughSpace ifFalse: [ "signal that space is running low, put proceed with allocation if possible" signalLowSpace _ true. lowSpaceThreshold _ 0. "disable additional interrupts until lowSpaceThreshold is reset by image" interruptCheckCounter _ 0. ]. (self sizeOfFree: freeBlock) < (byteSize + BaseHeaderSize) ifTrue: [ self error: 'out of memory'. ]. "if we get here, there is enough space for allocation to succeed" newFreeSize _ (self sizeOfFree: freeBlock) - byteSize. newChunk _ freeBlock. freeBlock _ freeBlock + byteSize. "Assume: client will initialize object header of free chunk, so following is not needed:" "self setSizeOfFree: newChunk to: byteSize." self setSizeOfFree: freeBlock to: newFreeSize. allocationCount _ allocationCount + 1. ^ newChunk! ! !Interpreter methodsFor: 'object memory support' stamp: 'ls 11/3/1998 15:42'! postGCAction "Mark the active and home contexts as roots if old. This allows the interpreter to use storePointerUnchecked to store into them." (activeContext < youngStart) ifTrue: [ self beRootIfOld: activeContext ]. (theHomeContext < youngStart) ifTrue: [ self beRootIfOld: theHomeContext ]. lastFreeStart _ freeBlock.! ! From zhan1 at uiuc.edu Mon Nov 9 07:33:40 1998 From: zhan1 at uiuc.edu (John (Zhijiang) Han) Date: Sat Jan 28 04:31:58 2012 Subject: [squeak] Inconsistency between Time class>>#dateAndTimeFromSeconds: and Time class>>#dateAndTimeNow In-Reply-To: Message-ID: Anyone noticed that Time class>>#dateAndTimeFromSeconds: returns {time. date} while Time class>>#dateAndTimeNow returns {date. time}? I made the first one being consistent with its name (and the second one, of course). 'From Squeak 2.2 of Sept 23, 1998 on 9 November 1998 at 1:28:38 am'! !Time class methodsFor: 'general inquiries' stamp: 'JZH 11/8/1998 13:03'! dateAndTimeFromSeconds: secondCount ^ Array with: (Date fromSeconds: secondCount) with: (Time fromSeconds: secondCount \\ 86400) ! ! Cheers John (Zhijiang) From jason at netgenics.com Tue Nov 17 14:28:14 1998 From: jason at netgenics.com (Jason Karney) Date: Sat Jan 28 04:32:27 2012 Subject: FAQ: Re:problem with sources References: <000601be1233$23f45600$330c8218@pavilion.we.mediaone.net> Message-ID: <365187FD.16A61319@netgenics.com> An HTML attachment was scrubbed... URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/19981117/d38c3112/attachment.htm From danielv at netvision.net.il Sat Nov 7 22:16:15 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:32:40 2012 Subject: Recompiling the VM with finalization References: <199811071851.TAA10375@monet.cs.uni-magdeburg.de> Message-ID: <3644C6AF.7EC3A177@netvision.net.il> Eureka. Thanks a bunch. BTW, I've long wondered - Why exactly is Linear algebra my friend and trig my enemy? (I'm guessing this has something to do with your interest in 3d...) Andreas Raab wrote: > Okay, this means you've been using the interpreter sources from the 2.2 > distribution. I was assuming you know how to generate a new VM from > scratch ;-) So here's how this works: > > * Write out the Mac support code, e.g., execute > InterpreterSupportCode writeMacSourceFiles > * Convert the files from CR to either LF or CRLF line endings > (you might use CrLfFileStream for this) > * Create a project from all of the sqXYZ.c files from the above > and add the appropriate Win32 support files (e.g., the ones > starting with sqWin32*) > * Compile. > * Link. > * Run. > > Andreas > > -- > Linear algebra is your friend - Trigonometry is your enemy. > +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ > I Department of Simulation and Graphics Phone: +49 391 671 8065 I > I University of Magdeburg, Germany Fax: +49 391 671 1164 I > +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From arning at charm.net Thu Nov 5 02:02:47 1998 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 04:32:52 2012 Subject: Where can I get some etoys? Message-ID: <199811050202.VAA02485@fellspt.charm.net> On Wed, 4 Nov 1998 14:32:34 -0500 "Houston, Bob" wrote: >I had the opportunity to see Alan do his etoy demo last week. Wow! This >stuff is really cool!! Bob, I was there, too, and it was DYNAMITE! I have come away with a greater appreciation for Squeak. It's not _just_ a better Smalltalk, but much more (though I personally hope we never lose sight of the Smalltalk part). I am re-energized to view Morphs as real things to play with and not just cool classes to include in code. I, too, enjoyed the car demo and demonstrated it to a fellow squeaker a few days later at work. Leaning over his shoulder it took me just a few minutes to get it working (and this was only my second attempt at Morphic scripting). My colleague decided this was the best advertisement for Morphic he had yet seen. SO, Alan, if you are listening, - GREAT JOB - keep it up. Cheers, Bob P.S. - Alan - Did you sent a free set of mouse ears to the poor folks who followed your act? They had an impossible task and managed not to flee in terror. From zss at ZenSpider.com Fri Nov 20 05:21:20 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:33:01 2012 Subject: /. mentions squeak Message-ID: http://www.slashdot.org/ just had a mention of us (about a mention of us). Check it out: Jim Thompson writes "Today's edition of Project Heresy at CNET News covers a very interesting new (?) project called Squeak by, of all people, The Disney Co. This project, targetted at embedded devices, has a Smalltalk heritage and is based, to some extent, on code from Apple. Apple required that Disney not commercialize their product, so Disney has released it as Open Source. Squeak is not itself an OS, but the Heretics speculate that Squeak will soon be married to a scaled-down linux kernel an ported to all sorts of handheld devices. Squeak sounds reasonably cool in that it's based on Smalltalk-80 and has what sounds like a built-in "skins" feature for its UI. Do any Slashdotters have more info on Squeak, on where to go for more information? " Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From guzdial at cc.gatech.edu Thu Nov 26 20:02:11 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:33:09 2012 Subject: Squeak 2.3 beta available In-Reply-To: <199811261351.OAA23330@gaugin.cs.uni-magdeburg.de> References: from "Dan Ingalls" at Nov 25, 98 05:47:38 pm Message-ID: > - Playing with MacroMedia Flash files > Flash is a vector graphics package designed for vector graphics > content delivery over the internet. Many sites use this to enhance > their web pages and it's a lot of fun to play with. If you have access > to any .SWF files just open them from the file list. > [Note: The integration into Scamper didn't make it for the beta. > It will be in the final 2.3 and I'll post a couple of links > for you to play with]. For those of us who have just learned of Flash, where's a good place to grab .SWF files? Thanks! Mark -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From scottw at wdi.disney.com Wed Nov 4 22:07:05 1998 From: scottw at wdi.disney.com (scottw@wdi.disney.com) Date: Sat Jan 28 04:33:33 2012 Subject: Where can I get some etoys? In-Reply-To: <6F155D13AB83D111922A0060083A1A2701DE6A47@cartman.lex.rational.com> Message-ID: Bob, It will be much more straightforward in the forthcoming Squeak 2.3 release to create "etoy-like" things than it has been in 2.2. I advise waiting a couple of weeks. However, if you wish to push forward on this in the meantime, a good place to look is in the "ReadMe.text" file shipped with Squeak 2.2; the relevant section starts with the heading "Programming in Morphic". Or, more conveniently, you can point a web browser directly at: http://minnow.cc.gatech.edu/SqueakDoc.11 Finally, if none of the above satisfies your immediate need, here are a few steps that will get you on the road to reconstructing Alan's "race car" demo in the current release: * Start out in a fresh Morphic Construction Project. * From the "Scripting" submenu of the world menu, get a "detachable scripting space". * Drag out a blank playfield (pale green rect) from the parts bin and deposit it in the scripting space. This will be the place where you draw your car and where it will travel around. * Paint your car by dragging a "paint palette" from the parts bin and dropping it into Playfield, then painting the car, then hitting "Keep". (It's also possible to script a "Paint" tab of the palette so that it invokes painting automatically whenever it's hit, as in Alan's etoy demo, but drag-n-drop of the palette icon should do to get you started.) * Obtain a "Viewer" for the car by dragging from its cyan-colored halo handle; place the viewer where you wish. (It is also possible to have viewers all show up at a single, reusable place, as in Alan's etoy demo, but it's rather strenuous right now to set this up. In 2.3 Squeak this will be *much* easier.) * Rename the car from "Sketch" to "Car" by clicking on its name at the top of the Viewer (the name-editing area will turn yellow), backspacing to get rid of the unwanted text, typing "Car", and then hitting ENTER. * Get a nascent script for the car by dragging from the phrase in the Viewer that reads "Car turn by 5" and dropping somewhere into your scripting space. * Now proceed to modify and test your script, by adding new phrases, changing parameters, etc. * Later on, paint your steering wheel, bring up its viewer, and drag tiles from the relevant places in that viewer, dropping them atop the appropriate places in your script, to achieve the effect you want. For example, if you want the amount by which the car turns to be determined by the heading of the steering wheel, get a tile for "steeringWheel's heading" anddrop it over the "5" parameter in the "car turn by 5" phrase of the car's script. Hope this helps, -- Scott -------------------------------------------------------------- At 11:32 AM -0800 11/4/98, Houston, Bob wrote: >I had the opportunity to see Alan do his etoy demo last week. Wow! This >stuff is really cool!! > >The etoy authoring tools and scripting environment have come a long way in >the past few months. I'd really like to play around with this stuff, but I >seem to be missing something. I remember playing with the authoring >tools/scripting support in a previous release of squeak, but I can't seem to >get it to work in the version 2.2. I'm sure it's just pilot error on my >part. ;-) > >Could someone send me a pointer to get me going? If this info is available >on the SqueakDoc site please send me the page number. Here's what I' trying >to do: > >I'd like to re-create the "race car" demo, where you draw two sketch morphs >(a race car and a steering wheel) and "wire" them together so that rotating >the steering wheel causes the car to be driven around the screen. Pretty >simple, right? Question: How exactly do I invoke the authoring tools and >connect the two morphs in this way? > >Thanks in advance, > >Bob Houston, Tech Rep bobh@rational.com > >Rational Software Corporation 703 761-4466 >8000 Westpark Drive, Fifth Floor >McLean, VA 22102 USA From gera at core-sdi.com Tue Nov 3 18:37:01 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:33:36 2012 Subject: |[Fwd: http://www.dm.uba.ar/MathMorphs] Message-ID: <363F4D4D.FC6B9F7D@core-sdi.com> If somebody is interested in Squeak+Teching+Math here is something you may want to see: Leandro Caniglia wrote: > We have good news: > > During the week end I was working on our site. The site was moved, > reorganized, updated and extended. New projects have been included and the > old ones have now new versions for Squeak 2.2 (BookMorphs, ClassOrganizer, > etc. have changed since 2.2). So, almost everything is new, the new files > and the old too. > > Please, if somebody out there has any problem with the site, please, let me > know. Now I have direct ftp access to the directories. > > Saludos, > Leandro > ----- > "Although it is quite possible to write programs which depend on the byte > size, this is an illegal act which will not be tolerated" Donald E. Knuth, > The Art of Computer Programming, Vol 1. Too by lucky is good! Good Bye! Richie++ From eau at astsun.fujitsu.com.au Thu Nov 5 01:01:39 1998 From: eau at astsun.fujitsu.com.au (Eric Ulevik) Date: Sat Jan 28 04:33:48 2012 Subject: PROPOSAL: create the squeak-help list Message-ID: <002101be0857$d98a77a0$eed2ac89@eau-nts-2> -----Original Message----- From: Dwight Hughes To: squeak@cs.uiuc.edu Date: Thursday, 05 November 1998 10:56 pm Subject: Re: PROPOSAL: create the squeak-help list >russell.allen@firebirdmedia.com wrote: >> >> Hi >> >> Would there be some way of moving answers to questions on this new list over to >> the Squeak Swiki so that people are not forced to trawl through thousands of >> old emails to find that answer they are seeking? (Either something automated >> or a rule such as "The person who asks the question updates the Swiki"?). >> >> That sort of rule could make the swiki into a self-updating FAQ... > >I like the "the person who asks the question updates the Swiki" rule -- >it would have to be pasted into the Swiki by hand though. Perhaps we >could have a special "append" form or something like the PARC Sparrow >lightweight editable webpage to simplify the process. It would make a >great resource for everyone. > >> Russell >> >> P.S. As as aside, 1 and 2 cent coins are still legal tender in Australia >> (although not used), so $0.02 must be worth *something* ;-) > >Hmmm, what is your smallest value coin then? > >-- Dwight > > 5 cents. 1 and 2 cent coins are no longer legal tender. From rlpcon at vermontel.net Sat Nov 14 20:18:48 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:33:56 2012 Subject: Multi-threading the interpreter Message-ID: I may be wrong, but it appears that the Squeak interpreter is single threaded. (At least that is the impression I get from looking at interp.c, and observing the behaviour during a net-based "upgrade".) For those of us interested in using Squeak in an IPC environment, this single thread operation can be a problem. For example, if a Squeak process calls a numerically intensive external process (say using a TCP/IP based primitive), everything is "on hold" until that external process returns. Any ideas on how to deal with that problem? A possibility would be to allow asynchronous communication with primitives. Has that been done? A multi-threaded interpreter would be a good idea anyway. For example, if there were a way to make the interprter multi-threaded, performance would really be enhanced under the BeOS on multi-processor systems, since it is a pervasively multi-threaded OS which will map threads to available processors. Has any work been done on multi-threaded interpreters? I can see all sorts of issues such as how to handle garbage collection. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From dwighth at ipa.net Thu Nov 19 05:23:26 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:34:27 2012 Subject: Diff code available? References: <3d43435d.36539436@aol.com> <3653A260.D2EECC56@ipa.net> <3653A6E2.AEC48908@shoshana.com> Message-ID: <3653AB4E.AA8192F@ipa.net> Well, thank you Andreas then - it's a very nice piece of work and very handy to have around. -- Dwight William O. Dargel wrote: > > Dwight Hughes wrote: > > > The FileContentsBrowser for Squeak, written by Bill Dargel, contains a > > source code diff for comparing code in external files to code in the > > image - quite nice it is too: > > > > http://isgwww.cs.uni-magdeburg.de/~raab/fcb/FileContentsBrowser-Squeak2.0.st > > I'm afraid that I can't take credit for writing it. That honor goes to Andreas > Raab (among his many other contributions to Squeakdom). I merely ported it from > 1.23 to 2.0 and got it to open up within Morphic in addition to MVC. > > ------------------------------------------- > Bill Dargel wdargel@shoshana.com > Shoshana Technologies > 100 West Joy Road, Ann Arbor, MI 48105 USA From lex at cc.gatech.edu Mon Nov 9 21:52:38 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:34:36 2012 Subject: Morphic>>step Message-ID: <199811092152.QAA23902@cleon.cc.gatech.edu> Gerardo Richarte wrote: > Sometimes I have a problem... When some Morph is stepping and > suddenly an error pops up from it?s #step method, I can stop this > happen, soI need to quit squeak without saving, what I don?t like! > I can understand why this happens, and that it?s perfectly normal > (if there is such an error), but I?d like to have a way of stopping > this, or better, to make the morph stop stepping if there is an error in > its #step method. > Any idea out there? > > Unsolvable Bye! > Richie++ I've noticed you can still use the root menu to jump to another project. Then you can do a few "allInstance"'s and "delet" the offending morph, before heading back in. I agree, though, this is a common nuisance.... Maybe the world should simply stop stepping when a debugger pops up? Lex From DanI at wdi.disney.com Wed Nov 4 16:18:39 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:34:37 2012 Subject: But what about Flash? (Re: Toward the next release...) In-Reply-To: <882566B2.000E46E0.00@d53mta01.boulder.ibm.com> Message-ID: "Mike Wirth" < wrote... >What about Flash? There was a tantalizing hint in your msg before OOPSLA >(which I missed again; sigh...) but nothing in your msg about the next >release. Or is that technology related to "Andreas Raab's >as-yet-to-be-named resolution-independent outline-based anti-aliasing 2-D >rendering engine"? I dearly hope so. It would be wonderful to get that >technology into Squeak. > >Story for the uninitiated: > . . . > >What's the news, Dan? Mike - In case my earlier message, and Andreas's response to this one didn't make it clear, the new graphics engine will be the MAIN focus of release 2.3. We plan to assemble it, along with as many ways to play with it as possible, and get it out by Thanksgiving. This will include the ability to read most Flash files, to answer that fork of your question. Then, for the next couple of months, everyone can take part in shaking it down and suggesting improvements, while we try to figure out for ourselves the best way to merge this with morphic, and the rest of Squeak graphics, including fonts and text display. This stuff is going to be FUN! - Dan P.S. For those of you who didn't make it to OOPSLA, Jeff Sutherland assembled some pretty complete notes from the Squeak Birds-of-a-Feather session. they can be viewed at http://jeffsutherland.org/oopsla98/squeak98.html From Jarvisb at timken.com Mon Nov 2 12:40:47 1998 From: Jarvisb at timken.com (Jarvis, Robert P.) Date: Sat Jan 28 04:34:41 2012 Subject: Object databases for Squeak Message-ID: You might take a look at Jonathan Carlson's MinneStore OODB, at http://www.mneta.net/~joncrlsn/minnestore/. I don't think it's been ported to Squeak yet but it might not be too difficult to get it running. Bob Jarvis The Timken Company >-----Original Message----- >From: Alejandro F. Reimondo [SMTP:aleReimondo@sugarweb.com] >Sent: Sunday, November 01, 1998 6:18 PM >To: 'Squeak List' >Subject: Object databases for Squeak > >Is anyone working on ObjectDatabases for Squeak? >With ObjectDatabases I mean, pure & transparent object storage of active >objects. > >Has anyone worked on a disk-based Squeak VM ? > >Ale. From m1jjh00 at Frb.GOV Mon Nov 23 20:24:41 1998 From: m1jjh00 at Frb.GOV (Jeffrey J. Hallman) Date: Sat Jan 28 04:34:43 2012 Subject: Fonts too small -- from a clueless newbie Message-ID: <199811232024.PAA03289@mrpmp2.FRB.GOV> I started Squeak 2.2 on NT, and found the fonts too small to read comfortably. What should I do? From JArchibald at aol.com Thu Nov 19 03:44:54 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:34:45 2012 Subject: Diff code available? Message-ID: <3d43435d.36539436@aol.com> In a message dated 11/18/98 2:15:24 PM Eastern Standard Time, DanI@wdi.disney.com writes: << I would do this myself, but if anyone has such code around, or knows of a goodie that does it, it would save some time. Please respond directly to me, not to the list. >> Lot's of us would probably like this, Dan. I would encourage whoever knows about such to post to the list. The best that I recall was in Team/V, and might have been done by Juanita Ewing. Jerry. From raab at isgnw.CS.Uni-Magdeburg.De Thu Nov 12 19:31:25 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:34:55 2012 Subject: Examples of API In-Reply-To: <199811121855.NAA09839@cleon.cc.gatech.edu> from "lex@cc.gatech.edu" at Nov 12, 98 01:55:19 pm Message-ID: <199811121931.UAA22920@monet.cs.uni-magdeburg.de> Lex, > Right now, neither external processes or Unix pipes are directly > supported in Squeak. It's also unlikely that such platform-specific > features will ever end up in the core system. However, it would still > be nice to have, as an add-on. That's exactly what I've been aiming at with the pluggable primitives. Just go on, write the prims you need and provide them as a shared library. So nobody outside the Unix world will be bothered by having stuff in the VM they don't really need and you can still have all your nice little goodies. BTW, writing the above stuff is not so different from the socket implementation - you could probably borrow a lot from there. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From patrickl at servio.gemstone.com Fri Nov 20 19:24:00 1998 From: patrickl at servio.gemstone.com (Patrick Logan) Date: Sat Jan 28 04:35:07 2012 Subject: Squeak Performance as a Web Server In-Reply-To: <98112011293906.00448@localhost.localdomain> References: <98112011293906.00448@localhost.localdomain> Message-ID: I'm using [VWNC] for a Web Server (using a Web Server I built in VW similar in concept to the Squeak PWS and an HTML framework I wrote). I'm curious if Squeak has general performance good enough to investigate using it as a web server. People are using it, so it's going to be a question of what kind of performance and features you need. I built a web server for Gemstone Smalltalk and achieved scalability by using multiple Gems (each Gem is a VM). The HTTP server is a "Broker Gem" and redirects a request to one of the "Service Gems". Of course in Gemstone, all of these Gems are working on the same distributed "image" repository. In Squeak, they'd all have their own image so YMMV. BTW when I did this there was some concern that a Web server in Gemstone would not perform well. Nevertheless, this code was used by a customer to run a "near real-time" distributed system (replacing HTTP with a proprietary protocol). It passed all of their acceptance tests and made it into production. During heavy use in production the system began to slow to a crawl. The customer was certain that the Gemstone piece was at fault. Analysis revealed that the problem was an IBM mainframe's TCP stack was not keeping pace. IBM fixed a bug in their stack on-line. As the fix was enabled the Gemstone system immediatey got back to full speed, never crashing during the ordeal. So robust "mission critical" performance is possible in a Smalltalk-based Web server for some requirements. This production system supported as much as 1300 simultaneous connections to a single "image". Other typical scalable Web server tricks easily could be played to get significantly beyond that. OTOH I would not think the investment worthwhile. Instead I would get one of the real Web servers like Apache. I am currently trying out the AOLserver, which is also free and full-featured. I would connect one of these Web servers to Smalltalk via CGI or some other mechanism. AOLserver has multiple TCL mechanisms which are really nice, including an "active server pages" like feature. The TCL can maintain socket connections to a Smalltalk playing the "application server" role, allowing Smalltalk to do anything that TCL can do like Smalltalk-based active server pages. This way you get all the features you'd otherwise have to build yourself, but you can still do everything you'd like to do with Smalltalk. -- Patrick Logan mailto:patrickl@gemstone.com Voice 503-533-3365 Fax 503-629-8556 Gemstone Systems, Inc http://www.gemstone.com From tim at jumpnet.com Fri Nov 20 06:18:10 1998 From: tim at jumpnet.com (Tim Olson) Date: Sat Jan 28 04:35:27 2012 Subject: slashdot & squeak Message-ID: <199811200616.AAA07968@mail11.jump.net> For those of you with RealAudio access, here's the URL to the CNET program which talks a bit about Squeak; the good stuff begins about 20 minutes in... http://www.news.com/Radio/Rams/1998/11/19/pm.ram?st.cn.News.radio.ne -- tim From zss at ZenSpider.com Wed Nov 18 05:25:00 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:35:30 2012 Subject: ummm... morphic errors Message-ID: "Sorry, for the moment you cannot tear off a new anonymous script for any instance of a uniclass other than the flagship instance. If this makes no sense to you, you surely got here in error" That is one of the better dialogs I've seen in a long time. :) So, anyone care to tell me what I did? Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From mklein at alumni.caltech.edu Mon Nov 9 22:57:56 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:35:31 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: <36461832.A28A5C89@netvision.net.il> Message-ID: > > I am using a Twiddler. > > > > http://www.HandyKey.com/ > > > > I am still on the steep part of the learning curve, but it is a lot > > easier to use than one might imagine (I thought it would be extremely > > difficult). > > Ah, at long last... a testimonial. > And how do you find that it fits using Squeak > (or other STs, or apps in general)? Well, I am avoiding training myself on the Twiddler's default brain-dead keymap, so I have been using it primarily as a pointing device. Even with this avoidance, I am still learning the key map, hence my claim that learning the keymap is easier than one might imagine. Smalltalk lends itself well to being driven without typing (so does Netscape). The problems with Squeak's UI I have mentioned earlier, are compounded with the use of the twiddler, primarily because it is still unfamiliar to me. New UI tip: Spend some time using the mouse with the opposite hand that you usually do. Notice how often the UI forces you to move large distances, unnecesarily. Remember Fitts' Law. In my earier years, I had done quite a bit of UI-hacking in VW, particularly a nice drag & drop framework. I think that the ease of creating new widgets/UI paradigms in Smalltalk makes it particulary nice for the twiddler. I am considering writing a twiddler driver in Squeak. Does anyone know how to access the Com ports on Windoze? Are there special considerations on NT? What about Linux? I'm sick of NT, and plan on migrating to Linux soon. Most of the wearables gang are into Linux anyway. Smalltalk on Linux on a wearable would be a cool combo. I wonder if the Linux crowd would prefer Squeak or VWNC? > Can you modify it [keymap] with software? Yes. I am thinking about making my key layout particularly for Smalltalk, since that is my primary language besides English (and in English, I don't seem no use nearly as many funny punctuation marks as in Smalltalk ;-). Thinking about key-layouts and Smalltalk led me to the following conclusion: The comma is underutilized. I mean underutilized, as opposed to underused, i.e. the utility of the comma should be higher, not that we should be concatenating more often. -- Mike From bobh at Rational.Com Wed Nov 4 19:08:29 1998 From: bobh at Rational.Com (Houston, Bob) Date: Sat Jan 28 04:35:38 2012 Subject: about oss doc from MS Message-ID: <6F155D13AB83D111922A0060083A1A2701DE6A2C@cartman.lex.rational.com> Please excuse me if I'm just being an old fuddy-fuddy on this one, but, I am concerned about the sending of a company confidential document to the squeak list. While I enjoyed reading the "Halloween" OSS document, it is clearly marked as "Microsoft Confidential." Don't take this wrong; I'm not opposed to distributing documents such as this, I just feel funny seeing it sent to a public mailing list. ;-) How do you feel about this? Should we refrain from doing this in the future? Or am I way out of line? Thanks. Bob Houston, Tech Rep bobh@rational.com Rational Software Corporation 703 761-4466 8000 Westpark Drive, Fifth Floor McLean, VA 22102 USA -----Original Message----- From: Hans Baker [mailto:hansb@263.net] Sent: Tuesday, November 03, 1998 10:35 PM To: squeak@cs.uiuc.edu Subject: Re: about oss doc from MS Here it is. Enjoy. (:-) -----Original Message----- From: Matthew McDonald To: squeak@cs.uiuc.edu Date: 1998?11?5? 3:31 Subject: Re: about oss doc from MS >Hi Hans, > > Folks: > > It is I that sent the confidential doc of oss from M$ to Eric Raymond. I > > am a fun of a little hacker group named "Aka" in China. Who need the > > original oss doc( in Word97 format )? Please email to me. > >I'd love to have the original in word-97 format! > >Could you send me a copy, thanks. >-- >Matthew McDonald > > << File: oss.zip >> From microres at crl.com Sun Nov 29 01:21:58 1998 From: microres at crl.com (Stanley Wilson) Date: Sat Jan 28 04:35:39 2012 Subject: Newbie questions In-Reply-To: Message-ID: I got Squeak 2.2 loaded on my windows 95 machine. It comes up with the multi-windows, etc. My background is assemble language. write code, compilie, run I havn't a clue on how to start. i.e. how do I use squeak to to get on the web as a browser ? how do I do anything ? the readme doesn't address simple questions. :-) Help ! can anyone point me in the right direction ? Thanks, Stan microres@crl.com From scottw at wdi.disney.com Mon Nov 9 20:19:00 1998 From: scottw at wdi.disney.com (scottw@wdi.disney.com) Date: Sat Jan 28 04:35:55 2012 Subject: morphic scripting In-Reply-To: Message-ID: At 12:00 AM -0800 11/9/98, Ryan Davis wrote: >1) I wrote a method called touches: which is based on some of the logic in >moveTowards: in order to have a test for collisions (which has obvious >value to a 9 year old programmer-wannabe). I am now able to create a cat >and mouse simulation where the cat can catch the mouse and make it attack >(the mouse turns red when touched, the cat makes a noise when it touches). >But the mouse code would be better if he could detect if ANY cat is >touching him... Can it? > >checkBleeding > (self touches: (self class refPlayer61)) " <--- here is the problem" > ifTrue: > [self setColor: blood] > ifFalse: [ > [self setColor: normal] If you make every cat be a monochrome object of the same distinguished color, then the method #seesColor: will do exactly what you want, and, even better, it will do it not by comparing bounding boxes but by actually looking for pigment overlap. Moreover, you can do this script entirely within the tile-scripting regime, if you prefer. The script would be: TEST mouse isOverColor catColor YES mouse's color <- bloodColor NO mouse's color <- normalColor (however, sketches don't have a single "color", so the "mouse's color <- bloodColor" assignment will only work if your mouse is *not* costumed as a SketchMorph; you could use a Polygon or curve instead). Aside: general collision-detection will be coming soon. ------ >2) I don't understand the model too well... From the debug menu, I learn >that the mouse is an instance of StarMorph. But when I edit one of his >methods it is an instance of a subclass of Player... Is this an analog to >View and Controller? The same Player can at various times wear various different costumes. Each costume can belong to a different subclass of Morph. The Player abstraction allows code and identity to be borne by something that remains the same amidst the potential swirl of changing costumes. As long as your're simply constructing surface graphics, you'll operate entirely in a world of morphs. Whenever you wish to script a morph, a Player subclass is created for you, and it's that Player subclass that bears all the scripting code. (The Player is somewhat analogous to Model, the Morph (aka Costume) to View/Controller.) ----- >3) Is there a registry of known players in a given morph? (possibly a >shorter version of #1). Yes, but it's maintained under the covers. When you construct scripts for a given Player, every other Player that is referenced by the those scripts is kept track of; that's what the refPlayerxxx things are about. You can also define your own instance variables, of type "player", which hold on to references to specific other objects, and you can set their values by direct manipulation if desired. If it's not obvious how to do all of this, please holler. ----- >4) I assume that the costumes are akin to sprites? That way I could have >several different costumes for a spaceship or car and have it rotate >through them??? How? The standard technique for doing this at present is to have the collection of variant costumes reside in a PasteUpMorph that you're using as a "holder". To do this, get a PasteUpMorph (playfield) and choose "behave like a holder" from its "playfield options" submenu. Place the variant costumes within it. To get an object (e.g. a "spaceShip") to animate by switching from one to another of the variant costumes, use a script patterned after the following: holder's cursor <- holder's cursor + 1. spaceShip look like holder's valueAtCursor The idea is that the "cursor" is an index into the holder's collection of subparts; holders's "valueAtCursor" is a reference to the element in the holder that is currently "selected". The "look like" script says for its receiver to wear a costume that resembles the costume worn by that selected element of the holder. ----- >5) Is there some clean way to get all my changes saved to a text file? I >found the save morph, but they are at least partial binary files... The short answer here is no -- not yet, anyway. The scripts often refer to specific objects (e.g. "car move toward trafficLight") and this is not very straightforward to represent in a naked fileout. The morphic "save files" are in essence persistent objects. ------ >6) Any way to automatically clean or not generate these: > >!Player5 methodsFor: 'anonymous scripts'! >xxxScript7 > ^ self! ! An "anonymous script" is a script created on your behalf (through your work with tiles) which has not been "named and saved", and has not yet deleted. Our idea here is that it's just too blocking to the imagination if you have to think up a name for a script before you can play with it and see how it behaves. So we support the idea of constructing scripts without names. Internally, of course, they have to have *some* name, since they're represented by actual Smalltalk methods. Thus the xxxScriptn methods. To get rid of such methods, just delete the corresponding Scriptors (by hitting their pink "X" dismiss buttons). If you're seeing scripts like the one you mention, they're obviously empty, which means that graphically they are script shells that currently have no tiles in them. If you're seeing such vacuous methods lingering in your image even though you thought you'd deleted the scripts, it's probably because you didn't delete the scripts using the pink "X" on the Scriptor. A lingering bug in the system is that if you delete a script-editor by any other technique (e.g. hitting its "dismiss" halo handle or dragging it to the trash), the corresponding method is not deleted. This is obviously something that we need to fix! ------ >7) I can name a player in the debug menu, can I have something rename the >class? No, sorry. For the moment, the "reality" is the actual objects on the screen and their palpable state and behavior. The oddly-named classes are privately maintained under the covers to support that external reality. As we move forward with our scripting experiments, we are conscious of the need for a convergence between the user-illusion reality and the under-the-covers reality. (Incidentally, note that to name a player, you should either do it in a Viewer [click on the player's name at the top of the viewer, backspace to delete unwanted characters, and type the name you want] or in the object's halo [click on the name at the base of the halo, etc]. I believe that the ability to name the object in the "debug" menu is a throwback to earlier times that operates outside the scripting regime and probably will not do everything you hope it will.) ------ Thanks for your interest in our early experiments in morphic scripting. Obviously, this work is in a preliminary state; it does a few things well and many other things not-so-well or not-at-all. At the moment, it's much more suited for the presentation of suggestive demos in the hands of people who already know precisely what they're doing, and not really well-suited at all to the true novice user, nor to the accomplished Smalltalk programmer who wants to be able to remain in complete control of everything. As time goes on, we intend to evolve this facility outward in both of these directions. -- Scott From mklein at alumni.caltech.edu Tue Nov 10 20:37:11 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:37:09 2012 Subject: time zones? In-Reply-To: <602F235CF2ACD011977E00805F91637B017CDAE5@ctnhemail01.corp.timken.com> Message-ID: > > Does anyone out there know how timezones work, in detail? > > > > more elusive. Is everyone's local time always an integral number of hours > > offset from Greenwich, or can it be more complicated? [various responces indicating 1/2 hour & 1/4 hour offsets] Worse still... There are zones whose legal definition of time was solar, although, I beleive there are no such current zones. To do timezones right, you need to handle historical changes. -- Mike Klein From rowledge at interval.com Wed Nov 25 18:06:04 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:37:09 2012 Subject: Please HELP promote Squeak. In-Reply-To: <365BD10D.994@pitnet.net> Message-ID: On Wed 25 Nov, Jerry Fass wrote: > Greetings all, from Milwaukee, Wisconsin, USA. > > I have begun a Squeak page on Open Directory: > http://directory.mozilla.org/Computers/Programming_Languages/Squeak Oh my, Jerry, such flattery, and at the top of the list too... I just want everyone to know that I did not pay Jerry, or anyone in his family for this entry. We have no innapropriate relationship. tim -- I used to have a life, then I got v32bis! Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From dwighth at ipa.net Sun Nov 15 02:12:38 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:37:31 2012 Subject: Question about update from server. References: <3.0.1.32.19981114173756.00942cd0@accessone.com> Message-ID: <364E3896.AF3CFF70@ipa.net> David LeBlanc wrote: > > Hi; > I tried the update from server functionality, and it seems to have worked. > I'm wondering if all the .cs and .st files left in the Squeak dir are > needed after saving the image? No, they are just the consequence of some deep changes to the system done by the updates. > I would also like to suggest a more active progress indicator then the > occassional "reading stream" with progress bar indications. Some little > progress dialog telling what the updater is in the progress of doing and > what files it's downloading would be nice. I've been away from Smalltalk > for a few years and have forgotten too much of the class hierarchy to > know where to work on that or i'd dig in. Some update files are very short - you may not even see the indicator blink by, others are a bit longer and you see it. Each update file is treated as a complete entity for showing progress -- it is not showing the progress of the update process as a whole. If you want to see more of what is going on, open the Transcript window before you start the update - the update process is logged to it as it progresses. -- Dwight From tgriggs at keyww.com Mon Nov 2 23:48:19 1998 From: tgriggs at keyww.com (Travis Griggs) Date: Sat Jan 28 04:37:47 2012 Subject: Units package (was Method names) References: <5040100024760936000002L062*@MHS> Message-ID: <363E44C3.BCA584AB@keyww.com> Sam Adams wrote: > alank wrote: > < > We've talked a lot over the years of adding "units" (centimeters, feet, > grams, ounces, bits, bytes, etc.) to Smalltalk. They are very useful in > science for knowing what you are talking about, and in Smalltalk would be a > set of unarys (as you suggest) that help conversions to be made. (They also > could be symbolically executed to just get the dimensions of the quantity > ....). > > Any interest out there in making a great units package for Squeak? > > > >> > > Yes, I'm interested. I implemented a start for such a package years ago and > learned a great deal but the code was lost. > If I remember correctly the main objects in the framework were Measurement, > Measure, MeasurementSystem, Unit and a few others. It used coercions based on > a "gold standard" for conversions and lots of unary messages for syntactic > sugar (inch in inches squareInches cubicInches etc). > > Some experiences: > Unit conversions within a MeasurementSystem are trivial: > ( 1 inch + 12 feet ) asYards > Unit conversions across MeasurementSystems( English vs Metric) for the same > Measure (Linear, Area, Volume) were easy for addition and subtraction > (3 meters - 2 feet) asAngstroms > Multiplication and division were OK (LinearMeasure * LinearMeasure yields > AreaMeasure) > (2 feet * 10 meters) asHectares > > What got complicated fast (and what I never finished) was the general case > which ends up with composite units like furlongs per cubic fortnight per dyne > centimeter. > You then needed an algebraic system with mappings for unit definitions (dyne cm > = erg, etc) so these composite units could recognize whether they were > compatible or not and if the units could be reduced or mapped to another unit. > > The really cool stuff you could do with a system like this is divide aDistance > by aTime and get aVelocity and divide by aTime again and get anAcceleration, > then multiply by aMass and get aForce. Each Measurement object would be the > natural place to implement all of those equations we learned in Physics. I had > dreams of an environment like Morphic where animated measurement objects would > collide and react almost chemically, perhaps implementing an updated version of > the old General Problem Solver. > > One other piece of advice: check out a book on measurement theory or find a > MathPsych major for tips on abstractions for this domain. > Oh yes, Kent Beck and Ward Cunningham's experiences with financial modeling > with deferred currency conversions would also be excellent here. They had some > great models that might be useful. When I worked at Siemens, Ken Greene had implemented a very elegant measured value system. I actually did a lot of the work on it, but the true novelty of the mechanics was his brainchild. The cool thing about it was the way it automatically reduced and composed units under multiply and divide operations. I did tons of my thermodynamics homework where mixed units were the thing with it. I would just type (3.0 => 'pa') / (4 => 'in2') Select print it and out woud pop 0.75 => 'psi'. Multiply that by 5.0d => 'in3' and out would pop 2.25 'in'. It dealt with mixed units great too. One of the goals of adding double dispatching to the math core was to add that package or something like it. I could either do a clean room implementation of what we did, or I could see if Ken feels comfortable making some of the code available (Siemens is one of this big 'ol stodgedy thou shalt not share anything companies). Stay tuned... -- Travis Griggs Key Technology tgriggs@keyww.com Member, Fraven Skreiggs Software Collective - C for Sinking - Java for Drinking - Smalltalk for Thinking From tyrrell at canis.uiuc.edu Mon Nov 23 15:57:45 1998 From: tyrrell at canis.uiuc.edu (Les Tyrrell) Date: Sat Jan 28 04:38:07 2012 Subject: Hyperbolic Tree Class Browser Message-ID: <199811231557.JAA17647@oasis.canis.uiuc.edu> For another look at this try: http://www.physics.orst.edu/~bulatov/HyperProf/ This also shows an interesting software analysis visualization. les From ChrisG at appliedreasoning.com Fri Nov 13 18:21:59 1998 From: ChrisG at appliedreasoning.com (Chris Grindstaff) Date: Sat Jan 28 04:38:14 2012 Subject: XML [was Re: Porting to VW] References: <364C1EFC.7E6A57DB@ix.netcom.com> <364C75F3.23168D05@ipa.net> Message-ID: <364C78C6.6DEB2D4@appliedReasoning.com> I've had fairly good luck with their XML utilities. I've been using them in VAST and VW to implement serialization for a generic data walker tool that we've been working on. If you're interested in DataWalker http://www.appliedreasoning.com/goodies/vw/vwFree.html -chris Dwight Hughes wrote: > Mike Anderson wrote: > > > > > > > I'm new to the list so please forgive any reopening of old woundsbut has an XML-based > > source externalization been discussed? > > > > ...Mike > > It has been mentioned 2 or 3 times but there hasn't been any real > discussion about it. > > Intelligent Documents, Inc has released some free XML utilities for > Smalltalk: > http://www.intelligentdoc.com/sxpdom.htm > if you're interested. > > -- Dwight -- ------------------------------------ Chris Grindstaff - Applied Reasoning mailto:chrisg@appliedreasoning.com http://www.appliedreasoning.com 919-851-7677 From pdfernhout at kurtz-fernhout.com Wed Nov 25 15:39:22 1998 From: pdfernhout at kurtz-fernhout.com (Paul Fernhout) Date: Sat Jan 28 04:38:23 2012 Subject: Squeak for embedded systems (remote debugging and image building) Message-ID: <365C24A9.43E2120D@kurtz-fernhout.com> Hi Squeakers, To support using Squeak in embedded systems and memory-constrained ones like Newtons, I'm exploring the idea of making a headless version of Squeak with minimal footprint that can be remotely interacted with from a headed Squeak via TCP/IP. Tools such as these might also be useful for debugging "headless" Squeak images embedded in applications like web browsers or web servers. I am wondering if anyone else is working or has worked in this area. A few questions: 1. Has anyone already ported Squeak to a real-time embedded OS like QNX or VxWorks? How long do you think it would take for bare bones support? 2. Has anyone developed a cross-development system for Squeak (debugging one image from another?) Are such readily available under an open source license from any source? 3. Has anyone got tools for building up an image from scratch? I know there was talk a year or so back about someone rebuilding the Squeak image from scratch. How was that done? 4. Has anyone else split the Squeak source into independently loadable packages? 5. Does the headless code work well? Is there anything I would need to improve on right away to make this practical? Has debugging such applications been difficult in the past? 6. Can people think of other useful reasons to have such tools? 7. Anyone have any other generally useful advice in this endeavor? Some more background: You can do remote debugging now with VisualAge Smalltalk to remotely debug a headless Smalltalk image running on a mainframe. Pocket Smalltalk for the Pilot by Andrew Brault. http://www.tiac.net/users/ajb/pocketst/index.html is an example of a cross-compiler from Dolphin Smalltalk to an essentially headless Pilot Smalltalk VM (in the emulated widgets sense) that talks to host windows. What I want to do ideally is a combination of the VisualAge remote development idea with the Pocket Smalltalk lightness focus. I think OTI embedded Smalltalk may work much like this. I'm thinking about taking these general ideas and making them work with Squeak bytecodes, Squeak classes, and Squeak 32-bit architecture. I'm willing to let real-time issues slide for now (like semaphores and GC delays and hooking Interrupt Service Routines), although obviously one would want to add support for these eventually. My key interest at the moment is in getting a system that is small and which can direct (not implement) real-time processes, and for which the compiler and development environment on the target is optional. Here is what I have in mind as an ideal: You compile the core VM for your target (remote) system with various OS hooks and get it there somehow. You then run that VM on the target, without an image. The VM goes into a receptive/debugging mode. You then open a TCP/IP connection (or maybe just plain serial) to that VM from a Squeak image on another (local) machine (or even the same one). The VM communications support is at the level of just accepting a few simple commands for loading and storing to memory, and modifying the VM registers. You manipulate the VM of the target system using the full image on the development machine. You can compile methods to bytecodes locally, and then download the bytecodes (with or without source) to the target. If you want, you can compile the compiler and supporting classes and put it on the target. To reach this ideal, I need to: * Modify the VM to support remote control (inserting of new objects, single stepping, reading/writing of memory). This VM might be slower then usual because of an extra "if (debugging)" check in the main byte-code loop, and could be replaced by a non-debugging version when development was done. * Understand how the Squeak image is put together well enough to build one from scratch. This would also include disentangling the Squeak classes into independent packages which built on each other. * Build tools in Squeak for controlling this remote VM. This might entail only minor changes to the existing development tools, so the tools know they are interacting with code and processes for a remote system. * Figure out a way to have this approach remain compatible with the existing Squeak VM architecture and code, so it does not get left behind with new releases. I know I can do small scale development much more simply with the approach of developing under a general Squeak system on another platform and then stripping a big image down. However, ideally I'd like something that feels cleaner and less monolithic, by building up from zero objects in the image. Also, I'd like to be able to modify the target system remotely in any case (if it is headless), although of course I could do this at the Smalltalk (not VM) level, although with less fine control. I have a couple days around now to work on this (mainly figuring out how difficult the task would be), and probably some more time near the end of December. Collaborators are welcome, as long as we all agree to put the collective results back under the Squeak license. -Paul Fernhout Kurtz-Fernhout Software http://www.kurtz-fernhout.com ========================================================= Developers of custom software and educational simulations Creators of the open source Garden with Insight(TM) garden simulator Creators of the PlantStudio(TM) Botanical Illustration Software From rowledge at interval.com Sun Nov 8 03:39:30 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:38:34 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: Message-ID: On Sat 07 Nov, Michael S. Klein wrote: > http://www.HandyKey.com/ I took a look (difficult for me - their pages seem to use 'funny' html and confused my browser into making things almost unreadable. Foo on proprietary extensins!) and it looks rather more complex to me than theold 'Quinkey' keyboard that was invented by MicroWriter corp many years ago. That used just six buttons arranged one per finger and the extra one fortheball of the thumb. I learnt to get by with it in about half an hour and eventually got quite proficient. See http://w3.hiway.co.uk/boog/aghome.html for some info about Quinkey. > Best trick to *really* learn how to do UI stuff: > Stop using *all* other environments other than your primary one. > This includes Netscape and the Finder/File Manager. > It is OK to call-out to other > programs, but do not use their UI's. Do this for 3 monthes. If > you don't go back... you will have learned. (And Squeak will be > better) > Bravo - nicely put. If it isn't so good that you want to use it all the time, it isn't good enough yet. tim -- Useful random insult:- Blew the hatch before the lock sealed. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From cpatti at bur-po1.bbn.com Mon Nov 23 21:02:59 1998 From: cpatti at bur-po1.bbn.com (chris patti) Date: Sat Jan 28 04:38:35 2012 Subject: HOWTO fodder (was: Re: Fonts too small -- from a clueless newbie) In-Reply-To: Message-ID: <3.0.5.32.19981123160259.00aa4cd0@pobox3.bbn.com> At 12:48 PM 11/23/1998 -0700, you wrote: >Try this: >TextStyle changeDefaultFontSizeBy: 1 > >I filed out the code that does this, so you can browse TextStyle for more info. This should be in an FAQ or HOWTO. Also the answers I'm getting WRT SmallTalk Express, as they cover questions people flailing at SmallTalk and squeak in particular *WILL* ask. If I were to build such a HOWTO page, where should I put it? Is a page on a Swiki somewhere most appropriate, or should I just do my own webpage on my own site? (Which makes the info the most readily available?) -Chris From raab at isgnw.CS.Uni-Magdeburg.De Mon Nov 2 18:12:34 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:39:04 2012 Subject: some not-so-random questions In-Reply-To: <363DE86B.D4AED15B@sdrc.com> from "Stephan B. Wessels" at Nov 2, 98 12:14:19 pm Message-ID: <199811021812.TAA16027@monet.cs.uni-magdeburg.de> Steve, > Years ago I worked on a 386 with 16MB running OS/2 developing in > Smalltalk/V PM and it really wasn't too bad. But I love the > technology we have available today. You can run Squeak on such a system - it's just Morphic that likes a bit more processing power (but that is entirely understandable from my point of view). > I have a question about the memory argument for Squeak that you show > above. Wait, I have 2: > 1) Is that only for the Win versions of Squeak? No. There's three more of them: * -headless Tells Squeak to run without a main window. However, for allowing at least some access to Squeak, an icon is added to the system tray. If you double-click this icon, the Squeak window will show up again. * -log: logName Use the named file as log file for VM messages. * -service: serviceName Install Squeak as Windows NT service. You will be asked for a couple of things such as if to start the service on system startup or if to run the service right now. You can modify these settings in the service control panel. NOTE: You MUST give the entire command line as if you want to run the image immediately. The installation process will add a few registry settings to determine the command line during system start up. Example: Squeak -memory: 4 -log: C:\VM.log -service: "Squeak Sample Service" C:\Swiki\Server.image The "-service:" switch is fully supported on Win95 but has a little non-standard behavior. Squeak will show up in the system tray (just as when running -headless) because there is no such thing as a service control panel within Win95. If you want to remove a service from a Win95 system you'll have to remove the entry in the registry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run > 2) What is the default memory allocation then, if none is specified > explicitly? 16 MB - that's an average choice between common memory sizes and the amount of memory you need to have fun with the system. Oh, but don't expect Squeak to physically use the amount of memory - we're on Windows, we *do* have dynamic virtual memory management ;-)=) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From gera at core-sdi.com Mon Nov 9 00:03:07 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:39:04 2012 Subject: Morphic Graphs & MorphicWrappers References: <36421802.3C5DC378@core-sdi.com> <3642CC3D.50731768@isg.cs.uni-magdeburg.de> Message-ID: <3646313B.76976B86@core-sdi.com> Jochen Schneider said some days ago: > I tried the MorphicWrappers both at http://www.dm.uba.ar/MathMorphs and > at http://www.sugarweb.com/, but neither of them worked for me under > Squeak 2.2 with update 372. Do you still have problems with it? or you could already file it in? If so... how do you like it? Curious Bye! Richie++ From hansb at 263.net Wed Nov 4 03:35:11 1998 From: hansb at 263.net (Hans Baker) Date: Sat Jan 28 04:39:24 2012 Subject: about oss doc from MS Message-ID: <001001be07a4$27fbd8c0$2e0cc5ca@hb.nudt.edu.cn> Here it is. Enjoy. (:-) -----Original Message----- From: Matthew McDonald To: squeak@cs.uiuc.edu Date: 1998??11'?5?' 3:31 Subject: Re: about oss doc from MS >Hi Hans, > > Folks: > > It is I that sent the confidential doc of oss from M$ to Eric Raymond. I > > am a fun of a little hacker group named "Aka" in China. Who need the > > original oss doc( in Word97 format )? Please email to me. > >I'd love to have the original in word-97 format! > >Could you send me a copy, thanks. >-- >Matthew McDonald > > Attachment converted: Anon:oss.zip (pZIP/pZIP) (0000354A) From raab at isgnw.CS.Uni-Magdeburg.De Wed Nov 4 12:19:31 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:39:35 2012 Subject: But what about Flash? (Re: Toward the next release...) In-Reply-To: <882566B2.000E46E0.00@d53mta01.boulder.ibm.com> from "wirth@almaden.ibm.com" at Nov 3, 98 07:54:30 pm Message-ID: <199811041219.NAA23271@monet.cs.uni-magdeburg.de> Mike, > What about Flash? There was a tantalizing hint in your msg before OOPSLA > (which I missed again; sigh...) but nothing in your msg about the next > release. Or is that technology related to "Andreas Raab's > as-yet-to-be-named resolution-independent outline-based anti-aliasing 2-D > rendering engine"? I dearly hope so. It would be wonderful to get that > technology into Squeak. What I've been working on for the moment is a 2D vector graphics engine (code name "Balloon") in Squeak. Thus, it will not include a lot of editing capabilities for the moment. It will, however, open the door for high-quality and (hopefully) high-speed rendering of vector graphics and animations. In particular, I hope that we'll be able to use TrueType vector fonts in Squeak directly. Part of the stuff that I've been doing is writing a Flash file reader (e.g., the Open-SWF stuff) for Squeak so you can have fun with it (and eventually integrate it into Lex' browser). > Story for the uninitiated: [...] > 1. It used an innovative graph-theoretic data structure to represent the > drawing elements. Do you know the name of this data structure?! From the description that follows it sounds like some sort of constraint voronoi-diagrams have been used. > So now you know where Flash came from (if you ever wanted to know :-) and a > little bit about why I'm excited to see the technology appear in Squeak. Thanks for the very interesting explanation! Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From alank at wdi.disney.com Tue Nov 3 12:59:08 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:39:59 2012 Subject: Units package (was Method names) In-Reply-To: <87iugxuv9w.fsf@streamer.msfc.nasa.gov> References: Sam Adams's message of "Mon, 2 Nov 1998 17:26:38 -0500" <5040100024760936000002L062*@MHS> Message-ID: Thanks Stan -- This looks really interesting. I hope you will be able to help make a really great Squeak units facility happen. Cheers, Alan ----- At 6:48 AM -0000 11/3/98, Stan Heckman wrote: >I too am interested in a units package for squeak. I have implemented >a units package in another language (Mathematica) that handles Sam's >"general case which ends up with composite units like furlongs per >cubic fortnight per dyne centimeter." I agree with Sam that "you >then need an algebraic system with mappings for unit definitions (dyne >cm = erg, etc) so these composite units could recognize whether they >were compatible or not and if the units could be reduced or mapped to >another unit." > >The only two "mathematical" functions I used from Mathematica >to do this were one that told me whether a set of vectors was linearly >independent, and one that returned combinations from a set, taken N at >a time. I know squeak already has a function for returning combinations >N at a time, so all we need is the linear independence checker. Can >someone point me to a linear algebra library for squeak? > >Things that gave me grief before, and that would be good to do more simply >this time, are non-absolute temperatures, lists and tensors, automatic >unit simplification and functions other than (+ - * /). > >What's the problem with non-absolute temperatures? Well, when I say >that I heated my dinner from 40 Fahrenheit to 400 Fahrenheit, I would >like to keep the same units, and describe the temperature difference >as 360 Fahrenheit. If I want the heat put into dinner, I multiply dinner's >mass and heat capacity by 360. But if I let the oven cool 40 >degrees, and then want to compute the density of the air using the ideal >gas law, I want not 360, but 360 + 459.67. As human beings we figure out >the right thing to do in each case from context, but I don't think Squeak >can be that smart. The resolution I've used before is to never use >non-absolute temperature scales for temperature differences, only for >temperatures. The Mathematica units package handles this automatically; I >doubt that feature was really worth the complexity it cost. > >What's the problem with lists? One must either keep the units once per >list, or once per element of the list. No matter which one chooses, >half the time one wishes it were the other way. My bias is to keep the >units of homogeneous lists only once per list, because this preserves >the information that the list is dimensionally homogeneous, and >without this I found my code became cluttered with checks to see >whether a list was homogeneous. > >What's the problem with automatic simplification? Well, when I divide >newtons per ampere squared by farads per meter, it's a very good bet >that I want to see units of ohms squared. But when I divide miles by >hours, I probably don't want to see this simplified to knots. Humans >have a lot of heuristics for this, learned in years of classwork, and >learned differently in different disciplines. I found that I could do >a pretty good job of reproducing my own heuristics by simplifying only >if I could reduce the total number of base units required, not introduce >any fractional powers, and I restricted my base units to the set of >units I started with plus joule, watt, pascal, newton, coulomb, volt, >ohm, farad, henry, tesla, weber, and siemens. Using units in the original >expression before the units above will usually keep absorbed dose in >rads, instead of converting it to pascals. > >What's the problem with functions other than +, -, *, and /? The problem >is that there are so many of them. :-) In the Mathematica package, I >kept encountering functions that should work with dimensional quantities >but didn't. See the functions section on the web page. If someone can >figure out any way to avoid the same proliferation of tiny methods in >the Squeak units package, that would be a very important contribution. > >An HTML version of my (Mathematica) units package is available at > http://stanheckman.com/a/98h/glimpsedotter/html/PhysicalUnits.html >The (brute force) automatic simplification section might be >interesting to someone implementing similar functionality in Squeak. > >-- >Stan From djm at san.rr.com Tue Nov 24 17:37:01 1998 From: djm at san.rr.com (Douglas McPherson) Date: Sat Jan 28 04:40:02 2012 Subject: squeak2.2 buglet in SequenceableCollection Message-ID: I think I have come across a small possible bug in 2.2. 1) In SequenceableCollection>>asStringWithCr. The cascade of cr in the false block below is incorrect since the elements of the sequenceableCollection won't, in general, understand 'cr'. 'From Squeak 2.2 of Sept 23, 1998 on 24 November 1998 at 9:07:59 am'! !SequenceableCollection methodsFor: 'converting'! asStringWithCr "Convert to a string with returns between items. Elements are usually strings. Useful for labels for PopUpMenus." | labelStream | labelStream _ WriteStream on: (String new: 200). self do: [:each | (each isKindOf: String) ifTrue: [labelStream nextPutAll: each; cr] ifFalse: [each printOn: labelStream; cr]]. self size > 0 ifTrue: [labelStream skip: -1]. ^ labelStream contents! ! A possible simple solution: !SequenceableCollection methodsFor: 'converting' stamp: 'djm 11/20/1998 05:44'! asStringWithCr "Convert to a string with returns between items. Elements are usually strings. Useful for labels for PopUpMenus." | labelStream | labelStream _ WriteStream on: (String new: 200). self do: [:each | (each isKindOf: String) ifTrue: [labelStream nextPutAll: each; cr] ifFalse: [each printOn: labelStream. labelStream cr]]. self size > 0 ifTrue: [labelStream skip: -1]. ^ labelStream contents! ! Doug. From rmcilhar at sanctuary.smart.net Tue Nov 3 02:14:55 1998 From: rmcilhar at sanctuary.smart.net (Rob McIlhargie) Date: Sat Jan 28 04:40:03 2012 Subject: Porting squeak to the Alpha In-Reply-To: <13885.43630.50316.499377@tif.inria.fr>; from Ian Piumarta on Mon, Nov 02, 1998 at 01:49:50PM +0100 References: <19981101150136.B8136@sanctuary.smart.net> <13885.43630.50316.499377@tif.inria.fr> Message-ID: <19981102211455.A992@sanctuary.smart.net> > > > > Does anyone know how this code runs on Alpha OSF/1? > > I use the native OSF linker (rather than GNU ld) which has a *really* useful > option "-taso" that locates all the program segments in the bottom 32-bits > of the address space. For aesthetic reasons I also have a wrapper around > gcc (util/decgcc) that filters out the thousands of warnings about 64-bit > pointers being converted to 32-bit ints (which are irrelevant since the > linker guarantees that there will be no pointers >= 2^32). > Hi Ian, As soon as I got into work this morning I downloaded the code and saw the "-taso" option. The GNU ld on Alpha GNU/Linux doesn't have an equivalent "-taso" options but the "-Tfoo" options are supported. I'll try and see if I can fudge some numbers for those and see what happens. I think it would be better if the code were 64 bit clean. I was using the system browser and noticed that the C emitters default to type "int" if a declaration doesn't exist for an argument. I couldn't find any examples of how declarations are specified. Does anyone know how to specify these? If I could get the smalltalk code to generate properly typed C code the corresponding C code should compile and run on 64 bit and 32 bit platforms. I already tried changing the default "int" to "long" to see if that would be a quick fix for the Alpha, but the translation didn't finish before I left work. I'll let ya know if I get any farther. -- ------------------------------------------------------------------------------ Rob. | http://www.smart.net/~rmcilhar/ rmcilhar@smart.net | rmcilhar@sanctuary.smart.net | POWERED by LINUX!!!! ------------------------------------------------------------------------------ From arning at charm.net Fri Nov 6 00:40:53 1998 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 04:40:07 2012 Subject: Building the VM with MPW Message-ID: <199811060040.TAA11155@fellspt.charm.net> On Wed, 4 Nov 1998 23:29:50 -0700 Jeffrey Chapman wrote: >Does anyone have an MPW project for a 2.2 VM they would like to share? Or >perhaps some tips on building the VM using MPW/MrC? Squeak generated >interp.c and supporting files successfully, and MPW attempts to build the >VM, but reports some hangups with unused parameters. Jeffrey, Here are some notes I made for 2.1 - I don't know how relevant or complete they are for 2.2: 1. The VM was unable to allocate memory for the heap using #define sqAllocateMemory(minHeapSize, desiredHeapSize) malloc(desiredHeapSize) but worked when I used #define sqAllocateMemory(minHeapSize, desiredHeapSize) NewPtr(desiredHeapSize) MacsBug seemed to indicate that there was sufficient memory, but maybe this implementation of malloc() has some limits. 2. I don't seem to have #include but everything went fine when I commented it out. 3. My version of Files.h has several functions marked as obsolete and available only if a certain #define exists. As a result I got 3 or 4 missing symbols on linking. By adding #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb)) #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb)) #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb)) #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb)) to sqMacAsyncFilePrims.c, the errors went away. 4. "qd" was undefined on linking until I added static QDGlobals qd; to sqMacWindow.c. 5. In sqMacSound.c, the compiler needed the (char *) on the third argument in the following before it would be happy: MixInSamples(count, (char *) srcBufPtr, 0, (char *) &bufPlaying->dbSoundData[0], startSample); and MixInSamples(count, (char *) srcBufPtr, samplesInserted, (char *) &otherBuf->dbSoundData[0], 0); 6. In sqMacSound.c, the compiler complained when it tried to define an enum for true and false in the Sound.h until I moved sq.h first in line to third. If you need a makefile, let me know - it's too geeky for public consumption. Cheers, Bob From markus_kohler at bbn.hp.com Wed Nov 4 10:21:35 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:40:23 2012 Subject: some not-so-random questions References: Message-ID: <36402AAF.6D0F2CB8@bbn.hp.com> Tim Rowledge wrote: > > On Tue 03 Nov, Andreas Raab wrote: > > Ian, > > > > > On Unix there is a -memory option that takes a memory size > > > (in bytes) as argument (with optional 'k' or 'm' suffix to avoid typing lots > > > of zeroes). There is also an environment variable "SQUEAK_MEMORY" that you > > > can set, the existence of which implies the -memory option (I leave this > > > permanently set to "10m", and I've never run out of memory in Squeak ;-). > > > > How the heck do you manage this?!?! I'm usually run Squeak with at least > > 32MB memory - that's my way not to run out of memory too early. Well, > > perhaps you've never imported a large JPEG image in 32bit Morphic?! > Acorn Squeak runs perfectly happily with -memory:5m unless you want to > generate new VM when 8m is more useful. Obviously the Windows bloat virus has > found a way to infect your VM Andreas! > > Expanding the memory allocation for Squeak should not be too difficult in most > cases. For Unix, sbrk() ought to work. I discussed that idea with Andreas in more detail and we found that it's not as easy as I first thought. The main problem is that system calls might allocate memory with malloc and that conflicts with using sbrk. > For Acorn, resizing the dynamic area is > trivial. I _think_ Mac's finally got some way to expand memory a while ago. > Windows? Hmm, how about actually allocating a huge virtual space but pretending > to the VM that you only have as much as the -memory param asked for. Yesterday I did a quick hack on Unix (HP-UX) to use mmap instead of allocating memory by malloc. It seems to work very well. I can start squeak with 300 MByte and it comes up very quickly. What's interesting is that "top" shows only the Megabytes actually used. So mmap seems to use a "lazy" mechanism on HP-UX. One problem is that it actually core dumps when I specify 400Mbyte. I need to check what the reason is. Maybe that's because there's not enough paging space on my machine. > Then to > expand, you just change that 'fake' boundary. The only trick that springs to > mind is remembering to reset the size of the free chunk at the top of memory. > > Shrinking object space wouldn't be much harder from the VM point of view, > though I'm not sure whether the released memory would get back to the OS pool > very efectively. Yes, I've never seen an application on unix that does that. Visualworks for example doesn't do it too. > > The real problem with both expansion and shrinking is the policy decision of > when to do it. VW has quite a complicated policy implemented in the image, with > hooks to change it almost any way you want. IIRC almost no customer ever > changed anything, they just complained that the default wasn't good enough for > them! We did extensively ! I was working on a multithreaded server for network and system management. One problem was that Visualworks was always growing. If someone wants to try out mmap0squeak. Basically you have only to use mmap(0, desiredHeapSize, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); instead of malloc(desiredHeapSize) in sq.h Some Unixes may not support the MAP_ANONYMOUS option. I've seen that on some Unixes it can be replaced by mapping /dev/zero. Markus -- Markus Kohler mailto:markus_kohler@hp.com From vuletich at ar.ibm.com Wed Nov 25 14:42:15 1998 From: vuletich at ar.ibm.com (vuletich@ar.ibm.com) Date: Sat Jan 28 04:40:26 2012 Subject: SugarWeb site, now in English! Message-ID: <032566C7.00574DE6.00@d24mta07.br.ibm.com> Hello All. As you probably know, SUGAR is Smalltalk User Group ARgentina, the biggest Spanish spoken SUG. We have a Web site with lots of Smalltalk Miniatures and some very interesting details about the various projects we are working on. I've started translated some of the SUGAR Web site to English. It is just a beggining, but it is worth spending some time at it. I will be completing it soon. You can go to http://www.sugarweb.com and click on English Version, or just go to http://www.sugarweb.com/indexe.htm Juan Manuel Vuletich SW Export IGS- IBM Argentina Phone Nbr : 54-1-313-0014 ext. 5207 Tie Line : 840-5207 e-mail: vuletich@ar.ibm.com From staypufd at gte.net Thu Nov 19 08:06:34 1998 From: staypufd at gte.net (GTE/staypufd) Date: Sat Jan 28 04:40:35 2012 Subject: Interfaces ala Java for Squeak Message-ID: <199811190806.CAA16968@smtp2.mailsrvcs.net> >What would >they buy us in Squeak? Some of what I thought they'd give us would be: 1) A very trace-able view of how we are using polymorphism. 2) A better understanding of how the system is partitioned. 3) They might also lead to a nice way of verifing that a ST package that you are loading supports a complete interface. (We would need to implement something like SSL's in VW) 4) They are also kinda like a typing mechanism. Not for individual variables, but for groups of functions. Like the object is declaring I am one of these things that can do 'X". Where 'X' is the interface. 5) They are kind of like a 'contract' in the way I was thinging of implementing them. Because when you declared it in the class defintion, and then accepted it, the methods in that interface would then be auto-generated for you. Thus you would fullfill the 'Contract'. and finally, the one that Java really uses them for: 6) In addition to allowing multiple inheritence of interface. Any more thoughts? Sam Griffith Jr. staypufed@aol.com From josch at isgnw.CS.Uni-Magdeburg.De Mon Nov 9 10:10:11 1998 From: josch at isgnw.CS.Uni-Magdeburg.De (Jochen Schneider) Date: Sat Jan 28 04:40:39 2012 Subject: Morphic Graphs & MorphicWrappers References: <36421802.3C5DC378@core-sdi.com> <3642CC3D.50731768@isg.cs.uni-magdeburg.de> <3646313B.76976B86@core-sdi.com> Message-ID: <3646BF83.1A31900E@isg.cs.uni-magdeburg.de> Hi, yes, I managed to file in and use the Wrappers by opening a new Morphic project. Looks pretty cool, creating an object on the "desktop". The whole concept is pretty neat and some of the wrappers really cool (the one for Graph, e.g.). There still seem to be some rough edges, though. (I.e., debug notifiers popping up.) Thanks for your help, Jochen Gerardo Richarte wrote: > > Jochen Schneider said some days ago: > > > I tried the MorphicWrappers both at http://www.dm.uba.ar/MathMorphs and > > at http://www.sugarweb.com/, but neither of them worked for me under > > Squeak 2.2 with update 372. > > Do you still have problems with it? or you could already file it in? > If so... how do you like it? > > Curious Bye! > Richie++ From carlg at world.std.com Sat Nov 7 15:19:40 1998 From: carlg at world.std.com (Carl E Gundel) Date: Sat Jan 28 04:41:13 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: Message-ID: On Sat, 7 Nov 1998, Alan Kay wrote: > In the early Dynabook design, Engelbart's idea was adapted to a pen-based > interface. RAND had done GRAIL, a really great pen-based system with a > recognizer similar in spirit to and better than Grafitti. We realized from > experience with Engelbart that even a perfect recognizer (which GRAIL > almost was) was still too slow for some interactions, so I put a keyboard > on the Dynabook model. Again the scheme was to navigate, give commands, fix > typos, and do short text inputs with the pen, and then to switch to the > keyboard for intensive text entry. > > This scheme was argued for the Newton and rejected (not on logical grounds). Alan, What makes GRAIL unique? I understand that the Newton OS 2.0 does come with a character by character recognizer. Do you know where this came from. I read someplace on the web that is was from Xerox. Carl ------------------------------------------------------------------ Carl Gundel carlg@world.std.com Shoptalk Systems 508-872-5315 author of Liberty BASIC, a 1996 PC Magazine Awards Finalist! http://world.std.com/~carlg/basic.html ------------------------------------------------------------------ From duane at cmu.edu Mon Nov 9 04:50:22 1998 From: duane at cmu.edu (Duane T Williams) Date: Sat Jan 28 04:41:16 2012 Subject: Latest updates In-Reply-To: Message-ID: I tried to get the new updates and Squeak didn't think there were any. Any idea what I'm doing wrong? Here's the transcript from help/update code from server: www.webpage.com /~kaehler2/Squeak2.0/updates/updates.list HTTP/1.0 200 OK Server: Netscape-FastTrack/2.01 Date: Mon, 09 Nov 1998 04:18:26 GMT Accept-ranges: bytes Last-modified: Mon, 09 Nov 1998 00:14:33 GMT Content-length: 9506 Content-type: text/plain data byte count: 9506 Socket closed From dwighth at ipa.net Thu Nov 5 17:45:44 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:41:36 2012 Subject: But what about Flash? (Re: Toward the next release...) References: <882566B2.0068B04F.00@d53mta01.boulder.ibm.com> Message-ID: <3641E448.73C37FC2@ipa.net> For those who would like to know more about TrueType, take a look at the Apple Font/Tools Group page -- it has the complete TrueType Reference Manual on line, plus more goodies on fonts: http://fonts.apple.com/ -- Dwight wirth@almaden.ibm.com wrote: > > Andreas said: > > In particular, I hope that we'll be able to use TrueType > >vector fonts in Squeak directly. Part of the stuff that I've been doing is > >writing a Flash file reader (e.g., the Open-SWF stuff) for Squeak so you > >can have fun with it (and eventually integrate it into Lex' browser). > > Wow! Sounds neat. I'm especially interested in the TrueType renderer! > (That's probably even more important to me in the near term than Flash). From DanI at wdi.disney.com Fri Nov 6 15:22:18 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:41:50 2012 Subject: Is Squeak limited to 512Mbyte process size? In-Reply-To: References: <3642C6F6.27C2E96B@bbn.hp.com> <3640B79F.6FD5@pacbell.net> <364173C1.BC946E47@bbn.hp.com> <36427E37.7AA7@pacbell.net> Message-ID: Georg - Thanks for looking into this. We'll try to get a fix out with 2.3. We wouldn't want Squeak to be limited to 512K! - Dan ---------------------- >>At 10:52 Uhr +0100 06.11.1998, Markus Kohler wrote: >>>I'm just curious. >>>I started my mmap Squeak with 520Mbyte and strange things happened. >>>It started up but the process size went to about 140 Mbyte whereas it >>>remained >>>at 5 when I used 500Mbyte. >>>Also Smalltalk bytesLeft gave back around 8 Mbytes of free space ... >> >>Having a quick look at the image there could indeed be a 512 MB limit in >>the garbage collector (browse class var references to >>ObjectMemory>FreeSizeMask). But I could be totally up the creek as well... > >Me again :-) > >A little further investigation indicates that free chunks of memory can be >at most 512 MB or so (FreeSizeMask := 16r1FFFFFFC). >I dont?t think this precludes a larger image, but the memory setup can?t >just do > >ObjectMemory>initializeMemoryFirstFree: firstFree >... >self setSizeOfFree: freeBlock to: (endOfMemory - firstFree). "bytes >available for oops" >... > >but would have to allocate multiple free chunks. >Further code would be needed to allow objects larger than 512 MB, but one >could have very few of those anyway :-) From gcv1 at erols.com Wed Nov 4 23:54:16 1998 From: gcv1 at erols.com (george vail) Date: Sat Jan 28 04:42:09 2012 Subject: PROPOSAL: create the squeak-help list References: <3640D681.D94C229B@ipa.net> Message-ID: <3640E926.F9941BC6@erols.com> I ,for one, would love to see anFAQ for beginners. Dwight Hughes wrote: > I would like to semiformally propose that we create the squeak-help > list. > > This list would be for how-to questions about Squeak and its environment > ("how do I turn the sound off?", "how do I get a list of all the > classes?", "how do I store something in a file?",...); for learning how > to start programming in Squeak/Smalltalk; for "why doesn't this code > work?" questions; and the like. > > A few reasons for a squeak-help list: > > (1) The advanced topics often discussed in the Squeak list can be a > rather overwhelming to those just learning Smalltalk/Squeak. > > (2) Those who know Smalltalk but are new to Squeak may be embarrassed to > ask simple "stupid" questions that they need answers to. > > (3) The shear volume of email to the list can bury simple questions for > help, which may never get answered. > > (4) Newbies may just not feel comfortable discussing simple basic > problems when everyone else on the list is splitting quarks. > > (5) With the upcoming version 2.3, I expect the level of discussion to > get even more advanced (and that the email volume will increase): > pluggable primitives, weak arrays and finalization, 2-D > device-independent anti-aliasing vector graphics, .... > > (6) The number of newbies coming to Squeak through things like the > Pluggable Web Server and through Squeak becoming more and more widely > known on the net seems to be increasing -- it would be good for them to > have a forum that more directly addresses their needs. > > If you would like to see such a list created, DO NOT REPLY TO THE SQUEAK > LIST - email ME directly at mailto:dwighth@ipa.net and I will tally the > responses and send the results back to the list. I will not be the one > setting up this list: I do not have any webserver resources available to > me -- this will probably fall to John Brant, should he be willing. > However, I might be persuaded to compile a Squeak FAQ as my > contribution. > > -- Dwight From ohshima at is.titech.ac.jp Wed Nov 11 16:15:16 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:42:09 2012 Subject: Results of proposal to create squeak-help list... In-Reply-To: Your message of "Wed, 11 Nov 1998 09:09:21 -0500 (EST)" References: Message-ID: <19981111161516.17982.qmail@n0ud.is.titech.ac.jp> Hello. I can't agree to have separated mailing lists. I believe the separation won't result in benefits for both novice squeakers and hackers. Ok, There will be four kind of people after splitting the mailing list. The first is who will read neither squeak nor squeak-help. We can forget them. The second is who reads both. They will be bothered each time when he is trying to post an article: "Should I move this topic to the other mailing list? Or should I post this one to both of them? No no, I don't want people to read same article twice..." The third is who reads only squeak mailing list, but doesn't read squeak-help. He thinks he can decide what he should read and what he doesn't have to read. Probably it is true. (I believe even experienced smalltalker sometimes randomly clicks the Browser for no particular purpose and finds something he didn't know. The same thing will happen if he reads the squeak-help. But, anyway, it's his choice.) The fourth is who read only squeak-help. This is my concern. If he is new to Squeak and Smalltalk, how can he figure out what he is trying to post is advanced enough for "squeak mailing list" or not? Or if he just knows there are two separated mailing lists, how can he figure out which mailing list he should subscribe? Or there may be a guy who has much experience with Smalltalk but just new to Squeak. He may ask advanced question to squeak-help if he is a humble type. Alan Kay sometimes posts very suggestive articles about history of Smalltalk. I think the articles are very interesting even for those who doesn't have much experience with Smalltalk. The fourth kind of people miss them, or the second read them twice? This is the problem: The presence of separated mailing lists is a signal for newbie that means Squeak community make a distinction. That may be an unvisible barrier for people coming to the community. One reason for the saparation is that some topic in squeak mailing lists overwhelm the newbie. But it is quite usual in this kind community that there are topic which a part of people can't understand. Usual person with moderate brain is supposed to be able to filter the topic by himself. The other reason is that newbie may hesitate to ask a "stupid" question where others discuss advanced topic. But he will be much encouraged if he found there are "stupid" questions AND they are answered. it's much effective for newbie to post his question than separating the list. (A Japanese saying: "Asking is a shame for one moment, not asking is a shame for life." (better translations?)) The other reason is the volume of the mailing list. Many mailing lists have been splitted for this reason. But currently the traffic is 10-30 for a day, I BELIEVE it is not too much. And the criteria of the separation should be topic centric. (squeak-morph, squeak-sci-cal, ..) Smalltalk is not a combination of unrelated parts: the knowledge of a part tends to be useful for the other part. And unlike other language, the wall between the implementor and the user is very low. My conclusion is: We are a community, we have a mailing list and everyone post his own article to it. Thank you. OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology # I have a question that didn't get answered... From hm.mosner at cityweb.de Sun Nov 22 13:56:34 1998 From: hm.mosner at cityweb.de (Hans-Martin Mosner) Date: Sat Jan 28 04:42:14 2012 Subject: Dynamic Primitives: Preliminary code available References: <3656C743.1693@cityweb.de> Message-ID: <36581811.2803@cityweb.de> Hans-Martin Mosner wrote: > > Hello, > at http://www.heeg.de/~hmm/squeak/Translator-981121/ I've put the > current native code generator source. .... and forgot to include the README file. It's now there, and I've appended it for quick reading, too. Hans-Martin Content-Type: multipart/appledouble; boundary="----------ad2CDD5EE5298E"; x-mac-type="54455854"; x-mac-creator="522A6368"; name="README" Content-Transfer-Encoding: 7bit Content-Description: BBEdit Lite 4.0 Document Content-Disposition: inline; filename="README" Attachment converted: Anon:README (TEXT/R*ch) (000037A3) From tgriggs at keyww.com Wed Nov 4 20:57:19 1998 From: tgriggs at keyww.com (Travis Griggs) Date: Sat Jan 28 04:42:26 2012 Subject: Double dispatch References: <199811041608.KAA01009@sal.cs.uiuc.edu> <36409494.EF4AC870@keyww.com> <3640AD54.E50BD139@core-sdi.com> Message-ID: <3640BFAE.7979E97A@keyww.com> Gerardo Richarte wrote: > Travis explained: > > > The original Squeak Math protocol does this. It works fine for the simple set > > of Integer, Fraction, Float, where one can basically define a heirarchy of > > supremacy. > > The original Squeak Math protocol is a good implementation of mathematical > definition for operators (find a superset containing both elements, closed for > the operation you what to perform). Is there an example where DD is needed (and > squeak's protocol doesn't make it). I thought vectorized numerics made a pretty good example. :) If you use the coercion approach, then you're left with creating 1) a collection of like size with the single numeric element repeated (get's expensive for big collections) or 2) creating a new kind of PseudoCollection object to model #1, without the replication. > The only problem I found is that when you create a new class (such as > AlgebraicNumber) you need to add #adaptAlgebraicNumber: and > #adaptToAlgebraicNumber to every other class you what to interact with. It gets worse with DD math, becuase you basically have the same thing times 4 (*, +, - , /). > DD is good for speed, but it's is not good when the operation is not > commutative, I think that a mixed solution (as usual) may be the better... Does > anybody has an idea on how to implement such a mixed solution? I mean DD and > #adapt* protocol. I guess, I kind of thought of the current Squeak adaptProtocol as a DD form of coercion. The old VW coercion architecture was not and it was worse, because you had to give every Numericall Savvy object a rank, whichever of the two operands scored the higher rank, got the privelage of coercing the other via the coerce: message. If the coercion operation depended on the type of the argument though, then you had to do case like things (though this only turns out to be a theoretical scenario). The Squeak adapt* protocol though dispatches to the argument, with a message that is particular to the reciever's type, which looks a lot like DD to me. I'm not sure what you mean by your argument that DD is not good for non-commutative. It seems well suited for an algabraic number system (having written a crude one years ago). You want to be able to add a simple number (Float, Integer, etc.) to an AlgebraicSymbol. So you have sumFromFloat: implemented in AgebraicSymbol. The argument is a float. It seems very crystal clear how that method should proceed. You also have sumFromSymbol: implemented in Float. Again, very clear what to do. If you drive these messages using DD from the + selector implemented in both AlgebraicSymbol and Float, you've got commutative operations between AlgebraicSymbols and Floats. I assume you must have meant something else? -- Travis Griggs Key Technology tgriggs@keyww.com Member, Fraven Skreiggs Software Collective - C for Sinking - Java for Drinking - Smalltalk for Thinking From bparsia at email.unc.edu Wed Nov 4 11:03:05 1998 From: bparsia at email.unc.edu (Bijan Parsia) Date: Sat Jan 28 04:42:51 2012 Subject: List service... In-Reply-To: <199811041138.MAA08139@pippi.grm.se> Message-ID: You might try subscribing to the PWS list for a while, which is devoted to technical and non-technical discussion of the Pluggable Web Server and, in particular, of Swikis. Since it's intended, in part, to support people who just want to *use* Swikis with little or no Squeak/Smalltalk knowledge, or with only a *little* bit of such knowledge, it might be more, overall, useful for you. I've found that working on PWS is a very nice way to learn Squeak/Smalltalk. It's nice to have a focused *real* project to guide & motivate your learning. Right now, there are a couple of people explicitly climbing the curve, so you wouldn't be out of place at all. OTOH, general beginner questions are better directed to the main list. I think it's probably a bit premature to split the main list. One reason the PWS list works, and is needed, is that it has a clear focus, a natural, farily large constituacy which itself ranges from beginner's to experts. Cheers, Bijan Parsia. From scottw at wdi.disney.com Thu Nov 19 21:56:54 1998 From: scottw at wdi.disney.com (SWallace) Date: Sat Jan 28 04:43:14 2012 Subject: morphic scripting In-Reply-To: <3651A6AC.B6C32821@gui.com> References: Message-ID: At 8:40 AM -0800 11/17/98, Dan Shafer wrote: >I have a PasteUpMorph which has within it some buttons (RectangleMorphs >with embedded and locked editable text) and a single "label" >(StringMorph). I want the act of clicking on a button to change the >value (contents) of the StringMorph. I gave the StringMorph a new >instance variable called "value" and I've browsed the StringMorph and >determined that it has a method called contents: which should be used to >set its value but what I can't for the life of me figure out is how to >reference the StringMorph. You can't (yet) do this directly using just tile scripts, but if you wish to edit your script textually, you need to be aware that in scripts, "self" is always a *player* and that all references to other objects are to other *players*; if you want to talk directly to a Morph, you get at it by sending the message "costume" to its associated player. That's probably the lone missing piece of information you need to complete your example. For completeness, I tried out two different ways to implement your example, and they both worked fine: Suppose your button is named myButton and that it has one submorph inside it, namely that StringMorph, which you've named myLabel. Suppose further that the Player associated with your button has a string-valued instance variable named 'value' that you've already defined. Then you could create a script for myButton, and tell it to be triggered on mouseUp, and name-and-save it. Now proceed to use either of the following two alternative techniques... Technique One: Make the script be "textually edited" and edit its script to say just self costume submorphs first contents: value (That'll do it. self is the player. "self costume" is the rectangleMorph; its first submorph is the label morph. value is the player's own string-valued instance variable defined by you, and #contents: sets the contents and does the change notification.) Technique Two: >From the viewer of myLabel, drag a phrase -- any phrase, let's say "myLabel forward by 5", into the scriptor for your new myButton script. The point of this is just so that you can see how to refer to the myLabel guy in the script of the myButton guy, if you don't want to use the "submorphs first" circumlocution of technique one. Having dragged such a phrase into the scriptor for your button script, now "edit it textually". You'll see in the textual version something like self class refPlayer3 forward: 5 The point of this is that it indicates that "self class refPlayer3" is the way the reference to the label player is encoded. Using this knowledge, now you can edit the script so that it reads, instead, self class refPlayer3 costume contents: value Unlike the first technique, this one does not rely on the label being the first submorph of the button -- or indeed on its being a submorph of it at all. Down the road -- hopefully not too *far* down the road -- we want to have a smoother way that you can transition from the point-and-click, drag-and-drop immediacy of the tile-scripting to the full power of smalltalk scripting without the awkwardnesses required in the above two examples. ------ > ...But I do notice that it has an instance variable called contents > which contains its displayed value. If I edit this value in an > inspector and accept the change, though, the displayed value of the > StringMorph doesn't change. (That didn't particularly _surprise_ me > but it kept me in my quandary.) This is just a matter of change notification not taking place when you smash a new value into an instance variable in an Inspector. If, in that same Inspector, after you've submitted a new value for the StringMorph's contents, you evaluate "self changed", you'll immediately see the StringMorph change as you were expecting. This will not a problem programatically, because you'd send a message like "aStringMorph contents: 'xxx'", and StringMorph's #contents: method issues the change notification. ------ >While I'm at it, how, if at all, can I take a custom morph and put it >into a Parts Bin so that I can later instantiate it anew? Or has morphic >proceeded that far yet? Yes, it's altogether possible (that's the point of the "custom parts bin") but in 2.2 it's still rather awkward to do -- among other things, you have first to tell the parts-bin-page in question to stop being a parts-bin-page, then add the thing you want, then tell it to resume being a parts-bin-page, etc. In 2.3, coming out soon now, it will be very much more straightforward to add any objects to a parts bin, so I suggest you wait for that. -- Scott From ohshima at is.titech.ac.jp Fri Nov 6 18:45:24 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:43:18 2012 Subject: Number>>printOn:base:. Message-ID: <19981106184524.17009.qmail@n0ud.is.titech.ac.jp> Hi. I found the results of {SmallInteger,LargeNegativeInteger}>>printOn:base: are different from the Smalltalk's standard number format, when the base is not equal to ten and the value is negative. (Precisely, the "result" is stored in the first argument.) I think the proposition aNumber = (aNumber printStringBase: n) asNumber should be true, but the evaluation of right hand side results in an error ('invalid radix'). Fixing 'printOn:base:' is a bit difficult without modifying the protocol. For convinient. I think 'Number class>>readFrom' should be as follows: -------------------- readFrom: stringOrStream "Answer a number as described on aStream. The number may include a leading radix specification, as in 16rFADE" | value base aStream sign | aStream _ (stringOrStream isMemberOf: String) ifTrue: [ReadStream on: stringOrStream] ifFalse: [stringOrStream]. (aStream nextMatchAll: 'NaN') ifTrue: [^ Float nan]. sign _ (aStream peekFor: $-) ifTrue: [-1] ifFalse: [1]. (aStream nextMatchAll: 'Infinity') ifTrue: [^ Float infinity * sign]. base _ 10. value _ Integer readFrom: aStream base: base. (aStream peekFor: $r) ifTrue: ["r" (base _ value) < 2 ifTrue: [^self error: 'Invalid radix']. sign _ ((sign = -1) xor: (aStream peekFor: $-)) ifTrue: [-1] ifFalse: [1]. value _ Integer readFrom: aStream base: base]. ^ self readRemainderOf: value from: aStream base: base withSign: sign. -------------------- OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology P.S. There is a bug in TestStream>>nextPutAll:. 'string' should be 'asString'. P.P.S. There must be base = 10 ifFalse: [aStream print: base; nextPut: $r]. in somewhere near the top of 'Float>>absPrintOn:base:' if '-2r100.01' is acceptable as its result. From rlpcon at vermontel.net Mon Nov 16 04:48:54 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:43:23 2012 Subject: Multi-threading the interpreter In-Reply-To: <364EB14C.19B5@cityweb.de> References: Message-ID: At 11:47 AM +0100 11/15/98, Hans-Martin Mosner wrote: > If you use TCP/IP, for example, your >Smalltalk process will be suspended while waiting on the socket for a >response, but other Smalltalk processes are free to run regardless. I would have thought this was the case, but when I do an "update" (from the update server), it looks like all Smalltalk processes are blocked untilthe complete update is finished. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From dan at gui.com Tue Nov 17 16:40:01 1998 From: dan at gui.com (Dan Shafer) Date: Sat Jan 28 04:43:37 2012 Subject: morphic scripting References: Message-ID: <3651A6AC.B6C32821@gui.com> scottw@wdi.disney.com wrote: > > At 12:00 AM -0800 11/9/98, Ryan Davis wrote: > > ----- > > >3) Is there a registry of known players in a given morph? (possibly a > >shorter version of #1). > > Yes, but it's maintained under the covers. When you construct scripts for a given Player, every other Player that is referenced by the those scripts is kept track of; that's what the refPlayerxxx things are about. > > You can also define your own instance variables, of type "player", which hold on to references to specific other objects, and you can set their values by direct manipulation if desired. If it's not obvious how to do all of this, please holler. > HOLLER!!!! I have a PasteUpMorph which has within it some buttons (RectangleMorphs with embedded and locked editable text) and a single "label" (StringMorph). I want the act of clicking on a button to change the value (contents) of the StringMorph. I gave the StringMorph a new instance variable called "value" and I've browsed the StringMorph and determined that it has a method called contents: which should be used to set its value but what I can't for the life of me figure out is how to reference the StringMorph. I suspect this is becauase you're managing so much of the model "under the covers" as you said in your earlier message to Ryan Davis. But I do notice that it has an instance variable called contents which contains its displayed value. If I edit this value in an inspector and accept the change, though, the displayed value of the StringMorph doesn't change. (That didn't particularly _surprise_ me but it kept me in my quandary.) While I'm at it, how, if at all, can I take a custom morph and put it into a Parts Bin so that I can later instantiate it anew? Or has morphic proceeded that far yet? -- Dan Shafer, Looking at Technology from Every Angle Home Page: http://www.gui.com - Email: dan@gui.com There is nothing more powerful than an idea whose time has come. From gera at core-sdi.com Thu Nov 26 23:47:33 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:43:45 2012 Subject: Squeak 2.3 and MorphicWrappers Message-ID: <365DE895.8AD3A62B@core-sdi.com> Just in case you where whondering, the just released version of MorphicWrappers work ok with Squeak 2.3b, but stay tunned, there will be soon a version that uses WeakArarys to hold the Identity Dictionary of morphic wrappers. Soon Bye! Richie++ From gera at core-sdi.com Wed Nov 4 21:05:41 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:43:56 2012 Subject: Double dispatch References: <199811041608.KAA01009@sal.cs.uiuc.edu> <36409494.EF4AC870@keyww.com> <3640AD54.E50BD139@core-sdi.com> <3640BFAE.7979E97A@keyww.com> Message-ID: <3640C1A4.B639F8F1@core-sdi.com> Travis pointed out: > I'm not sure what you mean by your argument that DD is not good for non-commutative. > I assume you must have meant something else? You're right. As you where sending a message to the former receiver, I assumed that the order of evaluation was going to be inverted, but this is not necessary true. Inverted Bye! Richie++ From lex at cc.gatech.edu Wed Nov 4 18:51:50 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:44:01 2012 Subject: Regenerating the VM Message-ID: <199811041851.NAA09514@cleon.cc.gatech.edu> Ian Piumarta wrote: > > > The quick fix is simple: in sq.h, redefine ioLowResMSecs to just be ioMSecs: > > > > #define ioLowResMSecs() ioMSecs() > > It should already be like in the 2.2 sq.h! Maybe there's an erroneous > #define USE_CLOCK_MSECS in sqConfig.h someplace? Which platform were > you running on when you saw delays taking 1000 times too long??? > > Ian Linux 2.0.34, using libc5, with a Cyrix 6x86 133Mhz, for what it's worth. Does the Unix port use a customized sq.h? Looking in (InterpreterSupportCode class>>squeakHeaderFile), the default definition of ioLowRes..() is not in an #ifdef (even though the regular ioMSecs() is). Or does one of the other Unix headers #undef this, which would mean my headers are out of date? Lex From rowledge at interval.com Wed Nov 4 16:38:56 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:44:06 2012 Subject: Regenerating the VM In-Reply-To: <13888.32202.878254.161563@tif.inria.fr> Message-ID: On Wed 04 Nov, Ian Piumarta wrote: > unacceptable. (Who invented this ioLowResNonSense anyway?) */ Good question. There seems to be quite a lot of ugly hackery creeping in around the timing related stuff. Worse yet, no comments that help us outside platform porters comprehend the purpose of said hackery. Somebody call Terminix with the bugspray! tim -- Fractured Idiom:- VENI, VIDI, VISA - I came, I saw, I bought Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From russell.allen at firebirdmedia.com Thu Nov 26 00:54:55 1998 From: russell.allen at firebirdmedia.com (russell.allen@firebirdmedia.com) Date: Sat Jan 28 04:44:11 2012 Subject: Squeak licensing questions Message-ID: <199811260054.QAA24407@jasper.he.net> >Dear Squeakers, > >I have a few questions about the Squeak license and was wondering if >people on the list could help me out in getting them answered. >Definitive answers from authoritative source are especially welcome, >however general kibitzing would be of interest to me as well, especially >in terms of pointing out questions I haven't thought to ask. I don't have any inside knowledge of the status of Squeak licences, but I am trained in IT law :-) I feel that looking more closely at the licencing issues involved in Squeak may be a very good thing to do, for a few reasons: (1) Open source software in general is coming under greater scrutiny now that commercial enterprises are looking at incorporating it into their products. (2) Copyright law is getting more serious. Criminal offences are increasing, as is the term (US just increased its term to life + 70 years. Think about that - if someone writes a class in their early 20s and lives til they are 85, the source code for that class will be covered by the copyright act for 130 years). Like it or loath it, copyright is here to stay, and projects like Squeak which span the gap between fully commercial software such as Windows and fully GNU- protected software need to put in place mechanisms to avoid conflict, and provide security. However, the modular nature of Squeak should make it very easy create these mechanisms. As an example, what about adding copyright information to classes? Each class could have a date, name and a licence number. Every distribution of the Squeak core classes could have a document which provides a list of licencing options, from GPL to fully commercial. Tools could be provided to browse licences etc. This would enable a commercial distributor to take a Squeak image made up of seperate packages, and browse all of the classes covered by the Gnu license, file them out if necessary. Alternatively, a creator could easily identify the parts of his image which were under commercial copyright and write GNU replacements. Put the licence document on the Swiki, and allow people to add their own licences. This is just an off-the-cuff suggestion which may cause technical/legal/social criticisms (what fun!)... but it's worth considering to save the Squeak community a lot of problems later on. Russell > >It has been said "Don't worry. Apple has already forgot about it..." in >terms of the license and its enforcement. However that probably won't >cut it with IP lawyers of a major corporation. These are sorts of >questions such a lawyer might ask, and it would be nice to have ready >answers available for anyone contemplating getting Squeak into their >organization. > >-Paul Fernhout >Kurtz-Fernhout Software http://www.kurtz-fernhout.com >========================================================= >Developers of custom software and educational simulations >Creators of the open source Garden with Insight(TM) garden simulator >Creators of the StoryHarp(TM) Audioventure Authoring System > > ------------------------------------------------------------ Russell Allen russell.allen@firebirdmedia.com Random Quote: "They must often change who would be constant in happiness or wisdom." Confucius, Analects. ------------------------------------------------------------ From luciano at core-sdi.com Tue Nov 3 14:32:19 1998 From: luciano at core-sdi.com (Luciano) Date: Sat Jan 28 04:44:11 2012 Subject: Regenerating the VM Message-ID: <363F13F3.965F2D@core-sdi.com> I updated my image and regenerated the VM (in Linux) in order to make finalization and pluggable primitives work, but I've got into troubles... the new VM did not work properly. This is what happens: if I type a char, nothing shows, until I type other char or move the mouse. What is happening? Did someone noticed this behavior before? Luciano.- From ivan.tomek at acadiau.ca Tue Nov 24 14:55:53 1998 From: ivan.tomek at acadiau.ca (Ivan Tomek) Date: Sat Jan 28 04:44:25 2012 Subject: Class LinearFit - What does the comment mean? In-Reply-To: <01be17fb$9fa344a0$0132c8c8@notung> Message-ID: <199811242255.SAA01637@garlic.acadiau.ca> Piecewise-linear approximation normally means the best fit of a set of points by a continuous series of straight line segments. Usually, the condition would be a maximum acceptable deviation and 'optimal' would mean the least possible number of segments.. Date forwarded: 24 Nov 1998 22:49:51 -0000 Send reply to: "Leandro Caniglia" From: "Leandro Caniglia" To: Subject: Re: Class LinearFit - What does the comment mean? Date sent: Tue, 24 Nov 1998 19:41:49 -0300 Forwarded by: squeak@cs.uiuc.edu > >The comment for class LinearFit (a subclass of Path) says : > > > >"I represent a piece-wise linear approximation to a set of > >points in the plane." > > > > > >Is this a correct statement? > > I think that the author was thinking about a linear interpolation problem. > In these problems you want the graph of a function, but you only have some > points of it. A linear interpolation is obtained joining the points with > segments. > > Hope this helps > Leandro > Ivan Tomek, Jodrey School of Computer Science Acadia University Nova Scotia, Canada fax: (902) 585-1067 voice: (902) 585-1467 From ohshima at is.titech.ac.jp Tue Nov 3 07:06:09 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:44:26 2012 Subject: FormView and StandardSystemView Message-ID: <19981103070609.24177.qmail@n0ud.is.titech.ac.jp> Hi. I'm trying to make an application view that contains an instance of FormView and other views. But I found a problem. Please evaluate the following code: f _ Form fromUser. f edit. The FormEditor is supposed to be un-resizable, but when I touch the right- (or left-) bottom corner of the window by mouse, the window shrinks and the form gets scaled. It seems to me that the handling of the labelFrame of StandardSystemView is wrong for the calculation of the extent of the "topView". What I want to do is to display a form with its exact size and to prevent it getting scaled. The other examples I looked are also trying to do this by setting minimumSize and maximumSize same, but the calculation of the size seems very complecated. Is there much decent way to do this? I checked this on Squeak 2.2 on UNIX and Windows95. Thank you. OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology From bruce_oneel at yahoo.com Tue Nov 24 13:16:26 1998 From: bruce_oneel at yahoo.com (Bruce O'Neel) Date: Sat Jan 28 04:44:27 2012 Subject: [sqh] How close is SmallTalk Express to Squeak syntactically? Message-ID: <19981124131626.17461.rocketmail@send205.yahoomail.com> > and then the GUI chapter seemed wrong. I am, oh so slowly, learning > how to get GUIs to come up. For those of you up to this stage and working with 2.2... I've had some success in using the Scamper openAsMorph class method to help me get started with a morphic sample GUI, and, using Filelist open class method for the MVC GUIs. I need both because Morphic is just a touch slow on my ancient powerbook. cheers bruce == Bruce O'Neel - beoneel@acm.org http://homepage.iprolink.ch/~bioneel _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From dwighth at ipa.net Thu Nov 5 16:57:03 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:44:37 2012 Subject: PROPOSAL: create the squeak-help list References: <199811050011.QAA28222@jasper.he.net> Message-ID: <3641D8DF.BAA95DAD@ipa.net> Nah, not really. Swiki runs _in_ Squeak but you don't have to know anything about Squeak or Smalltalk just to use it on the Web -- it is just a special type of web server. Take a look at the Squeak Swiki at: http://minnow.cc.gatech.edu/squeak.1 -- go to the Formatting Rules page to see how easy it is. Go to the Sandbox and click on "Edit this Page" to see how text is entered and formatted. HTML would be good to know at times, but it's not a requirement either. -- Dwight Duane T Williams wrote: > > >I like the "the person who asks the question updates the Swiki" rule -- > >it would have to be pasted into the Swiki by hand though. > > Let me see if I understand. The proposal is supposed to help beginners to > Squeak (and possibly to Smalltalk like environments in general), but in > order to get help the beginner has to first know how to use the Swiki. Do > I sense a slight circularity here? From ivan at cc.gatech.edu Thu Nov 26 16:05:18 1998 From: ivan at cc.gatech.edu (Ivan Brusic) Date: Sat Jan 28 04:44:38 2012 Subject: So, how do you stop execution In-Reply-To: <19981126155248.5573.rocketmail@send203.yahoomail.com> Message-ID: On Thu, 26 Nov 1998, Bruce O'Neel wrote: > Hi, > I got myself into a bit of a bind, and, thought that stopping > execution would be nice. Since I didn't know how I went to > http://minnow.cc.gatech.edu/squeak.1, and there under the topic Basic > Hints were the magic words, "stop execution." On the basic hints > page, http://minnow.cc.gatech.edu/squeak.3, there is no mention of > stopping execution, just the mapping between the red/yellow/blue > buttons of the mouse and the different system's mouse. > > So, how does one stop execution? FWIW, I'm on a mac. Thanks! Hi Bruce, You should be able to stop execution by pressing CMD-. (command & period). I forgot which is the command key on a Mac, but it should be the Apple key. Can anyone back me up on this one? Hope this helps, Ivan > > cheers > > bruce > > == > Bruce O'Neel - beoneel@acm.org > http://homepage.iprolink.ch/~bioneel > _________________________________________________________ > DO YOU YAHOO!? > Get your free @yahoo.com address at http://mail.yahoo.com > > -- "Computers are nothing but a perfect illusion of order" - Iggy Pop Ivan Brusic Graduate Student GVU Center & College of Computing, Georgia Institute of Technology From lrozier at thepattern.com Thu Nov 26 20:14:16 1998 From: lrozier at thepattern.com (Laurence Rozier) Date: Sat Jan 28 04:44:45 2012 Subject: Squeak 2.3 beta available References: from "Dan Ingalls" at Nov 25, 98 05:47:38 pm Message-ID: <365DB698.510E7D1E@thepattern.com> Mark Guzdial wrote: > > - Playing with MacroMedia Flash files > > Flash is a vector graphics package designed for vector graphics > > content delivery over the internet. Many sites use this to enhance > > their web pages and it's a lot of fun to play with. If you have access > > to any .SWF files just open them from the file list. > > [Note: The integration into Scamper didn't make it for the beta. > > It will be in the final 2.3 and I'll post a couple of links > > for you to play with]. > > For those of us who have just learned of Flash, where's a good place to > grab .SWF files? If you're running Mac or Windows you can go to http://www.macromedia.com/software/flash/index_flash_movie.html and download the trial beta which has example files.-Laurence > > > Thanks! > Mark > > -------------------------- > Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 > (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu > http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From Burdick at appliedreasoning.com Thu Nov 5 00:05:51 1998 From: Burdick at appliedreasoning.com (William R. Burdick Jr.) Date: Sat Jan 28 04:44:48 2012 Subject: Double dispatch References: <199811041400.IAA03780@dillinger.io.com> <36407451.3DAA08ED@appliedReasoning.com> Message-ID: <3640EBDF.CE3D9F08@appliedreasoning.com> Chris Grindstaff wrote: > Jim, > In short double dispatching is a "typed" message send. Probably the Nice explanation ;-) -- Bill Burdick bill@AppliedReasoning.com Applied Reasoning http://www.AppliedReasoning.com ICQ: 12769504 From johnson at cs.uiuc.edu Wed Nov 4 16:08:33 1998 From: johnson at cs.uiuc.edu (Ralph Johnson) Date: Sat Jan 28 04:44:51 2012 Subject: Double dispatch Message-ID: <199811041608.KAA01009@sal.cs.uiuc.edu> The best paper on double-dispatching was the one that Dan Ingalls wrote for OOPSLA'86. But if you don't have the OOPSLA'86 proceedings, or the CD with the first ten years of papers on it, you might read the paper that Kurt Hebel and I wrote on it at ftp://st.cs.uiuc.edu/pub/papers/patterns/double-dispatch.ps Our paper focuses on how to implement arithmetic, and on a tool that we built to make double-dispatching easier. -Ralph From hm.mosner at cityweb.de Sun Nov 15 10:47:43 1998 From: hm.mosner at cityweb.de (Hans-Martin Mosner) Date: Sat Jan 28 04:45:02 2012 Subject: Multi-threading the interpreter References: Message-ID: <364EB14C.19B5@cityweb.de> Richard L. Peskin wrote: > > I may be wrong, but it appears that the Squeak interpreter is single > threaded. (At least that is the impression I get from looking at interp.c, > and observing the behaviour during a net-based "upgrade".) That's right. > For those of us > interested in using Squeak in an IPC environment, this single thread > operation can be a problem. For example, if a Squeak process calls a > numerically intensive external process (say using a TCP/IP based > primitive), everything is "on hold" until that external process returns. That's only partially right. If you use TCP/IP, for example, your Smalltalk process will be suspended while waiting on the socket for a response, but other Smalltalk processes are free to run regardless. So although the VM itself is single-threaded, it implements a multi-threaded Smalltalk process model. As others have said, this gets somewhat more complicated if you have a function-based interface to external systems (then you need that 'thread pool' approach or some such). Having a Smalltalk VM that's multi-threaded within poses quite difficult problems, really. I would not want to implement, debug and maintain such a beast in the context of Squeak, since it would seriously complicate the whole VM, making it much less accessible than it is now. And you get all sorts of weird platform dependencies, as thread support is virtually guaranteed to be different on each platform. And I'm not talking about the various bugs and implementation limits that you would have to work around... Hans-Martin From sqrmax at cvtci.com.ar Wed Nov 4 11:27:47 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:45:07 2012 Subject: Squeak security [changed from Re: A bit of header] Message-ID: <0a4ee46271104b8MAIL2@cvtci.com.ar> Hi. >If the goal is to prevent changes corruption, wouldn't it be better to open >the changes file with exclusive sharing access? Mabey on the first time you >write something to changes. Note that I proposed that the VM warned the user about the fact that he/she is opening a probably active image. Now, after the warning, the user decides. Andres. From dwighth at ipa.net Wed Nov 4 18:03:50 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:45:28 2012 Subject: But what about Flash? (Re: Toward the next release...) References: <199811041225.NAA23289@monet.cs.uni-magdeburg.de> Message-ID: <36409706.B00277FE@ipa.net> This is some great stuff! I'm glad you're able to resolve the more nebulous descriptions to create something real. I'm still trying to figure out how this all snuck up on me. Ironically, much of my "real" job is heavily graphical - mostly GIS/GPS based analysis - but I work with it at a higher level than the primitives defined in Flash. So I'm still wading around in the shallow end of the pool here -- but I will have to jump in soon to create the code/data/object animations I have dancing around in my head. Thanks for creating such an interesting and powerful toy^h^h^htool for Squeakers. -- Dwight Andreas Raab wrote: > > Dwight, > > > One thing though -- Macromedia is hardly giving away the candy store in > > their Flash open file format package. The swfparse code is a nice start, > > but it's hardly a reference implementation is it? > > You're right - the Open-SWF documentation has a lot of inaccurate > statements and the parse code provided doesn't even work as expected. > Fortunately, there are couple of people working on similar stuff in the > (graphics) community and I was able to share my insights with them and so > figure out how to deal with some of the more strange descriptions from the > spec. > > > You still get to implement all the primitives yourself. > > Luckily, this is not too hard. The technology that's needed for this dates > back at least to the 80's (e.g., use a simple scan-line renderer with an > active edge table approach, couple of lines and quadratic bezier segments, > a little forward-differencing here and there, and away you go). But today > we have the processing power to do this with neat anti-aliasing at 10 > frames per second ;-) > > Andreas From gera at core-sdi.com Mon Nov 2 18:25:17 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:45:28 2012 Subject: printOut(AsHTML) Message-ID: <363DF90D.C3D66181@core-sdi.com> Hi! In order to make printOut(AsHtml) work properly we needed to add #verbatim: and to change #nextPut: in HtmlFileStream, here are our versions, there may be better, as ussual... nextPut: char "Put a character on the file, but translate it first. 4/6/96 tk" char = $< ifTrue: [^ super nextPutAll: '<']. char = $> ifTrue: [^ super nextPutAll: '>']. char = $& ifTrue: [^ super nextPutAll: '&']. char asciiValue = 13 "return" ifTrue: [ self command: 'br']. char = $ "tab" ifTrue: [self verbatim: '    ']. "this line changed" ^ super nextPut: char verbatim: aString "Write the whole string, without translating it. r++ 11/2/1998 14:46" "Needed here so printOutAsHtml works ok" aString do: [:each | super nextPut: each]. I hope you have a nice printing... Printed Bye! Richie++ From JArchibald at aol.com Fri Nov 6 21:10:13 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:45:38 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] Message-ID: <89735745.364365b5@aol.com> In a message dated 11/5/98 7:04:46 AM Eastern Standard Time, johnson@cs.uiuc.edu writes: << bet that we would all benefit if Alan were to make some videos of playing with Morphs and we were to put them on the web. >> I personally like the idea of some videos--could we convince Alan that we think it's worth his time? Jerry. From ChrisG at appliedreasoning.com Wed Nov 4 15:35:45 1998 From: ChrisG at appliedreasoning.com (Chris Grindstaff) Date: Sat Jan 28 04:45:52 2012 Subject: Double dispatch References: <199811041400.IAA03780@dillinger.io.com> Message-ID: <36407451.3DAA08ED@appliedReasoning.com> Jim, In short double dispatching is a "typed" message send. Probably the classic example is implementing arithmetic. (Squeak doesn't use DD at the moment although several folks have changed it to) Let's take Integer>>#+ as an example. The #+ method accepts one argument. How would we code the #+ method so it works nicely with magnitudes we haven't conceived of? Of course one approach would be to place a switch-like statement in the method, but there are maintenance problems with that solution. The double-dispatch way advocates turning around and sending a message to the argument. However the message you send to the argument is what I called a "typed" message; meaning it conveys something about the receiver. For example: #+ aNumber aNumber addToInteger: self. The "typed" message send obviously comes in to play with the "..ToInteger" part. The advantage of this is that new classes of objects can be created that can be dropped into the current system without too much work. You would have to implement all of the typed message sends in your new class that describe how the new class adds, subtracts, etc. to integers, floats, complexes, etc. HTH, chris Jim Menard wrote: > Gang, > > I've seen quite a few references to double dispatching. What is that? > URL's, pointers to docs, or a simple RTFM (but *which* FM) would be > appreciated. > > Jim > -- > Jim Menard jimm@io.com http://www.io.com/~jimm/ BeOS developer #1283 > "An object at rest cannot be stopped!" > -- The Evil Midnight Bomber What Bombs At Midnight -- ------------------------------------ Chris Grindstaff - Applied Reasoning mailto:chrisg@appliedreasoning.com http://www.appliedreasoning.com 919-851-7677 From caniglia at dm.uba.ar Tue Nov 24 14:51:42 1998 From: caniglia at dm.uba.ar (Leandro Caniglia) Date: Sat Jan 28 04:46:14 2012 Subject: Changeset Problems Message-ID: <01be17b9$f2e560e0$0132c8c8@notung> There was an similar problem (fixed by Andres Valloud, I think) when you deleted some class and recreated it later. It was solved in the patch 325ChangeS0. May be something is still missing... incompleteBye ^ Leandro -----Original Message----- From: Gerardo Richarte To: Squeak List Date: Tuesday, November 24, 1998 3:50 AM Subject: Changeset Problems > While building the package for MorphicWrappers, we found a problem >that we cannot reproduce right now, but I can describe: > > We had two classes, ClassWrapper and BitmappedWrapper, we renamed >them to ClassMorphicWrapper and BitmappedMorphicWrapper, we made fileOut >of the change set, and when we made fileIn from a fresh image, those >renamed classes where missing. I'm not sure if it has something to do >with renaming the classes (I tried to reproduce this behaviour, but I >culdn't). What I do have is a .ZIP (2.5M) file with a .image and a >.changes that will have this problem. > > Problematic Bye! > Richie++ > > From rapp at lmr.com Sat Nov 21 23:09:24 1998 From: rapp at lmr.com (L. M. Rappaport) Date: Sat Jan 28 04:46:16 2012 Subject: Squeak Performance In-Reply-To: <98112011293906.00448@localhost.localdomain> References: <98112011293906.00448@localhost.localdomain> Message-ID: <365746f1.4448661@rusty.kronos.com> On Fri, 20 Nov 1998 11:23:43 -0700, you wrote (with possible editing): >All, > > Hi. I'm using VisualWorks NC on Linux and have Squeak as well. I was >going to be using VWNC for a semi-commercial usage but I may not be able to >afford it commercially. I'm using it for a Web Server (using a Web Server I >built in VW similar in concept to the Squeak PWS and an HTML framework I >wrote). I'm curious if Squeak has general performance good enough to >investigate using it as a web server. > >Thanks and take care, Why not just try it out? Squeak comes with a Web Server built in - called a Swiki server (Squeak Wiki). All you need is a sample page available on the web a few commands and you're in business. You may not want to run this commercially as it allows online editing, but at least you can test the performance and if it's ok for you, you can modify the framework. See the PWS (plugable web server) class et al. Larry -- rapp@lmr.com From whisper at accessone.com Sun Nov 15 01:34:09 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:46:25 2012 Subject: Is the swiki working? In-Reply-To: <199811141629.LAA28006@fellspt.charm.net> Message-ID: <3.0.1.32.19981114173409.009410f0@accessone.com> I have not been able to get to the minnow.cc.gatech.edu based swikis either. Dave LeBlanc At 11:29 AM 11/14/98 -0500, you wrote: >I have not been able to connect to the swiki at > >minnow.cc.gatech.edu > >for a couple of days. Did it move? Is it down? > >Cheers, >Bob > > > From guzdial at cc.gatech.edu Wed Nov 25 19:22:51 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:46:45 2012 Subject: Squeak licensing questions In-Reply-To: <365C0D8A.BF17EF76@kurtz-fernhout.com> Message-ID: >2. Are all the add-ons included in the Squeak distribution (like the >pluggable web server) under the same license? I know probably less than most about copyright laws and intellectual property issues. But I can tell you something about the PWS licensing. I knew enough about the issues that I knew I needed to get permission from the University before the PWS went out with Squeak. So, I hunted up the University lawyers. I made the case that releasing PWS was good PR for Georgia Tech, and that PWS had little commercial value itself (re: recent thread on PWS vs. Apache). What the University lawyers agreed to was that (a) Tech retains ownership of PWS (which Dan and the Team agreed could go in a class comment) but (b) Tech gives anyone the right to use/modify/extend it. I don't know how this compares to any other kinds of licensing terms, but it clearly doesn't limit any use of PWS. Mark -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From rlpcon at vermontel.net Fri Nov 27 22:24:51 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:46:46 2012 Subject: VM blocking Message-ID: When I run the following example code (HTTPSocket httpShowGif: 'http://squeak.cs.uiuc.edu/Squeak2.0/midi/Squeakers.GIF'. ) taken from the Squeak 2.2 Mac intro window, I find my VM blocks until the total image is returned. Is this because the VM blocks on the socket primitive calls? --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From dwighth at ipa.net Mon Nov 23 21:23:48 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:47:13 2012 Subject: HOWTO fodder (was: Re: Fonts too small -- from a clueless References: Message-ID: <3659D264.C2DE8680@ipa.net> I've added a "Squeak FAQ" starter page to the Swiki (under "Starting to Squeak" on the Front Page) -- no content at this moment, just the format. This is probably not the absolutely best format for a FAQ, considering that some do not have web access from their Squeak system. It would be best to have an updateable local version integrated with Squeak, but that will need to wait for a little bit. However, the FAQ needs to get started somewhere. -- Dwight David Mitchell wrote: > > Agreed. I'll update the Squeak Discussion Swiki tonight. > -- > > On Mon, 23 Nov 1998 16:02:59 chris patti wrote: > >At 12:48 PM 11/23/1998 -0700, you wrote: > >>Try this: > >>TextStyle changeDefaultFontSizeBy: 1 > >> > >>I filed out the code that does this, so you can browse TextStyle for more > >info. > > > >This should be in an FAQ or HOWTO. > > > >Also the answers I'm getting WRT SmallTalk Express, as they cover questions > >people flailing at SmallTalk and squeak in particular *WILL* ask. > > > >If I were to build such a HOWTO page, where should I put it? Is a page on a > >Swiki somewhere most appropriate, or should I just do my own webpage on my > >own site? (Which makes the info the most readily available?) > > > >-Chris > > > > > > -----== Sent via Deja News, The Discussion Network ==----- > http://www.dejanews.com/ Easy access to 50,000+ discussion forums From DanI at wdi.disney.com Mon Nov 23 21:35:25 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:47:14 2012 Subject: System Windows problems In-Reply-To: <3659B189.1CA3C561@core-sdi.com> Message-ID: > While condig latest version of MorphicWrappers (soon available), we >found a problem: After setting allowSysWindowsEmbedding in Preferences, >when you drag an opened (not collapsed) system windows to the TrashCan, >not only two error pops up, but the StackTrace is dumped. The problems >are in SystemWindows' #passivate and #activate methods, sorry for only >posting the problem and not the solution... Richie - Thank you for this alert. We have confirmed the problem and will have it fixed in 2.3. By the way, I plan to put out a beta version of 2.3 tomorrow evening, in case that is relevant to your upcoming new release of Morphic wrappers. - Dan From dnsmith at watson.ibm.com Mon Nov 2 16:33:41 1998 From: dnsmith at watson.ibm.com (David N. Smith) Date: Sat Jan 28 04:47:27 2012 Subject: Floats to Bytes and back again In-Reply-To: <363AB54B.4D80A70A@bmi.net> Message-ID: At 1:59 -0500 10/31/98, Travis or Kerrin Griggs wrote: >I'm trying to create a typed FloatArray. There's not a lot in the system >for converting floats to bytes, so I hacked up something where I use >basicAt: to extract the first and second dwords, and then strip the >dwords down a byte at a time (a bit more complex then VW where >changeClassToThatOf: #[] works handily). But now that I've got it ripped >down into 8 bytes, I can't figure out how to get the float back again. I >put the 4 byte chunks back together (via bitShift: and +), but can't use >basicAt:put: on an instance of a float. Feature, bug,...? Is there a >better way to do this anyway? > >Travis Griggs Look at Float>>asTrueFraction; it tears apart a float and builds a fraction out of the same bits. Reverse conversion is done by sending #asFloat to the fraction; an identical float is produced. _______________________________ David N. Smith IBM T J Watson Research Center Hawthorne, NY _______________________________ Any opinions or recommendations herein are those of the author and not of his employer. From johnm at wdi.disney.com Mon Nov 9 19:44:39 1998 From: johnm at wdi.disney.com (johnm@wdi.disney.com) Date: Sat Jan 28 04:47:35 2012 Subject: Socket Message-ID: <199811091944.AA24867@bobo.rd.wdi.disney.com> "John \(Zhijiang\) Han" wrote: > I'm wondering how could you make a socket (created by > > socket := createIfFail: [] > > and the result was not nil) invalid, besides doing > > socket destroy > > (explicitly or implicitly, like snapshot.) As you say, when you restart a snapshot that was saved with existing sockets (in any state), then the state of all these sockets become invalideSocket when you restart the image. (That is because the underlying OS sockets no longer exist.) Otherwise, a socket should not become invalid unless you destroy it. > Is it possible for a socket being both invalid and connected? I mean are > those states (shown in Socket class>>#initialize) mutually exclusive? Yes. -- John From johnm at wdi.disney.com Mon Nov 16 18:24:03 1998 From: johnm at wdi.disney.com (johnm@wdi.disney.com) Date: Sat Jan 28 04:47:37 2012 Subject: SqueakOS Message-ID: <199811161824.AA25800@bobo.rd.wdi.disney.com> Jerry Bell wrote: > What would be the ideal kind of kernel to run Squeak on top of? I know > portability would be on the top of the list. How about single vs. > multithreaded? Maybe even something completely different to take advantage > of the unique needs of a smalltalk environment? Squeak doesn't really need an OS, just device drivers. The minimum it needs are a display driver and some combination of pen/mouse/keyboard input drivers. It doesn't really even need a file system, although it's nice to have. After that, it just depends on what you need: sound output, sound input, networking (TCP/IP), etc. Curtis Wickman, a summer intern, ported Squeak to a bare Mitsubishi M32-R/D prototyping board (no OS) in about six weeks, including writing all the device drivers. It took him a few more weeks to add a simple Flash RAM file system and a sound output driver. The entire VM, including the drivers, was under 250 KBytes. So my approach to building a bare-machine Squeak would be to find an open-source OS kernel and just adapt its device drivers. Squeak is really its own OS, after all. -- John P.S. I know about the Interval and Mitsubishi bare-chip Squeak's. Are there any other bare-chip VM's out there? (The DEC Itsy and Zaurus ports are neat, but they run on top of a host OS.) From danielv at netvision.net.il Sat Nov 7 16:10:03 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:47:42 2012 Subject: Recompiling the VM with finalization Message-ID: <364470DB.83E7CFF7@netvision.net.il> on win32, after having a project that worked on the old interp.c, I find the code has many appearances of "EXPORT(int)". This seems to be a macro, but is nowhere defined. Besides, a function called ioLoadExternalFunctionOfLength.... is used but nowhere defined. What am I missing? From rlpcon at vermontel.net Wed Nov 11 18:37:52 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:47:49 2012 Subject: Examples of API In-Reply-To: <01BE0D03.DABDFE20@maq226b.advance.com.ar> Message-ID: At 10:33 PM -0300 11/10/98, Alejandro F. Reimondo wrote: >If you are using the sqAPIs... there are two examples of use. >The JPEG & TIFF examples at sugar's site. >please see downloads page at >http://www.sugarWeb.com > >Note: the sqAPIs model to interface with C structs are compatible > with VisualSmalltalk's model and extended to support recursive > structures/substructures and pointers transparently. Hi -- I looked at the above but I'm not sure if this will fill our needs. Let me describe what we are doing and perhaps you can make some suggestions or give me an opinion if your sqAPI's will work. As a bit of background, I and my associates at Rutgers developed and implemented one of the first large scientific data management systems in Smalltalk. It was called SCENE; "Computers in Physics" July-Aug 1994 has an overview and there were numerous other publications. SCENE was designed to allow non-programmers to do interactive "computational steering" and visualization of large computational data sets. SCENE was ties to ParcPlace VisualWorks and when PPS started to compete for the "re-engineering" business market we found that our need for portability and flexibility was not consistent with their planned directions. We tried SmalltalkAgents but it never got past the Mac implementation. So the SCENE project was stopped although additional internal work went on. With Squeak now available, we want to revive SCENE and enhance it to include more flexible user interface, and symbolic algebra classes. (These latter are where changes to the gc come in.) Furthermore the Morph classes look like they can be applied to objects other than graphical ones, and this can have significant implications for symbolic algebra. Anyway SCENE depended heavily on a couple of available technologies: 1. User added primitives. (These can be done in Squeak as far as I can see.) 2. Enhanced garbage collector for symbolic algebra. (You have helped me deal with this one.) 3. Interaction with external (non-Smalltalk) processes. (It is this need that I am having trouble seeing how to accomplish in Squeak.) 3. was critical to SCENE. For example, under SCENE a user could interactively ask for a mathematical data filter operation and SCENE would generate the C code for the filter and then invoke the system C compiler to generate code, and then use this code to filter the data set finally returning the results back to SCENE for visualization. (While the equivalent could be done entirely inside Smalltalk, the data sets were too large for reasonable performance.) To implement this (Unix versions only) we actually wrote AppleEvents for Unix to handle the event interchange.) Another example might be the need to use more sophisticated 3-D graphics, e.g. OpenGL. Here we want to pass data from Smalltalk to a 3-D graphics program running concurrently. We also have our own symbolic libraries that we want to access and for performance and practical reasons (use what we have already done) would like to access these from Squeak. >From what I can see, the Socket classes are limited to TCP/IP services, although the comments indicate that "someday" they might be used for IPC. Will the your API work be useful for our objectives? Do you know of any other work that I might look at? What would really be nice is if Squeak offered the same sort of inter-process communication that exists in Tk and Python. Sorry for the long email. thanks, --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From mklein at alumni.caltech.edu Thu Nov 12 21:15:39 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:47:51 2012 Subject: squeak-list error messages Message-ID: Im constantly getting messages like below, even though my posts apparently make it through. Anybody else experienceing this noise? Also, this is a test :-) -- Mike mklein@alumni.caltech.edu Date: Thu, 12 Nov 1998 23:10:46 +0200 From: system@mgate To: mklein@alumni.caltech.edu Subject: Delivery Notification: Delivery has failed Parts/attachments: 1 Shown 5 lines Text 2 Shown 1.3 KB Message, "Re: What class should include "5 kilograms" 2.1 Shown 18 lines Text ---------------------------------------- Report on your message to: /R=AM_PAREL/U=BAVECO/@gate.agro.nl Reason: Failed to transfer; communications failure (0) Diagnostic: Maximum time expired (5) Extension-id: 1 Arrival-date: Thu, 12 Nov 1998 23:10:46 +0200 From gera at core-sdi.com Thu Nov 5 23:20:28 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:48:10 2012 Subject: Morphic>>step Message-ID: <364232BC.642096C1@core-sdi.com> Sometimes I have a problem... When some Morph is stepping and suddenly an error pops up from it?s #step method, I can stop this happen, soI need to quit squeak without saving, what I don?t like! I can understand why this happens, and that it?s perfectly normal (if there is such an error), but I?d like to have a way of stopping this, or better, to make the morph stop stepping if there is an error in its #step method. Any idea out there? Unsolvable Bye! Richie++ From rowledge at interval.com Sun Nov 15 04:21:03 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:48:21 2012 Subject: [squeak] Question about ProcessorScheduler In-Reply-To: Message-ID: On Sat 14 Nov, John (Zhijiang) Han wrote: > Hi, > > I'm wondering whether Squeak ProcessorScheduler is pre-emptive or not, > i.e. if there are two processes with the same priority, are their > execution interleaved or they actually execute one after another, given > that both will run a long time individually. There is nothing in the scheduler that will do this interleaving for you. Any higher priority process that is #resume'd will take over, but same or lower priority processes haveto wait their turn, which as you say can be quite a wait. One 'classical' approach to working around this is to add a 'Processor yield' send in assorted loops such as Controller>controlLoop or View>stretchFrame:startingWith: . Another oft suggested trick is t make a high priority process that is simply a loop waiting on a short Delay, so that the process list gets stirred up ocasionally. This pretty much relies on the suspended process being put atthe back of the queue for its priority level in order to work. Some people think that this is the wrong way to do things. IIRC, VisualWorks puts suspended processes at the front of the queue. At Interval we have implemented a new process scheduler that allows real-time task scheduling and (for want of a better term at this time of night) 'proper' interrupt handling, preemption etc. We hope to release this code sometime soon. tim -- Eagles may soar, but weasels aren't sucked into jet engines. Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From alank at wdi.disney.com Sat Nov 7 13:40:26 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:48:27 2012 Subject: Anyone using alternative input devices with Squeak? In-Reply-To: <364421B9.EE681E17@netvision.net.il> Message-ID: Daniel -- Long ago, Doug Engelbart came up with both a theory for such interaction, and a particular instance of the theory. The theory was that you should be able to stay at either the keyboard or the pointing device for long periods of time without having to switch very often. His instance of the theory was to have a five finger "chord" keyboard for the nonmouse hand. This plus two of the three buttons on the mouse allowed 127 characters to be typed, which included both text and commands. (The other mouse button was "command accept".) So one typically would have "hands out" on the mouse and chord keyboard for most navigation, commands, correction of typos, and short text inputs. When it came time to type a whole paragraph, the hands would come into the keyboard. I got fluent at this in the late sixties, and liked it. The PARC Alto came with the chord keyboards, but they didn't catch on. In the early Dynabook design, Engelbart's idea was adapted to a pen-based interface. RAND had done GRAIL, a really great pen-based system with a recognizer similar in spirit to and better than Grafitti. We realized from experience with Engelbart that even a perfect recognizer (which GRAIL almost was) was still too slow for some interactions, so I put a keyboard on the Dynabook model. Again the scheme was to navigate, give commands, fix typos, and do short text inputs with the pen, and then to switch to the keyboard for intensive text entry. This scheme was argued for the Newton and rejected (not on logical grounds). Now, it happens that there is a GRAIL-type character recognizer lurking in Squeak that I did in the earliest days for fun and to provide some benchmarks. It is trainable, etc. We plan to put this back in operation by January, but you might have fun playing with it now. It is called Class CharRecog. The code is very short and should be clear. Cheers, Alan --------- At 10:32 AM -0000 11/7/98, Daniel Vainsencher wrote: >I'm a keyboard type of person, and I generally don't like the mouse at >all, >but I hate switching between them even more. > >Using Smalltalk, and Squeak specifically, requires almost constant use >of the mouse. > >Does anyone here have any experience with things like Twiddlers or such? > >The idea of a device that combines the mouse and keyboard into one >device, >not requiring the annoying context switch, sounds great in theory. Any >"but"s? > >As it is now I simply use one hand for most typing, one hand constantly >on the >mouse, occaisonally abandoning the mouse when on a real coding roll. > >I'd be interested to hear how others play. From hhorch at wuerzburg.netsurf.de Wed Nov 4 02:12:52 1998 From: hhorch at wuerzburg.netsurf.de (Helge Horch) Date: Sat Jan 28 04:48:31 2012 Subject: Units package In-Reply-To: References: <3.0.1.32.19981103031544.0099f400@wuerzburg.netsurf.de> <363E44C3.BCA584AB@keyww.com> <5040100024760936000002L062*@MHS> Message-ID: <3.0.1.32.19981104011252.009a27c0@wuerzburg.netsurf.de> At 04:59 03.11.98 -0800, Alan Kay wrote: >This looks good, and also some of his music stuff looks cool too. I sent >Andrew an email also. Andrew asked me to forward his response to the group: At 12:40 03.11.98 -0500, he wrote... >Thanks for your message. I'm not on the Squeak mailing list >right now, but I am a Squeak enthusiast. I'll try porting the >unit stuff over to Squeak some time (or maybe someone else wants >to try?) - it shouldn't be too hard since there's no GUI stuff. >Regarding terms of usage, I don't have any problem just making >it restriction-free...I'm not making any money off it, anyhow. I have since converted the code from Dolphin pac format to a Squeak change set now. It doesn't really run yet. These are the open issues: 1.) The package seems to rely on arithmetic being done by double dispatch - at least that's my impression at a first glance. (I have been wrong before.) One class is subclassed from a Dolphin class "ArithmeticValue" that Squeak doesn't have. (To get it to compile, I have made a Magnitude subclass of that name.) Therefore it doesn't even process the initialization "Unit initialize" correctly yet. 2.) Error reporting is done via InconsistentUnitsError, an ArithmeticError subclass that uses Dolphin's signal mechanism. (For now, I have put it under Object... perhaps we could just use Object>>error: here.) 3.) It seems to require Number>>isZero, which I have added on the fly before my time ran out. I am way too busy to further dive into Units for now, so I have put up the first cut (50 KB) at so other volunteers can take a stab. For now, I have left Andrew's original "giftware" notice in. Happy hacking, Helge From zss at ZenSpider.com Mon Nov 16 18:08:55 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:48:33 2012 Subject: FAQ: Re:problem with sources In-Reply-To: <36503D03.5E69D854@netgenics.com> Message-ID: >I ran into a frustrating, yet interesting, problem over the weekend with >Squeak >2.2 running on a Mac. While browsing source methods, I noticed that many (but >not all) methods would show up in the source window with the first letter >missing, e.g. "mphasizeLabel" and "nitialize" for "emphasizeLabel" and >"initialize." My standard test case was the TextAttribute methods, which all >displayed the problem. And accepting any changes for these corrupt methods >resulted in creating a new, misnamed version of the method. THIS is why we need a REAL FAQ. Swiki by itself will not do because: 1) It isn't independent of the web (not downloadable). 2) It isn't guaranteed to be up and running. 3) It isn't KNOWN by everyone. We need an automated weekly posting that states: 1) Where the FAQ in ASCII format lives. 2) Where the swiki is (including several URLs for various known topics) 3) How to subscribe/unsubscribe from the list. The FAQ should be written and live in swiki, but should be automatically extracted every day (or so). This would REALLY help cut down on the more frequent problems that arise on this list, improve the quality of the squeak community w/ little individual effort, and improve the beginner squeak experience considerably... (I could even imagine some BUILT IN squeak snippet that would go retrieve an up to date version of the FAQ w/ a click of a button--no pain, lots of gain). Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From DanI at wdi.disney.com Tue Nov 10 17:17:01 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:48:40 2012 Subject: C.L.S. FAQ <-- OOPS/intended for Craig only/EOM In-Reply-To: References: <199811050205.SAA28705@interval.interval.com> <199811050202.VAA02485@fellspt.charm.net> Message-ID: From mklein at alumni.caltech.edu Fri Nov 13 19:07:12 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:48:44 2012 Subject: Porting to VW In-Reply-To: <364C1EFC.7E6A57DB@ix.netcom.com> Message-ID: > I'm new to the list so please forgive any reopening of old woundsbut has an > XML-based > source externalization been discussed? Not here, really. My personal take, having only given XML a cursory look, is that XML has a rather large amount of overhead for Smalltalk source externalization. 1) The general overhead it has by trying to be 'human-readable' without really succeeding. (I've never been able to read a bitstream without some device to help me). I think people are deceived by the (relative) ease of externalizing strings. If you ever have to deal with Kanji, things are a lot harder, but still relativly easy. Personally, the advantage of being able to read source with an ordinary text editor just doesn't cut it with me. 2) XML seems to have a rather large amout of intellectual overhead to cater to the static-typing crowd. On the upside: XML is a standard, and there is a fair body of (non-Smalltalk) code for parsing/validation/... Some problems with Squeak source: The stamp identifies authors by their initials. Certainly easy, but but very robust. ("This method was written by 'Dave Smith'" :-) I suppose that the community is small enough that name-space issues are still pretty small, but someday... The stamp mixes together the author and timestamp into a string RunArray class >># scanFrom: Why not just use the SmartRefStream to externalize source? It would be nice if CompiledMethod didn't have slot-voodoo so that it would be easier for us to experiment with alternate source/execution mechanisms. (Not to mention making VM allocation and GC cleaner) -- Mike From johnm at wdi.disney.com Tue Nov 10 22:50:31 1998 From: johnm at wdi.disney.com (johnm@wdi.disney.com) Date: Sat Jan 28 04:48:51 2012 Subject: Examples of API Message-ID: <199811102250.AA00335@bobo.rd.wdi.disney.com> "Richard L. Peskin" wrote: > Where can I find examples of API's that will allow me to exchange data > between Squeak data structures and C strucs? I understand that the socket > primitives do this but I don't know where to find the source code for these > primitives. > thanks, --dick peskin Executing the following: InterpreterSupportCode writeMacSourceFiles will dump all the sources used to build the Mac VM (except the interpreter itself, which is produced by: Interpreter translate: 'interp.c' doInlining: true. Cheers! -- John From stan at stanheckman.com Mon Nov 9 03:27:32 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:48:52 2012 Subject: with:collect: on OrderedCollection In-Reply-To: Daniel Vainsencher's message of "Mon, 09 Nov 1998 00:16:18 +0200" Message-ID: <87k915lf4r.fsf_-_@streamer.msfc.nasa.gov> a := OrderedCollection with: 1 with: 2. b := OrderedCollection with: 3 with: 4. a with: b collect: [:x :y | x + y] produces a walkback, because with:collect: creates a new, empty OrderedCollection to hold the answer, then tries to at:put: the answers there. But an empty ordered collection has no place at which to put them. :-) -- Stan From danielv at netvision.net.il Sat Nov 7 16:27:20 1998 From: danielv at netvision.net.il (Daniel Vainsencher) Date: Sat Jan 28 04:48:52 2012 Subject: Anyone using alternative input devices with Squeak? References: Message-ID: <364474E8.A3B677A9@netvision.net.il> Being disgraphic, I'd probably be quite a challenge to any such system, and on top of it (and probably as a result), I dislike writing. So that's probably not the best solution for me, though it might be better than mouse and keyboard. Alan Kay wrote: > Daniel -- > > Long ago, Doug Engelbart came up with both a theory for such interaction, > and a particular instance of the theory. > > The theory was that you should be able to stay at either the keyboard or > the pointing device for long periods of time without having to switch very > often. > > His instance of the theory was to have a five finger "chord" keyboard for > the nonmouse hand. This plus two of the three buttons on the mouse allowed > 127 characters to be typed, which included both text and commands. (The > other mouse button was "command accept".) So one typically would have > "hands out" on the mouse and chord keyboard for most navigation, commands, > correction of typos, and short text inputs. When it came time to type a > whole paragraph, the hands would come into the keyboard. I got fluent at > this in the late sixties, and liked it. The PARC Alto came with the chord > keyboards, but they didn't catch on. > > In the early Dynabook design, Engelbart's idea was adapted to a pen-based > interface. RAND had done GRAIL, a really great pen-based system with a > recognizer similar in spirit to and better than Grafitti. We realized from > experience with Engelbart that even a perfect recognizer (which GRAIL > almost was) was still too slow for some interactions, so I put a keyboard > on the Dynabook model. Again the scheme was to navigate, give commands, fix > typos, and do short text inputs with the pen, and then to switch to the > keyboard for intensive text entry. > > This scheme was argued for the Newton and rejected (not on logical grounds). > > Now, it happens that there is a GRAIL-type character recognizer lurking in > Squeak that I did in the earliest days for fun and to provide some > benchmarks. It is trainable, etc. We plan to put this back in operation by > January, but you might have fun playing with it now. It is called Class > CharRecog. The code is very short and should be clear. > > Cheers, > > Alan > > --------- > > At 10:32 AM -0000 11/7/98, Daniel Vainsencher wrote: > >I'm a keyboard type of person, and I generally don't like the mouse at > >all, > >but I hate switching between them even more. > > > >Using Smalltalk, and Squeak specifically, requires almost constant use > >of the mouse. > > > >Does anyone here have any experience with things like Twiddlers or such? > > > >The idea of a device that combines the mouse and keyboard into one > >device, > >not requiring the annoying context switch, sounds great in theory. Any > >"but"s? > > > >As it is now I simply use one hand for most typing, one hand constantly > >on the > >mouse, occaisonally abandoning the mouse when on a real coding roll. > > > >I'd be interested to hear how others play. From alank at wdi.disney.com Tue Nov 3 22:48:24 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:49:07 2012 Subject: Interesting :-) article and whitepaper on Open Source Software In-Reply-To: <882566B1.006E4FC9.00@d53mta01.boulder.ibm.com> Message-ID: Mike -- Verrrrryyyyy INTerestinggggggg. Cheers, Alan ----- At 8:18 PM -0000 11/3/98, wirth@almaden.ibm.com wrote: >Dan Gillmor had an interesting column in the San Jose Mercury News this >morning, "Microsoft wary of open source, embedded systems", which you can >find at: > > http://www.mercurycenter.com/columnists/gillmor/docs/dg110398.htm > > > >He discusses a purported internal MS whitepaper on Open Source Software >(called "OSS" in the whitepaper :-) which was leaked by Eric Raymond as >"The Halloween Document". You can find it, along with Eric's analysis and >marginal comments (with ongoing updates, now at version 1.4) at: > > http://www.tuxedo.org/~esr/halloween.html > > > >Eric's comments include a reference to Squeak: > >"This prediction is of a piece with the author's earlier assertion that >open-source development relies critically on design precedents and is >unavoidably backward-looking. It's myopic -- apparently things like Python, >Beowulf, and Squeak (to name just three of hundreds of innovative projects) >don't show on his radar." > > > >Enjoy, > > > >Mike Wirth > > From stan at stanheckman.com Wed Nov 18 02:21:55 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:49:18 2012 Subject: Units package (was Method names) In-Reply-To: Sam Adams's message of "Mon, 2 Nov 1998 17:26:38 -0500" References: <5040100024760936000002L062*@MHS> Message-ID: <87lnl9bv0c.fsf@streamer.msfc.nasa.gov> A units package for squeak is available at http://stanheckman.com/a/98h/glimpsedotter/ASqueakUnitsPackage.st This package defines a bunch of objects in the new method category "Numeric-Units", adds one method to Number (adaptToDimensionedNumber:andSend:), and adds one dictionary to the global namespace (BasisUnits). Here's an example cut and pasted from a workspace. Line's with a space at the beginning are the output of "printIt" on the preceding line. "Put units into global namespace" BasisUnit loadBasisUnitsIntoSmalltalk. "SpeedOfSound" boltzmannConstant := 1.38e-23 * Joule / Kelvin. 1.38e-23 joules per kelvin nitrogenAtomMass := 14 * AtomicMassUnit. 14.00000000000004 atomic mass units oxygenAtomMass := 16 * AtomicMassUnit. nitrogenMoleculeMass := 2 * nitrogenAtomMass. oxygenMoleculeMass := 2 * oxygenAtomMass. airMoleculeMass := 0.8 * nitrogenMoleculeMass + (0.2 * oxygenMoleculeMass). 28.8 atomic mass units airTemperature := 75 * Fahrenheit. 75.0 fahrenheit soundSpeed := ((7/5) * boltzmannConstant * airTemperature / airMoleculeMass) sqrt 346.465447053216 meters per second "height of mountains" pi := Float pi. vacuumPermittivity := 8.85419e-12 * Farad / Meter. planckConstant := 6.626e-34 * Joule * Second. protonMass := 1.00728 * AtomicMassUnit. electronMass := protonMass / 1836.15. electronCharge := 1.60218e-19 * Coulomb. hbar := planckConstant / (2 * pi). e2 := electronCharge squared / (4 * pi * vacuumPermittivity). hydrogenRadius := 4 * pi * vacuumPermittivity * hbar squared / (electronMass * electronCharge squared). 5.29160925619361e-11 meters hydrogenIonizationEnergy := electronMass * e2 squared / (2 * hbar squared). 2.17994806928187e-18 joules protonsPerRockMolecule := 50. 50 massOfMolecule := protonsPerRockMolecule * protonMass. 50.36400000000015 atomic mass units gravitationalAcceleration := 9.8 * Meter / Second squared. 9.8 meters per second squared meltingEnergyPerMolecule := hydrogenIonizationEnergy / 100. 2.17994806928187e-20 joules maximumMountainHeight := meltingEnergyPerMolecule / (gravitationalAcceleration * massOfMolecule). 26598.09072963288 meters maximumMountainHeight useUnits: Mile. 16.52728734790877 miles BasisUnit unloadBasisUnitsFromSmalltalk This package consists of my own work, which I'm giving to the public domain, and one routine based on Kurt Hebel's (hebel@uinova.cerl.uiuc.edu) arithmetic package from the smalltalk archive at ftp://st.cs.uiuc.edu/pub/Smalltalk/st80_r4/arithmetic.st. Kurt's package has no copyright notice, so he presumably still has copyright; if you want to do anything commercial with this package, you should either talk to Kurt or replace the gaussian elimination routine. -- Stan From lex at cc.gatech.edu Mon Nov 9 21:52:48 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:49:28 2012 Subject: time zones? Message-ID: <199811092152.QAA23953@cleon.cc.gatech.edu> Does anyone out there know how timezones work, in detail? I'm interested in distinguishing "local time" and "absolute (Greenwich) time" in Squeak Absolute time is simple enough, but the definition of local time seems more elusive. Is everyone's local time always an integral number of hours offset from Greenwich, or can it be more complicated? Also, where do all the names like "EST" come from? Thanks for any input, and lots of thanks for pointers to code :) Lex From DanI at wdi.disney.com Wed Nov 18 19:15:26 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:49:41 2012 Subject: Diff code available? Message-ID: Folks - I find myself wanting a feature in ChangeLists, that will show the "diffs" between the method on file being browsed, and the current method in the system, if there. By "diff" I mean a new text with insertions and deletions cleverly identified and displayed (usually in color, and with insertions underlined and deletions struck out). I would do this myself, but if anyone has such code around, or knows of a goodie that does it, it would save some time. Please respond directly to me, not to the list. Thanks in advance. - Dan From aleReimondo at sugarweb.com Mon Nov 9 10:00:58 1998 From: aleReimondo at sugarweb.com (Alejandro F. Reimondo) Date: Sat Jan 28 04:49:43 2012 Subject: Anyone using alternative input devices with Squeak? Message-ID: <01BE0BAE.B506F660@rdutlp18a7.impsat.net.ar> Does anoyone know any low cost VR globes ? Has anyone experimented with VR programming using gestures? Ale. From mklein at alumni.caltech.edu Sun Nov 15 17:17:53 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:49:45 2012 Subject: XML: Miracle drug or communist plot? (was Re: Porting to VW) In-Reply-To: <364F0569.607AA270@gui.com> Message-ID: [] I took a quick look. Sorry that doesn't qualify. Changes to unstructured web pages does not in my mind qualify as usefull data in XML. Besides, if people were using http properly, they would set the 'expires' field to a future data, and not change the resource untill then, if ever. The web devalues the word 'publish'. If you would like to see data that I beleive should be formated, even in XML: http://www.sdct.itl.nist.gov/~harvill/co-codes/states.txt -- MIke mklein@alumni.caltech.edu From Craig.Latta at NetJam.ORG Tue Nov 10 19:14:52 1998 From: Craig.Latta at NetJam.ORG (Craig Latta) Date: Sat Jan 28 04:50:37 2012 Subject: units In-Reply-To: References: <3647E02A.75A53565@NetJam.ORG> Message-ID: <199811101916.LAA23658@interval.interval.com> > > > 5 kilogram meters per second squared > > Actually, in context, squared associates just with the > immeadiately leftmost unit. Sure, and the thing answered by (5 kilogram meters per second) knows this also. > As for #per, I think you are underestimating the amount of funkiness > required to pull this off given Smalltalk semantics. Not at all. >>per could answer an instance of a new class called "CompositeUnit" or somesuch, which performs dimensional analysis algebra. It could have a "numerator" of (5 kilogram meters), and a "denominator" which is set by the ensuing >>second. I think it's quite doable. > > I think there's a fair way to go before it gets rediculous. :) I like > > it so far. > > I think we've run the only traffic light in the Ridiculous town limits. This is nothing. :) > > Smalltalkers do: [:it | All with: Class, (And love: it)] > > I tried evaluating this in Squeak.... It corrected it to: > > Smalltalk do: [:it | Url with: Class, (AbstractSound leave: it)] > > I particularly liked the way Squeak corrected #love: to #leave: > I wonder if the system is trying to tell me something. heh... 'reminds me of the old Stupid Unix Shell Tricks, where the shell would say amusing things in response to "make love" ("don't know how to make love. Stop."), "gotta light?" ("gotta: no match"), "whois god" ("god does not exist"), etc., etc. > Is there something I should file in first :-? Obviously it's a silly contrived expression. But if you add the corresponding contrived globals and method then it runs, which I find mildly amusing. -C -- Craig Latta composer and computer scientist craig.latta@netjam.org www.netjam.org latta@interval.com Smalltalkers do: [:it | All with: Class, (And love: it)] From raab at isgnw.CS.Uni-Magdeburg.De Sun Nov 29 19:14:08 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:50:53 2012 Subject: 2.3 beta buglets In-Reply-To: from "Tim Rowledge" at Nov 29, 98 11:03:16 am Message-ID: <199811291914.UAA05013@gaugin.cs.uni-magdeburg.de> Tim, > Something odd is going on with the Tracer -- it produces an image somewhat > bigger than 6Mb, which starts up ok and saves back to 4-ish MB. Rather > spoils the 'coffee-break garbage collector' story doncha think? It seems to > be a recent problem, as older images clone same/smaller as appropriate. I > though it might be related to the Display size/depth, but seem to have > ruled that out. Maybe the WeakArrays need more careful cloning? This might be a problem (I actually never used the tracer) but I'd think that the tracer probably doesn't compress any forms which makes quite a bit of image space. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From dwighth at ipa.net Tue Nov 24 16:57:09 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:51:00 2012 Subject: Changeset Problems References: <01be17b9$f2e560e0$0132c8c8@notung> Message-ID: <365AE565.56E56C5F@ipa.net> Were you by any chance running on a Jitter VM when you did this renaming? From the names of your classes I would assume these both have several subclasses each. If you were using a Jitter VM you may have run into the cache bug. -- Dwight > -----Original Message----- > From: Gerardo Richarte > To: Squeak List > Date: Tuesday, November 24, 1998 3:50 AM > Subject: Changeset Problems > > > While building the package for MorphicWrappers, we found a problem > >that we cannot reproduce right now, but I can describe: > > > > We had two classes, ClassWrapper and BitmappedWrapper, we renamed > >them to ClassMorphicWrapper and BitmappedMorphicWrapper, we made fileOut > >of the change set, and when we made fileIn from a fresh image, those > >renamed classes where missing. I'm not sure if it has something to do > >with renaming the classes (I tried to reproduce this behaviour, but I > >culdn't). What I do have is a .ZIP (2.5M) file with a .image and a > >.changes that will have this problem. > > > > Problematic Bye! > > Richie++ From ssadams at us.ibm.com Sun Nov 1 04:51:12 1998 From: ssadams at us.ibm.com (Sam Adams) Date: Sat Jan 28 04:51:07 2012 Subject: FYI: Microsoft Universal VM to Challange Java Message-ID: <5040100024707210000002L002*@MHS> Another possibility is George Bosworth, father of the Digitalk VM, who joined MS last year, if memory serves Sam S. Adams, Distinguished Engineer, IBM Network Computing Software Division tie line 444-0736, outside 919-254-0736, email: ssadams@us.ibm.com <> johnm@wdi.disney.com on 10/30/98 04:22:52 PM Please respond to squeak@cs.uiuc.edu To: wirth@almaden.ibm.com cc: johnm@wdi.disney.com, kend@apple.com, wirth@almaden.ibm.com, squeak@limbo.create.ucsb.edu Subject: Re: FYI: Microsoft Universal VM to Challange Java wirth@almaden.ibm.com wrote: > "... in a little-noticed move, Microsoft acquired Colusa Software Inc. in > 1996. Colusa makes OmniVM, a multiple-language virtual machine." > http://www.zdnet.com/intweek/stories/prtarchivestory/0,4356,367513,00.html Interesting. That could be where Microsoft got their first Java VM. The timing seems just about perfect. -- John From stephan.wessels at sdrc.com Sun Nov 22 23:21:51 1998 From: stephan.wessels at sdrc.com (Stephan B. Wessels) Date: Sat Jan 28 04:51:09 2012 Subject: Hyperbolic Tree Class Browser References: Message-ID: <36589C8F.49F21065@sdrc.com> The first time a saw a VRML demo I remember getting hit with the idea that a class browser you could walk inside of and see the relationships and even edit would be a fun way to explore. I agree that it may not be much more useful but it sure sounds like fun. - Steve Alan Kay wrote: > The original hyperbolic circular groupings were done by the artist Esher -- > at least "the look" is pretty well covered there. And it is not possible to > patent an idea, only specific expressions and mechanisms of ideas. My guess > is that such a Squeak browser would not violate anything. However, I'm not > sure that doing a tree in a circle really adds much to traversing or > understanding a hierarchy ... > > Cheers, > > Alan > > -------- > > At 2:12 AM -0000 11/22/98, Alejandro F. Reimondo wrote: > >I've tried to enter in the Louvre demo, > >it takes 10 minutes to load the Java applet > > and my IExprorer crashed closing all > > the opened browsers windows. > >Are there any demonstration not written in Java ? > >thanks. > >Ale. > > > >---------- > >De: Jerry Bell[SMTP:jdbell@fareselaw.com] > >Enviado: S?bado 21 de Noviembre de 1998 19:22 > >Para: squeak@cs.uiuc.edu > >Asunto: Hyperbolic Tree Class Browser > > > >Has anyone looked at hyperbolic trees? I find them hard to explain, but > >very easy to grasp once you play with them. Try: > > > >http://www.inxight.com/Content/7.html > > > >The Library of Congress demo is especially nice. > > > >I think a hyperbolic tree would make a great UI for a class browser, maybe > >as a replacement for the left-most pane. It would definately help a new > >user like myself get a feel for which classes belong where in the hierarchy. > > > >Unfortunately I don't know if we could put one in Squeak without permission > >from Inxight. I know they hold license to their implementation of > >hyperbolic trees, but I don't know if they somehow own the idea also. I've > >never understood that sort of thing very well. > > > >They are a Xerox company, by the way. It's another neat idea from PARC. > > > >Jerry Bell > >jdbell@fareselaw.com > > > >-----Original Message----- > >From: Stefan Matthias Aust [mailto:sma@kiel.netsurf.de] > >Sent: Saturday, November 21, 1998 12:42 PM > >To: squeak@cs.uiuc.edu > >Subject: Re: C code for Block context > > > > > >>How does the Squeak Smalltalk to C translation handle Smalltalk code that > >>contains Blcok context? It was my impression that it is difficult to > >>program Block context in C. > > > >Actually, it cannot translate real blocks. The translator only translates > >a subset of Smalltalk, just enough to compile the interpreter. It does the > >usual optimization for ifTrue: and whileTrue: blocks, but can't handle full > >block closures. > > > > > >bye > >-- > >Stefan Matthias Aust // Are you ready to discover the twilight zone? From vassili at objectpeople.com Wed Nov 4 19:18:01 1998 From: vassili at objectpeople.com (Vassili Bykov) Date: Sat Jan 28 04:51:19 2012 Subject: Double dispatch In-Reply-To: <199811041535.JAA21202@objectpeople.com> References: Message-ID: <3.0.1.32.19981104141801.0091a100@objectpeople.com> At 09:35 AM 11/4/98 -0600, Lyn A Headley wrote: > >I'm afraid I must speak up here. I believe you are confusing >delegation with double dispatch. The way I understand it is that >double-dispatch is a *language* feature which looks up the method to >call based on the runtime type/class of *two* of its arguments rather >than simply the first as is the case with most OO languages. when I >say argument I really mean the object to which the message is sent, >but multi-dispatch languages usually use generic messages so the >object really *is* an argument to the method. > >confusing, huh? see Common lisp's CLOS for an example. This is just a mix-up with terminology. "Multiple dispatch" is a language feature of looking up a method depending on the types of more than one argument (so, in fact, there are no messages any more, the "driving force" are generic functions, methods (that are parts of GFs), and method combinations). "Double dispatch" is an implementation technique used in languages with single dispatch to implement multiple dispatch for the case of two discriminating arguments. Not confusing at all. -- Vassili Bykov vassili@objectpeople.com The Object People http://www.objectpeople.com +1(613)225-8812 "Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp." -- Greenspun's Tenth Rule of Programming From JArchibald at aol.com Wed Nov 25 23:24:36 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:51:25 2012 Subject: Squeak for embedded systems (remote debugging and image building) Message-ID: At 11/25/98 10:30:56 AM EST, pdfernhout@kurtz-fernhout.com writes: <> I have been working on these approaches, but with substantially limited time availability. The repackaging problem is the one that interests me the most. I have loosely fashioned my own approach with a nice ponderous title "Smaller than Thou talk." -- i.e. Sttt or St3 -- to keep the goal clear in my mind and add a little sense of competitiveness to the challenge. I have gotten a slightly "shrunk" PWS to work, and now starting to build a headless version, using Dan Ingalls's prior work in this direction. It seems somewhat distressing to me that the PWS works by executing Smalltalk expressions from the Squeaki-Wiki pages, as that means that I could not shrink the compiler out and be able to support it in its current fashion. For other apps., even compiler may be shrunken out also. Perhaps we should take attendance of those who are working on these lines, and if there is enough interest set up appropriate communication mechanisms (like a Swiki somewhere). Jerry Archibald System Objectives (BTW, I believe we met at OOPSLA'97--for dinner at Embassy Suites) From wdc at MIT.EDU Mon Nov 9 05:00:34 1998 From: wdc at MIT.EDU (Bill Cattey) Date: Sat Jan 28 04:51:55 2012 Subject: Latest updates In-Reply-To: References: Message-ID: I just did 'update source from server' to take a vanilla 2.2 up to the current rev. I see files apparently representing updates 365 to 391. Is anyone else seeing this freeze-up: Repeat by: start image open/project(construction) put down a playing field drag a polygon into it. bring up the viewer outside the playing field. drag Polygon forward by 5 out to make a script of it. drag Polygon turn by 5 into the script. After the turn-by settles itself into the script, world is hung. -wdc From dwighth at ipa.net Wed Nov 11 21:36:51 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:52:00 2012 Subject: AE/interProcess (was: Examples of API) References: Message-ID: <364A0373.6E96FDF5@ipa.net> The pluggable primitives source comes with a full update from server of Squeak 2.2 (expect it to take a while -- I found closing all the Morphic "Play with me" windows helps prevent Squeak from hanging up during the update process -- at least on Win32 systems). Pluggable primitives require generation of a new VM after update (though I think there is a problem with compiling that VM that right now - Andreas?). Pluggable primitives are actually a Squeak 2.3 feature -- the updates just give you a preview. -- Dwight Richard L. Peskin wrote: > > At 9:02 PM +0200 11/11/98, michal starke wrote: > >couldn't you just add primitives for AppleEvents using the new pluggable > >primitives framework? (ie. AE call wrappers essentially). sounds like > >peanuts wrt the work you already did reimplementing the whole AE framework > >on unix. or am i missing something? > > I didn't find the "pluggable primitives framework" in the browser; can you > point me to them? > The Unix AE is quite complex, and was not free of some "security" problems. > I'll look at the pluggable primitive framework and then be in a better > position to evaluate whether AE is appropriate. > > >[and have AE/interprocessComm would be a big + for many other uses in squeak!] > Yes, but the AE API is not very user (programmer) friendly. It carries a > lot of baggage to support the AE object model. Perhaps what we did > previously can be paired down. > > --dick peskin > > ================================= > R. L. Peskin, Rutgers Univ. ; ; > > VT Phone (802) 824-4558 NJ Phone (732) 445-4208 > "The corporate culture is concerned less with Occam's razor than his > aftershave lotion." From lex at cc.gatech.edu Thu Nov 12 18:55:19 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:52:06 2012 Subject: Examples of API Message-ID: <199811121855.NAA09839@cleon.cc.gatech.edu> "Richard L. Peskin" wrote: > Anyway SCENE depended heavily on a couple of available technologies: > 1. User added primitives. (These can be done in Squeak as far as I can see.) > 2. Enhanced garbage collector for symbolic algebra. (You have helped me > deal with this one.) > 3. Interaction with external (non-Smalltalk) processes. (It is this need > that I am having trouble seeing how to accomplish in Squeak.) > > 3. was critical to SCENE. For example, under SCENE a user could > interactively ask for a mathematical data filter operation and SCENE would > generate the C code for the filter and then invoke the system C compiler to > generate code, and then use this code to filter the data set finally > returning the results back to SCENE for visualization. (While the > equivalent could be done entirely inside Smalltalk, the data sets were too > large for reasonable performance.) To implement this (Unix versions only) > we actually wrote AppleEvents for Unix to handle the event interchange.) > [...] > >From what I can see, the Socket classes are limited to TCP/IP services, > although the comments indicate that "someday" they might be used for IPC. > Will the your API work be useful for our objectives? Do you know of any > other work that I might look at? What would really be nice is if Squeak > offered the same sort of inter-process communication that exists in Tk and > Python. > ....and emacs. I agree, though my interest is different. I think Squeak could make a great OS interface for Unix users, if only there were a way to access external entities in the system. The main facilities needed are: 1. external processes 2. pipes to talk to them In other words, popen() for Smalltalk. Right now, neither external processes or Unix pipes are directly supported in Squeak. It's also unlikely that such platform-specific features will ever end up in the core system. However, it would still be nice to have, as an add-on. Lex From DanI at wdi.disney.com Tue Nov 3 04:24:34 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:52:16 2012 Subject: Toward the next release... Message-ID: Folks - I thought it might be useful to let you all know about plans for the next release. I'm shooting for either just before Thanksgiving (nov 23rd), or possibly the week before, if everything is ready. What will this include? 1. Well, to begin with, all the updates that are out now, and VMs that support the new primitives (pluggable primitives and weak arrays). 2. Also the wavelet transform will be included, and a bunch of work Scott Wallace is doing on Scripting and viewers in morphic. 3. I am talking with Travis Griggs about folding in his numeric coercion improvements. This is like deja vu for me, since I was the one who put double-dispatching into ST-80 before the version 2 release went out from Xerox waaaaay back then. 4. Then there will be a first pass at Squeak Pages - an architecture that began with John Malone's WebBook project, and that has been carried through to a first level of completion by Ted Kaehler. It basically maps a morphic world onto a web page in a manner that lets you build vast amounts of morphic content that can be non-resident so you don't need a huge image, and that can be shared like everything else on the web. Refinements to properly support active objects in those worlds are in porgress. 5. Finally is Andreas Raab's as-yet-to-be-named resolution-independent outline-based anti-aliasing 2-D rendering engine (maybe we'll call it "hyphen" ;-). This is built on primitives with the speed and generality of BitBlt, but with other wonderful properties. This first release will only provide the primitive functionality, but it will enable many experiments. It is my hope that we will be able to slide this in under all the existing warpBlt hacks, and end up with a thing of real beauty. The design is also intended to support nice 3-D... If you have other features that you feel should be included at this time, please send me a message. I will try to assemble a beta release about a week before the target date of issue. - Dan From ohshima at is.titech.ac.jp Fri Nov 13 16:53:47 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:52:20 2012 Subject: How can I get ALL 'tempNames' for ALL methods fast? Message-ID: <19981113165347.25092.qmail@n0ud.is.titech.ac.jp> Hello. I'd like to collect all tempNames for all methods. I found the existing examples in 'SystemDictionary>>abondanSources ' and 'ContextPart >>tempNames' parse the method again to collect the temporary names. I feel they are a bit too much for my purpose. Does anyone have a nice idea? (I have 27387 tempNames if I count every duplication, and 5758 unique (distinctive) ones in my image.) OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology From rlpcon at vermontel.net Sun Nov 15 06:03:20 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:52:25 2012 Subject: Multi-threading the interpreter In-Reply-To: <3.0.3.32.19981114154347.032e8d20@mailhost.pmatrix.com> References: Message-ID: At 3:43 PM -0800 11/14/98, Jan Bottorff wrote: >Something that would be MUCH easier, would be to arrange for calling >external code in a different thread. For example, you would have a pool of >threads that were used to run slow OS calls. This would give mostly the >same advantages as a true multithreaded VM, for single processor machines. >It would also bypass many of the problems.................. This is a very good idea and would accomplish much of what is needed, that is, avoiding VM blocking during "long" external calls. >A big question is: do >most people want multi-thread support so they can run Smalltalk compute >intensive apps on multiple processors? Or do they just want to be able to >make external calls without all Smalltalk processes blocking? My gut feeling is that the latter is more important. In the past, there was a lot of attention paid to trying to improve Smalltalk VM performance, per se. SmalltalkAgents actually made some real progress. BUT, for many applications (for example, scientific simulations) improved VM performance was not the real problem. When a lot of computational data is involved, generation and tracking of many objects is required, and this results in major overall performance hits regardless of the VM performance. (We saw this with Smalltalk manipulation of thousands of mesh points in 3-D visualization.) For scientific apps the best way to use Smalltalk is for the "intelligent interface" functions, and leave the numerically intensive work to externals. Elimination of the Smalltalk process blocking is essential if, for example, one wanted to do a computation in an external process and simultaneously do some Smalltalk work on partial data returns from the external process. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From raab at isgnw.CS.Uni-Magdeburg.De Tue Nov 3 13:00:40 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:52:26 2012 Subject: some not-so-random questions In-Reply-To: <199811030405.XAA27491@cleon.cc.gatech.edu> from "lex@cc.gatech.edu" at Nov 2, 98 11:05:37 pm Message-ID: <199811031300.OAA18842@monet.cs.uni-magdeburg.de> > Yeah, but doesn't Squeak cycle through all its free memory over and > over as it runs? So if you allocate 40 megs, and 10 megs of that is > old, then all 30 megs of the "free" space will be cycled through > periodically. If you only have 32 megs of RAM on your machine, then > that 30 megs of free won't fit and it should be paged out and in over > and over and over again. It's not just the least-common memory pages > that will be paged out, because all the pages are being used. Yeah - that's the problem. And the reason why there is such thing as "-memory:" switch after all. > But it's fixable! Squeak just needs to garbage collect more often when > there is a lot of free space, so that it doesn't need to get near the > top of its memory allocation. Then, the top of Squeak's memory can > usufelly page out and stay out. It's not just *that* easy. For one thing, you need to have a way of finding out when the host's memory facilities run out of space (e.g., when physical+swap space get below a certain threshold). BTW, there is already such a mechanism in the Win32 VM. The other tricky thing is that you have to make sure that a GC does not run out of space (e.g., when remapping pointers). Finally, you have to know what parts of Squeak memory are no longer used so that they can be physically free'd after a GC took place. > It would be nice, and I think it would work, but I don't know enough > about how the memory management works to actually implement it.... I've been thinking about this for a while and the biggest problem really is to make sure GC does not run out of space. The remaining stuff is relatively easy to do. But one may also keep in mind that unlimiting the memory range can lead to *huge* GCs after all so it might be interesting to add an intermediate space between old and young. In fact, I do like the Permspace from VW pretty much - it's very likely for a lot of objects in the base image never to be touched by GC and you can make your life a lot easier when you move all objects to permspace at the right time. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From mklein at alumni.caltech.edu Tue Nov 3 20:03:41 1998 From: mklein at alumni.caltech.edu (Michael S. Klein) Date: Sat Jan 28 04:52:29 2012 Subject: some not-so-random questions In-Reply-To: Message-ID: > The real problem with both expansion and shrinking is the policy decision of > when to do it. VW has quite a complicated policy implemented in the image, with > hooks to change it almost any way you want. IIRC almost no customer ever > changed anything, they just complained that the default wasn't good enough for > them! VW (base code) never shrinks ObjectMemory... It just provides a facility for you to do it. And I have often used it. Sometimes I would need to do a task that used mucho memory... didn't want to have to image save and restart just to release it back to the OS. Very handy. The main problem I had with the default MemoryPolicy was the default memoryUpperBound was set to 16M. Pretty low for todays machines. This caused a premature preference for reclaimation over growth... and the easiest way to speed up your app (for large apps). Perhaps the value should have been based on (Date today) and Moore's law ;-) -- Mike From sqrmax at cvtci.com.ar Tue Nov 3 01:54:02 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:52:38 2012 Subject: Method names Message-ID: <006a701540103b8MAIL2@cvtci.com.ar> Hi. >> >or not "aBitStream next: 40 bits" meant ((aBitStream next: 40) bits). >First, it already says aBitStream, so the second pseudo-selector-noop-bits >is just stuttering reminicent of programming in java. I.E. > > BitStream bitStream = BitStream.newBits(...) Unfortunately, bitStreams also know how to read themselves by bytes and by bitChunks... the problem I get is that I have the pair #next and #next: for bits, #nextByte and #nextBytes: for bytes, and #nextChunk: amountOfBitsInTheResultingChunk for bitChunks. The issue with the units is that it wouldn't be desirable in such low level stuff. Andres. From kend at apple.com Fri Nov 13 00:26:27 1998 From: kend at apple.com (Ken Dickey) Date: Sat Jan 28 04:52:40 2012 Subject: units Message-ID: <199811130026.QAA37530@scv2.apple.com> >>> OK, so when one of these funky non-mathematical o >Ken Dickey writes (with salt): >> Numerical operations such should only operate on the numeric part of the >> object. > >Do you mean that the units operations and numerical operations should >be in separate methods, or that these objects shouldn't be numbers, or >what? I think the message #* is telling a dimensional object both to >change its numerical value, and to change its units. How would it "only >operate on the numeric part of the object"? Ah, I was unclear. What I should have said is that I would prefer that scalar numbers are treated as dimensionless. I was presuming that a dimensional object consists of a triple i.e. <2, meters per second second, length per time time>. E.g. if I want to double a recipe, I want 2 * (<2 cups> of flour) -> <4 cups> of flour I don't want "cups squared" or some other nonsense. Hope the above came across better. Cheers, -KenD From stan at stanheckman.com Mon Nov 9 08:53:53 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:52:46 2012 Subject: Units package (was Method names) In-Reply-To: Alan Kay's message of "Mon, 2 Nov 1998 11:34:56 -0800" References: Message-ID: <87g1btl00u.fsf@streamer.msfc.nasa.gov> I have been playing with a toy units package for squeak. It doesn't do very much yet, just keeps units during arithmetic and tries to simplify them when appropriate. I considered two methods of entering units; a bunch of methods named "meter", "inch", and so on defined for Numbers and PhysicalQuantities, or a collection of global symbols. I see two advantages for the named methods: polluting the method space of Numbers is less offensive than polluting the global namespace, and methods allow great freedom in defining the syntax. Five meters can be entered as '5 meters', and 5 kilogram meters per second squared could be entered as the string of messages '5 kilogram meters per second squared'. I see one advantage of the collection of global symbols; their algebra is exactly the same as all other algebra in Smalltalk, so there's nothing new to learn about how to specify units of kilogram meters per second squared, it must be '5 * Kilogram * Meter / Second squared'. I think I prefer the second choice, staying with standard Smalltalk syntax, but I'm interested in reading arguments for the first. Or maybe someone sees a better, third way? Because I used the second method, I have the problem of deciding where all these symbols should go. In the example below I put them in the global namespace, but I think in the end that's not where they should live. Ideas? For that matter, what's the recommended way to code with such a group of symbols? Should I just write them to the global namespace and clean up when I'm done, or should I be using a pool, or what? There's also the issue of how we should print the units out. I've spelled them out in what I hope is a human readable form, but I know from experience that many users prefer abbreviations, so they can see all the units at a glance, and so the units don't take up so much space. Typeset units, with small abbreviations above and below a solidus would be very satisfying; maybe someday, with Math Morphs... I don't know how to do automatic unit simplification without some linear algebra. For this purpose I hacked up Kurt Hebel's (hebel@uinova.cerl.uiuc.edu) arithmetic package, from the Smalltalk archive at ftp://st.cs.uiuc.edu/pub/Smalltalk/st80_r4/arithmetic.st. I'm afraid I made Kurt's code unbearably ugly; it doesn't look at all like Smalltalk anymore. I'm sure someone out there could write beautiful Gaussian elimination code if they had a good package for handling vectors and matrices. Travis, do you still think matrices are relatively uninteresting? Here's a sample session cut and pasted from a workspace, illustrating the toy units package. I've added some comments in double quotes. -------%<--------%<-------------------------------------- "Load the symbols #Meter, #Kilogram, #Calorie, and the like. " BasisUnit basisUnitsPoolHack BasisUnit loadBasisUnitsIntoSmalltalk "This package simplifies units. Let's start with a couple examples that students sometimes have a hard time simplifying." pi := Float pi. vacuumPermeability := 4 * pi / 1.0e7 * Henry / Meter. vacuumPermittivity := 8.85419e-12 * Farad / Meter. vacuumImpedance := (vacuumPermeability / vacuumPermittivity) sqrt. speedOfLight := 1 / (vacuumPermeability * vacuumPermittivity) sqrt. "Note the input syntax is standard Smalltalk algebra. Below are the printIt's, showing the output syntax, and showing the automatic unit simplification." vacuumPermeability 1.256637061435917e-6 henrys per meter vacuumPermittivity 8.85419e-12 farads per meter vacuumImpedance 376.730267033548 ohms speedOfLight 2.997924210535944e8 meters per second "The package decided that we would rather see vacuumImpedance with units of ohms than with units of sqrt(Henry/Farad), and that we would rather see speedOfLight with units of meter per second than with units of (Meter/sqrt(Henry Farad))." "Now let's do a more real problem, using squeak as a calculator. We'll solve for the rate at which the sun consumes mass to make light." "We happen to know (or, if in school, the problem probably tells us) that in the absence of any atmospheric losses, a flat black panel held facing the sun receives 1370 watts per square meter." solarConstant := 1370 * Watt / Meter squared. 1370.0 watts per meter squared "This energy is spread uniformly over a sphere of radius equal to the distance from the earth to the sun. We could look up the distance from the earth to the sun in the back of the book, but since this is a units package, defining all sorts of obscure units, the simplest way to express the distance to the sun is to use astronomical units. :-)" earthSunDistance := 1 * AstronomicalUnit. 1.000000000000002 astronomical units "The rounding errors above made that printout ugly. :-( Well, onward. The surface area of a sphere is 4 pi r squared, so" surfaceAreaOfEarthRadiusSphere := 4 * pi * earthSunDistance squared. 12.56637061435921 astronomical units squared "Note that here the units package leaves our units alone, because it can't make them any simpler. " "The total power output of the sun is this surface area times the energy per unit area we considered at the start of the problem." solarPowerOutput := solarConstant * surfaceAreaOfEarthRadiusSphere. 3.85187053882097e26 watts "We computed the speed of light at the top of this page, so using E = m c squared, the rate at which mass is consumed to make light is:" solarPowerBillInKilograms := solarPowerOutput / speedOfLight squared 4.28578502729018e9 kilograms per second "The package guessed exactly what units we wanted to see that in. (We were lucky; that was a hard job for the heuristics, because we hadn't explicitly specified kilograms anywhere in the problem.)" " Now let's pick up all our symbols and put them back in the toy box. :-)" BasisUnit unloadBasisUnitsFromSmalltalk -------%<--------%<-------------------------------------- If anyone wants it, the code is available at http://www.stanheckman.com/a/98h/glimpsedotter/Numeric-Units.st In addition to the file-in above, you will need to add the following two methods to Number: adaptPhysicalQuantity: aPhysicalQuantity "If I am involved in arithmetic with an Integer, I must know whether to convert it." ^ aPhysicalQuantity adaptToPhysicalQuantity "If I am involved in arithmetic with a PhysicalQuantity, I must always be converted." ^ PhysicalQuantity fromNumber: self I haven't checked yet, but I suspect Dan's coercion fixes will break this code. Just as well, the coercion of LnPhysicalUnits was ugly, and needed a redesign. :-) -- Stan From sames at interaccess.com Sun Nov 29 19:22:20 1998 From: sames at interaccess.com (Samuel S. Shuster) Date: Sat Jan 28 04:52:46 2012 Subject: Squeak in Dr Dobbs In-Reply-To: References: Message-ID: <36629954.71441857@smtp.interaccess.com> Dear Friends, This past week I got my January issue of Dr. Dobbs (yes, one of the few hard core mags still around that doesn't have it's head up some language's behind), and, as usual, I sat down to read Michael Swaine's column, and what do you know... he talks about Squeak! About 1/2 the column! The article seemed to have a fair idea about Squeak, although he seemed to have no idea about the current state of Smalltalk. I was a bit surprised to get the impression that he didn't really know Smalltalk too much, but I guess no one can know everything. As to the current state of Smalltalk, he talks about how Squeak will be hard to make any inroads against C++ or Java. As if Squeak was somehow synonymous with Smalltalk... I'd go as far as to say the tone of the article was that Smalltalk has somehow become Squeak. I find that very unfortunate. As we all know, Squeak is to Smalltalk what Linux is to Unix, and no more has all of Unix become Linux than all of Smalltalk become Squeak. Which is not to say I have a problem with either Squeak or Linux. It's just that, oh, I don't know, It's just that I find it unfortunate that Squeak has, in this one case, as narrow as it may be, somehow occluded the demonstrable advances and successes of Smalltalk over the decades. And So It Goes Sames ============================================================================ Samuel S. Shuster Continuum Methods & Frameworks, Inc. Go Smalltalk! From dwighth at ipa.net Wed Nov 4 20:20:31 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:52:48 2012 Subject: List service... References: <199811032202.RAA16988@cleon.cc.gatech.edu> Message-ID: <3640B70F.9AF09227@ipa.net> I think adding a "squeak-help" list would be a very good thing, but this is the only one I would want added for now. The highly integrated design of Squeak means that changes in one part often effect others -- everyone that is doing anything deep in the system needs to be aware of what others are doing. Might I also suggest that the squeak-help list use a [sqh] subject prefix so those subscribed to both squeak and squeak-help can sort them out more easily (the Pluggable Web Server list uses [pws]). -- Dwight Ryan Davis wrote: > > >I have the feeling this list is not ment for peple like me. > > > >Do anyone know of or maybe run a list that still cover Squeak but is less > >technical than this list? > > I agree that having multiple levels of lists, with varying levels/purposes, > can be very beneficial. Especially if those lists have a very defined > purpose/goal. I can envision one as a plain q&a (w/ faq), one as an > advanced list (this one), one for exploring the new things in squeak that > aren't present in squeak's kin (e.g. morphic), and possibly others.... > > Ryan Davis -=- Zen Spider Software > -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- > I know that you believe you understand what you think I said but, > I'm not sure you realize that what you heard is not what I meant. From whisper at accessone.com Sun Nov 15 01:37:56 1998 From: whisper at accessone.com (David LeBlanc) Date: Sat Jan 28 04:52:53 2012 Subject: Question about update from server. Message-ID: <3.0.1.32.19981114173756.00942cd0@accessone.com> Hi; I tried the update from server functionality, and it seems to have worked. I'm wondering if all the .cs and .st files left in the Squeak dir are needed after saving the image? I would also like to suggest a more active progress indicator then the occassional "reading stream" with progress bar indications. Some little progress dialog telling what the updater is in the progress of doing and what files it's downloading would be nice. I've been away from Smalltalk for a few years and have forgotten too much of the class hierarchy to know where to work on that or i'd dig in. Sincerely, Dave LeBlanc From tgriggs at keyww.com Fri Nov 13 16:25:59 1998 From: tgriggs at keyww.com (Travis Griggs) Date: Sat Jan 28 04:52:57 2012 Subject: What class should include "5 kilograms"? References: lex@cc.gatech.edu's message of "Tue, 10 Nov 1998 18:05:56 -0500 (EST)" <364B7223.311B6095@aitecon.sk> Message-ID: <364C5D97.E2A7E8BA@keyww.com> Augustin Mrazik wrote: > > > With adding Units to Magnitude, I think it would be reasonable to > include ArithmeticObjects (abstract) as subclass of Magnitude and to put > Number and Units as its subclasses. This would really express the > situation: magnitudes on which also arithmetic operations are defined. > And Numbers would be special Units without dimension (or without 'unit'? > ;-). > > So long we have had only Numbers (from all possible arithmetic objects), > we did not really need this class and Number had been immediate subclass > of Magnitude. Yes, and that would give a nice place to put Point as well, instead of having to reimplement tons of Numeric protocol their as well. -- Travis Griggs Key Technology tgriggs@keyww.com Member, Fraven Skreiggs Software Collective - C for Sinking - Java for Drinking - Smalltalk for Thinking From markus_kohler at bbn.hp.com Tue Nov 17 08:57:21 1998 From: markus_kohler at bbn.hp.com (Markus Kohler) Date: Sat Jan 28 04:53:06 2012 Subject: Multi-threading the interpreter References: <19981116151457.23273.qmail@relay1.teleport.com> <365050CF.B9D8BC5C@sdrc.com> Message-ID: <36513A71.2804A648@bbn.hp.com> Patrick Logan wrote: > > Gemstone's RC classes might be a good thing to study in this > regard... > > The RC (Reduced Conflict) collections in Gemstone Smalltalk are *not* > thread safe. They assume a consistent view within a Smalltalk image, > and the Gemstone "image" is not multi-threaded (well, it's not > asynchronously pre-emptive). What is an RC class? Each specific RC > class defines special conditions under which concurrent transactions > to the persistent storage will succeed even though there may be > lower-level "write/write" conflicts. For example, concurrent > transactions adding objects to the same Bag each "write" the Bag, but > should succeed WRT Bag semantics. > > Also java has a bit to offer as well. (and by extension, > Gemstone/J would be worth looking at)... > > Well, Java has the "synchronized" keyword for monitoring access to > shared data. Applications sometimes use other mechanisms such as > mutexes because of the limitations of monitors. I guess the synchronized keyword could be emulated quite easily in Smalltalk using blocks. As far as I can remember there exists some free "synchornize" package for smalltalk. > > Also, isn't the whole single-threaded vs multi-threaded issue > parallel to java's green vs native threads? > > Part of the issue is thread-safe methods. A method that is not aware > of other threads may stomp all over the same data as the other thread. > So we should support multithreaded programming better. I think we can do better, "even" better then Java ... Markus -- Markus Kohler mailto:markus_kohler@hp.com From gera at core-sdi.com Sat Nov 7 17:46:28 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:53:07 2012 Subject: Morphic>>step References: <364232BC.642096C1@core-sdi.com> <36433B9C.9AF7FD58@netvision.net.il> Message-ID: <36448774.F6296F02@core-sdi.com> Thanks Daniel and Bob, I'll try them both... I'm not sure if something like Daniel's solution must be implemented, but it will not consume too much time, and it's something that will kill one of the errors that makes me get out of Squeak (what I will not be able to do if there is nothing but Squeak...) I vote for this change (or something similar) to be introduced in squeak's standard distribution... Standard Bye! Richie++ From sqrmax at cvtci.com.ar Mon Nov 30 07:54:14 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:53:08 2012 Subject: Image size / PS: alpha-blend Message-ID: <0c3b20954071eb8MAIL2@cvtci.com.ar> Hi. >>Where should I take a look to see what's going on? >Try this... > > Paragraph allInstancesDo: > [:p | (p destinationForm class == DisplayScreen > and: [p destinationForm ~~ Display]) > ifTrue: [p destinationForm: nil]] I first made a select: of this and it came up empty. Ouch... not there. >P.S. Have you looked at the alpha-blend drawing demos in Squeak? They actually provide a sliding 32-bit buffer with alpha blending and anti-aliasing for sketching. The screen depth can even be 8 bits and they work. Ouch again... I had looked at the alpha blending demo, but I didn't know why was it working and my stuff wasn't. So I changed the bitDepth to 32 and the plotters worked fine, so I assumed it was my fault anyway but later got so excited by the function plotters that I forgot the whole thing... The plotting engine writes to aFormCanvas, which later is asked for its form to copy it to the morph world's canvas in drawOn:. But it wouldn't display translucent colors... >Also, note that Squeak 2.2 introduced a new bitBlt mode supporting copyBits of any source form at a given alpha value into EITHER 16 or 32 bits, so you can do some alpha blend experiments now without having to go to 32 bits. [more] Hmmm... interesting... I was thinking about layerizing the function plotter so every function plot will have a different layer and all of them will be rendered into a single form for FunctionPlotterMorph>>drawOn:, and this will come in handy. I have another problem with the plotters. The form copying stuff is very slow, imagine a 640@480 form being copied over and over... no way. So I wanted to make plotting directly over the morph world canvas (and then keeping the form corresponding to the plotter's bounds in such canvas to allow fast dragging). It works and it looks great with alpha blending! But if the plotter's morph is not included in the world's box... say for instance if the world has a canvas from 0@0 to 640@480, the plotter has a bound size of 640@480 but its position in the world is 100@100 and the right lower part falls outside, then it won't draw correctly in the visible portion of the morph. It will draw correctly say in the first 320@200 of the morph's bounds, the other parts will remain the same and when I later ask the world's canvas for a copy of the morph's bounds, I also get stuff outside the world's window... I would like it to work properly, but I still haven't figured out how. It's pretty rude on Morphic but the results are very nice. Big thanks! Andres. From russell.allen at firebirdmedia.com Thu Nov 5 00:11:43 1998 From: russell.allen at firebirdmedia.com (russell.allen@firebirdmedia.com) Date: Sat Jan 28 04:53:08 2012 Subject: PROPOSAL: create the squeak-help list Message-ID: <199811050011.QAA28222@jasper.he.net> Hi Would there be some way of moving answers to questions on this new list over to the Squeak Swiki so that people are not forced to trawl through thousands of old emails to find that answer they are seeking? (Either something automated or a rule such as "The person who asks the question updates the Swiki"?). That sort of rule could make the swiki into a self-updating FAQ... Russell P.S. As as aside, 1 and 2 cent coins are still legal tender in Australia (although not used), so $0.02 must be worth *something* ;-) ---------------------------------- Dwight Hughes wrote: > I would like to semiformally propose that we create the squeak-help > list. > > This list would be for how-to questions about Squeak and its environment > ("how do I turn the sound off?", "how do I get a list of all the > classes?", "how do I store something in a file?",...); for learning how > to start programming in Squeak/Smalltalk; for "why doesn't this code > work?" questions; and the like. > > A few reasons for a squeak-help list: > > (1) The advanced topics often discussed in the Squeak list can be a > rather overwhelming to those just learning Smalltalk/Squeak. > > (2) Those who know Smalltalk but are new to Squeak may be embarrassed to > ask simple "stupid" questions that they need answers to. > > (3) The shear volume of email to the list can bury simple questions for > help, which may never get answered. > > (4) Newbies may just not feel comfortable discussing simple basic > problems when everyone else on the list is splitting quarks. > > (5) With the upcoming version 2.3, I expect the level of discussion to > get even more advanced (and that the email volume will increase): > pluggable primitives, weak arrays and finalization, 2-D > device-independent anti-aliasing vector graphics, .... > > (6) The number of newbies coming to Squeak through things like the > Pluggable Web Server and through Squeak becoming more and more widely > known on the net seems to be increasing -- it would be good for them to > have a forum that more directly addresses their needs. > > If you would like to see such a list created, DO NOT REPLY TO THE SQUEAK > LIST - email ME directly at mailto:dwighth@ipa.net and I will tally the > responses and send the results back to the list. I will not be the one > setting up this list: I do not have any webserver resources available to > me -- this will probably fall to John Brant, should he be willing. > However, I might be persuaded to compile a Squeak FAQ as my > contribution. > > -- Dwight From raab at isgnw.CS.Uni-Magdeburg.De Wed Nov 4 15:54:45 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:53:11 2012 Subject: Regenerating the VM In-Reply-To: <13888.17861.506499.987976@tif.inria.fr> from "Ian Piumarta" at Nov 4, 98 01:17:09 pm Message-ID: <199811041554.QAA23711@monet.cs.uni-magdeburg.de> Ian, > > #define ioLowResMSecs() ioMSecs() > > It should already be like in the 2.2 sq.h! Not unless you've changed it manually. The sq.h file simply says #define ioLowResMSecs() clock() and this definition comes *after* including the platform specific stuff so there is no chance of overiding it afterwards. > Maybe there's an erroneous > #define USE_CLOCK_MSECS in sqConfig.h someplace? Which platform were > you running on when you saw delays taking 1000 times too long??? Interesting question ;-) Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From DanI at wdi.disney.com Sun Nov 15 17:28:45 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:53:22 2012 Subject: HELP with font sizes on browsers etc. In-Reply-To: <199811150339.VAA05656@mail11.jump.net> Message-ID: >>>If someone could please point me to where to adjust the font size values, >>>i'd be very grateful. >By the way, a very handy trick when you are looking for something like >this is to type some plausible keyword into a workspace (e.g. >"fontsize"), select it, and perform "Selectors containing it" (in the >shifted Yellow button menu), (cmd-shift-W). Up will pop a list of all >selectors in the system that contain the phrase you typed. In this case, >the TextStyle class method above was the third one on the list. -------------------------- Or, open a (ta-da) selector finder (in 'open...' menu, new with 2.2), type "fontsize" into the top-left pane, and cmd-s to accept. The pane below will automatically fill with all the "selectors containing it". If you click on one, then the pane to the right will show all implementors of that message. Finally, if you click on one of those, it will open a full browser pre-selected to that method. It's only marginally better if you have to open one of these each time, but if you keep one around (collapsed), it really makes this kind of search significantly easier. Credit goes to Scott Wallace who said such a feature would be a real convenience, and Ted Kaehler who built it on the next weekend. - Dan From staypufd at gte.net Thu Nov 19 03:40:36 1998 From: staypufd at gte.net (GTE/staypufd) Date: Sat Jan 28 04:53:24 2012 Subject: Interfaces ala Java for Squeak Message-ID: <199811190340.VAA11683@smtp2.mailsrvcs.net> Hello all, I was wondering if anyone would like to see Squeak extended with something kind of like "Interfaces" in Java. I was thinking that this would be a nice way of documenting and inforcing at class acceptance time that a particular interface was fully implemented in terms of the methods being defined or inherited by a class. The idea is to extend the class definition right after the poolDictionary: section with something like supportedInterfaces: and when you did an accept, the methods defined on that interface would be auto-inserted with some 'self halt' code in the bodies of each one and maybe a call to super if the super classes supported the same interface. What do you all think? Sam Griffith Jr. staypufed@aol.com From jb at speed.net Sun Nov 22 07:05:27 1998 From: jb at speed.net (Jim Benson) Date: Sat Jan 28 04:53:30 2012 Subject: Hyperbolic Tree Class Browser Message-ID: <001801be15e6$7c92a800$330c8218@pavilion.we.mediaone.net> Jerry, >Has anyone looked at hyperbolic trees? I find them hard to explain, but >very easy to grasp once you play with them. I looked over that pretty thoroughly. There is an article explaining the underlying principle in SIGCHI '95 called 'A Focus+Context Technique Based on Hyperbolic Geometry for Visualizing Large Hierarchies' by Lamping,Rao and Pirolli pp. 401. There are some interesting applications, one example is a web site navigation tool. Basically the hyperbolic tree is built from all of the navigable nodes at a web site, and then the user can navigate the web site based on this tree, rather than following hyperlinks embedded in each page. This is an innovative solution to the problem of traversing large hierarchies using limited screen space. Inxight basically wants US $10,000 for a development version if you want to develop with it for a product. Oh, and they have nice 4 color brochures too !!! Personally, I think it looks pretty cool, but I have not figured out how useful it is. The applications that I have seen so far provide a different way to look at a namespace, but I do not think it provides any extra useful information. For example, in the Louvre demo you could see how all of the nodes of the tree were related, but those relations did not give you any more insight into what each node of the tree contains. The node contents tend to be what I am interested in, not the structure of the tree, and it is not quite clear how I search thru one of these trees. I think perspective walls and document lenses are more useful for looking thru large amounts of data in this context. jb From dufrp at oricom.ca Fri Nov 13 08:10:41 1998 From: dufrp at oricom.ca (dufrp@oricom.ca) Date: Sat Jan 28 04:53:33 2012 Subject: Agora, the marriage of classes and prototypes Message-ID: <0F2C00GVTPDRMD@sims-ha.videotron.net> I am discovering Agora. Agora94 was implemented in Smalltalk (VisualWorks). Agora96 in C++. Agora98 in Java, so Agorette can run in your Java 1.1 browser. MiniMix is a toy Agora written in scheme to show how they handle inheritance. Agora is a message-based, prototype-based language with late-bindings. Agora96 have Win95 and Mac implementations. Agora is reflective (they claim to have a very simple MOP (Meta-Object protocol). Believe it or not I have no way to try it for now because I am in the process of going Linux, but I'd like to hear comments. From raab at isgnw.CS.Uni-Magdeburg.De Mon Nov 2 10:47:19 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:53:34 2012 Subject: Method names In-Reply-To: <199811020537.NAA26907@parma.cs.uwa.oz.au> from "Matthew McDonald" at Nov 2, 98 01:37:47 pm Message-ID: <199811021047.LAA14218@monet.cs.uni-magdeburg.de> Hi, > > aBitStream next: 40 bits > > I thought the trailing no-op in the message selector was a nice idea. [...] > Also, the trailing no-op in the method-selector allows you to have a > similar method you invoke like this: > > aBitStream next: 40 bytes. In this case, it's NOT a nop - it's part of the method's selector and that is an entirely different issue. I agree that for readability it may be nice to have a selector like "next:bits" instead of "nextBits:" but if you really treat the "bits" as no information I don't see any added value - it only makes parsing AND understanding the code harder (because you have to know if "bits" is a selector or just a comment). Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From eau at astsun.fujitsu.com.au Tue Nov 10 20:48:08 1998 From: eau at astsun.fujitsu.com.au (Eric Ulevik) Date: Sat Jan 28 04:53:44 2012 Subject: time zones? Message-ID: <0dee01be0ceb$6d4fb260$eed2ac89@eau-nts-2> From: Michael S. Klein >> > Does anyone out there know how timezones work, in detail? >> > >> > more elusive. Is everyone's local time always an integral number of hours >> > offset from Greenwich, or can it be more complicated? > > [various responces indicating 1/2 hour & 1/4 hour offsets] > >Worse still... There are zones whose legal definition of time was solar, >although, I beleive there are no such current zones. To do timezones >right, you need to handle historical changes. Saudi Arabia still uses solar time, I believe. But like leap seconds, this is too fiddly to worry about. The easy thing is just to use GMT and h:m:s offsets dependent upon location and date. There are also "future historical" changes - expected changes in time zone definitions. From Ian.Piumarta at inria.fr Wed Nov 4 12:17:09 1998 From: Ian.Piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 04:53:45 2012 Subject: Regenerating the VM In-Reply-To: <199811040618.BAA24782@cleon.cc.gatech.edu> References: <199811040618.BAA24782@cleon.cc.gatech.edu> Message-ID: <13888.17861.506499.987976@tif.inria.fr> > The quick fix is simple: in sq.h, redefine ioLowResMSecs to just be ioMSecs: > > #define ioLowResMSecs() ioMSecs() It should already be like in the 2.2 sq.h! Maybe there's an erroneous #define USE_CLOCK_MSECS in sqConfig.h someplace? Which platform were you running on when you saw delays taking 1000 times too long??? Ian From rapp at lmr.com Wed Nov 4 21:56:48 1998 From: rapp at lmr.com (L. M. Rappaport) Date: Sat Jan 28 04:53:57 2012 Subject: Double dispatch In-Reply-To: <36407451.3DAA08ED@appliedReasoning.com> References: <199811041400.IAA03780@dillinger.io.com> <36407451.3DAA08ED@appliedReasoning.com> Message-ID: <3646cc77.30170286@rusty.kronos.com> On Wed, 04 Nov 1998 10:35:45 -0500, you wrote (with possible editing): >Jim, > In short double dispatching is a "typed" message send. Probably the >classic example is implementing arithmetic. (Squeak doesn't use DD at the >moment although several folks have changed it to) Let's take Integer>>#+ as >an example. The #+ method accepts one argument. How would we code the #+ >method so it works nicely with magnitudes we haven't conceived of? Of course >one approach would be to place a switch-like statement in the method, but >there are maintenance problems with that solution. The double-dispatch way >advocates turning around and sending a message to the argument. However the >message you send to the argument is what I called a "typed" message; meaning >it conveys something about the receiver. For example: >#+ aNumber > aNumber addToInteger: self. > >The "typed" message send obviously comes in to play with the "..ToInteger" >part. The advantage of this is that new classes of objects can be created >that can be dropped into the current system without too much work. You would >have to implement all of the typed message sends in your new class that >describe how the new class adds, subtracts, etc. to integers, floats, >complexes, etc. > >HTH, >chris Chris, That's great explanation - certainly straightened me out! I'd just add for Jim's benefit that the reasoning here is that using double dispatch this way elegantly handles the scenario of "I don't know what type _YOU_ are but I know what type _I_ am so YOU do this using the method addToInteger with _ME_ as the argument. The upside is that it's fast. The downside is that you have to implement the method in all possible receivers. Thanks, Larry -- rapp@lmr.com From gera at core-sdi.com Fri Nov 13 19:19:30 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:54:00 2012 Subject: [sqvm] squeak vm startup (interpreter?) References: <36487D57.5001C29D@netgenics.com> Message-ID: <364C8641.9BC051B2@core-sdi.com> Jason asked: > I am trying to poke about in the VM; specifically, I'm trying to learn how the > interpreter loads in image and starts running. Any pointers (or high-level > roadmaps) would be appreciated. Thanks! from main() in sq*Display.c go to readImageFromFile() function in interp.c (there should be a brother of it inside squeak, but I've been lloking in c code) C Bye! Richie++ From chris at cnd.co.nz Fri Nov 27 22:32:38 1998 From: chris at cnd.co.nz (Chris Double) Date: Sat Jan 28 04:54:00 2012 Subject: Squeak 2.3 beta available Message-ID: <001601be1a55$d8f17e00$21f131ca@double> > >For those of us who have just learned of Flash, where's a good place to >grab .SWF files? Pop along to an ftp search engine (like http://ftpsearch.lycos.com/) and search for '.swf'. Download one of the many swf files that appear. To play them I used the file list browser and clicked on the .swf file, choosing 'open as flash' from the menu. Chris. From pdfernhout at kurtz-fernhout.com Wed Nov 25 14:00:42 1998 From: pdfernhout at kurtz-fernhout.com (Paul Fernhout) Date: Sat Jan 28 04:54:01 2012 Subject: Squeak licensing questions Message-ID: <365C0D8A.BF17EF76@kurtz-fernhout.com> Dear Squeakers, I have a few questions about the Squeak license and was wondering if people on the list could help me out in getting them answered. Definitive answers from authoritative source are especially welcome, however general kibitzing would be of interest to me as well, especially in terms of pointing out questions I haven't thought to ask. 1. Are all the releases of Squeak (including the ones by Disney, with a Disney copyright) under the same license? 2. Are all the add-ons included in the Squeak distribution (like the pluggable web server) under the same license? If not, which ones are under a different license and what are the licensing terms? Is there any formal process by which permission is given for various contributions to be under the terms of the Squeak license? (For instance, I think the FSF has contributors to certain projects like GCC sign something and snail-mail it in.) If not, could use of included software or patches later be claimed successfully not to be really covered by the Squeak license? Is there anything special about Squeak and Smalltalk that make the issue of accepting user contributions different then say for the open source Python project (which is used by several companies and NASA)? 3. Are the various VMs and supporting code and documentation (Windows, UNIX, LINUX, Acorn, etc.) entirely under the Squeak license? If not, how much of them is, and what are the terms for the rest of the package? 4. Is there any other software available to work with Squeak and commonly used and expected to be used with it (not part of the Disney distribution) which is under the same Squeak licensing terms? Are there any such products under significantly different terms (GPL, PD, BSD, non-commercial use only, shareware, ad-hoc, etc.)? 5. Can one maintain a clean distinction between changes to the VM and code the VM calls? If so, how? For example, if you link in a 3D graphics package written in C, with a few primitives to call it, would that be considered part of the VM and then subject to free redistribution of source and binary? Or would just the VM code changes but not the called code (in effect, just part of the 3D API adapted to Squeak) have to be given away? Would the supporting Smalltalk code to use the VM changes also have to be distributed? Does it matter if the code linked in to the VM is your own code or that of a third party vendor licensed as a library? Does it make a difference if the new VM code is written in Smalltalk and generated into C as part of the VM, as opposed to the new code being written in C and patched into an already generated VM? 6. Is there a list of major corporations besides Apple and Disney (like GE, GM, Walmart, Microsoft, etc.) who have gotten the Squeak software approved by internal Intellectual Property (IP) lawyers for use for R&D, in-house tools, making an external demonstration, or shipping a product? Would any of those IP lawyers (or ones at Disney or Apple) be willing to talk to other IP lawyers in other companies about Squeak licensing issues? 7. What is the current status of fonts -- i.e. does that issue of not distributing the Apple fonts still apply, and are those fonts still included with Squeak? If so, how are they removed and replaced in a way that would allow one to ship or demonstrate a product incorporating Squeak? 8. If one builds Squeak into a hardware product (for sale or demonstration), does any of the source need to be distributed? If so, what part and when? 9. In general, how soon after release of a modified VM or software with modified base class methods does the source need to be released? (I've heard of this loophole cited as a reason not to release source when asked). 10. Are there any other licensing issues involving Squeak that have come up which I (or an IP lawyer, which I am not) should be thinking about if Squeak is going to be used in a major company? Are there any random "gotchas" in the license an IP lawyer will flag, and if so, are there any ways around them? The closest thing I've seen in the recent past to a discussion on these issues is "Squeak 2.0 for Debian GNU/Linux" Thu, 9 Jul 1998 21:55:53 +0200 From: Marcus Denker , where he brought up the font issue, and mentioned that export law restrictions restrict Squeak from being part of the Debian distribution (because it would restrict what countries could receive the distribution). Presumably this export law restriction would not be a major problem for a US division of a company making any product using Squeak for distribution, since it is legally bound by that law itself. Are there any other recent discussions of licensing issues I should be aware of? It has been said "Don't worry. Apple has already forgot about it..." in terms of the license and its enforcement. However that probably won't cut it with IP lawyers of a major corporation. These are sorts of questions such a lawyer might ask, and it would be nice to have ready answers available for anyone contemplating getting Squeak into their organization. -Paul Fernhout Kurtz-Fernhout Software http://www.kurtz-fernhout.com ========================================================= Developers of custom software and educational simulations Creators of the open source Garden with Insight(TM) garden simulator Creators of the StoryHarp(TM) Audioventure Authoring System From JArchibald at aol.com Wed Nov 4 09:14:17 1998 From: JArchibald at aol.com (JArchibald@aol.com) Date: Sat Jan 28 04:54:15 2012 Subject: Method names Message-ID: <8c0f28d1.36401ae9@aol.com> In a message dated 11/3/98 1:47:29 PM Eastern Standard Time, johnm@wdi.disney.com writes: << Stephen Pope was able to build a really nice "units" system using normal Smalltalk syntax. He did it in the context of a music system where you could say things like: sound pitch: 440 asHz or sound pitch: 69 asMidiKey >> I think this is the natural way to do this and fits Smalltalk syntax and "thinking" correctly. This is the approach Dave Smith used (previous append). Jerry. From dwighth at ipa.net Thu Nov 5 01:24:28 1998 From: dwighth at ipa.net (Dwight Hughes) Date: Sat Jan 28 04:54:35 2012 Subject: PROPOSAL: create the squeak-help list References: <199811050057.QAA02893@jasper.he.net> Message-ID: <3640FE4C.13E9C221@ipa.net> Sure: http://www.parc.xerox.com/istl/projects/sparrow/ -- Dwight russell.allen@firebirdmedia.com wrote: > > Hi again! > > I'm not familiar with the the PARC Sparrow lightweight editable webpage you > mentioned - do you have a link to info about it? It sounds interesting. > > Russell From Jarvisb at timken.com Wed Nov 11 12:14:05 1998 From: Jarvisb at timken.com (Jarvis, Robert P.) Date: Sat Jan 28 04:54:39 2012 Subject: vwnc mailing list working now Message-ID: <602F235CF2ACD011977E00805F91637B017CDAEC@ctnhemail01.corp.timken.com> John Brant was kind enough to figure out and correct the problems with the VWNC mailing list and I've successfully sent a message through the list so it looks like things are working again. If you think you're subscribed to the list but didn't see the test message you may want to resubscribe. Bob Jarvis The Timken Company > -----Original Message----- > From: John Brant [SMTP:brant@cs.uiuc.edu] > Sent: Tuesday, November 10, 1998 6:33 PM > To: tgagne@ix.netcom.com; fabregat@inf.uji.es; Jarvis, Robert P.; > lazarevi@cs.uni-magdeburg.de; kenncoll@hotmail.com > Subject: vwnc mailing list > > It appears that you have tried to send a message to the vwnc mailing > list... There were some problems with the subscription file. It had become > unlinked from the accept file, and also the permissions were messed up so > that new people weren't added to the subscription file. Anyway, these > problems should be fixed now. Please resend your messages, and let me know > if you have any problems. > > > John Brant From alank at wdi.disney.com Mon Nov 2 19:34:56 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:54:47 2012 Subject: Method names In-Reply-To: <199811021908.UAA07548@grootstal.nijmegen.inter.nl.net> Message-ID: Reinier -- We've talked a lot over the years of adding "units" (centimeters, feet, grams, ounces, bits, bytes, etc.) to Smalltalk. They are very useful in science for knowing what you are talking about, and in Smalltalk would be a set of unarys (as you suggest) that help conversions to be made. (They also could be symbolically executed to just get the dimensions of the quantity .....). Any interest out there in making a great units package for Squeak? Cheers, Alan At 7:08 PM -0000 11/2/98, Reinier wrote: >> >> aBitStream next: 40 bits >> >In resolving such issues, I always try to think like a human ;-). >What would you say as human? Problably something like: "dear bit stream >please give me the next 40 bits". So, it seems that 'bits' is ok to use. >But..., 'bits' tells us something about 40. In this case 'bits' defines the >unit of 40. This would lead me to rephrase like: "dear bit stream please >give me the next 40 elements where the unit is bits". Back to Smalltalk: > > aBitStream next: 40 unit: #bits > >Or, maybe even better: > > aBitStream next: ( 40 bits ) > >where '40 bits' would yield an instance of Quantity *1. > >I think Quantity is one of the most important classes anyway. Oddly enough >*2, you don't see it around much. > >Reinier. > >*1 >Object subclass: #Quantity instanceVariableNames: ' unit value '... > >*2 >Well, not really, all Smalltalk's offer technical classes only. No real >world classes. > From raab at isgnw.CS.Uni-Magdeburg.De Sat Nov 7 16:55:27 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:54:50 2012 Subject: Recompiling the VM with finalization In-Reply-To: <364470DB.83E7CFF7@netvision.net.il> from "Daniel Vainsencher" at Nov 7, 98 06:10:03 pm Message-ID: <199811071655.RAA10195@monet.cs.uni-magdeburg.de> > What am I missing? A piece of code. I haven't yet updated the public VM sources because the new stuff is still subject to change (the EXPORT macro will eventually go away) but what you need is the sqWin32ExternalPrims.c file (can be found at http://isgwww.cs.uni-magdeburg.de/~raab/squeak/src) and the following definition (somewhere in the header file sqPlatformSpecific.h) #define EXPORT(returnType) __declspec( dllexport ) returnType Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From alank at wdi.disney.com Thu Nov 5 16:19:47 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:54:52 2012 Subject: The Message and the Morphs [was: Where can I get some etoys?] In-Reply-To: References: Message-ID: What Dan said is what I hope (and Dan and the gang have wonderful ways of doing what they say) ... Cheers to all, Alan ----- ] At 4:05 PM -0000 11/5/98, Dan Ingalls wrote: >JArchibald@aol.com wrote... >>Hopefully, Dan's comments about making some of Alan's PowerBook available in >>2.3 (I hope I'm not over-selling this, Dan), is right on track. Giving us the >>tools AND the message might enable some of us to contribute a bit more. > >Jerry, and all - > >I don't expect we'll get any more of the actual content out in 2.3; just >more of the tools. > >BUT... >Our long-term intention is exactly what you want, I believe: we hope to >put essentially all the content in web pages accessible to any squeak, AND >with a thread of commentary, possibly even voice-over, that will add >Alan's many inimitable ways of tying it all together. > >Alan will probably want to say more about this, so I'll stop here. > > - Dan From zhan1 at uiuc.edu Wed Nov 11 22:49:01 1998 From: zhan1 at uiuc.edu (John (Zhijiang) Han) Date: Sat Jan 28 04:55:05 2012 Subject: [squeak][pws] Win32 Server Sockets In-Reply-To: Message-ID: [I cross-post this to both [squeak] and [pws] as what I'm talking about is not limited to PWS] As proposed in one of my previous messages, I'm gonna to port the ACE framework (http://www.cs.wustl.edu/~schmidt/ACE.html) to Smalltalk/Squeak, and implement some servers (e.g. Mail Server/POP/Mailing List Archive). It turns out that the most essential thing to have high performance server is to have a Cached Virtual File System. Here is the result of a priliminary performance analysis I did on the current PWS system (not really, but the one's been refactored by me recently, see http://brain.cs.uiuc.edu:8080/cs497rej.203) using MessageTally, with Tally Tree trimmed for simplicity (The analysis method attached below), (('ourownarea' '219' ) ) - 75 tallies. 28.0 UnixFileDirectory(FileDirectory)>>directoryContentsFor: 26.7 String(SequenceableCollection)>>copyReplaceFrom:to:with: 10.7 Symbol class>>intern: 9.3 String(SequenceableCollection)>>copyFrom:to: 6.7 WriteStream>>nextPutAll: 5.3 String(SequenceableCollection)>>replaceFrom:to:with: (('ourownarea' '219' 'edit' ) ) - 629 tallies. 53.4 StandardFileStream(PositionableStream)>>nextDelimited: 23.7 StandardFileStream>>next 4.9 String(SequenceableCollection)>>copyReplaceFrom:to:with: 3.0 String(SequenceableCollection)>>copyFrom:to: (('ourownarea' '219' 'input' ) ) - 1792 tallies. 15.1 String>>withSqueakLineEndings 13.7 SwikiPage>>uniqueInsertionPoints: 9.3 HTMLformatter class>>rangesOfAngleBrackets: 8.8 String>>storeOn: 8.3 Interval>>includes: 7.4 StandardFileStream>>close 6.3 String(SequenceableCollection)>>indexOfSubCollecti...rtingAt:ifAbsent: 5.9 SwikiPage>>swikify:withOptions: 3.5 OrderedCollection>>do: 2.4 OrderedCollection(Collection)>>detect:ifNone: (('ourownarea' '219' 'all' ) ('ourownarea' '219' 'references' ) ('ourownarea' '219' ) ) - 28 tallies. 28.6 UnixFileDirectory(FileDirectory)>>directoryContentsFor: 21.4 String(SequenceableCollection)>>copyReplaceFrom:to:with: 21.4 Symbol class>>intern: 7.1 MethodContext(ContextPart)>>pop:toIndexable: I'm wondering whether some related work has already been done. Here is the method I'm using to produce the numbers. 'From Squeak 2.2 of Sept 23, 1998 on 11 November 1998 at 4:25:51 pm'! !PWS methodsFor: 'Processing' stamp: 'JZH 11/11/1998 16:16'! spyEvery: millisecs onKey: key andIndices: indices | action result timesToRepeat node page | (log _ Dictionary new) at: #noLog put: true; at: #bytes put: 0; at: #date put: PWS date; at: #authuser put: userId; at: #rfc931 put: userId; at: #remotehost put: (peerName _ 'localhost'). (fields _ Dictionary new) at: 'searchFor' put: 'nothing'. action _ ActionTable at: key. timesToRepeat _ (20 / indices size) asInteger. node _ MessageTally new. result _ WriteStream on: ''. {{{key. '1'} }. {{key. '2'. 'edit'} }. {{key. '3'. 'input'} }. {{key. '4'. 'all'}. {key. '5'. 'references'}. {key. 'searchresult'} } } do: [:group | group do: [:each | message _ each. indices do: [:index | url _ key , (message at: 2 put: index asString). page _ action pageAtID: index. fields at: 'text' put: page text. node spyEvery: millisecs on: [timesToRepeat timesRepeat: [action process: self]]. (message at: 3 ifAbsent: []) = 'input' ifTrue: [page condenseChanges]]]. result cr; nextPutAll: group asString. node report: result; close]. (StringHolder new contents: result contents) openLabel: 'Spy Results'! ! Cheers John (Zhijiang) From gera at core-sdi.com Sat Nov 7 18:03:33 1998 From: gera at core-sdi.com (Gerardo Richarte) Date: Sat Jan 28 04:55:10 2012 Subject: Morphic Graphs & MorphicWrappers References: <36421802.3C5DC378@core-sdi.com> <3642CC3D.50731768@isg.cs.uni-magdeburg.de> Message-ID: <36448B74.671D8734@core-sdi.com> Jochen asked: > The error that gets reported is that WorldMorph doesn't understand > "bindings": > > WorldMorph(Object)>>doesNotUnderstand: > ClassWrapper(MorphicWrapper)>>bindings Ups! sorry, I should say that: After you fileIn MorphicWrappers menu options "open morphic window" and "open project (morphic)" get replaced with a version that opens a WrapperWorldMorph, that perfectly understand those messages a simple WorldMorph can't. Sorry egain, what you should do is file in MorphicWrappers (from MVC or Morphic, but I suggest not having any morphic window already oppened, as you will like it to be Wrapped later), and then, as ussual open a morphic project... You'll notice the difference becouse there will be a TrashCan in the world the first time you enter there... Have a Morphic Day! Sorried Bye! Richie++ From rlpcon at vermontel.net Wed Nov 11 20:59:10 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:55:16 2012 Subject: AE/interProcess (was: Examples of API) In-Reply-To: Message-ID: At 9:02 PM +0200 11/11/98, michal starke wrote: >couldn't you just add primitives for AppleEvents using the new pluggable >primitives framework? (ie. AE call wrappers essentially). sounds like >peanuts wrt the work you already did reimplementing the whole AE framework >on unix. or am i missing something? I didn't find the "pluggable primitives framework" in the browser; can you point me to them? The Unix AE is quite complex, and was not free of some "security" problems. I'll look at the pluggable primitive framework and then be in a better position to evaluate whether AE is appropriate. >[and have AE/interprocessComm would be a big + for many other uses in squeak!] Yes, but the AE API is not very user (programmer) friendly. It carries a lot of baggage to support the AE object model. Perhaps what we did previously can be paired down. --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From Ian.Piumarta at inria.fr Fri Nov 27 13:16:14 1998 From: Ian.Piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 04:55:17 2012 Subject: Unix sound bug not fixed in 2.3 beta. Message-ID: <199811271316.OAA10844@tif.inria.fr> > Was the fix for the sound start prim supposed to make it into the 2.3 beta? The 2.3beta image does not handle failure of the sound primitives gracefully. As soon as the "auto-disable-on-primitive-fail" is in the image, I'll add primitive failure to the Unix sound stubs. In the meantime, you can do this for yourself by uncommenting the /*success(FALSE)*/ in the #definition of FAIL() near the top of sqUnixSound.c and then recompiling. If there is an overwhelming consensus that the primitive should fail (and hence provoke "a primitive has failed" notifier whenever the image tries to play a sound), then I'll make the change and recompile all the binaries on alix. I await your collective wisdom on the matter... ;-) Regards, Ian From rlpcon at vermontel.net Tue Nov 10 19:31:11 1998 From: rlpcon at vermontel.net (Richard L. Peskin) Date: Sat Jan 28 04:55:18 2012 Subject: Examples of API Message-ID: Where can I find examples of API's that will allow me to exchange data between Squeak data structures and C strucs? I understand that the socket primitives do this but I don't know where to find the source code for these primitives. thanks, --dick peskin ================================= R. L. Peskin, Rutgers Univ. ; ; VT Phone (802) 824-4558 NJ Phone (732) 445-4208 "The corporate culture is concerned less with Occam's razor than his aftershave lotion." From lrozier at thepattern.com Tue Nov 3 02:26:36 1998 From: lrozier at thepattern.com (Laurence Rozier) Date: Sat Jan 28 04:55:19 2012 Subject: Units package (was Method names) References: <5040100024760936000002L062*@MHS> Message-ID: <363E69DC.951BF7BE@thepattern.com> > > One other piece of advice: check out a book on measurement theory or find a > MathPsych major for tips on abstractions for this domain. > Oh yes, Kent Beck and Ward Cunningham's experiences with financial modeling > with deferred currency conversions would also be excellent here. They had some > great models that might be useful. > I've found Chapter 3 of Martin Fowler's Analysis Patterns: Reusable Object Models(www.thepattern.com/books?analysispatterns) quite useful wrt this subject. From scottw at wdi.disney.com Thu Nov 19 20:54:39 1998 From: scottw at wdi.disney.com (SWallace) Date: Sat Jan 28 04:55:21 2012 Subject: ummm... morphic errors In-Reply-To: Message-ID: At 9:25 PM -0800 11/17/98, Ryan Davis wrote: >"Sorry, for the moment you cannot tear off a new anonymous script for any >instance of a uniclass other than the flagship instance. If this makes no >sense to you, you surely got here in error" > >That is one of the better dialogs I've seen in a long time. :) So, anyone >care to tell me what I did? Ryan, Well, gosh, I was wondering when that one would first surface! It's been lurking there for more than six months. As the jargon in the error message suggests, this stuff isn't ready for prime time yet. The message came up because you had a morph that had been scripted; you then used the menu item "make another instance of me" to get a second instance of it; then you brought up a Viewer on that new instance; and finally you dragged a phrase from that new Viewer and tried to drop it. Innocent enough! -- Scott PS: The strange error message cited will be gone from Squeak 2.3, and the sometimes-irrecoverable state that could ensue when the sequence is performed inside a Morphic project will also be fixed. Thanks! PPS: My first draft of a response to this was a full page of text describing in detail what "anonymous scripts", "uniclassees", and "flagship instances" were and explaining the dilemma for which the error message was a bailout. On further review, it was obvious that such a response was not appropriate for the Squeak list. However, anyone interested in knowing more about this stuff is welcome to email me privately and I'll be glad to forward the details. From jason at netgenics.com Mon Nov 2 16:58:44 1998 From: jason at netgenics.com (Jason Karney) Date: Sat Jan 28 04:55:23 2012 Subject: some not-so-random questions Message-ID: <363DE4C4.4953E8FC@netgenics.com> Hi, I had a couple of misc. questions about Squeak, your answers are appreciated. First, what is the latest and "official" version of the Win32 port of the VM? My first download of Squeak 2.2 (as a complete zip archive) included a VM called "SqueakBeta.exe." Then I got a distribution whose VM binaries are "Squeak.exe" and the jitter version, "SqueakJ.exe" Then while browsing the Swikis this morning, I saw a notice that Squeak for Win32 was going back to a single VM. So you can understand my confusion... (and incidentally, SqueakBeta *seemed* to run a little faster than SqueakJ) Second, does anybody have any suggestions for optimizing Squeak running on a 90Mhz pentium laptop with 8M ram? Some operations (and morhpic in general) bog the system down. I thought perhaps the vm has options to control initial memory allocation, or some such things. Thanks! -- Jason Karney <- Advanced Technology Scientist NetGenics, Inc. [jason@netgenics.com] [STOP] Okay, you were there yesterday, but Where do you want to go tomorrow? From hansb at 263.net Wed Nov 4 00:19:02 1998 From: hansb at 263.net (Hans Baker) Date: Sat Jan 28 04:55:29 2012 Subject: about oss doc from MS Message-ID: <001301be0788$c62039e0$2e0cc5ca@hb.nudt.edu.cn> Folks: It is I that sent the confidential doc of oss from M$ to Eric Raymond. I am a fun of a little hacker group named "Aka" in China. Who need the original oss doc( in Word97 format )? Please email to me. Hans From bparsia at email.unc.edu Thu Nov 26 04:18:49 1998 From: bparsia at email.unc.edu (Bijan Parsia) Date: Sat Jan 28 04:55:35 2012 Subject: Squeak for embedded systems (remote debugging and image building) In-Reply-To: Message-ID: At 6:24 PM -0500 11/25/98, JArchibald@aol.com wrote: >At 11/25/98 10:30:56 AM EST, pdfernhout@kurtz-fernhout.com writes: ><footprint>> [snip] >It seems somewhat distressing to me that the PWS works by executing Smalltalk >expressions from the Squeaki-Wiki pages, as that means that I could not shrink >the compiler out and be able to support it in its current fashion. For other >apps., even compiler may be shrunken out also. Just FYI, it's a bit more involved that than since reading the SwikiPage's text from a file involves executing Smalltalk expressions, etc. So, even if you purged the templates of their embedded code (or just compiled them explicitly; right now templates *are* cached and compiled), you still have that problem. However, there are several PWSers (myself included) who are working on alternative mechanisms for both these issues. Cheers, Bijan Parsia. From nishis at urban.ne.jp Mon Nov 9 20:08:34 1998 From: nishis at urban.ne.jp (NISHIHARA Satoshi) Date: Sat Jan 28 04:55:36 2012 Subject: [Squeak] How to get the size of any object (sorry too long) Message-ID: <199811092007.FAA23520@smtp.urban.ne.jp> At 07:43 09/22/1998 -0800, Maloney wrote: >Squeak has variable-size object headers, unlike VW. They >can be one (common case), two, or three words (4, 8, or 12 bytes). > >You might look at the code for counting objects and their >memory space in SystemDictionary. > > -- John Thank you for advice, Looking at the methods #printSpaceAnalysis:on: and #spaceUsed Browser fullOnClass: SystemDictionary selector: #printSpaceAnalysis:on:. Browser fullOnClass: ClassDescription selector: #spaceUsed. but more questions appear ... ;-) As first, Q1) byteSize of anObject is total of object table entry size, object header size, instVarFieldSize, indexableFieldSize byteSize:= bytesInOTE + objectHeadersSize + instVarFieldSize + indexableFieldSize. mmm... Is this right? case: right Q1.1) object table entry size is 8 bytes? or 12 bytes? Q1.2) If anObject is a instance of BlockContext, must add the size of home method or not? Q1.3) aSmallInteger or aCharacter is immediate object. So consider as its bytesize = 0. Is this right? Q1.4) getting the byteSize of aMethod, must add methodHeaderSize (4 bytes) So its total is methodHeaderSize + bytesize of aMethod self + size of literals. Is this right? code fragments are below. get the size of anObject aClass := anObject class. "baseHeaderSize = 4" baseHeaderSize := self baseHeaderSize. objectHeadersSize := aClass indexIfCompact > 0 ifTrue: [baseHeaderSize] ifFalse: [((self sizeInWordsOf: anObject) + 1 ) > 16r3F ifTrue: [baseHeaderSize * 3] ifFalse: [baseHeaderSize * 2]]. "really?" bytesInOTE := 8 "? or 12?". bytesInOOP := aClass isBytes ifTrue: [1] ifFalse: [4]. aClass isPointers ifTrue: [instVarFieldSize := aClass instSize * bytesInOOP. aClass isVariable ifTrue: [indexableFieldSize := anObject basicSize * bytesInOOP] ifFalse: [indexableFieldSize := 0]] ifFalse: [instVarFieldSize := 0. aClass isVariable ifTrue: [indexableFieldSize := anObject basicSize + (4 - 1) bitAnd: 4 negated] ifFalse: ["never fall down here" indexableFieldSize := 0]]. byteSize := bytesInOTE + objectHeadersSize + instVarFieldSize + indexableFieldSize. get the size of aMethod methodHeaderSize := 4. byteSize := self byteSizeOfObject: aMethod. byteSize := byteSize + methodHeaderSize. aMethod literals do: [:literal | size := self weightForLiteral: literal. byteSize := byteSize + size]. ^byteSize get the size of aLiteral (literalClass isBits and: [(aLiteral isKindOf: Symbol) not]) ifTrue: [^self byteSizeOfObject: aLiteral]. literalClass == Array ifTrue: ["total size of its elements" ^self weightForLiteralArray: aLiteral]. ------------------------------------------- 西原聡士 (NISHIHARA Satoshi) e-mail: nishis@urban.ne.jp : tcc00164@nifty.ne.jp URL: http://www.urban.ne.jp/home/nishis/ ------------------------------------------- From lex at cc.gatech.edu Mon Nov 16 23:25:36 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:55:40 2012 Subject: Serious problem with Squeak 2.2 on Win NT Message-ID: <199811162325.SAA13088@cleon.cc.gatech.edu> David LeBlanc wrote: > Hi; > Using the distribution binary (not one I built myself), Squeak, when idle, > uses 100% of one of my dual Pentium Pro 200mhz processors. This is reported > by the task manager. This seems continuous and I would think the MM would > have scavenged everything after some short time had passed. > First, you might be surprised. Most apps simply don't take any CPU at all, and the worst that can happen anyway, is that the other things will run half as fast. I think half a PPRo 200 would blow away my machine in its entirity, and I used to be fine running Squeak at 100% CPU all the time. I actually didn't even notice it until I tried to play Quake--nothing else on here is that CPU intensive that it matters! But that tirade aside, Squeak 2.2 should have built in CPU usage limitations, no matter how the VM is configured. (not to say that VM tricks don't work!). What if you go into a Morphic project--does the usage go down? Also, do you have any menus up? If a MVC menu is up, CPU goes to 100% no matter what. (there's an easy duck-tape style of fix, but a clean fix is harder. Cleanest of all is to just use Morphic, now that all the standard windows work in it). Lex From amr at aitecon.sk Thu Nov 12 23:41:23 1998 From: amr at aitecon.sk (Augustin Mrazik) Date: Sat Jan 28 04:55:59 2012 Subject: What class should include "5 kilograms"? References: lex@cc.gatech.edu's message of "Tue, 10 Nov 1998 18:05:56 -0500 (EST)" Message-ID: <364B7223.311B6095@aitecon.sk> > I would say that all dimensioned numbers belong in > DimensionedNumber (which is probably an immediate > subclass of Number) or its subclasses. In my opinion physical units are Magnitudes (since they are ordered) but they are not special Numbers. When having different kinds of units, result of operation on units can be viewed as conversion from one unit to another (if the argument is another unit). Numbers are just neutral units from the point of view of * and / operations: multiplication and division by a number is not a conversion and division by the same unit gives just the number. Hence I think that Units sit at the same level as Numbers. In a units package which we have implemented a time ago (I have mentioned it in this list but then it has shown to be too proprietary for reuse in Squeak), we have had also another two abstract subclasses of Unit: BasicUnits (e.g. Lenght, Weight) and DerivedUnits (such as speed, acceleration). Meters and Inches were just different representations of the same unit. BTW, Date and Time in Smalltalk are ment primarily as a particular moment on the time axis (a date, starting with January 1-st of a certain year, or time/moment within the particular day), although there is certain arithmetics implemented there. The Duration (e.g. in seconds) is a different thing - this is what we need for speed (seconds, hours) or age (years). Here we need the full arithmetics as for any other unit (compatible with Numbers). Conversion of Duration from/to Time and Date would be reasonable, of course (maybe even adding real arithmetics to Time and to Date - result would be aDuration). With adding Units to Magnitude, I think it would be reasonable to include ArithmeticObjects (abstract) as subclass of Magnitude and to put Number and Units as its subclasses. This would really express the situation: magnitudes on which also arithmetic operations are defined. And Numbers would be special Units without dimension (or without 'unit'? ;-). So long we have had only Numbers (from all possible arithmetic objects), we did not really need this class and Number had been immediate subclass of Magnitude. Augustin Mrazik From guzdial at cc.gatech.edu Mon Nov 30 14:44:53 1998 From: guzdial at cc.gatech.edu (Mark Guzdial) Date: Sat Jan 28 04:56:01 2012 Subject: Squeaky Sounds on a G3 Powerbook Message-ID: I started a Squeak Swiki page on Sounds in Squeak, and created another page off that to talk about my experiences with trying to get a variety of sound stuff to work on G3 Powerbooks (http://minnow.cc.gatech.edu/squeak.477). Some of the open questions that some out here may know about: - There doesn't seem to be a way to "close" a G3 Powerbook modem/printer port, so rebooting is the only way to switch between apps (even AppleTalk) that don't close the port well. - I can't figure out any way to get OMS (necessary for Siren) to recognize my modem/printer port. I got it working fine with my PowerMac 6100, so it's not the synthesizer or interface. - MIDI input on Squeak 2.3beta is really fuzzy. The input itself is probably going fine, but 2.3beta then tries to play the input note via the internal synthesizer, and the sound quality is noisy on the G3PB. Are other people finding a way to get it to work more smoothly? Thanks! Mark -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html From sqrmax at cvtci.com.ar Fri Nov 27 05:26:21 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:56:01 2012 Subject: Faster senders Message-ID: <0b3bc2026051bb8MAIL2@cvtci.com.ar> Hi. I've improved SystemDictionary>>allCallsOn: by a factor over two, most of it is due to stopping garbage generation and instance creation. This will be most noticeable when deleting methods from a browser. Here's the change set (check the comments in SystemDictionary allCallsOn2:, there's a simple speed check there). Andres. Content-Type: application/octet-stream; name="Faster senders.27Nov219am.cs" Content-Disposition: attachment; Filename="Faster senders.27Nov219am.cs" Attachment converted: Anon:Faster senders.27Nov219am.cs (????/----) (0000381C) From raab at isgnw.CS.Uni-Magdeburg.De Thu Nov 26 19:34:47 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:56:02 2012 Subject: Squeak 2.3 beta for windows yet? In-Reply-To: <3.0.1.32.19981126111712.0096c0b0@accessone.com> from "David LeBlanc" at Nov 26, 98 11:17:12 am Message-ID: <199811261934.UAA04411@gaugin.cs.uni-magdeburg.de> > I see a changes and an image file - neither compressed in the "2.3" dir. That's the bare image+changes file. You're better off downloading an entire package for your platform. In the Win32 (e.g., Win95/98/NT) case this can be obtained from ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/free/squeak/win32/Squeak.zip http://isgwww.cs.uni-magdeburg.de/~raab/squeak/Squeak.zip > Not to be terminally obtuse, but do I just download those to my squeak dir > or what? If you take one of the above you'll have everything you need for Squeaking on Win32. Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From Michal.Starke at lettres.unige.ch Fri Nov 13 06:47:26 1998 From: Michal.Starke at lettres.unige.ch (michal starke) Date: Sat Jan 28 04:56:12 2012 Subject: squeak-list error messages In-Reply-To: Message-ID: >Im constantly getting messages like below, even though my posts >apparently make it through. Anybody else experienceing this noise? >Also, this is a test :-) mike: yes! i have exactly the same problem and it's getting pretty annoying... i tried to contact the webmaster at the node seemingly provoking problems (gate.agro.nl) but never got any answer... michal From stp at create.ucsb.edu Wed Nov 11 14:50:46 1998 From: stp at create.ucsb.edu (Stephen Travis Pope) Date: Sat Jan 28 04:56:16 2012 Subject: Siren help References: <3.0.32.19981104191657.007e9480@pop1.ibm.net> Message-ID: <3649A446.2B506181@create.ucsb.edu> I up-loaded new image/changes to the Siren FTP site ftp://ftp.create.ucsb.edu/pub/Siren. Let me know if you can up-load these. They image should be used with the Sire 2.1 VM. -- stp _ Stephen Travis Pope _ stp@create.ucsb.edu, http://www.create.ucsb.edu/~stp/ From ohshima at is.titech.ac.jp Fri Nov 20 15:59:08 1998 From: ohshima at is.titech.ac.jp (ohshima@is.titech.ac.jp) Date: Sat Jan 28 04:56:20 2012 Subject: Squeak running on Japanese PDA In-Reply-To: Your message of "Fri, 20 Nov 1998 07:22:39 -0800 (PST)" References: <19981120152239.5283.rocketmail@send204.yahoomail.com> Message-ID: <19981120155908.17846.qmail@n0ud.is.titech.ac.jp> Bruce O'Neel wrote: > It now has a place of honor on my wall. BTW, I noticed the 26 > benchFib line in there. If you don't mind, what does > [26 benchFib] timeToRun > return? If the inlining is on (big and (supposed to be) fast interpreter), the result is around 7000 on faster versions of Zaurus. If the inlining is off, the result will be three times bigger than that. (I can't tell the actual result now.) Note that if the executable is bigger than 128k, ZaurusOS starts paging for binary segment, and the non-inlined version of VM is just smaller than 128k. So, the difference of the results of micro benchmark doesn't reflect the performance of 'real' applications. They runs much faster on non-inlined VM. OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology From amr at aitecon.sk Thu Nov 12 23:47:08 1998 From: amr at aitecon.sk (Augustin Mrazik) Date: Sat Jan 28 04:56:30 2012 Subject: Good Public Domain info for Squeaking References: Message-ID: <364B737C.C144C985@aitecon.sk> Dan Ingalls wrote: > > Folks - > > I have in mind a couple of fun Squeak aps, but I'd like them not to rely one proprietry material. So I would like to hear from anyone regarding > > Maps, covering the US > Maps, covering the world.... At ArtInAppleS we have developed a full featured GIS technology in PPS/PPD/OS VW in 1991-1997. Beside "standard" geometrical objects (2-dimensional) and operation/relations on them it includes also topological spaces for locating meaningful spatial objects and even inheritance between the topological spaces. The topology is being maintained on the fly upon change of spatial objects (e.g. their movement or change of borders). Basicaly it enables a "normal" real-world modeling of spatial and non-spatial things. Raster data (map scans, remore sensing data) is also included and may be combined with "vector" data (in fact, it's just a picture of an area which is displayed in the coordinate system just as any other spatial object). The applications of this technology had been GIS systems for municipalities (towns, real estate, buildings, streets, taxation, ...) and utilities (an asset management GIS system for Slovak Gas Industry). The real databases are up to 1 GByte with several houndreds of thousands of objects (pipelines, land parcels, ...). I do not have any geographical data available which might be published. But we have Arc/INFO as well as Microstation interface. Any volunteer to port at least a part of the technology to Squeak ? Anybody interested in OO GIS (I am looking for pen-friends ;-). Augustin Mrazik P.S. BTW, how about the database ? From Jerome.Garcia at wj.com Wed Nov 25 19:18:41 1998 From: Jerome.Garcia at wj.com (Jerome Garcia) Date: Sat Jan 28 04:56:45 2012 Subject: Squeak for embedded systems (remote debugging and image Message-ID: <001591CF.C21407@wj.com> > To support using Squeak in embedded systems and memory-constrained ones like Newtons, I'm exploring the idea of making a headless version of Squeak with minimal footprint that can be remotely interacted with from a headed Squeak via TCP/IP. Tools such as these might also be useful for debugging "headless" Squeak images embedded in applications like web browsers or web servers. > I would like to see Squeak images embedded in robots in your list. > 6. Can people think of other useful reasons to have such tools? I have found the equivalent VisualWORKS and ControlWORKSs tools which we use for development of semiconductor processing equipment software to be extremely valuable. Most of the time, we can debug embedded Smalltalk code (embedded OS is VxWorks) on the fly without even having to shut down the equipment. In this case, the embedded images are stored on the NT frontend system and loaded into the embedded systems during bootup. Debugging is performed on the NT frontend. It is a distributed application with at least 3 images involved between the NT workstation and the embedded systems. I would really like to see this capability available in Squeak. >open a TCP/IP connection (or maybe just plain serial) to that VM from a Support TCP/TP and you can speak to just about the whole world. I have found debugging and expect to find testing of factory interfaces much nicer via ethernet than having to attach a serial cable to equipment. Especially if the equipment I want to attach to is elsewhere. I am sorry that I cannot offer any advice on the Squeak side of the problem being a novice. If you have any questions that might be answered by my experience with the semiconductor software please feel free to ask. -- Jerome E. Garcia jegarcia@adventurousmind.com From raab at isgnw.CS.Uni-Magdeburg.De Thu Nov 26 13:51:50 1998 From: raab at isgnw.CS.Uni-Magdeburg.De (Andreas Raab) Date: Sat Jan 28 04:57:18 2012 Subject: Squeak 2.3 beta available In-Reply-To: from "Dan Ingalls" at Nov 25, 98 05:47:38 pm Message-ID: <199811261351.OAA23330@gaugin.cs.uni-magdeburg.de> Folks, According to Dan's request here are couple of things that are new with 2.3 beta: * Interface changes We have now new Morphic menus (I just love them) and a preferences panel with help messages for most entries. * Sound stuff MIDI input is available from class MIDISynth. * Numerical stuff The new coercion scheme is in 2.3beta, we have array math and a brand new wavelet transform hanging around (see class FWT). * Weak classes / finalization support is now part of the standard image [Note: Some people were already running into this - you really need a new VM for this stuff to work properly] * Pluggable primitives Those of you not having been to OOPSLA, PPs are a way of extending the virtual machine without actually modifying it. PPs are pluggable in such that they're called by name, not by number and that they can reside in an external library (e.g., a DSO on Unix, a DLL on Windows, and whatever it's called on other systems). An example is FFT>>pluginTest which should be about a factor 60-100 faster than the regular (interpreted) FFT. If it isn't, then it's because your VM does not support PPs, but the FFT will still run. Implementors: Have a look at class InterpreterPlugin and it's subclasses to see how this works (yes - I ought to write a bit of documentation about this stuff ;-) * Balloon This is a vector graphics engine that will hopefully bring a new quality of graphics into Squeak. For the moment it's still in preliminary state but for those of you who want to get an impression, here are two things to try: - Playing with TrueType fonts (Yeah!!) Just open one of those guys from the file list and enjoy ;-) [Note that TTFs are not yet used outside this example] - Playing with MacroMedia Flash files Flash is a vector graphics package designed for vector graphics content delivery over the internet. Many sites use this to enhance their web pages and it's a lot of fun to play with. If you have access to any .SWF files just open them from the file list. [Note: The integration into Scamper didn't make it for the beta. It will be in the final 2.3 and I'll post a couple of links for you to play with]. I think that are the biggest changes in 2.3 beta [Dan - did I miss anything important?!] Cheers, Andreas -- Linear algebra is your friend - Trigonometry is your enemy. +===== Andreas Raab ============= (raab@isg.cs.uni-magdeburg.de) =====+ I Department of Simulation and Graphics Phone: +49 391 671 8065 I I University of Magdeburg, Germany Fax: +49 391 671 1164 I +=============< http://isgwww.cs.uni-magdeburg.de/~raab >=============+ From lex at cc.gatech.edu Wed Nov 4 06:18:39 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:57:32 2012 Subject: Regenerating the VM Message-ID: <199811040618.BAA24782@cleon.cc.gatech.edu> Yes, me! If it's the same trouble I had, then the problem is in the definition of ioLowResMSecs in sq.h. It is based on on clock(), which on Unix systems is a measure of CPU usage, not of wall-clock time. The result is that certain operations think time is passing veeerryyy sloowwllyyy, and in particular delays take something like 1000 times as long as they normally should. The quick fix is simple: in sq.h, redefine ioLowResMSecs to just be ioMSecs: #define ioLowResMSecs() ioMSecs() In the long run, this definition should be made platform specific somehow. Maybe sq.h should #include a platform-specific header file? Lex Luciano wrote: > I updated my image and regenerated the VM (in Linux) in order to make > finalization and pluggable primitives work, but I've got into > troubles... the new VM did not work properly. This is what happens: if I > type a char, nothing shows, until I type other char or move the mouse. > What is happening? Did someone noticed this behavior before? > > Luciano.- From kfisher at rim.net Fri Nov 20 14:22:28 1998 From: kfisher at rim.net (Kevin Fisher) Date: Sat Jan 28 04:57:33 2012 Subject: /. mentions squeak In-Reply-To: Your message of "Fri, 20 Nov 1998 09:12:27 EST." <"0IDrz.A.NPC.TiXV2"@jerry> Message-ID: <199811201422.JAA25797@klaymen.rim.net> :) As a regular of Slashdot.org, I've been tempted to submit a story about Squeak and how wonderful it is...looks like someone beat me to it! Still...Slashdot will likely generate a lot of attention to the Squeak cause...heck, it'll probably overload the Swikis (the so-called Slashdot effect). Judging by the responses to the story, it looks like there are a lot of people who are very well informed about Squeak as it is (as well as the usual clueless trollers, but that's the internet for you :). Anyway, if the Swiki's seem overloaded....well, you've just experience the Slashdot effect. (For those who don't know: see http://slashdot.org) Another suggestion: Slashdot has a 'sister' web page called Freshmeat, which has more-or-less become 'the' place to announce new software for the UNIX/Linux community (see http://freshmeat.net). Is it in the interest of Squeak to have new releases submitted there? Again it would probably generate a lot of interest in Squeak... just a thought, anyway. From lex at cc.gatech.edu Wed Nov 4 06:18:41 1998 From: lex at cc.gatech.edu (lex@cc.gatech.edu) Date: Sat Jan 28 04:57:36 2012 Subject: squeak hogs memory on linux? Message-ID: <199811040618.BAA24792@cleon.cc.gatech.edu> Greg Lewin wrote: > > It's better on RedHat 5.1 and Squeak 2.2 (was 5.0 and 1.3), but I still > get similar trouble if I click on one of the buttons in "play with me > 4". > Sounds like a sound problem: those buttons trigger a sound. The stock Unix VM doesn't support sound at all. If you are using it, set "turn sound off" from the help menu. However, I have written some basic support for sound in Linux. It could use some work, but it does make the correct sounds come out. This is at http://www.cc.gatech.edu/~lex/squeak/sound/. However, it doesn't support "startPlayingImmediately", so you have to edit the startPlayingImmediately: in SoundPlayer and set "dontInsertSamples" to true instead of false. (This should probably be made a preference. Then again, someone should probably implement startPlayingImmediately on Linux!). This is all explained step-by-step at the above URL, if you are willing to rebuild an image. Then again this could be something else entirely. Lex From joconnor at roadrunner.com Fri Nov 20 19:59:57 1998 From: joconnor at roadrunner.com (Jay O'Connor) Date: Sat Jan 28 04:57:40 2012 Subject: Squeak Performance as a Web Server References: Message-ID: <9811201319440I.00516@localhost.localdomain> On Fri, 20 Nov 1998, Patrick Logan wrote: >I'm using [VWNC] for a Web Server (using a Web Server I built in > VW similar in concept to the Squeak PWS and an HTML framework I > wrote). I'm curious if Squeak has general performance good enough > to investigate using it as a web server. > >People are using it, so it's going to be a question of what kind of >performance and features you need. A lot of it depends on my implementation of the web server so I'm more curious about Squeak performance in general and particularly it's TCP/IP implementation. The rest is all pretty variable and I'll have to see as I go. >OTOH I would not think the investment worthwhile. Instead I would get >one of the real Web servers like Apache I'm already using Apache. I run the two side by side with Apache serving static content and Smalltalk serving the dynamic content. > I would connect one of these Web servers to Smalltalk via CGI or some other >mechanism. I avoided CGI because a) I already had the web server written so why build another piece of middleware? and b) CGI has problems (speed to start up, etc...) >This way you get all the features you'd otherwise have to build yourself But I've already built them. The only thing it really doesn't do is handling non-html MIME types (images, and such) which is what I use Apache for. >but you can still do everything you'd like to do with Smalltalk. >-- >Patrick Logan mailto:patrickl@gemstone.com >Voice 503-533-3365 Fax 503-629-8556 >Gemstone Systems, Inc http://www.gemstone.com Take care, -- Jay O'Connor joconnor@roadrunner.com http://www.roadrunner.com/~joconnor "God himself plays the bass strings first when He tunes the soul" From Serg at VisualNewt.com Sat Nov 14 23:53:30 1998 From: Serg at VisualNewt.com (Serg Koren) Date: Sat Jan 28 04:57:50 2012 Subject: Multi-threading the interpreter In-Reply-To: <3.0.3.32.19981114154347.032e8d20@mailhost.pmatrix.com> References: Message-ID: How about a garbage collector per running thread and one for the VM itself? The one for the VM would manage the others. This would imply a "protected" memory scheme per thread. The thread class itself could be modified to have garbage collecting methods and would manage memory allocated by the thread's operations. The master GC would manage freeing the actual thread and thread's GC. Just thinking out loud. I know less about GC than I do about Smalltalk ;-) Cheers, S >At 03:18 PM 11/14/98 -0500, you wrote: >>A multi-threaded interpreter would be a good idea anyway. For example, if >>there were a way to make the interprter multi-threaded, performance would >>really be enhanced under the BeOS on multi-processor systems, since it is a >>pervasively multi-threaded OS which will map threads to available >>processors. Has any work been done on multi-threaded interpreters? I can >>see all sorts of issues such as how to handle garbage collection. > >There are many very sticky issues of doing a multi-threaded, >multi-processor Smalltalk. For example, the current garbage collector needs >to move objects in memory. If your running multiple threads on the VM, you >need to bring all these threads to a known state, so memory is not >relocated out from under a thread. Or else you need to use garbage >collection architecture that doesn't move things. There are a variety of >issues like this. Fancy multi-processor safe VM architectures also may run >slower when running on a single processor. > >Something that would be MUCH easier, would be to arrange for calling >external code in a different thread. For example, you would have a pool of >threads that were used to run slow OS calls. This would give mostly the >same advantages as a true multithreaded VM, for single processor machines. >It would also bypass many of the problems. > >A quick example of how this would work: > > 1) you enter a primitive to do some "slow" OS call > > 2) the primitive allocates a worker thread to run the OS call from >a pool >and copies any data to a stable location, like the worker thread's >stack > > 3) the worker thread is told to run the OS call, while the main thread >returns to executing Smalltalk code > > 4) Smalltalk code now waits on a Semaphore, for the completion of >the OS call > > 5) when the worker thread returns it signals the waiting Smalltalk >process, transfering any return info, and then goes back into the free >thread pool > > 6) the blocked Smalltalk process wakes up and goes on his way > >In this example, other Smalltalk processes are free to execute while the >one Smalltalk process is blocked waiting. These is some overhead of the >data copying and thread context switching, so this is inappropriate for >calls that will allways execute fast. It also gets some use out of multiple >processors, although you still can't run Smalltalk code on more than one >processor. This method would also be EXTREEMLY easier to implement in >Squeek. I think this "worker thread" architecture is especially appropriate >from use in generic external C calling primitives. A big question is: do >most people want multi-thread support so they can run Smalltalk compute >intensive apps on multiple processors? Or do they just want to be able to >make external calls without all Smalltalk processes blocking? > >- Jan > > >___________________________________________________________________ > Paradigm Matrix Inc., San Ramon California > "video products and development services for Win32 platforms" >Internet: Jan Bottorff janb@pmatrix.com > WWW http://www.pmatrix.com >Phone: voice (925) 803-9318 > fax (925) 803-9397 >PGP: public key > fingerprint 52 CB FF 60 91 25 F9 44 6F 87 23 C9 AB 5D 05 F6 >___________________________________________________________________ ------------------------------------------------------------------- VisualNewt Software http://www.VisualNewt.com/ ------------------------------------------------------------------- Makers of Newt'sPaper(tm) - the premiere newsreader for the Newton and Newt'sWeather(tm) - the Newton's weather solution. ------------------------------------------------------------------- From DanI at wdi.disney.com Fri Nov 20 05:52:01 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:57:51 2012 Subject: Tentative 2.3 release schedule Message-ID: Folks - I'm out of town for the weekend. It looks like Monday or Tuesday, we'll have most of the ingredients in the bowl, and I'll put out a beta release. There is so much new stuff that I doubt it will be cooked through in time for Thanksgiving. Therefore, I'm anticipating an official release more like a week from Monday or Tuesday. Just thought you would want to know. - Dan, for The Squeak Team From alank at wdi.disney.com Sun Nov 22 02:31:11 1998 From: alank at wdi.disney.com (Alan Kay) Date: Sat Jan 28 04:58:00 2012 Subject: Hyperbolic Tree Class Browser In-Reply-To: <01BE15A4.5DA707C0@maq065b.advance.com.ar> Message-ID: The original hyperbolic circular groupings were done by the artist Esher -- at least "the look" is pretty well covered there. And it is not possible to patent an idea, only specific expressions and mechanisms of ideas. My guess is that such a Squeak browser would not violate anything. However, I'm not sure that doing a tree in a circle really adds much to traversing or understanding a hierarchy ... Cheers, Alan -------- At 2:12 AM -0000 11/22/98, Alejandro F. Reimondo wrote: >I've tried to enter in the Louvre demo, >it takes 10 minutes to load the Java applet > and my IExprorer crashed closing all > the opened browsers windows. >Are there any demonstration not written in Java ? >thanks. >Ale. > >---------- >De: Jerry Bell[SMTP:jdbell@fareselaw.com] >Enviado: S?bado 21 de Noviembre de 1998 19:22 >Para: squeak@cs.uiuc.edu >Asunto: Hyperbolic Tree Class Browser > >Has anyone looked at hyperbolic trees? I find them hard to explain, but >very easy to grasp once you play with them. Try: > >http://www.inxight.com/Content/7.html > >The Library of Congress demo is especially nice. > >I think a hyperbolic tree would make a great UI for a class browser, maybe >as a replacement for the left-most pane. It would definately help a new >user like myself get a feel for which classes belong where in the hierarchy. > >Unfortunately I don't know if we could put one in Squeak without permission >from Inxight. I know they hold license to their implementation of >hyperbolic trees, but I don't know if they somehow own the idea also. I've >never understood that sort of thing very well. > >They are a Xerox company, by the way. It's another neat idea from PARC. > >Jerry Bell >jdbell@fareselaw.com > >-----Original Message----- >From: Stefan Matthias Aust [mailto:sma@kiel.netsurf.de] >Sent: Saturday, November 21, 1998 12:42 PM >To: squeak@cs.uiuc.edu >Subject: Re: C code for Block context > > >>How does the Squeak Smalltalk to C translation handle Smalltalk code that >>contains Blcok context? It was my impression that it is difficult to >>program Block context in C. > >Actually, it cannot translate real blocks. The translator only translates >a subset of Smalltalk, just enough to compile the interpreter. It does the >usual optimization for ifTrue: and whileTrue: blocks, but can't handle full >block closures. > > >bye >-- >Stefan Matthias Aust // Are you ready to discover the twilight zone? From stan at stanheckman.com Thu Nov 12 04:02:57 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:58:09 2012 Subject: What class should include "5 kilograms"? In-Reply-To: "Michael S. Klein"'s message of "Wed, 11 Nov 1998 22:07:37 +0000 (America/Los_Angeles)" References: Message-ID: <87pvatmuby.fsf@streamer.msfc.nasa.gov> "Michael S. Klein" writes: > P.S. I would probably also come up with a better name than #UnitThingy That was supposed to be a joke. :-) I was really using the name "PhysicalQuantity". I am now using the name "DimensionedNumber". -- Stan From rowledge at interval.com Thu Nov 26 05:03:08 1998 From: rowledge at interval.com (Tim Rowledge) Date: Sat Jan 28 04:58:24 2012 Subject: Please HELP promote Squeak. In-Reply-To: <365CE5A7.142@pitnet.net> Message-ID: On Wed 25 Nov, Jerry Fass wrote: > I moderated the flattery, a bit, Acorn is now 2nd from the top, and credited Craig Lat > ta. That's much better... to be honest, if any one of us 'non-Disney' porters and VM geeks deserves the 'his awesomness' appelation, it would be Ian Piumarta. The amount of work he did to write all the X stuff, I wouldn't use as a punishment detail! Doing the AcornLinux and then Itsy port was easy because of the work he did, and then the NetWinder port was mostly the hard work (for Craig) of getting it to talk to our net, get the files in the right place, choose the right config stuff and persuade a very-beta system to actually do what it is supposed to do. tim -- Always try to be modest. And be damn proud of it! Tim Rowledge: rowledge@interval.com (w) +1 (650) 842-6110 (w) tim@sumeru.stanford.edu (h) From cohenb at gemstone.com Thu Nov 12 19:31:35 1998 From: cohenb at gemstone.com (Bruce Cohen) Date: Sat Jan 28 04:58:53 2012 Subject: Examples of API In-Reply-To: Your message of Thu, 12 Nov 1998 13:55:19 -0500. <199811121855.NAA09839@cleon.cc.gatech.edu> Message-ID: "Richard L. Peskin" wrote: >> Right now, neither external processes or Unix pipes are directly >> supported in Squeak. It's also unlikely that such platform-specific >> features will ever end up in the core system. However, it would still >> be nice to have, as an add-on. At the risk of being branded a heretic, I'd like to point out that Java has a reasonably portable abstraction for external execution in the Runtime and Process classes. The *commands* needed to invoke a given process are idiosyncratic to a platform, but they're modelled as Strings; the details of exec and i/o streams to a process are implemented inside Runtime and Process. You could easily do something similar in Squeak, and even provide platform-dependent Strings for common process invocations. ----------------------------------------------------------------------------- Engineering is never having to say you're finished. ----------------------------------------------------------------------------- Bruce Cohen, | email: cohenb@gemstone.com GemStone Systems, Inc. | phone: (503)533-3602 20575 NW Von Neumann Drive | fax: (503)629-8556 Beaverton, OR USA 97006 | web: http://www.gemstone.com From DanI at wdi.disney.com Fri Nov 13 16:33:57 1998 From: DanI at wdi.disney.com (Dan Ingalls) Date: Sat Jan 28 04:59:00 2012 Subject: Good Public Domain info for Squeaking Message-ID: Folks - I am preparing a digest of all the responses on this thread (we seem to have a bunch of astronomers out there), but I thought I would send this one out immediately. John-Reed Maffeo has been working on porting a Smalltalk map program calles USA. He sent the database along with his message. I found that with just a couple of lines of Squeak, you could make morphs for every state in the US, and end up with a fun jigsaw puzzle. So I'm forwarding the modest database which originated with Dan Benson, and including below the Squeak code to make a morph out of any of the state specs. Open a morphic project, enter it and open a workspace, paste the code below into a workspace, and then paste the list of coordinates for one of your states into the spec array. Execute the whole expression and, Bingo! You now have a state morph that you can pick up and move around (and rotate and scale (for better or worse ;-)). Some of the states have weird indentations that will require you to use the "proper fill" option in the ctrl-menu of the polygon for proper display. Enjoy - Dan ----------------------------- | spec state | spec := #( "Colorado -- boring, but simple..." 921 708 888 704 696 688 696 658 717 521 871 538 933 546 929 571 929 583 921 708 ). state := PolygonMorph vertices: ((spec atAll: (1 to: spec size by: 2)) with: (spec atAll: (2 to: spec size by: 2)) collect: [:x :y | x@y]) color: Color green borderWidth: 1 borderColor: Color black. World addMorph: (state position: 100@100) ----------------------------- Date: Thu, 16 Jul 92 09:25:09 EDT From: benson@robin.siemens.com (Dan Benson) Subject: Re: usa.data - availability This file defines the boundaries of the 50 United States as polygons. See the State class method called readStates to make sure the filename is correct. This should be saved as a file with the same filename as indicated in the readStates method (usa.data). I got the outlines for the states from a public domain MacDraw file. When printing a MacDraw file you can choose to print it to a file. This saves it as a PostScript file. I then edited the file to extract the polygons and manually entered each name. I then read the file in Smalltalk to create Smalltalk objects (flipping the x and y coordinates). To make a long story short, the polygons are now available as Smalltalk objects. Enjoy!! Dan Benson STATE Alabama 1 BOUNDARY 1417 950 1417 954 1429 967 1429 975 1404 983 1413 979 1404 958 1400 983 1392 979 1392 963 1383 921 1383 788 1471 779 1492 867 1508 888 1500 908 1513 942 1417 950 END END STATE Alaska 1 BOUNDARY 242 1042 254 1042 246 1042 250 1054 263 1058 254 1071 258 1079 267 1083 283 1067 275 1100 271 1104 288 1096 300 1113 300 1104 304 1108 321 1104 300 1138 279 1150 275 1163 263 1158 242 1171 263 1163 283 1163 283 1167 296 1163 292 1150 300 1154 342 1125 350 1113 346 1104 375 1067 383 1046 379 1067 392 1063 383 1071 392 1075 371 1075 363 1096 371 1096 367 1104 379 1104 388 1092 392 1092 400 1071 400 1075 417 1071 413 1075 438 1092 471 1092 479 1083 483 1088 483 1088 475 1096 483 1100 492 1092 492 1104 508 1113 513 1104 504 1100 521 1108 513 1092 525 1104 546 1129 567 1138 563 1154 571 1138 579 1167 588 1158 583 1138 558 1133 513 1083 500 1104 492 1088 483 1092 479 1079 463 1079 442 900 375 888 358 879 354 888 346 871 271 917 292 946 300 950 317 958 300 954 304 963 300 967 283 963 288 950 279 950 250 958 267 975 258 975 263 983 283 992 283 996 300 992 296 996 296 1013 271 1021 242 1042 END END STATE Arizona 1 BOUNDARY 588 908 467 833 475 825 483 825 479 804 488 796 488 779 508 767 496 733 496 733 500 692 508 692 517 700 529 658 696 688 667 875 663 917 588 908 END END STATE Arkansas 1 BOUNDARY 1188 879 1188 858 1171 854 1175 783 1175 783 1167 733 1313 733 1317 738 1308 750 1329 750 1333 754 1325 763 1325 767 1317 775 1321 788 1313 796 1308 804 1308 817 1288 833 1292 850 1283 850 1283 858 1292 858 1288 863 1292 867 1288 879 1188 879 END END STATE California 1 BOUNDARY 392 821 388 783 367 763 363 758 363 750 338 738 329 725 300 713 296 704 300 683 296 679 296 671 271 625 271 613 283 608 267 583 271 563 283 579 275 554 283 554 271 546 271 563 263 546 258 550 263 542 246 504 254 471 242 442 258 421 271 379 392 417 363 538 496 733 508 767 488 779 488 796 479 804 483 825 475 825 392 821 END END STATE Colorado 1 BOUNDARY 921 708 888 704 696 688 696 658 717 521 871 538 933 546 929 571 929 583 921 708 END END STATE Connecticut 1 BOUNDARY 1863 442 1829 450 1813 471 1813 458 1804 425 1854 417 1863 442 END END STATE Delaware 1 BOUNDARY 1763 538 1763 546 1779 567 1788 571 1788 575 1792 579 1771 588 1758 538 1767 529 1763 538 END END STATE Florida 1 BOUNDARY 1713 1088 1717 1129 1708 1138 1713 1146 1704 1154 1683 1163 1679 1154 1688 1158 1692 1154 1679 1150 1671 1138 1654 1133 1646 1113 1642 1104 1642 1092 1629 1092 1638 1100 1629 1100 1613 1075 1621 1058 1608 1050 1613 1067 1604 1058 1608 1017 1563 983 1542 975 1538 983 1504 996 1500 988 1504 996 1504 992 1488 975 1483 975 1488 983 1458 971 1471 971 1467 967 1433 975 1442 971 1433 967 1433 975 1429 975 1429 975 1429 967 1417 954 1417 950 1513 942 1517 950 1613 950 1613 954 1617 954 1617 938 1633 938 1713 1088 END END STATE Georgia 1 BOUNDARY 1554 771 1550 783 1567 792 1579 808 1621 842 1642 875 1646 879 1642 892 1642 896 1633 913 1638 921 1633 921 1638 921 1633 938 1617 938 1617 954 1613 954 1613 950 1517 950 1513 942 1500 908 1508 888 1492 867 1471 779 1517 775 1554 771 END END STATE Hawaii 6 BOUNDARY 596 1021 600 1021 604 1025 604 1029 600 1038 596 1042 592 1038 588 1033 588 1029 588 1025 592 1021 596 1021 END BOUNDARY 642 1050 650 1050 654 1058 658 1063 654 1063 650 1063 646 1063 642 1063 638 1054 642 1054 642 1050 END BOUNDARY 671 1071 671 1071 675 1071 683 1071 688 1071 692 1071 692 1075 688 1075 675 1075 671 1075 671 1071 END BOUNDARY 704 1079 708 1083 717 1088 717 1092 708 1100 704 1096 700 1092 696 1083 696 1079 696 1075 696 1075 700 1079 704 1079 END BOUNDARY 721 1117 721 1113 725 1113 729 1117 729 1117 733 1117 738 1121 742 1125 746 1125 746 1129 750 1133 754 1133 754 1138 758 1138 758 1142 758 1146 758 1150 758 1154 754 1154 746 1154 742 1154 738 1158 738 1163 733 1167 733 1167 729 1171 725 1167 725 1163 721 1158 721 1146 717 1138 717 1138 721 1125 721 1121 721 1113 721 1117 END BOUNDARY 679 1079 683 1079 688 1083 688 1088 683 1088 683 1083 679 1079 END END STATE Idaho 1 BOUNDARY 483 438 504 350 496 338 529 296 517 275 546 158 571 163 563 204 571 221 567 229 575 233 588 263 600 267 583 308 588 313 604 304 604 308 608 342 617 350 625 363 629 358 638 363 642 358 667 363 667 358 675 371 663 471 604 458 571 454 483 438 END END STATE Illinois 1 BOUNDARY 1333 700 1333 679 1304 663 1308 633 1300 629 1292 633 1288 617 1275 604 1267 592 1267 575 1267 563 1275 558 1275 546 1275 529 1292 521 1300 513 1300 496 1283 483 1292 483 1371 479 1383 508 1392 608 1388 613 1396 633 1379 654 1379 671 1375 675 1379 683 1367 688 1367 700 1350 700 1342 704 1346 708 1333 700 END END STATE Indiana 1 BOUNDARY 1379 654 1396 633 1388 613 1392 608 1383 508 1392 513 1392 513 1404 504 1467 500 1479 608 1479 621 1458 625 1458 633 1446 658 1438 658 1433 650 1425 667 1421 663 1408 671 1396 667 1396 671 1383 667 1379 671 1379 654 END END STATE Iowa 1 BOUNDARY 1254 563 1129 567 1125 538 1108 488 1100 479 1108 463 1104 450 1108 446 1267 446 1271 450 1267 458 1271 471 1283 483 1300 496 1300 513 1292 521 1275 529 1275 546 1275 558 1267 563 1267 575 1254 563 END END STATE Kansas 1 BOUNDARY 1154 596 1150 608 1167 625 1167 713 921 708 929 583 1142 592 1154 596 END END STATE Kentucky 1 BOUNDARY 1383 717 1383 725 1338 729 1338 725 1346 725 1346 708 1342 704 1350 700 1367 700 1367 688 1379 683 1375 675 1379 671 1383 667 1396 671 1396 667 1408 671 1421 663 1425 667 1425 667 1433 650 1438 658 1446 658 1458 633 1458 625 1479 621 1479 608 1488 608 1496 617 1517 621 1542 613 1550 625 1558 646 1579 663 1546 700 1529 704 1383 717 END END STATE Louisianna 1 BOUNDARY 1329 983 1321 992 1333 996 1346 992 1342 1000 1350 1004 1354 992 1367 988 1367 1000 1350 1013 1354 1021 1371 1029 1367 1038 1367 1033 1363 1042 1358 1029 1338 1017 1338 1029 1333 1038 1325 1029 1321 1033 1317 1025 1313 1038 1308 1038 1300 1033 1292 1021 1279 1021 1279 1013 1271 1013 1271 1008 1258 1013 1263 1017 1254 1021 1221 1013 1196 1013 1196 1013 1204 1000 1200 983 1208 958 1188 921 1188 879 1288 879 1292 879 1288 892 1296 892 1292 896 1300 904 1288 913 1296 913 1279 933 1275 958 1342 954 1338 971 1350 988 1329 983 END END STATE Maine 1 BOUNDARY 1875 363 1867 354 1842 279 1850 279 1850 271 1854 271 1854 267 1858 250 1858 213 1871 179 1875 179 1883 188 1900 175 1917 183 1929 233 1942 238 1946 250 1954 254 1958 267 1963 267 1958 271 1946 283 1942 296 1933 288 1929 296 1925 292 1925 300 1917 296 1921 296 1917 292 1913 321 1904 317 1904 325 1896 325 1896 329 1892 329 1883 329 1879 363 1875 363 END END STATE Maryland 2 BOUNDARY 1771 588 1792 579 1792 600 1788 592 1788 604 1779 608 1775 608 1771 608 1763 592 1763 600 1754 592 1758 588 1754 583 1758 583 1758 575 1750 579 1754 575 1754 563 1746 563 1758 546 1754 546 1742 563 1733 558 1742 567 1742 579 1750 596 1738 592 1750 600 1754 608 1729 600 1725 604 1721 600 1725 579 1729 575 1729 575 1721 575 1704 563 1696 554 1683 550 1671 563 1667 558 1646 579 1642 558 1746 538 1758 538 1771 588 END BOUNDARY 1775 642 1771 629 1775 608 1779 608 1788 604 1775 642 END END STATE Massachusetts 1 BOUNDARY 1863 383 1875 375 1883 383 1879 396 1883 400 1900 417 1913 413 1904 400 1908 400 1917 417 1896 425 1892 421 1883 429 1883 421 1867 413 1854 417 1804 425 1804 396 1817 392 1829 392 1863 383 END END STATE Michigan 2 BOUNDARY 1404 504 1421 467 1404 425 1408 383 1429 358 1429 375 1429 367 1429 375 1429 358 1446 350 1438 342 1450 333 1488 346 1492 358 1488 358 1496 371 1496 388 1483 404 1483 417 1488 421 1508 396 1521 404 1529 438 1529 450 1525 454 1525 450 1521 454 1508 492 1479 500 1467 500 1404 504 END BOUNDARY 1450 325 1446 329 1425 325 1400 329 1396 346 1396 346 1396 333 1383 342 1383 333 1367 371 1367 367 1367 358 1358 358 1363 346 1350 338 1292 325 1279 317 1354 271 1358 275 1338 296 1338 304 1346 296 1342 300 1354 296 1367 313 1392 313 1404 300 1438 296 1438 304 1458 304 1458 317 1471 325 1450 325 END END STATE Minnesota 1 BOUNDARY 1267 446 1108 446 1108 429 1108 371 1096 358 1104 346 1088 221 1146 221 1146 204 1154 204 1158 233 1183 233 1183 238 1208 233 1217 238 1217 242 1217 242 1221 250 1233 246 1246 258 1267 246 1271 254 1308 254 1271 275 1233 313 1225 317 1229 338 1217 346 1213 358 1217 363 1217 392 1258 421 1267 442 1267 446 END END STATE Mississippi 1 BOUNDARY 1358 983 1350 988 1338 971 1342 954 1275 958 1279 933 1296 913 1288 913 1300 904 1292 896 1296 892 1296 892 1288 892 1292 879 1288 879 1292 867 1288 863 1292 858 1283 858 1283 850 1292 850 1288 833 1308 817 1308 804 1313 796 1383 788 1383 921 1392 963 1392 979 1358 983 END END STATE Missouri 1 BOUNDARY 1308 750 1317 738 1313 733 1167 733 1167 729 1167 713 1167 625 1150 608 1154 596 1142 592 1129 567 1254 563 1267 575 1267 592 1275 604 1288 617 1292 633 1300 629 1308 633 1304 663 1333 679 1333 700 1346 708 1346 725 1338 725 1338 729 1338 729 1333 750 1329 750 1308 750 END END STATE Montana 1 BOUNDARY 883 375 679 350 675 371 667 358 667 363 642 358 638 363 629 358 625 363 617 350 608 342 604 308 604 304 588 313 583 308 600 267 588 263 575 233 567 229 571 221 563 204 571 163 742 196 742 196 900 213 888 325 888 333 883 375 END END STATE Nebraska 1 BOUNDARY 1125 538 1129 567 1142 592 929 583 929 571 933 546 871 538 879 454 1046 467 1063 479 1083 475 1104 488 1108 488 1125 538 END END STATE Nevada 1 BOUNDARY 363 538 392 417 413 421 483 438 571 454 529 658 517 700 508 692 500 692 496 733 496 733 363 538 END END STATE New Hampshire 1 BOUNDARY 1875 375 1863 383 1829 392 1825 388 1825 358 1825 329 1838 313 1833 296 1833 283 1842 279 1867 354 1875 363 1879 363 1875 375 END END STATE New Jersey 1 BOUNDARY 1796 492 1808 496 1808 521 1808 513 1808 525 1792 563 1792 563 1792 554 1767 546 1763 538 1767 529 1788 513 1767 496 1767 483 1775 463 1804 475 1796 492 END END STATE New Mexico 1 BOUNDARY 875 913 750 900 750 913 692 904 692 921 663 917 667 875 696 688 888 704 888 729 875 913 END END STATE New York 1 BOUNDARY 1804 425 1813 458 1813 471 1808 479 1804 475 1775 463 1763 458 1750 442 1617 467 1613 454 1642 429 1633 413 1658 400 1675 404 1700 396 1708 383 1704 371 1708 363 1704 367 1704 363 1729 329 1738 317 1783 304 1788 346 1792 363 1796 363 1804 392 1804 396 1804 425 END END STATE North Carolina 1 BOUNDARY 1783 717 1771 717 1771 708 1763 708 1767 717 1754 717 1771 725 1763 733 1754 733 1767 738 1775 729 1783 733 1775 742 1771 742 1758 750 1754 746 1754 758 1746 750 1750 758 1738 767 1738 767 1733 783 1733 779 1733 788 1717 792 1713 792 1671 763 1633 763 1625 754 1579 758 1554 771 1517 775 1517 763 1521 763 1525 750 1554 733 1563 725 1567 729 1583 717 1592 708 1592 700 1775 667 1792 683 1783 675 1783 679 1775 675 1779 683 1771 683 1775 688 1767 683 1767 692 1763 692 1758 679 1763 696 1783 692 1779 700 1788 700 1788 688 1792 700 1783 717 END END STATE North Dakota 1 BOUNDARY 888 333 888 325 900 213 1088 221 1104 346 888 333 END END STATE Ohio 1 BOUNDARY 1600 529 1604 542 1600 571 1579 588 1575 604 1567 600 1563 617 1550 625 1542 613 1517 621 1496 617 1488 608 1479 608 1467 500 1479 500 1508 492 1504 496 1529 500 1521 504 1538 504 1563 496 1571 483 1596 471 1604 517 1604 525 1600 529 END END STATE Oklahoma 1 BOUNDARY 1175 783 1171 854 1146 842 1108 854 1096 842 1092 846 1092 842 1083 854 1079 842 1071 850 1063 838 1058 846 1050 833 1033 833 1013 829 1004 821 996 825 983 813 988 733 888 729 888 704 921 708 1167 713 1167 729 1167 733 1175 783 END END STATE Oregon 1 BOUNDARY 271 379 271 342 292 313 321 246 325 217 338 221 354 233 354 250 363 258 379 254 396 263 417 267 463 263 517 275 529 296 496 338 504 350 483 438 413 421 392 417 271 379 END END STATE Pennsylvania 1 BOUNDARY 1617 467 1750 442 1763 458 1775 463 1767 483 1767 496 1788 513 1767 529 1758 538 1746 538 1642 558 1633 558 1613 563 1604 525 1604 517 1596 471 1613 454 1617 467 END END STATE Rhode Island 1 BOUNDARY 1879 433 1871 425 1875 438 1863 442 1854 417 1867 413 1883 421 1883 429 1879 433 END END STATE South Carolina 1 BOUNDARY 1696 817 1700 825 1679 846 1675 842 1675 850 1658 858 1654 867 1646 863 1654 871 1646 879 1642 875 1621 842 1579 808 1567 792 1550 783 1554 771 1579 758 1625 754 1633 763 1671 763 1713 792 1717 792 1696 817 END END STATE South Dakota 1 BOUNDARY 1104 450 1108 463 1100 479 1108 488 1104 488 1083 475 1063 479 1046 467 879 454 879 438 883 375 888 333 1104 346 1096 358 1108 371 1108 429 1108 446 1104 450 END END STATE Tennessee 1 BOUNDARY 1592 708 1583 717 1567 729 1563 725 1554 733 1525 750 1521 763 1517 763 1517 775 1471 779 1383 788 1313 796 1321 788 1317 775 1317 775 1325 767 1325 763 1333 754 1329 750 1333 750 1338 729 1338 729 1383 725 1383 717 1529 704 1592 696 1592 700 1592 708 END END STATE Texas 1 BOUNDARY 1188 858 1188 879 1188 921 1208 958 1200 983 1204 1000 1196 1013 1196 1013 1163 1029 1175 1021 1163 1021 1167 1013 1158 1017 1154 1013 1158 1033 1150 1038 1150 1042 1108 1071 1129 1054 1113 1063 1113 1054 1108 1058 1104 1058 1100 1063 1096 1058 1096 1067 1104 1071 1092 1075 1092 1067 1092 1075 1088 1079 1088 1075 1071 1083 1079 1092 1063 1092 1067 1096 1067 1104 1071 1100 1063 1113 1063 1113 1063 1108 1058 1113 1054 1108 1054 1117 1063 1117 1063 1133 1075 1167 1038 1167 1000 1150 992 1125 988 1104 963 1075 946 1033 925 1013 892 1004 879 1008 871 1029 858 1038 850 1033 817 1008 804 967 750 913 750 913 750 900 875 913 888 729 988 733 983 813 996 825 1004 821 1013 829 1033 833 1050 833 1058 846 1063 838 1071 850 1079 842 1083 854 1092 842 1092 846 1096 842 1108 854 1146 842 1171 854 1188 858 END END STATE Utah 1 BOUNDARY 529 658 571 454 604 458 663 471 654 513 717 521 696 658 696 688 529 658 END END STATE Vermont 1 BOUNDARY 1817 392 1804 396 1804 392 1796 363 1792 363 1788 346 1783 304 1833 296 1838 313 1825 329 1825 358 1825 388 1829 392 1817 392 END END STATE Virginia 1 BOUNDARY 1779 663 1779 667 1775 667 1592 700 1592 700 1592 696 1529 704 1546 700 1579 663 1579 671 1588 671 1629 658 1633 646 1629 646 1642 608 1658 608 1663 592 1671 596 1679 575 1679 563 1700 575 1704 563 1721 575 1725 579 1721 600 1725 604 1729 600 1733 608 1763 613 1758 625 1733 613 1750 629 1763 629 1754 629 1763 633 1763 638 1758 638 1763 638 1742 633 1763 650 1763 650 1742 638 1738 642 1750 646 1763 654 1775 650 1783 667 1779 663 END END STATE Washington 1 BOUNDARY 325 213 329 200 329 208 333 200 329 196 333 188 338 188 333 183 333 150 329 142 333 125 350 142 371 146 375 154 379 150 383 154 383 163 375 163 363 179 371 175 363 175 383 167 383 158 388 163 388 171 379 171 383 175 375 188 375 179 367 188 371 179 363 183 363 183 363 196 388 183 388 171 392 158 388 142 392 138 392 117 546 158 517 275 463 263 417 267 396 263 379 254 363 258 354 250 354 233 338 221 325 213 END END STATE West Virginia 1 BOUNDARY 1646 579 1667 558 1671 563 1683 550 1696 554 1704 563 1700 575 1679 563 1679 575 1671 596 1663 592 1658 608 1642 608 1629 646 1633 646 1629 658 1588 671 1579 671 1579 663 1558 646 1550 625 1563 617 1567 600 1575 604 1579 588 1600 571 1604 542 1600 529 1604 525 1613 563 1633 558 1642 558 1646 579 END END STATE Wisconsin 1 BOUNDARY 1271 471 1267 458 1271 450 1267 446 1267 442 1258 421 1217 392 1217 363 1213 358 1217 346 1229 338 1225 317 1233 313 1242 313 1271 300 1267 317 1279 317 1292 325 1350 338 1350 338 1363 346 1358 358 1367 358 1367 367 1367 371 1358 388 1363 392 1388 358 1367 417 1367 446 1371 479 1292 483 1283 483 1271 471 END END STATE Wyoming 1 BOUNDARY 871 538 717 521 654 513 663 471 675 371 679 350 883 375 879 438 879 454 871 538 END END From sqrmax at cvtci.com.ar Wed Nov 4 11:17:49 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:59:03 2012 Subject: Squeak security [changed from Re: A bit of header] Message-ID: <0a54d47171104b8MAIL2@cvtci.com.ar> Hi. >If the goal is to prevent changes corruption, wouldn't it be better to open >the changes file with exclusive sharing access? Mabey on the first time you >write something to changes. Note that I proposed that the VM warned the user about the fact that he/she is opening a probably active image. Now, after the warning, the user decides. Andres. From johnm at wdi.disney.com Tue Nov 10 20:30:37 1998 From: johnm at wdi.disney.com (johnm@wdi.disney.com) Date: Sat Jan 28 04:59:09 2012 Subject: [Squeak] How to get the size of any object (sorry too long) Message-ID: <199811102030.AA29389@bobo.rd.wdi.disney.com> (NISHIHARA Satoshi) wrote: > Q1) > byteSize of anObject is total of > object table entry size, > object header size, > instVarFieldSize, > indexableFieldSize > > byteSize:= bytesInOTE + objectHeadersSize + instVarFieldSize + > indexableFieldSize. > > mmm... Is this right? Almost. Squeak doesn't have an object table, so no space for that. And object headers can be 1, 2, or 3 words. > case: right > Q1.1) > object table entry size is 8 bytes? or 12 bytes? Zero bytes! > Q1.2) > If anObject is a instance of BlockContext, > must add the size of home method or not? The home method context is a different object. > Q1.3) > aSmallInteger or aCharacter is immediate object. > So consider as its bytesize = 0. > Is this right? Small integers are immediate. Characters are shared references to one of a set of 256 Character objects. String elements are, of course, a single byte, which is used as an index into the 256 Character table. > Q1.4) > getting the byteSize of aMethod, must add methodHeaderSize (4 bytes) > So its total is methodHeaderSize + bytesize of aMethod self + size of literals. > Is this right? I believe that the bytesize of a CompiledMethod includes the bytes for object header and the literals. -- John From stan at stanheckman.com Wed Nov 11 21:34:35 1998 From: stan at stanheckman.com (stan@stanheckman.com) Date: Sat Jan 28 04:59:20 2012 Subject: What class should include "5 kilograms"? In-Reply-To: Dan Ingalls's message of "Tue, 10 Nov 1998 20:52:13 -0800" References: Message-ID: <87ww51ncb8.fsf@streamer.msfc.nasa.gov> I think subclassing Number was a good suggestion. Disabling only the methods "asFloat" and "truncated" disabled most of the methods we don't want for DimensionalNumbers, and none of those we do want. And we get all sorts of methods that do the right thing for free, such as the example below. BasisUnit basisUnitsPoolHack. BasisUnit loadBasisUnitsIntoSmalltalk. massPerServing := 6 * Ounce. 6.0 ounces massPerContainer := 1 * Kilogram. 1 kilogram servingsPerContainer := massPerContainer // massPerServing. 5 leftovers := massPerContainer \\ massPerServing. 0.149515 kilograms -- Stan From zss at ZenSpider.com Mon Nov 16 18:28:47 1998 From: zss at ZenSpider.com (Ryan Davis) Date: Sat Jan 28 04:59:22 2012 Subject: SqueakOS (price?) In-Reply-To: <199811161824.AA25800@bobo.rd.wdi.disney.com> Message-ID: >Curtis Wickman, a summer intern, ported Squeak to a bare Mitsubishi >M32-R/D prototyping board (no OS) in about six weeks, including writing >all the device drivers. It took him a few more weeks to add a simple Flash RAM >file system and a sound output driver. The entire VM, including the >drivers, was >under 250 KBytes. How much do one of these toys cost??? Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant. From sqrmax at cvtci.com.ar Sun Nov 1 22:35:25 1998 From: sqrmax at cvtci.com.ar (sqrmax@cvtci.com.ar) Date: Sat Jan 28 04:59:25 2012 Subject: Method names Message-ID: <045a324352201b8MAIL2@cvtci.com.ar> Hi. Messages usually have the arguments last. Wouldn't it be nice to have messages that could have arguments between a phrase? Example: aBitStream next: 40 bits Here, bits is a nop. In this way, things get written more clearly and yet they don't become complex (like implementing the nop method #bits in Integer). Or maybe another pattern of keyword message, keyword+nops. The nop can be identified and ignored by the compiler (and humans) if a proper text attribute is used, for instance. The example without the nop method names gets like this: aBitStream next: 40 Or maybe: aBitStream nextBits: 40 which is not nice. These nops could be called something like parameter descriptors... does this go against polymorphism and the untyped Smalltalk??? Andres. From Jarvisb at timken.com Wed Nov 4 16:53:03 1998 From: Jarvisb at timken.com (Jarvis, Robert P.) Date: Sat Jan 28 04:59:34 2012 Subject: Interesting :-) article and whitepaper on Open Source Software Message-ID: FUD, techo-hijacking, NIH syndrome... Is it just me or does it seem that Microsoft is the IBM of the 90's? (And wouldn't *that* get Billg's boxers in a bunch if he heard it? Of course, he never will - his handlers won't allow it :-). Bob Jarvis The Timken Company >-----Original Message----- >From: wirth@almaden.ibm.com [SMTP:wirth@almaden.ibm.com] >Sent: Tuesday, November 03, 1998 3:19 PM >To: squeak@cs.uiuc.edu >Subject: Interesting :-) article and whitepaper on Open Source Software > >Dan Gillmor had an interesting column in the San Jose Mercury News this >morning, "Microsoft wary of open source, embedded systems", which you can >find at: > > http://www.mercurycenter.com/columnists/gillmor/docs/dg110398.htm > > > >He discusses a purported internal MS whitepaper on Open Source Software >(called "OSS" in the whitepaper :-) which was leaked by Eric Raymond as >"The Halloween Document". You can find it, along with Eric's analysis and >marginal comments (with ongoing updates, now at version 1.4) at: > > http://www.tuxedo.org/~esr/halloween.html > > > >Eric's comments include a reference to Squeak: > >"This prediction is of a piece with the author's earlier assertion that >open-source development relies critically on design precedents and is >unavoidably backward-looking. It's myopic -- apparently things like Python, >Beowulf, and Squeak (to name just three of hundreds of innovative projects) >don't show on his radar." > > > >Enjoy, > > > >Mike Wirth > > > > >