[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] Should I be reporting bugs in Pharo 3.0?

2014-07-09 Thread Tim Mackinnon
I've also noticed I keep getting re-prompted to enter my username when I save
source (this is a very fresh image) - I think it may be because I've just
saved comments and class methods so far - but its prompted me several times
now for my name?

Should I report steps for this?

Tim



--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767286.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] 
 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]" 
 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.

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

2014-07-15 Thread Tim Mackinnon
Thanks for the tip Ben - yes Cases xxx looks like what I wanted (and I just
tried it). Its a bit difficult to know this is available so I wanted to add
it to the Pharo Fogbugz wiki but I can't edit that (it also looks like there
are other variants too:
http://help.fogcreek.com/7772/link-fogbugz-cases-to-changesetscommits-in-kiln).

Tim





--
View this message in context: 
http://forum.world.st/Should-I-be-reporting-bugs-in-Pharo-3-0-tp4767284p4767802.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.



[Pharo-users] How do I get a halo on a specific UI object in Pharo 3/4?

2014-07-16 Thread Tim Mackinnon
In older versions of Squeak pharo - I think alt-click would cycle you through
halos on objects in the UI.

I have noticed in Pharo 3/4 - if I ctrl+shift click I get a menu that has
many options, one of which is "add halo" - but how do I control which UI
element I will get a halo on? Similarly - there is "inspect" in this menu,
and it does give me a list of widgets (saying deepest first) - however I
can't easily see which element corresponds with what is in the list?

I know the old squeak halo system wasn't favoured - but now I try and find
things in Pharo 3/4 - I miss the ability to visually cycle through items to
understand what I can inspect?

Is there no way to do this now? It was very useful.

Tim



--
View this message in context: 
http://forum.world.st/How-do-I-get-a-halo-on-a-specific-UI-object-in-Pharo-3-4-tp4768078.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-07 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  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" 
>> À: "Pharo Users Newsgroup" 
>> 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  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  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  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  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  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  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
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  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  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 do I trace through implementors in Pharo?

2014-08-10 Thread Tim Mackinnon
As I relearn/learn how to use Pharo, I’m struck by some of the excellent 
changes and confounded by some of the simple things that boggle me.

So, I wanted to follow a path through some message sends - the use of 
#alert:title: in UIManager specifically.

So I browser UIManager, find the method (its subclassResponsiblity) - so I find 
other implementers (cmd+b, cmd+m) - (I’m really liking that there are more 
keystrokes in newer Pharo’s but not liking that the same operations don’t have 
the same bindings in different windows - e.g. in the debugger - its not this!!)

Anyway - this gives me an implementors window on TEasilyThemed - great!

In the source, there is another msg send - ^self alert:title:configure:

So I want to follow its implementers - I hi light the source and cmd+b,cmd+m 
does nothing? hmmm - right click there and the context menu doesn’t have an 
obvious way - until I spot (Extended Search…) [which by the way should be shown 
as a submenu - like it does in the SystemBrowser).

In this menu there is “implementers of it” - however this does nothing? (this 
is in both Pharo 3.0 and Pharo 4.0) 

So how do you trace through method calls? Am I doing something wrong - or has 
this been broken for a long time?

Tim


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

