Re: [Pharo-users] How can we celebrate the 50th anniversary of Smalltalk?

2020-01-06 Thread Sven Van Caekenberghe



> On 6 Jan 2020, at 06:11, Joachim Tuchel  wrote:
> 
> I personally celebrate Smalltalk every (working) day. I enjoy the fun and 
> productivity each time I find a way to solve a problem at hand.

Well said.


Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread xap
hi Roelof, i didn't mean to hijack your thread, sorry -- my question was
directed at you, then kinda took on a life of its own.

That said, Sven had/has responded to your op (original post), no?

One additional change I would make: rename "findAnagramsCandidates" -->
"findAnagrams" : it's shorter, and possibly more correct since what's
returned are true anagrams rather than candidates-that-may-be-anagrams ?



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread Roelof Wobben via Pharo-users
--- Begin Message ---

Op 6-1-2020 om 09:34 schreef xap:

hi Roelof, i didn't mean to hijack your thread, sorry -- my question was
directed at you, then kinda took on a life of its own.

That said, Sven had/has responded to your op (original post), no?

One additional change I would make: rename "findAnagramsCandidates" -->
"findAnagrams" : it's shorter, and possibly more correct since what's
returned are true anagrams rather than candidates-that-may-be-anagrams ?



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html




NP,

And if my question was answered , I miss it.

That name was given by the challenge so if I would change it, Im afraid 
that I also have to change all tests included by the challenge.


But thanks for answering.

Roelof


--- End Message ---


[Pharo-users] R: [ANN] Phoedown - Markdown to HTML

2020-01-06 Thread Lorenzo
Ciao Giorgio,

 

come stai? Mi fa piacere risentirti dopo tanto tempo.

Forse (visto il successo della tua mail), sarebbe opportuno cominciare 
collaborazioni in Italia!

 

Sentiamoci.

 

Lorenzo

 

Da: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] Per conto di 
giorgio ferraris
Inviato: sabato 4 gennaio 2020 20:38
A: Any question about pharo is welcome 
Oggetto: Re: [Pharo-users] [ANN] Phoedown - Markdown to HTML

 

Hello, 

first of all, have a wonderful 2020..

sorry for jumping in, I'm not a contributor to Pharo,  and actually never a 
user of it ( when I work in Smalltalk, I use VW mostly, and still need to find  
the time to try Pharo seriously), but I do work in Smalltalk (and Pharo is a 
dialect of) from early 80'... and , as for many of you, Smalltalk is not the 
only language I use (I wish it was the most used, but not the only one, because 
one tool is not enough).

Well, the idea that all should be done in Smalltalk seems to me something that 
us as a community have had as a goal from day one, but, are us sure it's not 
something that reduce the power of Smalltalk instead of allowing broader 
adoption?

*   First, there are lots of libraries and tools already well written, 
maintained and with full documentation. Why to reinvent the wheels if we can 
integrate them seamlessly?
*   Second: Smalltalk is not the fastest language out there, there are 
works that are not to be developed in Smalltalk. If we develop in Smalltalk 
something very CPU intensive we just made bad advertising for the language. 

 

Smalltalk is at is  best for modelling difficult problems. Look at Python, it's 
very popular between  Data Scientist, but it just expose in a nice way an 
interface to Macchine Learning libraries, For example TensorFlow has a lot of 
optimised c++ code inside. Python made easy to interface with C like languages, 
and it has good modelling capabilities, so it was chosen.  But Smalltalk is 
better on the latter, this is a campground we should dominate, instead we are 
absent. And Pharo, being open source, could have been a good player in this 
field.

If we spend our time to reinvent the wheel  we can't get to far ..

Look at Node.js, you can find libraries for connecting everything, people 
doesn't rewrote everything in JS/ So if you work in Node, you are fast at 
building stuff not because of the power of the language, but because to the 
libraries you can pick from the shelf and use.

 

So I think a wonderful and easy integration framework is time better spent that 
redoing something already well done on other languages. Object are for reuse, 
but we try to rebuild...

And on top of the framework, lot of smalltalk classes for an easy usage of the 
outside work already done. 

Obviously, all I said is not valid if Smalltalk is considered only an 
experimental language or a playground, but this was, and probably still is, the 
place for Squeak.  If I remember well, Pharo was born for industrial grade 
application...

 

 

Sorry for this rant, but I liked Smalltalk from day one, the day I read the 
famous Byte's  article, and  still try to understand why it's not the number 
one language, but I think we, as a community, did a lot on the wrong direction.

BTW: I still like Smalltalk a lot and really appreciate the work done by all of 
the Smalltalk communities.

 

again, have a wonderful year 

 

giorgio 

 

 

 

 

On Fri, Jan 3, 2020 at 4:55 PM Ramon Leon mailto:ramon.l...@allresnet.com> > wrote:

On 2020-01-02 10:56 a.m., Sean P. DeNigris wrote:
> While I dream of a world where everything is in-image as pure Smalltalk,
> given the reality of limited manpower, I think of outside library use as a
> way to "cheat" and get a lot more from that limited engineering resource.

Agree, I've used the original Markdown.pl implementation for years same as I 
would any other shell script, via OSProcess

markdown: someContent
  ^UnixProcess pipeString: someContent throughCommand: (FileDirectory default 
fullPathFor: 'Markdown.pl')

Never saw a need to rewrite what already works in its original form.

