Ned Konz | 15 Feb 17:40 2001

Re: Delete key and two-button mouse on Linux

On Thursday 15 February 2001 04:58, Bert Freudenberg wrote:
> On Thu, 15 Feb 2001 ajh18 <at> wrote:
> > It would be nice if Squeak 3.0 on Linux had the following default
> > behavior:
> > 	Delete key (not backspace) deleted to the right instead of left, and
> Remove this lines in sqXWindow.c (two occurences):
>   if (charCode == 127)
>     charCode= 8;
> > 	The right button on a two-button mouse triggered yellow button activity
> > (menu) instead of the blue button activity (halos).
> See

Thanks for the plug!

> > Hopefully, someone who knows how to do this can get this into the 3.0
> > release in time.
> Well, I don't really know why Ian explicitely reconfigures the delete
> key ... It's the first line I always remove in my sqXWindow.c.

It happens to work for me, as I have my Delete key put out a 127 (stty -a 
reports erase=^?). Control-Delete gives me forward delete, as does my Del 
key; Delete gives me backspace, and control-H does a forward delete.

Under X, you have Backspace, Delete, and Remove keys.
But there are also the ASCII key equivalents (127, 8, various escape 
(Continue reading)

Dan Ingalls | 7 Feb 06:42 2001

Re: Order! Order in the ...

Attachment: text/enriched, 3262 bytes
Bob Arning | 22 Feb 22:07 2001

Re: [BUG]Loading projects in 3.1.3679


There are some pending updates that haven't made it out yet that may affect this. If you were trying to load
from BSS, e.g. you may have instead gotten the file from your Squeaklets folder. There are some ways that
one of these could have gotten messed up, so if that's the case take that file out of the folder and try
loading from BSS (or wherever) again.


On Thu, 22 Feb 2001 21:48:37 +0100 Karl Ramberg <karl.ramberg <at>> wrote:
>I get a message not understood in
>ImageSegment>> comeFullyUpOnReload: smartRefStream
>it seems to stop in 
>arrayOfRoots do: [:importedObject | 
>		importedObject class class == Metaclass ifTrue: [self declare: importedObject]].
>and arrayOfRoots is nil.

Randal L. Schwartz | 25 Feb 22:33 2001

Re: Plugin Installers

>>>>> "Randal" == Randal L Schwartz <merlyn <at>> writes:

>>>>> "Michael" == Michael Rueger <m.rueger <at>> writes:
Michael> Hi all,
Michael> I built a couple of web pages that should make it easier to install the
Michael> Squeak Plugin for Mac and Win.

Michael> You need Javascript enabled for most of the functionality (auto detect
Michael> etc.). You do need to restart the browser after the installation (part
Michael> of the test though).
Michael> Look here
Michael> for current state of testing and support.

Randal> Doesn't work for iCab Pre2.4 on the Mac.  I get 

Randal>   Your browser either does not support Javascript or it is disabled. 
Randal>   To manually check if you have the Squeak Plugin installed go here.

Randal> And when I click on the "here" (aside: please fix this... it's really
Randal> bad style to use "click here" or "go here"), I get a loading applet,
Randal> but a DNU-ish error:

Randal>         Undefined object "nothing more expected -><

Randal> I have what I thought was the 3.0 final VM and plugin image installed.

And the "javascript YES/NO" images (I think that's what they are,
since I can't see them) don't come up either.

Also fails miserably on Netscape 6.0.

The iCab failure may be due to having the 3.0 plugin with the old 2.8
image... and I'd be happy to install them manually, but I couldn't
find the actual download paths behind all that broken Javascript from
the URL above.  Please provide ordinary links as well, so the spiders
can find the page, and so that people who routinely disable Javascript
(more and more these days) can also get to the download.


Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn <at>> <URL:>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See for onsite and open-enrollment Perl training!

Elzbieta Chludzinska | 2 Feb 17:58 2001

building a pluggable primitive

I'm trying to build a sample trial pluggable primitive using Slang that return 
the cosine of theta:

|theta result|
	self export: true.
	self var: 'theta' declareC: 'float theta'.
	self var: 'result' declareC: 'float result'.
	self returnTypeC: 'float'.

	theta _ interpreterProxy stackFloatValue: 0.
	interpreterProxy success: (interpreterProxy isFloatObject: theta).

	interpreterProxy failed ifTrue:[^ nil].

	self cCode: 'printf("theta = %f\n, theta)'.
	self cCode: 'result = cos(theta)' inSmalltalk: [result_theta cos].
	self cCode: 'printf("result = %f\n", result)'.

	interpreterProxy failed ifTrue:[^ nil].
	interpreterProxy pop: 2.
	interpreterProxy push: result.

After #translate'ing the clase, I was forced to add #define HAVE_CONFIG_H to 
the generated .c file to get it compiled.

When building the *.so, I used the following commands:
	gcc -I "../Squeak-2.8/src/generated" -c Test.c
	ld -shared -o Test.o

I placed in the same directory as the VM.  I'm running Squeak2.9a.  
When I run it, I get either primitiveFailed or VM crashed.

Any suggestions???


Alan Knight | 24 Feb 15:02 2001

[ANN] Smalltalk Solutions Tutorials

In addition to a great slate of speakers, a keynote from Alan Kay, and a stop on the Squeak World Tour, Smalltalk Solutions features a great slate of tutorials. Here are three highlights.

Smalltalk Solutions 2001! Be there or everyone will laugh at you!


Smalltalk Solutions 2001 Conference

Smalltalk Solutions 2001 Conference is proud to announce three pieces of this year’s technical program.  These tutorials are just the tip of the iceberg and include:
·       Advanced VisualAge Smalltalk Development Eric Clayberg Sr. Vice President of Product Development Instantiations, Inc.

·       Intro to Garbage Collection in Smalltalk John M. McIntosh Corporate Smalltalk Consulting

·       Intro to VisualAge Server Smalltalk SST Mark Weitzel IBM Smalltalk Group

Mr. Clayberg, Mr. McIntosh, and Mr. Weitzel, combine to offer over 40 years of Smalltalk experience and expertise in the academic and business arenas. 

To learn more about these and other tutorials offered at Smalltalk Solutions 2001 Conference, or to learn more about the presenters, please visit our Website at:  

Alan Knight [|], Cincom Smalltalk Development
knight <at>
aknight <at>

Marcel Weiher | 16 Feb 22:54 2001

MacOS-X VM updated to 3.0

Hi folks,

the VM has now been updated to 3.0.  Cursory testing found things to  
be in working order, so I am posting this as well.


Happy squeaking,


ned | 5 Feb 19:34 2001

[FIX] Fix for long change set names mailed via Celeste

This provide wrapping on field boundaries for long change set names. It
does not
address what happens with change set names that are longer than 68
It does also not fix the problems with the broken MIME boundaries.
Attachment: application/octet-stream, 1287 bytes
Ned Konz | 13 Feb 17:58 2001

"self error:" and the out of box experience

Some time ago exceptions were added to the various file opening routines.

Unfortunately, the way this was done is not too user-friendly.

I found this out by decompressing a .gz file in the FileList that had already 
been decompressed. 

I got a little popup menu that explained that the file already existed, and 
giving me the choices of:
	* overwriting the file
	* renaming the file (presumably the new one)
	* canceling

I canceled the operation and was faced by a debugger because the cancel 
choice did
	self error: 'Please close this to abort file opening'

Now, this didn't bother me too much, because I'm used to seeing walkbacks, 
but I wonder about using debuggers as a primary user interface mechanism.

Note that there are 89 senders of newFileNamed: in the image, and many of 
them are called by "user-level" tools. Any of them could bring up a debugger.

And "self error:" is used for handling of other routine errors. For instance, 
Celeste>>sendMail: will raise a debugger when there's any kind of socket 
error on its SMTP server connection.

I then tried to wrap Error handling around the perform:orSendTo: and found 
that I wasn't being notified about the potential file overwrite.

Why not? Because FileExistsException is a subclass of Error, and my Error 
handler caught and ignored it.

It seems like there's several problems here.

* As a user, I'd expect that canceling an operation would do just that. I've 
already made a choice, so why should I also have to close a debugger window?

* As a programmer, I'd like to be notified that the user canceled an 
operation. But I have no idea that the Error exception I got was because a 
user canceled (why should this be an Error, anyway?).

* As a programmer, I'd like to handle _real_ Errors separately from 
notifications like "old file doesn't exist" or "new file already exists". But 
having these notifications be subclasses of Error makes it hard to provide 
error handling, as I have to anticipate all possible notifications that are 
also subclasses of Error, and trap them separately. This causes tighter 
coupling to existing code, not less.

I'd suggest:

	* Provide a separate UserCanceledNotification (a subclass of Notification) 
to signal these choices
	* Add appropriate handling for this notification around invocations of 
user-level operations (perhaps up in MenuItemMorph>>invokeWithEvent: and also 
in the button morph code)
	* Remove error notifications wherever cancels happen.
	* Move FileDoesNotExistException and FileExistsException under Notification

Ned Konz
currently: Stanwood, WA
email:     ned <at>

Ned Konz | 4 Feb 22:21 2001

Re: Preliminary release of Squeak3.0 available for test

On Sunday 04 February 2001 13:18, C. Keith Ray wrote:

> What is the URL?
> I go to <> and use the "search" field on that page,
> typing in Squeak, and get "No matching entries found".


Ned Konz
currently: Stanwood, WA
email:     ned <at>