Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
Current image is: http://damien.cassou.free.fr/squeak-dev.zip
Hello Damien,
DC> I'm creating a ready-to-use image for developers based on Squeak DC> 3.9-7057. This image will be published in ftp.squeak.org. I would like DC> to know what are the tools you use as a developer. The package I also use Win32 nativeFonts (less important but I dislike the look of 3.9) Look enhancements (same reason) TracingMessagesBrowser (very important, keep down the number of windows when browsing senders/Implementors and giving kinda static control flow) TricRefactoringBrowser (only selected Categories in RB)
Cheers!
Herbert mailto:herbertkoenig@gmx.net
Herbert König a écrit :
Hello Damien,
Hello Herbert,
DC> I'm creating a ready-to-use image for developers based on Squeak DC> 3.9-7057. This image will be published in ftp.squeak.org. I would like DC> to know what are the tools you use as a developer. The package
I also use Win32 nativeFonts (less important but I dislike the look of 3.9) Look enhancements (same reason)
I would prefer to have a basic Squeak 3.9 look. Then people will be able to install packages they like.
TracingMessagesBrowser (very important, keep down the number of windows when browsing senders/Implementors and giving kinda static control flow)
Don't work in my image. Please verify.
Would mentioning Browser Booster, that I just released, be seen as shameless self-promotion? ;-)
Cheers, Romain
Il giorno Sep 13, 2006, alle ore 5:24 PM, Damien Cassou ha scritto:
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
-- Damien Cassou
-- Romain Robbes http://romain.robb.es
Hi Damien,
on Wed, 13 Sep 2006 17:24:11 +0200, you wrote:
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org.
Great, there even the new-to-Squeak'ers will find it.
Do you want other packages included ? Or preferences that should be set ?
Yes, please not confusion with platform preferences like mouse right-left. Also no unexpected "automagic" change of := to _ and vice versa.
This is for you, please contribute
When can I have it :)
/Klaus
Klaus D. Witzel a écrit :
Hi Damien,
on Wed, 13 Sep 2006 17:24:11 +0200, you wrote:
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org.
Great, there even the new-to-Squeak'ers will find it.
Do you want other packages included ? Or preferences that should be set ?
Yes, please not confusion with platform preferences like mouse right-left. Also no unexpected "automagic" change of := to _ and vice versa.
It seems there is something very strange with the mouse buttons. The middle click doesn't do the same in windows and in linux. They are swapped. Maybe something in the vm, maybe in the OS. I won't touch this preference.
For the assignment, Shout uses preferences to display := or _. Don't know what is the best thing to do here.
Hi Damien,
on Thu, 14 Sep 2006 14:10:56 +0200, you wrote:
Klaus D. Witzel a écrit :
Hi Damien, on Wed, 13 Sep 2006 17:24:11 +0200, you wrote:
Do you want other packages included ? Or preferences that should be set ?
Yes, please not confusion with platform preferences like mouse right-left. Also no unexpected "automagic" change of := to _ and vice versa.
It seems there is something very strange with the mouse buttons. The middle click doesn't do the same in windows and in linux. They are swapped. Maybe something in the vm, maybe in the OS. I won't touch this preference.
Yes, there was some discussion about that confusion here recently. I suggest to put a note into the TOP line of a workspace, reminding the (possibly novice) user and explaning where to change it.
For the assignment, Shout uses preferences to display := or _. Don't know what is the best thing to do here.
Neutral: do not "automagically" change := to _ and vice versa. In symbols:
syntaxHighlightingAsYouType enabled
The other two syntaxHighlighting* disabled.
Thank you!
/Klaus
Klaus D. Witzel a écrit :
It seems there is something very strange with the mouse buttons. The middle click doesn't do the same in windows and in linux. They are swapped. Maybe something in the vm, maybe in the OS. I won't touch this preference.
Yes, there was some discussion about that confusion here recently. I suggest to put a note into the TOP line of a workspace, reminding the (possibly novice) user and explaning where to change it.
Ok
For the assignment, Shout uses preferences to display := or _. Don't know what is the best thing to do here.
Neutral: do not "automagically" change := to _ and vice versa. In symbols:
syntaxHighlightingAsYouType enabled
The other two syntaxHighlighting* disabled.
Thank you
On Thu, 14 Sep 2006 14:24:08 +0200, Damien Cassou wrote:
Klaus D. Witzel a écrit :
It seems there is something very strange with the mouse buttons. The middle click doesn't do the same in windows and in linux. They are swapped. Maybe something in the vm, maybe in the OS. I won't touch this preference.
Yes, there was some discussion about that confusion here recently. I suggest to put a note into the TOP line of a workspace, reminding the (possibly novice) user and explaning where to change it.
Ok
Even better: have Preference Browser open and preselect general > swapMouseButtons and activate its explanation so that novices can click on "more".
/Klaus
Hi
For the packages... maybe we could add FFI ? needed for external browser and OSProcess ... (not sure) XML-Support ? http://www.squeaksource.com/XMLSupport/
Also, to make the tracingMessageBrowser , if I remember well it needed packages from MagmaTester
Anyway, if some packages are optional, I think it could be nice to have the repository set up in Monticello
SmaCC BrowserBooster DuoSystemBrowser Cryptography Postgres http://www.squeaksource.com/PostgresV2 and other db ?? RFB for vnc access - http://www.squeaksource.com/RFB ...
Cédrick
Hi Cédrick,
on Thu, 14 Sep 2006 20:56:36 +0200, you wrote:
Hi
For the packages... maybe we could add FFI ? needed for external browser and OSProcess ... (not sure)
But the only things which can be called by FFI are guaranteed to be platform depended, how'd you support that?
Anyway, if some packages are optional, I think it could be nice to have the repository set up in Monticello
This one is productivity gain par excellence. But as soon as the repositories go away and/or the dev.image gets older and/or incompatible, what will happen then? DNU's? frustration? confusion?
SmaCC
Rather not (even Stef's not looking angry any more ;-)
BrowserBooster DuoSystemBrowser
All that works for producing new software, yes.
Cryptography
Impossible due to national laws.
Postgres http://www.squeaksource.com/PostgresV2 and other db ??
Whatever DB it will be, it will also be always the wrong one. Who's using PostgreSQL anyways, I have not seen anybody using it, during the last 30 years (see: experience related).
RFB for vnc access - http://www.squeaksource.com/RFB
Productivity for the developer, yes.
/Klaus
Cédrick
Klaus D. Witzel a écrit :
Hi Cédrick, This one is productivity gain par excellence. But as soon as the repositories go away and/or the dev.image gets older and/or incompatible, what will happen then? DNU's? frustration? confusion?
It would be cool to keep squeak-dev.image up to date. That is why I'm creating a script to do all the job. We should be able to create new images automatically with new packages.
Hi Damien,
on Fri, 15 Sep 2006 09:53:33 +0200, you wrote:
Klaus D. Witzel a écrit :
Hi Cédrick, This one is productivity gain par excellence. But as soon as the repositories go away and/or the dev.image gets older and/or incompatible, what will happen then? DNU's? frustration? confusion?
It would be cool to keep squeak-dev.image up to date. That is why I'm creating a script to do all the job. We should be able to create new images automatically with new packages.
Kewl, really kewl 8-)
/Klaus
Hi ;)
For the packages... maybe we could add FFI ? needed for external browser and OSProcess ... (not sure)
but only FFI maybe ? so it's a bit shorter to add platform dependant packages...
RFB if added should be added before Seaside...
Whatever DB it will be, it will also be always the wrong one. Who's using PostgreSQL anyways, I have not seen anybody using it, during the last 30 years (see: experience related).
well, I'm using it ;) but I was obliged to... I think, at least in the MC repositories, we should find some databse support ?
What about XML support ? (I also was obliged too :) )
Cédrick
RFB if added should be added before Seaside...
Whatever DB it will be, it will also be always the wrong one. Who's using PostgreSQL anyways, I have not seen anybody using it, during the last 30 years (see: experience related).
well, I'm using it ;) but I was obliged to... I think, at least in the MC repositories, we should find some databse support ?
What about XML support ? (I also was obliged too :) )
I doubt I will use an image with all those 200 cool preloaded packages ;-)
It would be preferable to have a developer image that lets the developer select a bunch of packages the first time it is opened. It then quickly installs the selected mc snapshots in the right order and throws away the ones that are not needed for the particular image.
Just an idea ;-)
Lukas
Lukas Renggli a écrit :
RFB if added should be added before Seaside...
Whatever DB it will be, it will also be always the wrong one. Who's using PostgreSQL anyways, I have not seen anybody using it, during the last 30 years (see: experience related).
well, I'm using it ;) but I was obliged to... I think, at least in the MC repositories, we should find some databse support ?
What about XML support ? (I also was obliged too :) )
I doubt I will use an image with all those 200 cool preloaded packages ;-)
I agree, it would be better to have a simple image with the tools used by almost every developers.
It would be preferable to have a developer image that lets the developer select a bunch of packages the first time it is opened. It then quickly installs the selected mc snapshots in the right order and throws away the ones that are not needed for the particular image.
An image for developers is useful only if it is ready to use. If the developer should download it and install everything he needs, it is not very useful.
We need a mix: Pre-install most used packages and ease installation of others.
It would be preferable to have a developer image that lets the developer select a bunch of packages the first time it is opened. It then quickly installs the selected mc snapshots in the right order and throws away the ones that are not needed for the particular image.
An image for developers is useful only if it is ready to use. If the developer should download it and install everything he needs, it is not very useful.
What I imagine is that you have all the necessary snapshots (instances of MCSnapshot) in the development image already, you then only load the necessary ones in the right order (that should be quite fast) and then you throw away all those instances as they are not needed any longer.
Cheers, Lukas
Lukas Renggli a écrit :
It would be preferable to have a developer image that lets the developer select a bunch of packages the first time it is opened. It then quickly installs the selected mc snapshots in the right order and throws away the ones that are not needed for the particular image.
An image for developers is useful only if it is ready to use. If the developer should download it and install everything he needs, it is not very useful.
What I imagine is that you have all the necessary snapshots (instances of MCSnapshot) in the development image already, you then only load the necessary ones in the right order (that should be quite fast) and then you throw away all those instances as they are not needed any longer.
This is a good idea. But it only works for monticello packages, not for squeakmap.
This is a good idea. But it only works for monticello packages, not for squeakmap.
Yes, but are there any packages remaining that are relevant and that are not packaged with Monticello?
Lukas
What I imagine is that you have all the necessary snapshots (instances of MCSnapshot) in the development image already, you then only load the necessary ones in the right order (that should be quite fast) and then you throw away all those instances as they are not needed any longer.
me too :)
This is a good idea. But it only works for monticello packages, not for squeakmap.
Yes but most packages have a Monticello repository...
I added the creation of a new category in the preference browser. And at the end of the installation, a preference browser open on that category so that we can choose.
some other ideas:
- if we say no to seaside, maybe we should dismiss magritte and pier (even they can work with morpf - I think there will be problems ;) ) ? so maybe we need a kind of dependency var in Themes ?
- what if we do install twice or if we want to add seaside refusing it the first time? we can also have a problem during the install. Can we have a recover fonction in a certain way - like if already installed, skip it (this could be useful in cas a problem occur for a package, like I add with Magritte) ?
Cédrick
ps: ImageConfigurator>>allThmes should have #squeaDevImage instead of squeakDevImageConfigurator... didn't commit it as I wasn't sure
I chose ImageConfigurator new install
ps: ImageConfigurator>>allThmes should have #squeaDevImage instead of squeakDevImageConfigurator... didn't commit it as I wasn't sure
other small bugs...
- ImageConfigurator>>usabilityEnhancements is not defined
- if on a browser, we choose a new default one with the upper left icon, RB is twice and once written RefractoringBrowser. In ImageConfigurator squeakDevImageConfiguration there is ... addSqueakMapPackage: 'Tric-RefractoringBrowser'; ... RefractoringBrowser open an empty RB. Is it something normal ?
Cédrick
Il giorno Sep 15, 2006, alle ore 4:32 PM, Cédrick Béler ha scritto:
I chose ImageConfigurator new install
ps: ImageConfigurator>>allThmes should have #squeaDevImage instead of squeakDevImageConfigurator... didn't commit it as I wasn't sure
other small bugs...
ImageConfigurator>>usabilityEnhancements is not defined
if on a browser, we choose a new default one with the upper left
icon, RB is twice and once written RefractoringBrowser. In ImageConfigurator squeakDevImageConfiguration there is ... addSqueakMapPackage: 'Tric-RefractoringBrowser'; ... RefractoringBrowser open an empty RB. Is it something normal ?
Yes, it's a browser which shows only some packages, and not the entire image. You can select which packages you want to display.
Romain
Cédrick
-- Romain Robbes http://romain.robb.es
Romain Robbes wrote:
- if on a browser, we choose a new default one with the upper left
icon, RB is twice and once written RefractoringBrowser. In ImageConfigurator squeakDevImageConfiguration there is ... addSqueakMapPackage: 'Tric-RefractoringBrowser'; ... RefractoringBrowser open an empty RB. Is it something normal ?
Yes, it's a browser which shows only some packages, and not the entire image. You can select which packages you want to display.
This is cool. Very handy.
It just looks like a typo, though, in the open... menu: Refactoring Browser Refractoring Browser
It'd be nice to better differentiate it. Like maybe Refactoring Browser Refactoring Browser - empty
Brad Fuller wrote:
Romain Robbes wrote:
- if on a browser, we choose a new default one with the upper left
icon, RB is twice and once written RefractoringBrowser. In ImageConfigurator squeakDevImageConfiguration there is ... addSqueakMapPackage: 'Tric-RefractoringBrowser'; ... RefractoringBrowser open an empty RB. Is it something normal ?
Yes, it's a browser which shows only some packages, and not the entire image. You can select which packages you want to display.
This is cool. Very handy.
It just looks like a typo, though, in the open... menu: Refactoring Browser Refractoring Browser
It'd be nice to better differentiate it. Like maybe Refactoring Browser Refactoring Browser - empty
Ah... this is one instance and if you select another "Refractoring Browser" from the open... menu you get the same object, not another instantiation.
BTW, I get a MessageNotUnderstood: OrderedCollection>>removeAll
when selecting "hide all" from the menu ===============================
hideAll self current categories removeAll
Hi Ramon,
on Sat, 16 Sep 2006 17:10:25 +0200, you wrote:
BTW, I get a MessageNotUnderstood: OrderedCollection>>removeAll when selecting "hide all" from the menu =============================== hideAll self current categories removeAll
I ran into that as well, I just add this...
Collection>>removeAll self removeAll: self copy
You won't like it globally. Just do, when you need it,
aCollection removeAll: aCollection copy
and let #removeAll as is.
/Klaus
You won't like it globally. Just do, when you need it,
aCollection removeAll: aCollection copy
and let #removeAll as is.
/Klaus
Why won't I like it globally? Seems just a synonym for a common usage. #removeAll: aCollection is in Collection, so putting #removeAll there seems natural as well. Secondly, I didn't write the refractoring browser, which is what calls #removeAll, I added the extension to make it work, rather than changing the browser.
Hi Ramon,
on Sat, 16 Sep 2006 18:07:06 +0200, you wrote:
Klaus wrote:
You won't like it globally. Just do, when you need it, aCollection removeAll: aCollection copy and let #removeAll as is. /Klaus
Why won't I like it globally? Seems just a synonym for a common usage.
Yes, but only on first sight.
#removeAll: aCollection is in Collection, so putting #removeAll there seems natural as well.
Every Collection subclass has its own efficient algorithm for "remove'em all" (whether implemented or not).
OrderedCollection for example, has indices for first and last element, so why copy an OrderedCollection in #removeAll and waste memory and time?
And, have you tested (#(1) removeAll) or (#(1) removeAll: #(1)), they are Collections. How are these potential bugs avoided.
Secondly, I didn't write the refractoring browser, which is what calls #removeAll, I added the extension to make it work, rather than changing the browser.
Sure, I understand your position. So the quesion is, which of the two possible solutions must yield.
/Klaus
Every Collection subclass has its own efficient algorithm for "remove'em all" (whether implemented or not).
I hadn't considered subclass implementations, very good point, however, if they had an existing #removeAll, putting one in Collection wouldn't affect them. A quick check of my image shows only SkipList overriding my default #removeAll.
OrderedCollection for example, has indices for first and last element, so why copy an OrderedCollection in #removeAll and waste memory and time?
OrderedCollection has no #removeAll, if a more efficient one can be implemented in it via it's indices, it could simply override the default implementation. This doesn't seem a reason for a superclass not to provide a default implementation, if it can.
And, have you tested (#(1) removeAll) or (#(1) removeAll: #(1)), they are Collections. How are these potential bugs avoided.
This is a very good point, I had considered this, but consider...
#(1) add: 3
Since collection has #add: and #remove:, and Array overrides them as inappropriate messages, this seems more a problem of Array having the wrong superclass, or more specifically, a problem of single inheritance being used to share the implementation. Array is breaking the Liskov Substitution Principle. Seems traits would be the fix here. If a #removeAll method is ever appropriate, should it not be in the same class as #add:, #remove:, and #removeAll:, efficiency aside? Not to mention that #removeAll: already exists on Collection, so these bugs already exist, adding a #removeAll doesn't create them.
Sure, I understand your position. So the quesion is, which of the two possible solutions must yield.
/Klaus
It's definitely something to think about, for now, I'll leave it, it's been in my image quite a while, and only SkipList overrides it with a more specific implementation. I'm still using 3.8, it'll be interesting to see how 3.9 and it's traits refactorings on the collections affect this.
Hi Ramon,
on Sat, 16 Sep 2006 21:26:07 +0200, you wrote:
Klaus wrote:
OrderedCollection for example, has indices for first and last element, so why copy an OrderedCollection in #removeAll and waste memory and time?
OrderedCollection has no #removeAll, if a more efficient one can be implemented in it via it's indices, it could simply override the default implementation. This doesn't seem a reason for a superclass not to provide a default implementation, if it can.
Right you are, always do it the object oriented way. Thank you for the reminder :)
/Klaus
Ramon Leon a écrit :
It's definitely something to think about, for now, I'll leave it, it's been in my image quite a while, and only SkipList overrides it with a more specific implementation. I'm still using 3.8, it'll be interesting to see how 3.9 and it's traits refactorings on the collections affect this.
I don't think 3.9 contains collection refactoring. Maybe for 3.10 ?
It's definitely something to think about, for now, I'll leave it, it's been in my image quite a while, and only SkipList overrides it with a more specific implementation. I'm still using 3.8, it'll be interesting to see how 3.9 and it's traits refactorings on the collections affect this.
there is no refactoring of collection in 3.9. I think that what would be nice is to regularly add some tests to the collections to that at the end we get a really good coverage. This could be a success factor if one day someone wants to refactor them.
stef
there is no refactoring of collection in 3.9. I think that what would be nice is to regularly add some tests to the collections to that at the end we get a really good coverage. This could be a success factor if one day someone wants to refactor them.
stef
My bad, I thought the refactorings from the traits paper, were included in the first release with traits. Though, that'd be mighty risky, not sure why I thought it was the case.
Lukas Renggli a écrit :
It would be preferable to have a developer image that lets the developer select a bunch of packages the first time it is opened. It then quickly installs the selected mc snapshots in the right order and throws away the ones that are not needed for the particular image.
An image for developers is useful only if it is ready to use. If the developer should download it and install everything he needs, it is not very useful.
What I imagine is that you have all the necessary snapshots (instances of MCSnapshot) in the development image already, you then only load the necessary ones in the right order (that should be quite fast) and then you throw away all those instances as they are not needed any longer.
Can someone explain me how to do that please ?
Damien Cassou a écrit :
Lukas Renggli a écrit :
It would be preferable to have a developer image that lets the developer select a bunch of packages the first time it is opened. It then quickly installs the selected mc snapshots in the right order and throws away the ones that are not needed for the particular image.
An image for developers is useful only if it is ready to use. If the developer should download it and install everything he needs, it is not very useful.
What I imagine is that you have all the necessary snapshots (instances of MCSnapshot) in the development image already, you then only load the necessary ones in the right order (that should be quite fast) and then you throw away all those instances as they are not needed any longer.
Can someone explain me how to do that please ?
Solved :-)
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons "If we are on windows, flip anyway so that we are compatible with other oses."
|answer| answer := self valueOfFlag: #swapMouseButtons ifAbsent: [false]. SmalltalkImage current platformName = 'Win32' ifTrue: [answer := answer not]. ^answer
Haven't got a Mac etc to see how their VMs behave :-(
Added this ince I transfer my image between Windows/Linux environments on a daily basis!
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org]On Behalf Of Damien Cassou Sent: 14 September 2006 1:11 PM To: The general-purpose Squeak developers list Subject: Re: An 3.9 image for developers
Klaus D. Witzel a écrit :
Hi Damien,
on Wed, 13 Sep 2006 17:24:11 +0200, you wrote:
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org.
Great, there even the new-to-Squeak'ers will find it.
Do you want other packages included ? Or preferences that
should be set ?
Yes, please not confusion with platform preferences like mouse right-left. Also no unexpected "automagic" change of := to _ and vice versa.
It seems there is something very strange with the mouse buttons. The middle click doesn't do the same in windows and in linux. They are swapped. Maybe something in the vm, maybe in the OS. I won't touch this preference.
For the assignment, Shout uses preferences to display := or _. Don't know what is the best thing to do here.
-- Damien Cassou
Hi Gary,
on Thu, 14 Sep 2006 20:58:01 +0200, you wrote:
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons "If we are on windows, flip anyway so that we are compatible with other oses."
|answer| answer := self valueOfFlag: #swapMouseButtons ifAbsent: [false]. SmalltalkImage current platformName = 'Win32'
Good idea but, what happens when the VM is corrected (the dev.image will be downlodable for many years to come).
/Klaus
ifTrue: [answer := answer not].
^answer
Haven't got a Mac etc to see how their VMs behave :-(
Added this ince I transfer my image between Windows/Linux environments on a daily basis!
Klaus D. Witzel wrote:
Hi Gary,
on Thu, 14 Sep 2006 20:58:01 +0200, you wrote:
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons "If we are on windows, flip anyway so that we are compatible with other oses."
|answer| answer := self valueOfFlag: #swapMouseButtons ifAbsent: [false]. SmalltalkImage current platformName = 'Win32'
Good idea but, what happens when the VM is corrected (the dev.image will be downlodable for many years to come).
/Klaus
ifTrue: [answer := answer not]. ^answer
Please do *not* put such changes in obscure places. There is a well-defined place for that (#setPlatformPreferences).
Besides, the actual button behavior depends also on the VM preferences (F2 menu on Windows). That's a much better place to adjust this to your liking.
- Bert -
On Thu, 14 Sep 2006 22:07:06 +0200, Bert Freudenberg wrote:
Klaus D. Witzel wrote:
Hi Gary, on Thu, 14 Sep 2006 20:58:01 +0200, you wrote:
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons
...
Please do *not* put such changes in obscure places. There is a well-defined place for that (#setPlatformPreferences).
Besides, the actual button behavior depends also on the VM preferences (F2 menu on Windows). That's a much better place to adjust this to your liking.
Great, a dev.image (a COMPUTER :) which automagically adapts Automatic Button Swap to the platform it runs on, can't wait to see that in action (am surrounded by apple'rs at the Bernesian Squeak meetings ;-)
Thank you Bert.
- Bert -
LOL!
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org]On Behalf Of Klaus D. Witzel Sent: 14 September 2006 9:29 PM To: squeak-dev@lists.squeakfoundation.org Subject: Re: Automatic Button Swap (was Re: An 3.9 image for developers)
On Thu, 14 Sep 2006 22:07:06 +0200, Bert Freudenberg wrote:
Klaus D. Witzel wrote:
Hi Gary, on Thu, 14 Sep 2006 20:58:01 +0200, you wrote:
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons
...
Please do *not* put such changes in obscure places. There is a well-defined place for that (#setPlatformPreferences).
Besides, the actual button behavior depends also on the VM preferences (F2 menu on Windows). That's a much better place to adjust this
to your
liking.
Great, a dev.image (a COMPUTER :) which automagically adapts Automatic Button Swap to the platform it runs on, can't wait to see that in action (am surrounded by apple'rs at the Bernesian Squeak meetings ;-)
Thank you Bert.
- Bert -
Note the "perhaps". Also, in #setPlatformPreferences it will change the actual preference so that when loaded on a different Vm it will be unable to determine what the user's preference was in the first place!
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org]On Behalf Of Bert Freudenberg Sent: 14 September 2006 9:07 PM To: The general-purpose Squeak developers list Subject: Automatic Button Swap (was Re: An 3.9 image for developers)
Klaus D. Witzel wrote:
Hi Gary,
on Thu, 14 Sep 2006 20:58:01 +0200, you wrote:
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons "If we are on windows, flip anyway so that we are compatible with other oses."
|answer| answer := self valueOfFlag: #swapMouseButtons ifAbsent: [false]. SmalltalkImage current platformName = 'Win32'
Good idea but, what happens when the VM is corrected (the
dev.image will
be downlodable for many years to come).
/Klaus
ifTrue: [answer := answer not]. ^answer
Please do *not* put such changes in obscure places. There is a well-defined place for that (#setPlatformPreferences).
Besides, the actual button behavior depends also on the VM preferences (F2 menu on Windows). That's a much better place to adjust this to your liking.
- Bert -
Is it planned that the VMs get corrected? ;-)
-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev-bounces@lists.squeakfoundation.org]On Behalf Of Klaus D. Witzel Sent: 14 September 2006 8:14 PM To: squeak-dev@lists.squeakfoundation.org Subject: Re: An 3.9 image for developers
Hi Gary,
on Thu, 14 Sep 2006 20:58:01 +0200, you wrote:
Or perhaps this should be put in, due to VM differences:
Preferences class>>swapMouseButtons "If we are on windows, flip anyway so that we are compatible with other oses."
|answer| answer := self valueOfFlag: #swapMouseButtons ifAbsent: [false]. SmalltalkImage current platformName = 'Win32'
Good idea but, what happens when the VM is corrected (the dev.image will be downlodable for many years to come).
/Klaus
ifTrue: [answer := answer not].
^answer
Haven't got a Mac etc to see how their VMs behave :-(
Added this ince I transfer my image between Windows/Linux environments on a daily basis!
really cool that someone takes this initiative
Keymapping? Shout eCompletion Autocategorizer? RefactoringEngine BrowserBooster? Dynamic protocol Smacc
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
-- Damien Cassou
Hi.
I saw on the web page that KeyBinder might be part of the image so I just wanted to warn that KeyBinder does a very subtle hack, but a hack nevertheless, to the key event mechanism in order to trap the key-bindings.
This warning is because if someone would want to install another keybinding mechanism , like keymapping I guess, it might mest something up, but don't know for sure, didn't test it.
Regards, Hernán
On 9/13/06, stephane ducasse stephane.ducasse@gmail.com wrote:
really cool that someone takes this initiative
Keymapping? Shout eCompletion Autocategorizer? RefactoringEngine BrowserBooster? Dynamic protocol Smacc
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
-- Damien Cassou
Hernan Tylim a écrit :
Hi.
I saw on the web page that KeyBinder might be part of the image so I just wanted to warn that KeyBinder does a very subtle hack, but a hack nevertheless, to the key event mechanism in order to trap the key-bindings.
This warning is because if someone would want to install another keybinding mechanism , like keymapping I guess, it might mest something up, but don't know for sure, didn't test it.
So, what should I do ? KeyBinder is very cool for switching between windows and other things like this. Does one of you have an opinion ?
Thank you for pointing this
Well, since Keymapping is also used by Romain's services (I think, but probably we should ask him), and services are already part of the image, I would add Keymapping and not Keybinder. Once keymapping is in place one could re-write the window switcher to use a keybinding from keymapping. All the other features of KeyBinder are already present in keymapping.
For 3.10 I would vote to add the required modifications to the squeak's event mechanism in the squeak core so further packages could be developed without relying on custom modifications to the event's core.
Regards, Hernán
On 9/14/06, Damien Cassou damien.cassou@laposte.net wrote:
Hernan Tylim a écrit :
Hi.
I saw on the web page that KeyBinder might be part of the image so I just wanted to warn that KeyBinder does a very subtle hack, but a hack nevertheless, to the key event mechanism in order to trap the
key-bindings.
This warning is because if someone would want to install another keybinding mechanism , like keymapping I guess, it might mest something up, but don't know for sure, didn't test it.
So, what should I do ? KeyBinder is very cool for switching between windows and other things like this. Does one of you have an opinion ?
Thank you for pointing this
-- Damien Cassou
yeap!
On 14 sept. 06, at 15:16, Hernan Tylim wrote:
Well, since Keymapping is also used by Romain's services (I think, but probably we should ask him), and services are already part of the image, I would add Keymapping and not Keybinder. Once keymapping is in place one could re-write the window switcher to use a keybinding from keymapping. All the other features of KeyBinder are already present in keymapping.
For 3.10 I would vote to add the required modifications to the squeak's event mechanism in the squeak core so further packages could be developed without relying on custom modifications to the event's core.
Regards, Hernán
On 9/14/06, Damien Cassou damien.cassou@laposte.net wrote: Hernan Tylim a écrit :
Hi.
I saw on the web page that KeyBinder might be part of the image so I just wanted to warn that KeyBinder does a very subtle hack, but a
hack
nevertheless, to the key event mechanism in order to trap the key-
bindings.
This warning is because if someone would want to install another keybinding mechanism , like keymapping I guess, it might mest
something
up, but don't know for sure, didn't test it.
So, what should I do ? KeyBinder is very cool for switching between windows and other things like this. Does one of you have an opinion ?
Thank you for pointing this
-- Damien Cassou
-- Saludos, Hernán
Hernan Tylim a écrit :
Well, since Keymapping is also used by Romain's services (I think, but probably we should ask him), and services are already part of the image, I would add Keymapping and not Keybinder. Once keymapping is in place one could re-write the window switcher to use a keybinding from keymapping. All the other features of KeyBinder are already present in keymapping.
Ok.
Can some of you implement window switcher in keymapping please ?
Thanks
Il giorno Sep 14, 2006, alle ore 3:46 PM, Damien Cassou ha scritto:
Hernan Tylim a écrit :
Well, since Keymapping is also used by Romain's services (I think, but probably we should ask him), and services are already part of the image, I would add Keymapping and not Keybinder. Once keymapping is in place one could re-write the window switcher to use a keybinding from keymapping. All the other features of KeyBinder are already present in keymapping.
To make my package less big, I chose to remove the dependency with keymapping.
Right now I have a lightweight (one class) system to add a few keyboard shortcuts. (alt-0 to alt-9, ctrl-0 to ctrl-9, ctrl-alt-0 to ctrl-alt-9, and ctrl- alt-left, right, up and down).
Ok.
Can some of you implement window switcher in keymapping please ?
I haven't tried it, so what are its functionalities? I'm asking because there is a window switching service already in the image as an example. You can bind the 'nextWindow' service to a keyboard shortcut. Then a previousWindow could be added as well, and that might be enough.
Romain
Thanks
-- Damien Cassou
-- Romain Robbes http://romain.robb.es
Romain Robbes a écrit :
Il giorno Sep 14, 2006, alle ore 3:46 PM, Damien Cassou ha scritto:
Hernan Tylim a écrit :
Well, since Keymapping is also used by Romain's services (I think, but probably we should ask him), and services are already part of the image, I would add Keymapping and not Keybinder. Once keymapping is in place one could re-write the window switcher to use a keybinding from keymapping. All the other features of KeyBinder are already present in keymapping.
To make my package less big, I chose to remove the dependency with keymapping.
Right now I have a lightweight (one class) system to add a few keyboard shortcuts. (alt-0 to alt-9, ctrl-0 to ctrl-9, ctrl-alt-0 to ctrl-alt-9, and ctrl-alt-left, right, up and down).
Cool. Please tell me which package I have to include in the image.
Take care that on some keyboards (French ones for example), you have to press SHIFT+0 to have a '0'.
Can some of you implement window switcher in keymapping please ?
I haven't tried it, so what are its functionalities?
Same as in operating systems when you press ALT+TAB: it displays a small dialog on which you can select the window with a snapshot. You may want to try to copy/paste the code from KeyBinder and see if it still works.
I'm asking because there is a window switching service already in the image as an example.
How does it work ?
You can bind the 'nextWindow' service to a keyboard shortcut. Then a previousWindow could be added as well, and that might be enough.
Please add on the wiki http://damiencassou.seasidehosting.st/seaside/pier what should be done.
Il giorno Sep 14, 2006, alle ore 4:32 PM, Damien Cassou ha scritto:
Romain Robbes a écrit :
Il giorno Sep 14, 2006, alle ore 3:46 PM, Damien Cassou ha scritto:
Hernan Tylim a écrit :
Well, since Keymapping is also used by Romain's services (I think, but probably we should ask him), and services are already part of the image, I would add Keymapping and not Keybinder. Once keymapping is in place one could re-write the window switcher to use a keybinding from keymapping. All the other features of KeyBinder are already present in keymapping.
To make my package less big, I chose to remove the dependency with keymapping. Right now I have a lightweight (one class) system to add a few keyboard shortcuts. (alt-0 to alt-9, ctrl-0 to ctrl-9, ctrl-alt-0 to ctrl-alt-9, and ctrl-alt-left, right, up and down).
Cool. Please tell me which package I have to include in the image.
That's included in BrowserBooster, no extra package is needed.
Take care that on some keyboards (French ones for example), you have to press SHIFT+0 to have a '0'.
That's true ... but I wanted something simple for now .. when a keybinding tool is included in the image, then I could change to that.
Can some of you implement window switcher in keymapping please ?
I haven't tried it, so what are its functionalities?
Same as in operating systems when you press ALT+TAB: it displays a small dialog on which you can select the window with a snapshot. You may want to try to copy/paste the code from KeyBinder and see if it still works.
I tried to make it work, but it was not usable with the small dialog: i could only get it to select the next window. I had to keep the shortcut pressed to pop up the window, and then it was switching too fast.
I'm asking because there is a window switching service already in the image as an example.
How does it work ?
It just activates the next window on the stack. It is pretty much a line of code ;-).
Actually it seems a good deal of the KeyBinder's functionalities could be implemented this way too.
Romain
You can bind the 'nextWindow' service to a keyboard shortcut. Then a previousWindow could be added as well, and that might be enough.
Please add on the wiki http://damiencassou.seasidehosting.st/ seaside/pier what should be done.
-- Damien Cassou
-- Romain Robbes http://romain.robb.es
Romain Robbes a écrit :
Il giorno Sep 14, 2006, alle ore 4:32 PM, Damien Cassou ha scritto:
Romain Robbes a écrit :
I'm asking because there is a window switching service already in the image as an example.
How does it work ?
It just activates the next window on the stack. It is pretty much a line of code ;-).
Actually it seems a good deal of the KeyBinder's functionalities could be implemented this way too.
Please do it, publish and let me know.
Sorry for the late entry...I can't keep up with squeak-dev these days. Keymapping and KeyBinder try to achieve similar goals but Keymapping has some features which I believe are absent from KeyBinder:
- shortcuts can be assigned to any morph instance or class - shortcuts can be assigned to categories and shared across multiple morphs or morph classes - shortcuts can be blocks, class methods sends or paragraph editor shortcuts (you can use Keymapping to redefine the "text" keyboard shortcuts). - shortcuts can be triggered by arbitrary sequences of keystrokes (they don't have to be simple alt-Key or control-Key combinations) - shortcuts can be exported and imported into another image (w/ limitations on shortcuts which execute blocks).
My goal with Keymapping was to make it possible for developers to specify default keyboard shortcuts for their menu operations and global services and for users to be able to re-assign them. I took this "all the way" in Squeak 3.7 and migrated all of the built-in tools to have re-assignable keyboard shortcuts. I haven't done this for 3.8 or 3.9. I can't maintain that effort...although I could do it one or two more times to a limited set of "base" tools. If you load Keymapping into a 3.8 or 3.9 image you will likely be frustrated that pressing alt-B is caught by the world "browse it" shortcut since the browsers haven't been hacked to specify their shortcuts to Keymapping. The net effect is pressing alt-B in a browser window may raise a browser but with no class selected (rather than the browser's behavior or raising a browser with the current class selected). The actual effect depends on your focus settings and probably interactions with Romain's Services framework...not sure about that one.
This is a bit off-topic but ultimately we need
1) a hook for key events that lets us do this without hacks...this has already been mentioned in this thread 2) an abstract way for tools to specify possibly context-sensitive keyboard actions as part of their description of context menus 3) an abstract way to specify application services and their shortcuts...I believe that Romain has already solved this problem
I haven't looked at Services in a while but I don't think #2 has been handled yet. Suppose I wanted to have a "delete item" shortcut in a list pane. I don't want to provide that as a global service to other applications. Just a keyboard shortcut to trigger an action in the current application when the cursor is over that pane. Many applications in Squeak do this and I don't think it always fits into the "services" metaphor.
I'll bring this up in another thread...
David
Hi David,
please tell us when you have something ready to be included in 3.9. I think Squeak really needs a better way to handle keyboard and keyboard configuration.
Bye
thanks Damien for this initiative.
Perhaps, you could let the transcript opened by the ImageForDevelopper script saved in the image because it displays the list of packages that have been added from a fresh 3.9g-7057.
Damien, you don't give the 39 source file with your image in the zip file. So I use the one given in the 3.9g-7057.
[BUG?] Using the damien image, when I browse a refactoryEngine class, I get a messageNotUnderstood. It seems to be a timestamp problem. am i using a wrong source file ?
Luc.
stephane ducasse a écrit :
really cool that someone takes this initiative
Keymapping? Shout eCompletion Autocategorizer? RefactoringEngine BrowserBooster? Dynamic protocol Smacc
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
--Damien Cassou
[ Luc Fabresse ] a écrit :
thanks Damien for this initiative.
Perhaps, you could let the transcript opened by the ImageForDevelopper script saved in the image because it displays the list of packages that have been added from a fresh 3.9g-7057.
I think I will use Techo and put there some text files. One will be for the packages included, and other for documentation on these packages.
Damien, you don't give the 39 source file with your image in the zip file. So I use the one given in the 3.9g-7057.
This was to keep it small. You made the right choice. I will include it in the released version.
[BUG?] Using the damien image, when I browse a refactoryEngine class, I get a messageNotUnderstood. It seems to be a timestamp problem. am i using a wrong source file ?
I made a mistake in my DynamicProtocol package. I corrected the bug.
Thank you
stephane ducasse a écrit :
Keymapping?
Don't know the difference with KeyBinder. Don't know if they fit together.
Shout eCompletion Autocategorizer RefactoringEngine BrowserBooster Dynamic protocol
Done (*6)
Smacc
Not sure this one is used by enough people to include it. Opinions ?
On Thu, 14 Sep 2006 14:14:08 +0200, Damien Cassou wrote:
stephane ducasse a écrit :
...
Smacc
Not sure this one is used by enough people to include it. Opinions ?
This used as rare as VMMaker, I mean it is too special. But if Stef would attempt to k*ll me then would you please include it :)
/Klaus
I vote for SmaCC
On 9/14/06, Klaus D. Witzel klaus.witzel@cobss.com wrote:
On Thu, 14 Sep 2006 14:14:08 +0200, Damien Cassou wrote:
stephane ducasse a écrit :
...
Smacc
Not sure this one is used by enough people to include it. Opinions ?
This used as rare as VMMaker, I mean it is too special. But if Stef would attempt to k*ll me then would you please include it :)
/Klaus
when selecting the packages here is the most important points:
- avoid gadgets (people can load them after, so I would not add UI modification so that people are sure that this is 3.9) - avoid packages that would slow down the interface - minimize method overrides
Stef
On 13 sept. 06, at 17:24, Damien Cassou wrote:
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
-- Damien Cassou
stephane ducasse a écrit :
when selecting the packages here is the most important points:
- avoid gadgets (people can load them after, so I would not add UI
modification so that people are sure that this is 3.9)
I agree but people have to tell me what is gadget and what is not. I can't decide for everybody.
- avoid packages that would slow down the interface
How do you know that ?
- minimize method overrides
This would require me to look at every packages. A better solution is to release a new squeak-dev image often and correct bugs that are found.
On 14 sept. 06, at 14:21, Damien Cassou wrote:
stephane ducasse a écrit :
when selecting the packages here is the most important points: - avoid gadgets (people can load them after, so I would not add UI modification so that people are sure that this is 3.9)
I agree but people have to tell me what is gadget and what is not. I can't decide for everybody.
So develop your vision. Be the master of the Squeak-Dev image. We do not want everything, we want the best and the useful :) Put your criteria in place and people should be convincing you to get their stuff in
for me Shout RB (with services integration) ecompletion Smacc are absolutely necessary ;)
After dynamic protocol I did not try BrowserBooster yet
- avoid packages that would slow down the interface
How do you know that ?
Try them. So the look enh are out.
- minimize method overrides
This would require me to look at every packages. A better solution is to release a new squeak-dev image often and correct bugs that are found.
hehehe you are learning the job of a harvester :) but minimizing the overrides is important.
stephane ducasse a écrit :
On 14 sept. 06, at 14:21, Damien Cassou wrote:
stephane ducasse a écrit :
when selecting the packages here is the most important points: - avoid gadgets (people can load them after, so I would not add UI modification so that people are sure that this is 3.9)
I agree but people have to tell me what is gadget and what is not. I can't decide for everybody.
So develop your vision. Be the master of the Squeak-Dev image. We do not want everything, we want the best and the useful :) Put your criteria in place and people should be convincing you to get their stuff in
for me Shout RB (with services integration) ecompletion Smacc are absolutely necessary ;)
Are you sure SmaCC is absolutely necessary ? It is a big package if I remember correctly and only a few people have to create a new language with grammar and syntax.
After dynamic protocol
DynamicProtocols are really loved by people trying it. Unless others told me not to include it I will.
This would require me to look at every packages. A better solution is to release a new squeak-dev image often and correct bugs that are found.
hehehe you are learning the job of a harvester :) but minimizing the overrides is important.
I need advice here
Shout RB (with services integration) ecompletion Smacc are absolutely necessary ;)
Are you sure SmaCC is absolutely necessary ? It is a big package if I remember correctly and only a few people have to create a new language with grammar and syntax.
Indeed. You see you developed your vision. So remove Smacc :)
After dynamic protocol
DynamicProtocols are really loved by people trying it. Unless others told me not to include it I will.
ok for me ;)
This would require me to look at every packages. A better solution is to release a new squeak-dev image often and correct bugs that are found.
hehehe you are learning the job of a harvester :) but minimizing the overrides is important.
I need advice here
check really the packages to see what are the overrides and after you decide :)
Stef
I will answer each mail later today. But I updated the wiki:
http://damiencassou.seasidehosting.st/seaside/pier
Some packages have problems. Please correct them if you want their integration:
LookEnhancements TestBrowser Shout for Techo Memory usage TracingMessageBrowser
Please update the wiki or write mail. This distribution is YOUR distribution. Made to ease YOUR life. Please contribute.
Thank you for your help
I will put every temporary versions here: http://damien.cassou.free.fr/squeak-dev/
Damien Cassou wrote:
Hi,
I'm creating a ready-to-use image for developers based on Squeak 3.9-7057. This image will be published in ftp.squeak.org. I would like to know what are the tools you use as a developer. The package ImageForDevelopers (available on SqueakMap and SqueakSource) will be used to configure everything.
A Wiki has been set up and you can modify it: http://damiencassou.seasidehosting.st/seaside/pier
Developers responsible for one or more of this packages should tell me where is the best version for an integration or directly fill the wiki.
Do you want other packages included ? Or preferences that should be set ?
This is for you, please contribute
How about if you rename the image/changes to something different than the release image name? Little thing, I know. But, that way no one will mistake the "developer" version for the release image.
Brad Fuller a écrit :
Damien Cassou wrote: How about if you rename the image/changes to something different than the release image name? Little thing, I know. But, that way no one will mistake the "developer" version for the release image.
Sure sure. Is there a way to do it programatically, from the image ?
squeak-dev@lists.squeakfoundation.org