Looking for more non-trivial example application based on Spec2 to learn from...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus

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…!

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Esteban Lorenzano
Hi,

Check at this :

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, [hidden email] 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…!
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Esteban Lorenzano
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 <[hidden email]> wrote:
Hi,

Check at this :

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, [hidden email] 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…!
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Sebastian Jordan
In reply to this post by MarkODAus
Hope it helps you.

Regards,
Sebastian



From: [hidden email] <[hidden email]>
Sent: 11 May 2021 06:21
To: [hidden email] <[hidden email]>
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…!

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus
In reply to this post by MarkODAus

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


Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus
In reply to this post by MarkODAus

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

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Esteban Lorenzano
In reply to this post by MarkODAus


On May 11 2021, at 6:22 pm, [hidden email] 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
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Esteban Lorenzano
In reply to this post by MarkODAus
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, [hidden email] 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
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

eftomi
+1
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Sebastian Jordan
In reply to this post by MarkODAus
I'm glad to hear 🙂

From: [hidden email] <[hidden email]>
Sent: 11 May 2021 12:35
To: [hidden email] <[hidden email]>
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

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus
In reply to this post by MarkODAus

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).

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus
In reply to this post by MarkODAus

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

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Esteban Lorenzano
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, [hidden email] 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
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

NorbertHartl
In reply to this post by Esteban Lorenzano
When? :)

I‘m in!

Norbert

Am 11.05.2021 um 18:39 schrieb Esteban Lorenzano <[hidden email]>:


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, [hidden email] 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
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Kasper Osterbye
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

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus
In reply to this post by MarkODAus

Hi Kasper

Yes please! - that would also be an interesting project to look at…

Cheers

Mark

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Tim Mackinnon
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, [hidden email] wrote:

Hi Kasper

Yes please! - that would also be an interesting project to look at…

Cheers

Mark


Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

MarkODAus
In reply to this post by MarkODAus

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

Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

Russ Whaley
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 <[hidden email]> 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
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Looking for more non-trivial example application based on Spec2 to learn from...

arcanosam
In reply to this post by Esteban Lorenzano
It would be great 🖖

Em ter., 11 de mai. de 2021 às 13:38, Esteban Lorenzano <[hidden email]> 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

and so we lay... we lay in the same grave....
12