Re: [Pharo-users] How to download Pharo40?

2014-07-09 Thread Tim Mackinnon
Uko2 wrote
 you can run
 
 curl get.pharo.org/40+vm | bash
 
 To load latest image + vm. 

Does this actually work? I just ran it today - and it did download 2 scripts
and a pharo-vm directory. But when I run either of the scripts I get a file
prompter on OSX (presumably the VM asking me for the location of an image
file?).

I would have expected it to give me something like the 1-click download that
would run? Do I also have to download a 40 image file as well? I expected
the 40+ of the command line to mean image?

Am I missing something?

Tim



--
View this message in context: 
http://forum.world.st/How-to-download-Pharo40-tp4766797p4767236.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



[Pharo-users] Red Exclamation in Nautilus?

2014-07-09 Thread Tim Mackinnon
Guys - it's been a while since I've used Pharo, and in 3.0 its come along
with leaps and bounds.

But I'm struggling to know what many things mean, and what the UI is telling
me? Is it written up somewhere?

I also quite quickly seemed to get into troubles with the new Nautilus
browser where it gives me walkbacks and won't let me select things. I've
started again with a new image and am trying again to do some simple things
- and see if I can come up with the use cases.

As a starting point - I've just created a new class, with a new Category
name and the class has a red exclamation mark next to it. What does that
mean?

Also what is the difference between Add Class, and Add full Class in the
context menu? I ended up just typing over the definition of an existing
class as there is no flyover help for either of these to know what it does?

Tim



--
View this message in context: 
http://forum.world.st/Red-Exclamation-in-Nautilus-tp4767242.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] How to download Pharo40?

2014-07-09 Thread Tim Mackinnon
Thanks Marcus - you know I did read the deepintopharo first chapter - but I
didn't notice the subtle invocation mentioned under How to find our way (I
think it was a bit wordy for me).

Thinking about this - I think it might be clearer if the heading for 2.3 was
Running An Image with Command line options

And the first paragraph was subtly changed to:

We now have a new and easier way to launch an image from the command line
and process command line arguments. If you have followed the steps above you
can use:

./pharo image [--options]

OR

./pharo-ui image [--options]

Where typically lt;image is Pharo.image and options can be omitted, or
if you want to see some basic documentation use --help e.g.

./pharo Pharo.image --help




--
View this message in context: 
http://forum.world.st/How-to-download-Pharo40-tp4766797p4767245.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



[Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-09 Thread Tim Mackinnon
I don't want to create lots of noise - or create unnecessary work, but if I
find bugs in Pharo 3.0, should I be reporting them?

Or do you want me to try and repro them in 4.0 and then report them under
4.0?

For example, I have a class that was a subclass of CustomHelp that overrode
the class #pages method. I then decided to use Wiki help, and so moved my
class to subclass Object, but then i noticed that the #pages method (which I
was about to delete) still had an override green arrow symbol. Curious - I
clicked it and got a walkback (as the UI is wrong).

How do I report that? Do you want me to? I do have a fobgugz account.

I've also noticed another error with the locked methods pane (not sure what
to call it, and also really don't fully understand how it works). However it
gets corrupted with long wrapping strings in the source. Do I report that?

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] How to download Pharo40?

2014-07-09 Thread Tim Mackinnon
Hey Uko - just tried Pharo launcher and its actually pretty good. I already
have a few ideas for little tweaks so maybe I may be able to contribute
something when I get a bit better. 

Thanks for pointing it out.

Tim



--
View this message in context: 
http://forum.world.st/How-to-download-Pharo40-tp4766797p4767287.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-09 Thread Tim Mackinnon
OK - will do.

I am finding that Nautilus in Pharo 3 is very flakey - its very easy to get
into a position where you cant select anything in the package or class pane
- and you just get walkbacks making it unusable. I'm surprised its not been
noticed already.

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767300.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-09 Thread Tim Mackinnon
Just to clarify - should I just submit for 4.0 and make a note that it
applies to 3.0 and then you guys can make a duplicate?

Or should I make a duplicate? If its me - how do I duplicate a bug in
fogbugz - I can't see an option to do it (and would expect it to link the
two)

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767306.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-10 Thread Tim Mackinnon
Hi Nicolai - I should have added that I like the direction that Nautilus is
going (and it looks cool) - there is a lot of potential particularly if the
code underneath is clean (my experience with the browser code from Squeak,
was that it was messy - and seemed to have been ported through several
systems).

I have reported several bugs which I'm assuming you have seen. I think the
problems surface more when something is new and you play around with it to
understand what things do.

I particularly like to understand the inheritance hierarchy of things I'm
looking at - hence why I click those buttons.

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767392.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-11 Thread Tim Mackinnon
Nicolai - I have just seen that you have a fix for one of the Nautilus issues
I raised (awesome).

Forgive me - but I don't yet know how to load up a slice and test it (but am
willing to learn, so I can perhaps help more in the future).

I've loaded up the latest Pharo 4.0 image - luanched monticello - but how do
I load a slice?

If its written up somewhere - I'm happy to go and read.

I'm assuming the idea is that when you report a bug, if someone fixes it -
you try and verify it and then I can mark it resolved in Fogbugz?

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767503.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-11 Thread Tim Mackinnon
Phil - I think your message ended up in the wrong thread?

You should try and attend ESUG though - its a great conference. I found a cheap 
hotel on Booking.com - but I bet there might a YMC or something in Cambridge 
that might make it more affordable (I recall people doing something similar in 
the past). Even if your accommodate is far away - it looks quite cheap to rent 
a bicycle for the week and cycle in.

Tim

On 11 Jul 2014, at 13:57, philippeback [via Smalltalk] 
ml-node+s1294792n4767516...@n4.nabble.com wrote:

 I'd like to come but hotel/accomodation rates looked prohibitive to me.
 
 Are there affordable options ?
 
 Phil
 
 
 On Fri, Jul 11, 2014 at 12:47 PM, Nicolai Hess [hidden email] wrote:
 
 
 
 2014-07-11 12:15 GMT+02:00 Tim Mackinnon [hidden email]:
 Nicolai - I have just seen that you have a fix for one of the Nautilus issues
 I raised (awesome).
 
 Forgive me - but I don't yet know how to load up a slice and test it (but am
 willing to learn, so I can perhaps help more in the future).
 
 I've loaded up the latest Pharo 4.0 image - luanched monticello - but how do
 I load a slice?
 
 select repository http://smalltalkhub.com/mc/Pharo/Pharo40Inbox/main; in the 
 right pane.
 -open that repository.
 -enter the slice number in the left or right field.
 -select the slice in the list on the right side (there may be different 
 slices for one issue)
 -and choose Load for loading this slice or 
   Merge If you want to see the diff before loading.
 
  
 
 If its written up somewhere - I'm happy to go and read.
 
 I'm assuming the idea is that when you report a bug, if someone fixes it -
 you try and verify it and then I can mark it resolved in Fogbugz?
 
 Yes, we need people testing and reviewing the bug fixes.
 
 Just write a note if it is working.
 If it is not working or has other issues, change the status back to work 
 needed
 
 Status description:
 https://pharo.fogbugz.com/?W65
 
 
 Nicolai
  
 
 Tim
 
 
 
 --
 View this message in context: 
 http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767503.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
 
 
 
 
 
 If you reply to this email, your message will be added to the discussion 
 below:
 http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767516.html
 To unsubscribe from Should I be reporting bugs in Pharo 3.0?, click here.
 NAML





--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767526.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-11 Thread Tim Mackinnon
Nicolai - your instructions worked perfectly (thanks - I'm a smaller step
closer to contributing).

I tried the slice in a fresh image and hit some strange problems (might not
be related to your fix, although its only when I load that I see them). I've
put it in the FobFubgz and reassigned it back to you (hoepfully that's what
I'm supposed to do).

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767531.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-12 Thread Tim Mackinnon
Can I check one more item - should I record the actual Image version where
bugs occur?

In fogbugz, there is a version field - but I'm not sure what your convention
is for these things? (Is it written down somewhere for me to read how to
report good bugs using FogBugz).

As an aside - I'm quite surprised how poor Fogbugz is. I had read it was a
good bug tracker - but in practice its quite minimal. I'm quite shocked you
can't easily duplicate a bug-report (I wrote to them and they said you have
to use some browser plugin as its not built in), I also can't see how to
link bug-report (as in, similar to X). 

Not Pharo's fault of course.

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767598.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-13 Thread Tim Mackinnon
Thanks for the fog bugz tips.

Duplicating a bug is useful for several reasons I've found in the past:
A) if you want to submit the same bug for two streams (eg Pharo 3   4) to be 
dealt with  differently - copying them is handy.
B) if you have a similar bug with similar  steps bar 1, or a bug fix improves 
the situation but highlights another different problem... It's useful to 
duplicate a bug (with it conveniently linked) to save time. I'm not a huge Jira 
fan - but it makes that really easy  I'm suprised that fog bugz is so basic.

Of course it's not the end of the world - but you do wonder why all bug 
tracking software is so clunky. I'm equally suprised that linking bugs by using 
the parent/child fields is the only way - if bugs are peers, it seems natural 
to just link them that way without needing a parent.

Anyway - I'll use what we've got and get used to its eccentricities.

Tim

Sent from my iPhone

On 13 Jul 2014, at 19:14, Ben Coman [via Smalltalk] 
ml-node+s1294792n4767653...@n4.nabble.com wrote:

 Tim Mackinnon wrote:
 
  Can I check one more item - should I record the actual Image version where 
  bugs occur? 
  
  In fogbugz, there is a version field - but I'm not sure what your 
  convention 
  is for these things? (Is it written down somewhere for me to read how to 
  report good bugs using FogBugz). 
  
  As an aside - I'm quite surprised how poor Fogbugz is. I had read it was a 
  good bug tracker - but in practice its quite minimal. I'm quite shocked you 
  can't easily duplicate a bug-report (I wrote to them and they said you have 
  to use some browser plugin as its not built in), I also can't see how to 
  link bug-report (as in, similar to X). 
  
  Not Pharo's fault of course. 
  
  Tim 
   
 There are two ways to link bug reports. 
 1. By writing 'Case #' anywhere in the ticket. 
 2. Adding case number # to the Parent and Subcase fields in the 
 side-bar.   The Pharo CI Monkey only picks up slices for a parent case 
 once all child cases are closed. 
 
 Now I've never needed to duplicate a bug report.  I'd like to understand 
 what your use case is there? 
 
 cheers -ben 
 
 
 
 
 
 If you reply to this email, your message will be added to the discussion 
 below:
 http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767653.html
 To unsubscribe from Should I be reporting bugs in Pharo 3.0?, click here.
 NAML




--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767662.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

[Pharo-users] I've raised a bug that the Pharo website has a missing video

2014-07-15 Thread Tim Mackinnon
FYI - I've raised a bug that the pharo website doesn't have a video showing
how to report bugs anymore.

13553 - Reporting issues video on Pharo website reports Does not exist

Not sure if it's right to raise an issue - but thought it made sense (and
given I can't watch the video... ;)

Tim



--
View this message in context: 
http://forum.world.st/I-ve-raised-a-bug-that-the-Pharo-website-has-a-missing-video-tp4767805.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



[Pharo-users] Advice on making a first contribution

2014-07-15 Thread Tim Mackinnon
Hi guys - I've decided to try and use moments of spare time to see if I can
contribute in small ways (and I'm sorry I can't contribute in big ways - but
maybe I will get up to that point).

Anyway - I've thought it would be handy to improve the help text in Pharo -
as this it where I first looked to find out a few things about the new
environment, and discovered that the help doesn't really provide help on the
environment.

So having scouted around and looked at the help engine - it seemed like
easiest way was to use the WikiHelp support, and put a pragma in a suitable
place (initially I subclassed CustomHelp - but I think that is for more
sophisticated uses than just documenting some basic help).

Anyway - I created a package called Pharo-Help - and so my first question
is: Are there names I should avoid, or conventions I should follow for good
package names?

I've then created a class PharoEnvironmentHelp with a class method
#wikiStyleHelp (which is a convention I've seen in other places) - and it
reads the class comment so it's easy to edit.

However - should I use a separate class for this? It does keep it out of the
way - but it ends up not being a class that does anything - so I could put
this text on something else that represents Pharo - or is this fine?

I've also given it the name ? Pharo Help so it appears at the top of the
list - my thinking being that new users would probably expect intro help at
the top and the ? does this.

Finally - how do I submit it? (and I'm happy to read up on this, if there is
something that has it nicely documented).



Tim



--
View this message in context: 
http://forum.world.st/Advice-on-making-a-first-contribution-tp4767806.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Advice on making a first contribution

2014-07-16 Thread Tim Mackinnon
I think I've figured out what I need to know by watching the video on the
Pharo fogbugz page here - https://pharo.fogbugz.com/default.asp?W68

So I guess I will try that and see what feedback I get.

Tim



--
View this message in context: 
http://forum.world.st/Advice-on-making-a-first-contribution-tp4767806p4768071.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Should I be reporting bugs in Pharo 3.0?

2014-07-16 Thread Tim Mackinnon
Thanks Marcus - I will use it carefully and try and improve anything I find
as I relearn things.



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4768079.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



[Pharo-users] Pharo launcher network error for Pharo 4.0 (beta)?

2014-07-22 Thread Tim Mackinnon
I was quite enjoying using Pharo Launcher - but today I am getting “network 
error” for the Pharo4.0 (beta) and Pharo 2.0 (old) trees?

Has something changed?

Tim


[Pharo-users] What should I do when I get a fogbugz Fix review needed?

2014-07-22 Thread Tim Mackinnon
If I report a bug in fogbugz and it later gets fixed, I get an email with the 
slice its fixed in.

So I’ve loaded the slice into the latest image - then I’ve done “merge” (I’m 
still not clear on whether I should do merge or load? I think I understand that 
I need merge to just get those fixes?).

Having retested my bug, and found that it has been fixed - I entered a comment 
saying which image version I tested it in, but then I’m not sure what I should 
do with the status?

Can someone just clarify that for me?

Tim


Re: [Pharo-users] Pharo launcher network error for Pharo 4.0 (beta)?

2014-07-22 Thread Tim Mackinnon
Yes its weird - I can view  http://files.pharo.org/image/40/ fine in a web
browser. It seems to affect 4.0 and 2.0.

3.0 and RModJenkins etc all expand correctly.

The status bar was saying 4 network errors (although checking now, it says
7).

It could be connectivity in this office, so I can check it from home - but
it seems weird that some work and others don't.

Tim



--
View this message in context: 
http://forum.world.st/Pharo-launcher-network-error-for-Pharo-4-0-beta-tp4769383p4769414.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Pharo launcher network error for Pharo 4.0 (beta)?

2014-07-25 Thread Tim Mackinnon
I've tried it at home and it works fine, yesterday it didn't work in the
office (just 4.0 and 2.0) - some there must be some weird networking going
on in that office.

Anyway - glad I can use it at home, as its a very handy launcher!

Thanks for creating it, and to those helping maintain it.

Tim



--
View this message in context: 
http://forum.world.st/Pharo-launcher-network-error-for-Pharo-4-0-beta-tp4769383p4770061.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



[Pharo-users] Slice loading/merging differences question

2014-08-07 Thread Tim Mackinnon
Hi - I am still a bit confused about the difference between load vs. merge with 
Monticello?

Last month, when I tried to verify a bug fix, I did a load - and it caused 
other things (dependencies?) to be loaded into my clean image and so I ended up 
with something else in a broken state. So I had to do a Merge - get just the 
specific fixes and I could prove everything worked.

Yesterday however I wanted to test a fix Damien made for  bug 13526. But when I 
Merged it, I hit a DNU and then noticed he had put the following comment (Slice 
.2 depends on 13787). 
So I repeated the same merge step for 13787 and it then worked (apart from 
another edge case I found and he has now fixed).

But this has got me thinking, I don’t really understand the difference between 
merge/load. Can someone explain it to me in the above context? Should I have 
“loaded” 13526 so that it pulled in the dependency indicated? (I notice in the 
slice description - it shows - Dependencies: Tool-Base-DamienPollet.24). I 
thought Monticello managed dependencies - so now I’m confused why I need to do 
Merge anyway?

Related to this, when the next “release” image gets built - how are these 
slices assembled such that Tool-Base-DamienPollet.24 is correctly loaded in 
release image?

Thanks for any help.

Tim

Re: [Pharo-users] Slice loading/merging differences question

2014-08-08 Thread Tim Mackinnon
stepharo wrote
 When we integrate changes we systematically merge so that even if you 
 did a fix on a not recent version we get both improvements.

Stef - just to check on this, in the case of fogbugz 13526 - if you just
merge, you don't pick up the requirement to load fogbugz 13787?

So how do the dependencies work with merging? Am I right in thinking that
using Load - MC uses the dependency information encoded to actually load
13787 as well? 

When I merged manually in a clean image - I didn't get that dependency (and
only spotted it because Damien had mentioned it in the bug text, although
I've now noticed it does seem to be encoded in the slice somehow?).

This is the bit that is eluding me? 

Tim



--
View this message in context: 
http://forum.world.st/Slice-loading-merging-differences-question-tp4772352p4772418.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



[Pharo-users] PharoLauncher can only run 1 instance on OSX?

2014-08-08 Thread Tim Mackinnon
I really like the PharoLauncher project - it’s very handy. However I’ve noticed 
that on OSX when I launch an image and then try and run PhaorLauncher (e.g. 
pharo.app) again, it just switches me to my already running image?

Anyone know why it does that - or if there is some way to avoid it? i’m 
wondering it its the way that the launcher, launches the images (is it an os 
sub-process or something - and so this is why it just switches back to that 
process if you try and run it again?).

Tim


Re: [Pharo-users] PharoLauncher can only run 1 instance on OSX?

2014-08-08 Thread Tim Mackinnon
Hi - thanks for suggesting that. It’s actually set to true - and on OSX 
Mavericks, with that setting it seems that when I launch a new image (and it 
supposedly quits) - when I run the launcher again - it just takes me to the 
image that was just launched. (I swear it didn’t do that at some point - and 
I’m not sure if its since I updated to Mavericks - or whether my other OSX 
computer doesn’t exhibit this behaviour).

Anyway - if I uncheck it (and leave the launcher running) - then I can at least 
launch other images (and if I run the app again - it seems to bring the running 
launcher to the foreground). If I try and quit the launcher manually after 
launching an image - it still exhibit this same behaviour. It’s quite strange? 
(but at least I have a workaround).

By the way  - do you know how you save that setting? I thought it save 
automatically, but it didn’t seem to. I pressed the export button - but and 
that seemed to do it, but I wasn’t convinced that is actually save?

Tim

On 8 Aug 2014, at 16:45, Baptiste Quide baptiste.qu...@inria.fr wrote:

 Hello,
 
 i think you select the option Quit on Launch (by default) on Pharo 
 Launcher. That's why when you're clicking it just switches to your running 
 image.
 Try to deselect this option and retry.
 
 Regards,
 
 - Mail original -
 De: Tim Mackinnon tim@testit.works
 À: Pharo Users Newsgroup pharo-users@lists.pharo.org
 Envoyé: Vendredi 8 Août 2014 17:34:06
 Objet: [Pharo-users] PharoLauncher can only run 1 instance on OSX?
 
 I really like the PharoLauncher project - it’s very handy. However I’ve
 noticed that on OSX when I launch an image and then try and run
 PhaorLauncher (e.g. pharo.app) again, it just switches me to my already
 running image?
 
 Anyone know why it does that - or if there is some way to avoid it? i’m
 wondering it its the way that the launcher, launches the images (is it an os
 sub-process or something - and so this is why it just switches back to that
 process if you try and run it again?).
 
 Tim
 
 




[Pharo-users] Always asking for developer initials in 4,0?

2014-08-08 Thread Tim Mackinnon
I’ve noticed quite a few times now in the Pharo 4.0 images - that I keep 
getting multiple prompts to enter my developer initials. I can’t put my finger 
on it - I think its when I open a SystemBrowser in a new image - and just edit 
a class comment (it then prompts me for initials which is correct). However, if 
I then open the World Help - and then go back to my class comment and enter 
some new text - it often prompts me again?

After doing this a few times - it then seemed to stick - so I’m not exactly 
sure what causes it (this was in build 40123 - so reasonably recent).

I mention it in case someone else has noticed this as well.

Tim


Re: [Pharo-users] Always asking for developer initials in 4,0?

2014-08-08 Thread Tim Mackinnon
Yes - there is definitely a problem - after not prompting me a few times - I’ve 
just made another text change in the comment and its asked me for “Author 
Identification” again.

Tim

On 8 Aug 2014, at 18:11, Tim Mackinnon tim@testit.works wrote:

 I’ve noticed quite a few times now in the Pharo 4.0 images - that I keep 
 getting multiple prompts to enter my developer initials. I can’t put my 
 finger on it - I think its when I open a SystemBrowser in a new image - and 
 just edit a class comment (it then prompts me for initials which is correct). 
 However, if I then open the World Help - and then go back to my class comment 
 and enter some new text - it often prompts me again?
 
 After doing this a few times - it then seemed to stick - so I’m not exactly 
 sure what causes it (this was in build 40123 - so reasonably recent).
 
 I mention it in case someone else has noticed this as well.
 
 Tim




Re: [Pharo-users] Website redirects?

2014-08-09 Thread Tim Mackinnon
Another url was: http://www.pharo.org/get-involved

On 9 Aug 2014, at 12:32, Tim Mackinnon tim@testit.works wrote:

 Guys - some of the URL’s on the pharo website have changed - I think it would 
 make sense to have redirects instead of a Not Found error? e.g. 
 http://www.pharo.org/get-help
 
 Just saying? Should I raise a ticket for this?
 
 Tim




[Pharo-users] Website redirects?

2014-08-09 Thread Tim Mackinnon
Guys - some of the URL’s on the pharo website have changed - I think it would 
make sense to have redirects instead of a Not Found error? e.g. 
http://www.pharo.org/get-help

Just saying? Should I raise a ticket for this?

Tim


Re: [Pharo-users] PharoLauncher can only run 1 instance on OSX?

2014-08-09 Thread Tim Mackinnon
Thanks Ben - you are right, there has been another release since I downloaded 
it (might have to look at how to detect a version update in the launcher to 
spot that - that would keep me busy ;)

I’m fixed now.

Tim

On 9 Aug 2014, at 06:29, Ben Coman b...@openinworld.com wrote:

 Tim Mackinnon wrote:
 I really like the PharoLauncher project - it’s very handy. However I’ve 
 noticed that on OSX when I launch an image and then try and run 
 PhaorLauncher (e.g. pharo.app) again, it just switches me to my already 
 running image?
 
 Anyone know why it does that - or if there is some way to avoid it? i’m 
 wondering it its the way that the launcher, launches the images (is it an os 
 sub-process or something - and so this is why it just switches back to that 
 process if you try and run it again?).
 
 Tim
 
  
 
 I had this behaviour on Mavericks, and after a while I was going to report 
 it, but a few days ago I noticed that it suddenly went away, and now could 
 launch multiple images and open PharoLauncher again each time.  When I 
 noticed this, it had been a few days since anything changed, so I can't pin 
 down what that might be.  Maybe I downloaded a newer VM from files.pharo.org, 
 or maybe I re-installed PharoLauncher with a later version, or maybe an OSX 
 update.  My PharoLauncher's current system details are:
 * Image: #30848 .
 * VM:
   Mac Cocoa Cog 5.8b12 21-Sep-10
   NBCoInterpreter NativeBoost-CogPlugin-GuillermoPolito.19 May 15 2014
   NBCogit NativeBoostCogPlugin-GuillermoPolito.19 May 15 2014.
 
 cheers -ben
 
 
 




[Pharo-users] Any thoughts on improving MC browser?

2014-08-09 Thread Tim Mackinnon
I was just about to ask how do I compare two arbitrary versions in Monticello - 
as I can’t multiselect - until I realised that the Diff button prompts you for 
a version against what you have currently selected. This is a very weird UI 
experience. Now that we seem to have multi-select widgets - are there any 
proposals to improve MC?

Tim


Re: [Pharo-users] PharoLauncher can only run 1 instance on OSX?

2014-08-09 Thread Tim Mackinnon
Actually Ben - I take it back, it still seems to want to only launch a single 
instance with v.3.0.0 - I’m not sure what’s going on (and when i’m back at the 
office I will have to check it with my desktop version as swear it was working 
properly).

Tim