-- 
Ramón León
VP of Technology
Alliance Reservations Network



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread xap
Here's the permalink to Sven's response (in case it still isn't visible to
you):
http://forum.world.st/is-this-better-regarding-naming-thigs-tp5109389p5109392.html



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread Roelof Wobben via Pharo-users
--- Begin Message ---

Thanks.

I have missed that one.
Thanks for pointing it to me.

Roelof


Op 6-1-2020 om 13:13 schreef xap:

Here's the permalink to Sven's response (in case it still isn't visible to
you):
http://forum.world.st/is-this-better-regarding-naming-thigs-tp5109389p5109392.html



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html





--- End Message ---


[Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread Richard Kenneth Eng
https://levelup.gitconnected.com/smalltalk-its-not-your-grandfather-s-programming-language-f1985eaa17ff


[Pharo-users] R: Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread Lorenzo
Great work Rich

 

My best compliments.

 

Lorenzo

 

Da: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] Per conto di 
Richard Kenneth Eng
Inviato: lunedì 6 gennaio 2020 19:07
A: pharo-users@lists.pharo.org
Oggetto: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming 
Language

 

https://levelup.gitconnected.com/smalltalk-its-not-your-grandfather-s-programming-language-f1985eaa17ff
 

 



Re: [Pharo-users] [seaside] how can I now make the best work to display all the paiintings which are in the paintings collection

2020-01-06 Thread Paul DeBruicker
Hi Roelof,

There is a seaside specific mailing list you could join here: 

http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


I have Seaside loaded in an image and can't find the ListComponent class. 
IS that the correct name for the class you're using?


If you post your question along with the code you are trying to the Seaside
list someone will probably be able to help you.  What you're describing
sounds straightforward to implement. 



Good luck 

Paul


Pharo Smalltalk Users mailing list wrote
> Hello,
> 
> Im a little bit further on my first project but now I fail to see how I 
> can use the ListComponent to display all the paintings that are in the 
> paintings collection on the Paintings class.
> 
> Anyone who can give me hints on this ?
> 
> Roelof





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] [seaside] how can I now make the best work to display all the paiintings which are in the paintings collection

2020-01-06 Thread Paul DeBruicker
Also this tutorial gives a good overview of Seaside programming and is
different enough from the book that you get two approaches to many of the
same problems:  

http://seaside.gemtalksystems.com/tutorial.html


Paul DeBruicker wrote
> Hi Roelof,
> 
> There is a seaside specific mailing list you could join here: 
> 
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> 
> 
> I have Seaside loaded in an image and can't find the ListComponent class. 
> IS that the correct name for the class you're using?
> 
> 
> If you post your question along with the code you are trying to the
> Seaside
> list someone will probably be able to help you.  What you're describing
> sounds straightforward to implement. 
> 
> 
> 
> Good luck 
> 
> Paul
> 
> 
> Pharo Smalltalk Users mailing list wrote
>> Hello,
>> 
>> Im a little bit further on my first project but now I fail to see how I 
>> can use the ListComponent to display all the paintings that are in the 
>> paintings collection on the Paintings class.
>> 
>> Anyone who can give me hints on this ?
>> 
>> Roelof
> 
> 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread tbrunz
Richard!  Smalltalk is /the electric car of development systems/!

You need to lead with an image of a *Tesla Model S*, not a Maserati!  

What do most people associate with Italian sports cars?  Expensive,
impractical, temperamental, always in need of (expensive) maintenance, etc.

Smalltalk is none of these things...  Inexpensive, more practical than most
people imagine, robust and resilient, minimal maintenance, etc.  It's more
like a trusty sports utility vehicle -- so maybe an image of a Tesla Model X
(or Y) fits even better.

Another way Smalltalk is like an e-car: Electric cars extremely popular when
automobiles were new, fell out of favor, are today misunderstood by the
majority, but are being "rediscovered" and found to better in almost every
way compared to "what's popular" (ICE vehicles).  Those who drive them just
LOVE them, and so the stage is set for the rEVolution: the renaissance of
electric cars.

And so it is for Smalltalk.  

tl;dr:  Smalltalk:e-cars::Pharo:Tesla



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] R: Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread horrido
Thanks!

I have a question for everyone. Someone has taken me to task for being
"sexist". He says I should refer to "grandparent" instead of "grandfather".

I'd like to ask for your opinion. Would "grandparent" sound better in my
article? Imagine replacing all instances of "grandfather" with
"grandparent". Would it have the same impact?

Thanks.



Lorenzo wrote
> Great work Rich
> 
>  
> 
> My best compliments.
> 
>  
> 
> Lorenzo
> 
>  
> 
> Da: Pharo-users [mailto:

> pharo-users-bounces@.pharo

> ] Per conto di Richard Kenneth Eng
> Inviato: lunedì 6 gennaio 2020 19:07
> A: 

> pharo-users@.pharo

> Oggetto: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming
> Language
> 
>  
> 
> https://levelup.gitconnected.com/smalltalk-its-not-your-grandfather-s-programming-language-f1985eaa17ff





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread horrido
The problem is that the underlying premise of my article would be undermined.
Our grandparents had nothing like the Tesla.

I used Maserati because it's an /aspirational/ car. Not practical. Not
cheap. But droolworthy.

Nobody dreams of owning a Tesla. But Maserati? Bugatti? Porsche? Aston
Martin? You bet!



