Looking for more non-trivial example application based on Spec2 to learn from...
Iâm trying to return to Smalltalk after a 15+ year break (VisualAge, ENfin/2 ST-80 etc), and have been trying to get back into the saddle with Pharo 8 and Pharo 9. Since I have no legacy code - Iâve opted for Pharo 9 knowing a stable release isnât far away. My goal is to produce several applications for private use, and regain some competence in Smalltalk along the way. The apps are business accounting/investing style apps - not too technical. Iâm really not keen on the prospect of using any of the other âmainstreamâ alternatives we have today. Iâm confident I can build a domain model easily enough, but the Pharo environment is my stumbling point - especially building the GUI with Spec2. Iâm really spinning my wheels trying to get a useful Spec2 application built. It needs to have menus, a toolbar, tabbed notebooks, tree lists etc - plus a dozen or so tabular panes (to view/maintain my domain model). Ideally it would also be able to use ODBC or UDBC or Excel etc for transaction storage. Iâve been through all the building blocks in SpDemo but there a just too many concepts to familiarise with and test bit by bit as I buildup a more realistic functioning application. It has been very frustraing and time consuming. I understand why there are not yet solid guides available (book, tutorial, examples) , so I thought the best way would be to use an existing Spec2 application to help me get it going. I think this would save me many weeks of effort. Could anyone point me to at a working non-trivial application that I could share and use a starting point. Any suggestions to help me get into the heart of my application would be most welcomeâ¦!
Hi, Check at this : https://github.com/estebanlm/crono Is a fairly advanced application so you will probably have some issues to get into (also because I didn't have time to properly document it yet). Esteban On May 11 2021, at 12:21 pm, mark.odonoghue.2010@gmail.com wrote:
Iâm trying to return to Smalltalk after a 15+ year break (VisualAge, ENfin/2 ST-80 etc), and have been trying to get back into the saddle with Pharo 8 and Pharo 9.
Since I have no legacy code - Iâve opted for Pharo 9 knowing a stable release isnât far away. My goal is to produce several applications for private use, and regain some competence in Smalltalk along the way. The apps are business accounting/investing style apps - not too technical. Iâm really not keen on the prospect of using any of the other âmainstreamâ alternatives we have today. Iâm confident I can build a domain model easily enough, but the Pharo environment is my stumbling point - especially building the GUI with Spec2. Iâm really spinning my wheels trying to get a useful Spec2 application built. It needs to have menus, a toolbar, tabbed notebooks, tree lists etc - plus a dozen or so tabular panes (to view/maintain my domain model). Ideally it would also be able to use ODBC or UDBC or Excel etc for transaction storage. Iâve been through all the building blocks in SpDemo but there a just too many concepts to familiarise with and test bit by bit as I buildup a more realistic functioning application. It has been very frustraing and time consuming. I understand why there are not yet solid guides available (book, tutorial, examples) , so I thought the best way would be to use an existing Spec2 application to help me get it going. I think this would save me many weeks of effort. Could anyone point me to at a working non-trivial application that I could share and use a starting point. Any suggestions to help me get into the heart of my application would be most welcomeâ¦!
Ah, a disclaimer: so far, just me and a little bit Santiago tested this installation... for sure you will find problems. Feel free to ask :) Esteban On May 11 2021, at 12:57 pm, Esteban Lorenzano <estebanlm@netc.eu> wrote:
Hi,
Check at this : https://github.com/estebanlm/crono Is a fairly advanced application so you will probably have some issues to get into (also because I didn't have time to properly document it yet).
Esteban
On May 11 2021, at 12:21 pm, mark.odonoghue.2010@gmail.com wrote:
Iâm trying to return to Smalltalk after a 15+ year break (VisualAge, ENfin/2 ST-80 etc), and have been trying to get back into the saddle with Pharo 8 and Pharo 9.
Since I have no legacy code - Iâve opted for Pharo 9 knowing a stable release isnât far away. My goal is to produce several applications for private use, and regain some competence in Smalltalk along the way. The apps are business accounting/investing style apps - not too technical. Iâm really not keen on the prospect of using any of the other âmainstreamâ alternatives we have today. Iâm confident I can build a domain model easily enough, but the Pharo environment is my stumbling point - especially building the GUI with Spec2. Iâm really spinning my wheels trying to get a useful Spec2 application built. It needs to have menus, a toolbar, tabbed notebooks, tree lists etc - plus a dozen or so tabular panes (to view/maintain my domain model). Ideally it would also be able to use ODBC or UDBC or Excel etc for transaction storage. Iâve been through all the building blocks in SpDemo but there a just too many concepts to familiarise with and test bit by bit as I buildup a more realistic functioning application. It has been very frustraing and time consuming. I understand why there are not yet solid guides available (book, tutorial, examples) , so I thought the best way would be to use an existing Spec2 application to help me get it going. I think this would save me many weeks of effort. Could anyone point me to at a working non-trivial application that I could share and use a starting point. Any suggestions to help me get into the heart of my application would be most welcomeâ¦!
Many thanks Esteban - I will study the code to get a feel for what kinds of approach I would need to use. It didnât install properly as you warned - but thatâs OK - I only need to peruse the code at this point. First impressions are that it has a bit of complex detail that handles some of the platform & backend GUI work. I suppose ideally these would be reworked somewhat so the the Chrono application doesnât need to deal with any of that stuff? Nevertheless is is going to be very useful and I thank you for your help :-) Cheers Mark
On May 11 2021, at 6:22 pm, mark.odonoghue.2010@gmail.com wrote:
Many thanks Esteban - I will study the code to get a feel for what kinds of approach I would need to use.
It didnât install properly as you warned - but thatâs OK - I only need to peruse the code at this point.
First impressions are that it has a bit of complex detail that handles some of the platform & backend GUI work. uh? where? if that is the case it should have gone long time ago... and I was sure I got rid of it.
Esteban
I suppose ideally these would be reworked somewhat so the the Chrono application doesnât need to deal with any of that stuff?
Nevertheless is is going to be very useful and I thank you for your help :-)
Cheers Mark
Hi Esteban Iâm new and may be wrong and apologise if so ⦠! It just looked like the Crono package has a few things I didnât expect : * CrApplicationStarter * CrGtkConfiguration * CrWindowConfiguration * SpPresenter extension firstResponder * SpWindowPresenter extensions (2) These âCrâ classes seem to have some more general purpose behaviours that other SpApplications could use? And I would have thought the Gtk configuration would be outside Crono too? Also, presumably the extensions are candidates for repackaging outside/above Crono â¦.? This may be just a naming and packaging thing rather than any criticism of design. In summary, as a simple consumer of the framework there was (some) surprising detail in the Crono package and classes that didnât seem relevant to any new application I would be writing. Hence I would have hoped not to have to clone these details (or even deal with themâ¦). Does that sound fair? - or do I have the wrong end of the stick !! Cheers Mark
hi, ah, those are correct presenters/applications. if you want to make a gtk application at a point you need to configure it (hence CrGtkConfiguration). CrApplicationStarter is because in different platforms you may have different ways of start the application (for example macOS may need a system menu... which anyway so far I have been unable to do, but still ;) ) the other extensions were for needs of the application but indeed some of them may arrive (and some of them already this) to vanilla spec (firstResponder is now "defaultKeyboardFocus", for example...). this application is one of the ones I use to test concepts that may or may not make their path to vanilla Spec :) Esteban On May 11 2021, at 7:30 pm, mark.odonoghue.2010@gmail.com wrote:
Hi Esteban
Iâm new and may be wrong and apologise if so ⦠! It just looked like the Crono package has a few things I didnât expect : CrApplicationStarter CrGtkConfiguration
CrWindowConfiguration
SpPresenter extension firstResponder
SpWindowPresenter extensions (2)
These âCrâ classes seem to have some more general purpose behaviours that other SpApplications could use? And I would have thought the Gtk configuration would be outside Crono too? Also, presumably the extensions are candidates for repackaging outside/above Crono â¦.? This may be just a naming and packaging thing rather than any criticism of design.
In summary, as a simple consumer of the framework there was (some) surprising detail in the Crono package and classes that didnât seem relevant to any new application I would be writing. Hence I would have hoped not to have to clone these details (or even deal with themâ¦). Does that sound fair? - or do I have the wrong end of the stick !!
Cheers Mark
Hi, You can check this: https://github.com/jordanmontt/RewriteToolsSet Hope it helps you. Regards, Sebastian ________________________________ From: mark.odonoghue.2010@gmail.com <mark.odonoghue.2010@gmail.com> Sent: 11 May 2021 06:21 To: pharo-users@lists.pharo.org <pharo-users@lists.pharo.org> Subject: [Pharo-users] Looking for more non-trivial example application based on Spec2 to learn from... Iâm trying to return to Smalltalk after a 15+ year break (VisualAge, ENfin/2 ST-80 etc), and have been trying to get back into the saddle with Pharo 8 and Pharo 9. Since I have no legacy code - Iâve opted for Pharo 9 knowing a stable release isnât far away. My goal is to produce several applications for private use, and regain some competence in Smalltalk along the way. The apps are business accounting/investing style apps - not too technical. Iâm really not keen on the prospect of using any of the other âmainstreamâ alternatives we have today. Iâm confident I can build a domain model easily enough, but the Pharo environment is my stumbling point - especially building the GUI with Spec2. Iâm really spinning my wheels trying to get a useful Spec2 application built. It needs to have menus, a toolbar, tabbed notebooks, tree lists etc - plus a dozen or so tabular panes (to view/maintain my domain model). Ideally it would also be able to use ODBC or UDBC or Excel etc for transaction storage. Iâve been through all the building blocks in SpDemo but there a just too many concepts to familiarise with and test bit by bit as I buildup a more realistic functioning application. It has been very frustraing and time consuming. I understand why there are not yet solid guides available (book, tutorial, examples) , so I thought the best way would be to use an existing Spec2 application to help me get it going. I think this would save me many weeks of effort. Could anyone point me to at a working non-trivial application that I could share and use a starting point. Any suggestions to help me get into the heart of my application would be most welcomeâ¦!
Hi Sebastian Thanks for providing your application - No problems loading it on Windows 10 . Your application is pitched at the right level for the GUI work that I need to do. It looks like it will be very useful indeed. It is also really good to be able to compare it to Estebanâs more complex example, as Iâm sure having both will help me with problem solving and better understanding of the Spec2 framework. Many thanks :-) Mark
I am playing with the idea of setting a bunch of techtalk sessions to "build an application from scratch". I need to book the time but I think it can be a good idea. Esteban On May 11 2021, at 6:35 pm, mark.odonoghue.2010@gmail.com wrote:
Hi Sebastian
Thanks for providing your application - No problems loading it on Windows 10 . Your application is pitched at the right level for the GUI work that I need to do. It looks like it will be very useful indeed.
It is also really good to be able to compare it to Estebanâs more complex example, as Iâm sure having both will help me with problem solving and better understanding of the Spec2 framework.
Many thanks :-) Mark
Agree ! I think it would be very valuable to have a "build an application from scratchâ tutorials/talks/guide. Perhaps it would also result in a small well designed sample application (e.g. Personal Organiser/To Do Lists) that new folk can work their way through; once they have got familiar enough with the language and tools using existing resources (i.e. no need to repeat basic concepts).
When? :) Iâm in! Norbert
Am 11.05.2021 um 18:39 schrieb Esteban Lorenzano <estebanlm@netc.eu>:
 I am playing with the idea of setting a bunch of techtalk sessions to "build an application from scratch". I need to book the time but I think it can be a good idea.