On 9 Aug 2014, at 13:20, Tim Mackinnon tim@testit.works wrote:

 Thanks Ben - you are right, there has been another release since I downloaded 
 it (might have to look at how to detect a version update in the launcher to 
 spot that - that would keep me busy ;)
 
 I’m fixed now.
 
 Tim
 
 On 9 Aug 2014, at 06:29, Ben Coman b...@openinworld.com wrote:
 
 Tim Mackinnon wrote:
 I really like the PharoLauncher project - it’s very handy. However I’ve 
 noticed that on OSX when I launch an image and then try and run 
 PhaorLauncher (e.g. pharo.app) again, it just switches me to my already 
 running image?
 
 Anyone know why it does that - or if there is some way to avoid it? i’m 
 wondering it its the way that the launcher, launches the images (is it an 
 os sub-process or something - and so this is why it just switches back to 
 that process if you try and run it again?).
 
 Tim
 
 
 
 I had this behaviour on Mavericks, and after a while I was going to report 
 it, but a few days ago I noticed that it suddenly went away, and now could 
 launch multiple images and open PharoLauncher again each time.  When I 
 noticed this, it had been a few days since anything changed, so I can't pin 
 down what that might be.  Maybe I downloaded a newer VM from 
 files.pharo.org, or maybe I re-installed PharoLauncher with a later version, 
 or maybe an OSX update.  My PharoLauncher's current system details are:
 * Image: #30848 .
 * VM:
  Mac Cocoa Cog 5.8b12 21-Sep-10
  NBCoInterpreter NativeBoost-CogPlugin-GuillermoPolito.19 May 15 2014
  NBCogit NativeBoostCogPlugin-GuillermoPolito.19 May 15 2014.
 
 cheers -ben
 
 
 
 
 




[Pharo-users] Categorise method defaults?

2014-08-09 Thread Tim Mackinnon
When using Pharo 4.0 - if I create a new class (subclass of Object) and then 
create a new class method for constructing that instance - when I try to 
classify the method why is the list of possibilities empty?

In old versions of squeak I recall there was a list of possibilities already in 
the image to choose from? I was expecting “instance creation” to be there 
already for me?

Am i missing something?

Tim


[Pharo-users] The tedious split between class and instance?

2014-08-09 Thread Tim Mackinnon
The more I use Pharo again - the more it strikes me how tedious it is to have 
to flip between instance and class side definitions.

For example - if I create a new class with an instance variable, and then in my 
class constructor method decide that it would be handy to do:

^self new children: items; yourself

But I don’t yet have the #children: method - if I select the create accessors 
refactoring (while still looking at my class method) - it does nothing because 
I have an instance variable not a class variable. So I have to switch to the 
instance side, to use this refactoring and then flip back to writing my class 
method. 

This is really tedious - we really should find a better way to do this, as it 
eats away at your programming flow. It’s not the language - its the tools…

Tim


[Pharo-users] Can I create a personal slice?

2014-08-09 Thread Tim Mackinnon
Hi - i was playing around with some changes in a few packages to see if I can 
make a contribution to PharoLauncher.

I want to version my spikes, in case I trash my image - but I’m not yet ready 
to propose anything to commit yet. While I can version each of the dirty 
packages - how can I group them to load them in one go? I thought maybe I could 
make a quick personal slice - store it in my personal file disk repository and 
then load it again if something goes wrong or I want to revert. However it 
seems that to create a slice I need a Fogbugz number - which seems more like 
I’m ready to contribute? Can’t I make a personal slice? Or is this where I have 
to use Metacello?

Tim


Re: [Pharo-users] Can I create a personal slice?

2014-08-10 Thread Tim Mackinnon
Hi Ben - I’m familiar with what you describe, and I guess I will have a poke.

I have noticed I can type - , and put some text like 
“Person—MyChanges-description” - so maybe I should just do that in my repo?

Sean’s suggestion of a change set is a decent fallback, however given we have 
code repositories it seems right to want to flag a group of packages together 
to easily reload. No-one has mentioned metacello - so I’m assuming that is more 
heavy-weight than what I should need right?

Tim

On 10 Aug 2014, at 02:15, Ben Coman b...@openinworld.com wrote:

 Tim Mackinnon wrote:
 Hi - i was playing around with some changes in a few packages to see if I 
 can make a contribution to PharoLauncher.
 
 I want to version my spikes, in case I trash my image - but I’m not yet 
 ready to propose anything to commit yet. While I can version each of the 
 dirty packages - how can I group them to load them in one go? I thought 
 maybe I could make a quick personal slice - store it in my personal file 
 disk repository and then load it again if something goes wrong or I want to 
 revert. However it seems that to create a slice I need a Fogbugz number - 
 which seems more like I’m ready to contribute? Can’t I make a personal 
 slice? Or is this where I have to use Metacello?
 
 Tim
 
 
 
 I believe you currently can't make a personal slice, but I've also thought it 
 would be useful.
 
 Now here is a tip to explore the system.  Bring up the halos on the grab 
 but clicking three times until you get to the PluggableButtonMorph, then 
 click the Debug spanner icon and choose Inspect Morph from the menu.  
 Scroll through the instance variables until you see something that looks like 
 it indicates what happens when the button is pushed.  Various mechanisms are 
 used and I don't remember them between times I do this.  In this case it 
 looks like 'actionSelector' is sued, but I also see 'actionBlock' and I think 
 sometimes its something else.  Put a halt in the called method, click the 
 button and trace through to see how it works.  Modify to suit your needs.
 
 cheers -ben
 
 
 
 




Re: [Pharo-users] Can I create a personal slice?

2014-08-10 Thread Tim Mackinnon
Thanks guys - I was offline and didn't notice the replies. Definitely good to 
know I can do this.

Tim

Sent from my iPhone

 On 10 Aug 2014, at 10:34 pm, Benjamin benjamin.vanryseghem.ph...@gmail.com 
 wrote:
 
 A slice is basically just a set of mcz files
 So there is no problem at all to use slices for your personal projects :)
 
 Ben
 
 On 10 Aug 2014, at 23:24, Tim Mackinnon tim@testit.works wrote:
 
 I will make a not to try Versioneer (although the image I am using is the 
 one PharoLauncher is built in, which is 3.0).
 
 Anyway - I did try making a slice with bug number 0, and my own description, 
 and it let me create one and save it in my own repository. I’m not sure if 
 there are any bad ramifications to this - but it looks fine. Would be 
 interesting if anyone could comment on this (and I will check out Versioneer 
 - although it still sounds like overkill for some temporary work I just want 
 to version together).
 
 Tim
 
 On 10 Aug 2014, at 08:57, Ben Coman b...@openinworld.com wrote:
 
 Tim Mackinnon wrote:
 
 Hi Ben - I’m familiar with what you describe, and I guess I will have a 
 poke.
 
 I have noticed I can type - , and put some text like 
 “Person—MyChanges-description” - so maybe I should just do that in my repo?
 
 Sean’s suggestion of a change set is a decent fallback, however given we 
 have code repositories it seems right to want to flag a group of packages 
 together to easily reload. No-one has mentioned metacello - so I’m 
 assuming that is more heavy-weight than what I should need right?
   
 
 That probably used to be the case, but the balance may have tipped with 
 Versioneer built into Pharo 4.  
 
 btw, have you Mariano's post on personal use of Metacello.
 http://marianopeck.wordpress.com/2011/11/19/loading-projects-and-building-your-own-images-with-metacello/
 
 cheers -ben
 Tim
 
 On 10 Aug 2014, at 02:15, Ben Coman b...@openinworld.com wrote:
 
   
 Tim Mackinnon wrote:
 
 Hi - i was playing around with some changes in a few packages to see if 
 I can make a contribution to PharoLauncher.
 
 I want to version my spikes, in case I trash my image - but I’m not yet 
 ready to propose anything to commit yet. While I can version each of the 
 dirty packages - how can I group them to load them in one go? I thought 
 maybe I could make a quick personal slice - store it in my personal file 
 disk repository and then load it again if something goes wrong or I want 
 to revert. However it seems that to create a slice I need a Fogbugz 
 number - which seems more like I’m ready to contribute? Can’t I make a 
 personal slice? Or is this where I have to use Metacello?
 
 Tim
 
 
   
 I believe you currently can't make a personal slice, but I've also 
 thought it would be useful.
 
 Now here is a tip to explore the system.  Bring up the halos on the 
 grab but clicking three times until you get to the 
 PluggableButtonMorph, then click the Debug spanner icon and choose 
 Inspect Morph from the menu.  Scroll through the instance variables 
 until you see something that looks like it indicates what happens when 
 the button is pushed.  Various mechanisms are used and I don't remember 
 them between times I do this.  In this case it looks like 
 'actionSelector' is sued, but I also see 'actionBlock' and I think 
 sometimes its something else.  Put a halt in the called method, click the 
 button and trace through to see how it works.  Modify to suit your needs.
 
 cheers -ben
 
 
 
 
 
 


[Pharo-users] How to contribute to PharoLauncher?

2014-08-11 Thread Tim Mackinnon
Hi - I’ve added a few interesting features to PharoLauncher, but I’m not sure 
what the steps are for contributing to a SmalltalkHub project?

My proposed changes are as follows:
- Change default image template name to include the parent folder name (e.g. 
Pharo 4.0 (beta)-540123 vs. 450123)
- Add a new image command “Image Summary” that shows you the date of the last 
image modification as well as the contents of “description.txt” - as I can’t 
always remember why I have some old images kicking around (this change is quite 
basic - I couldn’t see how best to create a nice popup window so I reused the 
deny: one with a new title. I did think possibly a hover over balloon or having 
something like the comments panel in Pharo - but its a modal dialog for now)
- I changed the Run icon to a play button (as the process icon used - seemed a 
bit obscure)


Tim


Re: [Pharo-users] How to contribute to PharoLauncher?

2014-08-11 Thread Tim Mackinnon
Thanks Ben - I think that makes sense, as I did notice doing that kind of 
compare seemed to pull things into my image. As I’m about to try again - I’ll 
try what you suggest (I’m sure I will get there in the end).

Tim

On 11 Aug 2014, at 13:32, Ben Coman b...@openinworld.com wrote:

 Tim Mackinnon wrote:
 
 Stef - hmm thats an interesting feature as well, I’ll have a quick look.
 
 I tried committing my changes but I don’t have commit writes on that 
 project. I have entered a Fogbugz issue in the Launcher category and 
 attached my slice to it.
 
 I still think I’m doing something wrong with Monticello though. I thought I 
 was getting to grips with it, but when I compared my slice against the 
 smalltalk hub repo for Launcher, it shows a lot more outgoing changes than 
 are mine. Mine are in there - but there are lots of other classes which I 
 know I didn’t change which show with a green tick as an outgoing change? It 
 has me very confused.
 
 Yet - If I take a fresh Luancher image and then apply my Slice it works fine 
 (and also shows just my changes).
 
 Could it be the Smalltalk hub repo has moved on a lot since the released 
 version of Launcher - but then surely when diffing changes it would just 
 consider what is in my slice. I think I’m missing something important.
 
 Tim
   
 
 I'm sure I've hit something similar before, but then I think I learnt to work 
 around it or just not go there and those neurons have been garbage 
 collected, so I have a thin grasp of this but here goes... A slice 
 doesn't actually contain any code (only dependencies), and the Changes 't 
 pull in those dependencies, so you are kind of comparing nothing against an a 
 whole image, so everything is changed.  I find I must check the changes of 
 individual packages of a slice.  It would be real-nice to be able to get the 
 changes of a whole slice versus Pharo/main in one go, but I think that 
 behaviour is just missing.
 
 Btw, loading a slice into a fresh image Changes and Merge is a different 
 function, so all the changes for the whole slice are shown in one go.  
 cheers -ben
 
 On 11 Aug 2014, at 11:49, stepharo steph...@free.fr wrote:
 
   
 Hi tim
 
 I would love a sync from file possibility because I often remove directly 
 folders and after the launcher is dead.
 
 I think that to contribute you should commits code in the inbox of the 
 project.
 Damien is on vacation now but I'm sure he will welcome help.
 
 
 Hi - I’ve added a few interesting features to PharoLauncher, but I’m not 
 sure what the steps are for contributing to a SmalltalkHub project?
 
 My proposed changes are as follows:
 - Change default image template name to include the parent folder name 
 (e.g. Pharo 4.0 (beta)-540123 vs. 450123)
 - Add a new image command “Image Summary” that shows you the date of the 
 last image modification as well as the contents of “description.txt” - as 
 I can’t always remember why I have some old images kicking around (this 
 change is quite basic - I couldn’t see how best to create a nice popup 
 window so I reused the deny: one with a new title. I did think possibly a 
 hover over balloon or having something like the comments panel in Pharo - 
 but its a modal dialog for now)
 - I changed the Run icon to a play button (as the process icon used - 
 seemed a bit obscure)
 
 
 Tim
 
   
 
 
 
   
 
 



Re: [Pharo-users] How to contribute to PharoLauncher?

2014-08-11 Thread Tim Mackinnon
Stef - from what I can see, I think the refresh icon on the toolbar was 
supposed to do that - but it didn’t. I’m proposing a fix to make that work, as 
well as having file operations check the file they are working on is actually 
there - before attempting their operation (and tell you if not, and cause a 
refresh). It’s not beautiful - but its not so bad (but I’ll see what Damien and 
Ben think).

Tim

On 11 Aug 2014, at 11:49, stepharo steph...@free.fr wrote:

 Hi tim
 
 I would love a sync from file possibility because I often remove directly 
 folders and after the launcher is dead.
 
 I think that to contribute you should commits code in the inbox of the 
 project.
 Damien is on vacation now but I'm sure he will welcome help.
 
 Hi - I’ve added a few interesting features to PharoLauncher, but I’m not 
 sure what the steps are for contributing to a SmalltalkHub project?
 
 My proposed changes are as follows:
 - Change default image template name to include the parent folder name (e.g. 
 Pharo 4.0 (beta)-540123 vs. 450123)
 - Add a new image command “Image Summary” that shows you the date of the 
 last image modification as well as the contents of “description.txt” - as I 
 can’t always remember why I have some old images kicking around (this change 
 is quite basic - I couldn’t see how best to create a nice popup window so I 
 reused the deny: one with a new title. I did think possibly a hover over 
 balloon or having something like the comments panel in Pharo - but its a 
 modal dialog for now)
 - I changed the Run icon to a play button (as the process icon used - seemed 
 a bit obscure)
 
 
 Tim
 
 
 




[Pharo-users] Anyone still at Esug Camp Smalltalk?

2014-08-17 Thread Tim Mackinnon
Hi Guys - I'm on the train to Cambridge and wondering if anyone will still be 
at Camp Smalltalk  4:30ish?

My train gets in at 4 - so was thinking of walking over if people are still 
around for a bit?

Tim

Sent from my iPhone


Re: [Pharo-users] Anyone still at Esug Camp Smalltalk?

2014-08-17 Thread Tim Mackinnon
Awesome - train is getting close, will walk over.

Tim

Sent from my iPhone

 On 17 Aug 2014, at 03:24 pm, Marcus Denker marcus.den...@inria.fr wrote:
 
 
 On 17 Aug 2014, at 15:07, Tim Mackinnon tim@testit.works wrote:
 
 Hi Guys - I'm on the train to Cambridge and wondering if anyone will still 
 be at Camp Smalltalk  4:30ish?
 
 My train gets in at 4 - so was thinking of walking over if people are still 
 around for a bit?
 Yes! 16:30 for sure (possibly even till 18h)
 
Marcus
 
 



Re: [Pharo-users] Migrate code from Dolphin Smalltalk

2014-08-19 Thread Tim Mackinnon
Hi Esteban - might it be possible to put your script and mock classes on 
Smalltalk hub for future reference?

I might need to do something similar at some point - and it sounds workable 
with what you did.

Thanks for mentioning it.

Tim