tbrunz wrote
> Richard!  Smalltalk is /the electric car of development systems/!
> 
> You need to lead with an image of a *Tesla Model S*, not a Maserati!  
> 
> What do most people associate with Italian sports cars?  Expensive,
> impractical, temperamental, always in need of (expensive) maintenance,
> etc.
> 
> Smalltalk is none of these things...  Inexpensive, more practical than
> most
> people imagine, robust and resilient, minimal maintenance, etc.  It's more
> like a trusty sports utility vehicle -- so maybe an image of a Tesla Model
> X
> (or Y) fits even better.
> 
> Another way Smalltalk is like an e-car: Electric cars extremely popular
> when
> automobiles were new, fell out of favor, are today misunderstood by the
> majority, but are being "rediscovered" and found to better in almost every
> way compared to "what's popular" (ICE vehicles).  Those who drive them
> just
> LOVE them, and so the stage is set for the rEVolution: the renaissance of
> electric cars.
> 
> And so it is for Smalltalk.  
> 
> tl;dr:  Smalltalk:e-cars::Pharo:Tesla
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread xap
Hmm, just where are these prof stef Gedankenexperiments :-? I didn't see 'em
in the syntax tutorial proper.

Thx for the tiny-is-beautiful article. I didn't have any moment of satori,
but am happy to have found a prolific author (in addition to
Richard-evangelist)

About not feeling extra-illuminated ... perhaps it comes from my stance that
once one lays down the ground rules that everything is an object, and that
objects inherit, and get work done by doing it themselves or by delegating
it, then, say, much of Boolean's implementation shakes out of that, no?
(that's rhetorical)

For me the value in the pharo Boolean implementation is notsomuch who passes
the buck and who ultimately does what, but the synergy among objects and
methods that get all this done.

(BTW I'll bet the fait accompli synergy we see in today's source didn't
start out that way -- there were likely many prosaic versions along the way
to getting there, if not on paper then in somebody's mind. Often I find that
process MUCH more valuable than the spit-and-polish of a finished product.)

Recursion often has me laugh because it seems "nobody does any work" -- dang
near everything is delegated elsewhere, and it's just a few base cases that
actually do any heavy lifting. I'm being facetious, of course.

To me interconnected object systems are often like that, and multiplied many
times over -- any bit of work is delegated here, there, everywhere ... and
(for me) this federated work disperses logic and makes it less immediately
comprehensible.

There's definitely gee-whiz appeal to the synergy of a multitude of objects
in a loosely-coupled system, and IMO that appeal is valuable (which echoes
the ethos of the tiny/beautiful article), but ... anyway, yeah, part of my
reason for this foray into smalltalk is to see how that side lives.

TLDR: the above is just my thinking out loud, possibly for a future-me to
find; i have no questions; pls ignore :-)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] R: Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread tbrunz
I would probably use "grandparents'" as in "not your grandparents'
programming language".



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] R: Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread Richard Sargent
On Mon, Jan 6, 2020 at 12:18 PM horrido  wrote:

> Thanks!
>
> I have a question for everyone. Someone has taken me to task for being
> "sexist". He says I should refer to "grandparent" instead of "grandfather".
>
> I'd like to ask for your opinion. Would "grandparent" sound better in my
> article? Imagine replacing all instances of "grandfather" with
> "grandparent". Would it have the same impact?
>

Arguably, it is sexist. But, I think it is also accurate. I am guessing
that better than 99% of grandparents driving Maserattis are or were male.

I think we sometimes rely on dogma rather than reason. Still, it is worth
being aware of the word choices you make and whether they may be
inappropriate for the circumstances.


> Thanks.
>
>
>
> Lorenzo wrote
> > Great work Rich
> >
> >
> >
> > My best compliments.
> >
> >
> >
> > Lorenzo
> >
> >
> >
> > Da: Pharo-users [mailto:
>
> > pharo-users-bounces@.pharo
>
> > ] Per conto di Richard Kenneth Eng
> > Inviato: lunedì 6 gennaio 2020 19:07
> > A:
>
> > pharo-users@.pharo
>
> > Oggetto: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming
> > Language
> >
> >
> >
> >
> https://levelup.gitconnected.com/smalltalk-its-not-your-grandfather-s-programming-language-f1985eaa17ff
>
>
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>


Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread Richard Sargent
On Mon, Jan 6, 2020 at 12:26 PM xap  wrote:

