Re: [Pharo-users] Running a teapot instance remotely

2019-10-13 Thread Vince Refiti
Hi Joachim

I see. I have submitted a pull request to change the wording to reflect the 
real situation.

By the way I work professionally on a 20 year old VA Smalltalk app that we just 
upgraded from 6 to 9. That thing is solid as a rock and only walksback with bad 
code. Nothing ever else goes wrong.

Vince

-Original Message-
From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of 
jtuc...@objektfabrik.de
Sent: Friday, 11 October 2019 4:09 PM
To: pharo-users@lists.pharo.org
Subject: Re: [Pharo-users] Running a teapot instance remotely

EXTERNAL: Do not click links or open attachments if you do not recognize the 
sender.

Vince,

I guess this has its roots in long-ongoing discussions about the anticipated 
disadvantages of image-based development in general. It tries to explain that 
Smalltalk has mechanisms for recovering code after an image crashes. It is not 
indicating that images do actually crash more often than other development 
environments. It is more a remark about the fact that of course even Smalltalk 
can crash and that there is a mechanism (namely the changes file and changes 
browsers) for restoring your code after a crash, even if you didn't file-out 
your code or didn't push it to an external repository. Nothing more, nothing 
less.

So please don't read this as: "Since Pharo/Smalltalk isn't stable, we had to 
xyz" - this is not the case. I've been using Smalltalk (mostly not Pharo) for 
more than 25 years and I can only remember having a need to recover source code 
maybe a hand full of times. In my favorite Smalltalk (VA Smalltalk), I am 
almost 100% sure I never had this issue because Envy is exactly the measure 
that is mentioned in the sentence you cited.

Joachim

Am 11.10.19 um 07:39 schrieb Vince Refiti:
> Hi
>
> This brings up some questions I have been meaning to ask for some time. The 
> sentence "When the Pharo image crashes (which will happen), there must be a 
> way to automatically recover from this crash." appears in the Enterprise 
> Pharo Book.
>
> Does this claim still apply? Is Pharo that unstable still?
>
> If it is, what are the major causes in your own applications that crash it? I 
> have run a few small, local, experimental Teapot, Seaside and other Pharo 
> server apps and nothing crashed, but reading something like that makes me 
> nervous about public-facing server apps in Pharo.
>
> Vince
>
> -Original Message-
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On 
> Behalf Of Pierce Ng
> Sent: Friday, 11 October 2019 12:39 PM
> To: Any question about pharo is welcome 
> Subject: Re: [Pharo-users] Running a teapot instance remotely
>
> EXTERNAL: Do not click links or open attachments if you do not recognize the 
> sender.
>
> On Thu, Oct 10, 2019 at 04:18:14PM -0400, sergio ruiz wrote:
>> How are people keeping it running these days?
> I used to use daemontools. These days I use Docker.
>
> Pierce
>

--
---
Objektfabrik Joachim Tuchel  mailto:jtuc...@objektfabrik.de
Fliederweg 1 
https://urldefense.com/v3/__http://www.objektfabrik.de__;!09EJrJkydGw!T9iwyNs37EekSPqfOmRtg4DpnjEcw9FV-Jzjbc59Tl-koQTH29rq-sj7txDgv-AzwGmoSvo25w$
 
D-71640 Ludwigsburg  
https://urldefense.com/v3/__http://joachimtuchel.wordpress.com__;!09EJrJkydGw!T9iwyNs37EekSPqfOmRtg4DpnjEcw9FV-Jzjbc59Tl-koQTH29rq-sj7txDgv-AzwGkxDIrO4Q$
 
Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1





Re: [Pharo-users] Pharo launcher

2019-10-13 Thread ilker özcan
I format my pc and reinstall windows..now it works..thank you.

On Tue, Oct 8, 2019, 18:10 Christophe Demarey 
wrote:

> Hi Ilker,
>
> It looks like you got the same issue as
> https://github.com/pharo-project/pharo-launcher/issues/349
> If you do not run Pharo Launcher from cmd line or unzip is not in the
> path, it should works fine (waiting for a proper fix).
> Please try to delete corrupted VMs (you can use Pharo Launcher VM Manager)
> and try again.
>
> Thanks for the report,
> Christophe
>
> > Le 8 oct. 2019 à 15:35, ilker özcan  a écrit :
> >
> > When i tried to install pharo 7 and 8 with the launcher on windows 10
> there happened a message which says windows can not run 16 bit program..
> >
> > It seems pharo.exe seems to be 16 bit ( i installed 64bit)..anyone with
> such a problem and any idea how i can solve this? Thanks all..
>
>
>


Re: [Pharo-users] Transcript: printString or asString

2019-10-13 Thread Samuel Teixeira Santos
Hi Tim.

I just learned in previous videos of the mooc about using nautilus to
explore using "Implementers of..." or "Senders of..."

I will do that for sure now.

Thanks for your tip.


Regards

>


Re: [Pharo-users] Transcript: printString or asString

2019-10-13 Thread Tim Mackinnon

Hi - While I’m sure everyone can give you an answer - it’s more useful to teach 
you how to answer these questions for your self.  