Sent from my iPhone

 On 18 Aug 2014, at 04:46 pm, Esteban A. Maringolo emaring...@gmail.com 
 wrote:
 
 I solved it adding a few mock classes/methods, plus a bunch of regular
 expressions to convert Dolphin chunk to Pharo chunk.
 
 Dolphin uses methodsFor! and sets method category as a do-it, while
 Pharo defines the category and the stamp in methodsFor:stamp:!
 
 It isn't super pretty, but got the job done.
 (I was able to file-in a lot of code I did years ago saving me from
 reinventing the wheel).
 
 Regards!
 
 
 
 
 Esteban A. Maringolo
 
 
 2014-08-18 7:56 GMT-03:00 stepharo steph...@free.fr:
 Hi esteban
 
 let us know if we can help (if we are rather busy).
 
 Stef
 
 
 On 16/8/14 23:39, Esteban A. Maringolo wrote:
 
 Hi,
 
 Does anybody know if there is a tool/package or something to import
 Dolphin's chunked fileouts into Pharo?
 
 The chunk format is different, as well as some methods not present in
 Pharo classes (like #owningPackage:/#guid: among others).
 
 If nothing exists, then I'll have to make it somehow.
 
 Regards!
 
 Esteban A. Maringolo
 



Re: [Pharo-users] best solution to store data

2014-09-02 Thread Tim Mackinnon
Esteban talked about Voyage at ESUG, its on the list of talks here:  
http://goo.gl/E1VF53

You can of course scale up to Gemstone (or indeed start with that as well if 
you need something more commercial and supported - there is a Gemstone talk in 
that link as well).

Tim

On 2 Sep 2014, at 07:17, Roelof Wobben r.wob...@home.nl wrote:

 Hello,
 
 I want to try to make a financial app for a organisation.
 
 There are some 50 customers so also 50 invoices a year.
 Then the payments . Also 50 a year.
 
 Cash and bank accounts . Every month some 10 - 20 things.
 
 So on my disk on the programm I now use it costs me some 30 -  50 Kb a year.
 
 What are my options for storage of those data.
 
 I could use a database , but I wonder if there are more and better options.
 
 Roelof
 



Re: [Pharo-users] Tide installation

2014-09-02 Thread Tim Mackinnon
You can try watching the ESUG video from this year on:  http://goo.gl/E1VF53 

The presentation that Esteban gave was great - and it also inspired me to look 
at this some more too.

Tim

On 2 Sep 2014, at 17:46, Bernat Romagosa tibabenfortlapala...@gmail.com wrote:

 Hey, it looks really nice. Is there any documentation around? Any getting 
 started tutorial or bigger project I can take a look at?
 
 I don't exactly get how proxying works. I inspected the TDCounter instance in 
 Pharo and I see it's persisting its value, but I don't get how's the widget 
 getting to it:
 
 TDClientProxy on: '/counter'
 
 Is '/counter' an entry point? If so, where is it defined? I can't find it 
 anywhere.
 
 
 
 
 2014-09-02 18:27 GMT+02:00 Bernat Romagosa tibabenfortlapala...@gmail.com:
 My bad! Forget my previous email!
 
 Sorry.
 
 
 2014-09-02 18:16 GMT+02:00 Bernat Romagosa tibabenfortlapala...@gmail.com:
 
 Hola Esteban!
 
 Thanks, but it's still failing (although it progressed a little bit further):
 
 bower amber#0efe3ad09   not-cached 
 git://github.com/amber-smalltalk/amber.git#0efe3ad09
 bower amber#0efe3ad09  resolve 
 git://github.com/amber-smalltalk/amber.git#0efe3ad09
 bower amber#0efe3ad09short-sha Consider using longer commit SHA to 
 avoid conflicts
 bower amber#0efe3ad09 checkout 0efe3ad09
 bower amber#0efe3ad09 resolved 
 git://github.com/amber-smalltalk/amber.git#0efe3ad09
 bower jquery-tabby#*cached 
 git://github.com/alanhogan/Tabby.git#925c5a416a
 bower jquery-tabby#*  validate 925c5a416a against 
 git://github.com/alanhogan/Tabby.git#*
 bower jquery#~1.10.2cached 
 git://github.com/jquery/jquery.git#1.10.2
 bower jquery#~1.10.2  validate 1.10.2 against 
 git://github.com/jquery/jquery.git#~1.10.2
 bower showdown#~0.3.1   cached 
 git://github.com/coreyti/showdown.git#0.3.1
 bower showdown#~0.3.1 validate 0.3.1 against 
 git://github.com/coreyti/showdown.git#~0.3.1
 bower es5-shim#~3.3.0   cached 
 git://github.com/es-shims/es5-shim.git#3.3.2
 bower es5-shim#~3.3.0 validate 3.3.2 against 
 git://github.com/es-shims/es5-shim.git#~3.3.0
 bower codemirror#~3.24.0cached 
 git://github.com/marijnh/CodeMirror.git#3.24.0
 bower codemirror#~3.24.0  validate 3.24.0 against 
 git://github.com/marijnh/CodeMirror.git#~3.24.0
 bower bootstrap#~2.3.2  cached 
 git://github.com/alonisser/bower-bootstrap-2.3.2-legacy.git#2.3.2
 bower bootstrap#~2.3.2validate 2.3.2 against 
 git://github.com/alonisser/bower-bootstrap-2.3.2-legacy.git#~2.3.2
 bower jquery-ui#~1.10.3 cached 
 git://github.com/components/jqueryui.git#1.10.4
 bower jquery-ui#~1.10.3   validate 1.10.4 against 
 git://github.com/components/jqueryui.git#~1.10.3
 bower require-css#~0.1.2cached 
 git://github.com/guybedford/require-css.git#0.1.4
 bower require-css#~0.1.2  validate 0.1.4 against 
 git://github.com/guybedford/require-css.git#~0.1.2
 bower jquery-ui#~1.10.3new version for 
 git://github.com/components/jqueryui.git#~1.10.3
 bower jquery-ui#~1.10.3resolve 
 git://github.com/components/jqueryui.git#~1.10.3
 bower jquery-ui#~1.10.3   download 
 https://github.com/components/jqueryui/archive/1.10.4.tar.gz
 bower require-css#~0.1.2   new version for 
 git://github.com/guybedford/require-css.git#~0.1.2
 bower require-css#~0.1.2   resolve 
 git://github.com/guybedford/require-css.git#~0.1.2
 bower require-css#~0.1.2  download 
 https://github.com/guybedford/require-css/archive/0.1.5.tar.gz
 bower jquery#=1.8.0 2.1.0 cached 
 git://github.com/jquery/jquery.git#2.0.3
 bower jquery#=1.8.0 2.1.0   validate 2.0.3 against 
 git://github.com/jquery/jquery.git#=1.8.0 2.1.0
 bower require-css#~0.1.2   extract archive.tar.gz
 bower require-css#~0.1.2  resolved 
 git://github.com/guybedford/require-css.git#0.1.5
 bower jquery-ui#~1.10.3extract archive.tar.gz
 bower jquery-ui#~1.10.3   invalid-meta jquery-ui is missing ignore entry in 
 bower.json
 bower jquery-ui#~1.10.3   resolved 
 git://github.com/components/jqueryui.git#1.10.4
 bower   EACCES EACCES, mkdir 
 '/home/nabax/myproject/github-cache/tide-framework/tide/master/tide-framework-tide-252a3d8/bower_components'
 Stack trace:
 Error: EACCES, mkdir 
 '/home/nabax/myproject/github-cache/tide-framework/tide/master/tide-framework-tide-252a3d8/bower_components'
 Console trace:
 Trace
 at StandardRenderer.error 
 (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:72:17)
 at Logger.anonymous (/usr/local/lib/node_modules/bower/bin/bower:110:22)
 
 at Logger.EventEmitter.emit (events.js:95:17)
 at Logger.emit 
 (/usr/local/lib/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
 at /usr/local/lib/node_modules/bower/lib/commands/index.js:40:20
 at _rejected 
 

Re: [Pharo-users] Tide installation

2014-09-02 Thread Tim Mackinnon
You also know about the action and state pragma’s as well right? They were 
explained in the Esug session, and show up in the Counter code.

Tim

On 2 Sep 2014, at 18:03, Bernat Romagosa tibabenfortlapala...@gmail.com wrote:

 Thanks Tim, I'll take a look at it. Unfortunately I couldn't attend this year 
 :(
 
 In the meantime I've just found out where the counter entry point is defined:
 
 TDDispatcher  setupDefault
   default := self new.
   default 
   registerHandler: ((TDFileHandler path: 'tide')
   directoryPath: '.';
   yourself);
   registerHandler: ((TDPresenterHandler path: 'counter')
   rootPresenterClass: TDCounter;
   yourself)
 
 Nice!
 
 
 2014-09-02 18:57 GMT+02:00 Tim Mackinnon tim@testit.works:
 You can try watching the ESUG video from this year on:  http://goo.gl/E1VF53 
 
 The presentation that Esteban gave was great - and it also inspired me to 
 look at this some more too.
 
 Tim
 
 On 2 Sep 2014, at 17:46, Bernat Romagosa tibabenfortlapala...@gmail.com 
 wrote:
 
 Hey, it looks really nice. Is there any documentation around? Any getting 
 started tutorial or bigger project I can take a look at?
 
 I don't exactly get how proxying works. I inspected the TDCounter instance 
 in Pharo and I see it's persisting its value, but I don't get how's the 
 widget getting to it:
 
 TDClientProxy on: '/counter'
 
 Is '/counter' an entry point? If so, where is it defined? I can't find it 
 anywhere.
 
 
 
 
 2014-09-02 18:27 GMT+02:00 Bernat Romagosa tibabenfortlapala...@gmail.com:
 My bad! Forget my previous email!
 
 Sorry.
 
 
 2014-09-02 18:16 GMT+02:00 Bernat Romagosa tibabenfortlapala...@gmail.com:
 
 Hola Esteban!
 
 Thanks, but it's still failing (although it progressed a little bit further):
 
 bower amber#0efe3ad09   not-cached 
 git://github.com/amber-smalltalk/amber.git#0efe3ad09
 bower amber#0efe3ad09  resolve 
 git://github.com/amber-smalltalk/amber.git#0efe3ad09
 bower amber#0efe3ad09short-sha Consider using longer commit SHA to 
 avoid conflicts
 bower amber#0efe3ad09 checkout 0efe3ad09
 bower amber#0efe3ad09 resolved 
 git://github.com/amber-smalltalk/amber.git#0efe3ad09
 bower jquery-tabby#*cached 
 git://github.com/alanhogan/Tabby.git#925c5a416a
 bower jquery-tabby#*  validate 925c5a416a against 
 git://github.com/alanhogan/Tabby.git#*
 bower jquery#~1.10.2cached 
 git://github.com/jquery/jquery.git#1.10.2
 bower jquery#~1.10.2  validate 1.10.2 against 
 git://github.com/jquery/jquery.git#~1.10.2
 bower showdown#~0.3.1   cached 
 git://github.com/coreyti/showdown.git#0.3.1
 bower showdown#~0.3.1 validate 0.3.1 against 
 git://github.com/coreyti/showdown.git#~0.3.1
 bower es5-shim#~3.3.0   cached 
 git://github.com/es-shims/es5-shim.git#3.3.2
 bower es5-shim#~3.3.0 validate 3.3.2 against 
 git://github.com/es-shims/es5-shim.git#~3.3.0
 bower codemirror#~3.24.0cached 
 git://github.com/marijnh/CodeMirror.git#3.24.0
 bower codemirror#~3.24.0  validate 3.24.0 against 
 git://github.com/marijnh/CodeMirror.git#~3.24.0
 bower bootstrap#~2.3.2  cached 
 git://github.com/alonisser/bower-bootstrap-2.3.2-legacy.git#2.3.2
 bower bootstrap#~2.3.2validate 2.3.2 against 
 git://github.com/alonisser/bower-bootstrap-2.3.2-legacy.git#~2.3.2
 bower jquery-ui#~1.10.3 cached 
 git://github.com/components/jqueryui.git#1.10.4
 bower jquery-ui#~1.10.3   validate 1.10.4 against 
 git://github.com/components/jqueryui.git#~1.10.3
 bower require-css#~0.1.2cached 
 git://github.com/guybedford/require-css.git#0.1.4
 bower require-css#~0.1.2  validate 0.1.4 against 
 git://github.com/guybedford/require-css.git#~0.1.2
 bower jquery-ui#~1.10.3new version for 
 git://github.com/components/jqueryui.git#~1.10.3
 bower jquery-ui#~1.10.3resolve 
 git://github.com/components/jqueryui.git#~1.10.3
 bower jquery-ui#~1.10.3   download 
 https://github.com/components/jqueryui/archive/1.10.4.tar.gz
 bower require-css#~0.1.2   new version for 
 git://github.com/guybedford/require-css.git#~0.1.2
 bower require-css#~0.1.2   resolve 
 git://github.com/guybedford/require-css.git#~0.1.2
 bower require-css#~0.1.2  download 
 https://github.com/guybedford/require-css/archive/0.1.5.tar.gz
 bower jquery#=1.8.0 2.1.0 cached 
 git://github.com/jquery/jquery.git#2.0.3
 bower jquery#=1.8.0 2.1.0   validate 2.0.3 against 
 git://github.com/jquery/jquery.git#=1.8.0 2.1.0
 bower require-css#~0.1.2   extract archive.tar.gz
 bower require-css#~0.1.2  resolved 
 git://github.com/guybedford/require-css.git#0.1.5
 bower jquery-ui#~1.10.3extract archive.tar.gz
 bower jquery-ui#~1.10.3   invalid-meta jquery-ui is missing ignore entry 
 in bower.json
 bower jquery-ui#~1.10.3   resolved 
 git://github.com/components

[Pharo-users] How to create a red box with text in a big font?

2014-09-04 Thread Tim Mackinnon
Hi guys - I’m a bit stumped on how to create things in big text with a set 
background colour. I thought I understood - but it just doesn’t seem to work.
I was thinking I could create a container morph, set its background colour 
(which works), and then put a StringMorph inside it with a set font. This last 
bit I can’t get to work - I can do bold, but not a bigger font size. I’ve tried 
different things but am missing the magic sauce - can someone spot my mistake? 
Below, I’ve tried using a font name that I can see in the Pharo settings dialog 
but it doesn’t work? I also tried using LogicalFont with no success either.

tMorph := StringMorph new.
font1 := LogicalFont familyName: 'Arial' pointSize: 24.

tMorph contents: 'Hello World'; 
fontName: 'Open Sans' size: 24;
emphasis: TextEmphasis bold emphasisCode.

bMorph := Morph new
color: Color red;
addMorph: tMorph.

bMorph openInWorld.


Tim


Re: [Pharo-users] How to create a red box with text in a big font?

2014-09-04 Thread Tim Mackinnon
Cool - that’s handy to know it works somewhere (and in fact, it was when 
playing with GT-Inspector I noticed this - so that solution would work). 

I’m still curious how you do it in Morphic?

Tim

On 4 Sep 2014, at 17:10, Alexandre Bergel alexandre.ber...@me.com wrote:

 Using Roassal, I would do:
 -=-=-=-=-=-=-=-=-=
 v := RTView new.
 s := RTMultiCompositeShape new.
 s add: (RTBox new color: Color red; size: 500).
 s add: (RTLabel new height: 70).
 v add: (s elementOn: 'Hello World').
 v open
 -=-=-=-=-=-=-=-=-=
 
 Screen Shot 2014-09-04 at 12.10.14 PM.png
 
 Cheers,
 Alexandre
 
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 On Sep 4, 2014, at 9:27 AM, Tim Mackinnon tim@testit.works wrote:
 
 Hi guys - I’m a bit stumped on how to create things in big text with a set 
 background colour. I thought I understood - but it just doesn’t seem to work.
 I was thinking I could create a container morph, set its background colour 
 (which works), and then put a StringMorph inside it with a set font. This 
 last bit I can’t get to work - I can do bold, but not a bigger font size. 
 I’ve tried different things but am missing the magic sauce - can someone 
 spot my mistake? Below, I’ve tried using a font name that I can see in the 
 Pharo settings dialog but it doesn’t work? I also tried using LogicalFont 
 with no success either.
 
  tMorph := StringMorph new.
  font1 := LogicalFont familyName: 'Arial' pointSize: 24.
  
  tMorph contents: 'Hello World'; 
  fontName: 'Open Sans' size: 24;
  emphasis: TextEmphasis bold emphasisCode.
  
  bMorph := Morph new
  color: Color red;
  addMorph: tMorph.
  
  bMorph openInWorld.
 
 
 Tim
 



Re: [Pharo-users] How to create a red box with text in a big font?

2014-09-05 Thread Tim Mackinnon
Thanks everyone for all your follow up messages - I’ve learned quite a lot from 
such a simple question!!!

With regards to the #fontName:size: being not very useful - is that something I 
should submit a fogbugz for (maybe there is one already there). I’m thinking 
the Pharo way is to try and eliminate cruft where possible?

Tim

On 5 Sep 2014, at 10:37, Thierry Goubier thierry.goub...@gmail.com wrote:

 Hi Peter,
 
 As far as I can understand, this is because TextStyle is brain dead code when 
 it comes to font selection (and fontName:size: is a useless API).
 
 (and now I can't write code in my Workspace in 4.0 because I get a DNU from 
 the styler for every key I type :( :( :( )
 
 This code correctly select the font.
 
 Morph new
 hResizing: #shrinkWrap;
 addMorph: (
  'Hello World' asMorph
 font: (LogicalFont familyName: 'Source Sans Pro' pointSize: 110);
 emphasis: TextEmphasis bold emphasisCode);
 openInWindow;
 color: Color red
 
 Thierry
 
 2014-09-05 10:45 GMT+02:00 PBKResearch pe...@pbkresearch.co.uk:
 Hello
 
  
 
 I have played with this on Moose 5.0 (Pharo 3.0 update: #30854) on Windows 7 
 Pro. For me, it is necessary to include color:Color red after openInWindow to 
 get the red background, as Thierry said. There is another puzzle, which is 
 that the code does not respond in any linear way to changes in the font size. 
 If you replace size: 75 with any number from 38 upwards, you get the same 
 size of font. Change the size to 37 and there is a sharp reduction in size, 
 and it changes in proportion for smaller numbers. Is there something 
 different about this font?
 
  
 
 Peter Kenny
 
  
 
  
 
 From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of 
 Nicolai Hess
 Sent: 05 September 2014 08:19
 To: Any question about pharo is welcome
 Subject: Re: [Pharo-users] How to create a red box with text in a big font?
 
  
 
 2014-09-05 8:43 GMT+02:00 p...@highoctane.be p...@highoctane.be:
 
 Yes there is that annoying thing with windows that set things bacl to white. 
 Why is that indeed?
 
 Phil
 
  
 
  
 
 I can not reproduce this with this code:
 Morph new
 color:Color red;
 hResizing: #shrinkWrap;
 addMorph: (
 'Hello World' asMorph
 fontName: 'Open Sans' size: 75;
 emphasis: TextEmphasis bold emphasisCode);
 openInWindow
 
 The Morph is red!
 
 
 
 
 
  
 
 Le 4 sept. 2014 23:32, Thierry Goubier thierry.goub...@gmail.com a écrit :
 
  
 
 Le 04/09/2014 23:12, kilon alios a écrit :
 
 but if I try to do openInWindow instead of openInWorld in the end it turns it 
 to white box , why ? 
 
  
 
 Adding the morph inside the window changes the morph color to white :( (What 
 the heck?)
 
 If the color is changed after the openInWindow, then that works.
 
 Morph new
 hResizing: #shrinkWrap;
 addMorph: (
 'Hello World' asMorph
 fontName: 'Open Sans' size: 75;
 emphasis: TextEmphasis bold emphasisCode);
 openInWindow;
 color: Color red
 
 
 Thierry
 
 
 
  
 
 On Thu, Sep 4, 2014 at 11:56 PM, Thierry Goubier thierry.goub...@gmail.com 
 wrote:
 
 Le 04/09/2014 18:18, Tim Mackinnon a écrit :
 
 Cool - that’s handy to know it works somewhere (and in fact, it was when 
 playing with GT-Inspector I noticed this - so that solution would work). 
 
  
 
 I’m still curious how you do it in Morphic?
 
 Like that:
 
 
 
 Morph new
 color: Color red;
 
 hResizing: #shrinkWrap;
 addMorph: (
 'Hello World' asMorph
 fontName: 'Open Sans' size: 75;
 emphasis: TextEmphasis bold emphasisCode);
 openInWorld
 
 Thierry
 
 
 
 
  
 
 Tim
 
  
 
 On 4 Sep 2014, at 17:10, Alexandre Bergel alexandre.ber...@me.com wrote:
 
 
 
 
 Using Roassal, I would do:
 
 -=-=-=-=-=-=-=-=-=
 
 v := RTView new.
 
 s := RTMultiCompositeShape new.
 
 s add: (RTBox new color: Color red; size: 500).
 
 s add: (RTLabel new height: 70).
 
 v add: (s elementOn: 'Hello World').
 
 v open
 
 -=-=-=-=-=-=-=-=-=
 
  
 
 Screen Shot 2014-09-04 at 12.10.14 PM.png
 
  
 
 Cheers,
 
 Alexandre
 
  
 
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
  
 
 On Sep 4, 2014, at 9:27 AM, Tim Mackinnon tim@testit.works wrote:
 
 
 
 
 Hi guys - I’m a bit stumped on how to create things in big text with a set 
 background colour. I thought I understood - but it just doesn’t seem to work.
 I was thinking I could create a container morph, set its background colour 
 (which works), and then put a StringMorph inside it with a set font. This 
 last bit I can’t get to work - I can do bold, but not a bigger font size. 
 I’ve tried different things but am missing the magic sauce - can someone spot 
 my mistake? Below, I’ve tried using a font name that I can see in the Pharo 
 settings dialog but it doesn’t work? I also tried using LogicalFont with no 
 success

Re: [Pharo-users] Testing Traits?

2014-10-09 Thread Tim Mackinnon
Thanks Damien - I’ll load up Nile and see what you guys did. I figured it might 
be the case that you have to create a TestTrait - although it does feel a bit 
like creating a TestConcreteClass to test an AbstractClass, which also feels a 
bit strange - and caused me (probably rightly so), to avoid inheritance and 
prefer delegation/composition.

Maybe its not so bad to have a TestTrait in practice - but I still wonder if 
there is a neat trick where it would be handy to “instantiate” one in test 
mode, where you specify a fake dependency and use that to right tests.

Anyway - I’ll learn to crawl before trying to run ;)

Tim

On 9 Oct 2014, at 14:05, Damien Cassou damien.cas...@gmail.com wrote:

 On Thu, Oct 9, 2014 at 2:17 PM, Tim Mackinnon tim@testit.works wrote:
 Any thoughts/pointers?
 
 I would tend to create one test trait for each application trait the
 same way I create one test class for each application class. That
 exactly what I did with the Nile stream trait-based library (there is
 a journal paper about this library but I don't remember if it covers
 the unit-test). The source code is available at
 http://www.squeaksource.com/Nile.html.
 
 You can look at the unit tests for the collection library that are
 entirely based on traits (but the collection library itself is not).
 
 
 -- 
 Damien Cassou
 http://damiencassou.seasidehosting.st
 
 Success is the ability to go from one failure to another without
 losing enthusiasm.
 Winston Churchill
 




Re: [Pharo-users] GUI Frameworks Choice

2014-10-17 Thread Tim Mackinnon
An approachable example of what you can do (I believe its using Spec as its UI 
glue) is PharoLauncher - it might be something worth studying as an example? 
It’s on Smalltalk Hub.

Tim


On 17 Oct 2014, at 08:11, Craig cr...@hivemind.net wrote:

 Hi All,
 
 I'm new to Pharo although not to Smalltalk.  I did dabble with Dolphin about 
 20 years ago, when it was first being developed, and did some quite cool 
 stuff.
 
 This time around I chose Pharo because I feel that Dolphin has strayed from 
 the pure OO model that I enjoyed back then.
 
 I've chosen a fairly ambitious GUI project as my Pharo primer.  The problem 
 is - which GUI framework to use.  The GUI that I want to build will be static 
 but complex with a menu, 2 toolbars, 20 odd toolbar buttons, and 3 
 (dockable?) windows, containing Trees, lists and text editors.
 
 Any suggestions on which GUI framework would suit?
 
 I thought about using PolyMorph, but I cannot find the examples in my Pharo 3 
 image.
 
 Craig
 
 
 
 
 
 
 
 




Re: [Pharo-users] Useful tools?

2015-01-16 Thread Tim Mackinnon
Laura - not sure if this fits your bill, but I really find that PharoLauncher 
is handy - it lets you easily download new Smalltalk images (maybe to track new 
features in Moose, or Pharo 4.0) - before using it I had things lying around 
where I had forgotten what they were for. This helped me put a bit of structure 
around things and try out new stuff when I saw it mentioned on these mailing 
lists.

Its on: http://www.smalltalkhub.com/#!/~Pharo/PharoLauncher

(It’s also a nice example of how to write a shrink wrapped Pharo application 
that looks quite slick)

Tim

On 15 Jan 2015, at 03:58, laura laura.ris...@gmail.com wrote:

 i'm afraid i posed the question too broadly to be answerable, so
 reformulating...
 
 What are some tools you frequently use to ease development which are neither
 built in the current official distribution nor domain-specific?
 (for example i added TilingWindowManager, RBConfigurableFormatter, many
 shortcuts )
 
 Some Class Browser plug-in? I've tried adding PackageTasksPlugin beacause i
 found the idea interesting, but it doesn't work properly, a Predebug window
 keeps showing each time i move to another package.
 
 
 
 
 --
 View this message in context: 
 http://forum.world.st/Useful-tools-tp4799187p4799636.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
 



Re: [Pharo-users] Pharo Launcher

2016-06-27 Thread Tim Mackinnon
Hi guys - I finally got some free time to take a look at Pharo-5 and wanted 
Launcher back as well - I just downloaded it on my mac and I’m wondering if 
something is wrong?

The UI doesn’t look right (compared to the older 4.x version) - the top panel 
is white, and there is a grey run button next to the green one (the triangle) 
that seems to be missing transparency - so it all looks quite ugly. Have I 
downloaded something that is wrong?

I also notice, that when I go to create a new image from a template - the name 
prompt isn’t as good as the old version which used to include the parent node 
in the suggested name so you got something like “Pharo 6.0 (beta) 123455” as a 
descriptive name - it now just seems to offer “1234456” as the name now?

I don’t understand the how the paths work now - it seems that my old images 
launch fine, but a 5.x image doesn’t? Do I set the spur path for this - or is 
it the other way around (vm-path should be the new vm)? The floating help isn’t 
very descriptive on this.

Thanks,

Tim



Sent from my iPhone
> On 17 Jun 2016, at 13:10, Christophe Demarey  
> wrote:
> 
> Now fixed. I replaced the DMG on files.pharo.org.
> Thanks for the report
> 
>>> Le 17 juin 2016 à 13:34, Christophe Demarey  a 
>>> écrit :
>>> 
>>> 
>>> Le 17 juin 2016 à 12:00, Serge Stinckwich  a 
>>> écrit :
>>> 
>>> On Fri, Jun 17, 2016 at 10:22 AM, Christophe Demarey
>>>  wrote:
 Hi,
 
 I just updated Pharo Launcher. A new version 0.2.11 is available.
 Here are the change log:
>>> 
>>> Great ! Thank you for the update.
>>> 
 move Pharo Launcher to the latest stable pharo image: pharo 5.0. It implies
 That Pharo Launcher is now shipped with Spur VM.
 allow an easy download of the new beta image: pharo 6.0
 the Launcher now comes with 2 VMs:
 
 Spur VM (pharo 5.0 and Pharo 6.0)
 Non-Spur VM (to be able to run old images)
>>> 
>>> I dl the mac version. I was not able to run non-spur VM images: the
>>> launcher crash or do nothing ...
>> 
>> Indeed, I think it’s a side effect of latest changes I did after testing on 
>> Windows.
>> I take a look at it now





Re: [Pharo-users] Pharo Launcher

2016-07-13 Thread Tim Mackinnon
I also recall that on OSX (at least some later versions), Apple introduced a 
change whereby if you try and launch another vm from the same vm, it wouldn’t 
open. You had to have a different vm on a different path for it to work 
correctly. 

I will try and resolve my original problem and see if this is still the case.

Tim

> On 28 Jun 2016, at 17:13, Damien Cassou  wrote:
> 
> Christophe Demarey  writes:
>> Pharo launcher is now shipped with both vm (pre-spur and spur). The
>> cog-spur vm now powered PharoLauncher and should be used to run spur
>> images. If not, maybe you have a wrong setting for it. If you remove
>> settings for both VM it should work. Maybe I should remove these
>> settings since both VMs are now shipped with the launcher app. I do
>> not know if it is relevant to some of you to use another VM than the
>> default ones.
> 
> it is at least relevant for me because I cannot use the shipped VMs: I
> have to use the ones of my Linux distribution.
> 
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
> 
> "Success is the ability to go from one failure to another without
> losing enthusiasm." --Winston Churchill
> 




Re: [Pharo-users] Pharo Launcher

2016-07-13 Thread Tim Mackinnon
Hi - thanks of the detailed answer, I had to take a break from my investigation 
but I am keen to get it working again.

Its a shame I didn’t spot the survey on the name nomenclature because I liked 
the old system as it makes it much more obvious from the name exactly what you 
are getting - e.g. a Moose Build , vs Pharo 4.0 -  (I would say this, 
as I implemented it). Its a shame you didn’t make it a feature switchable thing 
as I think you’ve lost useful functionality.  I will probably put it back and 
propose it as an option (if it’s veto’d I’ll maintain my own version - but a 
switch should hopefully satisfy everyone).

I’ll also see if we can make it look nice again - as Launcher used to be a good 
showcase of how to make a Pharo app look beautiful.

Tim

> On 28 Jun 2016, at 13:59, Christophe Demarey <christophe.dema...@inria.fr> 
> wrote:
> 
> Hi Tim,
> 
>> Le 27 juin 2016 à 22:12, Tim Mackinnon <tim@testit.works> a écrit :
>> 
>> Hi guys - I finally got some free time to take a look at Pharo-5 and wanted 
>> Launcher back as well - I just downloaded it on my mac and I’m wondering if 
>> something is wrong?
>> 
>> The UI doesn’t look right (compared to the older 4.x version) - the top 
>> panel is white, and there is a grey run button next to the green one (the 
>> triangle) that seems to be missing transparency - so it all looks quite 
>> ugly. Have I downloaded something that is wrong?
> 
> No, is the current state of Pharo Launcher UI. I did not touch to this part 
> but, yes, could be improved.
> 
>> I also notice, that when I go to create a new image from a template - the 
>> name prompt isn’t as good as the old version which used to include the 
>> parent node in the suggested name so you got something like “Pharo 6.0 
>> (beta) 123455” as a descriptive name - it now just seems to offer “1234456” 
>> as the name now?
> 
> I did this change after a small survey on pharo launcher users that were, 
> like me, bothered with previous proposed names: in most cases, they only want 
> the name of their project. That could be discussed but now, in your example, 
> you get 60121 that is still descriptive. Here, we should find the best 
> proposition for most users, will not for to all.
> 
>> I don’t understand the how the paths work now - it seems that my old images 
>> launch fine, but a 5.x image doesn’t? Do I set the spur path for this - or 
>> is it the other way around (vm-path should be the new vm)? The floating help 
>> isn’t very descriptive on this.
> 
> Pharo launcher is now shipped with both vm (pre-spur and spur). The cog-spur 
> vm now powered PharoLauncher and should be used to run spur images. If not, 
> maybe you have a wrong setting for it. If you remove settings for both VM it 
> should work. Maybe I should remove these settings since both VMs are now 
> shipped with the launcher app. I do not know if it is relevant to some of you 
> to use another VM than the default ones.
> 
> Thanks for the feedback.
> Christophe
> 
>> 
>> Thanks,
>> 
>> Tim
>> 
>> 
>> 
>> Sent from my iPhone
>>> On 17 Jun 2016, at 13:10, Christophe Demarey <christophe.dema...@inria.fr> 
>>> wrote:
>>> 
>>> Now fixed. I replaced the DMG on files.pharo.org.
>>> Thanks for the report
>>> 
>>>>> Le 17 juin 2016 à 13:34, Christophe Demarey <christophe.dema...@inria.fr> 
>>>>> a écrit :
>>>>> 
>>>>> 
>>>>> Le 17 juin 2016 à 12:00, Serge Stinckwich <serge.stinckw...@gmail.com> a 
>>>>> écrit :
>>>>> 
>>>>> On Fri, Jun 17, 2016 at 10:22 AM, Christophe Demarey
>>>>> <christophe.dema...@inria.fr> wrote:
>>>>>> Hi,
>>>>>> 
>>>>>> I just updated Pharo Launcher. A new version 0.2.11 is available.
>>>>>> Here are the change log:
>>>>> 
>>>>> Great ! Thank you for the update.
>>>>> 
>>>>>> move Pharo Launcher to the latest stable pharo image: pharo 5.0. It 
>>>>>> implies
>>>>>> That Pharo Launcher is now shipped with Spur VM.
>>>>>> allow an easy download of the new beta image: pharo 6.0
>>>>>> the Launcher now comes with 2 VMs:
>>>>>> 
>>>>>> Spur VM (pharo 5.0 and Pharo 6.0)
>>>>>> Non-Spur VM (to be able to run old images)
>>>>> 
>>>>> I dl the mac version. I was not able to run non-spur VM images: the
>>>>> launcher crash or do nothing ...
>>>> 
>>>> Indeed, I think it’s a side effect of latest changes I did after testing 
>>>> on Windows.
>>>> I take a look at it now
>> 
>> 
>> 
> 
> 




Re: [Pharo-users] How to view hierarchy of multiple classes in a package?

2017-02-01 Thread Tim Mackinnon
Hi Denis - as an argument in favour, you would only see this view when you 
select the Hierarchy button (so its not the default) - and by pressing 
hierarchy, I would argue that you want to see a hierarchy of all the classes 
(like you see all the classes in non-hierchy mode) - if there is lots of 
scrolling then that might be a code smell to look into.

As an extra data point - dolphin and visual age both work this way (maybe even 
visual works?) and I never saw it as a problem - which is why I was surprised 
that Pharo is different - however I know you guys often think differently.

Tim

> On 1 Feb 2017, at 13:22, Denis Kudriashov <dionisi...@gmail.com> wrote:
> 
> 
> 2017-01-05 12:11 GMT+01:00 Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>>:
> I finally got a chance to try this change out - and this a super helpful 
> change - thanks so much. (It also taught me where some of the things live in 
> Pharo).
> 
> Why wouldn’t this change be made permanent in the live Pharo? I can’t see any 
> downside and it really helps understand new code.
> 
> I think it is bad idea to replace current hierarchy view. 
> With your solution it can be difficult to see superclasses chain of selected 
> class when it is at the end of subclasses list. It will force user to scroll 
> which is bad. With current approach this problem not exists.
> 
> But new view mode can be extra option accessible somehow from menu.



Re: [Pharo-users] [Pharo-dev] Slack, fragmentation and design information

2017-02-14 Thread Tim Mackinnon
Have we actually talked to Slack and asked them if they might support an active 
open source community? It’s one thing what is written on a website, another if 
the consortium actually approached them and explained the problem - mass 
communication in a community who want to use their tool both personally and 
open-sourecy but also in industry.  The latter feels like the paid market they 
are after - the former might take their interest. 

Like others, I agree that the mobile clients are easy to use and take away the 
friction (and we don’t need more friction in something we are often doing for 
the joy of making things better)

I would get Stef or Marcus to reach out to them.

Tim

> On 10 Feb 2017, at 12:26, François Stephany  wrote:
> 
> There is a special price for non-profits organization:
> 
> > The Slack for Nonprofits program offers eligible organizations a free 
> > upgrade to our Standard plan for teams of up to 250 members. For eligible 
> > teams above that size, we offer an 85% discount on the Standard plan. 
> 
> With 322 users it means that we still have to pay...
> 
> See https://get.slack.help/hc/en-us/articles/204368833-Slack-for-Nonprofits 
>  for 
> more information.
> 
> 
> On Fri, Feb 10, 2017 at 1:18 PM, denker  > wrote:
> 
> >
> >> I share many of what you say… but in the other point of view, Slack as 
> >> really worked and there is a lot more happening now in Slack + mailing 
> >> list than what was before just in mailing list.
> >> But most of that is lost because of Slack policies (also Slack pricing 
> >> model is impossible for a community as ours), and we need to find a 
> >> solution for that.
> >
> > Yes this is too expensive for the Pharo consortium ?
> >
> It is per active member… which is defined as “has logged in the last 14 
> days”. We have 322 members. No idea how many
> are active according to that definition.
> 
> Fot 322 it would be: $8 per user per month. Which means $2576 per month or 
> $25772 per year (taking the special yearly price into account).
> 
> Marcus
> 
> 
> 



[Pharo-users] Pharo 5 and retina displays in 2016?

2016-11-28 Thread Tim Mackinnon
Hi Guys - its been a while since I’ve had a chance to get back into some coding 
in Smalltalk, and took the plunge again with a new laptop and Pharo 5, however 
the screen is really blurry?

Doing a google search, I can see this same question raised back in 2012, but 
has there been no progress in this intervening years or has a workaround not 
been documented for google to find? Or has everyone just got used to it, and I 
need to hand in there...

I have tried using a different font - but not sure what constitutes a true-type 
font (are these the same as free-type mentioned in the Settings Browser?). Has 
anyone found a font that makes everything look crisp (I tried Helvetica but its 
only marginally better).

Or is this still the same issue that’s been hanging around for a long time as 
its hard to easily fix?

Tim


Re: [Pharo-users] How to view hierarchy of multiple classes in a package?

2016-12-30 Thread Tim Mackinnon
Ah, cool I will give that a go. As always it's very little code when you know 
how.

I'll report back - but I wonder if this might be something that could be in the 
default image?

Tim

Sent from my iPhone

> On 30 Dec 2016, at 11:49, Henrik Nergaard <draag...@outlook.com> wrote:
> 
> Changing ClassWidget>>#showHierarchy to:
> showHierarchy: aBoolean
>  
>   | all |
>  
>   (showHierarchy := aBoolean) ifFalse:  [ ^ self ].
>  
>   all := IdentitySet new.
>   model selectedPackageGroup asNautilusSelection classes do: [ 
> :cls  |
>  all
>addAll: cls allSuperclasses;
>addAll: cls withAllSubclasses
>   ].
>
>   self cachedHierarchy: (SortHierarchically 
> buildHierarchyForClasses: all)
>  
> Will make the hierarchy button show the tree for all classes in that 
> package/tag.
> 
>  
> Best regards,
> Henrik
>  
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of 
> Tim Mackinnon
> Sent: Wednesday, December 28, 2016 5:24 PM
> To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
> Subject: Re: [Pharo-users] How to view hierarchy of multiple classes in a 
> package?
>  
> This seems to have generated a bit of conversation which has helped me quite 
> a bit.
>  
> Denis, your picture has made me realise that the System browser is a bit 
> better than I realised.
>  
> However the example I was looking at was a package that had a series of 
> Announcement subclasses, AND what wasn't obvious was that they were all 
> subclasses of the same parent "Announcement", as that isn't shown - you just 
> get a series of classes not rooted under some parent (even if it was object). 
> I'm guessing that just things that are subclasses of each other in the same 
> package are shown?
>  
> I was hoping that pane might show -
>  
> Announcement
> + A
> + B
>+ C
>  
> I'm now wondering what it will show if you had a few different subclasses of 
> the different collection classes (ok it's a bad idea to subclass them, but my 
> point is if you had a few models at different points in a hierarchy)?
>  
> I'm guessing you would see the same flat list - but I will go and try that to 
> help me learn a bit more.
>  
> Tim


Re: [Pharo-users] How to view hierarchy of multiple classes in a package?

2017-01-05 Thread Tim Mackinnon
I finally got a chance to try this change out - and this a super helpful change 
- thanks so much. (It also taught me where some of the things live in Pharo).

Why wouldn’t this change be made permanent in the live Pharo? I can’t see any 
downside and it really helps understand new code.

Tim

> On 30 Dec 2016, at 10:49, Henrik Nergaard <draag...@outlook.com> wrote:
> 
> Changing ClassWidget>>#showHierarchy to:
> showHierarchy: aBoolean
>  
>   | all |
>   
>   (showHierarchy := aBoolean) ifFalse:  [ ^ self ].
>   
>   all := IdentitySet new.
>   model selectedPackageGroup asNautilusSelection classes do: [ 
> :cls  |
>  all 
>addAll: cls allSuperclasses;
>addAll: cls withAllSubclasses
>   ].
>
>   self cachedHierarchy: (SortHierarchically 
> buildHierarchyForClasses: all)
>  
> Will make the hierarchy button show the tree for all classes in that 
> package/tag.
> 
>  
> Best regards,
> Henrik
>  
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org 
> <mailto:pharo-users-boun...@lists.pharo.org>] On Behalf Of Tim Mackinnon
> Sent: Wednesday, December 28, 2016 5:24 PM
> To: Any question about pharo is welcome <pharo-users@lists.pharo.org 
> <mailto:pharo-users@lists.pharo.org>>
> Subject: Re: [Pharo-users] How to view hierarchy of multiple classes in a 
> package?
>  
> This seems to have generated a bit of conversation which has helped me quite 
> a bit.
>  
> Denis, your picture has made me realise that the System browser is a bit 
> better than I realised.
>  
> However the example I was looking at was a package that had a series of 
> Announcement subclasses, AND what wasn't obvious was that they were all 
> subclasses of the same parent "Announcement", as that isn't shown - you just 
> get a series of classes not rooted under some parent (even if it was object). 
> I'm guessing that just things that are subclasses of each other in the same 
> package are shown?
>  
> I was hoping that pane might show -
>  
> Announcement
> + A
> + B
>+ C
>  
> I'm now wondering what it will show if you had a few different subclasses of 
> the different collection classes (ok it's a bad idea to subclass them, but my 
> point is if you had a few models at different points in a hierarchy)?
>  
> I'm guessing you would see the same flat list - but I will go and try that to 
> help me learn a bit more.
>  
> Tim



Re: [Pharo-users] How to view hierarchy of multiple classes in a package?

2016-12-28 Thread Tim Mackinnon
This seems to have generated a bit of conversation which has helped me quite a 
bit.

Denis, your picture has made me realise that the System browser is a bit better 
than I realised.

However the example I was looking at was a package that had a series of 
Announcement subclasses, AND what wasn't obvious was that they were all 
subclasses of the same parent "Announcement", as that isn't shown - you just 
get a series of classes not rooted under some parent (even if it was object). 
I'm guessing that just things that are subclasses of each other in the same 
package are shown?

I was hoping that pane might show -

Announcement
+ A
+ B
   + C

I'm now wondering what it will show if you had a few different subclasses of 
the different collection classes (ok it's a bad idea to subclass them, but my 
point is if you had a few models at different points in a hierarchy)?

I'm guessing you would see the same flat list - but I will go and try that to 
help me learn a bit more.

Tim

Sent from my iPhone

> On 27 Dec 2016, at 23:55, Denis Kudriashov  wrote:
> 


Re: [Pharo-users] How to view hierarchy of multiple classes in a package?

2016-12-28 Thread Tim Mackinnon

My recollection of VA is that classes in other packages show up as a lighter 
grey colour, if you choose to see the full hierarchy (I think dolphin and ow do 
something similar too)

I guess what threw me was the hierarchy button in pharo just shows what I want 
for a single class and not for all classes in the selected package at the same 
time. (Which would make learning new packages a bit easier).

Maybe it's something I can easily adjust myself. Or something to consider for 
Calypso.

Tim

Sent from my iPhone

> On 28 Dec 2016, at 17:38, Denis Kudriashov <dionisi...@gmail.com> wrote:
> 
> 
> 2016-12-28 17:23 GMT+01:00 Tim Mackinnon <tim@testit.works>:
>> However the example I was looking at was a package that had a series of 
>> Announcement subclasses, AND what wasn't obvious was that they were all 
>> subclasses of the same parent "Announcement", as that isn't shown - you just 
>> get a series of classes not rooted under some parent (even if it was 
>> object). I'm guessing that just things that are subclasses of each other in 
>> the same package are shown?
>> 
>> I was hoping that pane might show -
>> 
>> Announcement
>> + A
>> + B
>>+ C
> 
> Interesting. Is it really supported in some smalltalk?


[Pharo-users] How to view hierarchy of multiple classes in a package?

2016-12-27 Thread Tim Mackinnon
Hi guys - I'm trying to get back into pharo, and check out the advances in v5.

Anyway, if I look at a package in the system browser, it shows me classes in 
that package (i think my terminology is right here?).

What confuses me, is his I can see the hire hybrid the classes in relation to 
each other? The hier button just shows the hierarchy of the selected class and 
not in relation to the others?

I'm sure at some point pharo and squeak let you see the related hierarchies of 
all the classes in the package didn't it?

This is really useful to help understand the relationship between classes and 
pure risky identify useful refactorings.

I can't see how to do this in pharo anymore?

Is this functionality that has been lost (which seems a shame)? Or am I missing 
another useful browsers?

Tim

Sent from my iPhone



Re: [Pharo-users] How to view hierarchy of multiple classes in a package?

2016-12-27 Thread Tim Mackinnon
Hi Denis - I went to look at an early squeak version and I think I was 
mistaken, properly drawn hierarchies were in VA and OW Smalltalks as well as 
Dolphin.

Pharo doesn't do this well at all - pressing the hierarchy ,button draws the 
hierarchy for the selected class only - even though you may be looking at 6 
related classes in a package

Eg, if a package had classes A, B, C, D - I wish I could see

A
 +B
 +C
 +D

And not just one of the hierarchies like it does now. Eh if B is selected you 
just get

A
+ B

and don't see the other classes at all.

I found it useful in a single browser to visually understand (even if it's 
crude nesting) the relationships between classes. This greatly helps with 
refactoring and comprehension. And reduces clicking on everything to build that 
mental model.

How do people figure out relationships in code in Pharo, is there some other 
tool?


Tim


Sent from my iPhone



Sent from my iPhone
> On 27 Dec 2016, at 17:59, Denis Kudriashov <dionisi...@gmail.com> wrote:
> 
> Hi.
> 
> 2016-12-27 17:44 GMT+01:00 Tim Mackinnon <tim@testit.works>:
>> What confuses me, is his I can see the hire hybrid the classes in relation 
>> to each other? The hier button just shows the hierarchy of the selected 
>> class and not in relation to the others?
>> 
>> I'm sure at some point pharo and squeak let you see the related hierarchies 
>> of all the classes in the package didn't it?
> 
> Could you show/describe concrete example? 
> Because what you describe feels like what we have now: "hierarchically 
> sorted" classes of selected package. But you probably want something else? 
> 


Re: [Pharo-users] Critical issues for Dr. Geo on P6

2017-07-28 Thread Tim Mackinnon
Just to chip in - I hope we can get past this bump (and I think it is a bump).

I am actually ecstatic that recent improvements - a 64bit vm, a minimal image 
and git integration, have opened the door to Pharo working on AWS Lambda. Also 
having a CI system to help crank these things out is also a big win.

So I applaud the work, progress and vision that has got us here !

All large systems accrue infrastructure and unexpected dependencies that take 
effort to modernise. I don't think this is solely a Pharo thing. (I just 
recently worked with a Java team that used SnapCI for builds, and when it was 
shut down it was 6+ weeks to migrate off it and stabilise things).

We are close - we just need to rally around to get a good stable base that can 
support the next round of revolution (aka P7).

Tim

Sent from my iPhone

> On 28 Jul 2017, at 11:00, Serge Stinckwich  wrote:
> 
> 
> 
>> On Fri, Jul 28, 2017 at 9:34 AM, Hilaire  wrote:
>> I don't share your enthusiasm.
>> 
>> I once set up a satisfactory build environment for DrGeo, based on P3. As 
>> long as I stay with P3, I can concentrate on DrGeo code: write the code, 
>> then fire up a build script to deploy the application. Now porting to P6 is 
>> a pain: the infrastructure to deploy a desktop application has not evolve 
>> since P3, I have to build again a deployment environment from scratch (VM 
>> support, shrinked/built image, I don't know the promise of minimal image 
>> build up is not palpable for me).
>> 
>> Now If I have to spend days on that, I am not sure I will do it again, I 
>> can't compete against other geometry application if I have to fight against 
>> pharo too. What I want is to concentrate working on DrGeo not Pharo, sorry 
>> to make it explicit but I can't much offer to do both.
>> 
> 
> ​I have sometimes the same concerns with Pharo or some tools of the Pharo 
> ecosystem. I know that we are trying to do our best and regarding the number 
> of core developers we have already an incredible platform. But sometimes, you 
> need to very simple updates and because of subtle problems with 
> VM/configurations/CI/ etc ...  this is not that simple and we need to spend 
> times on boring stuff.
> 
> There is no simple solution.
> 
> One solution might be that the core developers only focus on core Pharo 
> functionalities but I think this is somewhat difficult, because most of the 
> dev are from RMOD. RMOD is a research unit and could not spend all his 
> money/effort on an engineering process.
> 
> Another solution is to grow our community. More people, more companies to 
> sustain more engineers through the consortium. The more people we are able to 
> attract, the more people will help to develop working solutions for problems 
> like deployment or to have bug-fixing intermediate releases.
> 
> ​This is why we all need ​in the community to do as much as possible 
> advertisements: lectures at universities, talk to your colleague about Pharo, 
> do demos in companies, at open-source forums, use Twitter do talk about Pharo 
> ecosystem, the software you are developing with Pharo.
> Don't hide problems but talk about our nice platform and our community.
> 
> We have done this with Stephane in the early days of Pharo at open-source 
> forums in France and I remember that you come in the community after we meet 
> you in one of these forums :-)
> So DrGeo2 exists because of this kind of advertisement.
> 
> Regards,
> 
> -- 
> Serge Stinckwich
> UCN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://www.doesnotunderstand.org/


Re: [Pharo-users] Creating the smallest server runtime footprint

2017-07-31 Thread Tim Mackinnon
Hi Pavel - I’m just revisiting a few of your previous messages on minimal 
images as I’m trying to get things working again with Pharo 6.1 now that you 
guys have rejigged all of the build pipelines.

I tried a previous suggestion of:

For Pharo 6: 
https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip
 
<https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip>
For Pharo 7: 
https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip
 
<https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip>

However the Pharo 6 version is no longer being built, and it doesn’t seem to 
work well with the newer 64bit vm (? I seem to get a load error that I didn’t 
have before - although its possible that I’m loading a new pre-req with 
metacello and this is tipping it over the edge).

Anyway - a prev suggestion for 6.x from you was:
> https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
>  
> <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
However this is a 32bit image. Is there an equivalent 64bit image for 6.1?  OR 
should I use the Pharo 7 one for now (I guess the minimal image will probably 
be pretty stable for a little while as I’m sure the action is higher up the 
chain?)

Tim


> On 15 Jul 2017, at 09:35, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
> 
> If you want to stay with Pharo 6 image, you can try the bootstrapped version 
> of the minimal image:
> https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
>  
> <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
> 
> -- Pavel
> 
> 2017-07-15 10:33 GMT+02:00 Pavel Krivanek <pavel.kriva...@gmail.com 
> <mailto:pavel.kriva...@gmail.com>>:
> Try the Pharo 7 metacello image (=Pharo 7 minimal image that the CI is 
> already converting to 64bit). There should be no problem with STON because 
> whole Pharo is loaded into it using metacello and filetree. Pharo 6 minimal 
> image is done differently (by shrinking) and not so well tested.
> 
> For the conversion of 32-bit image to 64-bit image you need a VMMaker image:
> https://ci.inria.fr/pharo/job/Spur-Git-Tracker/lastSuccessfulBuild/artifact/vmmaker-image.zip
>  
> <https://ci.inria.fr/pharo/job/Spur-Git-Tracker/lastSuccessfulBuild/artifact/vmmaker-image.zip>
> and then evaluate:
> ./pharo generator.image eval "[Spur32to64BitBootstrap new bootstrapImage: 
> 'conversion.image'] on: AssertionFailure do: [ :fail | fail resumeUnchecked: 
> nil ]"
> 
> -- Pavel
> 
> 
> 
> 2017-07-15 10:19 GMT+02:00 Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>>:
> Hi Pavel - thanks for getting me to the point where I could even have a 
> minimal image. As I’m on the edge of my Pharo knowledge here, I’ll try and 
> run with this as best I can.
> 
> I’d been using the 6.0 image you suggested to me - but maybe I could use a 70 
> image with Pharo 6 for a while (until the VM diverges) right? 
> 
> The bit I haven’t quite understood however, is how the 64bit image is created 
> - as your reference is to a 32bit version? Is the 64bit one converted from 32 
> in a later stage? (For AWS Lambda I need 64bit) - am I right in thinking the 
> pipeline stage after this one is the one you sent me - and the travis.yml 
> file shows me what it does? But I can’t see a trivis.yml in the conversion 
> stage so I’m not sure how it does that. (Question - how do I see what the 
> pipelines do to answer my own questions?)
> 
> I was hoping that there was a basic image that got me up to metacello 
> baseline level to load git file tree packages/baselines  in my own repo as 
> well baselines on the internet. The one you sent me is fairly close to that 
> (its just missing STON in the image and seems to have an issue with resolving 
> undeclared classes that get loaded in - should do a fogbugz on that?)
> 
> The follow-on from a metacello image is how we can get people to create 
> better baselines that give you more minimal loading options (e.g. 
> conditionally leave out the test cases perhaps)
> 
> Tim
> 
>> On 15 Jul 2017, at 08:24, Pavel Krivanek <pavel.kriva...@gmail.com 
>> <mailto:pavel.kriva...@gmail.com>> wrote:
>> 
>> Hi Tim,
>> 
>> you can base the your work on the bootstrapped image, see 
>> https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit/ 
>> <https://ci.inria.fr/pharo/view/7.0/job/70-Bo

Re: [Pharo-users] Creating the smallest server runtime footprint

2017-07-31 Thread Tim Mackinnon
Ok (I am reading there is a lot going on for you guys to sort out at the 
moment).

It sounds like a more stable conversion of Pharo 6.1 for 64 bit would be best 
to give me a stable platform to run on.

In that minimal image - what can I rely on to load code (in trying the 7.0 
version it seems like Gofer isn’t there, and I’m now wondering if Metacello 
isn’t there either) - so I’m wondering how you guys load baselinesOf of 
configurationsOf?

Tim

> On 31 Jul 2017, at 14:17, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
> 
> H Tim
> 
> 2017-07-31 15:07 GMT+02:00 Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>>:
> Hi Pavel - I’m just revisiting a few of your previous messages on minimal 
> images as I’m trying to get things working again with Pharo 6.1 now that you 
> guys have rejigged all of the build pipelines.
> 
> I tried a previous suggestion of:
> 
> For Pharo 6: 
> https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip
>  
> <https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip>
> For Pharo 7: 
> https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip
>  
> <https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip>
> 
> However the Pharo 6 version is no longer being built, and it doesn’t seem to 
> work well with the newer 64bit vm (? I seem to get a load error that I didn’t 
> have before - although its possible that I’m loading a new pre-req with 
> metacello and this is tipping it over the edge).
> 
> Anyway - a prev suggestion for 6.x from you was:
>> https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
>>  
>> <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
> However this is a 32bit image. Is there an equivalent 64bit image for 6.1?  
> OR should I use the Pharo 7 one for now (I guess the minimal image will 
> probably be pretty stable for a little while as I’m sure the action is higher 
> up the chain?)
> 
> You should use an image that is bootstrapped, so version from SysConf jobs or 
> Pharo 7. For Pharo 7 we are preparing a lot of big changes in the kernel so 
> do not expect it will be stable. We can do a conversion job of of it to 
> 64-bit version as soon as the CI infrastructure will be on knees again.
> 
> -- Pavel
> 
>  
> 
> Tim
> 
> 
>> On 15 Jul 2017, at 09:35, Pavel Krivanek <pavel.kriva...@gmail.com 
>> <mailto:pavel.kriva...@gmail.com>> wrote:
>> 
>> If you want to stay with Pharo 6 image, you can try the bootstrapped version 
>> of the minimal image:
>> https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
>>  
>> <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
>> 
>> -- Pavel
>> 
>> 2017-07-15 10:33 GMT+02:00 Pavel Krivanek <pavel.kriva...@gmail.com 
>> <mailto:pavel.kriva...@gmail.com>>:
>> Try the Pharo 7 metacello image (=Pharo 7 minimal image that the CI is 
>> already converting to 64bit). There should be no problem with STON because 
>> whole Pharo is loaded into it using metacello and filetree. Pharo 6 minimal 
>> image is done differently (by shrinking) and not so well tested.
>> 
>> For the conversion of 32-bit image to 64-bit image you need a VMMaker image:
>> https://ci.inria.fr/pharo/job/Spur-Git-Tracker/lastSuccessfulBuild/artifact/vmmaker-image.zip
>>  
>> <https://ci.inria.fr/pharo/job/Spur-Git-Tracker/lastSuccessfulBuild/artifact/vmmaker-image.zip>
>> and then evaluate:
>> ./pharo generator.image eval "[Spur32to64BitBootstrap new bootstrapImage: 
>> 'conversion.image'] on: AssertionFailure do: [ :fail | fail resumeUnchecked: 
>> nil ]"
>> 
>> -- Pavel
>> 
>> 
>> 
>> 2017-07-15 10:19 GMT+02:00 Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>>:
>> Hi Pavel - thanks for getting me to the point where I could even have a 
>> minimal image. As I’m on the edge of my Pharo knowledge here, I’ll try and 
>> run with this as best I can.
>> 
>> I’d been using the 6.0 image you suggested to me - but maybe I could use a 
>> 70 image with Pharo 6 for a while (until the VM diverges) right? 
>> 
>> The bit I haven’t quite understood however, is how the 64bit image is 
>> created - as your reference is to a 32bit version? Is the 6

Re: [Pharo-users] Creating the smallest server runtime footprint

2017-07-31 Thread Tim Mackinnon
I wasn’t clear on which image to retry - the 
https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip
 
<https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip>
 one still shows as being last updated 7 days ago.

The 
https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
 
<https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
 one gives me a mismatch error: This interpreter (vers. 68021) cannot read 
image file (vers. 6521).

The 
https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip
 
<https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip>
 one gives me a walkback when trying to run my install script :

25 UndefinedObject(Object)>>doesNotUnderstand: #addTo:
26 MCRepositoryGroup>>addRepository:
27 createRepository
  | repo |
  repo := self project createRepository: self.
  ^ MCRepositoryGroup default repositories
detect: [ :each | each = repo ]
ifNone: [ 
  MCRepositoryGroup default addRepository: repo.
  repo ] in MetacelloRepositorySpec>>createRepository

I think this is because the image doesn’t support Metacello? As in:
Metacello new
repository: 'filetree://../src';
baseline: 'Lambda';
load.

How do you guys load things into the minimal images (I thought you used 
Metacello - but maybe you do it some other way?)

I can use a big 6.1 image fine (as it has Metacello loaded) but I’d really like 
a minimal solution - that can load in libraries like AWS S3, or XML parsing 
etc. and it seems like I should be a good customer for kicking the tires on all 
of this.

Tim

> On 31 Jul 2017, at 14:42, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
> 
> 
> 
> 2017-07-31 15:28 GMT+02:00 Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>>:
> Ok (I am reading there is a lot going on for you guys to sort out at the 
> moment).
> 
> It sounds like a more stable conversion of Pharo 6.1 for 64 bit would be best 
> to give me a stable platform to run on.
> 
> In that minimal image - what can I rely on to load code (in trying the 7.0 
> version it seems like Gofer isn’t there, and I’m now wondering if Metacello 
> isn’t there either) - so I’m wondering how you guys load baselinesOf of 
> configurationsOf?
> 
> Try it again, there was a bug in the job configuration
> 
> .. Pavel
>  
> 
> Tim
> 
>> On 31 Jul 2017, at 14:17, Pavel Krivanek <pavel.kriva...@gmail.com 
>> <mailto:pavel.kriva...@gmail.com>> wrote:
>> 
>> H Tim
>> 
>> 2017-07-31 15:07 GMT+02:00 Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>>:
>> Hi Pavel - I’m just revisiting a few of your previous messages on minimal 
>> images as I’m trying to get things working again with Pharo 6.1 now that you 
>> guys have rejigged all of the build pipelines.
>> 
>> I tried a previous suggestion of:
>> 
>> For Pharo 6: 
>> https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip
>>  
>> <https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip>
>> For Pharo 7: 
>> https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip
>>  
>> <https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip>
>> 
>> However the Pharo 6 version is no longer being built, and it doesn’t seem to 
>> work well with the newer 64bit vm (? I seem to get a load error that I 
>> didn’t have before - although its possible that I’m loading a new pre-req 
>> with metacello and this is tipping it over the edge).
>> 
>> Anyway - a prev suggestion for 6.x from you was:
>>> https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
>>>  
>>> <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
>> However this is a 32bit image. Is there an equivalent 64bit image for 6.1?  
>> OR should I use the Pharo 7 one for now (I guess the minimal image will 
>> probably be pretty stable for a little while as I’m sure the action is 
>> higher up the chain?)
>> 
>> You should use an image that is bootstrapped, so version from SysConf jobs 
>> or Pharo 7. For Pharo 7 we are preparing a lot of big changes in the kernel 
&

Re: [Pharo-users] Iceberg and removing packages

2017-08-02 Thread Tim Mackinnon
I just hit the same problem - I wanted to remove a package that I no longer 
wanted - I went to the iceberg packages tab for the project and picked remove 
from disk and then I did a synchronise and commit. At the time I did notice 
that it didn’t show a package removal change (but I assumed that as it was 
gone, maybe you don’t show that?).

Tim

> On 31 Jul 2017, at 13:30, Esteban Lorenzano  wrote:
> 
> Did you commit?
> 
>> On 31 Jul 2017, at 14:06, Esteban A. Maringolo  wrote:
>> 
>> That's exactly what I did. But after synchronizing the repo, the
>> package wasn't listed on Iceberg but it still was in in the repo.
>> It happened with another package in another repo as well.
>> 
>> If it happens again I'll let you know.
>> 
>> Regards!
>> 
>> Esteban A. Maringolo
>> 
>> 
>> 2017-07-31 7:03 GMT-03:00 Esteban Lorenzano :
>>> Hi,
>>> 
>>> In iceberg, you have to go to package tab and say "remove package from disk"
>>> 
>>> Esteban
>>> 
 On 30 Jul 2017, at 17:01, Esteban A. Maringolo  
 wrote:
 
 I got into the pharo-local/iceberg/... and git rm'ed the directory,
 commited and synchronized the project in Iceberg.
 
 I hope it doesn't break anything since I don't know how much "magic"
 does Iceberg behind the scenes other than automating the git commands
 and providing a centralized UI.
 
 What is the "This is all you need to read to understand Iceberg?"
 document I should read? I read its wiki, but it seems there is more to
 go.
 
 Regards!
 
 Esteban A. Maringolo
 
 
 2017-07-30 11:28 GMT-03:00 Peter Uhnak :
> This was supposedly fixed in April 
> https://github.com/pharo-vcs/iceberg/issues/317
> 
> however I had the same issue ~two months ago, so I had to delete the 
> packages by hand.
> 
> P
> 
> 
>> On Sun, Jul 30, 2017 at 11:04:20AM -0300, Esteban A. Maringolo wrote:
>> Hi,
>> 
>> I'm playing around with Iceberg in Pharo 6, and even when I find the
>> workflow streamlined, but since it doesn't map 1:1 with git workflow
>> from other IDEs or command line, I find myself not knowing how to do
>> certain tasks.
>> 
>> One thing that happened is that I published a few packages to one of
>> my repos in Github, then I decided to remove one of the packages from
>> the repo, then I synchronized it but in the repo there is still is the
>> package folder for the package I removed.
>> 
>> What should I do to definitely remove those files from the commit?
>> 
>> Regards!
>> 
>> Esteban A. Maringolo
>> 
> 
 
>>> 
>> 
> 




[Pharo-users] How to load a baseline in Iceberg? Get #addTo: sent to nil?

2017-08-02 Thread Tim Mackinnon
I’m wondering if I’m missing a trick somewhere - but I have a simple project 
with 2 packages, one is a BaseLineOfMyPkg and the other is MyPkg (technically I 
don’t need the BaseLineOf, but I was learning how to use them and I simply 
added a postLoad hook to run some code in it).

Anyway, If I clone my repo with Iceberg, I get 2 unloaded packages in the UI. 
If I right click on the BaseLine one, and click the “install baseline 
(default)” option, I was expecting it to load both packages for me - however I 
get the talkback error “#addTo: was sent to nil from the 
MCRepositoryGroup>>addRepository: method”.

In trying to debug the code I can see its trying to find a handler for 
gitlocal:/// , doesn’t find one and then tries to create a repo 
and bails… this seems like a bug? I did notice in tracing the code that there 
is a reference to a Setting that I saw - “Enable Metacello Integration” - 
should I set that to true (its false by default)?

I’m wondering how other people are loading their projects in Iceberg if this 
doesn’t work?

Tim

Re: [Pharo-users] How to load a baseline in Iceberg? Get #addTo: sent to nil?

2017-08-02 Thread Tim Mackinnon
Answering a portion of my own question - enabling the Metacello Integration 
setting, does get a bit further, but then it expects my BaselineOF package to 
have a project method (which I guess configurationOF packages have) - but as 
this is a baseline I didn’t think it was supposed to have one of these?

So I guess that setting isn’t applicable?

Tim

> On 2 Aug 2017, at 22:31, Tim Mackinnon <tim@testit.works> wrote:
> 
> I’m wondering if I’m missing a trick somewhere - but I have a simple project 
> with 2 packages, one is a BaseLineOfMyPkg and the other is MyPkg (technically 
> I don’t need the BaseLineOf, but I was learning how to use them and I simply 
> added a postLoad hook to run some code in it).
> 
> Anyway, If I clone my repo with Iceberg, I get 2 unloaded packages in the UI. 
> If I right click on the BaseLine one, and click the “install baseline 
> (default)” option, I was expecting it to load both packages for me - however 
> I get the talkback error “#addTo: was sent to nil from the 
> MCRepositoryGroup>>addRepository: method”.
> 
> In trying to debug the code I can see its trying to find a handler for 
> gitlocal:/// <gitlocal:///>, doesn’t find one and then tries to create a repo 
> and bails… this seems like a bug? I did notice in tracing the code that there 
> is a reference to a Setting that I saw - “Enable Metacello Integration” - 
> should I set that to true (its false by default)?
> 
> I’m wondering how other people are loading their projects in Iceberg if this 
> doesn’t work?
> 
> Tim



Re: [Pharo-users] about a pillar based output format for Epicea

2017-08-02 Thread Tim Mackinnon
Out of curiosity (as Pillar - well actually Ecstatic, was on my next hitlist to 
research), but is it so different from something like JavaScripts Metalsmith.io 
 ? I found metalsmith’s publishing pipeline and plugin 
system quite intuitive and easy to use but I just didn’t like nodejs so much 
(and the crappy webpack/brunch auto reloading systems).

It struck me that what they were doing was quite trivial in Smalltalk and I 
assumed Pillar (and Ecstatic) were similar in concept. However when I had a 
peak it did look quite complicated and made me think that porting Metalsmith 
might be easier and in interesting personal project.

Anyway, might be worth a look if you want architectural inspiration.

Tim

Sent from my iPhone

> On 2 Aug 2017, at 18:19, Stephane Ducasse  wrote:
> 
> I'm because Pillar is central to all my writings around Pharo (books,
> slides,...).
> We also want to use it for a lecture on open-source development.
> 
> Pillar got too complex and we should simplify its architecture.
> 
> I'm working on a new version of Cocoon but this tedious and I got
> stuck in managing
> initialisation of fields (from text to objects). now I will continue
> to work but task switching is killing me.
> Guillermo is helping me from time to time and damien helps me with the
> makefile/latex.
> 
> I will first finish all the slides for my lectures at Prague first.
> 
> Now we made
> - sure that we can run archetype without being forced to passed by the
> command-line.
> - and many changes and cleanup.
> Now we should work on
> 
> - Make sure that we identify for real bugs showing up in the three
> different archetypes (slides, books...).
> - Avoid to convert to JSON files to apply mustache.
> 
> - Rethink the architecture.
> - Like removing the dependency on magritte from the core.
> - Avoid a lot of strange behavior related to metadata handling.
> 
> Stef
> 
> 
> On Wed, Aug 2, 2017 at 6:15 PM, Alexandre Bergel
>  wrote:
>> Pillar is becoming central in the way I produce documents.
>> Is there anyone working on improving Pillar?
>> 
>> Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>> 
>> 
>> 
>>> On Aug 2, 2017, at 11:55 AM, Stephane Ducasse  
>>> wrote:
>>> 
>>> Hi martin
>>> 
>>> I would like to wlak over epicea objects and save the changed methods
>>> to be able to write booklets faster.
>>> What advices can you give me?
>>> Create a special visitor?
>>> 
>>> Stef
>>> 
>> 
>> 
> 


Re: [Pharo-users] How to load a baseline in Iceberg? Get #addTo: sent to nil?

2017-08-03 Thread Tim Mackinnon
Its in the settings options under Iceberg - It looks like it offloads some 
loading to Metacello vs handling it directly in Iceberg - but have not seen 
many people talk about it.

I'm still curious how people are loading things as I've realised I've probably 
had this issue all along but didn't realise it, until I found a very simple 
example of it.

Tim

Sent from my iPhone

> On 3 Aug 2017, at 01:55, Esteban A. Maringolo <emaring...@gmail.com> wrote:
> 
> What is the Metacello integration setting?
> 
> Esteban A. Maringolo
> 
> 2017-08-02 19:01 GMT-03:00 Tim Mackinnon <tim@testit.works>:
>> Answering a portion of my own question - enabling the Metacello Integration 
>> setting, does get a bit further, but then it expects my BaselineOF package 
>> to have a project method (which I guess configurationOF packages have) - but 
>> as this is a baseline I didn’t think it was supposed to have one of these?
>> 
>> So I guess that setting isn’t applicable?
>> 
>> Tim
>> 
>>> On 2 Aug 2017, at 22:31, Tim Mackinnon <tim@testit.works> wrote:
>>> 
>>> I’m wondering if I’m missing a trick somewhere - but I have a simple 
>>> project with 2 packages, one is a BaseLineOfMyPkg and the other is MyPkg 
>>> (technically I don’t need the BaseLineOf, but I was learning how to use 
>>> them and I simply added a postLoad hook to run some code in it).
>>> 
>>> Anyway, If I clone my repo with Iceberg, I get 2 unloaded packages in the 
>>> UI. If I right click on the BaseLine one, and click the “install baseline 
>>> (default)” option, I was expecting it to load both packages for me - 
>>> however I get the talkback error “#addTo: was sent to nil from the 
>>> MCRepositoryGroup>>addRepository: method”.
>>> 
>>> In trying to debug the code I can see its trying to find a handler for 
>>> gitlocal:///, doesn’t find one and then tries to create a repo and bails… 
>>> this seems like a bug? I did notice in tracing the code that there is a 
>>> reference to a Setting that I saw - “Enable Metacello Integration” - should 
>>> I set that to true (its false by default)?
>>> 
>>> I’m wondering how other people are loading their projects in Iceberg if 
>>> this doesn’t work?
>>> 
>>> Tim
>> 
> 


Re: [Pharo-users] GT Playground, pages dropdown menu - how does it work?

2017-08-03 Thread Tim Mackinnon
Yes - it looks like I've found a corner I can try to  help on (and I'm a bit 
blocked on my Lambda work while the dust settles in minimal images and how to 
load things).