> Hmm, just where are these prof stef Gedankenexperiments :-? I didn't see
> 'em
> in the syntax tutorial proper.
>
> Thx for the tiny-is-beautiful article. I didn't have any moment of satori,
> but am happy to have found a prolific author (in addition to
> Richard-evangelist)
>
> About not feeling extra-illuminated ... perhaps it comes from my stance
> that
> once one lays down the ground rules that everything is an object, and that
> objects inherit, and get work done by doing it themselves or by delegating
> it, then, say, much of Boolean's implementation shakes out of that, no?
> (that's rhetorical)
>
> For me the value in the pharo Boolean implementation is notsomuch who
> passes
> the buck and who ultimately does what, but the synergy among objects and
> methods that get all this done.
>
> (BTW I'll bet the fait accompli synergy we see in today's source didn't
> start out that way -- there were likely many prosaic versions along the way
> to getting there, if not on paper then in somebody's mind. Often I find
> that
> process MUCH more valuable than the spit-and-polish of a finished product.)
>

It is often informative to understand *how* a thing came to be, beyond the
"Tada! Here it is."


> Recursion often has me laugh because it seems "nobody does any work" --
> dang
> near everything is delegated elsewhere, and it's just a few base cases that
> actually do any heavy lifting. I'm being facetious, of course.
>
> To me interconnected object systems are often like that, and multiplied
> many
> times over -- any bit of work is delegated here, there, everywhere ... and
> (for me) this federated work disperses logic and makes it less immediately
> comprehensible.
>

This is absolutely true and correct. That's why it's crucial that a message
send clearly identify the "what" and the method implementation clearly
implement the "how". (And that too is recursive!)

Many years ago, my wife worked for a life insurance company. No one could
look at one department and understand the whole algorithm involved in even
just the lifecycle of a new policy.

We don't slavishly or dogmatically mimic nature when we design objects, but
we do attempt to clearly and cleanly separate responsibilities much as
nature does. There are many guidelines, heuristics, and practices we employ
to achieve good robust designs. Using analogues to real-world things helps
make them familiar and innately understandable.


> There's definitely gee-whiz appeal to the synergy of a multitude of objects
> in a loosely-coupled system, and IMO that appeal is valuable (which echoes
> the ethos of the tiny/beautiful article), but ... anyway, yeah, part of my
> reason for this foray into smalltalk is to see how that side lives.
>
> TLDR: the above is just my thinking out loud, possibly for a future-me to
> find; i have no questions; pls ignore :-)
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>


Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread tbrunz
I don't think so...  In the early 1900's some of the finest and most
sought-after automobiles were battery-powered electrics:
https://www.curbed.com/2017/9/22/16346892/electric-car-history-fritchle

You want to associate with the prestige of being a manly, winning, race car? 
Okay:
Sept 7, 1896: The very first automobile race held on a track in the U.S. was
won by... an electric car.
https://insideevs.com/news/339638/on-this-day-in-ev-history-electric-car-wins-us-first-auto-race/

It does fit your premise:  One third of our grandparents (for those of us
>50 at least) drove electric cars [opcit].  Then their popularity waned as
ICE vehicles grabbed everyone's attention.  Now, e-cars are all the rage
again.  

Tesla is *the* aspirational vehicle: Last year GM sales declined 2.3%.  Last
year Ford sales declined 3%.  Tesla sales?  Tesla sales not only increased
last year, but have grown 47 *times* in 7 years!  Holy smokes!!! Talk about
explosive success and popularity!
https://cleantechnica.com/2020/01/03/tesla-sales-grew-47x-in-7-years/

Everyone dreams of owning a Tesla.  (I'm buying mine next year, when my Bolt
goes off lease...)  Those other cars are "unobtainium".  Flights of fancy. 
Dream about them?  Maybe, but no one is every serious about actually buying
one and driving it for themselves.

Electric cars are a "disruptive" technology in the process of remaking the
auto industry world-wide -- and all for the better.

And so it is with Smalltalk, yes?  I suggest associating Smalltalk with a
real-world, world-changing, growing-in-popularity technology that's taking
people from skeptical nay-sayers to enthusiastic true believers -- not a
pie-in-the-sky, would-be-nice-but-can't-happen-to-me bit of
testosterone-infused wimsy.  Smalltalk is The Real Deal.  Something you can
obtain and DRIVE!



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread horrido
I've made the change from grandfather to grandparent. Unfortunately, I cannot
alter the URL — it still reads grandfather.

As much as I would like to use Tesla, the problem is that our grandparents
never drove electric. Without rewriting a substantial portion of the
article, I cannot make a connection between grandparent and Tesla. It would
be too awkward.

I want my article to be elegant. That's the hallmark of my writing style.



tbrunz wrote
> I don't think so...  In the early 1900's some of the finest and most
> sought-after automobiles were battery-powered electrics:
> https://www.curbed.com/2017/9/22/16346892/electric-car-history-fritchle
> 
> You want to associate with the prestige of being a manly, winning, race
> car? 
> Okay:
> Sept 7, 1896: The very first automobile race held on a track in the U.S.
> was
> won by... an electric car.
> https://insideevs.com/news/339638/on-this-day-in-ev-history-electric-car-wins-us-first-auto-race/
> 
> It does fit your premise:  One third of our grandparents (for those of us
>>50 at least) drove electric cars [opcit].  Then their popularity waned as
> ICE vehicles grabbed everyone's attention.  Now, e-cars are all the rage
> again.  
> 
> Tesla is *the* aspirational vehicle: Last year GM sales declined 2.3%. 
> Last
> year Ford sales declined 3%.  Tesla sales?  Tesla sales not only increased
> last year, but have grown 47 *times* in 7 years!  Holy smokes!!! Talk
> about
> explosive success and popularity!
> https://cleantechnica.com/2020/01/03/tesla-sales-grew-47x-in-7-years/
> 
> Everyone dreams of owning a Tesla.  (I'm buying mine next year, when my
> Bolt
> goes off lease...)  Those other cars are "unobtainium".  Flights of fancy. 
> Dream about them?  Maybe, but no one is every serious about actually
> buying
> one and driving it for themselves.
> 
> Electric cars are a "disruptive" technology in the process of remaking the
> auto industry world-wide -- and all for the better.
> 
> And so it is with Smalltalk, yes?  I suggest associating Smalltalk with a
> real-world, world-changing, growing-in-popularity technology that's taking
> people from skeptical nay-sayers to enthusiastic true believers -- not a
> pie-in-the-sky, would-be-nice-but-can't-happen-to-me bit of
> testosterone-infused wimsy.  Smalltalk is The Real Deal.  Something you
> can
> obtain and DRIVE!
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread tbrunz
Understood...  It is, of course, your essay, and my comments are just my own
view.