Esteban
On May 11 2021, at 6:35 pm, mark.odonoghue.2010@gmail.com wrote: Hi Sebastian
Thanks for providing your application - No problems loading it on Windows 10 .
Your application is pitched at the right level for the GUI work that I need to do. It looks like it will be very useful indeed.
It is also really good to be able to compare it to Estebanâs more complex example, as Iâm sure having both will help me with problem solving and better understanding of the Spec2 framework.
Many thanks :-)
Mark
I am currently working on a administrative system to keep track of our sheeps (about 30 ewes and 50-60 lambs a year). It is not finished yet, but if anyone wants I can make the currently private git public or give access.The intended user is my wife who is not an easy customer :-) It uses a sqllite database, and a home rolled orm - I can provide a sample database as well. The code is in English, while the labels and such is in Danish. It tries to strike a balance between generic structures and performance, for example using pragmas in the domain model to drive important parts of the gui. Best, Kasper
Hi Kasper Yes please! - that would also be an interesting project to look at⦠Cheers Mark
Hi Mark - not to distract you, as its good to see someone pushing on the Spec integration with a real use case - but an alternate is a web application. Presumably you are familiar with Seaside but there is another kid in town that Iâve been having a lot of fun with with - CodeParadise - which uses MVP with the UI hosted transparently as minimal client side image (via the magic of Pharo Candle to create a minimal Dom based headless image that runs on the SqueakJS VM) using WebComponents. Iâm still in awe over how this works and brings numerous Smalltalk technologies together (although - seeing Esteban demo a native spec app earlier this month was very cool too). CP is still pretty heavily in development (so the same doc scarcity as well - https://github.com/ErikOnBike/CodeParadise) - but Iâve been helping Erik get Shoelace (https://shoelace.style/components/card) working in it - and that has a decent rich set of UI components that you can hook up (there isnât a tree view though - not sure if thatâs some CSS trickery to accomplish this). There was a presentation on it a few months ago - https://vimeo.com/457353130 Anyway - welcome to Pharo and isnât it fun to pick up on Smalltalk again? Tim
On 12 May 2021, at 08:44, mark.odonoghue.2010@gmail.com wrote:
Hi Kasper
Yes please! - that would also be an interesting project to look atâ¦
Cheers
Mark
Hi Tim Thanks for the suggestion - Iâm aware of the alternative of using a web application architecture using something like Seaside (and now CodeParadise too - thanks). But Iâm more interested at the moment in getting on top of a more traditional application for these personal apps I want to build for my desktop PC. My needs may change of course - and Iâm sure will look at doing some web apps in the future... More importantly - YES - it is great to be back in a ST environment again , and of course it is still so very very addictive !! \[ Before resuming I spent some time familiarising myself with the mainstream tools the industry seems to have adopted in the last 10-20 years. I must say I was quite surprised and even disappointed about the complexity, verbosity and incomprehensible syntax of some, and the sloppiness (or is it flexibility?) of others. I really was not keen to have to pick up one of those again. I had somehow hoped or expected that language and environment design would have been much slicker and more fully evolved by nowâ¦\] Cheers Tim, and thanks for the suggestion⦠Mark
Mark & Sebastian, Sebastian, the link you provided is to a RewriteToolsSet... I don't understand how this provides insights into a Spec2 solution? - but admittedly I didn't dig too deep - I saw WorldMenu items and went 'woah-stop!', lol. I'm hoping there was another link Mark referenced that perhaps didn't come through my email chain :) I REALLY want to learn how others use Spec2 in an integrated way (interconnected presenters, model refreshes, etc.). I've written 6 apps in Pharo (all with Spec2 GUI) and I still don't feel as if I'm doing things correctly. I can 'get things to work' and I'm pretty pleased with them in general, but I usually run up against the same 'refresh' issues, especially around notebooks. Esteban is a wealth of information and has been very helpful for my basic understanding - but I can envision him shaking his head at my feeble attempts and questions (just kidding Esteban!). I am VERY interested to review Spec2 code others are successfully using, so I can hopefully get past whatever brainblock I have in my Spec2 designs. ... and I would very much like to be involved in a Spec2 workshop/session/whatever! Happy Pharo-ing! Russ (whalehead on discord) On Wed, May 12, 2021 at 5:32 AM <mark.odonoghue.2010@gmail.com> wrote:
Hi Tim
Thanks for the suggestion - Iâm aware of the alternative of using a web application architecture using something like Seaside (and now CodeParadise too - thanks).
But Iâm more interested at the moment in getting on top of a more traditional application for these personal apps I want to build for my desktop PC.
My needs may change of course - and Iâm sure will look at doing some web apps in the future...
More importantly - YES - it is great to be back in a ST environment again , and of course it is still so very very addictive !!
[ Before resuming I spent some time familiarising myself with the mainstream tools the industry seems to have adopted in the last 10-20 years. I must say I was quite surprised and even disappointed about the complexity, verbosity and incomprehensible syntax of some, and the sloppiness (or is it flexibility?) of others. I really was not keen to have to pick up one of those again. I had somehow hoped or expected that language and environment design would have been much slicker and more fully evolved by nowâ¦]
Cheers Tim, and thanks for the suggestionâ¦
Mark
-- Russ Whaley whaley.russ@gmail.com
My sheep project - Ovina2 - is now public for other to be scared about. I am on my way out the door, so databases will have to wait until monday when I am back from kayaking. This is the link: https://github.com/kasperosterbye/ovina2 The two main presenters are OvinaHistoryPresenter and OvinaAllSheepsPresenter, I expect they end up living in a single app window in the end. In my view it is about 80% done. Best, Kasper
Hi Russ, Do not scarry of the WorldMenu item. Any tool can appear in the WorldMenu if it has a class side method `menuCommandOn:`. Just load the code with the script that appears in the README. Look at the classes in the packages and you will see that a lot of them are children of SpPresenter. I do not know if my tools is a complete example of all Spec framework. But at least it has all the basics covered. Let me know if you have any question ð We can talk on Discord too. Sebastian ________________________________ From: Russ Whaley <whaley.russ@gmail.com> Sent: 12 May 2021 12:52 To: Any question about pharo is welcome <pharo-users@lists.pharo.org> Subject: [Pharo-users] Re: Looking for more non-trivial example application based on Spec2 to learn from... Mark & Sebastian, Sebastian, the link you provided is to a RewriteToolsSet... I don't understand how this provides insights into a Spec2 solution? - but admittedly I didn't dig too deep - I saw WorldMenu items and went 'woah-stop!', lol. I'm hoping there was another link Mark referenced that perhaps didn't come through my email chain :) I REALLY want to learn how others use Spec2 in an integrated way (interconnected presenters, model refreshes, etc.). I've written 6 apps in Pharo (all with Spec2 GUI) and I still don't feel as if I'm doing things correctly. I can 'get things to work' and I'm pretty pleased with them in general, but I usually run up against the same 'refresh' issues, especially around notebooks. Esteban is a wealth of information and has been very helpful for my basic understanding - but I can envision him shaking his head at my feeble attempts and questions (just kidding Esteban!). I am VERY interested to review Spec2 code others are successfully using, so I can hopefully get past whatever brainblock I have in my Spec2 designs. ... and I would very much like to be involved in a Spec2 workshop/session/whatever! Happy Pharo-ing! Russ (whalehead on discord) On Wed, May 12, 2021 at 5:32 AM <mark.odonoghue.2010@gmail.com<mailto:mark.odonoghue.2010@gmail.com>> wrote: Hi Tim Thanks for the suggestion - Iâm aware of the alternative of using a web application architecture using something like Seaside (and now CodeParadise too - thanks). But Iâm more interested at the moment in getting on top of a more traditional application for these personal apps I want to build for my desktop PC. My needs may change of course - and Iâm sure will look at doing some web apps in the future... More importantly - YES - it is great to be back in a ST environment again , and of course it is still so very very addictive !! [ Before resuming I spent some time familiarising myself with the mainstream tools the industry seems to have adopted in the last 10-20 years. I must say I was quite surprised and even disappointed about the complexity, verbosity and incomprehensible syntax of some, and the sloppiness (or is it flexibility?) of others. I really was not keen to have to pick up one of those again. I had somehow hoped or expected that language and environment design would have been much slicker and more fully evolved by nowâ¦] Cheers Tim, and thanks for the suggestion⦠Mark -- Russ Whaley whaley.russ@gmail.com<mailto:whaley.russ@gmail.com>
Great, Sebastian, thanks. Iâll take a (braver) look into the code soon. Iâll touch base on discord :) On Thu, May 13, 2021 at 10:39 AM Sebastian Jordan <sebastianjmt@hotmail.com> wrote:
Hi Russ, Do not scarry of the WorldMenu item. Any tool can appear in the WorldMenu if it has a class side method `menuCommandOn:`. Just load the code with the script that appears in the README. Look at the classes in the packages and you will see that a lot of them are children of SpPresenter. I do not know if my tools is a complete example of all Spec framework. But at least it has all the basics covered. Let me know if you have any question ð We can talk on Discord too.
Sebastian ------------------------------ *From:* Russ Whaley <whaley.russ@gmail.com> *Sent:* 12 May 2021 12:52 *To:* Any question about pharo is welcome <pharo-users@lists.pharo.org>
*Subject:* [Pharo-users] Re: Looking for more non-trivial example application based on Spec2 to learn from...
Mark & Sebastian, Sebastian, the link you provided is to a RewriteToolsSet... I don't understand how this provides insights into a Spec2 solution? - but admittedly I didn't dig too deep - I saw WorldMenu items and went 'woah-stop!', lol. I'm hoping there was another link Mark referenced that perhaps didn't come through my email chain :)
I REALLY want to learn how others use Spec2 in an integrated way (interconnected presenters, model refreshes, etc.). I've written 6 apps in Pharo (all with Spec2 GUI) and I still don't feel as if I'm doing things correctly. I can 'get things to work' and I'm pretty pleased with them in general, but I usually run up against the same 'refresh' issues, especially around notebooks.
Esteban is a wealth of information and has been very helpful for my basic understanding - but I can envision him shaking his head at my feeble attempts and questions (just kidding Esteban!).
I am VERY interested to review Spec2 code others are successfully using, so I can hopefully get past whatever brainblock I have in my Spec2 designs.
... and I would very much like to be involved in a Spec2 workshop/session/whatever!
Happy Pharo-ing! Russ (whalehead on discord)
On Wed, May 12, 2021 at 5:32 AM <mark.odonoghue.2010@gmail.com> wrote:
Hi Tim
Thanks for the suggestion - Iâm aware of the alternative of using a web application architecture using something like Seaside (and now CodeParadise too - thanks).
But Iâm more interested at the moment in getting on top of a more traditional application for these personal apps I want to build for my desktop PC.
My needs may change of course - and Iâm sure will look at doing some web apps in the future...
More importantly - YES - it is great to be back in a ST environment again , and of course it is still so very very addictive !!
[ Before resuming I spent some time familiarising myself with the mainstream tools the industry seems to have adopted in the last 10-20 years. I must say I was quite surprised and even disappointed about the complexity, verbosity and incomprehensible syntax of some, and the sloppiness (or is it flexibility?) of others. I really was not keen to have to pick up one of those again. I had somehow hoped or expected that language and environment design would have been much slicker and more fully evolved by nowâ¦]
Cheers Tim, and thanks for the suggestionâ¦
Mark
-- Russ Whaley whaley.russ@gmail.com
-- Russ Whaley whaley.russ@gmail.com
It would be great ð Em ter., 11 de mai. de 2021 Ã s 13:38, Esteban Lorenzano <estebanlm@netc.eu> escreveu:
I am playing with the idea of setting a bunch of techtalk sessions to "build an application from scratch". I need to book the time but I think it can be a good idea.
Esteban
I'm glad to hear ð ________________________________ From: mark.odonoghue.2010@gmail.com <mark.odonoghue.2010@gmail.com> Sent: 11 May 2021 12:35 To: pharo-users@lists.pharo.org <pharo-users@lists.pharo.org> Subject: [Pharo-users] Re: Looking for more non-trivial example application based on Spec2 to learn from... Hi Sebastian Thanks for providing your application - No problems loading it on Windows 10 . Your application is pitched at the right level for the GUI work that I need to do. It looks like it will be very useful indeed. It is also really good to be able to compare it to Estebanâs more complex example, as Iâm sure having both will help me with problem solving and better understanding of the Spec2 framework. Many thanks :-) Mark
participants (9)
-
Esteban Lorenzano -
Kasper Osterbye -
mark.odonoghue.2010@gmail.com -
Norbert Hartl -
Russ Whaley -
Samuel Teixeira Santos -
Sebastian Jordan -
Tim Mackinnon -
Tomaž Turk