Try right clicking with your cursor on asString and choose “implementors of” 
(it may have a slightly different name friending on Pharo version - or press 
“meta”-m. Do the same for printString and compare the results. Also, do the 
same using  “senders of” (meta-n).

Most code in Pharo is explorable like this, and you can generally answer most 
questions by seeing his other code in the system interacts or uses what you are 
exploring.

Tim


Sent from my iPhone

> On 13 Oct 2019, at 11:50, Samuel Teixeira Santos  wrote:
> 
> Hi folks.
> I'm starting in Pharo studies by FUN Mooc.
> In Week 03, on An Overview of Essential Collections there is the example 
> below:
> 
> | days |
> days := Dictionary new.
> 
> days
> at: #January put: 31;
> at: #February put: 28;
> at: #March put: 31.
> 
> days keysAndValuesDo:
> [ :k :v | Transcript show: k asString, ' has ', v printString, ' days'
> ; cr ]
> 
> The code in blue I change for 
> 
> days keysAndValuesDo:
> [ :k :v | Transcript show: k asString, ' has ', v asString, ' days'
> ; cr ]
> 
> And works too on Playground.
> 
> There is something different about both? There is someone better than other?
> 
> Thanks in advance,
> 
> 
> Samuel T. Santos


[Pharo-users] Transcript: printString or asString

2019-10-13 Thread Samuel Teixeira Santos
Hi folks.
I'm starting in Pharo studies by FUN Mooc.
In Week 03, on An Overview of Essential Collections there is the example
below:

| days |
days := Dictionary new.

days
at: #January put: 31;
at: #February put: 28;
at: #March put: 31.

days keysAndValuesDo:
[ :k :v | Transcript show: k asString, ' has ', v printString, ' days'
; cr ]

The code in blue I change for

days keysAndValuesDo:
[ :k :v | Transcript show: k asString, ' has ', v asString, ' days'
; cr ]

And works too on Playground.

There is something different about both? There is someone better than other?

Thanks in advance,


Samuel T. Santos


Re: [Pharo-users] voyage mongo and transactionality

2019-10-13 Thread jtuc...@objektfabrik.de

Jonathan,

I was a bit destracted by work this week, so I am a little late to the 
show...


Am 10.10.19 um 12:26 schrieb Jonathan van Alteren:

Hi Joachim,

Thank you for your feedback.

It feels good to know we're not alone in this :-)


Well, I guess there are far more people in this boat than actually know 
they are ;-)



Unfortunately, the things you describe are familiar to me. My business 
partner Dave West has a lot of experience with applying a behavioral, 
'pure' object design approach. We're looking hard into simplifying 
these matters through the application of inversion of control and by 
making objects as autonomous as they can possible be.
sigh, This is really, really hard. You'd need a guard in the background 
that autonomously register all objects that get 
visited/accessed/modified during an operation and create a memento just 
before this actually happens. Ideally, this would only happen if the 
upcoming operation on that objects modifies its state once the operation 
happens. Or ot would have to clean up non-modified ones after the 
operation finished. I guess this second alternative is even feasible 
using slots and such, but there remain a few questions about 
synchronizing all this and the underlying database transactions...
At the same time, we haven't found the pot of gold at the end of the 
rainbow yet ;-)


You know, sometimes I fear it is better not to have anybody come back 
from that end of the rainbow. They might have found out there is no pot 
or anything similar to one ;-)



Nowadays, a fair amount of applications have a very direct way of 
handling user interactions and resulting state changes. For example, 
the settings of my Firefox browser doesn't have a save button anymore. 
Anything I change looks to be automatically persisted. Perhaps there 
is some value in that approach for 'enterprise' applications as well, 
although I think there will remain a lot of use cases where an 
explicit save will be needed for whatever reason.


Hmm. I am afraid there is a certain distance between changes that only 
affect a single setting value and more complex values that imply a lot 
of recomputation of values in a more complex model. Sometimes you also 
need to modify or at least check consequences of changes that don't fit 
onto a single screen, and there you need to find ways to allow a user to 
step back from what they just started to do...





Let's keep talking about this. I need to do some research on the 
memento pattern first :-) If you have any information sources you can 
point me to, I would greatly appreciate that.


I don't follow any interesting research on mementos. Too much work to do 
for that. The memento pattern itself is just "make a copy that the user 
can play with without any consequences to the original object". Works 
perfect for a single object or a well-defined object graph. But I am not 
aware of any working solutions that would solve our problems for more 
complex graphs, or even a general one... If you find something, let us know!



Joachim





Kind regards,

Jonathan van Alteren

Founding Member | Object Guild
jvalte...@objectguild.com
On 9 Oct 2019, 16:49 +0200, jtuc...@objektfabrik.de 
, wrote:


This is a tricky mine field. Sometimes you need a lot of business 
functionality in objects referenced in your objects that are 
currently in the editor. So I'm still to see a project in which the 
memento pattern really worked for more complex scenarios. How deep do 
you dive to have enough memento objects to provide the functionality 
needed. I guess you can do that with some sort of object-level 
transaction framework that automatically creates mementos of whatever 
object is being navigated to during some kind of processing-context. 
I guess slots could be of use here. But this is not trivial for 
general cases.


In my experience, this problem area makes for the other 70% of the 
time spent on developing GUI or Web applications, besides the 60% for 
GUI design and implementation and 25% business logic...


I'd be interested to learn about patterns to handle such more complex 
things. We constantly travel back and forth between implementing 
stuff in the GUI handlers (copying values to the GUI classes that 
access themselves during GUI operations and push values to the 
business objects when the users clicks on OK), using mementos (which 
most of the times are nets of mementos that are created manually - 
"we know what we'll touch in this Editor") and operating on business 
objects directly and relying on the persistence mechanism (Glorp in 
our case) and its rollback behaviour. All three have lots of 
weaknesses and seem to have their place nevertheless.


So this is a very interesting discussion and I think this is an area 
that has not been solved yet.



Joachim







Am 09.10.19 um 16:25 schrieb James Foster:
Thanks for the explanation. And, yes, this is an artifact of your 
design; if you put intermediate values into domain objects then they