And I think I've made my point, which is what I wanted to get across.

I like your writing style, Richard.  You're making a huge contribution to
Smalltalk/Pharo and it's much appreciated.  Please continue!

-t




--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread Davide Grandi

We could agree to a win-win solution, "a' la Franklin Covey"
designing an automotive market solution, written in Smalltalk, for
Maserati (Modena), Tesla (Palo Alto) and why not Ferrari (Maranello).

All automotive brand will migrate their lines to full electric or
hybrid models.

What do Smalltalk needs to replace C[++]/Java in automotive market
solutions ?

(I saw either Ferrari & Maserati buildings and/or plants, I had to plan
a trip to Palo Alto ... and Hawtorne, for SpaceX)

Bye,

Davide

On 06/01/2020 20:59, tbrunz wrote:

Richard!  Smalltalk is /the electric car of development systems/!

You need to lead with an image of a *Tesla Model S*, not a Maserati!

What do most people associate with Italian sports cars?  Expensive,
impractical, temperamental, always in need of (expensive) maintenance, etc.

Smalltalk is none of these things...  Inexpensive, more practical than most
people imagine, robust and resilient, minimal maintenance, etc.  It's more
like a trusty sports utility vehicle -- so maybe an image of a Tesla Model X
(or Y) fits even better.

Another way Smalltalk is like an e-car: Electric cars extremely popular when
automobiles were new, fell out of favor, are today misunderstood by the
majority, but are being "rediscovered" and found to better in almost every
way compared to "what's popular" (ICE vehicles).  Those who drive them just
LOVE them, and so the stage is set for the rEVolution: the renaissance of
electric cars.

And so it is for Smalltalk.

tl;dr:  Smalltalk:e-cars::Pharo:Tesla
 
--

Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


--
Ing. Davide Grandi
email  : davide.gra...@email.it
mobile : +39 339 7468 778



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread horrido
And it's a very good view, indeed. I thank you for bringing it to my
attention.

I was particularly impressed by the "revival" aspect of e-cars because, as
you said, Smalltalk is due for a revival, as well. This may actually lead to
a sequel article!

I am always amazed that I can still come up with new ideas for articles.
After 5 years, you'd think I'd run out of ideas. In fact, I actually thought
I did.

Surprises never cease.



tbrunz wrote
> Understood...  It is, of course, your essay, and my comments are just my
> own
> view.
> 
> And I think I've made my point, which is what I wanted to get across.
> 
> I like your writing style, Richard.  You're making a huge contribution to
> Smalltalk/Pharo and it's much appreciated.  Please continue!
> 
> -t
> 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread xap
I came across a Sanskrit term, "darshan", meaning sight/seeing, used in Hindu
theology, that seeing a deity, *and being seen in return*, completes a human
sense of self/being. I'm ad libbing here. So thx, Richard, for the nod (and
do desist continuing to feed the animals) :-!

"We don't slavishly or dogmatically mimic nature when we design objects, but
we do attempt to clearly and cleanly separate responsibilities much as
nature does. There are many guidelines, heuristics, and practices we employ
to achieve good robust designs. Using analogues to real-world things helps
make them familiar and innately understandable."

ahhh, that reminded me -- in recent video-watching I learn Alan Kay started
out (?) w/ a degree in molecular (?) biology. for me that made many things
fall into place.

(aside: turns out bruce lee was a bona fide philosophy major in college; had
me put a lot of HIS quips in context, rather than, shame on me, eyeroll and
snort)

which is still not to say i hold nature's-way sacrosanct. while kay says in
that clip above that one shouldn't subdivide a computer into "something less
than a computer" (e.g. not separate data from action) i could make just as
emphatic arguments to the contrary: that it's fabulously elegant to
represent the world-as-data, who cares it's not "natural", and to have
orthogonal actions mutate that into another state. kinda like the functional
folk. except for the mutate part :-/

anyway, i'm here to educate myself.

what draws me to learn as i can of smalltalk, aside from it being the
flagship of the objects-all-the-way weltanschauung, is because I have a toy
app that could benefit from a more expressive language. it reads/writes a
client-server database, reads/writes sockets to manage open-vpn,
reads/writes to external REST apis, edits images, munges text files,
fetches/parses web pages, automates chrome to navigate to and interact w/
other sites and web pages, and prolly a few more mundane things i'm
forgetting.

i wrote it in Excel/VBA for that environment's "non-serious" and for me
recreational aspect, no-(explicit)-compile dev cycle, capable-enough
language and, mostly, forgiving and excellent ide. smalltalk/pharo is that
times 10, plus reduced application code due language facilities, dynamic
code generation and loading (possible in vba, but laborious), additional
language expressiveness.

all of which can be done in, say, javascript but i quail at the lack of
typing for programming-in-the-large, I'm yet to find a debug-edit-continue
experience a la vba (which is still leagues behind that of smalltalk), and i
wouldn't be learning anything new

currently that app is structured as a main-like entry point with,
subsequently, a few "smart" objects pushing and pulling many other much
dumber ones. i hope to be self-aware enough not simply to recast that in
smalltalk