I'll go and have a look and come back with any questions. I may need help on 
how to actually integrate any changes as I've never been comfortable with the 
whole slice thing and doing it with git doesn't seem bedded down yet (it's this 
that's really held me back in retrospect - so I'm hoping this current 
disruption will ultimately get us to an easier place)

Tim

Sent from my iPhone

> On 3 Aug 2017, at 07:42, Tudor Girba <tu...@tudorgirba.com> wrote:
> 
> Hi,
> 
> The dropdown only shows the cached pages. It should be enhanced. Would you be 
> interested in diving in to propose a change?
> 
> Doru
> 
> 
> 
>> On Aug 2, 2017, at 5:54 PM, Tim Mackinnon <tim@testit.works> wrote:
>> 
>> Hi - overtime I think I understand how the pages dropdown for the playground 
>> works, it then doesn’t do what I expect?
>> 
>> I have learned that double clicking a page tab will put the page into the 
>> stash directory with a name (which is cool), but then it doesn’t always seem 
>> to appear in the dropdown list - however I have learned that Spotter will 
>> find these pages if I use #playg…
>> 
>> So if spotter can find them, why does the playground dropdown seem to 
>> temperamental, or am I missing some obvious trick for clearing a cache or 
>> something like that? Or maybe its a bug? It would be nice if it would work, 
>> as its very handy as quick way to swap to a script.
>> 
>> Tim
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "Quality cannot be an afterthought."
> 
> 