On 11 Aug 2014, at 11:49, stepharo  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
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  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  '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  and  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  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  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  wrote:
> 
> 
>> On 17 Aug 2014, at 15:07, Tim Mackinnon  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-18 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"  
> 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 :
>> 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  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  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 :
> My bad! Forget my previous email!
> 
> Sorry.
> 
> 
> 2014-09-02 18:16 GMT+02:00 Bernat Romagosa :
> 
> 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. (/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 
> (/usr/local/lib/node_modules/bower/node_

Re: [Pharo-users] Tide installation

2014-09-02 Thread Tim Mackinnon
You also know about the  and  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  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 :
> 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  
> 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 :
>> My bad! Forget my previous email!
>> 
>> Sorry.
>> 
>> 
>> 2014-09-02 18:16 GMT+02:00 Bernat Romagosa :
>> 
>> 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://

[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  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
> -=-=-=-=-=-=-=-=-=
> 
> 
> 
> Cheers,
> Alexandre
> 
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> On Sep 4, 2014, at 9:27 AM, Tim Mackinnon  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  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 :
> 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 :
> 
> 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"  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  
> 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  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
> 
> -=-=-=-=-=-=-=-=-=
> 
>  
> 
> 
> 
>  
> 
> Cheers,
> 
> Alexandre
> 
>  
> 
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
>  
> 
> On Se

[Pharo-users] Testing Traits?

2014-10-09 Thread Tim Mackinnon
I’ve sort of padded around the edges of Traits, and decided to reread the 
papers and better understand them.

One thing that occurs to me - if you want to test your traits, is the only 
suggested mechanism to test them in-situ with the classes that use them OR can 
you poof one up and test it by explicitly pumping in something that would 
represent “self” in its usage?

Or is this the wrong question - and would you view Traits as a refactoring 
exercise - so you write tests for a concrete class first - and then extract 
them into a Trait keeping the tests running?

This has the thorny side effect - which like inheritance, means that ultimately 
you have to test a BaseClass with all its concrete subclasses (so do you have 
to do the same with traits? As you may have overridden something you didn’t 
intend?).

I thought maybe the paper - “Reusing and Composing Tests with Traits” might 
discuss this angle, but it doesn’t cover it.

Any thoughts/pointers?

Tim


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  wrote:

> On Thu, Oct 9, 2014 at 2:17 PM, Tim Mackinnon  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  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] Pharo 7 crashes on OSX when unsuspending laptop?

2019-02-12 Thread Tim Mackinnon
Ok- I’ve attached my crash.dmp file to that issue - for others that got it, was 
it launched from the terminal? That’s been my use case 2 days in a row, on a 
very minimal image - fresh with a small amount of code loaded into it, and a 
tiny bit of playing around before leaving it.

Tim

> On 12 Feb 2019, at 12:43, Cyril Ferlicot  wrote:
> 
> Hi,
> 
> Related issue: https://github.com/pharo-project/pharo/issues/2422
> 
> On Tue, Feb 12, 2019 at 12:55 PM Tim Mackinnon  wrote:
>> 
>> I think I read someone else commenting on this, but I can’t find where I 
>> read it - but two days in a row now, I’ve had a fresh Pharo 7 image - 
>> downloaded with zero sonf and launched from terminal that has crashed with a 
>> segfault. I’ve essentially unsuspended my laptop and and then cmd-tabbed to 
>> that image to find the apple report tool.
>> 
>> The terminal output looks interesting as it actually seems that the image 
>> crashed overnight (2am) when my laptop was closed - I’ve shown some terminal 
>> info further back where I remember doing some work (ClyExercismSubmitCommand 
>> was a class I was working on before I suspended my laptop). I also show the 
>> apple report tool below it.
>> 
>> Any thoughts - or should I just put this into the bug tracker?
>> 
>> Tim
>> 
>> Terminal output:
>> 
>> CmdCommandActivator>>executeCommand
>> [ | selArgCount |
>> "show cursor in case item opens a new MVC window"
>> (selArgCount := selector numArgs) = 0
>> ifTrue: [ target perform: selector ]
>> ifFalse: [ selArgCount = arguments size
>> ifTrue: [ target perform: selector withArguments: arguments ]
>> ifFalse: [ target perform: selector withArguments: (arguments copyWith: evt) 
>> ] ].
>> self showShortcut.
>> self changed ] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: in 
>> Block: [ | selArgCount |...
>> BlockClosure>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> ToggleMenuItemMorph(Morph)>>handleEvent:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> [ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: in 
>> Block: [ ^ anEvent sentTo: self ]
>> BlockClosure>>ensure:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> [ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: in 
>> Block: [ ^ anEvent sentTo: self ]
>> BlockClosure>>ensure:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> MenuMorph(Morph)>>processEvent:using:
>> MenuMorph(Morph)>>processEvent:
>> MenuMorph>>handleFocusEvent:
>> Break
>> ClyExercismSubmitCommand>>execute
>> ClyPackageContextOfFullBrowser(ClySystemBrowserContext)>>executeCommand:by:
>> [ self prepareCommandForExecution.
>> context executeCommand: command by: self.
>> self applyCommandResult ] in CmdCommandActivator>>executeCommand in Block: [ 
>> self prepareCommandForExecution
>> BlockClosure>>on:do:
>> CmdCommandActivator>>executeCommand
>> [ | selArgCount |
>> "show cursor in case item opens a new MVC window"
>> (selArgCount := selector numArgs) = 0
>> ifTrue: [ target perform: selector ]
>> ifFalse: [ selArgCount = arguments size
>> ifTrue: [ target perform: selector withArguments: arguments ]
>> ifFalse: [ target perform: selector withArguments: (arguments copyWith: evt) 
>> ] ].
>> self showShortcut.
>> self changed ] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: in 
>> Block: [ | selArgCount |...
>> BlockClosure>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> ToggleMenuItemMorph(Morph)>>handleEvent:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>&g

[Pharo-users] Calypso documentation? Or understanding menu building

2019-02-12 Thread Tim Mackinnon
Is there any documentation on Calypso   application contexts? I am trying to 
add a menu item to a package tag (the bit underneath a package - which I often 
call a sub-package).

I’ve specified: 

^CmdContextMenuActivation 
byItemOf: ClyQueryMenuGroup for: RPackage asCalypsoItemContext 

But that puts my menu on the package and not the tag - and if I use the inspect 
extra menu in calypso, I get what looks to be something that could help me 
determine what I want but I’m struggling to understand what ClyTaggedClassGroup 
does, and what a context is all about.

Has anyone else played around with this at all?

Ideally I want to have a menu appear on all the tags underneath a particular 
package - and possibly including that package (or maybe not - I haven’t decided 
as I want to try it in the wild).

While I’m at it - I have quite understood how to create submenu’s either - as 
I’d like to have several commands all as sub items of a menu item “Exercism”.

Tim





Re: [Pharo-users] Pharo 7 crashes on OSX when unsuspending laptop?

2019-02-12 Thread Tim Mackinnon
It’s really bad for me - its just crashed again in an image that I loaded up 
when I reported this, this morning. Again it had been suspended over lunch but 
my laptop was running another program when it crashed in the background…

This is from a zero conf image downloaded on Friday - so its pretty fresh.

As I’m not working on anything crucial its not killing me - but I’d be pretty 
peeved off if I was using the new release for real and it was dying like this 
all of the time.

Tim

> On 12 Feb 2019, at 13:12, Cyril Ferlicot  wrote:
> 
> On Tue, Feb 12, 2019 at 1:53 PM Tim Mackinnon  wrote:
>> 
>> Ok- I’ve attached my crash.dmp file to that issue - for others that got it, 
>> was it launched from the terminal? That’s been my use case 2 days in a row, 
>> on a very minimal image - fresh with a small amount of code loaded into it, 
>> and a tiny bit of playing around before leaving it.
>> 
> 
> I launch my Pharo Launcher via the app icon and the other images via
> the PharoLauncher.
> 
>> Tim
>> 
>> 
> 
> 
> -- 
> Cyril Ferlicot
> https://ferlicot.fr
> 




[Pharo-users] Its odd you can't have our own git project called MyProject/Pharo!

2019-02-12 Thread Tim Mackinnon
I’m really quite stunned that having worked happily 6 months ago on a project 
called github://exercism/pharo  (a name given to us by 
the exercism project) - that you can’t load that code into Pharo7 anymore 
either via iceberg or via metacello.

It looks like iceberg ignores any paths leading up to a project name and just 
assumes anything ending in pharo is the actual pharo project. It would be good 
to get confirmation of this - and also understand what would happen if any 
other projects happen to collide with each other - e.g. macta/StateSpecs vs 
google/StateSpecs? Its innocently done - and given we don’t currently use 
prefixes on our project names - we could get a nasty surprise (if I’ve 
understood the implications correctly). It seems weird that we would do this 
though, so I’m wondering if I’ve misunderstood this - hopefully?

Can anyone more in the know comment?

If it is true, its going to be embarrassing to have to go back to the exercism 
project (which just recently got funding from the Mozilla foundation) and ask 
them to change the name of our project to pharo-st because we can’t handle the 
name...

Tim

Re: [Pharo-users] Calypso documentation? Or understanding menu building

2019-02-12 Thread Tim Mackinnon
Thanks Denis - lots for me to look through there. I’ll also add a PR to add 
those documentation links to the Calypso readme.

Tim

> On 12 Feb 2019, at 19:32, Denis Kudriashov  wrote:
> 
> Hi Tim
> 
> вт, 12 февр. 2019 г. в 13:42, Tim Mackinnon :
> Is there any documentation on Calypso   application contexts? I am trying to 
> add a menu item to a package tag (the bit underneath a package - which I 
> often call a sub-package).
> 
> Only class comments are available for Calypso. Also there are a Commander 
> booklet  
> <https://github.com/SquareBracketAssociates/Booklet-Infrastructure>which 
> describes contexts and ClassAnnotation github readme 
> <https://github.com/pharo-ide/ClassAnnotation> (together with class comments).
>  
> 
> I’ve specified: 
> 
> ^CmdContextMenuActivation 
> byItemOf: ClyQueryMenuGroup for: RPackage 
> asCalypsoItemContext 
> 
> 
> The #for: argument of command activations is a context where command should 
> be available. Context describes condition where given command (its activation 
> strategy) should be visible for users.
> In your example "RPackage asCalypsoItemContext" is an instance of 
> ClyBrowserItemContext which matches any selected package in the browser (when 
> a kind of RPackage is selected).
> And that's why you do not see it on selected tag because the tag is not a 
> package.
> 
> But that puts my menu on the package and not the tag 
> - and if I use the inspect extra menu in calypso, I get what looks to be 
> something that could help me determine what I want but I’m struggling to 
> understand what ClyTaggedClassGroup does, and what a context is all about.
> 
> Inspect command opens inspector of actually selected object which is an 
> instance of ClyTaggedClassGroup in that case (try inspect selected method and 
> you will get a CompiledMethod).
> Children of package in browser are instances of ClyClassGroup and subclasses. 
> So they are not raw tags. If you need a command for a tag you should add a 
> command for ClyTaggedClassGroup items:
> 
> ^CmdContextMenuActivation 
> byItemOf: ClyQueryMenuGroup for: ClyTaggedClassGroup 
> asCalypsoItemContext 
> 
> Look for example at SycPromotePackageFromTagCommand 
> class>>#fullBrowserMenuActivation which is defined this way.
> 
> There are other kind of contexts which can be used in command annotations. 
> For example if you want a command for selected method only in full browser 
> then you should use ClyMethodContextOfFullBrowser:
> 
> ^CmdContextMenuActivation byItemOf: ClyQueryMenuGroup for: 
> ClyMethodContextOfFullBrowser 
> 
> it can be confusing that simple class is used in this case. But underhood it 
> is converted to the instance of context where command should be available.
>  
> 
> Has anyone else played around with this at all?
> 
> Ideally I want to have a menu appear on all the tags underneath a particular 
> package - and possibly including that package (or maybe not - I haven’t 
> decided as I want to try it in the wild).
> 
> While I’m at it - I have quite understood how to create submenu’s either - as 
> I’d like to have several commands all as sub items of a menu item “Exercism”.
> 
> Look at commander booklet. It includes example.
>  
> 
> Tim
> 
> 
> 



[Pharo-users] How do I find the RPackageTag of a class?

2019-02-14 Thread Tim Mackinnon
I’m trying to understand how RPackage and RPackageTag work in Pharo7? It seems 
different than Pharo6 at least with Nautilus (vs Calypso) - as previously the 
Nautilus UI gave me the RPacakgeTag, and I could just work with that. Calypso 
doesn’t seem to give me the tag object, but if I have a known class and I want 
to know its RPackageTag I can’t see how you do it? It all seems rather messy….

I can ask a class for its category - which just gives me a symbol of the form 
“mypackage-tagname”, and if I ask a class for its package, it will give me an 
RPackage(myPackage) - but that RPackage has a set of RPackageTags which just 
use the tagname (so not prefixed with "mypackage-“)? So am I really supposed to 
split the category name on “-“ myself, and then select the correct RPackageTag? 

If I look at the RPackageTag tests - they all seem to use hard coded values and 
so don’t really show you how you deal with the question above?

It really seems quite messy?

I naively thought that if I wanted a browser extension to deal with a selected 
package tag - and file out some classes in that tag (for exercism) - I could 
easily get the RPackageTag from any class and then use it?

Tim 


Re: [Pharo-users] How do I find the RPackageTag of a class?

2019-02-14 Thread Tim Mackinnon
Actually - I’ve realised that Calypso can give me the tag name from its context 
- (aToolContext lastSelectedClassGroup).

However it does highlight a very strange package/tag design. Are you not 
supposed to be easily able to derive RPacakgeTags?

Tim

> On 14 Feb 2019, at 13:19, Tim Mackinnon  wrote:
> 
> I’m trying to understand how RPackage and RPackageTag work in Pharo7? It 
> seems different than Pharo6 at least with Nautilus (vs Calypso) - as 
> previously the Nautilus UI gave me the RPacakgeTag, and I could just work 
> with that. Calypso doesn’t seem to give me the tag object, but if I have a 
> known class and I want to know its RPackageTag I can’t see how you do it? It 
> all seems rather messy….
> 
> I can ask a class for its category - which just gives me a symbol of the form 
> “mypackage-tagname”, and if I ask a class for its package, it will give me an 
> RPackage(myPackage) - but that RPackage has a set of RPackageTags which just 
> use the tagname (so not prefixed with "mypackage-“)? So am I really supposed 
> to split the category name on “-“ myself, and then select the correct 
> RPackageTag? 
> 
> If I look at the RPackageTag tests - they all seem to use hard coded values 
> and so don’t really show you how you deal with the question above?
> 
> It really seems quite messy?
> 
> I naively thought that if I wanted a browser extension to deal with a 
> selected package tag - and file out some classes in that tag (for exercism) - 
> I could easily get the RPackageTag from any class and then use it?
> 
> Tim 




Re: [Pharo-users] Status of XML Support's move to GitHub

2019-02-14 Thread Tim Mackinnon
Isn’t tonel an open format? Would this not encourage other dialects to adopt it 
as well? The sooner the better?

We know that filetree wasn’t really a great idea as a format (as Windows issues 
show).

I’d say in this case move to it and let’s move forward. Hopefully all together.

Tim

Sent from my iPhone

> On 14 Feb 2019, at 18:43, Sven Van Caekenberghe  wrote:
> 
> 
> 
>> On 14 Feb 2019, at 19:02, Torsten Bergmann  wrote:
>> 
>> Hi,
>> 
>> but Tonel allows to use the package also on Windows platform as Tonel is 
>> more compact. Otherwise we will run into long filename git
>> trouble again. This would limit it's use.
>> 
>> A filetree/cypress might make sense for other dialects - but due to the 
>> above would it be possibly to have these formats
>> as a separate branch and keep the master in Tonel? 
> 
> Sure, there is a reason for Tonel, it *is* better, but in this case it might 
> not be the best choice.
> 
>> I know this makes it harder in maintaining - but I'm not sure the XML 
>> packages changes so often.
> 
> No, I don't think they do.
> 
>> @Sven: thank for taking action. Can we have a link in the README pointing 
>> also to the original STHub Repo?
> 
> I did.
> 
>> Maybe we should move the canonical project to the more central 
>> https://github.com/pharo-contributions like it was 
>> done with other repos and add Sven (and others interested) to this team.
> 
> Once somebody tries to do a real conversion with history.
> 
>> Thanks
>> T.
>> 
>> 
>>> Gesendet: Donnerstag, 14. Februar 2019 um 18:08 Uhr
>>> Von: "Paul DeBruicker" 
>>> An: pharo-users@lists.pharo.org
>>> Betreff: Re: [Pharo-users] Status of XML Support's move to GitHub
>>> 
>>> Hi Sven,
>>> 
>>> Can we use filetree/cypress for this for now?  IF the intention is for your
>>> copy to become the canonical github one at least.   Squeak and GemStone
>>> don't yet have tonel and the smalltalkhub/PharoExtras repo is where code is
>>> currently loaded from for those platforms.  
>>> 
>>> 
>>> Thanks for giving it some thought.
>>> 
>>> Paul
>>> 
>>> 
>>> 
>>> Sven Van Caekenberghe-2 wrote
 Hi again,
 
> On 10 Jan 2019, at 16:31, Sven Van Caekenberghe <
>>> 
 sven@
>>> 
> wrote:
> 
> Hi,
> 
> What is the status of XML Support's move to GitHub ?
> Many people were pro, has anything been done ?
> It would be very nice.
> 
> Sven
 
 I did https://github.com/svenvc/XML-Support-Pharo as a direct copy of the
 code from SmalltalkHub to GitHub, Tonel, Pharo and Travis CI.
 
 This is just the bare minimum, a proof of concept, with new, much
 simplified baselines. It was the last project that I depend on and I
 wanted it in GitHub for my own purposes. The default load of XMLParser
 includes XMLWriter, the tests and the GT extensions.
 
 All 5100+ tests are green. I am using Pharo 7.0.1 64-bit. Code seems to
 load reasonably fast.
 
 I want to stress that this is not a fork, nor the end of this conversion.
 
 I have a lot of respect for this high quality, solid code base and want
 this important piece of code to move forward.
 
 I hope others will help.
 
 Sven
>>> 
>>> 
>>> 
>>> 
>>> 
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>> 
>>> 
>> 
> 
> 




[Pharo-users] Stability of Pharo 7 vs 6?

2019-02-15 Thread Tim Mackinnon
I’m not sure if this is born out by others - but I’m finding that Pharo 7 is a 
bit less stable than Pharo 6 - I’m seeing quite a few seg-faults where the vm 
dies and terminates - both when the image is left running for a while, but also 
in fresh images where I do an Iceberg load of my projects. I’ve also seen a lot 
of weird things like corrupted fonts and keyboard focus/cursor keys not working 
properly.

From memory - I saw a lot less of this in Pharo 6 when I first moved to it.

Possibly my usage is a bit different (although I’m not sure) - but in all the 
cases above I’m using OSX (HighSierra - so the same Mac OS as Pharo 6) - with 
the 64bit vm and running full screen.

One thing that seems to help (but this is an early empirical observation) - if 
I save my image to a new name - this seems to help. So I’m wondering if there 
might be something in the build process that has changed and is causing some 
sort of instability? 

I haven’t done this long enough to really comment - but from all of the above, 
having a Pharo.1.image seemed to stop my problems.

Possibly I’ve been unlucky - but of 7 images I’ve used in the last 2 weeks - 5 
of them have had issues. I did notice that half of these images were the rc1 
build 1436 setup (as I hadn’t noticed that the blessed 7.0 stable image has a 
different version number (previously, the last builds in PL Pharo 7 development 
- was the stable version - unless work then went forward for a Pharo 7.1. I 
liked to nab the dev version so that I know the build number to report it. I 
now see the about Pharo in the image also lists this number). Also some of my 
images were retrieved via zeroConf in the terminal (again, not sure if this 
makes a difference - but did that a lot with P6 too).

This isn’t a complaint per se - as we need to move the platform forward and 
forge new approaches. So I really mention it to try and help diagnose the 
issues - or possibly understand if I’m doing something weird.

Tim


[Pharo-users] Iceberg working with forks - can it be easier?

2019-02-15 Thread Tim Mackinnon
Hi guys - I’ve spent a few hours scratching my head trying to understand why 
some of my Pull Requests to a project I had forked kept showing my previous 
commits when I thought I was all caught up.

It suddenly dawned on me, that when I had forked, and then done some work and 
then submitted a PR, and then applied it upstream that my fork is now no longer 
in sync with its upstream counterpart.

Having not done this in ages, it took me a while to then realise I have to do 
some git stuff to get it back in sync e.g. (and I think I’ve got this right)

git fetch upstream (or whatever name you gave it)
Git checkout master
Git merge upstream/master

So I guess my question is - wouldn’t it be helpful if this was a command in 
Iceberg? It seems quite common to fork a project (I think this is still 
recommended for pharo itself isn’t it?) - and then at some point you need to 
catchup with that origin again? Or am I missing something? I guess lots of 
stuff can go wrong - but if it does - you’d still get the same problems on the 
command line. It just seems that for normal situations - it would be handy to 
run this straight in Pharo.

Thoughts from the git experts?

Tim





Re: [Pharo-users] Stability of Pharo 7 vs 6?

2019-02-16 Thread Tim Mackinnon
I’ve actually being using both - but 32bit has generally been considered the 
older more stable cousin (until Pharo 6 - where it was felt that 64bit was now 
just as stable).

I only mentioned it - because the zeroconf example that has crashed a few of my 
several times - was 32 bit (but I have also had 64 bit crash too. Probably a 
good experiment to try zeroconf with the 64bit variation and load my baseline 
as well).

I just think we might have an easily reproducable (and small) example that 
shows this issue that many have experienced a bit more randomly.

Tim

> On 16 Feb 2019, at 11:17, Hilaire  wrote:
> 
> I can't tell, but in your initial email you mentionned using the 64bits
> VM, so the image is 64bits too.
> 
> So if you are using 32bits, you can try 64bitsVM https://get.pharo.org/64/
> 
> Le 16/02/2019 à 12:01, Tim Mackinnon a écrit :
>> As mentioned, I’m on OSX HighSierra I get a zero conf image (which I
>> believe is the 32 bit version?)
>> 
> -- 
> Dr. Geo
> http://drgeo.eu
> 
> 
> 




Re: [Pharo-users] Iceberg working with forks - can it be easier?

2019-02-17 Thread Tim Mackinnon
Hey Ben - I’m not sure that this actually does the same thing. I just tried it 
now, and it resulted in an extra merge in my forked repo - as I think this 
effectively pulls down from upstream into pharo and then if you have any 
differences in your local image copy they might cause some changes which then 
you would push back into your fork origin.

If you just want a verbatim copy in your fork - you have to resort the command 
line?

I’m still mulling this over - as would you then pull from your upstream fork 
and still get the same differences that you would then apply? I’m not sure now 
- but if the idea was just to get yourself back into a consistent state - Its 
not clear to me how you can get all 3 copies saying the same thing in pharo?

Tim

> On 16 Feb 2019, at 06:19, Ben Coman  wrote:
> 
> 
> 
> On Sat, 16 Feb 2019 at 02:06, Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> Hi guys - I’ve spent a few hours scratching my head trying to understand why 
> some of my Pull Requests to a project I had forked kept showing my previous 
> commits when I thought I was all caught up.
> 
> It suddenly dawned on me, that when I had forked, and then done some work and 
> then submitted a PR, and then applied it upstream that my fork is now no 
> longer in sync with its upstream counterpart.
> 
> Having not done this in ages, it took me a while to then realise I have to do 
> some git stuff to get it back in sync e.g. (and I think I’ve got this right)
> 
> git fetch upstream (or whatever name you gave it)
> Git checkout master
> Git merge upstream/master
> 
> So I guess my question is - wouldn’t it be helpful if this was a command in 
> Iceberg? It seems quite common to fork a project (I think this is still 
> recommended for pharo itself isn’t it?) - and then at some point you need to 
> catchup with that origin again? Or am I missing something? I guess lots of 
> stuff can go wrong - but if it does - you’d still get the same problems on 
> the command line. It just seems that for normal situations - it would be 
> handy to run this straight in Pharo.
> 
> I'm not fully-conversant with Iceberg, but if I guess right...
> in Iceberg, right-click a repo and open its "Repository" window.
> In the top-right click the "Add remote" button, to add the upstream repo.
> That button is a bit hidden there.  It might be nice to have it as a menu 
> item on "Remotes" in the first pane.
> Then click the  button, then select the upstream master branch and you 
> should be up to date.
> 
> cheers -ben



Re: [Pharo-users] Stability of Pharo 7 vs 6?

2019-02-17 Thread Tim Mackinnon
Hmmm Ben - its interesting that other languages/environments show that same 
stack error - and they seem to hint at memory issues- although in our case I’m 
working with a simple Pharo image that has very little in it (I’ve had much 
larger ones in Pharo 6.x without issue).

Interestingly - since launching a zeroconf image and not going full screen - 
its been running now for 1.5 days without a crash (whereas previously around 24 
hours or less it would crash).

Having said this - I’ve just started another clean zeroconf image (not full 
screen) and during the initial metecallo (iceberg) load - its seg faulted again 
- but this one I think is iceberg related as the crash.dmp looks a bit 
different, and I did notice that it was loading my baseline a bit slowly (and 
stifling with some of the dependencies, making me think that something timing 
related might be at issue).

Having said this - I’m still not having the smooth ride others are reporting - 
and 7 is still suspect to me.

I’m kind of suprised this isn’t getting much traction from the core team - and 
I wonder if I should post this on the dev list instead?

Tim

> On 16 Feb 2019, at 16:27, Ben Coman  wrote:
> 
> I'm not on a Mac to test, but it might be worth browsing the top few of 
> these..
> https://github.com/search?o=desc&q=can%27t+allocate+region+securely&s=created&type=Issues
>  
> <https://github.com/search?o=desc&q=can%27t+allocate+region+securely&s=created&type=Issues>
> 
> cheers -ben
> 
> On Sat, 16 Feb 2019 at 20:10, Tim Mackinnon  wrote:
> I’ve actually being using both - but 32bit has generally been considered the 
> older more stable cousin (until Pharo 6 - where it was felt that 64bit was 
> now just as stable).
> 
> I only mentioned it - because the zeroconf example that has crashed a few of 
> my several times - was 32 bit (but I have also had 64 bit crash too. Probably 
> a good experiment to try zeroconf with the 64bit variation and load my 
> baseline as well).
> 
> I just think we might have an easily reproducable (and small) example that 
> shows this issue that many have experienced a bit more randomly.
> 



Re: [Pharo-users] Calypso documentation? Or understanding menu building

2019-02-18 Thread Tim Mackinnon
Hi Dennis - I’ve been reading the book you mentioned and looking through the 
code as well as your examples and I feel a bit more comfortable with what’s 
going on - however I am stumped about how you do an OR context (vs. an AND 
context).

I would like my menu item to appear for either a selected RPackage OR a 
ClyTaggedClassGroup - I thought I had it with:

RPackage asCalypsoItemContext, ClyTaggedClassGroup  asCalypsoItemContext (to 
get a composite context) but then I realised that the composite is an AND.

Is there some way to create an OR context, or do I simply have to create 
multiple commands?

Tim


> On 12 Feb 2019, at 19:32, Denis Kudriashov  wrote:
> 
> Hi Tim
> 
> вт, 12 февр. 2019 г. в 13:42, Tim Mackinnon :
> Is there any documentation on Calypso   application contexts? I am trying to 
> add a menu item to a package tag (the bit underneath a package - which I 
> often call a sub-package).
> 
> Only class comments are available for Calypso. Also there are a Commander 
> booklet  
> <https://github.com/SquareBracketAssociates/Booklet-Infrastructure>which 
> describes contexts and ClassAnnotation github readme 
> <https://github.com/pharo-ide/ClassAnnotation> (together with class comments).
>  
> 
> I’ve specified: 
> 
> ^CmdContextMenuActivation 
> byItemOf: ClyQueryMenuGroup for: RPackage 
> asCalypsoItemContext 
> 
> 
> The #for: argument of command activations is a context where command should 
> be available. Context describes condition where given command (its activation 
> strategy) should be visible for users.
> In your example "RPackage asCalypsoItemContext" is an instance of 
> ClyBrowserItemContext which matches any selected package in the browser (when 
> a kind of RPackage is selected).
> And that's why you do not see it on selected tag because the tag is not a 
> package.
> 
> But that puts my menu on the package and not the tag 
> - and if I use the inspect extra menu in calypso, I get what looks to be 
> something that could help me determine what I want but I’m struggling to 
> understand what ClyTaggedClassGroup does, and what a context is all about.
> 
> Inspect command opens inspector of actually selected object which is an 
> instance of ClyTaggedClassGroup in that case (try inspect selected method and 
> you will get a CompiledMethod).
> Children of package in browser are instances of ClyClassGroup and subclasses. 
> So they are not raw tags. If you need a command for a tag you should add a 
> command for ClyTaggedClassGroup items:
> 
> ^CmdContextMenuActivation 
> byItemOf: ClyQueryMenuGroup for: ClyTaggedClassGroup 
> asCalypsoItemContext 
> 
> Look for example at SycPromotePackageFromTagCommand 
> class>>#fullBrowserMenuActivation which is defined this way.
> 
> There are other kind of contexts which can be used in command annotations. 
> For example if you want a command for selected method only in full browser 
> then you should use ClyMethodContextOfFullBrowser:
> 
> ^CmdContextMenuActivation byItemOf: ClyQueryMenuGroup for: 
> ClyMethodContextOfFullBrowser 
> 
> it can be confusing that simple class is used in this case. But underhood it 
> is converted to the instance of context where command should be available.
>  
> 
> Has anyone else played around with this at all?
> 
> Ideally I want to have a menu appear on all the tags underneath a particular 
> package - and possibly including that package (or maybe not - I haven’t 
> decided as I want to try it in the wild).
> 
> While I’m at it - I have quite understood how to create submenu’s either - as 
> I’d like to have several commands all as sub items of a menu item “Exercism”.
> 
> Look at commander booklet. It includes example.
>  
> 
> Tim
> 
> 
> 



[Pharo-users] Should epicea help me recover changes in a system crash?

2019-02-18 Thread Tim Mackinnon
Hi - I’ve got mixed experiences with epicea - having had a few image seg faults 
recently its presented some of my changes and let me recover them.

However just now, I had been working for an hour and my whole laptop went black 
(and then had the apple logo). I took the opportunity to apply the latest 
HighSierra updates (it has been a while) - but when I relaunched my image - 
epicea detected missing code however what it shows me is nothing like the 
changes I had recently made - it just showed me a merge change?

Is it possible that if I’m on the wrong branch - it won’t show me changes I 
made recently?

I find I’m kind of missing the old changes text file (which we say we are 
getting rid of) as at least it let me see an historic account of what I had 
done - as now things are a bit all of over the place (do-its you have to find 
in the playground history) and epicea is supposed to show the rest - execpt it 
doesn’t appear to do so?

Tim


Re: [Pharo-users] Should epicea help me recover changes in a system crash?

2019-02-18 Thread Tim Mackinnon
Ok - if its supposed to work in this situation, I will zip up that image and 
put it somewhere to try and figure out what happened.

> On 18 Feb 2019, at 17:54, ducasse  wrote:
> 
> Hi tim
> 
> this is strange. Normally epicea logs all the changes. In the past I got 
> missing classes. 
> Epicea is git ignorant. So I do not see how it could interact. 
> I would love to see your bug solved. Could you keep your image and may be 
> martin
> has some time to have a look (he got flying back to chile). 
> 
> Stef
> 
>> On 18 Feb 2019, at 18:13, Tim Mackinnon  wrote:
>> 
>> Hi - I’ve got mixed experiences with epicea - having had a few image seg 
>> faults recently its presented some of my changes and let me recover them.
>> 
>> However just now, I had been working for an hour and my whole laptop went 
>> black (and then had the apple logo). I took the opportunity to apply the 
>> latest HighSierra updates (it has been a while) - but when I relaunched my 
>> image - epicea detected missing code however what it shows me is nothing 
>> like the changes I had recently made - it just showed me a merge change?
>> 
>> Is it possible that if I’m on the wrong branch - it won’t show me changes I 
>> made recently?
>> 
>> I find I’m kind of missing the old changes text file (which we say we are 
>> getting rid of) as at least it let me see an historic account of what I had 
>> done - as now things are a bit all of over the place (do-its you have to 
>> find in the playground history) and epicea is supposed to show the rest - 
>> execpt it doesn’t appear to do so?
>> 
>> Tim
> 
> 
> 




Re: [Pharo-users] Iceberg working with forks - can it be easier?

2019-02-18 Thread Tim Mackinnon
Hi Guille - thanks for taking the time to write this up… in the middle there I 
finally spotted the crucial bit “clone the original, push to your fork”. I 
think thats what I’ve been doing wrong - and it leads to all kinds of confusion 
(at least I’m hoping this is what it is).

As I have cloned from my Fork (and in my defence - its because we were given a 
repository that collides with the pharo one - exercism/pharo - and P7 doesn’t 
let us clone from that) - so I’ve had to clone from my fork. It all seemed to 
work until I started submitting my PR’s and then they seem to include commits 
going much further back than I think they should need Even wen I thought I was 
being careful and syncing to master - it still seems to go back to some of my 
earliest work.

Now that we have managed to get the repo renamed - I will try working like you 
have suggested and make sure that it is working like you describe - as it 
shouldn’t be as complicated as this to make clean isolated changes and then 
submit them as a PR. (otherwise Pharo would fall apart).

One question I do have however - is what is the best procedure if you realised 
when making changes that 
A) you forgot to make changes in a branch (so are working on master)
B) you are working in a branch but decide some of your changes should go in 
another branch itself based on master (how to stash?)

These are 2 common scenarios I’ve found when trying to be a good citizen for my 
little project. Do I have to go to the terminal to do this stuff -  or can I 
cleanly do these kinds of operations in Pharo (which I think you should be able 
to do, as its so easy to get into either of those states).

Thanks in advance.

Tim

> On 18 Feb 2019, at 08:56, Guillermo Polito  wrote:
> 
> Hi!
> 
> On Fri, Feb 15, 2019 at 7:06 PM Tim Mackinnon  wrote:
> Hi guys - I’ve spent a few hours scratching my head trying to understand why 
> some of my Pull Requests to a project I had forked kept showing my previous 
> commits when I thought I was all caught up.
> 
> It suddenly dawned on me, that when I had forked, and then done some work and 
> then submitted a PR, and then applied it upstream that my fork is now no 
> longer in sync with its upstream counterpart.
> 
> Having not done this in ages, it took me a while to then realise I have to do 
> some git stuff to get it back in sync e.g. (and I think I’ve got this right)
> 
> git fetch upstream (or whatever name you gave it)
> Git checkout master
> Git merge upstream/master
> 
> When you did your clone, did you clone the original repository or your fork's?
> One way to simplify this workflow is:
>  - you clone always the original repository
>  - you create a branch and work there
>  - then you'll push your branch to your fork + fork
> 
> That way your branch will be always up to date with the original repository, 
> and no need to sync (actually the sync is done automatically when you push to 
> your fork).
> 
> Of course this assumes you're doing a new clone every time you work :).
>  
> 
> So I guess my question is - wouldn’t it be helpful if this was a command in 
> Iceberg?
> 
> It would, there are several places where we could simplify the workflow for 
> common cases, I agree.
>  
> It seems quite common to fork a project (I think this is still recommended 
> for pharo itself isn’t it?)
> 
> I'd say its mandatory :). Otherwise you will not be able to push directly to 
> it because of permission problems (actually all main dev branches are now 
> blocked so **nobody**, not even admins, push to them directly).
>  
> - and then at some point you need to catchup with that origin again? Or am I 
> missing something?
> 
> Well, it really depends on the workflow you use. Above I've explained a 
> workflow that works when you clone every time.
> Git is so complex and so low level that you can do lots of different things 
> with it.
> 
> First thing is to understand what "catch up with origin" means. In my head it 
> only means:
>  - checkout your "to-catchup" branch
>  - merge the remote "to-catchup" branch and merge it
> 
> All the rest is workflow dependent. Even (!!) I would argue that merging is 
> not, strictly speaking, a correct way to catch up: If you have made changes 
> into "to-catchup", then merging will not make both branches the same, but 
> your "to-catchup" branch may have extra commits that you did not want to 
> introduce...
> 
> And here I'm not saying you should not merge, actually I do it most of the 
> times because I know that 90% of the times it will be ok, and I do rollback 
> when I realize I was in the other 10%...
>  
> I guess lots of stuff can go wrong - but if it does - you’d still get the 
> same problems on th

Re: [Pharo-users] How to load a single package in a Metacello baseline

2019-02-19 Thread Tim Mackinnon
Yeah - I have a similar issue with ExternalWebBrowser, which I load as:

spec
baseline: 'ExternalWebBrowser'
with: [ spec
repository: 
'github://seandenigris/Pharo-Web-Browser:master/repository' ];
import: 'ExternalWebBrowser'.


That drags in BabyMock and huge raft of tests (which I’m grateful were 
written), but I’d prefer not to muddy the waters when presenting Exercism.

I think what we have to do is submit pull requests to these projects such that 
they create better baselines with Groups. Eg. The Exercism baseline does this 
so that students load core, but developers get extra tools to generate 
exercises - eg.

spec
package: 'Exercism'
with: [ ];
package: 'ExercismDev'
with: [ spec requires: #('Exercism' 
'ExercismTools')];
package: 'ExercismTools'
with: [ spec requires: #('OSProcess' 
'ExternalWebBrowser') ];
group: 'default'
with:
#('ExercismTools');
group: 'dev'
with:
#('ExercismDev’)]

Then you can specify in your load request which group to use (I don’t have the 
syntax handy for baselines, but when you load via iceberg, the Metacelle menu 
has a second option where you specify the group to use, so I’m sure it can be 
done in code too).

I’d be interested if there is some way to do it without groups though, so that 
you don’t have to rely on the package authors to do this (similar in thought to 
what Sabine is complaining about by not being able to better control version 
dependencies).

This whole area is becoming more and more important as we grow up and what to 
have more controllable load characteristics.

Tim

> On 19 Feb 2019, at 11:13, N. Bouraqadi  wrote:
> 
> Hi,
> 
>  I'm updating the the baseline of PharoJS to use the zinc websockets from the 
> github repo https://github.com/svenvc/zinc .  
> I want to load package Zinc-WebSocket-Core.  So, in 
> BaselineOfPharoJS>>#baseline: I've defined 
> spec baseline: 'ZincHTTPComponents' with: [
> spec
> loads: #('Zinc-WebSocket-Core');
> repository: 'github://svenvc/zinc ' 
> ].
> 
> However, for some reason I get Zinc-WebSocket-Tests loaded. Any hint how to 
> avoid it?(edited)
> Looking at BaselineOfZincHTTPComponents>>#baseline:, package WebSocket-Core 
> does not seem to depend on tests 
> spec package: 'Zinc-WebSocket-Core' with: [ spec requires: 'Zinc-HTTP' ]
> 
> Thanks,
> Noury



Re: [Pharo-users] How do you avoid loading master code which is indirectly referenced by a version in the baseline?

2019-02-19 Thread Tim Mackinnon
Hi Sabine - you raise an important point, and I am interested in us getting 
better answers to this too. Hopefully Dale see’s this and is thinking about 
this in Rowen. Repeatable loading is an important enterprise feature.

Tim

> On 18 Feb 2019, at 15:46, Sabine Manaa  wrote:
> 
> For test and deployment, I have to be sure that I know exactly which versions
> I load and I have to be sure to be able to load exactly the same code again.
> I do not speak from my projects but from the projects I use. 
> 
> I found myself asking people again and again to set tags in their projects
> and being surprised again and again by changed code even though I am trying
> to load versions (with versions I mean NOT #stable or #master but like
> v2.2.2). 
> 
> The reason for this problem I then have, is that often in baselines with
> version numbers (e.g. v2.2.2) other projects are referenced but as master.
> So in consequence, I load version but get master from another project which
> is referenced indirectly.  
> 
> For me, that this is not good at all. I was wondering that this seems not to
> be a problem for others. 
> 
> I found out that I can put a lock in my baselines preLoadDoIt for those
> indirectly referenced projects. 
> 
> Examlpe Artefact v1.0.1
> 
> https://github.com/pharo-contributions/Artefact/blob/v1.0.1/src/BaselineOfArtefact/BaselineOfArtefact.class.st
> 
> loads github://zweidenker/Units/src (which is master). 
> 
> I found a solution for this:
> 
> In the preLoadDoIt of my baseline I lock Units to a certain commit. 
> 
> preLoadDoIt
> Metacello new
> baseline: 'Units';
> repository: 'github://zweidenker/Units:98d5a3d/src';
> lock.
> 
> This solves my problem in this example. 
> 
> Disadvantage is that I have to analyze everything which is loaded from the
> projects I use and create a lock for it.
> 
> Questions:
> 1.) Wouldn't it make sense to have some mechanism, perhaps in Rowan then,
> where I can say that a project which has a number can only reference other
> projects with numbers? This would avoid the whole problem 
> 2.) How do others solve this problem?
> 
> addendum: I do not speak about project versions which are in development,
> here #stable or master are great features. But sometime when a project has a
> certain state, and it gets a version, then it should not change..imho
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] About Iceberg

2019-02-19 Thread Tim Mackinnon
Yes I agree - when there is so much discussion and debate going on, its easy to 
lose sight of the hard work and determination that went into getting us to this 
brave new world. I too want to shout a big thank you for the tooling and also 
the support that goes along with that.

I love been able to think a bit more polyglot, and use tools/languages more 
easily side by side - although of course I want to hold on to what makes 
Smalltalk special (which is tons of stuff).

I particularly love being able to feel like its easier to contribute - updating 
readme’s and docs is trivial in a web browser now - just correct them and 
submit a PR. And on the receiving side - GitHub makes it easy to discuss the 
fix, alter it, or simply approve it. Equally - modern build tools easily detect 
the change, pull the code and rebuild and package it (and cheap scalable 
infrastructure).

Its also getting easier and easier to submit code fixes too - and the VCS 
skills you learn doing this are transferable beyond Smalltalk - so its a big 
win win.

So yes guys - thanks for hanging in for us!

Tim

> On 19 Feb 2019, at 08:50, Sven Van Caekenberghe  wrote:
> 
> Hi,
> 
> This is a thank you note about Iceberg.
> 
> I have been moving all my external and internal Pharo code to git/tonel/7 and 
> on multiple occasions I have been pleasantly surprised about the 
> functionality and performance of Iceberg. Basically, it just works.
> 
> Finally, Pharo code lives in standard open source and commercial repositories 
> (git, GitHub, Bitbucket, ...), without losing anything.
> 
> I know that it took years to get here and that lots of code and community 
> battles had to be fought. So thank you, to the whole team, you did a great 
> job !
> 
> Sven
> 
> --
> Sven Van Caekenberghe
> Proudly supporting Pharo
> http://pharo.org
> http://association.pharo.org
> http://consortium.pharo.org
> 
> 
> 
> 
> 




Re: [Pharo-users] Partition/Sync ready databases for Pharo?

2019-02-19 Thread Tim Mackinnon
When you say Fossil - are you referring to 
"https://fossil-scm.org/index.html/doc/trunk/www/index.wiki” ?

I’ve seen it come up a few times - is it good? But rather than subvert 
Esteban’s thread - if it is the above, can you hook into it to save application 
runtime artefacts such that a distributed application can read them back (I’d 
just sort of assumed it was for saving code and docs) - but it sounds like it 
can go a bit deeper than that (which seems quite interesting and perhaps what 
Esteban is after?)

Tim


> On 19 Feb 2019, at 01:46, Pierce Ng  wrote:
> 
> On Mon, Feb 18, 2019 at 02:56:10PM -0300, Esteban Maringolo wrote:
>> I have the requirement that an app that I'm prospecting must be able
>> to work offline and synchronize changes once the connection is
>> restored.
>> 
>> I want to avoid having to write "sync" logic manually.
> 
> I've not done this for real before, but here are some possibilities:
> 
> - https://github.com/sqlite-sync/SQLite-sync.com
> - http://www.symmetricds.org/
> - https://github.com/CanonicalLtd/dqlite
> - Use Fossil as your database
> 
> 
> 




[Pharo-users] How to uncache Commander menu items

2019-02-19 Thread Tim Mackinnon
I was going to write this question - but Denis pinged me on Discord - however I 
thought I would lob this into the list in case someone else hits the problem 
and is searching for it. (Maybe I should stick this in Calypso or Commander 
faq).

My problem was that I had built a sub menu in Calypso and specified the order 
of the menu items as described in the docs.
packageContextMenuActivation


^ CmdContextMenuActivation
byItemOf: ClyExercismMenuGroup
order: self contextMenuOrder
for: ClyTaggedClassGroup asCalypsoItemContext

However when I went to add some icons and change the ordering I was finding 
that my menu wasn’t updating. There are 2 solutions (one better than the other).

The brute force way is: CmdContextMenuActivation resetCache.

The elegant way was to add an annotation to my menu ordering method

contextMenuOrder


^1


Tim

By the way - to see what icons you can use in your menus, inspect: ThemeIcons 
current


[Pharo-users] How do you easily re-categorise methods in Calypso?

2019-02-19 Thread Tim Mackinnon
Hi - I’m scratching my head over how to easily re-caegorise methods in calypso? 
I’ve overridden some methods in subclasses and picked up the wrong category 
(which the critic is slapping me for).

But when I click on the method - I can’t drag it to the new category, so if I 
click on the pencil in the status line (or the current category name - not sure 
why they are independently clickable?) - it shows me a rather unhelpful list of 
protocols. I’m not sure where this list comes from as it doesn’t seem to 
include any of the protocols that are already in the class? (and those which I 
want to use?). So I have to start typing “acces” and can click on accessing…

Am I missing a simple trick - or is this an area that needs some work?


Re: [Pharo-users] Iceberg working with forks - can it be easier?

2019-02-19 Thread Tim Mackinnon
Ah - I think I know whats happened - I didn’t do a proper reset of my fork - 
the real command is:

Tims-MacBook-Pro:pharo-exercism macta$ git fetch exercism
Tims-MacBook-Pro:pharo-exercism macta$ git reset --hard exercism/master
HEAD is now at 28a7a95 Update readme for pharo smalltalk repo name #2 (#134)
Tims-MacBook-Pro:pharo-exercism macta$ git push origin master --force
Total 0 (delta 0), reused 0 (delta 0)
To github.com:macta/pharo-exercism.git
 + 16293c4...28a7a95 master -> master (forced update)

And then you need to make sure you fetch in Pharo again (obvious, but easy to 
forget)

Now I think I’m in good shape.

Tim

> On 19 Feb 2019, at 15:45, Tim Mackinnon  wrote:
> 
> Once again - super helpful - I’ll definitely bookmark this one. Half the 
> problem is that every time I think I understand what is going on and 
> confidently do a bunch of stuff I then discover that its not what I thought. 
> I then jump over to IntelliJ to visualise what the current state is and then 
> try understand how I got to that place - which hasn’t been from doing 
> anything knowingly funky (that comes afterwards when I’ve tried to 
> rationalise/rectify what I think I’m seeing).
> 
> If you don’t mind, I will try and repeat what you’ve said and keep a journal 
> of what I’m doing so we can hopefully make sense of what has happened 3 times 
> now.
> 
> So back to original setup - in GitHub you fork the main repo (pharo for you, 
> but for me it was exercism/pharo due to the name issue - but actually this 
> has proved a useful learning exercise).
> 
> So having forked from exercism/pharo to macta/pharo-exercism , in Pharo I go 
> to clone my repo. (I’ve actually just removed my previous project and said to 
> delete from file system as well)
> 
> So here’s the first thing - if I clone my fork - Pharo helpfully creates 2 
> remotes for me (exercism & origin) if I clone just the origin I then have to 
> add the remote myself - and the prompt for that that is user and url (so a 
> bit less friendly than having the extra GitHub option of user and project).
> 
> So for now - I’ll stick with what I’ve done before (but do you think doing it 
> the more awkward way is better? And can we make it less awkward if it is).
> 
> Now just to be sure - I’ll make sure my fork and origin are in sync (and this 
> is where now I notice why it might have been going wrong, because my current 
> local master is based on that of my fork - which I notice currently on GitHub 
> says its “10 commits ahead of exercism:master”) - and this might be why I’m 
> seeing all those extra commits in my PR (?). Scratching my head on this I’ve 
> realised that when I first started out - I accidentally committed to master 
> on my fork before realising that I had forgotten to create a branch - which I 
> then did (but I guess I left my fork master in a bad state).
> 
> So I have now done:
> git reset --hard exercism/master
> 
> Now my GitHub fork page looks like its correct.
> 
> So I’ve done some categorisation changes in a branch and done a commit and 
> pushed those changes to my fork - but when I go to generate a PR on GitHub in 
> my upstream - its showing 10 commits… g
> 
> So it looks like this (and yes its a mess because I’ve been struggling with 
> this for day and getting the same sort of problem)
> 
> 
> 
> The only thing I can think is that after doing that reset - I can’t recall if 
> I did a pull in pharo - so possibly my image was still synced to the repo 
> prior to me making it equal to upstream?
> 
> But I’ve now just switched to master in my image - created a new branch, and 
> made a simple comment change and pushed that branch back to my fork and its 
> still showing 11 commits (when there should be just 1).
> 
> So I don’t understand whats going on?
> 
> My upstream is exercism/pharo-smalltalk and my fork is macta/pharo-exercism - 
> the comment change I just made was id: 
> 84e581c38d351baddf98a172a01b5bf475ec2e25.
> 
> Is it possible my image is just in a funny state and that simply removing the 
> project at the beginning wasn’t enough?
> 
> Tim
> 
> 
>> On 19 Feb 2019, at 13:08, Guillermo Polito > <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> 
>> 
>> On Tue, Feb 19, 2019 at 2:08 AM Tim Mackinnon > <mailto:tim@testit.works>> wrote:
>> Hi Guille - thanks for taking the time to write this up… in the middle there 
>> I finally spotted the crucial bit “clone the original, push to your fork”. I 
>> think thats what I’ve been doing wrong - and it leads to all kinds of 
>> confusion (at least I’m hoping this is what it is).
>> 
>> 
>> You've been doing nothing wrong :).
>> Both are valid things in Git,

Re: [Pharo-users] How do you easily re-categorise methods in Calypso?

2019-02-20 Thread Tim Mackinnon
No problem Denis - I’m ready to dip a toe in on things like this. I just wanted 
to make sure I wasn’t missing something or stick in old habits.

Just tried a simple fix today and discovered it’s in the Calypso code - so need 
to get my fork sorted again.

Tim

Sent from my iPhone

> On 20 Feb 2019, at 19:21, Denis Kudriashov  wrote:
> 
> Hi Tim.
> 
> It needs to be improved. 
> I simply reused the choose dialog from add protocol command because the 
> change protocol dialog was the part of Nautilus.
> 
> вт, 19 февр. 2019 г., 15:06 Tim Mackinnon tim@testit.works:
>> Hi - I’m scratching my head over how to easily re-caegorise methods in 
>> calypso? I’ve overridden some methods in subclasses and picked up the wrong 
>> category (which the critic is slapping me for).
>> 
>> But when I click on the method - I can’t drag it to the new category, so if 
>> I click on the pencil in the status line (or the current category name - not 
>> sure why they are independently clickable?) - it shows me a rather unhelpful 
>> list of protocols. I’m not sure where this list comes from as it doesn’t 
>> seem to include any of the protocols that are already in the class? (and 
>> those which I want to use?). So I have to start typing “acces” and can click 
>> on accessing…
>> 
>> Am I missing a simple trick - or is this an area that needs some work?


[Pharo-users] Pluralising messages or choosing word alternatives

2019-02-20 Thread Tim Mackinnon
I was browsing some of the Pharo issues (always worth doing) - and noticed an 
interesting one about Test results reporting and pluralisation
(https://github.com/pharo-project/pharo/issues/2578)

In it, I hadn't noticed String>>asPluralBasedOn: before (and judging from many 
messages in the image, many others hadn't either). 

I'm fixing something similar for a refactoring bug and can use this technique 
there (although from memory, it comes with a health warning as if ever we want 
to internalise the messages in Pharo, this will need a different approach). 
However we are probably a distance from doing that - so cleaning up what we 
have is a good start.

Anyway I was curious if there is something to help with messages like:

‘There is 1 occurrence of {1}’  vs ‘There are many occurrences of {1}’, which 
I’d like to write something like:

‘There ‘,  (‘is 1 ’, ‘are many ’) pick: result size, ‘occurrence’ 
asPluralBasedOn: result size, ‘ ‘,  result printString.


Tim




Re: [Pharo-users] Pluralising messages or choosing word alternatives

2019-02-20 Thread Tim Mackinnon
Some great suggestions here guys - I had forgotten there were conditionals in 
expandMacros… that is the better solution.

Although I do kind of think that something on OrderedCollection like:

chooseBasedOn: count

^self at: ((count max: 1) min: self size)

Would be a nice general solution for other things (I’m kind of suprised there 
isn’t something like that there)

> On 20 Feb 2019, at 21:21, Esteban Maringolo  wrote:
> 
> Why not use the condition macro so you have a single string literal, that in 
> the future could be used for translation?
> 
> E.g. 
> | occurences |
> occurences := 3.
> 'There <1?is:are> <2p> <1?occurrence:ocurrences> of <3p>' expandMacrosWith: 
> occurences = 1 with: 3 with: 'Foo'
> 
> 
> Esteban A. Maringolo
> 
> 
> El mié., 20 feb. 2019 a las 18:08, Tim Mackinnon () 
> escribió:
> I was browsing some of the Pharo issues (always worth doing) - and noticed an 
> interesting one about Test results reporting and pluralisation
> (https://github.com/pharo-project/pharo/issues/2578 
> <https://github.com/pharo-project/pharo/issues/2578>)
> 
> In it, I hadn't noticed String>>asPluralBasedOn: before (and judging from 
> many messages in the image, many others hadn't either). 
> 
> I'm fixing something similar for a refactoring bug and can use this technique 
> there (although from memory, it comes with a health warning as if ever we 
> want to internalise the messages in Pharo, this will need a different 
> approach). However we are probably a distance from doing that - so cleaning 
> up what we have is a good start.
> 
> Anyway I was curious if there is something to help with messages like:
> 
> ‘There is 1 occurrence of {1}’  vs ‘There are many occurrences of {1}’, which 
> I’d like to write something like:
> 
> ‘There ‘,  (‘is 1 ’, ‘are many ’) pick: result size, ‘occurrence’ 
> asPluralBasedOn: result size, ‘ ‘,  result printString.
> 
> 
> Tim
> 
> 



[Pharo-users] Windows 64bit, long filename issue but after a second load, how to categorise and report this?

2019-02-21 Thread Tim Mackinnon
We noticed a weird problem when testing the pharo exercism project.

When loading on Windows10 in a fresh 64bit image with the following evaluate in 
the playground:

Metacello new 
 baseline: 'Exercism'; 
 repository: 'github://exercism/pharo-smalltalk:master/dev/src';
 load.

The project seemed to load correctly (but we seemed to hit an issue with an 
http submit giving a 404 error - which weirdly works in 32bit and OSX 64/32). 
Anyway - the real question here is that when trying to reproduce this in a 
second fresh 64bit image 2 users now have reported getting the long filename 
error:

LGit_GIT_EEXISTS: Failed to stat file 
'C:/Users/sam/Documents/Pharo/images/exercism-test-run-7.0-32...stance/testRaiseUnexpectedMessageWhenTooMuchMessages.st':
 The filename or extension is too long.

And the second user got the same but with a different filename: 
ruleRBUtlitiesMethodsRuleV1FalsePositve.st

I know there is a long standing problem with Windows and file path lengths - 
but why would it work the first time and then subsequently fail in fresh 
installs? Is something being cached on windows that isn’t on other platforms? 
(Writing this - I’m wondering if there is that shared pharo Iceberg setting for 
Share repos that might be implicated?)

Also - given Exercism is in Tonel format and those files aren’t in exercism, 
and in fact I’m struggling to find where they are defined (my images don’t have 
them) - there is something very weird going on.

I wonder if we have another error that is masking all of this?

Ultimately my question is - where is the Pharo issue that is tracking this 
problem? I’ve seen it mentioned lots of times here, but can’t see anything in 
the issues that I can tack the above onto?

For reference - our exercism issue is: 
https://github.com/exercism/pharo-smalltalk/issues/140

Tim


Re: [Pharo-users] Windows 64bit, long filename issue but after a second load, how to categorise and report this?

2019-02-21 Thread Tim Mackinnon
Hi Ben - while I understand the description below - why would it work the first 
time (no errors) and then fail the second time in a fresh image? Are we really 
sure its just down to non-determinism of the load process (possibly - but it 
seems very suspicious to me). There is something more fishy about windows going 
on I suspect…

I will track down the Exercism dependencies to see if any of them are FileTree 
- having said that, on OSX (where it loads cleanly - I would expect to be able 
to find one of those methods in my image - but again I can’t? They look like 
valid methods - but why aren’t they in my image? Its like the load process is 
downloading other stuff on its own and then not loading that into the image?

I’m just worried that we keep blaming windows (and yes its dumb having a file 
length restriction I this day and age) - but maybe we are missing another 
problem too?

Tim

> On 21 Feb 2019, at 13:20, Ben Coman  wrote:
> 
> 
> 
> On Thu, 21 Feb 2019 at 20:36, Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> We noticed a weird problem when testing the pharo exercism project.
> 
> When loading on Windows10 in a fresh 64bit image with the following evaluate 
> in the playground:
> 
> Metacello new 
>  baseline: 'Exercism'; 
>  repository: 'github://exercism/pharo-smalltalk:master/dev/src';
>  load.
> 
> The project seemed to load correctly (but we seemed to hit an issue with an 
> http submit giving a 404 error - which weirdly works in 32bit and OSX 64/32). 
> Anyway - the real question here is that when trying to reproduce this in a 
> second fresh 64bit image 2 users now have reported getting the long filename 
> error:
> 
> LGit_GIT_EEXISTS: Failed to stat file 
> 'C:/Users/sam/Documents/Pharo/images/exercism-test-run-7.0-32...stance/testRaiseUnexpectedMessageWhenTooMuchMessages.st':
>  The filename or extension is too long.
> 
> And the second user got the same but with a different filename: 
> ruleRBUtlitiesMethodsRuleV1FalsePositve.st 
> 
> These files are both method names which indicates FileTree format rather than 
> Tonel (and these "failed to stat file" errors on Windows is one of the 
> reasons for the move to Tonel).  It may be from one of the dependencies that 
> are pulled in. To identify which, search for that file under 
> `pharo-local/iceberg` directory.  I believe the repo may have been cloned 
> successfully, its just the libgit binary can't `stat` long filenames.  If 
> that turns out the be untrue, use commandline git to complete the clone and 
> you will likely see it.
>  
> 
> I know there is a long standing problem with Windows and file path lengths - 
> but why would it work the first time and then subsequently fail in fresh 
> installs? Is something being cached on windows that isn’t on other platforms? 
> (Writing this - I’m wondering if there is that shared pharo Iceberg setting 
> for Share repos that might be implicated?)
> 
> Also - given Exercism is in Tonel format and those files aren’t in exercism, 
> and in fact I’m struggling to find where they are defined
> 
> as above.
> 
>  
> (my images don’t have them) - there is something very weird going on.
> 
> I wonder if we have another error that is masking all of this?
> 
> Ultimately my question is - where is the Pharo issue that is tracking this 
> problem? I’ve seen it mentioned lots of times here, but can’t see anything in 
> the issues that I can tack the above onto?
> 
> Filetree on Windows is constrained by long filename issues with libgit.
> 
> cheers -ben



Re: [Pharo-users] Windows 64bit, long filename issue but after a second load, how to categorise and report this?

2019-02-21 Thread Tim Mackinnon
Some interesting thoughts below - but my understanding is these images are 
being created by Pharo Launcher , so they should be isolated from one another?

I also don’t understand why you can load with 32bit (multiple images) but only 
once with 64bit. Do we load radically different git code with longer paths on 
64bit? (Strange isn’t it?)

Possibly worth caveating this is with 2-3 users so far, and only noticed this 
pattern with the last one.

Also - has anyone created an issue for these path problems - I’m curious if my 
results match anything else.

Tim 

Sent from my iPhone

> On 21 Feb 2019, at 16:01, Henrik Sperre Johansen 
>  wrote:
> 
> Tim Mackinnon wrote
>> Hi Ben - while I understand the description below - why would it work the
>> first time (no errors) and then fail the second time in a fresh image? Are
>> we really sure its just down to non-determinism of the load process
>> (possibly - but it seems very suspicious to me). There is something more
>> fishy about windows going on I suspect…
> 
> The Iceberg cache path is relative to the image folder, so it's at least
> possible to have success in one image, located in C:\Pharo\testImage\, while
> another image, reciding in something like
> C:\Users\sam\Documents\Pharo\images\exercism-test-run-7.0-32\ , fails to
> load the exact same filetree package...
> 
> 
> Tim Mackinnon wrote
>> I will track down the Exercism dependencies to see if any of them are
>> FileTree - having said that, on OSX (where it loads cleanly - I would
>> expect to be able to find one of those methods in my image - but again I
>> can’t? They look like valid methods - but why aren’t they in my image? Its
>> like the load process is downloading other stuff on its own and then not
>> loading that into the image?
> 
> Yeaaah, that sounds fishy.
> But at least the first method sounds like a test, which may be part of the
> packages in the git repo that gets cloned without being loaded by Metacello,
> if the Metacello dependency specifies a *Core group which does not include
> tests.
> 
> 
> Tim Mackinnon wrote
>> I’m just worried that we keep blaming windows (and yes its dumb having a
>> file length restriction I this day and age) - but maybe we are missing
>> another problem too?
>> 
>> Tim
> 
> To be pendantic, (and not of much actual help, sorry :/ ) the problem isn't
> really with Windows, which provides API's for getting file info that handle
> long paths just fine, but with libgit, which is probably compiled against
> some POSIX stat implementation provided by Cygwin/mingw, which does not.
> 
> Cheers,
> Henry 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




[Pharo-users] What does the Package and Sub-Package comment do?

2019-02-22 Thread Tim Mackinnon
Hi - I notice that you can sort of put comments on packages - but I’m not sure 
if this is working or if its supposed to work?

When I type something it seems to create and extra Manifest tag, and then the 
comment that I type seems to be the same for the package and all of its sub 
tags?

Is this a work in progress? Should Calypso even show a comment for the tags (or 
is it read only for them - as its the parent).

I’m just not clear on what it does, and whether I can programmatically add 
stuff to it or not? (I was thinking for exercism to store exercise information 
there - but maybe I will stick to the test class comment)

Tim


[Pharo-users] Interval form: x to: y when x > y - or how to count down...

2019-02-22 Thread Tim Mackinnon
I've just been caught out with Intervals - why can't you do: 
5 to: 1 do: [ :i | Transcript show: i printString]  (eg a negative interval)?

if you want to iterate down a series of numbers do you really have to do: 
5 to: 1 by: -1 do: […

I always assumed that if x > y the step was automatically -1 (but its not).

I asked on Discord - and someone pointed out that if you use variables it could 
be ambiguous - but is it really? I don’t know if other smalltalks do it this 
way (I vaguely recall Dolphin going down, but not sure).

Either way the Interval comment should mention this - and I’ll correct it when 
I get the wisdom of the crowd here.

Tim


[Pharo-users] How to test a new Iceberg baseline?

2019-02-22 Thread Tim Mackinnon
How does one go about testing an Iceberg/metacello baseline?

Two parts to this actually - I want to check one under my control - and am 
wondering if there is a lint checker or some way to tell me what it will load 
(without having to check it in and try. Or if you do this - can you test 
loading from a branch?

Similarly - if I want to try improving a baseline in another project - is there 
an easy way to do this (in this case, I can’t really check it in - or I suppose 
I can fork all the dependencies and put them all in branches - but then how do 
convince each part of the chain to load from my fork… this sounds like a world 
of pain).

So any tips?

Tim


Re: [Pharo-users] Interval form: x to: y when x > y - or how to count down...

2019-02-22 Thread Tim Mackinnon
If it’s always been that way - and things rely on it, sure.

But it doesn’t feel like the Smalltalk way to me.

Having to know about adding -1 seems very C, whereas Smalltalk always seems 
more natural ... and 5 to: 1 seems like you would count down, not be an empty 
range and do nothing.

But as you say, it’s personal. I’m still curious though.

Tim

Sent from my iPhone

> On 22 Feb 2019, at 16:13, Konrad Hinsen  wrote:
> 
>> On 22/02/2019 15:57, Tim Mackinnon wrote:
>> I've just been caught out with Intervals - why can't you do:
>> 5 to: 1 do: [ :i | Transcript show: i printString]  (eg a negative interval)?
>> 
>> if you want to iterate down a series of numbers do you really have to do:
>> 5 to: 1 by: -1 do: […
>> 
>> I always assumed that if x > y the step was automatically -1 (but its not).
> 
> Expectations are obviously personal, but as far as I am concerned, I'd expect 
> to see the behavior that Pharo implements. If you don't specify by:, you get 
> a default value of 1. That's much simpler than a default value depending on 
> the bounds of the interval.
> 
> Konrad.
> 
> 




[Pharo-users] Why is #findString: in accessing?

2019-02-25 Thread Tim Mackinnon
I always struggle (even after years of casually using smalltalk) to find the 
String methods that do the heavy lifting (and are comparable to other 
languages). The methods are normally there, but they often have names that 
don’t compare well with other languages.

I think that what doesn’t help is the categorisation of methods in String - for 
example - if I want to do some searching in a String - why is #findString: in 
‘accessing’ - I totally didn’t think to look in there. To be honest, I really 
wanted a protocol called ‘searching’ - but its not there? 

I find the protocols in the system to be pretty bad in all honesty. Its a good 
idea, but I don’t think its clear on whether its protocol, or category. And if 
the former - where are the tools to help ensure things conform to a protocol? 
If the latter - where are the useful, commonly used categories?

Are there any plans to do anything in this area - or is it just a lump it 
scenario?

Tim


Re: [Pharo-users] Why is #findString: in accessing?

2019-02-25 Thread Tim Mackinnon
Hi Sven, thanks for kicking in - yes I do resort to that Finder (and I keep 
meaning to learn how to port that example search to spotter somehow) - however 
it only works for non-keyword selectors… (another one to investigate to see if 
it could potentially let you specify a parameter for its search).

I still wonder however if a category for ‘searching’ might be way more 
approachable - as accessing is far to broad on collection classes?

Tim

> On 25 Feb 2019, at 11:40, Sven Van Caekenberghe  wrote:
> 
> Tim,
> 
> It always takes effort to learn a new language/environment/library. You can't 
> expect it to be the same to what you know, or for things to be where you 
> expect them.
> 
> String is also one of the most overloaded classes in the system, it will 
> never be clean.
> 
> Lots of things fall under 'accessing', that finding something is classified 
> as such, does not really surprise me.
> 
> Did you know about the Finder 'by example search' ? Here is how to find your 
> selector:
> 
> 
> 
> HTH,
> 
> Sven
> 
>> On 25 Feb 2019, at 12:19, Tim Mackinnon > <mailto:tim@testit.works>> wrote:
>> 
>> I always struggle (even after years of casually using smalltalk) to find the 
>> String methods that do the heavy lifting (and are comparable to other 
>> languages). The methods are normally there, but they often have names that 
>> don’t compare well with other languages.
>> 
>> I think that what doesn’t help is the categorisation of methods in String - 
>> for example - if I want to do some searching in a String - why is 
>> #findString: in ‘accessing’ - I totally didn’t think to look in there. To be 
>> honest, I really wanted a protocol called ‘searching’ - but its not there? 
>> 
>> I find the protocols in the system to be pretty bad in all honesty. Its a 
>> good idea, but I don’t think its clear on whether its protocol, or category. 
>> And if the former - where are the tools to help ensure things conform to a 
>> protocol? If the latter - where are the useful, commonly used categories?
>> 
>> Are there any plans to do anything in this area - or is it just a lump it 
>> scenario?
>> 
>> Tim
> 



Re: [Pharo-users] What does the Package and Sub-Package comment do?

2019-02-25 Thread Tim Mackinnon
Anyone have any thoughts on this? Not sure whether to report a bug or not.


> On 22 Feb 2019, at 14:48, Tim Mackinnon  wrote:
> 
> Hi - I notice that you can sort of put comments on packages - but I’m not 
> sure if this is working or if its supposed to work?
> 
> When I type something it seems to create and extra Manifest tag, and then the 
> comment that I type seems to be the same for the package and all of its sub 
> tags?
> 
> Is this a work in progress? Should Calypso even show a comment for the tags 
> (or is it read only for them - as its the parent).
> 
> I’m just not clear on what it does, and whether I can programmatically add 
> stuff to it or not? (I was thinking for exercism to store exercise 
> information there - but maybe I will stick to the test class comment)
> 
> Tim




Re: [Pharo-users] Windows 64bit, long filename issue but after a second load, how to categorise and report this?

2019-02-25 Thread Tim Mackinnon
Just to add some additional notes on this (and I will also file an issue, as I 
don’t think one has been submitted, and I don’t think this is fully down to 
file path length alone) -

After some more testing, we have also seen the error on Windows 32bit as well 
(so while easier to get in 64bit, it does occur in 32bit like others have 
reported).

My real concern however, is that a simple project (which admittedly pulls in a 
single Filetree prerequisite - PharoWebBrowser) seems to trigger this error - 
but confusingly references files that don’t appear to be in the image. Tracing 
through PharoWebBrowser - there are some file tree based pre-reques and some 
that are mcz - and none of them have files like: 
testRaiseUnexpectedMessageWhenTooMuchMessages.st

And this method is not in the image that gets loaded into OSX.  So I am 
wondering where these long files are coming from?

So yes, while there is a long filename issue - is there another hidden issue 
underneath all of this where files we aren’t even using are getting reference 
somehow?

Tim

> On 22 Feb 2019, at 00:01, Tim Mackinnon  wrote:
> 
> Some interesting thoughts below - but my understanding is these images are 
> being created by Pharo Launcher , so they should be isolated from one another?
> 
> I also don’t understand why you can load with 32bit (multiple images) but 
> only once with 64bit. Do we load radically different git code with longer 
> paths on 64bit? (Strange isn’t it?)
> 
> Possibly worth caveating this is with 2-3 users so far, and only noticed this 
> pattern with the last one.
> 
> Also - has anyone created an issue for these path problems - I’m curious if 
> my results match anything else.
> 
> Tim 
> 
> Sent from my iPhone
> 
>> On 21 Feb 2019, at 16:01, Henrik Sperre Johansen 
>>  wrote:
>> 
>> Tim Mackinnon wrote
>>> Hi Ben - while I understand the description below - why would it work the
>>> first time (no errors) and then fail the second time in a fresh image? Are
>>> we really sure its just down to non-determinism of the load process
>>> (possibly - but it seems very suspicious to me). There is something more
>>> fishy about windows going on I suspect…
>> 
>> The Iceberg cache path is relative to the image folder, so it's at least
>> possible to have success in one image, located in C:\Pharo\testImage\, while
>> another image, reciding in something like
>> C:\Users\sam\Documents\Pharo\images\exercism-test-run-7.0-32\ , fails to
>> load the exact same filetree package...
>> 
>> 
>> Tim Mackinnon wrote
>>> I will track down the Exercism dependencies to see if any of them are
>>> FileTree - having said that, on OSX (where it loads cleanly - I would
>>> expect to be able to find one of those methods in my image - but again I
>>> can’t? They look like valid methods - but why aren’t they in my image? Its
>>> like the load process is downloading other stuff on its own and then not
>>> loading that into the image?
>> 
>> Yeaaah, that sounds fishy.
>> But at least the first method sounds like a test, which may be part of the
>> packages in the git repo that gets cloned without being loaded by Metacello,
>> if the Metacello dependency specifies a *Core group which does not include
>> tests.
>> 
>> 
>> Tim Mackinnon wrote
>>> I’m just worried that we keep blaming windows (and yes its dumb having a
>>> file length restriction I this day and age) - but maybe we are missing
>>> another problem too?
>>> 
>>> Tim
>> 
>> To be pendantic, (and not of much actual help, sorry :/ ) the problem isn't
>> really with Windows, which provides API's for getting file info that handle
>> long paths just fine, but with libgit, which is probably compiled against
>> some POSIX stat implementation provided by Cygwin/mingw, which does not.
>> 
>> Cheers,
>> Henry 
>> 
>> 
>> 
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>> 
> 
> 




Re: [Pharo-users] Windows 64bit, long filename issue but after a second load, how to categorise and report this?

2019-02-25 Thread Tim Mackinnon
I’ve created - https://github.com/pharo-vcs/iceberg/issues/1204

> On 25 Feb 2019, at 17:12, Tim Mackinnon  wrote:
> 
> Just to add some additional notes on this (and I will also file an issue, as 
> I don’t think one has been submitted, and I don’t think this is fully down to 
> file path length alone) -
> 
> After some more testing, we have also seen the error on Windows 32bit as well 
> (so while easier to get in 64bit, it does occur in 32bit like others have 
> reported).
> 
> My real concern however, is that a simple project (which admittedly pulls in 
> a single Filetree prerequisite - PharoWebBrowser) seems to trigger this error 
> - but confusingly references files that don’t appear to be in the image. 
> Tracing through PharoWebBrowser - there are some file tree based pre-reques 
> and some that are mcz - and none of them have files like: 
> testRaiseUnexpectedMessageWhenTooMuchMessages.st
> 
> And this method is not in the image that gets loaded into OSX.  So I am 
> wondering where these long files are coming from?
> 
> So yes, while there is a long filename issue - is there another hidden issue 
> underneath all of this where files we aren’t even using are getting reference 
> somehow?
> 
> Tim
> 
>> On 22 Feb 2019, at 00:01, Tim Mackinnon  wrote:
>> 
>> Some interesting thoughts below - but my understanding is these images are 
>> being created by Pharo Launcher , so they should be isolated from one 
>> another?
>> 
>> I also don’t understand why you can load with 32bit (multiple images) but 
>> only once with 64bit. Do we load radically different git code with longer 
>> paths on 64bit? (Strange isn’t it?)
>> 
>> Possibly worth caveating this is with 2-3 users so far, and only noticed 
>> this pattern with the last one.
>> 
>> Also - has anyone created an issue for these path problems - I’m curious if 
>> my results match anything else.
>> 
>> Tim 
>> 
>> Sent from my iPhone
>> 
>>> On 21 Feb 2019, at 16:01, Henrik Sperre Johansen 
>>>  wrote:
>>> 
>>> Tim Mackinnon wrote
>>>> Hi Ben - while I understand the description below - why would it work the
>>>> first time (no errors) and then fail the second time in a fresh image? Are
>>>> we really sure its just down to non-determinism of the load process
>>>> (possibly - but it seems very suspicious to me). There is something more
>>>> fishy about windows going on I suspect…
>>> 
>>> The Iceberg cache path is relative to the image folder, so it's at least
>>> possible to have success in one image, located in C:\Pharo\testImage\, while
>>> another image, reciding in something like
>>> C:\Users\sam\Documents\Pharo\images\exercism-test-run-7.0-32\ , fails to
>>> load the exact same filetree package...
>>> 
>>> 
>>> Tim Mackinnon wrote
>>>> I will track down the Exercism dependencies to see if any of them are
>>>> FileTree - having said that, on OSX (where it loads cleanly - I would
>>>> expect to be able to find one of those methods in my image - but again I
>>>> can’t? They look like valid methods - but why aren’t they in my image? Its
>>>> like the load process is downloading other stuff on its own and then not
>>>> loading that into the image?
>>> 
>>> Yeaaah, that sounds fishy.
>>> But at least the first method sounds like a test, which may be part of the
>>> packages in the git repo that gets cloned without being loaded by Metacello,
>>> if the Metacello dependency specifies a *Core group which does not include
>>> tests.
>>> 
>>> 
>>> Tim Mackinnon wrote
>>>> I’m just worried that we keep blaming windows (and yes its dumb having a
>>>> file length restriction I this day and age) - but maybe we are missing
>>>> another problem too?
>>>> 
>>>> Tim
>>> 
>>> To be pendantic, (and not of much actual help, sorry :/ ) the problem isn't
>>> really with Windows, which provides API's for getting file info that handle
>>> long paths just fine, but with libgit, which is probably compiled against
>>> some POSIX stat implementation provided by Cygwin/mingw, which does not.
>>> 
>>> Cheers,
>>> Henry 
>>> 
>>> 
>>> 
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>> 
>> 
>> 
> 
> 




Re: [Pharo-users] Windows 64bit, long filename issue but after a second load, how to categorise and report this?

2019-02-26 Thread Tim Mackinnon
I’ve been able to find out more information about this - and have now got the 
full filename and error in question:
`'C:/Users/sam/Documents/Pharo/images/exercism-test-run-7.0-32bit/pharo-local/iceberg/dionisiydk/StateSpecs/StateSpecs-DSL-PragmaBasedShouldExpressions-Tests.package/SpecOfShouldExpressionDriverTests.class/instance/testRaiseUnexpectedMessageWhenTooMuchMessages.st':
 The filename or extension is too long.`

So the path is 262 characters long. (hence the error)

The package this file is in, is a downstream project prerequisite for 
PharoWebBrowser - which is dragged in because that project doesn't have 
different groupings for code and tests (something I am working with Sean to try 
to get resolved - although I’m scratching my head on how you can test 
baselines?).

We don't see this in the image in OSX because the included baseline doesn't 
actually pre-req these pragma based tests? 

However from below, have I now understood that when we reference a project, we 
end up cloning the whole repository for that repo on disk (so one big read), 
and then metacello picks out the relevant files from the baseline.  So 
possibly, this might be some orphaned files/packages in the repo - that iceberg 
no longer knows about, but git does?

The longer term fix is to convert PharoWebBrowser to Tonel and see if we can 
improve the grouping.

Tim

> On 25 Feb 2019, at 17:19, Tim Mackinnon  wrote:
> 
> I’ve created - https://github.com/pharo-vcs/iceberg/issues/1204
> 
>> On 25 Feb 2019, at 17:12, Tim Mackinnon  wrote:
>> 
>> Just to add some additional notes on this (and I will also file an issue, as 
>> I don’t think one has been submitted, and I don’t think this is fully down 
>> to file path length alone) -
>> 
>> After some more testing, we have also seen the error on Windows 32bit as 
>> well (so while easier to get in 64bit, it does occur in 32bit like others 
>> have reported).
>> 
>> My real concern however, is that a simple project (which admittedly pulls in 
>> a single Filetree prerequisite - PharoWebBrowser) seems to trigger this 
>> error - but confusingly references files that don’t appear to be in the 
>> image. Tracing through PharoWebBrowser - there are some file tree based 
>> pre-reques and some that are mcz - and none of them have files like: 
>> testRaiseUnexpectedMessageWhenTooMuchMessages.st
>> 
>> And this method is not in the image that gets loaded into OSX.  So I am 
>> wondering where these long files are coming from?
>> 
>> So yes, while there is a long filename issue - is there another hidden issue 
>> underneath all of this where files we aren’t even using are getting 
>> reference somehow?
>> 
>> Tim
>> 
>>> On 22 Feb 2019, at 00:01, Tim Mackinnon  wrote:
>>> 
>>> Some interesting thoughts below - but my understanding is these images are 
>>> being created by Pharo Launcher , so they should be isolated from one 
>>> another?
>>> 
>>> I also don’t understand why you can load with 32bit (multiple images) but 
>>> only once with 64bit. Do we load radically different git code with longer 
>>> paths on 64bit? (Strange isn’t it?)
>>> 
>>> Possibly worth caveating this is with 2-3 users so far, and only noticed 
>>> this pattern with the last one.
>>> 
>>> Also - has anyone created an issue for these path problems - I’m curious if 
>>> my results match anything else.
>>> 
>>> Tim 
>>> 
>>> Sent from my iPhone
>>> 
>>>> On 21 Feb 2019, at 16:01, Henrik Sperre Johansen 
>>>>  wrote:
>>>> 
>>>> Tim Mackinnon wrote
>>>>> Hi Ben - while I understand the description below - why would it work the
>>>>> first time (no errors) and then fail the second time in a fresh image? Are
>>>>> we really sure its just down to non-determinism of the load process
>>>>> (possibly - but it seems very suspicious to me). There is something more
>>>>> fishy about windows going on I suspect…
>>>> 
>>>> The Iceberg cache path is relative to the image folder, so it's at least
>>>> possible to have success in one image, located in C:\Pharo\testImage\, 
>>>> while
>>>> another image, reciding in something like
>>>> C:\Users\sam\Documents\Pharo\images\exercism-test-run-7.0-32\ , fails to
>>>> load the exact same filetree package...
>>>> 
>>>> 
>>>> Tim Mackinnon wrote
>>>>> I will track down the Exercism dependencies to see if any of them are
>>>>> FileTree - having said that

[Pharo-users] The confusing state of SUnit

2019-02-26 Thread Tim Mackinnon
Forgive me father, for I have sinned… but when I try to right good tests, that 
fail in a way I can understand them it seems that SUnit doesn’t want to help me…

Maybe I am missing something, but in 2019 it should be easy to write tests - 
particularly when we want people to contribute to adding more?

So when I want to right a test to assure that I’ve thrown an exception with the 
right message, why is it so hard (in the core image)? Am I missing something 
obvious?

My example model is supposed to throw a DomainException with a message 
indicating that the strings :are of different lengths” - I search Sunit and hit:


#should: raise: whoseDescriptionDoesNotInclude: description:

Awesome, so it fails - but does it make it easy to know what damn string I 
got….. no that would be too easy? Its almost impossible to easily see what 
happened the way it works.

Instead I have to write:

self
should: [ hammingCalculator distanceStrand1: 'AATG' strand2: 
'AAA' ]
raise: DomainError
withExceptionDo: [ :ex |
self assert: ex messageText equals: 'left and right 
strands must be of equal length' ].


And god forbid if I want to just ensure that the beginning of my error message 
is correct?

Why do we make this so hard? I know we don’t want to pollute the image, but 
testing is important, it should be easy for obvious cases and it should be more 
built in and less obscure. Is there something built in that makes this easier? 
Do I really have to load in more libraries for the easy cases?

Tim




Re: [Pharo-users] The confusing state of SUnit

2019-02-27 Thread Tim Mackinnon
No - my point is, why are the basics for reasonable testing not in the image? 
Such that tests are easy, and a joy to write where failures are obvious when 
they occur.

We seem to have 2 extremes - assert:equals: does a lovely job of showing what 
it expects and you got with a nice diff view (that is fab) - then the other 
extreme of testing an exception message which is unfathomable….

I’m not asking for all the esoteric combinations - but a good foundation to 
build tests on should be in the image. Extra bells and wistles should be easy 
to load for more advanced testing. (We kind of have that, but its spread across 
multiple projects that might be consolidat-able).

SUnit is now 30 years old - advancements have been made, and the other xUnit 
derivatives now all do a much better job than us which makes me very sad.

As mentioned, we do equality (and inequality) well, collection equality looks 
good too - exception testing is present but not good enough.
I also argue that  "greater and less than" are common, as are some basic 
collection checks (notably String begins, ends, contains and regex).

I agree with the argument that we don’t want to bloat the image - but doing the 
above well is so important to ensure we can easily write great tests, 
particularly when we find a problem and want to whip up at test to help 
understand how to solve it (many of our tests in the image are not as helpful 
as they could be).

Is there at least some agreement to sorting this out? Could we put it on the 
8.0 roadmap (its a tiny win, and quite easy to do - although cleaning up the 
old tests to use better features is a harder job - but worth it IMHO).

This all comes out of my casual work on Exercism, which is about teaching 
people how to use a core language/environment and demonstrate how amazing that 
environment is. In many respects our advancements show case well :
- zero conf lets us get an environment up and running in peoples hands in less 
than a minute (I don’t think many of the other 30 language on there can do 
this) 
- git/tonel/zinc lets us play nicely with their cloud based platform
- opal/moldable debugger/undeclared variables lets us do TDD as it was meant to 
be
- iceberg (and GitHub) lets us create a project where community contribution is 
easy

I think we still fall a bit short in our IDE (not faulting Calypso - its still 
work in progress and needs more help), testing (as per above), language 
documentation (we have too much old out of date stuff).

The good far outweighs the needs improvement, but the journey is still ongoing.


Tim


> On 27 Feb 2019, at 07:29, jtuc...@objektfabrik.de wrote:
> 
> So you are suggesting an extension of SUnit. Great. You just forgot to attach 
> your code ;-)
> 
> BTW: I think the current imnplementations of SUnit already carry a large 
> amount of pollution. Just because JUnit and friends introduced special 
> methods for testing equality and such, we also have this noise in SUnit.
> This is not to say your suggestion would be useless. Just make a proposal and 
> let's discuss.
> 
> 
> Joachim
> 
> 
> Am 27.02.19 um 01:14 schrieb Tim Mackinnon:
>> Forgive me father, for I have sinned… but when I try to right good tests, 
>> that fail in a way I can understand them it seems that SUnit doesn’t want to 
>> help me…
>> 
>> Maybe I am missing something, but in 2019 it should be easy to write tests - 
>> particularly when we want people to contribute to adding more?
>> 
>> So when I want to right a test to assure that I’ve thrown an exception with 
>> the right message, why is it so hard (in the core image)? Am I missing 
>> something obvious?
>> 
>> My example model is supposed to throw a DomainException with a message 
>> indicating that the strings :are of different lengths” - I search Sunit and 
>> hit:
>> 
>> 
>> #should: raise: whoseDescriptionDoesNotInclude: description:
>> 
>> Awesome, so it fails - but does it make it easy to know what damn string I 
>> got….. no that would be too easy? Its almost impossible to easily see 
>> what happened the way it works.
>> 
>> Instead I have to write:
>> 
>> self
>>  should: [ hammingCalculator distanceStrand1: 'AATG' strand2: 
>> 'AAA' ]
>>  raise: DomainError
>>  withExceptionDo: [ :ex |
>>  self assert: ex messageText equals: 'left and right 
>> strands must be of equal length' ].
>>  
>> 
>> And god forbid if I want to just ensure that the beginning of my error 
>> message is correct?
>> 
>> Why do we make this so hard? I know we don’t want to pollute the image, but 
>> testing is important, it should be easy for 

Re: [Pharo-users] Interval form: x to: y when x > y - or how to count down...

2019-02-28 Thread Tim Mackinnon
Hi Richard - but why would you expect 1 to: 0 to give you an empty sequence?

If I inspect “0 to: 1” I see:
1 -> 0
2 -> 1

So I would expect “1 to: 0” to see:
1 -> 1
2 -> 0.

I asked for a sequence going from 1 down to 0 (in my mind).  Knowing about all 
the by: -1 stuff seems very C’ish.

Of course, I get that maybe it will break peoples existing code (and maybe that 
would be why it never gets changed) - but it still feels very strange. Or am I 
missing something?

Tim

> On 28 Feb 2019, at 12:38, Richard O'Keefe  wrote:
> 
> Of the couple of hundred programming languages I have
> used, there is precisely one that does what you expect
> (the S programming language, as implemented in R).
> And it is a major pain in the posterior with no upside
> that I can discern.
> 
> Suppose I want a sequence of n consecutive integers
> beginning with 1.  In Smalltalk, (1 to: n) does the
> job.  In R, 1:n *almost* does the job.  But what
> happens when n = 0?  Smalltalk gives me the right
> answer: an empty sequence.  R gives me (1,0).  That
> means that *every* *flaming* *time* I write
> for (i in 1:n) {...}
> I have to take special care to ensure that n is not
> 0, sometimes even having to whack in an extra
> if (n > 0) for (i in 1:n) {...}
> 
> Trawling through my Smalltalk code, I find that about
>  6.8% of my counted loops are by: -1,
>  0.7% of them are by: a negative number other than -1,
>  2.5% of them are by: a positive number other than 1,
> 90  % are just to:do: with no by:
> Inspecting some of the 90% showed that many of them
> would go catastrophically wrong if 1 to: 0 do: 
> performed its body
> 
> On Sat, 23 Feb 2019 at 03:58, Tim Mackinnon  wrote:
> I've just been caught out with Intervals - why can't you do: 
> 5 to: 1 do: [ :i | Transcript show: i printString]  (eg a negative interval)?
> 
> if you want to iterate down a series of numbers do you really have to do: 
> 5 to: 1 by: -1 do: […
> 
> I always assumed that if x > y the step was automatically -1 (but its not).
> 
> I asked on Discord - and someone pointed out that if you use variables it 
> could be ambiguous - but is it really? I don’t know if other smalltalks do it 
> this way (I vaguely recall Dolphin going down, but not sure).
> 
> Either way the Interval comment should mention this - and I’ll correct it 
> when I get the wisdom of the crowd here.
> 
> Tim



[Pharo-users] How to write out simple Json?

2019-02-28 Thread Tim Mackinnon
I am stumped about how to write out some simple json (for a config file). I 
didn't think I need Neo, and STONJSON would be fine but it seems like creating 
items like: 

{ 'id'-> self id. 'name' -> self name }

gives an error about the association. I think you have to do: { ('id'-> self 
id) asDictionary. ('name' -> self name) asDictionary } everywhere….

But when I switch over to NeoJsonWriter it also complains about Assocations 
too. I just want a simple output like:
{ "id" : 12, "name" : "tim” }

I thought it was simple to do this? Am I missing something obvious.

Tim


Re: [Pharo-users] How to write out simple Json?

2019-02-28 Thread Tim Mackinnon
Hi Sven - is there no convenience shortcut we can use in our code to make this 
less wordy when we are specifying it?

E.g. the following is very convenient to write - but doesn’t work (as you have 
$‘ and not $“ )

ex := { 'track'-> 'pharo'. 
'language' -> 'smalltalk'.
 'exercises' ->
{'slug' -> 'hello'.
'id' -> 55.
'topics' -> #('a' 'b' 'c') }
}.

String streamContents: [ :stream |
(STONWriter on: (stream)) prettyPrint: true;writeList: ex ].

I had thought maybe NeoJSON might help and put:

String streamContents: [ :stream |
(NeoJSONWriter on: (stream)) prettyPrint: true;
"mapInstVarsFor: Association;"
nextPut: ex ].

But I get the error about missing an association mapping. If I uncomment that 
bit - I get things like: { "value" : “pharo" },

So is there a way I can write a simple mapper for Association that will write 
out the key in a string and the value in a string?

I’m quite suprised we can’t easily write out fragments of Json in our code in a 
light weight way? Or do I need to make a proper Config object and then teach it 
how to map properly such that rather than fiddling with our { x->y } dictionary 
sugar I do something like:

  Config new at: ‘id’ is: 123; at: ‘name’ is: ‘Tim’; at: ‘exercises’ is: #(1 2 
3).

And I guess at:is: can do the Association asDictionary thing?

But I thought Neo might give me something like that, as it must be terribly 
common?

Tim

> On 28 Feb 2019, at 13:16, Sven Van Caekenberghe  wrote:
> 
> STONJSON toString: { #id->1. #name->'tim' } asDictionary.
> 
> JSON cannot deal with Associations by themselves.
> 
>> On 28 Feb 2019, at 14:05, Tim Mackinnon  wrote:
>> 
>> I am stumped about how to write out some simple json (for a config file). I 
>> didn't think I need Neo, and STONJSON would be fine but it seems like 
>> creating items like: 
>> 
>> { 'id'-> self id. 'name' -> self name }
>> 
>> gives an error about the association. I think you have to do: { ('id'-> self 
>> id) asDictionary. ('name' -> self name) asDictionary } everywhere….
>> 
>> But when I switch over to NeoJsonWriter it also complains about Assocations 
>> too. I just want a simple output like:
>> { "id" : 12, "name" : "tim” }
>> 
>> I thought it was simple to do this? Am I missing something obvious.
>> 
>> Tim
> 
> 




<    1   2   3   4   5   6   7   8   >