but it remains to be seen how tractable i am to education :-/





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Smalltalk: It’s Not Your Grandfather’s Programming Language

2020-01-06 Thread tbrunz
Thanks.  This is the "human factors" engineering aspect, the "sales strategy"
part of the technology -- which has its own set of interesting challenges... 
And is also very important to achieving success "in the marketplace" -- a
marketplace of the mind, which is adoption and use (as opposed to actual
retail sales).

I find these challenges interesting, and I can tell you're absorbed by it as
well.  It doesn't have the relatively 'clean' deductive solution in the way
that engineering challenges like development of the Pharo language and
environment have; it's not like "writing a program to solve the problem"
(regardless of how hard that may be), because the problem is persuasion &
motivation of other people.  That's messy, imperfect, unpredictable, and
subject to a variety of strategies -- some of which will fail one day and
somehow inexplicably succeed the next.

My strategy on this is simple: Associate Smalltalk with something already
successful (or it the process of succeeding) in the marketplace.  Better if
it's something that is emerging unexpectedly, or "beating the odds" and the
proving the "expert" commentators wrong.  Even better if it's something that
was a big deal in the past, but has been largely forgotten, but now coming
"back in fashion".

The parallels between the two technologies (and their timing) is almost
uncanny...

Looking forward to that sequel, Richard!!  ;^)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread tbrunz
Smalltalk is that times 10,000...  (I wrote an entire SMB accounting system,
including tracking "perpetual inventory" in Excel/VBA.  I was between tech
jobs at the time..)  So, yeah, it will be an excellent vehicle to recast
your "toy app".

Yes, Alan Kay did get his Bachelor's in molecular biology, and that informed
a lot of his ideas of how software systems should be designed & constructed.

For the Gedankenexperiments, they're not in ProfStef.  ProfStef is just the
"dipping the toes into the water" introduction to Pharo.  At the end, it
prods you to download & go through "Pharo By Example", which is booklet #1
in a 3-booklet series.  (The other two being "Deep into Pharo" and
"Enterprise Pharo".)

That's very good advice...  You'll find it here: http://books.pharo.org/

Note that PBE5 (written as v5 came out) is *not* obsolete at all, but PBE8
is out now in draft form.  Look in Section 10.5 in PBE5 for the particular
G/E I referred to.  You'll also find it in the Pharo MOOC in Week 2, Lession
11, "The Essence of Dispatch".



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread xap
-- http://books.pharo.org/: "Pharo By Example" (PBE), "Deep into Pharo",
"Enterprise Pharo".
-- PBE5/Section 10.5 for the particular G/E I referred to.  You'll also find
it in the Pharo MOOC in Week 2, Lession 11, "The Essence of Dispatch"

got it, thx!



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread tbrunz
I should have recommended the MOOC as well...  I did ProfStef, then PBE5 (in
Pharo 6.1), then the MOOC.  (I did the MOOC in 6.1 also, downloading and
installing the components that come "pre-assembled" in the MOOC image
template you can clone in Pharo-Launcher.)

Oh, and for your comment about Sven: He's a excellent writer, too!  An
interesting challenge is to recreate his HP-35 calculator "example" --
mainly because he didn't intend it to be a tutorial, so there's a bit of
"fill in the blanks" you'll be challenged with.

But it will do a lot to show you how to create native GUI apps and a web app
-- of the same thing, allowing you to compare, which is nice.
https://medium.com/concerning-pharo/rediscovering-the-ux-of-the-legendary-hp-35-scientific-pocket-calculator-d1d497ece999

And it's yet another example of how good a writer Sven is, for the technical
& not-tech sides of things.




--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] Prof Stef questions

2020-01-06 Thread xap
yeesh, this just may take more than the few hours i'd initially penciled in

the sven-article i read earlier was on medium, i think. as is this
calculator one. both read like medium articles ... and suggest an
overarching editorial tone, no? unless all medium authors belong to the
strunk-and-white-relaxed-for-the-millennium school of writing or some such
;-)

there's a quip attributed u.s. justice brandeis: there is no good writing;
only good re-writing. applies as much to slate articles, and to code, as it
does to supreme court opinions :-/

quips aside i'm always grateful for structured and graduated presentation,
and clean/consistent/elegant writing, so many thx sven, and other authors!





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] can I make this so the vm would not be not responsibe when running the tests

2020-01-06 Thread Richard O'Keefe
Well, no. This is not a particularly "nice vehicle for programmers to
familiarise themselves with recursion".
To start with, a quick web search turns up
https://en.wikipedia.org/wiki/Wheat_and_chessboard_problem.
Problems where the result depend on previous results often fall into
the "dynamic programming" category,
with

Object subclass: #ChessBoard
  instanceVariableNames: 'board sum'
  class methods for: 'instance creation'
new: n
  ^self new initialize: n
  methods for: 'initializing;
initialize: n
  board := Array new: n squared.
  board at: 1 put: 1.
  2 to: board size do: [:i |
board at: i put: (board at: i - 1) * 2].
  sum := 0.
  board do: [:each |
sum := sum + each].
  ^self
  methods for: 'accessing'
   squareAt: i
  ^board at: i
total
  ^sum

being the most obvious elementary implementation.  The very
description of the problem
suggests an iterative approach.

To find a nice problem for recursion, you have to find one where
tabulation is *not* a
good strategy.