Re: [Pharo-users] What sets the Monticello Local Cache Directory default in a new image?

2017-08-02 Thread Tim Mackinnon
A that’s how it works… StartupPreferencesHandler and its in my 
user/Library/Preferences/Pharo/6.0 folder…

You learn something new every day (minute it seems lately)

Tim

> On 2 Aug 2017, at 14:04, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
> 
> Try to run the image with --no-default-preferences.
> 
> -- Pavel
> 
> 2017-08-02 14:37 GMT+02:00 Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>>:
> Hey thanks - that seems like a good strategy (I hadn’t though of sharing the 
> GT ones as well).
> 
> However, I’m still curious how/why a new image would pick up settings from 
> what I did in another image (at least I think thats what its done - certainly 
> the directory it shows in my fresh image is not File 
> @pharo-local/package-cache like I would expect it to be?
> 
> With regards to the GT settings - how does it work if you share them - do 
> they happily co-exist? The stash one is also quite new to me - Sven mentioned 
> it a few weeks ago as I was confused how the playground got saved (I’m still 
> not clear) - but he suggested double-clicking the title and giving the tab a 
> name. Are these named ones the stashed ones (it looks like it). And do 
> stashed ones honour cmd-s to save them? Which then leads to the question, 
> that in different images - if you share the stash then I guess if you want to 
> reload a file, you close that playground and then pick it again from the list?
> 
> Its quite a cool way of working (not perfect) but a real time saver. Thanks 
> for sharing.
> 
> Tim
> 
>> On 2 Aug 2017, at 13:24, Mariano Martinez Peck <marianop...@gmail.com 
>> <mailto:marianop...@gmail.com>> wrote:
>> 
>> 
>> 
>> On Wed, Aug 2, 2017 at 9:16 AM, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> Hi - I’ve noticed that when I download a new image+vm with zeroconf (in a 
>> fresh directory) - that when I launch it, the setting Tools | Software 
>> Config Mgnmnt | Monticello | Local Cache Directory has a value that points 
>> to a directory from one of my earlier images.
>> 
>> Is this normal (does it store this information somewhere on my computer so 
>> that different setups can access it)?
>> 
>> At first I thought this was annoying - but I’m now wondering if this is 
>> useful as I’m guessing that there isn’t any reason to have separate caches 
>> for version controlled libraries and so maybe I should actually set it to 
>> some common directory?
>> 
>> What is the recommended strategy?
>> 
>> 
>> My strategy is to use a shared repository for all my images. As part of my 
>> build image scripts I do something like this:
>> 
>> 
>> " === Personal Settings  "
>> 
>> MCCacheRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' 
>> asFileReference.
>> MCGitHubRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' 
>> asFileReference.
>> GTPlayBook cacheDirectory: '/Users/mariano/Pharo/play-cache/' 
>> asFileReference. 
>> GTPlayBook stashDirectory: '/Users/mariano/Pharo/play-stash/' 
>> asFileReference. 
>> 
>> 
>> I guess you save stuff:
>> 
>> find /Users/mariano/Pharo/localRepo/ -type f | wc -l 
>>
>>32301
>> 
>>  du -sh /Users/mariano/Pharo/localRepo
>> 6.1G/Users/mariano/Pharo/localRepo
>> 
>> 
>> Not only you save disk space, but also:
>> 1) Each image build is likely to take less time as many files will be 
>> already in the cache (no need to redownload it).
>> 2) it works as a yet another backup of your code and other packages. 
>> 
>> 
>> 
>> -- 
>> Mariano
>> http://marianopeck.wordpress.com <http://marianopeck.wordpress.com/>
> 
> 



Re: [Pharo-users] What sets the Monticello Local Cache Directory default in a new image?

2017-08-02 Thread Tim Mackinnon
Hey thanks - that seems like a good strategy (I hadn’t though of sharing the GT 
ones as well).

However, I’m still curious how/why a new image would pick up settings from what 
I did in another image (at least I think thats what its done - certainly the 
directory it shows in my fresh image is not File @pharo-local/package-cache 
like I would expect it to be?

With regards to the GT settings - how does it work if you share them - do they 
happily co-exist? The stash one is also quite new to me - Sven mentioned it a 
few weeks ago as I was confused how the playground got saved (I’m still not 
clear) - but he suggested double-clicking the title and giving the tab a name. 
Are these named ones the stashed ones (it looks like it). And do stashed ones 
honour cmd-s to save them? Which then leads to the question, that in different 
images - if you share the stash then I guess if you want to reload a file, you 
close that playground and then pick it again from the list?

Its quite a cool way of working (not perfect) but a real time saver. Thanks for 
sharing.

Tim

> On 2 Aug 2017, at 13:24, Mariano Martinez Peck <marianop...@gmail.com> wrote:
> 
> 
> 
> On Wed, Aug 2, 2017 at 9:16 AM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> Hi - I’ve noticed that when I download a new image+vm with zeroconf (in a 
> fresh directory) - that when I launch it, the setting Tools | Software Config 
> Mgnmnt | Monticello | Local Cache Directory has a value that points to a 
> directory from one of my earlier images.
> 
> Is this normal (does it store this information somewhere on my computer so 
> that different setups can access it)?
> 
> At first I thought this was annoying - but I’m now wondering if this is 
> useful as I’m guessing that there isn’t any reason to have separate caches 
> for version controlled libraries and so maybe I should actually set it to 
> some common directory?
> 
> What is the recommended strategy?
> 
> 
> My strategy is to use a shared repository for all my images. As part of my 
> build image scripts I do something like this:
> 
> 
> " === Personal Settings  "
> 
> MCCacheRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' 
> asFileReference.
> MCGitHubRepository cacheDirectory: '/Users/mariano/Pharo/localRepo/' 
> asFileReference.
> GTPlayBook cacheDirectory: '/Users/mariano/Pharo/play-cache/' 
> asFileReference. 
> GTPlayBook stashDirectory: '/Users/mariano/Pharo/play-stash/' 
> asFileReference. 
> 
> 
> I guess you save stuff:
> 
> find /Users/mariano/Pharo/localRepo/ -type f | wc -l  
>   
>32301
> 
>  du -sh /Users/mariano/Pharo/localRepo
> 6.1G/Users/mariano/Pharo/localRepo
> 
> 
> Not only you save disk space, but also:
> 1) Each image build is likely to take less time as many files will be already 
> in the cache (no need to redownload it).
> 2) it works as a yet another backup of your code and other packages. 
> 
> 
> 
> -- 
> Mariano
> http://marianopeck.wordpress.com <http://marianopeck.wordpress.com/>



[Pharo-users] What sets the Monticello Local Cache Directory default in a new image?

2017-08-02 Thread Tim Mackinnon
Hi - I’ve noticed that when I download a new image+vm with zeroconf (in a fresh 
directory) - that when I launch it, the setting Tools | Software Config Mgnmnt 
| Monticello | Local Cache Directory has a value that points to a directory 
from one of my earlier images.

Is this normal (does it store this information somewhere on my computer so that 
different setups can access it)?

At first I thought this was annoying - but I’m now wondering if this is useful 
as I’m guessing that there isn’t any reason to have separate caches for version 
controlled libraries and so maybe I should actually set it to some common 
directory?

What is the recommended strategy?

Tim


Re: [Pharo-users] How to load a baseline in Iceberg? Get #addTo: sent to nil?

2017-08-03 Thread Tim Mackinnon
It might be something in this area - I will have to study. I am using gitlab 
and have done a clone - so the packages are on my disk, but it did look like it 
wasn’t properly finding them due to the naming of the local git url (so not 
quite your issue, but in a similar space I think).

I’m just surprised no-one else is mentioning this which makes me wonder if its 
my setup (although this is a vanilla zeroconf with nothing strange).

I think you are supposed to be able to clone, then click on a baselineOf 
package and pick install - and this should get all your code into the image 
(that’s why there is an install menu item just on baselineOF packages?)

Tim

