pharo-users@lists.pharo.org

Any question about pharo is welcome

View all threads

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

MO
mark.odonoghue.2010@gmail.com
Tue, May 11, 2021 4:51 PM

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

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).
MO
mark.odonoghue.2010@gmail.com
Tue, May 11, 2021 5:30 PM

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 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
EL
Esteban Lorenzano
Tue, May 11, 2021 6:51 PM

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, 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
NH
Norbert Hartl
Wed, May 12, 2021 7:05 AM

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

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
KO
Kasper Osterbye
Wed, May 12, 2021 7:27 AM

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

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
MO
mark.odonoghue.2010@gmail.com
Wed, May 12, 2021 7:44 AM

Hi Kasper

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

Cheers

Mark

Hi Kasper Yes please! - that would also be an interesting project to look at… Cheers Mark
TM
Tim Mackinnon
Wed, May 12, 2021 9:03 AM

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 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 >
MO
mark.odonoghue.2010@gmail.com
Wed, May 12, 2021 9:32 AM

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

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
RW
Russ Whaley
Wed, May 12, 2021 4:52 PM

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

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
ST
Samuel Teixeira Santos
Thu, May 13, 2021 12:06 AM

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

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 >