On Mon, 6 Jan 2020 at 08:06, Ben Coman  wrote:
>
> Hi Richard,
>
> Just fyi, the aim of Exercism is not to teach programming.  Its aim is for 
> experienced programmers to fast-start in new languages.
> It just happens to that new programmers also use Exercism and there is some 
> catering in the exercise text for this.
>
> The grains exercise provides a nice vehicle for programmers to familiarize 
> themselves with recursion in Pharo,
> and the hint for the exercise says "These kinds of problems (where an answer 
> is dependent on a previous) one are often called recursion"
> which is why Roelof is approaching the problem this way.
>
> That said, any solution will do.  Your advice on alternative considerations 
> is insightful and always good to read.
>
> cheers -ben
>
> On Mon, 6 Jan 2020 at 00:25, Richard O'Keefe  wrote:
>>
>> I did not ask why you were validating input.
>> I asked about why you *repeatedly* validated input.
>>
>> Think of it this way:
>>publicMethod: arg1 also: arg2
>>   ... check arg1 ...
>>   ... check arg2 ...
>>  ^self privateMethod: arg1 also: arg2
>>
>> privateMethod: arg1 also: arg2
>>   ... trust that arg1 and arg2 are valide ...
>>   ... recursive calls use #privateMethod:andAlso: ...
>>   ... not #publicMethod:andAlso: and must ensure ...
>>   ... that arguments are valid by construction ...
>>
>> In my solution to the "Grains" exercism, I have
>>   atSquare: n   -- checks its argument
>>   total ^(1 bitShift: 64) - 1
>> You are required to implement these two methods, true.
>> You are NOT required to implement #total by calling #atSquare:.
>> Not even once.  Nor is #atSquare: required to be recursive.
>>
>> On Mon, 6 Jan 2020 at 02:05, Roelof Wobben  wrote:
>> >
>> > Hello Ricard.
>> >
>> > You mean when I calcualate the total of a board.
>> > That is because on when I had to calculate the number of a particular
>> > field there were tests where the number was lower then zero or higher
>> > then 64 which makes no sense.
>> >
>> > But im open for a solution where on a particular field I could check for
>> > that and for the total I do not need that part.
>> >
>> > Roelof
>> >
>> >
>> >
>> > Op 5-1-2020 om 13:58 schreef Richard O'Keefe:
>> > > Time microsecondsToRun: [
>> > >  |n|
>> > >  n := (2 raisedToInteger: 8 * 8) - 1.
>> > >  Transcript
>> > >  nextPutAll: 'The number of grains on an 8x8 chessboard is ';
>> > > print: n; cr; endEntry].
>> > > 
>> > > On my laptop, this reports 194 microseconds.
>> > >
>> > > Why would you use recursion, anyway?
>> > >
>> > > Time microsecondsToRun: [
>> > >  |n|
>> > >  n := (1 to: 8 * 8) inject: 0 into: [:acc :each | acc+acc+1].
>> > >  Transcript
>> > >  nextPutAll: 'The number of grains on an 8x8 chessboard is ';
>> > > print: n; cr; endEntry].
>> > > 
>> > > On the same laptop, this reports 118 microseconds.
>> > >
>> > > One of the lessons of 'functional' languages, promptly adopted by 
>> > > Smalltalk, is
>> > > to encapsulate control structures into reusable methods, such as 
>> > > #inject:into:,
>> > > more commonly known as `foldl` in functional languages.  It's then none 
>> > > of
>> > > my business whether such a method works by recursion, iteration, or gangs
>> > > of otherwise seasonally unemployed Christmas elves.
>> > >
>> > > In my own Smalltalk library,
>> > >(GeometricSeries new: 64 from: 1 byFactor: 2) sum
>> > > only takes 15 microseconds.
>> > >
>> > > I do note that you are calling validateInput repeatedly.  Why?
>> > >
>> > >
>> > > On Sun, 5 Jan 2020 at 07:41, Roelof Wobben via Pharo-users
>> > >  wrote:
>> > >> Oke,
>> > >>
>> > >> So I can better not use recursion for this problem if I understand you 
>> > >> well,  Richard.
>> > >>
>> > >> Roelof
>> > >>
>> > >>
>> > >>
>> > >> Op 4-1-2020 om 19:02 schreef Richard Sargent:
>> > >>
>> > >> On Sat, Jan 4, 2020 at 9:47 AM Roelof Wobben via Pharo-user

Re: [Pharo-users] [ANN] XMLParserHTML moved to GitHub

2020-01-06 Thread LawsonEnglish
Torsten Bergmann wrote
> Hi,
> 
> 
> You can load using
> 
>Metacello new
>   baseline: 'XMLParserHTML';
>   repository: 'github://pharo-contributions/XML-XMLParserHTML/src';
>   load.
> 
> 
> Bye
> T.

Hi, 

I'm trying to use the sample code in the pharo screen scraping booklet —
http://books.pharo.org/booklet-Scraping/pdf/2018-09-02-scrapingbook.pdf — 
but while everything appears to load, I'm getting an odd behavior from:

/| ingredientsXML |
ingredientsXML := XMLHTMLParser parseURL:
'https://ndb.nal.usda.gov/ndb/search/list?sort=ndb&ds=Standard+Reference'.
ingredientsXML inspect/

"#new was sent to nil"

No matter what URL I use, I get the same message.