> On 3 Aug 2017, at 09:09, Herby Vojčík <he...@mailbox.sk> wrote:
> 
> This works for me (to load BaselineOfTowergame from src/ relative to image 
> location):
> 
> | hereRef |
> hereRef := Smalltalk imageDirectory asFileReference.
> 
> "Work around scp url hardwired 'git@'"
> IceScpRemote class compile: 'canHandleUrl: aRepositoryUrl
>   "Very simplistic implementation that does not cover all cases"
>   ^ aRepositoryUrl matchesRegex: ''([\w.-]+@|ssh\://).*'''.
> IceScpRemote compile: ((IceScpRemote >> #parseUrl) sourceCode copyReplaceAll: 
> 'git@' with: '[\w.-]+@').
> 
> (IceRepositoryCreator new location: hereRef; subdirectory: 'src'; 
> createRepository) register.
> 
> IceGithubRepositoryType class compile: 'type ^ ''github+rw'''. "Work around 
> github:// needing access"
> 
> Iceberg enableMetacelloIntegration: true.
> Metacello new baseline: 'Towergame'; repository: 'gitlocal:///', (hereRef / 
> 'src') fullName; load: 'development'.
> 
> Towergame configure.
> 
> Smalltalk snapshot: true andQuit: true.
> 
> You may not need the workarounds (first is for non-"git@" remote, second is 
> for github:// not working without a github.com ssh access).
> 
> Tim Mackinnon wrote:
>> I’m wondering if I’m missing a trick somewhere - but I have a simple
>> project with 2 packages, one is a BaseLineOfMyPkg and the other is MyPkg
>> (technically I don’t need the BaseLineOf, but I was learning how to use
>> them and I simply added a postLoad hook to run some code in it).
>> 
>> Anyway, If I clone my repo with Iceberg, I get 2 unloaded packages in
>> the UI. If I right click on the BaseLine one, and click the “install
>> baseline (default)” option, I was expecting it to load both packages for
>> me - however I get the talkback error “#addTo: was sent to nil from the
>> MCRepositoryGroup>>addRepository: method”.
>> 
>> In trying to debug the code I can see its trying to find a handler for
>> gitlocal:///, doesn’t find one and then tries to create a repo and
>> bails… this seems like a bug? I did notice in tracing the code that
>> there is a reference to a Setting that I saw - “Enable Metacello
>> Integration” - should I set that to true (its false by default)?
>> 
>> I’m wondering how other people are loading their projects in Iceberg if
>> this doesn’t work?
>> 
>> Tim
> 
> 




Re: [Pharo-users] How to load a baseline in Iceberg? Get #addTo: sent to nil?

2017-08-03 Thread Tim Mackinnon
Alistair - does that mean you’ve not tried using that menu item on a baseline 
package? I think its there for this reason - but maybe Esteban will comment 
when he’s back from holiday.

So on a related front - do you go to a separate workspace and type in 

Metacello new
baseline: ‘MyBaseline';
repository: 'filetree://./local-project/src';
load.
?

I have tried loading all the packages in iceberg and then tried to load them 
with a script like this (but its very awkward - and I hadn’t thought of just 
using the Metacello variant)

BaselineOfLambda project version spec packageSpecsInLoadOrder allButLast do: [ 
:s | 
s version load ].



> On 3 Aug 2017, at 14:15, Alistair Grant <akgrant0...@gmail.com> wrote:
> 
> Hi Tim,
> 
> On Thu, Aug 03, 2017 at 10:55:09AM +0100, Tim Mackinnon wrote:
>> It might be something in this area - I will have to study. I am using 
>> gitlab and have done a clone - so the packages are on my disk, but it 
>> did look like it wasn???t properly finding them due to the naming of 
>> the local git url (so not quite your issue, but in a similar space I 
>> think).
>> 
>> I???m just surprised no-one else is mentioning this which makes me 
>> wonder if its my setup (although this is a vanilla zeroconf with 
>> nothing strange).
>> 
>> I think you are supposed to be able to clone, then click on a 
>> baselineOf package and pick install - and this should get all your 
>> code into the image (that???s why there is an install menu item just 
>> on baselineOF packages?)
> 
> I don't know the original intent, but I've never thought about Iceberg 
> this way.
> 
> My understanding is that baselineOf: is intended for use by metacello.  
> Iceberg allows you to load individual packages, but it's focus area is 
> code development, not package loading.
> 
> I use Iceberg to load the baseline package, edit it, then save it back 
> to the git repository, then load the entire project through metacello 
> (usually in separate images so I'm testing in a clean environment).
> 
> HTH,
> Alistair
> 
> 
> 
>> Tim
>> 
>>> On 3 Aug 2017, at 09:09, Herby Vojk <he...@mailbox.sk> wrote:
>>> 
>>> This works for me (to load BaselineOfTowergame from src/ relative to image 
>>> location):
>>> 
>>> | hereRef |
>>> hereRef := Smalltalk imageDirectory asFileReference.
>>> 
>>> "Work around scp url hardwired 'git@'"
>>> IceScpRemote class compile: 'canHandleUrl: aRepositoryUrl
>>> "Very simplistic implementation that does not cover all cases"
>>> ^ aRepositoryUrl matchesRegex: ''([\w.-]+@|ssh\://).*'''.
>>> IceScpRemote compile: ((IceScpRemote >> #parseUrl) sourceCode 
>>> copyReplaceAll: 'git@' with: '[\w.-]+@').
>>> 
>>> (IceRepositoryCreator new location: hereRef; subdirectory: 'src'; 
>>> createRepository) register.
>>> 
>>> IceGithubRepositoryType class compile: 'type ^ ''github+rw'''. "Work around 
>>> github:// needing access"
>>> 
>>> Iceberg enableMetacelloIntegration: true.
>>> Metacello new baseline: 'Towergame'; repository: 'gitlocal:///', (hereRef / 
>>> 'src') fullName; load: 'development'.
>>> 
>>> Towergame configure.
>>> 
>>> Smalltalk snapshot: true andQuit: true.
>>> 
>>> You may not need the workarounds (first is for non-"git@" remote, second is 
>>> for github:// not working without a github.com ssh access).
>>> 
>>> Tim Mackinnon wrote:
>>>> I???m wondering if I???m missing a trick somewhere - but I have a simple
>>>> project with 2 packages, one is a BaseLineOfMyPkg and the other is MyPkg
>>>> (technically I don???t need the BaseLineOf, but I was learning how to use
>>>> them and I simply added a postLoad hook to run some code in it).
>>>> 
>>>> Anyway, If I clone my repo with Iceberg, I get 2 unloaded packages in
>>>> the UI. If I right click on the BaseLine one, and click the ???install
>>>> baseline (default)??? option, I was expecting it to load both packages for
>>>> me - however I get the talkback error ???#addTo: was sent to nil from the
>>>> MCRepositoryGroup>>addRepository: method???.
>>>> 
>>>> In trying to debug the code I can see its trying to find a handler for
>>>> gitlocal:///, doesn???t find one and then tries to create a repo and
>>>> bails??? this seems like a bug? I did notice in tracing the code that
>>>> there is a reference to a Setting that I saw - ???Enable Metacello
>>>> Integration??? - should I set that to true (its false by default)?
>>>> 
>>>> I???m wondering how other people are loading their projects in Iceberg if
>>>> this doesn???t work?
>>>> 
>>>> Tim
>>> 
>>> 
>> 
>> 
> 



Re: [Pharo-users] How to load a baseline in Iceberg? Get #addTo: sent to nil?

2017-08-03 Thread Tim Mackinnon
So I dont think I am going crazy - but there are so many different ways of 
working.

I'll raise a bug in the morning.

The trouble with enabling metacello support is that baselines aren't configs 
and so they don't have methods like #project that it seems to rely on.

Tim

Sent from my iPhone

> On 3 Aug 2017, at 20:29, Alistair Grant <akgrant0...@gmail.com> wrote:
> 
>> On Thu, Aug 03, 2017 at 05:28:33PM +0100, Tim Mackinnon wrote:
>> Alistair - does that mean you?ve not tried using that menu item on a baseline
>> package? I think its there for this reason - but maybe Esteban will comment
>> when he?s back from holiday.
> 
> OK, that's embarrassing... I didn't read your email properly, and no, I
> hadn't tried it.
> 
> The error occurs when Iceberg's metacello integration is disabled.  So
> if you execute:
> 
> Iceberg enableMetacelloIntegration: true.
> 
> And then load the baseline, it will work, although Iceberg doesn't
> refresh its display properly.
> 
> Can you open a fogbugz issue on the error case?
> 
> 
>> So on a related front - do you go to a separate workspace and type in 
>> 
>> 
>> Metacello new
>>baseline: ?MyBaseline';
>>repository: 'filetree://./local-project/src';
>>load.
>> 
>> ?
> 
> Yep, but normally in a completely separate image so that it is a clean
> environment.  I normally have a script that loads all the required
> packages, so I can just:
> 
> pharo-ui Pharo.image load_all.st
> 
> In the development environment (where I'm using Iceberg) everything is
> loaded, so I'm just testing the package functionality, not loading the
> packages.
> 
> 
> Cheers,
> Alistair
> 
> 
> 
>> I have tried loading all the packages in iceberg and then tried to load them
>> with a script like this (but its very awkward - and I hadn?t thought of just
>> using the Metacello variant)
>> 
>> BaselineOfLambda project version spec packageSpecsInLoadOrder allButLast do: 
>> [
>> :s | 
>> s version load ].
>> 
>> 
>> 
>> 
>>On 3 Aug 2017, at 14:15, Alistair Grant <akgrant0...@gmail.com> wrote:
>> 
>>Hi Tim,
>> 
>>On Thu, Aug 03, 2017 at 10:55:09AM +0100, Tim Mackinnon wrote:
>> 
>>It might be something in this area - I will have to study. I am using
>>gitlab and have done a clone - so the packages are on my disk, but it
>>did look like it wasn???t properly finding them due to the naming of
>>the local git url (so not quite your issue, but in a similar space I
>>think).
>> 
>>I???m just surprised no-one else is mentioning this which makes me
>>wonder if its my setup (although this is a vanilla zeroconf with
>>nothing strange).
>> 
>>I think you are supposed to be able to clone, then click on a
>>baselineOf package and pick install - and this should get all your
>>code into the image (that???s why there is an install menu item just
>>on baselineOF packages?)
>> 
>> 
>>I don't know the original intent, but I've never thought about Iceberg
>>this way.
>> 
>>My understanding is that baselineOf: is intended for use by metacello.  
>>Iceberg allows you to load individual packages, but it's focus area is
>>code development, not package loading.
>> 
>>I use Iceberg to load the baseline package, edit it, then save it back
>>to the git repository, then load the entire project through metacello
>>(usually in separate images so I'm testing in a clean environment).
>> 
>>HTH,
>>Alistair
>> 
>> 
>> 
>> 
>>Tim
>> 
>> 
>>On 3 Aug 2017, at 09:09, Herby Vojk <he...@mailbox.sk> wrote:
>> 
>>This works for me (to load BaselineOfTowergame from src/ relative
>>to image location):
>> 
>>| hereRef |
>>hereRef := Smalltalk imageDirectory asFileReference.
>> 
>>"Work around scp url hardwired 'git@'"
>>IceScpRemote class compile: 'canHandleUrl: aRepositoryUrl
>>"Very simplistic implementation that does not cover all cases"
>>^ aRepositoryUrl matchesRegex: ''([\w.-]+@|ssh\://).*'''.
>>IceScpRemote compile: ((IceScpRemote >> #parseUrl) sourceCode
>>copyReplaceAll: 'git@' with: '[\w.-]+@').
>> 
>>(IceRepositoryCreator new location: hereRef; subdirectory: 'src';
>>createReposito

Re: [Pharo-users] Settings - Server Mode - should I use it?

2017-08-04 Thread Tim Mackinnon
Hey Ben - thanks for sharing this with me - you know, I never knew you could 
right click on the settings and browse… I’ve always (only partially 
successfully) used halo’s on ui items and tried to dig in that way… 

It turns out that in the minimal images that Pavel has been churning out - 
WorldState is not there (which makes sense, as you would expect all of the UI 
pieces to be stripped out).

Tim

> On 2 Aug 2017, at 18:09, Ben Coman <b...@openinworld.com> wrote:
> 
> hi Tim,
> 
> This is Pharo! You can dig in to understand it yourself. ;)   
> 1. On the setting, right-click and "Browse".
> 2. Scroll down to... label: 'Server mode'
> then on #serverMode, right-click > Code Search > Implementors of it
> 3. Looking at WorldState>>serverMode, click "Senders"
> and you'll come to WorldState>>interCyclePause:
> Look for senders of this and inspect MinCycleLapse.
> 
> Basically that setting makes the UI loop delay for a longer time ==> less CPU 
> but I don't know whether that loop still runs in headless mode.
> I guess if you are bootstrapping your Lambda image, you can choose.
> 
> But since your Lambda is meant to finish quite quickly, alternatively maybe 
> during image shutdown you could set a flag such that next startup 
> #interCyclePause: blocks for 500ms and if the image exits cleanly and 
> quickly, #doOneCycleNowFor: is never executed at all.
> 
> cheers -ben
> 
> On Wed, Aug 2, 2017 at 10:39 PM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> Hi - I hadn’t looked in the settings browser much before, but I was looking 
> at what settings there were and noticed “server mode”.
> 
> Should I be enabling this when building a headless server image to run on 
> Lambda? I saw a 2016 post by John Brant that indicated it made a difference 
> when doing some benchmarking in the image (presumably headful) - but I’m 
> wondering if when running headless on a server whether it really makes a 
> difference.
> 
> Has anyone played with this much before?
> 
> Tim
> 



Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-15 Thread Tim Mackinnon
Hi Guille/Ben - I got a quick moment to try the SpaceTally (aside: it seems 
very convoluted to load a single package into the image, I was trying to avoid 
having to create a baselineOf for something so simple - I ended up with:

repo := MCFileTreeRepository new directory: './bootstrap' asFileReference.
version := repo loadVersionFromFileNamed: 'Tool-Profilers.package'.
version load.

Anyway - in my minimal image, like in the fat image there seems to be a 
surprising amount of bytestrings (4mb worth?). I think that might need some 
digging into? It seems like a lot somehow. Although Ben’s neat experiment of 
zipping strings shows that’s not a real route.

In a deployed minimal image - maybe I can get rid of some other things like 
MethodChangeRecords or MCMethodDefiniion’s (but they are smaller wins - but 
noticeable)

Class  code space # instances  inst 
space percent   inst average size
ByteString   2640   37365   
4823848   21.50  129.10
Array3742   53002   
3961944   17.60   74.75
CompiledMethod  19159   30481   
2912968   13.00   95.57
Association  1148   58348   
18671368.30   32.00
MethodChangeRecord431   34312   
10979844.90   32.00
ByteArray4605 290
9087284.00 3133.54
ByteSymbol   1698   22689
8401683.70   37.03
IdentitySet   408   19076
6104322.70   32.00
MethodDictionary 33103520
6086882.70  172.92
WeakArray17583024
5978242.70  197.69
MCMethodDefinition   43186659
4261761.90   64.00
Protocol 16798382
2682241.20   32.00
OrderedCollection65555509
2203601.00   40.00 

As an aside - my Gitlab project is public, the scripts that load things up are 
in ./scripts (build.sh, and minimal.st <http://minimal.st/> and loadlocal.st 
<http://loadlocal.st/>)

Tim

> On 15 Aug 2017, at 08:02, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> 
> 
> On Mon, Aug 14, 2017 at 4:42 PM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> Hi Guille - just running SpaceTally on my dev image to get a feel for it. It 
> turns out that in the minimal images you’ve been creating, its not loaded 
> (makes sense).
> 
> Yup, it's loaded afterwards.
> 
> All packages are loaded through metacello baselines. We should start 
> refactoring and making standalone projects, each one with a baseline for 
> himself, and his own dependencies described.
> 
> I was checking on your gitlab and I have probably no access: how are you 
> finally loading packages in the bootstrap image? Can you share that with us 
> in text? I'd like to improve that situation.
>  
> I’m wondering if there is an easy way to import it in (I guess that package 
> should be in the Pharo git tree I cloned to get Fuel loaded right? Or is 
> there a separate standalone source?).
> 
> Yes it is, you can get the package programatically doing 
> 
> SpaceTally package name
> 
> And furthermore, get the baseline that currently is loading by doing
> 
> package := SpaceTally package name.
> BaselineOf subclasses select: [ :e | 
>   e project version packages anySatisfy: [ :p | p name = package ]].
>  
> 
> Thanks for all the support, and your email about why the contexts stack up is 
> very well received (I will comment over there).
> 
> By the way - it looks like Martin Fowler picked up on this announcement - so 
> maybe we might get some interest from his mass of followers.
> 
> Tim
> 
>> On 14 Aug 2017, at 10:49, Guillermo Polito <guillermopol...@gmail.com 
>> <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> Hi Tim,
>> 
>> On Mon, Aug 14, 2017 at 11:41 AM, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> Hey guys, thanks for your enthusiasm around this - and I cannot stress 
>> enough how this was only possible because of the work that has gone into 
>> making Pharo (in particular the 64bit image, as well as having a minim

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-15 Thread Tim Mackinnon
A weird observation - is it possible that source code is being stored in the 
image as strings somehow? When I do

./pharo PharoLambda.image eval "ByteString allInstances inject: 
(OrderedCollection new) into: [:r :i | i size > 500 ifTrue: [r add: i]. r]"

I see to see reams of what looks like method source - but I thought source code 
was stored in the .sources file and the .changes file (and I haven’t been 
bundling those in my deployed image).

I’m trying to figure out how you find references to a string object, to chase 
down what is pointing to these strings as maybe there is a quick 4mb win by 
simply nil’ing out some obvious things. (This doesn’t of course help with a 
default minimal image - but maybe a few tricks for packaging and deploying 
something).

Tim

> On 15 Aug 2017, at 22:26, Tim Mackinnon <tim@testit.works> wrote:
> 
> Hi Guille/Ben - I got a quick moment to try the SpaceTally (aside: it seems 
> very convoluted to load a single package into the image, I was trying to 
> avoid having to create a baselineOf for something so simple - I ended up with:
> 
> repo := MCFileTreeRepository new directory: './bootstrap' asFileReference.
> version := repo loadVersionFromFileNamed: 'Tool-Profilers.package'.
> version load.
> 
> Anyway - in my minimal image, like in the fat image there seems to be a 
> surprising amount of bytestrings (4mb worth?). I think that might need some 
> digging into? It seems like a lot somehow. Although Ben’s neat experiment of 
> zipping strings shows that’s not a real route.
> 
> In a deployed minimal image - maybe I can get rid of some other things like 
> MethodChangeRecords or MCMethodDefiniion’s (but they are smaller wins - but 
> noticeable)
> 
> Class  code space # instances  inst 
> space percent   inst average size
> ByteString   2640   37365   
> 4823848   21.50  129.10
> Array3742   53002   
> 3961944   17.60   74.75
> CompiledMethod  19159   30481   
> 2912968   13.00   95.57
> Association  1148   58348   
> 18671368.30   32.00
> MethodChangeRecord431   34312   
> 10979844.90   32.00
> ByteArray4605 290
> 9087284.00 3133.54
> ByteSymbol   1698   22689
> 8401683.70   37.03
> IdentitySet   408   19076
> 6104322.70   32.00
> MethodDictionary 33103520
> 6086882.70  172.92
> WeakArray17583024
> 5978242.70  197.69
> MCMethodDefinition   43186659
> 4261761.90   64.00
> Protocol 16798382
> 2682241.20   32.00
> OrderedCollection65555509
> 2203601.00   40.00 
> 
> As an aside - my Gitlab project is public, the scripts that load things up 
> are in ./scripts (build.sh, and minimal.st <http://minimal.st/> and 
> loadlocal.st <http://loadlocal.st/>)
> 
> Tim
> 
>> On 15 Aug 2017, at 08:02, Guillermo Polito <guillermopol...@gmail.com 
>> <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> 
>> 
>> On Mon, Aug 14, 2017 at 4:42 PM, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> Hi Guille - just running SpaceTally on my dev image to get a feel for it. It 
>> turns out that in the minimal images you’ve been creating, its not loaded 
>> (makes sense).
>> 
>> Yup, it's loaded afterwards.
>> 
>> All packages are loaded through metacello baselines. We should start 
>> refactoring and making standalone projects, each one with a baseline for 
>> himself, and his own dependencies described.
>> 
>> I was checking on your gitlab and I have probably no access: how are you 
>> finally loading packages in the bootstrap image? Can you share that with us 
>> in text? I'd like to improve that situation.
>>  
>> I’m wondering if there is an easy way to import it in (I guess that package 
>> should be in the Pharo git tree I cloned to get Fuel loaded right? Or is 
&g

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-16 Thread Tim Mackinnon
Yes you were on to something there (and at the same time, by poking around with 
#pointersTo I noticed some chains of objects too). So I ran the following 
script (partially borrowed from ImageCleaner) and this has got me down to a 
14mb image (instance sizes listed below, which is looking much healthier - and 
those MethodChangeRecords are gone too) !!! 

I suspect there are more monti/metacello things that are still lurking around.

I also wonder if I need some the character sorting strings too.

Tim

"CmdLine script to debug the initial minimal image"

| logger repo version |

logger := FileStream stderr.
logger cr; nextPutAll: 'Starting Minimal Cleanup Script...'.

logger cr; nextPutAll: '>Resetting Class Comments'.
Smalltalk allClasses do: [ :c | c classComment: '' stamp: '' ].

logger cr; nextPutAll: '>Removing MC holders'.
MCMethodDefinition allInstances do: [:each | each become: String new ].
MCClassDefinition allInstances do: [:each | each become: String new ].
MCVersionInfo allInstances do: [:each | each become: String new ].

logger cr; nextPutAll: '>ImageCleaner release routines'.
Smalltalk organization removeEmptyCategories.
   Smalltalk
  allClassesAndTraitsDo: [ :class |
 [ :each |
each
   removeEmptyCategories;
   sortCategories ]
  value: class organization;
  value: class class organization ].

(RPackageOrganizer default packages select: #isEmpty)
do: #unregister.

Smalltalk organization sortCategories.
Smalltalk garbageCollect.
Smalltalk cleanOutUndeclared.
Smalltalk fixObsoleteReferences.
Smalltalk cleanUp: true except: #() confirming: false.

logger cr; nextPutAll: '>GC'.
3 timesRepeat: [
Smalltalk garbageCollect.
Smalltalk cleanOutUndeclared.
Smalltalk fixObsoleteReferences].

logger cr; nextPutAll: 'Finished Script.'; cr; cr.

My top instances are now:

Class  code space # instances  inst 
space percent   inst average size
CompiledMethod  19159   30481   
2912968   21.60   95.57
Array3742   36495   
2852448   21.10   78.16
ByteString   2640   24018   
2517168   18.60  104.80
ByteSymbol   1698   20722
7592085.60   36.64
Association  1148   19786
6331524.70   32.00
IdentitySet   408   15452
4944643.70   32.00
MethodDictionary 33103520
3501922.60   99.49
Protocol 16798382
2682242.00   32.00
WeakArray1758 265
2323041.70  876.62
OrderedCollection65555043
2017201.50   40.00
ClassOrganization52813520
1689601.30   48.00
Metaclass71841748
1538241.10   88.00




> On 15 Aug 2017, at 23:00, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> Just a hunch: could you inspect ur MethodChangeRecord instances ?
> 
> Le mar. 15 août 2017 à 23:55, Tim Mackinnon <tim@testit.works> a écrit :
>> A weird observation - is it possible that source code is being stored in the 
>> image as strings somehow? When I do
>> 
>> ./pharo PharoLambda.image eval "ByteString allInstances inject: 
>> (OrderedCollection new) into: [:r :i | i size > 500 ifTrue: [r add: i]. r]"
>> 
>> I see to see reams of what looks like method source - but I thought source 
>> code was stored in the .sources file and the .changes file (and I haven’t 
>> been bundling those in my deployed image).
>> 
>> I’m trying to figure out how you find references to a string object, to 
>> chase down what is pointing to these strings as maybe there is a quick 4mb 
>> win by simply nil’ing out some obvious things. (This doesn’t of course help 
>> with a default minimal image - but maybe a few tricks for packaging and 
>> deploying something).
>> 
>> Tim
>> 
>>> On 15 Aug 2017, at 22:26, Tim Mackinnon <tim@testit.works> wrote:
>>> 
>>> Hi Guille/Ben - I got a quick moment to try the SpaceTally (aside: it seems 
>>> very convoluted to load a single package into the image, I was trying to 
>>> avoid having to create a baselineOf

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-16 Thread Tim Mackinnon
This is very encouraging, and also very instructive (your post on snapshot is 
also one in this area too. I have a queue of things to try for you on Friday).

I'll try adding your ideas to my script and see if it squeezes some more.

And then I guess we need to to decide which parts go into your minimum build 
steps and which are an external script (or possibly a HeadlessImageCleaner 
class we keep loaded so it's easier to maintain?)

Tim

Sent from my iPhone

> On 16 Aug 2017, at 08:52, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> This means it would be healthy to do a cleanup (at least the non aggressive 
> one, ChangeSets and MC stuff) on each of the images we produce and not just 
> the latest one.
> 
>> On Wed, Aug 16, 2017 at 8:35 AM, Tim Mackinnon <tim@testit.works> wrote:
>> Yes you were on to something there (and at the same time, by poking around 
>> with #pointersTo I noticed some chains of objects too). So I ran the 
>> following script (partially borrowed from ImageCleaner) and this has got me 
>> down to a 14mb image (instance sizes listed below, which is looking much 
>> healthier - and those MethodChangeRecords are gone too) !!! 
>> 
>> I suspect there are more monti/metacello things that are still lurking 
>> around.
>> 
>> I also wonder if I need some the character sorting strings too.
>> 
>> Tim
>> 
>> "CmdLine script to debug the initial minimal image"
>> 
>> | logger repo version |
>> 
>> logger := FileStream stderr.
>> logger cr; nextPutAll: 'Starting Minimal Cleanup Script...'.
>> 
>> logger cr; nextPutAll: '>Resetting Class Comments'.
>> Smalltalk allClasses do: [ :c | c classComment: '' stamp: '' ].
>> 
>> logger cr; nextPutAll: '>Removing MC holders'.
>> MCMethodDefinition allInstances do: [:each | each become: String new ].
>> MCClassDefinition allInstances do: [:each | each become: String new ].
>> MCVersionInfo allInstances do: [:each | each become: String new ].
>> 
>> logger cr; nextPutAll: '>ImageCleaner release routines'.
>> Smalltalk organization removeEmptyCategories.
>>Smalltalk
>>   allClassesAndTraitsDo: [ :class |
>>  [ :each |
>> each
>>removeEmptyCategories;
>>sortCategories ]
>>   value: class organization;
>>   value: class class organization ].
>> 
>> (RPackageOrganizer default packages select: #isEmpty)
>> do: #unregister.
>> 
>> Smalltalk organization sortCategories.
>> Smalltalk garbageCollect.
>> Smalltalk cleanOutUndeclared.
>> Smalltalk fixObsoleteReferences.
>> Smalltalk cleanUp: true except: #() confirming: false.
>> 
>> logger cr; nextPutAll: '>GC'.
>> 3 timesRepeat: [
>> Smalltalk garbageCollect.
>> Smalltalk cleanOutUndeclared.
>> Smalltalk fixObsoleteReferences].
>> 
>> logger cr; nextPutAll: 'Finished Script.'; cr; cr.
>> 
>> My top instances are now:
>> 
>> Class  code space # instances  inst 
>> space percent   inst average size
>> CompiledMethod  19159   30481   
>> 2912968   21.60   95.57
>> Array3742   36495   
>> 2852448   21.10   78.16
>> ByteString   2640   24018   
>> 2517168   18.60  104.80
>> ByteSymbol   1698   20722
>> 7592085.60   36.64
>> Association  1148   19786
>> 6331524.70   32.00
>> IdentitySet   408   15452
>> 4944643.70   32.00
>> MethodDictionary 33103520
>> 3501922.60   99.49
>> Protocol 16798382
>> 2682242.00   32.00
>> WeakArray1758 265
>> 2323041.70  876.62
>> OrderedCollection    6555    5043
>> 2017201.50   40.00
>> ClassOrganization52813520
>> 1689601.30   48.00
>> Metaclass71841748

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-16 Thread Tim Mackinnon
Hi, tracing through your changes - it looks like:

Smalltalk cleanUp: true except: #() confirming: false.
Takes care of all the non-unicode changes you proposed (and it seems like its a 
known cleanup protocol). I wonder if the Unicode change is worth it/risky as 
many web based services I might connect to with Zinc do support Unicode so 
maybe I should keep that one in. (I will for now - might verify how much of a 
difference it really makes)

I think my next port of call is cleanUp for Monticello/Metacello as I see a 
fair amount of that stuff floating around in my image (after I’ve used it to 
bootstrap my code).

Tim

> On 16 Aug 2017, at 02:32, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> Actually it happens first that monticello is "nicely" coupled with the 
> changeset system and logs all the source code loaded in change sets :D :/ ¬¬. 
> Also, the first two strings in terms of size are related to unicode tables 
> (we should put them in files instead of in the image and load them on 
> demand), and the two biggest arrays also to unicode. I just tried the 
> following in a clean bootstrapped "minimal" image (metacello):
> 
> "Careful, this will make that #isLetter, #isUppercase #isLowercase, 
> #toLowercase and #toUppercase only work on ascii"
> Character characterSet: nil.
> Unicode classPool at: #GeneralCategory put: nil.
> Unicode classPool at: #DecimalProperty put: nil.
> 
> UnicodeDefinition removeFromSystem.
> ChangeSet removeChangeSetsNamedSuchThat: [ :each | true ].
> ChangeSet resetCurrentToNewUnnamedChangeSet.
> MCDefinition clearInstances.
> Undeclared removeUnreferencedKeys.
> Smalltalk garbageCollect.
> 
> like this:
> 
> ./vm/pharo Pharo7.0-metacello-32bit-fa236b7.image eval --save "Character 
> characterSet: nil. Unicode classPool at: #GeneralCategory put: nil. Unicode 
> classPool at: #DecimalProperty put: nil. UnicodeDefinitions removeFromSystem. 
> ChangeSet removeChangeSetsNamedSuchThat: [ :each | true ]. ChangeSet 
> resetCurrentToNewUnnamedChangeSet. MCDefinition clearInstances. Undeclared 
> removeUnreferencedKeys. Smalltalk garbageCollect."
> 
> and my image went down from 11MB to 6.6MB (7.0 MB if I don't change back to 
> ascii with the first three lines)
> 
> Then I tried a tally:
> 
> ./vm/pharo Pharo7.0-metacello-32bit-fa236b7.image save spacetally
> 
> ./vm/pharo spacetally.image eval --save "repo := MCFileTreeRepository new 
> directory: '../src' asFileReference. version := repo 
> loadVersionFromFileNamed: 'Tool-Profilers.package'. version load."
> 
> re-clean since i loaded some packages
> 
> ./vm/pharo spacetally.image eval --save "ChangeSet 
> removeChangeSetsNamedSuchThat: [ :each | true ]. ChangeSet 
> resetCurrentToNewUnnamedChangeSet. MCDefinition clearInstances. Undeclared 
> removeUnreferencedKeys. Smalltalk garbageCollect."
> 
> This image is now 6.6MB (7.1MB with the unicode large arrays), 4.1% of 
> strings (274k) what seems reasonable. Remaining big strings are Pharo's 
> licence, the buffer of the changes file and then some class comments 
> (shouldn't they be fetched from disk as any other method source code?).
> 
> Making again a tally shows that ~30% of the space is taken by Arrays and 
> 21.9% by compiled methods. But, BUT! :) I have ~30k arrays and lots of 
> collections also:
> 
> "MethodDictionary"  2872 +
> "IdentitySet" 12781 + 
> "OrderedCollection" 4398 + 
> "Set" 2959 +
> "Dictionary"  1997 +
> "IdentityDictionary"   454
> -------
> 25461
> 
> So there are ~5k arrays that are used outside collections.
> 
> Worth exploring a bit more I think.
> 
> On Wed, Aug 16, 2017 at 1:23 AM, Guillermo Polito <guillermopol...@gmail.com 
> <mailto:guillermopol...@gmail.com>> wrote:
> 
> 
> On Tue, Aug 15, 2017 at 11:26 PM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> Hi Guille/Ben - I got a quick moment to try the SpaceTally (aside: it seems 
> very convoluted to load a single package into the image, I was trying to 
> avoid having to create a baselineOf for something so simple - I ended up with:
> 
> I know, I also believe we have to simplify this. In any case, baselines are 
> healthy as they allow to also express dependencies. Otherwise you'll end up 
> loading dependencies by hand. We'll fix this soon I hope.
>  
> 
> repo := MCFileTreeRepository new directory: './bootstrap' asFileReference.
> version := repo loadVersionFromFileNamed: 'Tool-Profilers.p

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-16 Thread Tim Mackinnon
Yes - that is a fair warning - I guess I’m looking for ways to reset 
Monticello/metocello artefacts and caching (maybe I should ask Dale for some 
tips - as I find the Monticello/metacello packages quite big and difficult to 
follow, and there are no class comments to give you any pointers). I’m going on 
the assumption that regular code/classes shouldn’t need any of this MC 
metadata/objects?

Once my application is loaded and instantiated and saved in the image, I don’t 
need update to update it in the image (I would run another CI build and 
generate a new image - which is a different pattern from more mainstream 
projects but as execution time and memory size are the key here, as Lambda is 
about short lived executions, so you would take the hit at build time).

Tim

> On 16 Aug 2017, at 09:11, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> Be careful because some of those aggressive cleanups may turn some parts of 
> your image unstable. For example:
> 
> This is dangerous:
> MCMethodDefinition allInstances do: [:each | each become: String new ].
> MCClassDefinition allInstances do: [:each | each become: String new ].
> MCVersionInfo allInstances do: [:each | each become: String new ].
> 
> And this may break some code if you're using non-ascii characters:
> Unicode classPool at: #GeneralCategory put: nil.
> Unicode classPool at: #DecimalProperty put: nil.
> 
> 
> 
> On Wed, Aug 16, 2017 at 10:07 AM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> This is very encouraging, and also very instructive (your post on snapshot is 
> also one in this area too. I have a queue of things to try for you on Friday).
> 
> I'll try adding your ideas to my script and see if it squeezes some more.
> 
> And then I guess we need to to decide which parts go into your minimum build 
> steps and which are an external script (or possibly a HeadlessImageCleaner 
> class we keep loaded so it's easier to maintain?)
> 
> Tim
> 
> Sent from my iPhone
> 
> On 16 Aug 2017, at 08:52, Guillermo Polito <guillermopol...@gmail.com 
> <mailto:guillermopol...@gmail.com>> wrote:
> 
>> This means it would be healthy to do a cleanup (at least the non aggressive 
>> one, ChangeSets and MC stuff) on each of the images we produce and not just 
>> the latest one.
>> 
>> On Wed, Aug 16, 2017 at 8:35 AM, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> Yes you were on to something there (and at the same time, by poking around 
>> with #pointersTo I noticed some chains of objects too). So I ran the 
>> following script (partially borrowed from ImageCleaner) and this has got me 
>> down to a 14mb image (instance sizes listed below, which is looking much 
>> healthier - and those MethodChangeRecords are gone too) !!! 
>> 
>> I suspect there are more monti/metacello things that are still lurking 
>> around.
>> 
>> I also wonder if I need some the character sorting strings too.
>> 
>> Tim
>> 
>> "CmdLine script to debug the initial minimal image"
>> 
>> | logger repo version |
>> 
>> logger := FileStream stderr.
>> logger cr; nextPutAll: 'Starting Minimal Cleanup Script...'.
>> 
>> logger cr; nextPutAll: '>Resetting Class Comments'.
>> Smalltalk allClasses do: [ :c | c classComment: '' stamp: '' ].
>> 
>> logger cr; nextPutAll: '>Removing MC holders'.
>> MCMethodDefinition allInstances do: [:each | each become: String new ].
>> MCClassDefinition allInstances do: [:each | each become: String new ].
>> MCVersionInfo allInstances do: [:each | each become: String new ].
>> 
>> logger cr; nextPutAll: '>ImageCleaner release routines'.
>> Smalltalk organization removeEmptyCategories.
>>Smalltalk
>>   allClassesAndTraitsDo: [ :class |
>>  [ :each |
>> each
>>removeEmptyCategories;
>>sortCategories ]
>>   value: class organization;
>>   value: class class organization ].
>> 
>> (RPackageOrganizer default packages select: #isEmpty)
>> do: #unregister.
>> 
>> Smalltalk organization sortCategories.
>> Smalltalk garbageCollect.
>> Smalltalk cleanOutUndeclared.
>> Smalltalk fixObsoleteReferences.
>> Smalltalk cleanUp: true except: #() confirming: false.
>> 
>> logger cr; nextPutAll: '>GC'.
>> 3 timesRepeat: [
>> Smalltalk garbageCollect.
>> Smalltalk cleanOutUndeclared.
>> Smalltalk fixObsoleteReferences].
>> 
>> logger cr; nextPutAll: 'Finished Script.'; cr

Re: [Pharo-users] Pharo 6.0 and 6.1 64 bit freeze on MacMini

2017-08-16 Thread Tim Mackinnon
Actually this reminds me of a similar problem I’ve seen on my MacBook Pro 
(retina) - if I stretch the desktop to try and use the full space of the screen 
(not maximising it) I have on occasion frozen  - however its not actually 
frozen it seems that drawing on screen has stopped, and if I resize the window 
a bit smaller drawing restarts and is fine. It seems to be when I try and drag 
the pharo desktop down to cover the last 5 or so pixels at the bottom. 

Might be something totally different, but I mention it in case it rings any 
bells.

Tim

> On 16 Aug 2017, at 12:13, TedVanGaalen  wrote:
> 
> here's a screenshot. notice the white band in the content area after
> maximizing the window. It freezed, can't move the inner windows anymore and
> ctrl '.' user interrupt doesn't work and have to force quit Pharo. No idea
> what happens but Pharo 5.0 runs as stable as ever.
> Kind Regards
> TedvG
>   
> 
> 
> 
> --
> View this message in context: 
> http://forum.world.st/Pharo-6-0-and-6-1-64-bit-freeze-on-MacMini-tp4957969p4961631.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
> 




[Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-10 Thread Tim Mackinnon
I just wanted to thank everyone for their help in getting my pet project 
further along, so that now I can announce that PharoLambda is now working with 
the V7 minimal image and also supports post mortem debugging by saving a zipped 
fuel context onto S3.

This latter item is particularly satisfying as at a recent serverless 
conference (JeffConf) there was a panel where poor development tools on 
serverless platforms was highlighted as a real problem.

In our community we’ve had these kinds of tools at our fingertips for ages - 
but I don’t think the wider development community has really noticed. Debugging 
something short lived like a Lambda execution is quite startling, as the 
current answer is “add more logging”, and we all know that sucks. To this end, 
I’ve created a little screencast showing this in action - and it was pretty 
cool because it was a real example I encountered when I got everything working 
and was trying my test application out.

I’ve also put a bit of work into tuning the excellent GitLab CI tools, so that 
I can cache many of the artefacts used between different build runs (this might 
also be of interest to others using CI systems).

The Gitlab project is on: https://gitlab.com/macta/PharoLambda 
<https://gitlab.com/macta/PharoLambda>
And the screencast: https://www.youtube.com/watch?v=bNNCT1hLA3E 
<https://www.youtube.com/watch?v=bNNCT1hLA3E>

Tim


> On 15 Jul 2017, at 00:39, Tim Mackinnon <tim@testit.works> wrote:
> 
> Hi - I’ve been playing around with getting Pharo to run well on AWS Lambda. 
> It’s early days, but I though it might be interesting to share what I’ve 
> learned so far.
> 
> Usage examples and code at https://gitlab.com/macta/PharoLambda 
> <https://gitlab.com/macta/PharoLambda>
> 
> With help from many of the folks here, I’ve been able to get a simple example 
> to run in 500ms-1200ms with a minimal Pharo 6 image. You can easily try it 
> out yourself. This seems slightly better than what the GoLang folks have been 
> able to do.
> 
> Tim



Re: [Pharo-users] Thread-safe initialization of class state (was Re: Threads safety in Pharo)

2017-08-11 Thread Tim Mackinnon
Interesting, your example was subtle enough that I had to read it a few times 
to understand the issue. (I was caught up on the ifNil and not the contents).

Actually, thinking about it - isn't the real issue the #ifNil - you want an 
atomic version.

It strikes me you could wrap the whole concept into something like an 
AtomicLazyVariable? E.g.

initialise
   fileTypes := AtomicLazyVariable using: [
   Dictionary new
   at: 'txt' put: 'Text File';
   at: 'html' put: 'Web Page';
   yourself ].

Then have something

fileTypes 
 ^fileTypes value

Where you have a critical section in #value?

Tim

Sent from my iPhone

> On 11 Aug 2017, at 07:53, monty  wrote:
> 
> Here's a hypothetical broken class method that does lazy initialization of a 
> class inst var:
> 
> fileTypes
>fileTypes ifNil: [
>fileTypes := Dictionary new.
>fileTypes
>at: 'txt' put: 'Text File';
>at: 'html' put: 'Web Page';
>at: 'pdf' put: 'Portable Document Format File';
>at: 'doc' put: 'Microsoft Word Document'].
>^ fileTypes.
> 
> Because the assignment is done first and the initialization is done after 
> with a cascade of interruptable sends of #at:put:, there's a window after the 
> assignment where 'fileTypes' is not nil but also not fully initialized--a 
> race condition.
> 
> The fix is simple. Do the initialization before the atomic assignment takes 
> place, so the var is only ever bound to nil or a fully initialized object:
> 
> fileTypes
>fileTypes ifNil: [
>fileTypes :=
>Dictionary new
>at: 'txt' put: 'Text File';
>at: 'html' put: 'Web Page';
>at: 'pdf' put: 'Portable Document Format File';
>at: 'doc' put: 'Microsoft Word Document';
>yourself].
>^ fileTypes.
> 
> The fixed code is still vulnerable to duplicate initialization, because the 
> initialization sequence is interruptable and 'fileTypes' is nil during it, 
> but as long as the initialization is cheap enough, has no side effects that 
> restrict how often it can be done, and it's enough that the initialized 
> objects are equal (but not identical), that's OK.
> 
> If it's too complex for a single statement, you can use a temp vars or put it 
> in a separate factory method:
> 
> fileTypes
>fileTypes ifNil: [
>fileTypes := self newFileTypes].
>^ fileTypes.
> 
> Similar precautions (given how easy) might as well be taken with explicit 
> initialization of class state too. Of course if the object is mutated later 
> (in other methods), then Mutexes or other constructs are needed to guard 
> access. But for immutable class state, ensuring initialization is done before 
> assignment should be enough.
> 
>> Sent: Tuesday, August 01, 2017 at 7:36 AM
>> From: "Stephane Ducasse" 
>> To: "Any question about pharo is welcome" 
>> Subject: Re: [Pharo-users] Threads safety in Pharo
>> 
>> I would love to have an analysis of assumptions made in some code.
>> Because my impression is that the concurrent code is sometimes defined
>> knowing the underlying logic of scheduler and this is not good.
>> As I said to abdel privately in french it would be great to start from
>> my french squeak book (Yes I wrote one long time ago) chapter on
>> concurrent programming and turn it into a pharo chapter.
>> 
>> Stef
>> 
>>> On Tue, Aug 1, 2017 at 1:31 PM, Ben Coman  wrote:
>>> Not sure I'll have what you're looking for, but to start, do you mean
>>> Pharo's green threads or vm native threads?
>>> cheers -ben
>>> 
>>> On Mon, Jul 31, 2017 at 7:38 AM, Alidra Abdelghani via Pharo-users
>>>  wrote:
 
 
 
 -- Forwarded message --
 From: Alidra Abdelghani 
 To: pharo-users@lists.pharo.org
 Cc: "Stéphane Ducasse" , farid arfi
 
 Bcc:
 Date: Mon, 31 Jul 2017 01:38:58 +0200
 Subject: Threads safety in Pharo
 Hi,
 
 Somebody once evoked the problem of threads safety in Pharo. With a friend
 of mine who is expert in formal methods and process scheduling, we would
 like to have a look on it.
 Does anyone knows a good document describing the problem of Pharo with
 threads safety or at least any document that we can start with?
 
 Thanks in advance,
 Abdelghani
 
 
 
>>> 
>> 
> 


Re: [Pharo-users] FLSerializer in Pharo 6.1

2017-08-11 Thread Tim Mackinnon
I'm using flserialiser in Pharo Lambda on 64 bit, and it's working writing a 
context to an s3 bucket which is pretty hardcore, so I'd say it is working.

So there must be some difference you have found

Tim

Sent from my iPhone

> On 11 Aug 2017, at 20:56, Johannes Brauer  wrote:
> 
> Hi Stephane,
> 
> I take a fresh Pharo 6.1 image, put it on my desktop (macOs 10.12.6), and 
> then I take the example from the FLSerializer class comment:
> 
> | sourceArray loadedArray |
>sourceArray := Array
>with: 'a string'
>with: Transcript
>with: [ Transcript show: 'a string' ].
>^ FLSerializer serialize: sourceArray toFileNamed: ‚example.FL'
> 
> Evaluating this results in the Exception.
> 
> Johannes
>> Am 11.08.2017 um 19:18 schrieb Stephane Ducasse :
>> 
>> Hi johannes
>> 
>> do you have an example so that we can try here?
>> 
>> Tx
>> 
>>> On Fri, Aug 11, 2017 at 4:06 PM, Johannes Brauer  
>>> wrote:
>>> Hi everyone,
>>> 
>>> the FLSerializer in Pharo 6.1 doesn’t work. I tried the example from the 
>>> class comment and I always get
>>> 
>>> FileException: cannot open file: example.FL.
>>> 
>>> Is that a known problem?
>>> 
>>> Johannes
>> 
> 




Re: [Pharo-users] Thread-safe initialization of class state (was Re: Threads safety in Pharo)

2017-08-11 Thread Tim Mackinnon
I think that thread safety comes with a penalty - so the overarching question 
is are we trying to create thread safe browsers (or does a thread safe penalty 
even impact browsing as maybe it's negligible?)

Monty - maybe you could measure the impact if you are interested in this? If 
it's not much and we just need to encapsulate it with some mechanism 
(potentially having thread safety critics we can enable) then it's possibly 
something Calypso can embrace.

This said, multi user editing is not something that has really taken off. Jason 
at VW did lots with Wolfpack, and it wasn't an idea that gained lots of 
traction a few years ago (sadly).

It's tricky as we have to spend our engineering resources wisely.

Tim

Sent from my iPhone

> On 11 Aug 2017, at 19:41, Gabriel Cotelli  wrote:
> 
> Suerly we can add a Critics Rule trying to detect the invalid pattern.
> 
>> On Fri, Aug 11, 2017 at 10:39 AM, monty  wrote:
>> > Sent: Friday, August 11, 2017 at 6:36 AM
>> > From: "Denis Kudriashov" 
>> > To: "Any question about pharo is welcome" 
>> > Subject: Re: [Pharo-users] Thread-safe initialization of class state (was 
>> > Re: Threads safety in Pharo)
>> >
>> > What package you explore? I not find fileTypes method in Pharo 7.
>> 
>> Like I said, it's a hypothetical example. But I'm sure you could find 
>> similar examples of unsafe class state initialization in the image and in 
>> popular libraries.
>> 
>> > 2017-08-11 8:53 GMT+02:00 monty 
>> > :Here's a 
>> > hypothetical broken class method that does lazy initialization of a class 
>> > inst var:
>> >
>> > fileTypes
>> > fileTypes ifNil: [
>> > fileTypes := Dictionary new.
>> > fileTypes
>> > at: 'txt' put: 'Text File';
>> > at: 'html' put: 'Web Page';
>> > at: 'pdf' put: 'Portable Document Format File';
>> > at: 'doc' put: 'Microsoft Word Document'].
>> > ^ fileTypes.
>> >
>> > Because the assignment is done first and the initialization is done after 
>> > with a cascade of interruptable sends of #at:put:, there's a window after 
>> > the assignment where 'fileTypes' is not nil but also not fully 
>> > initialized--a race condition.
>> >
>> > The fix is simple. Do the initialization before the atomic assignment 
>> > takes place, so the var is only ever bound to nil or a fully initialized 
>> > object:
>> >
>> > fileTypes
>> > fileTypes ifNil: [
>> > fileTypes :=
>> > Dictionary new
>> > at: 'txt' put: 'Text File';
>> > at: 'html' put: 'Web Page';
>> > at: 'pdf' put: 'Portable Document Format 
>> > File';
>> > at: 'doc' put: 'Microsoft Word Document';
>> > yourself].
>> > ^ fileTypes.
>> >
>> > The fixed code is still vulnerable to duplicate initialization, because 
>> > the initialization sequence is interruptable and 'fileTypes' is nil during 
>> > it, but as long as the initialization is cheap enough, has no side effects 
>> > that restrict how often it can be done, and it's enough that the 
>> > initialized objects are equal (but not identical), that's OK.
>> >
>> > If it's too complex for a single statement, you can use a temp vars or put 
>> > it in a separate factory method:
>> >
>> > fileTypes
>> > fileTypes ifNil: [
>> > fileTypes := self newFileTypes].
>> > ^ fileTypes.
>> >
>> > Similar precautions (given how easy) might as well be taken with explicit 
>> > initialization of class state too. Of course if the object is mutated 
>> > later (in other methods), then Mutexes or other constructs are needed to 
>> > guard access. But for immutable class state, ensuring initialization is 
>> > done before assignment should be enough.
>> >
>> > > Sent: Tuesday, August 01, 2017 at 7:36 AM
>> > > From: "Stephane Ducasse" 
>> > > 
>> > > To: "Any question about pharo is welcome" 
>> > > 
>> > > Subject: Re: [Pharo-users] Threads safety in Pharo
>> > >
>> > > I would love to have an analysis of assumptions made in some code.
>> > > Because my impression is that the concurrent code is sometimes defined
>> > > knowing the underlying logic of scheduler and this is not good.
>> > > As I said to abdel privately in french it would be great to start from
>> > > my french squeak book (Yes I wrote one long time ago) chapter on
>> > > concurrent programming and turn it into a pharo chapter.
>> > >
>> > > Stef
>> > >
>> > > On Tue, Aug 1, 2017 at 1:31 PM, Ben Coman 
>> > > 

Re: [Pharo-users] including Pillar in Pharo image by default

2017-08-11 Thread Tim Mackinnon
If we are considering this, might we take the hard decision to actually support 
proper  markdown (or even kramdown if we need more control).

Pillar is a weird variant that isn't like everyone else - so i always have to 
think about how to do  formatting.

I know it's not nice, and lots of things are done in pillar - but could we 
convert them to be like everyone else? The readme.md that Peter is talking 
about is gfm markdown.'

Tim

Sent from my iPhone

> On 11 Aug 2017, at 20:24, Peter Uhnak  wrote:
> 
>> On Fri, Aug 11, 2017 at 09:14:01PM +0200, Esteban Lorenzano wrote:
>> 
>>> On 11 Aug 2017, at 21:10, Esteban Lorenzano  wrote:
>>> 
>>> hi, 
>>> 
 On 11 Aug 2017, at 18:57, Cyril Ferlicot D. > wrote:
 
 Another step would be to get a minimal parser not relying on
 PetitParser. 
>>> 
>>> Let’s think differently: why not to include a tiny PetitParser? 
>>> Then we can think on:
>>> 
>>> - pillar sintax (better than just a restricted version)
>> *syntax*… sorry for spanish intromission ;)
>> 
>> btw… not just outside the image (as readme).
> 
> Yes, one of the points I want is to have the readme available in Pharo's Help 
> Browser with rich content.
> 
> Peter
> 




Re: [Pharo-users] including Pillar in Pharo image by default

2017-08-11 Thread Tim Mackinnon
Of course, I/we recognise and appreciate all the work that's gone into docs in 
pillar - but I think it should be reasonably straightforward to write a 
converter as it is pretty closely related from what I have seen.

So I don't make the suggestion flippantly, and would want to help write a 
converter and get us to a common ground where we can differentiate on the 
aspects where we can excel.

Tim 

Sent from my iPhone

> On 11 Aug 2017, at 23:21, Peter Uhnak  wrote:
> 
> A long time issue with Markdown was that there was no standardization (and 
> when I used Pillar's MD export ~2 years ago it didn't work well).
> 
> However CommonMark ( http://spec.commonmark.org/0.28/ ) has become the 
> de-facto standard, so it would make sense to support it bidirectionally with 
> Pillar.
> 
>> The readme.md that Peter is talking about is gfm markdown
> 
> Well, technically it is just a CommonMark, as I am not using any github 
> extensions.
> (Github uses CommonMarks and adds just couple small extensions.)
> 
> Peter
> 




Re: [Pharo-users] including Pillar in Pharo image by default

2017-08-14 Thread Tim Mackinnon
Hi Stef - I think your’s is a fair requirement (in fact I hit something similar 
when doing a static website using a JS markdown framework - and this is why I 
mentioned Kramdown which adds a few extras to regular markdown - but it feels 
like it goes a bit too far).

My next item on my learning todo list was to try and replace that JS generator 
with something from Smalltalk - so I think we can possibly come up with 
something that ticks all the right boxes (I’d like to try anyway).

I’ll keep working away on it and compare notes with you. I think with Pillar, 
it was more that things like headers, bold and italics are similar concepts but 
just use different characters - so I keep typing the wrong thing and getting 
frustrated particularly when we embrace Git and readme.md is in markdown.
 

Tim

> On 13 Aug 2017, at 20:08, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
> 
> Hi tim
> 
> I personally do not care much about the syntax but I care about what I
> can do with it
> (ref, cite, ... )
> I cannot write books in markdown because reference to figures!!
> were missing.
> 
> And of course a parser because markdown is not really nice to parse
> and I will not write a parser because I have something else to do. I
> want to make pillar smaller, simpler, nicer.
> 
> Now if someone come up with a parser that parse for REAL a markdown
> that can be extended with decent behavior (figure reference, section
> reference, cite) and can be extended because there are many things
> that can be nice to have (for example I want to be able to write the
> example below) and emit a PillarModel (AST) we can talk to have
> another syntax for Pillar but not before.
> 
> [[[test
> 2+3
>>>> 5
> ]]]
> 
> and being able to verify that the doc is in sync.
> 
> 
> Stef
> 
> 
> 
> On Sat, Aug 12, 2017 at 12:37 AM, Tim Mackinnon <tim@testit.works> wrote:
>> Of course, I/we recognise and appreciate all the work that's gone into docs 
>> in pillar - but I think it should be reasonably straightforward to write a 
>> converter as it is pretty closely related from what I have seen.
>> 
>> So I don't make the suggestion flippantly, and would want to help write a 
>> converter and get us to a common ground where we can differentiate on the 
>> aspects where we can excel.
>> 
>> Tim
>> 
>> Sent from my iPhone
>> 
>>> On 11 Aug 2017, at 23:21, Peter Uhnak <i.uh...@gmail.com> wrote:
>>> 
>>> A long time issue with Markdown was that there was no standardization (and 
>>> when I used Pillar's MD export ~2 years ago it didn't work well).
>>> 
>>> However CommonMark ( http://spec.commonmark.org/0.28/ ) has become the 
>>> de-facto standard, so it would make sense to support it bidirectionally 
>>> with Pillar.
>>> 
>>>> The readme.md that Peter is talking about is gfm markdown
>>> 
>>> Well, technically it is just a CommonMark, as I am not using any github 
>>> extensions.
>>> (Github uses CommonMarks and adds just couple small extensions.)
>>> 
>>> Peter
>>> 
>> 
>> 
> 




Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-14 Thread Tim Mackinnon
Hey guys, thanks for your enthusiasm around this - and I cannot stress enough 
how this was only possible because of the work that has gone into making Pharo 
(in particular the 64bit image, as well as having a minimal image, and some 
great blog posts on serialising contexts) as well as the patience from everyone 
in answering questions and helping me get it all working.

I’m still quite keen to get my execution time back down under 800ms and I’d 
like to actually get back to writing a few skills to automate a few things 
around my house.

To Answer Denis’ question - 

My final footprint is 30.4mb - thats composed of a 22mb image (with a simple 
example that pulls in Fuel, ZTimestamp and the S3 Library which depends on 
XMLParser) and then the VM (from which I removed obvious dll’s).

In my original experiments with a 6.0 minimal image - I did manage to get to a 
13.4mb image (which started out as 12mb original size, and then loaded in STON 
and had only a simple clock example). I think the sweet spot is around 20mb 
total footprint as that seems to get me into the 450ms-900ms range.

The 7.0 min image now starts out at 15mb and then I’m not sure why loading 
Fuel, S3 and XMLParser takes 7mb (it seems big to me - but I’ve not dug into 
that). I’ve also found (and this on the back of unserialising the context in my 
example) that the way we build images has 15+ saved stack sessions that have 
saved on top of each other from the way we build up the images. I don’t yet 
know the implications of size/speed of these - but we need a better way of 
folding executions when we snapshot headless images. I’m also not clear if 
there are any other startup tasks that take precious time (this also has 
implications for our fat development images as they take much longer to appear 
than they really should).

I’ll be exploring some of these size/speed tradeoff’s in follow on messages.

But once again, a big thanks - I’ve not enjoyed programming like this for ages.

Tim

> On 12 Aug 2017, at 16:26, Ben Coman <b...@openinworld.com> wrote:
> 
> hi Tim,  
> 
> That is.  AWESOME!
> 
> Very nice delivery - it flowed well with great narration. 
> 
> I loved @2:17 "this is the interesting piece, because PharoLambda has 
> serialized the execution context of its application and saved it into [my S3 
> bucket] ... [then on the local machine] rematerializes a debugger [on that 
> context]."
> 
> There is a clarity in your video presentation that really may intrigue 
> outsiders. As a community we should push this on the usual hacker forums - 
> ycombinator could be a good starting point (but I'm locked out of my account 
> there).  
> An enticing title could be...
> "Debugging Lambdas by re-materializing saved execution contexts on your local 
> machine."
> 
> cheers -ben
> 
> On Fri, Aug 11, 2017 at 3:37 PM, Denis Kudriashov <dionisi...@gmail.com 
> <mailto:dionisi...@gmail.com>> wrote:
> This is cool Tim.
> 
> So what image size you deployed at the end?
> 
> 2017-08-10 15:47 GMT+02:00 Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>>:
> I just wanted to thank everyone for their help in getting my pet project 
> further along, so that now I can announce that PharoLambda is now working 
> with the V7 minimal image and also supports post mortem debugging by saving a 
> zipped fuel context onto S3.
> 
> This latter item is particularly satisfying as at a recent serverless 
> conference (JeffConf) there was a panel where poor development tools on 
> serverless platforms was highlighted as a real problem.
> 
> In our community we’ve had these kinds of tools at our fingertips for ages - 
> but I don’t think the wider development community has really noticed. 
> Debugging something short lived like a Lambda execution is quite startling, 
> as the current answer is “add more logging”, and we all know that sucks. To 
> this end, I’ve created a little screencast showing this in action - and it 
> was pretty cool because it was a real example I encountered when I got 
> everything working and was trying my test application out.
> 
> I’ve also put a bit of work into tuning the excellent GitLab CI tools, so 
> that I can cache many of the artefacts used between different build runs 
> (this might also be of interest to others using CI systems).
> 
> The Gitlab project is on: https://gitlab.com/macta/PharoLambda 
> <https://gitlab.com/macta/PharoLambda>
> And the screencast: https://www.youtube.com/watch?v=bNNCT1hLA3E 
> <https://www.youtube.com/watch?v=bNNCT1hLA3E>
> 
> Tim
> 
> 
>> On 15 Jul 2017, at 00:39, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> 
>> Hi - I’ve been playing around with getting Pharo to run well on 

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-14 Thread Tim Mackinnon
Hi Guille - just running SpaceTally on my dev image to get a feel for it. It 
turns out that in the minimal images you’ve been creating, its not loaded 
(makes sense). I’m wondering if there is an easy way to import it in (I guess 
that package should be in the Pharo git tree I cloned to get Fuel loaded right? 
Or is there a separate standalone source?).

Thanks for all the support, and your email about why the contexts stack up is 
very well received (I will comment over there).

By the way - it looks like Martin Fowler picked up on this announcement - so 
maybe we might get some interest from his mass of followers.

Tim

> On 14 Aug 2017, at 10:49, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> Hi Tim,
> 
> On Mon, Aug 14, 2017 at 11:41 AM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> Hey guys, thanks for your enthusiasm around this - and I cannot stress enough 
> how this was only possible because of the work that has gone into making 
> Pharo (in particular the 64bit image, as well as having a minimal image, and 
> some great blog posts on serialising contexts) as well as the patience from 
> everyone in answering questions and helping me get it all working.
> 
> I’m still quite keen to get my execution time back down under 800ms and I’d 
> like to actually get back to writing a few skills to automate a few things 
> around my house.
> 
> To Answer Denis’ question - 
> 
> My final footprint is 30.4mb - thats composed of a 22mb image (with a simple 
> example that pulls in Fuel, ZTimestamp and the S3 Library which depends on 
> XMLParser) and then the VM (from which I removed obvious dll’s).
> 
> In my original experiments with a 6.0 minimal image - I did manage to get to 
> a 13.4mb image (which started out as 12mb original size, and then loaded in 
> STON and had only a simple clock example). I think the sweet spot is around 
> 20mb total footprint as that seems to get me into the 450ms-900ms range.
> 
> The 7.0 min image now starts out at 15mb and then I’m not sure why loading 
> Fuel, S3 and XMLParser takes 7mb (it seems big to me - but I’ve not dug into 
> that).
> 
> You can do further space analysis using the following expression
> 
> SpaceTally  new printSpaceAnalysis
> 
> You can do that in an eval and check what's taking space. With measures we 
> can iterate and improve :).
>  
> I’ve also found (and this on the back of unserialising the context in my 
> example) that the way we build images has 15+ saved stack sessions that have 
> saved on top of each other from the way we build up the images. I don’t yet 
> know the implications of size/speed of these - but we need a better way of 
> folding executions when we snapshot headless images. I’m also not clear if 
> there are any other startup tasks that take precious time (this also has 
> implications for our fat development images as they take much longer to 
> appear than they really should).
> 
> I'm working on this as I'm writing this mail ;)
> 
> https://pharo.fogbugz.com/f/cases/20309 
> <https://pharo.fogbugz.com/f/cases/20309>
> https://github.com/pharo-project/pharo/pull/196 
> <https://github.com/pharo-project/pharo/pull/196> 
> 
> I'll write down the implications further in a different thread.
> 
> 
> I’ll be exploring some of these size/speed tradeoff’s in follow on messages.
> 
> But once again, a big thanks - I’ve not enjoyed programming like this for 
> ages.
> 
> Tim
> 
>> On 12 Aug 2017, at 16:26, Ben Coman <b...@openinworld.com 
>> <mailto:b...@openinworld.com>> wrote:
>> 
>> hi Tim,  
>> 
>> That is.  AWESOME!
>> 
>> Very nice delivery - it flowed well with great narration. 
>> 
>> I loved @2:17 "this is the interesting piece, because PharoLambda has 
>> serialized the execution context of its application and saved it into [my S3 
>> bucket] ... [then on the local machine] rematerializes a debugger [on that 
>> context]."
>> 
>> There is a clarity in your video presentation that really may intrigue 
>> outsiders. As a community we should push this on the usual hacker forums - 
>> ycombinator could be a good starting point (but I'm locked out of my account 
>> there).  
>> An enticing title could be...
>> "Debugging Lambdas by re-materializing saved execution contexts on your 
>> local machine."
>> 
>> cheers -ben
>> 
>> On Fri, Aug 11, 2017 at 3:37 PM, Denis Kudriashov <dionisi...@gmail.com 
>> <mailto:dionisi...@gmail.com>> wrote:
>> This is cool Tim.
>> 
>> So what image size you deployed at the end?
>> 
>> 2017-08-10 15:47 GMT+02:00 T

Re: [Pharo-users] including Pillar in Pharo image by default

2017-08-14 Thread Tim Mackinnon
ch is far more different 
> from Python/Ruby/etc. than Pillar syntax is from Markdown. Then it should be 
> worth their effort to learn our tools.
> 
> Pillar markup is older than Markdown, etc. It's history begins in SmallWiki. 
> It isn't as if we jumped up and decided to create something new in order to 
> be different. Our markup and tools are older. They (and others) are the ones 
> that decided to do their own markup and tools. And it is okay that they did 
> so. Nothing wrong with doing so. Every community has the right to what they 
> believe is best for their community. Even if other communities disagree.
> 
> The ability to control and maintain is highly valuable. We can understand 
> what our requirements are for today. But we can not know what the 
> requirements are in the future. Nor can we know that Markdown or whomever 
> will have such requirements when they appear. It is easy to see in the 
> beginning with the Squeak Wiki syntax to the now Pillar syntax, changes that 
> have been made to accommodate new requirements as they became known. We need 
> to maintain that ability. Sure we would reserve the right to do so in any 
> language we adopt. But the then current standard bearer of said language 
> would determine whether what we do is acceptable and incorporate or whether 
> we are then in fact adding to their fragmentation. Pillar is ours. There is 
> not fragmentation when we evolve.
> 
> However, since we have made a decision to use GitHub and GitHub has made a 
> decision to use their own GFM Markdown. It might be nice to have a GFM 
> Markdown exporter from Pillar for GitHub projects. This way we can use our 
> own tools and markup language to accomplish whatever we want to accomplish. 
> Including generating a Readme.md for our GitHub projects.
> 
> Just wanted to toss out this simple opinion and facts about the situation.
> 
> Jimmie
> 
> 
> On 08/14/2017 04:10 AM, Tudor Girba wrote:
>> Hi Tim,
>> 
>> The main benefit of relying on Pillar is that we control its syntax and can 
>> easily extend it for our purposes. Also, there was quite a bit of 
>> engineering invested in it, and even though we still need to improve it, 
>> there exists a pipeline that allows people to quickly publish books.
>> 
>> The figure embedding problem is one example of the need to customize the 
>> syntax and behavior, but this extensibility will become even more important 
>> for supporting the idea of moving the documentation inside the image. For 
>> example, the ability to refer to a class, method or other artifacts will be 
>> quite relevant soon especially that the editor will be able to embed 
>> advanced elements inside the text.
>> 
>> Cheers,
>> Doru
>> 
>> 
>>> On Aug 14, 2017, at 10:46 AM, Tim Mackinnon <tim@testit.works> wrote:
>>> 
>>> Hi Stef - I think your’s is a fair requirement (in fact I hit something 
>>> similar when doing a static website using a JS markdown framework - and 
>>> this is why I mentioned Kramdown which adds a few extras to regular 
>>> markdown - but it feels like it goes a bit too far).
>>> 
>>> My next item on my learning todo list was to try and replace that JS 
>>> generator with something from Smalltalk - so I think we can possibly come 
>>> up with something that ticks all the right boxes (I’d like to try anyway).
>>> 
>>> I’ll keep working away on it and compare notes with you. I think with 
>>> Pillar, it was more that things like headers, bold and italics are similar 
>>> concepts but just use different characters - so I keep typing the wrong 
>>> thing and getting frustrated particularly when we embrace Git and readme.md 
>>> is in markdown.
>>> 
>>> 
>>> Tim
>>> 
>>>> On 13 Aug 2017, at 20:08, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
>>>> 
>>>> Hi tim
>>>> 
>>>> I personally do not care much about the syntax but I care about what I
>>>> can do with it
>>>> (ref, cite, ... )
>>>> I cannot write books in markdown because reference to figures!!
>>>> were missing.
>>>> 
>>>> And of course a parser because markdown is not really nice to parse
>>>> and I will not write a parser because I have something else to do. I
>>>> want to make pillar smaller, simpler, nicer.
>>>> 
>>>> Now if someone come up with a parser that parse for REAL a markdown
>>>> that can be extended with decent behavior (figure reference, section
>>>> reference, cite) and can be extend

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-17 Thread Tim Mackinnon
Just thought I would report back a bit more on this - 

The Unicode change doesn’t work in my case (possibly not for command line Pharo 
as well) as I get an error where OS filename’s need unicode support (actually I 
think this is where its trying to write to stdout, but I didn’t dig more into 
this):

Error: Instances of UndefinedObject are not indexable
UndefinedObject(Object)>>error:
UndefinedObject(Object)>>errorNotIndexable
UndefinedObject(Object)>>size
Unicode class>>isLetter:
Character>>isLetter
Path class>>isAbsoluteWindowsPath:
Path class>>from:delimiter:
MacStore(FileSystemStore)>>pathFromString:
FileSystem>>pathFromString:
ByteString(String)>>asPathWith:
FileSystem>>pathFromObject:
FileSystem>>referenceTo:
ByteString(String)>>asFileReference
FileStream class>>fullName:
FileStream class>>fileNamed:
SmalltalkImage>>openLog

I was able to improve on Guille’s warning about how to safely clear up 
monticello/metacello (and not use become: String new) with the following (I 
actually think Metacello should provide a #cleanUp method, so I raised a pr for 
consideration)
logger cr; nextPutAll: '>Removing Clearing MC Registry'.
MetacelloProjectRegistration resetRegistry.

I’m then able to be by image down from 22mb to 13.8 (which is pretty good).

As a further experiment I also noticed that there is a fair amount of space 
trapped in Protocols and ClassOrganisation - so I tried clearing those out (as 
they are lazily cached) with:
Smalltalk allClassesAndTraits do: [:c | c basicOrganization: nil ].
This seems to give me a further 1mb back (but I have’t tried performance tests 
on this, but my naive assumption is that in a running system that isn’t 
adding/manipulating code - that I don’t think Protocols are used?). So I’m now 
at 21mb.

Tim

> On 16 Aug 2017, at 10:53, Guillermo Polito <guillermopol...@gmail.com> wrote:
> 
> 
> 
> On Wed, Aug 16, 2017 at 11:46 AM, Tim Mackinnon <tim@testit.works 
> <mailto:tim@testit.works>> wrote:
> Hi, tracing through your changes - it looks like:
> 
> Smalltalk cleanUp: true except: #() confirming: false.
> Takes care of all the non-unicode changes you proposed (and it seems like its 
> a known cleanup protocol).
> 
> I based my script on #cleanupForRelease ^^. But I did not just blindly 
> execute it as is because I wanted to understand the implications of each line.
>  
> I wonder if the Unicode change is worth it/risky as many web based services I 
> might connect to with Zinc do support Unicode so maybe I should keep that one 
> in. (I will for now - might verify how much of a difference it really makes)
> 
> No, it should not break any encoding/decoding. The changes I proposed will 
> just nil out two things:
> 
>  - the uppercase/lowercase mapping unicode tables that says for each 
> codepoint if the codepoint is uppercase/lowercase and allows transformations 
> from/to uppercase/lowercase. This means that these may not work as expected:
> 
>  aChar asLowercase
>  aChar asUppercase
>  aChar toLowercase
>  aChar toUppercase
> 
>  - the unicode classification table that says if a character is letter or 
> digit, and so on. This means that these may not work as expected:
>  
> aChar isLetter
> aChar isDigit
> aChar isAlphaNumeric
>  
> I think my next port of call is cleanUp for Monticello/Metacello as I see a 
> fair amount of that stuff floating around in my image (after I’ve used it to 
> bootstrap my code).
> 
> Tim
> 
>> On 16 Aug 2017, at 02:32, Guillermo Polito <guillermopol...@gmail.com 
>> <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> Actually it happens first that monticello is "nicely" coupled with the 
>> changeset system and logs all the source code loaded in change sets :D :/ 
>> ¬¬. Also, the first two strings in terms of size are related to unicode 
>> tables (we should put them in files instead of in the image and load them on 
>> demand), and the two biggest arrays also to unicode. I just tried the 
>> following in a clean bootstrapped "minimal" image (metacello):
>> 
>> "Careful, this will make that #isLetter, #isUppercase #isLowercase, 
>> #toLowercase and #toUppercase only work on ascii"
>> Character characterSet: nil.
>> Unicode classPool at: #GeneralCategory put: nil.
>> Unicode classPool at: #DecimalProperty put: nil.
>> 
>> UnicodeDefinition removeFromSystem.
>> ChangeSet removeChangeSetsNamedSuchThat: [ :each | true ].
>> ChangeSet resetCurrentToNewUnnamedChangeSet.
>> MCDefinition clearInstances.
>> Undeclared removeUnreferencedKeys.
>> Smalltalk garbageC

Re: [Pharo-users] [ANN] PharoLambda 1.5 - Pharo running on AWS Lambda now with saved Debug sessions via S3

2017-08-17 Thread Tim Mackinnon
Actually it looks like that extra 1.5mb is not worth having as It seems that 
something does end up using the class organisation and so it must recompute 
when the image is launched.

Tim

> On 17 Aug 2017, at 13:07, Tim Mackinnon <tim@testit.works> wrote:
> 
> Just thought I would report back a bit more on this - 
> 
> The Unicode change doesn’t work in my case (possibly not for command line 
> Pharo as well) as I get an error where OS filename’s need unicode support 
> (actually I think this is where its trying to write to stdout, but I didn’t 
> dig more into this):
> 
> Error: Instances of UndefinedObject are not indexable
> UndefinedObject(Object)>>error:
> UndefinedObject(Object)>>errorNotIndexable
> UndefinedObject(Object)>>size
> Unicode class>>isLetter:
> Character>>isLetter
> Path class>>isAbsoluteWindowsPath:
> Path class>>from:delimiter:
> MacStore(FileSystemStore)>>pathFromString:
> FileSystem>>pathFromString:
> ByteString(String)>>asPathWith:
> FileSystem>>pathFromObject:
> FileSystem>>referenceTo:
> ByteString(String)>>asFileReference
> FileStream class>>fullName:
> FileStream class>>fileNamed:
> SmalltalkImage>>openLog
> 
> I was able to improve on Guille’s warning about how to safely clear up 
> monticello/metacello (and not use become: String new) with the following (I 
> actually think Metacello should provide a #cleanUp method, so I raised a pr 
> for consideration)
> logger cr; nextPutAll: '>Removing Clearing MC Registry'.
> MetacelloProjectRegistration resetRegistry.
> 
> I’m then able to be by image down from 22mb to 13.8 (which is pretty good).
> 
> As a further experiment I also noticed that there is a fair amount of space 
> trapped in Protocols and ClassOrganisation - so I tried clearing those out 
> (as they are lazily cached) with:
> Smalltalk allClassesAndTraits do: [:c | c basicOrganization: nil ].
> This seems to give me a further 1mb back (but I have’t tried performance 
> tests on this, but my naive assumption is that in a running system that isn’t 
> adding/manipulating code - that I don’t think Protocols are used?). So I’m 
> now at 21mb.
> 
> Tim
> 
>> On 16 Aug 2017, at 10:53, Guillermo Polito <guillermopol...@gmail.com 
>> <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> 
>> 
>> On Wed, Aug 16, 2017 at 11:46 AM, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> Hi, tracing through your changes - it looks like:
>> 
>> Smalltalk cleanUp: true except: #() confirming: false.
>> Takes care of all the non-unicode changes you proposed (and it seems like 
>> its a known cleanup protocol).
>> 
>> I based my script on #cleanupForRelease ^^. But I did not just blindly 
>> execute it as is because I wanted to understand the implications of each 
>> line.
>>  
>> I wonder if the Unicode change is worth it/risky as many web based services 
>> I might connect to with Zinc do support Unicode so maybe I should keep that 
>> one in. (I will for now - might verify how much of a difference it really 
>> makes)
>> 
>> No, it should not break any encoding/decoding. The changes I proposed will 
>> just nil out two things:
>> 
>>  - the uppercase/lowercase mapping unicode tables that says for each 
>> codepoint if the codepoint is uppercase/lowercase and allows transformations 
>> from/to uppercase/lowercase. This means that these may not work as expected:
>> 
>>  aChar asLowercase
>>  aChar asUppercase
>>  aChar toLowercase
>>  aChar toUppercase
>> 
>>  - the unicode classification table that says if a character is letter or 
>> digit, and so on. This means that these may not work as expected:
>>  
>> aChar isLetter
>> aChar isDigit
>> aChar isAlphaNumeric
>>  
>> I think my next port of call is cleanUp for Monticello/Metacello as I see a 
>> fair amount of that stuff floating around in my image (after I’ve used it to 
>> bootstrap my code).
>> 
>> Tim
>> 
>>> On 16 Aug 2017, at 02:32, Guillermo Polito <guillermopol...@gmail.com 
>>> <mailto:guillermopol...@gmail.com>> wrote:
>>> 
>>> Actually it happens first that monticello is "nicely" coupled with the 
>>> changeset system and logs all the source code loaded in change sets :D :/ 
>>> ¬¬. Also, the first two strings in terms of size are related to unicode 
>>> tables (we should put them in files instead of in the imag

  1   2   3   4   5   6   7   8   >