I'm using Mac OS Catalina so I thought I might have some strange Mac OS
security issue (like it was quietly refusing to allow Pharo to access the
internet), but I tested with squeak and the old 

/html :=(HtmlParser parse:
'https://ndb.nal.usda.gov/ndb/search/list?sort=ndb&ds=Standard+Reference'
asUrl retrieveContents content)/

and that returns actual html without any problems.


Suggestions?


Thanks.

L




--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread Richard O'Keefe
What is the receiver?  There are two and only two relevant objects:
the word and the collection.
aCollection selectAnagramsOf: aString
aString anagramsIn: aCollection
would be good names.  In a language that did not let you extend system classes,
anagrams(of: aString, in: aCollection)
would be good, but Smalltalk is not such a language.

'findAnagramsCandidates:subject:' is intention-revealing, but is not
good English.
Well, maybe the intentions could be revealed a bit better.
What is the subject of an anagram?  No idea.
What is an 'anagramsCandidate'?  No idea.
What is the difference between an 'anagram' and an 'anagramCandidate'?

 anagramsOf: aString in: aCollection
 selectFrom: aCollection anagramsOf: aString


On Mon, 6 Jan 2020 at 03:07, Roelof Wobben via Pharo-users
 wrote:
>
> Hello
>
> In a earlier question I get a remark to think better about naming things.
> Now I did  a challene where I have to find anagrams of a given word in a
> collection,
>
> So I did this :
>
> findAnagramsCandidates: aCollection subject: aWord
>  | charBag |
>  charBag := aWord asLowercase asBag.
>  ^ aCollection
>  reject:
>  [ :word | (word sameAs: aWord) or: [ word asLowercase asBag
> ~= charBag ] ]
>
>
> is my naming here better or can i improved and if so how ?
>
> Regards,
>
> Roelof
>
>



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread Richard O'Keefe
I've always considered "all objects respond to #value" as a bug.
It certainly is not portable: it wasn't in Smalltalk-80, or Apple Smalltalk,
or ANSI Smalltalk, and it isn't in GNU Smalltalk or Dolphin Smalltalk or
VisualWorks.  It's a peculiarity of Squeak/Pharo and Smalltalk/X.
This is a misfeature that can hide bugs until they are ready to hurt you.

On Mon, 6 Jan 2020 at 12:13, Santiago Dandois  wrote:
>
> It's better (conceptually and in performance) to use the inner block, but is 
> not always necessary. The #or: message sends the `value` message to it's 
> collaborator if the bolean is false. Blocks responds to value executing 
> theirs code, but all objects respond to value since it's defined in the 
> Object class as ^self. Therefore, the result is the same but the messages 
> involved and the order in which they are being sent are not. In performance, 
> for the case where the first bolean was true, is better the one with the 
> surrounding block , since the code inside it is never being executed.
>
> You should really try both versions with the debugger to see it by yourself.
>
> Cheers,
> Santiago Dandois
>
> El dom., 5 ene. 2020 a las 19:53, xap () escribió:
>>
>> thx Rixhard. looks like or: takes an 'alternativeBlock', i.e. a block.
>> however substituting a parenthesized expression (or what i assume is one) as
>> I did before, in place of the inner block, w/ no other changes has the
>> method continue to work as expected, hence my question. *shrug* i need to
>> rtfm :-/
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread Richard O'Keefe
When I wrote "is not good English", I meant that "findAnagramsCandidates"
sounds *horrible* to this native speaker of English.  "findCandidateAnagrams"
works.

On Tue, 7 Jan 2020 at 18:12, Richard O'Keefe  wrote:
>
> What is the receiver?  There are two and only two relevant objects:
> the word and the collection.
> aCollection selectAnagramsOf: aString
> aString anagramsIn: aCollection
> would be good names.  In a language that did not let you extend system 
> classes,
> anagrams(of: aString, in: aCollection)
> would be good, but Smalltalk is not such a language.
>
> 'findAnagramsCandidates:subject:' is intention-revealing, but is not
> good English.
> Well, maybe the intentions could be revealed a bit better.
> What is the subject of an anagram?  No idea.
> What is an 'anagramsCandidate'?  No idea.
> What is the difference between an 'anagram' and an 'anagramCandidate'?
>
>  anagramsOf: aString in: aCollection
>  selectFrom: aCollection anagramsOf: aString
>
>
> On Mon, 6 Jan 2020 at 03:07, Roelof Wobben via Pharo-users
>  wrote:
> >
> > Hello
> >
> > In a earlier question I get a remark to think better about naming things.
> > Now I did  a challene where I have to find anagrams of a given word in a
> > collection,
> >
> > So I did this :
> >
> > findAnagramsCandidates: aCollection subject: aWord
> >  | charBag |
> >  charBag := aWord asLowercase asBag.
> >  ^ aCollection
> >  reject:
> >  [ :word | (word sameAs: aWord) or: [ word asLowercase asBag
> > ~= charBag ] ]
> >
> >
> > is my naming here better or can i improved and if so how ?
> >
> > Regards,
> >
> > Roelof
> >
> >



Re: [Pharo-users] is this better regarding naming thigs

2020-01-06 Thread xap
richard, fwiw Roeloff mentioned earlier that the message-name was provided by
the exercise set he's following, and isn't of his invention:
http://forum.world.st/is-this-better-regarding-naming-thigs-tp5109389p5109471.html
. he sh/could fwd your note/s to the course-author ;)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html