Re: [Pharo-users] Tonel, Pharo 6.1 and file per class?

2018-05-09 Thread Tim Mackinnon
Hmmm - I don’t think I’ve fully understood the instructions. If I already have 
a project in filetree git format - does creating the .properties file work? 
What do I do to convert it to tonel format? I think I’ve noticed a few 
announcements where people have said they’ve moved to the new tonel format - so 
how did they do it?

I tried using git on the command line to add .properties file there - but not 
sure it did anything?

Tim

> On 9 May 2018, at 15:21, Tim Mackinnon  wrote:
> 
> Ah - I missed that piece of information - could that be put on the iceberg 
> readme.md? In fact - I’ll submit a pr so you can keep motoring on getting it 
> all to work (I really want a stable git environment - we are getting sooo 
> close).
> 
> Tim
> 
>> On 9 May 2018, at 11:34, Esteban Lorenzano  wrote:
>> 
>> the problem is that tonel relies in a .properties file to know a repository 
>> format. 
>> and for backward compatibility, if this .properties file is not present, 
>> iceberg assumes the repository is a plain old “filetree” repository.
>> 
>> so, until we figure out how to provide both things (a nice tonel switch and 
>> backwar compatibility), the workaround is to commit a .properties file into 
>> you root repository, with this form: 
>> 
>> {
>>  #format : #tonel
>> }
>> 
>> and of course, that’s before doing anything image-side.
>> 
>> cheers, 
>> Esteban
>> 
>> 
>>> On 9 May 2018, at 12:21, he...@mailbox.sk wrote:
>>> 
>>> Yes, it is insanely hard to write project in tonel format. Needs lot of 
>>> hacking here and there, setting the setting itself is not helpful. I 
>>> managed to, somehow, but I forgot the algorithm already. I am dreadful as 
>>> to when I will need to do it again. Takes lots of time and nerves.
>>> 
>>> Herby
>>> 
>>> On May 9, 2018 11:54:56 AM GMT+02:00, Tim Mackinnon  
>>> wrote:
>>>> Hi guys - With all the talk about iceberg changes, I’ve stayed away
>>>> from it for a bit (6 months) - but downloaded a new 6.1 image a few
>>>> weeks ago and went to version some stuff yesterday into a new project.
>>>> 
>>>> Iceberg seems a bit more stable - but it still seems to write out
>>>> individual methods as files which I thought had been changed? Am I
>>>> doing something wrong - or do i need to set something?
>>>> 
>>>> Tim
>>>> 
>>>> Sent from my iPhone
>>> 
>> 
>> 
> 
> 




[Pharo-users] Metacello load in code vs. Iceberg menu install? Can you automate remote loading?

2018-05-09 Thread Tim Mackinnon
Hi - I’m trying to automate the deployment of a seaside image to Digital Ocean. 
I was following the Enterprise Pharo booklet - and its a bit out of date, but I 
wanted to do the bit about taking a clean image and then loading in my project 
which I’ve stored in Git using Iceberg.

So on the command line I am trying to eval “
Iceberg enableMetacelloIntegration: true. 
Metacello new 
  baseline: 'PagerDuty';
  repository: 'g...@gitlab.com:macta/WillowPagerDuty.git';
  load.”

But I get retry errors and a walkback, so I’ve tried to do the same in the 
playground in a fresh image and its true - I get an error because ZnClient is 
trying to connect to a url like 
"http://:80/g...@gitlab.com:macta/WillowPagerDuty.git/?C=M;O%3DD 
” (so it 
interprets that git@ specification strangely). 

But what is weird, is that if I use Iceberg - connected to the same repo (and 
specified the same way) - and then use the Metacello - Install baseline menu 
(right click on the BaselineOfXXX package) it then works perfectly.

So what’s the difference? It looks like the latter is mapping down to a 
"repository: 'gitlocal://', packageDir;” whereas the above is trying to read it 
over the wire?

I then tried using an access token for gitlab, so its an https variant - but 
that gave me an error as well? Does this mean to automate I have to bring down 
the initial BaseLine - but then if that baseline refers to others - that seems 
to work, so I’m a bit confused about what is going on?

Tim

Re: [Pharo-users] Tonel, Pharo 6.1 and file per class?

2018-05-09 Thread Tim Mackinnon
Thats exactly what I was looking for - as I can never fathom the deep rooted 
directories I modified it a bit to:

crntRepo := (Iceberg repositoryForPackage: BaselineOfYourApp package) backend.
locationDir := crntRepo location.
subDir := crntRepo subdirectory.
sourceDir := locationDir.

I also wasn’t sure how you merge a branch back on to master with Iceberg (can 
you ?) - so I just did that bit in gitlab.

Thanks again - is it worth updating that md with the above - and can we put a 
link to this in the readme of Tonel (and in fact Iceberg)? There are too many 
unjoined bits of info that make it difficult to fathom what is going on. It 
would be great to put them together so others can avoid the lost hours.

Tim


> On 10 May 2018, at 00:33, Bernardo Ezequiel Contreras  
> wrote:
> 
> Tim, i've used the following script
> 
> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md 
> <https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md>
> 
> in my pet projects. hope this helps.
> 
> On Wed, May 9, 2018 at 8:22 PM, Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> Hmmm - I don’t think I’ve fully understood the instructions. If I already 
> have a project in filetree git format - does creating the .properties file 
> work? What do I do to convert it to tonel format? I think I’ve noticed a few 
> announcements where people have said they’ve moved to the new tonel format - 
> so how did they do it?
> 
> I tried using git on the command line to add .properties file there - but not 
> sure it did anything?
> 
> Tim
> 
> 
> 
> 
> 
> 
> -- 
> Bernardo E.C.
> 
> Sent from a cheap desktop computer in South America.



Re: [Pharo-users] Tonel, Pharo 6.1 and file per class?

2018-05-09 Thread Tim Mackinnon
Done (although possibly we should note to use git and not iceberg to merge the 
branch?)


> On 10 May 2018, at 01:54, Bernardo Ezequiel Contreras  
> wrote:
> 
> 
> 
> On Wed, May 9, 2018 at 9:36 PM, Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> 
> I also wasn’t sure how you merge a branch back on to master with Iceberg (can 
> you ?) - so I just did that bit in gitlab.
> 
> 
> no, i didn't use iceberg. i just run the script (without the push at the end) 
> and then i use git commands to get back to master 
> and merge the migrate-sources-to-tonel branch. and then i pushed to origin.
> 
> if you have a better script, just propose the fix in github. there's a pencil 
> in the left hand
> with the caption 'Fork this project and edit this file' after the 
> modification you have the
> option to create a pull request. 
> 
> 
> -- 
> Bernardo E.C.
> 
> Sent from a cheap desktop computer in South America.



Re: [Pharo-users] Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]

2018-05-10 Thread Tim Mackinnon
PharoLambda does this - I’m not near a computer to extract the code, but if you 
need it quickly you should find it easily - there is a class method on Lambda - 
something like debugSavedS3 which shows how to read in a file (from S3) and 
then launch a debugger.

Tim

Sent from my iPhone

> On 10 May 2018, at 10:58, Petr Fischer  wrote:
> 
> Hello, what is the current procedure for achieving %subj%? I am on latest 
> Pharo 5.
> 
> I am serializing server side exception with:
> 
> FLSerializer serialize: anException toFileNamed: 'something'.
> 
> But how to open a debugger after materialization on the "dev machine side"?
> 
> I found (Google, Mailing list) some examples, but it's obsolete (the debugger 
> class no longer exists in Pharo 5 etc etc).
> 
> Thanks! Petr Fischer
> 




Re: [Pharo-users] Serializing Excpetion with Fuel on the production and opening debugger on the dev machine - hot to? [Pharo 5]

2018-05-10 Thread Tim Mackinnon
Here’s the snippet to open a debugger (used in Pharo 6 tho)

materializedContext := (FLMaterializer newDefault
  materializeFrom: gzip) root.

sessionName := 'debug saved Fuel context: {1}' format: {aName}.

GTGenericStackDebugger openOn: 
((Process 
forContext: materializedContext 
priority: Processor userInterruptPriority)
newDebugSessionNamed: sessionName startedAt:
materializedContext).

Tim

Sent from my iPhone

> On 10 May 2018, at 12:41, Tim Mackinnon  wrote:
> 
> PharoLambda does this - I’m not near a computer to extract the code, but if 
> you need it quickly you should find it easily - there is a class method on 
> Lambda - something like debugSavedS3 which shows how to read in a file (from 
> S3) and then launch a debugger.
> 
> Tim
> 
> Sent from my iPhone
> 
>> On 10 May 2018, at 10:58, Petr Fischer  wrote:
>> 
>> Hello, what is the current procedure for achieving %subj%? I am on latest 
>> Pharo 5.
>> 
>> I am serializing server side exception with:
>> 
>> FLSerializer serialize: anException toFileNamed: 'something'.
>> 
>> But how to open a debugger after materialization on the "dev machine side"?
>> 
>> I found (Google, Mailing list) some examples, but it's obsolete (the 
>> debugger class no longer exists in Pharo 5 etc etc).
>> 
>> Thanks! Petr Fischer
>> 
> 
> 


Re: [Pharo-users] Metacello load in code vs. Iceberg menu install? Can you automate remote loading?

2018-05-10 Thread Tim Mackinnon
This was indeed the answer - use the gitlab protocol and specify a branch e.g.

Iceberg enableMetacelloIntegration: true. 
Metacello new 
  baseline: 'PagerDuty';
  repository: ‘gitlab:// 
<mailto:g...@gitlab.com>macta/WillowPagerDuty:master/src';
  load.

Thanks Gaby

Tim

> On 10 May 2018, at 01:26, Gabriel Cotelli  wrote:
> 
> I think you can use:
> Metacello new 
>   baseline: 'PagerDuty';
>   repository: 'gitlab://macta/WillowPagerDuty:master/source';
>   load.
> 
> or something like that
> 
> On Wed, May 9, 2018 at 8:44 PM Tim Mackinnon  wrote:
> Hi - I’m trying to automate the deployment of a seaside image to Digital 
> Ocean. I was following the Enterprise Pharo booklet - and its a bit out of 
> date, but I wanted to do the bit about taking a clean image and then loading 
> in my project which I’ve stored in Git using Iceberg.
> 
> So on the command line I am trying to eval “
> Iceberg enableMetacelloIntegration: true. 
> Metacello new 
>   baseline: 'PagerDuty';
>   repository: 'g...@gitlab.com 
> <mailto:g...@gitlab.com>:macta/WillowPagerDuty.git';
>   load.”
> 
> But I get retry errors and a walkback, so I’ve tried to do the same in the 
> playground in a fresh image and its true - I get an error because ZnClient is 
> trying to connect to a url like 
> "http://:80/g...@gitlab.com:macta/WillowPagerDuty.git/?C=M;O%3DD 
> <http://:80/g...@gitlab.com:macta/WillowPagerDuty.git/?C=M;O=D>” (so it 
> interprets that git@ specification strangely). 
> 
> But what is weird, is that if I use Iceberg - connected to the same repo (and 
> specified the same way) - and then use the Metacello - Install baseline menu 
> (right click on the BaselineOfXXX package) it then works perfectly.
> 
> So what’s the difference? It looks like the latter is mapping down to a 
> "repository: 'gitlocal://' <>, packageDir;” whereas the above is trying to 
> read it over the wire?
> 
> I then tried using an access token for gitlab, so its an https variant - but 
> that gave me an error as well? Does this mean to automate I have to bring 
> down the initial BaseLine - but then if that baseline refers to others - that 
> seems to work, so I’m a bit confused about what is going on?
> 
> Tim



[Pharo-users] Is there a tonel:// format for repos?

2018-05-14 Thread Tim Mackinnon
Hi - I converted my project to tonel, and am looking to hook it up to my gitlab 
pipeline, and for older projects I had a run.st  script that 
did:

Metacello new
baseline: 'WillowPagerDuty';
repository: ‘filetree://../src';
load.

I get a not found error when I run that, is there a new repo type for tonel eg?

Metacello new
baseline: 'WillowPagerDuty';
repository: 'tonel://../src';
load.


Or is this the PR Esteban was working on earlier this month so that filetree 
can support tonel? If so, it would be very good to get this support as it makes 
it much easier to write generic scripts to run in CI projects without having to 
reference branch names to build things (as its simply the source in you git 
directory that you want to build locally )

Tim

Re: [Pharo-users] Is there a tonel:// format for repos?

2018-05-14 Thread Tim Mackinnon
Hmmm - will have to try that again - I seemed to get an error - maybe this is 
just a Pharo 7 thing?

It had previously been simpler and more reliable to just run a simple gitlab ci 
pipeline - but yeah maybe I should reconsider that...

> On 14 May 2018, at 16:59, Peter Uhnák  wrote:
> 
> Metacello new
> baseline: 'WillowPagerDuty';
> repository: 'tonel://../src <>';
> load.
> 
> 
> This should work.
> 
> You can also use SmalltalkCI instead of doing everything by hand.
> 
> Peter
> 



Re: [Pharo-users] Is there a tonel:// format for repos?

2018-05-14 Thread Tim Mackinnon
Peter - thanks for getting me to retry it - it turns out that tonel:// is 
correct, and I had misread the error message - which was actually due to me 
misnaming the baselineOf project suffix.

To your point Sean - if using a CI server - if you use GitHub or GitLab:// 
prefixes - you need ssh key installed on our server which then becomes a real 
pain - so sticking to https (and public repos) and any source that is checked 
it with your project on build - is a big simplification.

I’ in the process of weeding out some rogue GitHub:// baselines as they fail 
and then cause my loading image to bomb out (I suspect Peter has weeded all of 
this out in SmalltalkCI).

I’m forging on - but may take another look at SmalltalkCI - the trouble is, I 
really don’t like Travis (I find it really hard to use - and never understood 
why it was successful, and equally Jenkins is a mess). I quite like the model 
of Gitlab’s one stop shop - and I was interested in simplifying it from what I 
did for PharoLambda - but its been a bit more painful than I had expected.

Tim

> On 14 May 2018, at 18:09, Tim Mackinnon  wrote:
> 
> Hmmm - will have to try that again - I seemed to get an error - maybe this is 
> just a Pharo 7 thing?
> 
> It had previously been simpler and more reliable to just run a simple gitlab 
> ci pipeline - but yeah maybe I should reconsider that...
> 
>> On 14 May 2018, at 16:59, Peter Uhnák > <mailto:i.uh...@gmail.com>> wrote:
>> 
>> Metacello new
>> baseline: 'WillowPagerDuty';
>> repository: 'tonel://../src <>';
>> load.
>> 
>> 
>> This should work.
>> 
>> You can also use SmalltalkCI instead of doing everything by hand.
>> 
>> Peter
>> 
> 



[Pharo-users] Smalltalk CI on Gitlab

2018-05-14 Thread Tim Mackinnon
Hi Sean - thanks for mentioning that - I tried it ages ago and didn’t get on 
well with it on Travs. But I don’t understand how it works on Gitlab - and the 
project readme.md seems to assume you understand how its approaching the 
problem (which possibly has changed over the years).

Looking at your url - how is that running a project that you have in a 
different repo? Is there some web hook that causes it to then trigger a build 
cycle? I can see you edited a BaselineOfGitLabCI and added a BabyPhexample 
<https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci/commit/d59ba3788aa86bde3f87a17018472cdedf3be78b>
 - which seems a bit inside out to me - but I’m hanging in there (so do you add 
other projects in this same file?).

I also don’t understand the pipeline model - there seems to be just one 
pipeline (and gitlab has great pipeline support)?

And then - when it all builds successfully - how does it deploy (hence my 
pipeline question).

I’m lost - but curious, as maybe I can save time on what I’m doing (writing 
more apps vs pissing around with missing infrastructure).

Tim

> On 14 May 2018, at 22:38, Sean P. DeNigris  <mailto:s...@clipperadams.com>> wrote:
> 
> Tim Mackinnon wrote
>> may take another look at SmalltalkCI - the trouble is, I really don’t like
>> Travis… I quite like the model of Gitlab’s one stop shop
> 
> I use SmalltalkCI on Gitlab
> (https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci 
> <https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci>)
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html 
> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html>
> 



Re: [Pharo-users] Is there a tonel:// format for repos?

2018-05-14 Thread Tim Mackinnon
I’ve created a new thread on Smalltalk CI - but back to tonel - having got my 
local project to start reading - its now failing when it then starts processing 
my BaselineOf and hits my willow dependency - which was initially things like:

spec
   baseline: 'WillowBootstrap'
  with: [ spec
 repository: 'github://ba-st/Willow-Bootstrap:v8/source';
 loads: #('Deployment') ];
   import: 'WillowBootstrap'.

The trouble being that the use of GitHub:// causes it to barf as it then wants 
ssh keys and crashes when trying to flip to https automatically.  I figured I 
could just specify 'https://github 
<https://github/>.com/ba-st/Willow-Boostrap/tree/v8/source’ but this doesn’t 
work either - as then I get a retry error:

Fetched -> BaselineOfPagerDuty-tonel.1 --- 
tonel:///builds/macta/WillowPagerDuty/src --- 
tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- 
tonel:///builds/macta/WillowPagerDuty/src --- 
tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...The method 
Integer>>#asBytesDescription called from ZnUtils class>>#signalProgress:total: 
has been deprecated.
Please use #humanReadableSIByteSize instead

...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from 
/builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in 
/builds/macta/WillowPagerDuty/build/pharo-local/package-cache 
https://github.com/ba-st/Willow-Bootstrap/tree/v8/source
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:

Its very weird - and much harder than I was expecting it all to be (hence the 
renewed interest in Smalltalk CI). Saying this - what I’m trying to do should 
be dead easy.

Tim

> On 14 May 2018, at 22:38, Sean P. DeNigris  wrote:
> 
> Tim Mackinnon wrote
>> may take another look at SmalltalkCI - the trouble is, I really don’t like
>> Travis… I quite like the model of Gitlab’s one stop shop
> 
> I use SmalltalkCI on Gitlab
> (https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 



Re: [Pharo-users] Is there a tonel:// format for repos?

2018-05-15 Thread Tim Mackinnon
Hi - I’ll extract the log files when I’m at my desk 
I can possibly make the pipeline public so you can better see it - and it’s a 
relatively simple app so maybe it can shed some light (although I’m still not 
ruling out my own stupidity yet).

It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the 
same happens with 16.04).

Tim

The initial error is:

Starting Load Script...
> Configure Load caches...
> Loading Projects...

Fetched -> BaselineOfPagerDuty-tonel.1 --- 
tonel:///builds/macta/WillowPagerDuty/src --- 
tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- 
tonel:///builds/macta/WillowPagerDuty/src --- 
tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...
...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
gofer repository error: 'GoferRepositoryError: Could not access 
https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 
404 Not Found'...ignoring
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from 
/builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in 
/builds/macta/WillowPagerDuty/build/pharo-local/package-cache 
https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 
'GoferRepositoryError: Could not access 
https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 
404 Not Found'
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion 
loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [ "check to see if mcz file is already in 
cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [ cachedReference name = packageSpec file
ifTrue:
[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: 
packageSpec cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer."look up mcz file"
nearestReference := references last
asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [ "latest reference in repository matches cachedReference ... "
^ self


Sent from my iPhone

> On 15 May 2018, at 06:51, Guillermo Polito  wrote:
> 
> Also, are you in Pharo6 or 7?




Re: [Pharo-users] Smalltalk CI on Gitlab

2018-05-15 Thread Tim Mackinnon
Thanks Fabio - it sounds like Sean already has figured something out - but I 
haven’t fully grok’d how it hangs together. From your description, it sounds 
like you expect SmalltalkCI to be like a submodule of your project - and you 
can then invoke it from your normal projects build script? However peeking at 
what Sean pointed at - it seemed like he expected you to intermingle your 
project with the SmalltalkCI one - so I’m not really clear on how he uses it.

It sounds like all the right pieces are there - just not quite sure what the 
concept is - particularly given that Gitlab Pipelines already is a CI with the 
concept of jobs - just not Smalltalk ones.

At its best - how does SmalltalkCI function - I never quite understood the 
pipeline when checked years ago.

Tim



> On 15 May 2018, at 09:09, Fabio Niephaus  wrote:
> 
> Hi Tim,
> 
> It should be relatively straightforward to use smalltalkCI on Gitlab CI.
> All you have to take care of is to ensure the Linux container has all Pharo 
> dependencies [1] installed correctly. If you append smalltalkCI's `bin` 
> directory to your $PATH, you can simply call `smalltalkci -s Pharo-6.0` in 
> your project's root directory to test against Pharo-6.0.
> 
> Hope this helps. And if you work out a simple and generic way of using 
> smalltalkCI on Gitlab, please feel free to open a PR against smalltalkCI and 
> contribute a template :)
> 
> Best,
> Fabio
> 
> [1] 
> https://github.com/travis-ci/travis-build/blob/51ebd738f537a82874b03cb964ecabc042e83aac/lib/travis/build/script/smalltalk.rb#L15-L16
>  
> <https://github.com/travis-ci/travis-build/blob/51ebd738f537a82874b03cb964ecabc042e83aac/lib/travis/build/script/smalltalk.rb#L15-L16>
> 
> On Tue, May 15, 2018 at 12:40 AM Tim Mackinnon  wrote:
> Hi Sean - thanks for mentioning that - I tried it ages ago and didn’t get on 
> well with it on Travs. But I don’t understand how it works on Gitlab - and 
> the project readme.md seems to assume you understand how its approaching the 
> problem (which possibly has changed over the years).
> 
> Looking at your url - how is that running a project that you have in a 
> different repo? Is there some web hook that causes it to then trigger a build 
> cycle? I can see you edited a BaselineOfGitLabCI and added a BabyPhexample 
> <https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci/commit/d59ba3788aa86bde3f87a17018472cdedf3be78b>
>  - which seems a bit inside out to me - but I’m hanging in there (so do you 
> add other projects in this same file?).
> 
> I also don’t understand the pipeline model - there seems to be just one 
> pipeline (and gitlab has great pipeline support)?
> 
> And then - when it all builds successfully - how does it deploy (hence my 
> pipeline question).
> 
> I’m lost - but curious, as maybe I can save time on what I’m doing (writing 
> more apps vs pissing around with missing infrastructure).
> 
> Tim
> 
>> On 14 May 2018, at 22:38, Sean P. DeNigris > <mailto:s...@clipperadams.com>> wrote:
>> 
>> Tim Mackinnon wrote
>>> may take another look at SmalltalkCI - the trouble is, I really don’t like
>>> Travis… I quite like the model of Gitlab’s one stop shop
>> 
>> I use SmalltalkCI on Gitlab
>> (https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci 
>> <https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci>)
>> 
>> 
>> 
>> -
>> Cheers,
>> Sean
> 
>> 
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html 
>> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html>
>> 



Re: [Pharo-users] Is there a tonel:// format for repos?

2018-05-15 Thread Tim Mackinnon
Hi Guillermo - so here are the actual log files and the .st I’m running with build.sh (its a normal pharo command line execution). Its running on Ubuntu 17.10,  with Pharo 6.1 64 bit.I got Pharo like this:VM_STRATEGY="vmI61";curl http://get.pharo.org/64/$VM_STRATEGY | bash;curl get.pharo.org/64/61 | bash;The error at the top of the log is:LGit_GIT_ERROR: SSL error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init15 May 2018 3:01:38.976377 amAnd a few lines down you see it has translated the github:// url (in the baseline package) to https but then it seems to fail… although is that https translation correct? I have also tried specifying https repos in the baseline myself (but you can’t easily control the baselines it in turn refers to) but that didn’t work either.LGitRepository>>clone:options:to:	Receiver: a LGitRepository ()	Arguments and temporary variables: 		aString: 	'https://github.com/ba-st/Willow-Bootstrap.git'		cloneOptions: 	a LGitCloneOptions ()		aFileReference: 	File @ pharo-local/iceberg/ba-st/Willow-Bootstrap	Receiver's instance variables: 		handle: 	@ 16r		repositoryPath: 	File @ pharo-local/iceberg/ba-st/Willow-Bootstrap		isOpen: 	nil		workingDirectory: 	nilI was successfully doing something like this months ago with PharoLambda - but I suspect if I rerun that pipeline it may also fail like this.Tim

PharoDebug.log
Description: Binary data


loadProject.st
Description: Binary data


LoadProject.log
Description: Binary data


build.sh
Description: Binary data


BaselineOfPagerDuty.class.st
Description: Binary data
On 15 May 2018, at 09:36, Tim Mackinnon <tim@testit.works> wrote:Hi - I’ll extract the log files when I’m at my desk I can possibly make the pipeline public so you can better see it - and it’s a relatively simple app so maybe it can shed some light (although I’m still not ruling out my own stupidity yet).It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the same happens with 16.04).TimThe initial error is:Starting Load Script...Configure Load caches...Loading Projects...Fetched -> BaselineOfPagerDuty-tonel.1 --- tonel:///builds/macta/WillowPagerDuty/src --- tonel:///builds/macta/WillowPagerDuty/srcLoaded -> BaselineOfPagerDuty-tonel.1 --- tonel:///builds/macta/WillowPagerDuty/src --- tonel:///builds/macta/WillowPagerDuty/srcLoading baseline of BaselineOfPagerDuty..RETRY->BaselineOfWillowBootstrap...RETRY->BaselineOfWillowBootstrapgofer repository error: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'...ignoring...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |cachedReference := nil.packageSpecsearchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"cachedReference := selfresolvePackageSpec: packageSpeccachedGofer: self loaderPolicy cacheGofer.(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])ifTrue: [ cachedReference name = packageSpec fileifTrue:[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].references := selfretryingResolvePackageSpecReferences: packageSpecgofer: gofer.    "look up mcz file"nearestReference := references lastasMetacelloCachingResolvedReference.(cachedReference ~~ niland: [ cachedReference name = nearestReference name ])ifTrue: [ "latest reference in repository matches cachedReference ... "^ selfSent from my iPhoneOn 15 May 2018, at 06:51, Guillermo Polito <guillermopol...@gmail.com> wrote:Also, are you in Pharo6 or 7?

[Pharo-users] How does iceberg handle caching of packages with different versions?

2018-05-15 Thread Tim Mackinnon
Hi - while I’ve been trying to troubleshoot my tonel build woes - I noticed 
something that might be a potential problem with baselines not loading the 
correctly specified version.

I was having no luck with GitHub:/repo references (see other thread on this), 
eg:
spec
   baseline: 'WillowBootstrap'
  with: [ spec
 repository: 'github://ba-st/Willow-Bootstrap:v8/source';
 loads: #('Deployment') ];
   import: 'WillowBootstrap'.

So I tried using https equivalents like this:

spec
   baseline: 'WillowBootstrap'
  with: [ spec
 repository: 
'https://github.com/ba-st/Willow-Bootstrap/tree/v8.0.2/source';
 loads: #('Deployment') ];
   import: 'WillowBootstrap'.

But then I wasn’t sure if the newer version of the repository was what I was 
supposed to use and so I altered my spec to use /v8 (not v8.0.2)

spec
   baseline: 'WillowBootstrap'
  with: [ spec
 repository: 'https://github.com/ba-st/Willow-Bootstrap/tree/v8/source';
 loads: #('Deployment') ];
   import: 'WillowBootstrap'.

However when I was looking at the log files of errors, I noticed that when I 
downgraded my spec to v8 and reran my CI on a fresh image the error message 
still referenced v8.0.2 . As this was a run on my CI (which is preserving the 
pharo-cache directory between runs) this looked a lot to me like 
Iceberg/Metacello is not taking into account version numbers or repo urls when 
loading things from the file cache? When I blew away the pharo-cache and reran 
it - it then correctly showed me errors referencing v8 again.

Is this a known problem?

Tim




Re: [Pharo-users] Is there a tonel:// format for repos?

2018-05-15 Thread Tim Mackinnon
Ah - well that would be one problem then - I was using that to avoid that 
warning message you get as I didn’t think I had privileges to do what it said - 
however it seems it would be better to have a proper docker container to run my 
CI builds in, and so I can probably solve it that way (the iTimer VM was 
something I picked up from PharoLambda - as you really can’t control that 
environment at all - but it doesn’t run Iceberg).

I’ll make that correction and try again.

Thanks,

Tim

> On 15 May 2018, at 12:28, Esteban Lorenzano  <mailto:esteba...@gmail.com>> wrote:
> 
> hi Tim, 
> 
> you cannot use vm “I” (for Itimer) with iceberg. This timer will kill the SSH 
> sockets.
> you need the “threaded” VM (which is the default, for obvious reasons :P).
> 
> cheers,
> Esteban
> 
>> On 15 May 2018, at 12:18, Tim Mackinnon > <mailto:tim@testit.works>> wrote:
>> 
>> Hi Guillermo - so here are the actual log files and the .st I’m running with 
>> build.sh (its a normal pharo command line execution). Its running on Ubuntu 
>> 17.10,  with Pharo 6.1 64 bit.
>> 
>> I got Pharo like this:
>> 
>> VM_STRATEGY="vmI61";
>> curl http://get.pharo.org/64/$VM_STRATEGY 
>> <http://get.pharo.org/64/$VM_STRATEGY> | bash;
>> curl get.pharo.org/64/61 <http://get.pharo.org/64/61> | bash;
>> 
>> The error at the top of the log is:
>> LGit_GIT_ERROR: SSL error: error:140E0197:SSL routines:SSL_shutdown:shutdown 
>> while in init
>> 15 May 2018 3:01:38.976377 am
>> 
>> And a few lines down you see it has translated the github:// url (in the 
>> baseline package) to https but then it seems to fail… although is that https 
>> translation correct? I have also tried specifying https repos in the 
>> baseline myself (but you can’t easily control the baselines it in turn 
>> refers to) but that didn’t work either.
>> 
>> LGitRepository>>clone:options:to:
>>  Receiver: a LGitRepository ()
>>  Arguments and temporary variables: 
>>  aString:'https://github.com/ba-st/Willow-Bootstrap.git 
>> <https://github.com/ba-st/Willow-Bootstrap.git>'
>>  cloneOptions:   a LGitCloneOptions ()
>>  aFileReference: File @ 
>> pharo-local/iceberg/ba-st/Willow-Bootstrap
>>  Receiver's instance variables: 
>>  handle: @ 16r
>>  repositoryPath: File @ 
>> pharo-local/iceberg/ba-st/Willow-Bootstrap
>>  isOpen: nil
>>  workingDirectory:   nil
>> 
>> 
>> 
>> I was successfully doing something like this months ago with PharoLambda - 
>> but I suspect if I rerun that pipeline it may also fail like this.
>> 
>> Tim
>> 
>> 
>> 
>> 
>> http://loadproject.st/>>
>> 
>> 
>> http://baselineofpagerduty.class.st/>>
>> 
>> 
>>> On 15 May 2018, at 09:36, Tim Mackinnon >> <mailto:tim@testit.works>> wrote:
>>> 
>>> Hi - I’ll extract the log files when I’m at my desk 
>>> I can possibly make the pipeline public so you can better see it - and it’s 
>>> a relatively simple app so maybe it can shed some light (although I’m still 
>>> not ruling out my own stupidity yet).
>>> 
>>> It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 
>>> (the same happens with 16.04).
>>> 
>>> Tim
>>> 
>>> The initial error is:
>>> 
>>> Starting Load Script...
>>>> Configure Load caches...
>>>> Loading Projects...
>>> 
>>> Fetched -> BaselineOfPagerDuty-tonel.1 --- 
>>> tonel:///builds/macta/WillowPagerDuty/src 
>>>  --- 
>>> tonel:///builds/macta/WillowPagerDuty/src 
>>> 
>>> Loaded -> BaselineOfPagerDuty-tonel.1 --- 
>>> tonel:///builds/macta/WillowPagerDuty/src 
>>>  --- 
>>> tonel:///builds/macta/WillowPagerDuty/src 
>>> 
>>> Loading baseline of BaselineOfPagerDuty...
>>> ...RETRY->BaselineOfWillowBootstrap
>>> ...RETRY->BaselineOfWillowBootstrap
>>> gofer repository error: 'GoferRepositoryError: Could not access 
>>> https://github.com/github/ba-st/Willow-Bootstrap:v8/source: 
>>> <https://github.com/github/ba-st/Willow-Bootstrap:v8/source:> 
>>> ZnHttpUnsuccessful: 404 Not Found'...ignoring
>>> ...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from 
>>> /builds/macta/WillowPagerDuty/build/loadPr

Re: [Pharo-users] Smalltalk CI on Gitlab

2018-05-15 Thread Tim Mackinnon
Hi Sean - it certainly sounds like its worth a poke. Have you written anything 
else up about it - or is this the “user manual” for now? Presumable a lot of 
the below could go in the readme.md for the project itself.

So to get started with it - is the intent that you fork it so you can customise 
the settings? OR do you make it a submodule of your existing project so that 
you can access the scripts? As you want to trigger something when you checkin 
your smalltalk code - is it a trigger in that project that kicks off a separate 
SmalltalkCIGL project to then do its stuff, or do you just just include it in 
your current project so you can reference these scripts?

This is the bit I’m not understanding?

Reading below - am I understanding that when you get your pipeline trigger, you 
use GitLabCIConfiguration to write out some config that you can then get 
SmalltalkCI to interpret with the assets that you have?

I’l have to go back and look again.

Tim

> On 15 May 2018, at 14:25, Sean P. DeNigris  wrote:
> 
> Tim Mackinnon wrote
>> But I don’t understand how it works on Gitlab
> 
> The gitlab-smalltalk-ci project performs three roles:
> 1. The glue which connects Gitlab and smalltalkCI. As a bonus, it does all
> the necessary in-container work to setup SSH for private Gitlab projects, so
> you'd just have to create/enable the deploy key in the Gitlab web UI.
> 2. A Pharo library to create/modify CI artifacts like configuration files.
> This let's you write Smalltalk like this `GitLabCIConfiguration new
> smalltalkImageTemplateFor: 'Pharo-6.1'` instead of being forced to remember
> and write: 
> ```yaml
> .pharo61_template: &pharo61
>  variables:
>SMALLTALK_IMAGE: "Pharo-6.1"
> ```
> 3. An example to adapt for your own project, since it eats its own dog food
> and is handling its own CI.
> 
> Also, note that the initial setup is simplified from smalltalkCI because it
> uses a Docker image preloaded with all the Pharo dependencies.
> 
> 1. First, you would create a `.gitlab-ci.yml`. I'm guessing you already know
> that it is the equivalent to Travis' `.travis.yml`, which is the main hook
> that the CI system picks up to run whatever you tell it to. If you read it,
> you will see that it's main job is to install the glue scripts and run the
> downloaded scripts/build.sh. The bottom ~half is the workaround for matrix
> builds (for Pharo 6 & 7) in GitlabCI, which are not directly supported.
> 2. Next, create a `.smalltalk.ston`. This is the main config hook for
> smalltalkCI. I added some links to the docs in the README.
> 
> That's really it I think. All this has been tested extensively with real
> projects, but only on Pharo 6/7 and Ubuntu 32 bit. PRs welcome and feel free
> to ask more questions!
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] Smalltalk CI on Gitlab

2018-05-16 Thread Tim Mackinnon
Hi Sean/Fabio - I’m still mulling over which direction to jump.  When 
experimenting with PharoLambda and a minimal image it was all very custom and 
so I just used GitLab “natively” - and as you have noted - Gitlab has got a lot 
of built in CI stuff.

Now my need has expanded to something a bit more normal - I was a bit caught 
out that the above didn’t just work the same. As its turned out - what has been 
the hiccup has been not having a good stable Linux image to build on (I’ve now 
learned Docker to sort that bit out - and really must +++ the need to have some 
pharo.org <http://pharo.org/> docker containers just sitting there for people 
to use).

The other issue has been what you have said - in a clean build environment you 
don’t have ssh keys normally defined and and the use of Iceberg and projects 
using github:// (which needs them by default) causes quite a lot of pain (even 
if they aren’t private repos).

I mention this as Herby spotted it a while ago as he doesn’t use GitHub - 
however he also spotted a solution that I don’t think you are aware of (judging 
from your gitlab project) - in your preload script add the following:

Iceberg 
enableMetacelloIntegration: true;
remoteTypeSelector: #httpsUrl.

This was the piece I was missing - and now my project is loading fine (in its 
fresh docker environment). 

You of course probably still have Private repos and in that case I think you 
still need the ssh keys sorted - but for a more general case I don’t think its 
needed.

This long path (which has usefully solidified lots of things for me) still 
leaves me unsure as to whether I personally need SmalltalkCI for simple single 
vendor projects (as when used in GitLab - its not really doing any CI - it 
seems more useful for muli-dialect building I think). Maybe you guys might set 
me straight on this… the reality is all you are really plugging into Gitlab is:

pharo Pharo.image --no-default-preferences --save --quit st loadProject.st \
"{'$PROJECT_NAME'. '$PROJECT_API_KEY'}" 2>&1 | tee LoadProject.log

And if you are also doing some testing a second invocation (ideally in a 
separate build stage) of:

pharo Pharo.image --no-default-preferences --save --quit st testProject.st \
"{'$PROJECT_NAME'. '$PROJECT_API_KEY'}" 2>&1 | tee TestProject.log

And with a good docker image it seems pretty straight forward. Possibly there 
are components in SmalltalkCI that could be extracted - maybe to interpret test 
results? Or I am wondering if its useful to pump stats into something like 
DataDog to track image size and test run times etc?

I’m still interested in both your thoughts though - and by no means is this a 
citicism of SmalltalkCI or Gitlab-Smalltalk-CI - both of which help the 
community (and me) immensely through providing great examples and knowledgable 
people in this stuff.

Tim


> On 16 May 2018, at 02:50, Sean P. DeNigris  wrote:
> 
> Tim Mackinnon wrote
>> Have you written anything else up about it - or is this the “user manual”
>> for now?
> 
> The latter :) It was an itch I scratched because GL offers unlimited private
> projects and significant CI build time for free and then shared just in case
> others were struggling with the same thing, but I'm happy to answer
> questions and add to the docs.
> 
> 
> Tim Mackinnon wrote
>> Presumable a lot of the below could go in the readme.md for the project
>> itself.
> 
> Already done!
> 
> 
> Tim Mackinnon wrote
>> So to get started with it
> 
> In your project's root folder, if you copy `.gitlab-ci.yml` verbatim and
> modify `.smalltalk.ston` as needed, it should start building your project on
> top of Pharo 6 & 7 on 32-bit Ubuntu LTS. The Smalltalk image versions can be
> changed to anything accepted by smalltalkCI, and I think to support other
> OS'es we'd just need to build alternate Docker images [1]. You would only
> need to fork gitlab-smalltalk-ci if you want to modify the internals of the
> library itself. If you just want to customize any of the scripts in
> ./scripts [2] on a per-project basis, you can just save overridden copies in
> ./scripts in your project. The library will not overwrite existing script
> files in that location.
> 
> FYI I did not explore deploy steps yet. I was actually waiting to develop
> further because the next thing I want is separate build and test steps so
> one can immediately know whether the installation or testing failed, and it
> seemed that might be added to smalltalkCI in the near future.
> 
> 1. There is also a related library which enables you to generate docker
> files from Pharo. See
> https://github.com/seandenigris/smalltalkCI/tree/docker/repository/SmalltalkCI-Docker.package
> 2. https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci/tree/master/scripts
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 



Re: [Pharo-users] Smalltalk CI on Gitlab

2018-05-16 Thread Tim Mackinnon
Hi Sean - I stand corrected, #remoteTypeSelector: doesn’t seem to be needed (a 
case of getting all the other stuff right - and Docker is such a huge help for 
this).

For SmalltalkCI the automatic Test side might win me over. Does it also spot 
load load failures (like Undeclared class) and do a nice test report? 

I just spotted Seaside isn’t loading cleanly with my RegEx setup - but its 
crude.

This has been very fruitful BTW , thanks 

Tim

Sent from my iPhone



Sent from my iPhone
> On 16 May 2018, at 19:54, Sean P. DeNigris  wrote:
> 
> Tim Mackinnon wrote
>> the use of Iceberg and projects using github:// (which needs them by
>> default) causes quite a lot of pain (even if they aren’t private repos).
>> …
>> Iceberg 
>>   enableMetacelloIntegration: true;
>>   remoteTypeSelector: #httpsUrl.
> 
> This is part of my standard workflow and I didn't experience it as a pain
> point. It seems I uploaded my public GH key, but after that it "just
> worked". IIRC it seemed to automatically fallback to https when ssh failed,
> but it's been a while and I'm not in front of a pipeline. The first message
> is needed, especially to use `gitlab://` URLs, but I never used the second.
> 
> 
> Tim Mackinnon wrote
>> the reality is all you are really plugging into Gitlab is:
>> …loadProject.st… testProject.st
> 
> I guess you could say that, except smalltalkCI also handles any needed
> setup, like Linux 32-bit libs (which I handle with Docker instead). Also, it
> saves you from having to construct the .st files in your example because:
> - there is a configuration model that allows you to specify the baseline
> name, target platforms, etc instead of manually writing load scripts
> - smalltalkCI remembers which tests it loaded and runs those automatically,
> so by default no extra work is needed to enable testing
> 
> 
> Tim Mackinnon wrote
>> by no means is this a citicism…
> 
> All good :)
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




[Pharo-users] Showing Keyboard events as Pharo goes weird when using an RD client for OSX

2018-05-18 Thread Tim Mackinnon
Hi - I’m wondering if anyone has any experience using Pharo in a Remote Desktop 
environment? 

Ive been experimenting with MacInCloud.com and running Pharo there - however 
I’ve noticed that while it appears to run (and it reasonably performant) after 
a few seconds/minutes (I can’t quite work out what causes it) certain keeps 
stop working - most importantly the Enter key (but also Cmd-P etc).

It looks like its dishing out some kind of tab key (its invisible in the 
playground - the cursor just jumps forward a few characters) but I’m not sure, 
and I wondered if I could print out key codes in Pharo to maybe spot what it 
is. But keyboard handling is not something I’ve dug into - and I’m looking for 
a few pointers (or maybe someone has seen this problem before and might be able 
to suggest a solution).

As I said, It starts out ok but then suddenly swaps to this behaviour (which 
makes coding then impractical). Restating the RD client doesn’t make a 
difference (and I’ve tried 2 different ones now). Other remote mac apps like 
Notes don’t seem to be affected and I have to exit the image and come back in 
to correct it. (I havne’t tried saving in between to see if it then preserves 
this behaviour).

Ulimately I was hoping to have an easy portable Pharo environment to sneakily 
take on holiday via an iPad.

The approach is to try and compile Pharo for iOS (I did it a long time ago, but 
it was a pain - whereas a remote server seemed like a neat solution).

Tim


Sent from my iPhone

Re: [Pharo-users] Showing Keyboard events as Pharo goes weird when using an RD client for OSX

2018-05-18 Thread Tim Mackinnon
Actually - I installed VNC on Linux server and it’s much faster and doesn’t 
have this issue .

I think for keyboard events I would have had to create a morph and then 
override some handle key events to print them out ? As it stands, I’ll forge on 
with other stuff (unless anyone happens to know)

Tim

Sent from my iPhone

> On 18 May 2018, at 12:00, Tim Mackinnon  wrote:
> 
> Hi - I’m wondering if anyone has any experience using Pharo in a Remote 
> Desktop environment? 
> 
> Ive been experimenting with MacInCloud.com and running Pharo there - however 
> I’ve noticed that while it appears to run (and it reasonably performant) 
> after a few seconds/minutes (I can’t quite work out what causes it) certain 
> keeps stop working - most importantly the Enter key (but also Cmd-P etc).
> 
> It looks like its dishing out some kind of tab key (its invisible in the 
> playground - the cursor just jumps forward a few characters) but I’m not 
> sure, and I wondered if I could print out key codes in Pharo to maybe spot 
> what it is. But keyboard handling is not something I’ve dug into - and I’m 
> looking for a few pointers (or maybe someone has seen this problem before and 
> might be able to suggest a solution).
> 
> As I said, It starts out ok but then suddenly swaps to this behaviour (which 
> makes coding then impractical). Restating the RD client doesn’t make a 
> difference (and I’ve tried 2 different ones now). Other remote mac apps like 
> Notes don’t seem to be affected and I have to exit the image and come back in 
> to correct it. (I havne’t tried saving in between to see if it then preserves 
> this behaviour).
> 
> Ulimately I was hoping to have an easy portable Pharo environment to sneakily 
> take on holiday via an iPad.
> 
> The approach is to try and compile Pharo for iOS (I did it a long time ago, 
> but it was a pain - whereas a remote server seemed like a neat solution).
> 
> Tim
> 
> 
> Sent from my iPhone


Re: [Pharo-users] [Errors] email on error?

2018-05-18 Thread Tim Mackinnon
Rather than email you could possibly hook in something like datadog or Pingdom 
if you expose some metric - to get a timely alert.

Equally you could perhaps trap something in Pharo and write out a fuel file to 
an s3 bucket - with s3 you can then trigger an event and they have tools you 
can use to alert and or email (Ive not tried this - other than write to an s3 
bucket - but I saw an AWS presentation on all there cloud tools and it looked 
straight forward) .

Tim

Sent from my iPhone

> On 18 May 2018, at 18:33, Peter Uhnák  wrote:
> 
> Hi Sergio,
> 
> I highly recommend using a more sophisticated solution such as Sentry ( 
> https://github.com/peteruhnak/pharo-sentry , 
> https://peteruhnak.github.io/pharo-sentry/ ).
> 
> If you want something really simple, then ShoreLine can be of assistance 
> (assuming you use Pharo 6; it was removed in P7)
> You can enable automatic reporting in settings, and if you want to send email 
> instead of a API request, then look at (and change) SlReporter>>send:
> 
> But I have to strongly discourage you from using simple stack traces in 
> mail... it is a nightmare to manage; especially if you have multiple 
> servers/versions/errors occur in a loop, etc.
> (I've tried using SL for about 2 months, and I've failed miserably. That's 
> why I wrote pharo-sentry).
> 
> Peter
> 
>> On Fri, May 18, 2018 at 5:51 PM, sergio ruiz  wrote:
>> Is there  a way to send an email on an error or exception?
>> 
>> I have an app that runs live on a remote server, and I am finding that every 
>> now and then, the server will lock up, and I won’t know what’s going on with 
>> it.
>> 
>> Currently, i pull the image and run it local, but an email with a stack 
>> trace would be SUPER helpful.
>> 
>> Thanks!
>> 
>> 
>> 
>> 
>> peace,
>> sergio
>> photographer, journalist, visionary
>> 
>> Public Key: http://bit.ly/29z9fG0
>> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
>> http://www.codeandmusic.com
>> http://www.twitter.com/sergio_101
>> http://www.facebook.com/sergio101
> 


[Pharo-users] Pharo 7 - New Iceberg feedback

2018-05-22 Thread Tim Mackinnon
Hi - last night we managed to explore the new contribution process as well as 
the new iceberg ui at the U.K. Smalltalk meetup last night.

Not many had seen it before so it was a good test run.

As an initial comment - we need to invest a small amount of time to get the 
right docs in places you expect them as not doing so undoes a lot of good work 
-  the Pharo main site that points to old contribution docs (and doesn’t 
reference the new ones) must be updated ASAP to keep energy high (we almost 
lost a few folks last night by going down the wrong path - fortunately Cyril 
piped up on Discord for me - phew).

Armed with the right steps it was straightforward - much easier than the older 
slices mechanism (that I never was comfortable with) - so HUGE thanks for that 
everyone!

As we worked through it, the more git seasoned folks were confused why git 
status in a terminal wasn’t really showing the same info as iceberg (I’ll put 
this in a separate thread to discuss, as it’s an interesting thought which I’m 
sure has lively discussion).

Anyway - the new UI does take some getting used to (personally I liked the 
compactness of the original Iceberg and its tabs), but when you understand what 
the different windows show you - I think it makes sense (and hopefully is more 
stable). We all missed having an obvious Diff mechanism - we later spotted that 
Commit does show this (Although possibly calling it “Commit…” might make it 
more obvious that you have a chance to review changes and change your mind) - 
but knowing the size of your change and reviewing them without any danger of 
committing something is a useful feature (but maybe a 2.0 enhancement request?).

One small tweak (which I would PR if I knew how to - would be to swap  the 
status and branch columns in the Repository window  to make the status  clearer 
(the status gets lost as it sqashed against the normally much longer branch 
name).  Its a simple change to #initializeRepositoryList but I guess Iceberg is 
in a different repository (and not in the instructions for contirbutions).

We also noticed that if you try to use the “Create Pull Request” menu item, you 
can’t if you have 2FA enabled on Github (the recommended setting) as I guess 
that ssh protocol doesn’t allow this with an ssh key? So I we should update the 
instructions to suggest either using the web ui - or - creating an app specific 
login (that doesn’t use 2fa). - I’ll look at how to add that tweak and send a 
PR.


Tim


Sent from my iPhone


[Pharo-users] Why doesn't Pharo 7 Iceberg write changes to the git filesystem as you go?

2018-05-22 Thread Tim Mackinnon
Hi - when trying out the new Iceberg with a bunch of developers and explaining 
the challenges of integrating git and files into a smalltalk realm of the image 
- there was a lot of interest in how this works.

When you clone - you obviously see a series of files (in Tonel - nice) that are 
then brought into your image. If you edit a file like Readme.md (using a 
markdown editor) you will notice that git status will show you that this file 
has changed. However if you then edit some methods - and then look in the file 
system - git status doesn’t show these? This in retrospect possibly feels weird 
- or does it? I’m not sure anymore - and was wondering if there was a specific 
reason behind not mirroring code changes back to the file system as they happen?

When you branch in Pharo, a command line git status does show that change - so 
some things clearly are being mirrored, just not code (Which I’m guess happens 
briefly when you click commit?).

I’m curious now to understand the tradeoffs.

Tim

p.s. it is very nice for small private projects, to use a git client on your 
phone - edit a method or two on the train, commit your changes and then see 
your CI build the results and deploy a new website by the time you get off… yes 
its not the rich smalltalk environment for bigger changes - but tiny stuff, its 
quite nice to fallback on the traditional way.




Re: [Pharo-users] Pharo 7 - New Iceberg feedback

2018-05-22 Thread Tim Mackinnon
The community has invested a lot in a new way of working - I’ve seen the pain, 
but I think it’s both inspiring , a difficult journey but ultimately well worth 
it.

We need to finish this first leg though, but I’m still very proud to be a 
smalltalker ...

Sent from my iPhone

> On 22 May 2018, at 16:18, Sven Van Caekenberghe  wrote:
> 
> Hi Tim,
> 
> Thanks for the detailed/constructive feedback. I am sure it will be helpful.
> 
> Sven
> 
>> On 22 May 2018, at 17:15, Tim Mackinnon  wrote:
>> 
>> Hi - last night we managed to explore the new contribution process as well 
>> as the new iceberg ui at the U.K. Smalltalk meetup last night.
>> 
>> Not many had seen it before so it was a good test run.
>> 
>> As an initial comment - we need to invest a small amount of time to get the 
>> right docs in places you expect them as not doing so undoes a lot of good 
>> work -  the Pharo main site that points to old contribution docs (and 
>> doesn’t reference the new ones) must be updated ASAP to keep energy high (we 
>> almost lost a few folks last night by going down the wrong path - 
>> fortunately Cyril piped up on Discord for me - phew).
>> 
>> Armed with the right steps it was straightforward - much easier than the 
>> older slices mechanism (that I never was comfortable with) - so HUGE thanks 
>> for that everyone!
>> 
>> As we worked through it, the more git seasoned folks were confused why git 
>> status in a terminal wasn’t really showing the same info as iceberg (I’ll 
>> put this in a separate thread to discuss, as it’s an interesting thought 
>> which I’m sure has lively discussion).
>> 
>> Anyway - the new UI does take some getting used to (personally I liked the 
>> compactness of the original Iceberg and its tabs), but when you understand 
>> what the different windows show you - I think it makes sense (and hopefully 
>> is more stable). We all missed having an obvious Diff mechanism - we later 
>> spotted that Commit does show this (Although possibly calling it “Commit…” 
>> might make it more obvious that you have a chance to review changes and 
>> change your mind) - but knowing the size of your change and reviewing them 
>> without any danger of committing something is a useful feature (but maybe a 
>> 2.0 enhancement request?).
>> 
>> One small tweak (which I would PR if I knew how to - would be to swap  the 
>> status and branch columns in the Repository window  to make the status  
>> clearer (the status gets lost as it sqashed against the normally much longer 
>> branch name).  Its a simple change to #initializeRepositoryList but I guess 
>> Iceberg is in a different repository (and not in the instructions for 
>> contirbutions).
>> 
>> We also noticed that if you try to use the “Create Pull Request” menu item, 
>> you can’t if you have 2FA enabled on Github (the recommended setting) as I 
>> guess that ssh protocol doesn’t allow this with an ssh key? So I we should 
>> update the instructions to suggest either using the web ui - or - creating 
>> an app specific login (that doesn’t use 2fa). - I’ll look at how to add that 
>> tweak and send a PR.
>> 
>> 
>> Tim
>> 
>> 
>> Sent from my iPhone
> 
> 




Re: [Pharo-users] Why doesn't Pharo 7 Iceberg write changes to the git filesystem as you go?

2018-05-22 Thread Tim Mackinnon
Actually I missed that one - thanks. Would have been a useful one to show 
everyone when we went through the commit process - it’s very good.

Sent from my iPhone



Sent from my iPhone
> On 22 May 2018, at 17:16, Sven Van Caekenberghe  wrote:
> 
> Partial answer, but you saw this, right ?
> 
> https://github.com/pharo-vcs/iceberg/wiki/Iceberg-glossary
> 
>> On 22 May 2018, at 17:23, Tim Mackinnon  wrote:
>> 
>> Hi - when trying out the new Iceberg with a bunch of developers and 
>> explaining the challenges of integrating git and files into a smalltalk 
>> realm of the image - there was a lot of interest in how this works.
>> 
>> When you clone - you obviously see a series of files (in Tonel - nice) that 
>> are then brought into your image. If you edit a file like Readme.md (using a 
>> markdown editor) you will notice that git status will show you that this 
>> file has changed. However if you then edit some methods - and then look in 
>> the file system - git status doesn’t show these? This in retrospect possibly 
>> feels weird - or does it? I’m not sure anymore - and was wondering if there 
>> was a specific reason behind not mirroring code changes back to the file 
>> system as they happen?
>> 
>> When you branch in Pharo, a command line git status does show that change - 
>> so some things clearly are being mirrored, just not code (Which I’m guess 
>> happens briefly when you click commit?).
>> 
>> I’m curious now to understand the tradeoffs.
>> 
>> Tim
>> 
>> p.s. it is very nice for small private projects, to use a git client on your 
>> phone - edit a method or two on the train, commit your changes and then see 
>> your CI build the results and deploy a new website by the time you get off… 
>> yes its not the rich smalltalk environment for bigger changes - but tiny 
>> stuff, its quite nice to fallback on the traditional way.
> 
> 




Re: [Pharo-users] [Ann] Some new iceberg videos

2018-05-23 Thread Tim Mackinnon
Guille - the text reads very well, I’ll try and look at the videos later. I 
just submitted a PR to pharo to try and get the contributions text pointing to 
the “newer way” so that people don’t get off track (like we did earlier this 
week).

(Aside: Its quite nice having these docs in GitHub as does make it easier to 
propose fixes that people can review and accept/comment on).

Presumably those how to contribute docs should then also link to the below, so 
you also realise how you can help with Iceberg as well? And possibly those 
videos might also be helpful on the more generic - how to contribute to pharo 
(in general).

By the way - this video - 
https://www.youtube.com/watch?v=c0IgIT2s6Js&feature=youtu.be 
 has a very low 
quality compare to the others. I think maybe a setting was wrong when it was 
uploaded?

Tim

> On 23 May 2018, at 17:09, Guillermo Polito  wrote:
> 
> Hi all,
> 
> This time (just before releasing a new version of iceberg) I wanted to share 
> some videos with you.
> Feedback is welcome.
> 
> !! How to contribute to Iceberg
> https://youtu.be/yGr5HvVWM0M 
> 
> This video shows how to contribute to iceberg.
> For this, you should update your iceberg installation and then just do a pull 
> request.
> This means that you need to start by forking 
> https://github.com/pharo-vcs/iceberg 
> 
> - Path 1: Clone and pull (easy)
>   - Clone your fork
>   - Checkout the latest development branch (e.g., dev-0.7)
>   - Pull from pharo-vcs/iceberg
>   
>   This path does not always work, as this is kind of self-brain surgery. 
> Iceberg is updating itself.
>   If this does not work, go to path 2
>   
> - Path 2: Install from scratch (if Path 1 does not work)
>   - Use the script in the README file to unload and reinstall iceberg
>   - Make sure you use the latest development branch in the Metacello script 
> (e.g., dev-0.7)
>   - Clone your fork and checkout the development branch
>   
> Once you have the correct version, you can load the tests by loading the 
> development group of the baseline.
>   
> 
> !! Basic Branching and Merging
> https://youtu.be/c0IgIT2s6Js 
> 
> This video shows in a simple example how to branch, merge and checkout 
> different commits.
> In this video we first create a new class with a method, then we create 
> another branch and force a conflict. We resolve the conflict during merge.
> 
> In the middle, bonus feature, we checked out a commit and stayed in Detached 
> HEAD for a while ;)
> 
> !! Loading a baseline from your repository
> https://youtu.be/brUHEOr-p_E 
> 
> This video shows how to load a baseline from Iceberg's UI.
> We clone an existing project, see it is "Not loaded" and use Metacello plugin 
> to load the default group.
> 
> Enjoy,
> Guille
> 
> PS: Tomorrow I'll answer the threads about Iceberg that were going around 
> here in the mailing list. I was running today.



Re: [Pharo-users] Code completion in Pharo?

2018-05-25 Thread Tim Mackinnon

Hi - I’m slightly ahead of you on that journey - but what I do is press 
shift-enter which gives you a great tool called spotter that lets you explore 
more interactively.  In spotter if you also press cmd-p it will also preview 
method source too - so it’s close to what you are asking (and many methods have 
docs on their first line). However - selecting a method in spitter will also 
show you other senders of that method - some of those being test cases, which 
really give you insight into how to do most things. In fact this is a powerful 
element of Pharo that is often overlooked - as it’s written in itself, and all 
the source is there, there are excellent examples of how to do real things - 
even how the compiler and browsers work.

I mention the latter, as it occurs to me that in the code completion list, it 
would be nice to press shift-enter on the method you are contemplating and be 
able to spot on it (or maybe even the whole autocompletion list) - I think this 
would actually be quite doable (armed with a bit of system knowledge of 
course). This was something I missed when I first came across Smalltalk - I was 
frustrated it didn’t do X (that my pascal environment did at the time ), not 
realising that it was simply 3 lines of code I could easily add to the  
environment myself (and nowhere near as complicated or painful as writing 
plugins for eclipse or IntelliJ).

While at it - another nice trick, is to ctrl -shift click on any item in the 
environment and you get a little graphical halo appear - of which one icon is 
debug, which then let’s you inspect the code of that item (perhaps a button - 
which inevitably has an owner or a callback method you can then jump to and see 
the source of, and thus figure out how it works). It’s all very magical and 
dare I say fun... and this is why we love Smalltalk and Pharo , they are so 
malleable.

Tim 

Sent by iPhone



Sent from my iPhone
> On 25 May 2018, at 02:12, andreo  wrote:
> 
> Dear Pharoers, 
> 
> I'm just starting out with Pharo 6.1, and I'm trying to use code completion
> to interactively explore various objects and their messages. However, I'm
> having difficulties doing this efficiently - I think I must be missing
> something obvious, and I hope you can point me in the right direction. 
> 
> For instance, let's say I have the below in Playground: 
> 
> 'some text' asMorph 
> 
> and I would like to display the morph object as a window, but I don't know
> the exact message name, or whether such a message exists at all. If I type
> "Window", then the completion popup will show a long list of matching
> messages, but won't show their documentation or argument names, so it will
> be difficult to know exactly what these messages do. 
> I can see that one can do "Do it and go" on an expression and then browse
> the available messages in Meta, but maybe there is simpler/faster way? 
> 
> How would an experienced Pharo user typically go about discovering the right
> messages in such situations? 
> 
> Best regards, 
> Andrzej
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] Code completion in Pharo?

2018-05-26 Thread Tim Mackinnon
That’s exactly the exploratory attitude we like to see...

I think the code completer is pluggable and can be selected in the settings (I 
think there are 2, and their history is probably in this list somewhere), so  
you can try your own too.

Tim

Sent from my iPhone



Sent from my iPhone
> On 26 May 2018, at 16:10, Andrzej Olszak  wrote:
> 
> Hi Tim and Nicole,
> 
> Thanks for great tips. The click+keyModifier actions are extremely useful, 
> and combined with breakpoints make for a great way of 'peeking under the 
> hood' of the existing features.
> 
> Also, I've just found a perfect piece of real code to do some learning and 
> experimenting on - it will be the code completion itself! ;-)
> 
> Andrzej
> 
>> On Fri, May 25, 2018 at 10:47 AM, Nicole de Graaf  wrote:
>> Hi Andrzej,
>> 
>> my way of doing it:
>> 
>> Searching in the image what other guys are doing.
>> 
>> Finder: asMorph 
>> 
>> and here you can find methods like
>> 
>> #openAsMorph .. you can get a clue.
>> 
>> or:
>> 
>> ‘some text’ asMorph inspect .. 
>> than you get the object and you can search the class and from here the class 
>> the references.
>> 
>> All my steps are based on code reading not code completion.
>> 
>> Code completion I use more if I know what is should be and use the same 
>> method names as the other developers.
>> 
>> Nic
>> 
>> 
>>> On 25 May 2018, at 03:12, andreo  wrote:
>>> 
>>> Dear Pharoers, 
>>> 
>>> I'm just starting out with Pharo 6.1, and I'm trying to use code completion
>>> to interactively explore various objects and their messages. However, I'm
>>> having difficulties doing this efficiently - I think I must be missing
>>> something obvious, and I hope you can point me in the right direction. 
>>> 
>>> For instance, let's say I have the below in Playground: 
>>> 
>>> 'some text' asMorph 
>>> 
>>> and I would like to display the morph object as a window, but I don't know
>>> the exact message name, or whether such a message exists at all. If I type
>>> "Window", then the completion popup will show a long list of matching
>>> messages, but won't show their documentation or argument names, so it will
>>> be difficult to know exactly what these messages do. 
>>> I can see that one can do "Do it and go" on an expression and then browse
>>> the available messages in Meta, but maybe there is simpler/faster way? 
>>> 
>>> How would an experienced Pharo user typically go about discovering the right
>>> messages in such situations? 
>>> 
>>> Best regards, 
>>> Andrzej
>>> 
>>> 
>>> 
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 


Re: [Pharo-users] can't get keyboard shortcuts to work on Mac

2018-06-02 Thread Tim Mackinnon
Hi - what shortcuts don’t work? On my MacBook Pro and also a Mac air with 
external keyboard they all seem to work fine? This is Pharo 6.1.

Tim

Sent from my iPhone

> On 2 Jun 2018, at 19:11, Gregg Williams  wrote:
> 
> I just can't get keyboard shortcuts to work on Mac. I’ve tried a lot of 
> stuff, more than I can list here. Here are some things I’ve tried:
> 
> * searching the Pharo by Example book
> * turning off all Mac keyboard-macro programs
> * switching from extended to standard US keyboard
> * looking at options in System Preferences > Keyboard
> 
> I found some “unmapping option-key-plus-letter” solutions at 
> https://stackoverflow.com/questions/11876485/how-to-disable-typing-special-characters-when-pressing-option-key-in-mac-os-x?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
> …but yikes, that seems extreme!
> 
> If you’re on the Mac, do you have this problem? If so, what’s your solution? 
> Thanks!




Re: [Pharo-users] pharos.org gives a 503

2018-06-03 Thread Tim Mackinnon
Might have been a blip? Works fine for me from the U.K.?

Sent from my iPhone

> On 3 Jun 2018, at 09:39, Bruce O'Neel  wrote:
> 
> Hi,
> 
> Pharo.org and 
> http://www.pharo-project.org/news?rss
> 
> both give a 503 right now.
> 
> cheers
> 
> bruce


Re: [Pharo-users] Loading Local Repositories with Iceberg

2018-06-04 Thread Tim Mackinnon
> P7 will force you to be in the right branch or you will not be able to do… 
> almost anything :)
> you can have two (or ten) images opened at once and work on them, but at a 
> moment you will need to “repair” each image to commit.

So are we saying that the easiest and less complicated option is to just have 
local copies for every project. These days, disk space is pretty cheap (and 
projects aren’t that big source wise)?

I’m sure for others it might be a bigger deal - but I’m trying to understand 
what is the easiest option to avoid gotcha’s (that more advanced guys can 
better cope with)

Tim

> On 4 Jun 2018, at 14:59, Esteban Lorenzano  wrote:
> 
> hi,
> 
>> On 4 Jun 2018, at 12:57, Stephan Eggermont  wrote:
>> 
>> Evan Donahue  wrote:
>>> I have "Share repositories between images" checked in both images, 
>> 
>> Share repositories at the moment just provides a shared location on disk
>> where the repositories are located. That is only useful if you are very
>> disciplined about stashing and switching to the branch needed for your
>> current image, and you only have one image open at a time. 
> 
> not really. 
> P7 will force you to be in the right branch or you will not be able to do… 
> almost anything :)
> you can have two (or ten) images opened at once and work on them, but at a 
> moment you will need to “repair” each image to commit.
> 
> Esteban
> 
>> 
>> Stephan
>> 
>> 
>> 
>> 
>> 
> 
> 




Re: [Pharo-users] more on "can't get keyboard shortcuts to work on Mac"

2018-06-05 Thread Tim Mackinnon
Hi Greg - meta is the Cmd key on a Mac.

So you type cmd-shift-f for reformat code in a method, cmd-s to save.

There are some chorded keys - eg cmd-b cmd-m (keep holding the cmd then press b 
followed by m) to browse implementers of the selected method. 

On Linux the meta key is Ctrl (just an FYI)

While discussing keystrokes - a less obvious but very useful one is shift-enter 
to get the spotter (sort of like the Mac’s spotlight but for code)

All of this is in the help documentation - Help | Help Browser | Pharo 
Environment Help.

But happy to get you started, as it’s frustrating if the basics aren’t working 
for you.

Tim

Sent from my iPhone

> On 5 Jun 2018, at 04:50, Gregg Williams  wrote:
> 
> Tim and Ben,
> 
> Thanks for your help. Sorry for not being clear. When I said "I just can't 
> get keyboard shortcuts to work on Mac," what I should have said is "I just 
> can't get Pharo-specific shortcuts to work on the Macintosh implementation of 
> Pharo" (6.1 is what I'm using BTW).
> 
> Maybe I should have said "keymap shortcuts"? I'm talking about things like 
> Meta+Shift+f for 'find class', and Meta+x, Meta+m for 'remove method'.
> 
> I've looked for what the definition of Meta is for Mac OS. All I can find is 
> meta-click is Shift+Option+click, but that doesn't seem to work. Option + 
>  gives "special characters" like ∂, ß, and œ.
> 
> I hope that now you can simply say, "Oh, of course, what you need to do is…". 
> Thanks!
> 
> 
>> I just can't get keyboard shortcuts to work on Mac. I?ve tried a lot of 
>> stuff, more than I can list here. Here are some things I?ve tried:
>> 
>> * searching the Pharo by Example book
>> * turning off all Mac keyboard-macro programs
>> * switching from extended to standard US keyboard
>> * looking at options in System Preferences > Keyboard
>> 
>> 
>> If you?re on the Mac, do you have this problem? If so, what?s your solution? 
>> Thanks!
>> 
> 
> 




[Pharo-users] Is it bad to have an order NeoJsonObject?

2018-06-06 Thread Tim Mackinnon
Hi - I’ve hit some Json where the outputted values (they are field names) are 
written out in a specific order - and the author hasn’t chosen to use an array 
to represent those fields in a specific order.

{ ‘field1’ : { ….}, ‘field2’: { … } }

I think this is technically incorrect and should be:

{ [ {‘field1’ : { ….}, ‘field2’: { … } ]}

Anyway - given what I’ve got, would it be a terrible idea to create my own 
version NeoJsonObject and just make it a subclass of OrderedDictionary?

I can’t see any issues - but then I might be kidding myself…

Tim


Re: [Pharo-users] more on "can't get keyboard shortcuts to work on Mac"

2018-06-07 Thread Tim Mackinnon
Yes they all work for me too - so we ‘re a bit confused by what your reporting 
Greg, as they should all work on a Mac.

I’m sure we can help you get to the bottom of it.

Tim

Sent from my iPhone

> On 7 Jun 2018, at 06:39, Paul DeBruicker  wrote:
> 
> oh and a typo.  Which should have been:
> 
> not Cmd-t then Cmd-c
> 
> but 
> 
> Cmd-t-c
> 
> 
> 
> 
> Paul DeBruicker wrote
>> Oh.  Its not an individual 
>> 
>> Cmd-t then Cmd-t
>> 
>> Its Cmd-t-c
>> 
>> So with a browser open on the instance side of a class press and hold the
>> Cmd key, then hit t then hit c
>> 
>> At least it works on my machine™ 
>> 
>> 
>> 
>> 
>> GreggInCA wrote
>>> Tom, thanks for the detailed instructions. They help, but many of the
>>> shortcuts listed in Help (Help window > Pharo Environment Help > Keyboard
>>> Shortcuts > Browser Shortcuts) don't work. 
>>> 
>>> cmd-b, cmd-m works as you said, but anything that begins with Meta + f
>>> (i.e., cmd-f) brings up a Find and Replace dialog, just as you would
>>> expect
>>> any Mac application to provide (i.e., cmd-f lets you find things). Some
>>> shortcuts do work, while others do not.
>>> 
>>> Other examples of things not working: With a system browser active and a
>>> class selected, Meta + t, Meta + c does *not* "show class side" (which is
>>> what the Browser Shortcuts window says it should do).
>>> 
>>> I'm sure this is Mac-specific, with built-in Mac behavior having
>>> precedence
>>> over any application-defined behaviors. As I said in my earliest post,
>>> I've
>>> looked everywhere in the Mac environment for ways to turn this Mac
>>> behavior
>>> off, with no success.
>>> 
>>> Hey, I can live without keyboard shortcuts, but I thought I'd put some
>>> energy into seeing if it's possible to get them to work.
>>> 
>>> If no one running Pharo 6.1 on a Mac can tell anything that might help,
>>> I'll
>>> just give it up and use menus. Everybody, thanks for your help!
>>> 
>>> === original post ===
>>> 
>>> 
>>> Tim Mackinnon wrote
>>>> Hi Greg - meta is the Cmd key on a Mac.
>>>> 
>>>> So you type cmd-shift-f for reformat code in a method, cmd-s to save.
>>>> 
>>>> There are some chorded keys - eg cmd-b cmd-m (keep holding the cmd then
>>>> press b followed by m) to browse implementers of the selected method. 
>>>> 
>>>> On Linux the meta key is Ctrl (just an FYI)
>>>> 
>>>> While discussing keystrokes - a less obvious but very useful one is
>>>> shift-enter to get the spotter (sort of like the Mac’s spotlight but for
>>>> code)
>>>> 
>>>> All of this is in the help documentation - Help | Help Browser | Pharo
>>>> Environment Help.
>>>> 
>>>> But happy to get you started, as it’s frustrating if the basics aren’t
>>>> working for you.
>>>> 
>>>> Tim
>>>> 
>>>> Sent from my iPhone
>>>> 
>>>>> On 5 Jun 2018, at 04:50, Gregg Williams <
>>> 
>>>> gregg13@
>>> 
>>>> > wrote:
>>>>> 
>>>>> Tim and Ben,
>>>>> 
>>>>> Thanks for your help. Sorry for not being clear. When I said "I just
>>>>> can't get keyboard shortcuts to work on Mac," what I should have said
>>>>> is
>>>>> "I just can't get Pharo-specific shortcuts to work on the Macintosh
>>>>> implementation of Pharo" (6.1 is what I'm using BTW).
>>>>> 
>>>>> Maybe I should have said "keymap shortcuts"? I'm talking about things
>>>>> like Meta+Shift+f for 'find class', and Meta+x, Meta+m for 'remove
>>>>> method'.
>>>>> 
>>>>> I've looked for what the definition of Meta is for Mac OS. All I can
>>>>> find
>>>>> is meta-click is Shift+Option+click, but that doesn't seem to work.
>>>>> Option + 
>>>> 
>>> 
>> 
>>>> gives "special characters" like ∂, ß, and œ.
>>>>> 
>>>>> I hope that now you can simply say, "Oh, of course, what you need to do
>>>>> is…". Thanks!
>>>>> 
>>>>> 
>>>>>> I just can't get keyboard shortcuts to work on Mac. I?ve tried a lot
>>>>>> of
>>>>>> stuff, more than I can list here. Here are some things I?ve tried:
>>>>>> 
>>>>>> * searching the Pharo by Example book
>>>>>> * turning off all Mac keyboard-macro programs
>>>>>> * switching from extended to standard US keyboard
>>>>>> * looking at options in System Preferences > Keyboard
>>>>>> 
>>>>>> 
>>>>>> If you?re on the Mac, do you have this problem? If so, what?s your
>>>>>> solution? Thanks!
>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>> 
>> 
>> 
>> 
>> 
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 
> 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] Is it bad to have an order NeoJsonObject?

2018-06-07 Thread Tim Mackinnon
Thanks guys - it seems like I was on the right track.

Making my own NeoJsonObject did work, but I will go back and see if I’m really 
using the js nature of the values and if for this, just an OrderedDictionary 
might be clearer.

As an aside, I was doing some experiments with prismic.io (a headless cms) and 
the order of your content when rendering it on a page(generically) is obviously 
important.

Tim

Sent from my iPhone

> On 7 Jun 2018, at 07:46, Sven Van Caekenberghe  wrote:
> 
> 
> 
>> On 7 Jun 2018, at 08:16, Norbert Hartl  wrote:
>> 
>> 
>> 
>>> Am 07.06.2018 um 07:29 schrieb Sven Van Caekenberghe :
>>> 
>>> Tim,
>>> 
>>>> On 7 Jun 2018, at 01:37, Tim Mackinnon  wrote:
>>>> 
>>>> Hi - I’ve hit some Json where the outputted values (they are field names) 
>>>> are written out in a specific order - and the author hasn’t chosen to use 
>>>> an array to represent those fields in a specific order.
>>>> 
>>>> { ‘field1’ : { ….}, ‘field2’: { … } }
>>>> 
>>>> I think this is technically incorrect and should be:
>>>> 
>>>> { [ {‘field1’ : { ….}, ‘field2’: { … } ]}
>>>> 
>>>> Anyway - given what I’ve got, would it be a terrible idea to create my own 
>>>> version NeoJsonObject and just make it a subclass of OrderedDictionary?
>>>> 
>>>> I can’t see any issues - but then I might be kidding myself…
>>>> 
>>>> Tim
>>> 
>>> Yea, I think you could try making a NeoJSONOrderedObject as a subclass of 
>>> OrderedDictionary, modelled after NeoJSONObject. Just remember it is 
>>> implemented using DNU, which will surprise you at one point.
>>> 
>> Wouldn‘t be setting #mapClass: on the reader to OrderedDictionary not 
>> enough? Dictionary is the default anyway.
>> 
>> Norbert
> 
> Yes, of course, Norbert, it keeps the order:
> 
> (NeoJSONReader on: '{"BB":1,"CC":2,"AA":3}' readStream) mapClass: 
> OrderedDictionary; next.
> 
>  => an OrderedDictionary('BB'->1 'CC'->2 'AA'->3)
> 
> NeoJSONWriter toString: (OrderedDictionary new at: #BB put: 1; at: #CC put: 
> 2; at: #AA put: 3; yourself). 
> 
>  => '{""BB"":1,""CC"":2,""AA"":3}'
> 
> It is not functionally 100% the same as a hypothetical NeoJSONOrderedObject, 
> but might do.
> 
> Sven




[Pharo-users] Why do #select:thenXxx methods not return their result

2018-06-07 Thread Tim Mackinnon
Hi - are the methods like #select:thenCollect: frowned upon? 

They seem quite readable , however in using them I’ve noticed that unlike the 
core methods they done return the result of evaluation (they are missing a ^). 
This is a shame, but possibly an oversight?

Tim

Sent from my iPhone



[Pharo-users] Understanding ZnJSONReader mapping?

2018-06-07 Thread Tim Mackinnon
Hi - is there something I can read/study to get a bit more familiar with Json 
mapping? I have read the Pharo enterprise book (chapter 8).

I’ve been using NeoJSONObject but then it occurred to me that maybe I could map 
better domain objects directly and simplify things. However it seems that the 
intent of mapping is just for simple things like an array of points - whereas 
if I have 15 different domain objects (albeit with a type key), then I’m 
wondering if I should just wrap json nodes on usage? 

In fact I’m wondering what the point of mapping is if it’s so simple - or maybe 
I’m missing an important concept?

Tim

Sent from my iPhone



Re: [Pharo-users] Understanding ZnJSONReader mapping?

2018-06-07 Thread Tim Mackinnon
Hey thanks - so maybe there are more legs to this - although it’s the decoding 
I’m currently interested in (but I’m sure encoding will come up at some point 
on my journey).

So it seems that my mapper can have multiple entries (that bit I had missed - 
although seems obvious in retrospect now).

But then you have have to say #nextAs: and this is what I don’t get for 
anything more complicated - how do I choose as it could be any one of the 
patterns I want to map?

Sadly it’s not my scheme - it’s a prismic.io one so I’m trying to follow what 
the equivalent python/js/csharp libs do - but they are horrid, filled with tons 
on instanceof crap...

I’ve gotten reasonably far but as the structures can be recursive for a cms, I 
think I can do much better somehow.

Tim

Sent from my iPhone

> On 7 Jun 2018, at 21:44, Esteban A. Maringolo  wrote:
> 
>> On 07/06/2018 17:21, Tim Mackinnon wrote:
>> Hi - is there something I can read/study to get a bit more familiar with 
>> Json mapping? I have read the Pharo enterprise book (chapter 8).
>> 
>> I’ve been using NeoJSONObject but then it occurred to me that maybe I could 
>> map better domain objects directly and simplify things. However it seems 
>> that the intent of mapping is just for simple things like an array of points 
>> - whereas if I have 15 different domain objects (albeit with a type key), 
>> then I’m wondering if I should just wrap json nodes on usage? 
>> 
>> In fact I’m wondering what the point of mapping is if it’s so simple - or 
>> maybe I’m missing an important concept?
> If your objects just hold data, then you can get very far with
> NeoJSONObject, but if you want to do more, you can get pretty extensible
> mappings with the use of the valueSchema: option in the mapper.
> 
> For instance, to write a TsOrder (a model of an purchase order) I
> configured the mapper this way:
> 
> mapper for: TsOrder do: [ :mapping |
>  mapping mapAccessors: #(id).
> (mapping mapAccessor: #date) valueSchema: Date.
> (mapping mapAccessor: #edd) valueSchema: #NamedModel.
> (mapping mapAccessor: #provider) valueSchema: #NamedModel.
> (mapping mapAccessor: #status) valueSchema: #NamedModel.
> (mapping mapAccessor: #customerCode).
> (mapping mapAccessor: #totalOriginalPrice to: 'total') valueSchema:
> #monetary.
> ].
> 
> mapper for: Date customDo: [ :mapping |
>mapping encoder: [ :date | date ddmm  ] ].
> 
> mapper for: #monetary customDo: [ :mapping |
>mapping encoder: [ :price | price printShowingDecimalPlaces: 2 ] ].
> 
> mapper for: DateAndTime customDo: [ :mapping |
>mapping decoder: [ :string | DateAndTime fromString: string ].
> ].
> 
> mapper for: #NamedModel customDo: [ :mapping |
>mapping encoder: [ :persona | persona displayString ] ].
> 
> 
> For decoding it might be trickier, because you might need more objects
> other than just deserializing from JSON, e.g. to avoid instantiating
> twice the same domain object, or if you need to lookup an entity in the
> database by ID, and then you need access to the database, etc.
> 
> Throughout my journey of developing a few JSON-REST APIs I started using
> the NeoJSON approach, then JsonObject and then WAJsonCanvas.
> 
> I found myself more confortable writing JSON with the latter (I like the
> canvas approach of Seaside) and instantiating NeoJSONObject/JsonObject
> and building my business objects from these cherry picking what I needed.
> 
> What NeoJSON offers as a "differentiator" is that it is stream based, so
> there is no need to have intermediate "structures" (it is,
> dictionaries), and the mappers are orthogonal to the objects (unless you
> use the default class side #neoJsonMapping:)
> 
> WAJsonCanvas offers stream based writing, but there are no mappings, but
> if you always serialize a proper hierarchy of renderJsonOn: implementors
> could prove to be effective, in particular if you have to build your
> objects manually from a JSON stream.
> 
> Regards,
> 
> 
> -- 
> Esteban A. Maringolo
> 




Re: [Pharo-users] Understanding ZnJSONReader mapping?

2018-06-07 Thread Tim Mackinnon
Its sort of an awkward format, so maybe mapping is just not the way to go (but 
I’m still keen to learn how to properly use it when it is appropriate). For the 
record (if anyone is interested), an example json sample is here 
(https://sprintdemo.prismic.io/api/v1/documents/search?q=%5B%5Bat(document.tags,%20%5B%22demo%22%5D)%5D%5D&ref=WxmMWCQAAFGEIbhe#format=json
 
<https://sprintdemo.prismic.io/api/v1/documents/search?q=[[at(document.tags,%20[%22demo%22])]]&ref=WxmMWCQAAFGEIbhe#format=json>).

It ends up giving you something like below (the names like heading, 
effectivefrom are names you define in your Prismic page type, but their values 
are then a standard format (almost) - so maybe those I can usefully map?

Or maybe I just stick to dictionaries and plough on.

Tim

page: {
--heading: {
type: "StructuredText"
--value: [
--{
type: "heading1"
text: "Sample Page"
spans: [ ]
}
]
}

--effectivefrom: {
type: "Timestamp"
value: "2018-06-20T23:00:00+"
}
--department: {
type: "Select"
value: “SMA"
}
- - content: {
type: "StructuredText"
--value: [
--{
type: "paragraph"
text: "This is a sample page with some content."
spans: [ ]
}
-+{ … }
--{
type: "paragraph"
text: "There are 4 rules:"
--spans: [
--{
start: 10
end: 17
type: "strong"
}
]
}


> On 7 Jun 2018, at 21:58, Tim Mackinnon  wrote:
> 
> Hey thanks - so maybe there are more legs to this - although it’s the 
> decoding I’m currently interested in (but I’m sure encoding will come up at 
> some point on my journey).
> 
> So it seems that my mapper can have multiple entries (that bit I had missed - 
> although seems obvious in retrospect now).
> 
> But then you have have to say #nextAs: and this is what I don’t get for 
> anything more complicated - how do I choose as it could be any one of the 
> patterns I want to map?
> 
> Sadly it’s not my scheme - it’s a prismic.io one so I’m trying to follow what 
> the equivalent python/js/csharp libs do - but they are horrid, filled with 
> tons on instanceof crap...
> 
> I’ve gotten reasonably far but as the structures can be recursive for a cms, 
> I think I can do much better somehow.
> 
> Tim
> 
> Sent from my iPhone
> 
>> On 7 Jun 2018, at 21:44, Esteban A. Maringolo  wrote:
>> 
>>> On 07/06/2018 17:21, Tim Mackinnon wrote:
>>> Hi - is there something I can read/study to get a bit more familiar with 
>>> Json mapping? I have read the Pharo enterprise book (chapter 8).
>>> 
>>> I’ve been using NeoJSONObject but then it occurred to me that maybe I could 
>>> map better domain objects directly and simplify things. However it seems 
>>> that the intent of mapping is just for simple things like an array of 
>>> points - whereas if I have 15 different domain objects (albeit with a type 
>>> key), then I’m wondering if I should just wrap json nodes on usage? 
>>> 
>>> In fact I’m wondering what the point of mapping is if it’s so simple - or 
>>> maybe I’m missing an important concept?
>> If your objects just hold data, then you can get very far with
>> NeoJSONObject, but if you want to do more, you can get pretty extensible
>> mappings with the use of the valueSchema: option in the mapper.
>> 
>> For instance, to write a TsOrder (a model of an purchase order) I
>> configured the mapper this way:
>> 
>> mapper for: TsOrder do: [ :mapping |
>> mapping mapAccessors: #(id).
>> (mapping mapAccessor: #date) valueSchema: Date.
>> (mapping mapAccessor: #edd) valueSchema: #NamedModel.
>> (mapping mapAccessor: #provider) valueSchema: #NamedModel.
>> (mapping mapAccessor: #status) valueSchema: #NamedModel.
>> (mapping mapAccessor: #customerCode).
>> (mapping mapAccessor: #totalOriginalPrice to: 'total') valueSchema:
>> #monetary.
>> ].
>> 
>> mapper for: Date customDo: [ :mapping |
>>   mapping encoder: [ :date | date ddmm  ] ].
>> 
>> mapper for: #monetary customDo: [ :mapping |
>>   mapping encoder: [ :price | price printShowingDecimalPlaces: 2 ] ].
>> 
>> mapper for: DateAndTime customDo: [ :mapping |
>>   mapping decoder: [ :string | DateAndTime fromString: string ].
>> ].
>> 
>> mapper for: #NamedModel customDo: [ :mapping |
>>   mapping encoder: [ :persona | persona displayString ] ].
>> 
>> 
>> For decoding it might be trickier, because you might need more objects
>> other than just deserializing from JSON, e.g. to avoid instantiating
>> twice the same domain object, or if you need to lookup an entity in the
>> database by ID, and then you need access to the database

Re: [Pharo-users] Why do #select:thenXxx methods not return their result

2018-06-07 Thread Tim Mackinnon
You are correct Peter - I jumped the gun, as it was #select:thenDo: where I hit 
the problem - and yes it doesn’t make sense to answer a result from Do.

I do kind of miss the concept of: #select:thenDo:ifNone: as well as 
#select:thenCollect:ifNone: but some bracketing sorts it out, and I guess where 
do you stop.

Tim

> On 7 Jun 2018, at 13:25, Peter Uhnák  wrote:
> 
> How do you mean?
> 
> (1 to: 10) select: #odd thenCollect: [ :x | x ** 2 ] "-> #(1 9 25 49 81)"
> 
> It wouldn't make sense otherwise to have the collect method if it wouldn't 
> return anything.
> 
> Peter
> 
> On Thu, Jun 7, 2018 at 2:20 PM, Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> Hi - are the methods like #select:thenCollect: frowned upon? 
> 
> They seem quite readable , however in using them I’ve noticed that unlike the 
> core methods they done return the result of evaluation (they are missing a 
> ^). This is a shame, but possibly an oversight?
> 
> Tim
> 
> Sent from my iPhone
> 
> 



[Pharo-users] Pharo 6, bad debugger behaviour

2018-06-08 Thread Tim Mackinnon
Hi, I’ve noticed lately when using a reasonably recent Pharo 6.1 setup that if 
I restart a method in the debugger - particularly from a breakpoint or 
correcting a dnu issue the environment frequently locks up. Fearing the worst 
(after a few seconds), if I repeatedly press cmd . (Say 5 times) after 10 
seconds more it comes back with 30 debugger Windows typically with something 
like Instance of Xxxx dnu: #someMethod (which is legit as I might have a now 
corrupt inst bar). 

I understand the error, but why does it lockup and require the cmd . Dance?

I dont recall earlier Pharos doing this (and not other smalltalks).

Should I report this?

Tim

Sent from my iPhone



Re: [Pharo-users] Pharo 6, bad debugger behaviour

2018-06-08 Thread Tim Mackinnon
I should also mention these extra debuggers don’t have the stack either, just a 
single dnu method.

Tim

Ps thank god for close windows to right. ...

Sent from my iPhone

> On 8 Jun 2018, at 12:30, Tim Mackinnon  wrote:
> 
> Hi, I’ve noticed lately when using a reasonably recent Pharo 6.1 setup that 
> if I restart a method in the debugger - particularly from a breakpoint or 
> correcting a dnu issue the environment frequently locks up. Fearing the worst 
> (after a few seconds), if I repeatedly press cmd . (Say 5 times) after 10 
> seconds more it comes back with 30 debugger Windows typically with something 
> like Instance of Xxxx dnu: #someMethod (which is legit as I might have a now 
> corrupt inst bar). 
> 
> I understand the error, but why does it lockup and require the cmd . Dance?
> 
> I dont recall earlier Pharos doing this (and not other smalltalks).
> 
> Should I report this?
> 
> Tim
> 
> Sent from my iPhone
> 




Re: [Pharo-users] Pharo 6, bad debugger behaviour

2018-06-08 Thread Tim Mackinnon
Good point by Norbert - I should have referenced a bug - but interested in 
others experience and I will annotate that bug.

For me, this isn’t a recursion thing, it’s a dnu when restarting a method (not 
sure if many people do this - but it’s a key Smalltalk feature in my mind - so 
it should work well).

Also my image recovers fine when I shut down the debuggers.

Interested in others experience and I guess I should try and use 7 more to see 
if it’s there too.

Tim

Sent from my iPhone



Sent from my iPhone
>> On 8 Jun 2018, at 13:10, Esteban A. Maringolo  wrote:
>> 
>> On 08/06/2018 08:30, Tim Mackinnon wrote:
>> Hi, I’ve noticed lately when using a reasonably recent Pharo 6.1 setup that 
>> if I restart a method in the debugger - particularly from a breakpoint or 
>> correcting a dnu issue the environment frequently locks up. Fearing the 
>> worst (after a few seconds), if I repeatedly press cmd . (Say 5 times) after 
>> 10 seconds more it comes back with 30 debugger Windows typically with 
>> something like Instance of Xxxx dnu: #someMethod (which is legit as I might 
>> have a now corrupt inst bar). 
>> 
>> I understand the error, but why does it lockup and require the cmd . Dance?
>> 
>> I dont recall earlier Pharos doing this (and not other smalltalks).
>> 
>> Should I report this?
> 
> 
> It was reported years ago [1], there was a bug and an issue, and it was
> supposedly fixed, apparently it wasn't.
> 
> In some cases that recursion caused a "detachment" of the image from the
> changes, it is, the image starts complaining that it can't find the
> changes file, so all methods lose the source and you better discard that
> image without saving, because if you do, you'll never be able to
> "reattach" it.
> 
> I don't know if it is still around in Pharo 7.
> 
> 
> Regards,
> 
> [1] https://twitter.com/emaringolo/status/603939752098816000
> 
> 
> -- 
> Esteban A. Maringolo
> 




Re: [Pharo-users] Pharo 6, bad debugger behaviour

2018-06-08 Thread Tim Mackinnon
Ah that’s interesting- it’s happened to me 4 or 5 tines in the last 2 days. 
Recent enough that maybe I can figure out a test case I’ll try.

Sent from my iPhone

> On 8 Jun 2018, at 18:57, Steven Costiou  wrote:
> 
> Concerning the bug 22085, i commented on fogbuzz:
> 
>> I believe it is because when running test cases, it runs through:
>> 
>> runCaseForDebug: aTestCase
>> [...call test code...]
>> on: self class failure , self class skip, self class warning, self 
>> class error
>> do: [:ex | ex sunitAnnounce: aTestCase toResult: self. ex pass]
>> 
>> So when you reach a doesNotUnderstand, you have:
>> 
>> doesNotUnderstand: aMessage
>> [...stuff...]
>> 
>> resumeValue := exception signal.
>> 
>> ^exception reachedDefaultHandler
>> ifTrue: [aMessage sentTo: self]
>> ifFalse: [resumeValue]
>> 
>> In normal cases (class of the receiver is not a test case), when you step in 
>> the debugger the exception signal blocks the execution right away. In 
>> subclasses of TestCase, it does ex pass each time you get to this line, then 
>> it enters the aMessage sentTo: self, which is not understood, then you can 
>> wait a long time...
>> 
>> 
>> It is equivalent to doing this in a playground:
>> 
>> [ Object new doStuff ] on: Exception do:[:ex| ex pass]
>> 
>> Then step in the debugger and bye bye. But then it seems to be expected 
>> behavior... or maybe not ? I mean voluntarily passing on an exception in a 
>> doesNotUnderstand would lead to such problems.
>> 
>  
> 
> I have heard at least three different stories about this bug : yours, the one 
> from fogbuzz and one other a bit different from Guille.
> 
> They seem to be different but all of them end up looping ad vitam eternam 
> after a debugger step.
> 
> I am looking for ways to reproduce any of this bugs (well except 22085), but 
> so far i have no success on my own images :'( (pharo 6.1 & 7).
> 
>  
> 
> Steven.


Re: [Pharo-users] Is it bad to have an order NeoJsonObject?

2018-06-11 Thread Tim Mackinnon


Sent from my iPhone

> On 11 Jun 2018, at 08:02, Norbert Hartl  wrote:
> 
> 
> 
>> Am 11.06.2018 um 08:55 schrieb Richard O'Keefe :
>> 
>> The order of key:value pairs in a JSON "object"
>> is really NOT supposed to matter.  For example,
>> if you put {"a":1,"b":2} into a JSON database
>> you should not be surprised to get {"b":2,"a":1}
>> back.  Or vice versa, of course.
>> 
> But when it does what do you do? It is pretty clear that the order is 
> important for that format. So saying it shouldn’t matter does not make it 
> better. If you work with mongo DB you will see the same that for some queries 
> you have to provide proper order of keys.
> 
> Norbert
> 
>>> On 8 June 2018 at 00:16, Tim Mackinnon  wrote:
>>> Thanks guys - it seems like I was on the right track.
>>> 
>>> Making my own NeoJsonObject did work, but I will go back and see if I’m 
>>> really using the js nature of the values and if for this, just an 
>>> OrderedDictionary might be clearer.
>>> 
>>> As an aside, I was doing some experiments with prismic.io (a headless cms) 
>>> and the order of your content when rendering it on a page(generically) is 
>>> obviously important.
>>> 
>>> Tim
>>> 
>>> Sent from my iPhone
>>> 
>>> > On 7 Jun 2018, at 07:46, Sven Van Caekenberghe  wrote:
>>> > 
>>> > 
>>> > 
>>> >> On 7 Jun 2018, at 08:16, Norbert Hartl  wrote:
>>> >> 
>>> >> 
>>> >> 
>>> >>> Am 07.06.2018 um 07:29 schrieb Sven Van Caekenberghe :
>>> >>> 
>>> >>> Tim,
>>> >>> 
>>> >>>> On 7 Jun 2018, at 01:37, Tim Mackinnon  wrote:
>>> >>>> 
>>> >>>> Hi - I’ve hit some Json where the outputted values (they are field 
>>> >>>> names) are written out in a specific order - and the author hasn’t 
>>> >>>> chosen to use an array to represent those fields in a specific order.
>>> >>>> 
>>> >>>> { ‘field1’ : { ….}, ‘field2’: { … } }
>>> >>>> 
>>> >>>> I think this is technically incorrect and should be:
>>> >>>> 
>>> >>>> { [ {‘field1’ : { ….}, ‘field2’: { … } ]}
>>> >>>> 
>>> >>>> Anyway - given what I’ve got, would it be a terrible idea to create my 
>>> >>>> own version NeoJsonObject and just make it a subclass of 
>>> >>>> OrderedDictionary?
>>> >>>> 
>>> >>>> I can’t see any issues - but then I might be kidding myself…
>>> >>>> 
>>> >>>> Tim
>>> >>> 
>>> >>> Yea, I think you could try making a NeoJSONOrderedObject as a subclass 
>>> >>> of OrderedDictionary, modelled after NeoJSONObject. Just remember it is 
>>> >>> implemented using DNU, which will surprise you at one point.
>>> >>> 
>>> >> Wouldn‘t be setting #mapClass: on the reader to OrderedDictionary not 
>>> >> enough? Dictionary is the default anyway.
>>> >> 
>>> >> Norbert
>>> > 
>>> > Yes, of course, Norbert, it keeps the order:
>>> > 
>>> > (NeoJSONReader on: '{"BB":1,"CC":2,"AA":3}' readStream) mapClass: 
>>> > OrderedDictionary; next.
>>> > 
>>> >  => an OrderedDictionary('BB'->1 'CC'->2 'AA'->3)
>>> > 
>>> > NeoJSONWriter toString: (OrderedDictionary new at: #BB put: 1; at: #CC 
>>> > put: 2; at: #AA put: 3; yourself). 
>>> > 
>>> >  => '{""BB"":1,""CC"":2,""AA"":3}'
>>> > 
>>> > It is not functionally 100% the same as a hypothetical 
>>> > NeoJSONOrderedObject, but might do.
>>> > 
>>> > Sven
>>> 
>>> 
>> 
> 


Re: [Pharo-users] Is it bad to have an order NeoJsonObject?

2018-06-11 Thread Tim Mackinnon
Yes i was a bit nervous about the ordering, but had also noticed other examples 
like this - but it is a good reminder for me to double check with the 
developers that they consciously have done this and to register an interest 
that it stays that way (particularly as they strangely don’t provide access to 
a schema for your user type definition - and hence could get the ordering from 
that).

On a second note - I did phase out my use of NeoJsonObject after the community 
warning (and realised how much it had worked into my solution). I think 
explicitly handling the absent key is better (I do loathe nil checks and am 
surprised how many languages set this terrible example - of shocked how easily 
I fell into that trap too). That said - I did miss the #atPath:  concept in 
NeoJson and ended up adding an equivalent (better?) #atPath:ifAbsent: to 
OrderedDictionary to cope with needing to reach into structures to pull out 
relevant attributes.

It did then remind how much I wish we could sort out some form of namespacing, 
as I don’t like to see my model code have to put prAtPath:ifAbsent: (it’s just 
gross). Maybe I might subclass OrderedDictionary to get the namespacing on a 
class and my methods can be safely clean).

Appreciate the commentary on this, it’s been a useful exercise.

Tim

Sent from my iPhone

> On 11 Jun 2018, at 08:02, Norbert Hartl  wrote:
> 
> 
> 
>> Am 11.06.2018 um 08:55 schrieb Richard O'Keefe :
>> 
>> The order of key:value pairs in a JSON "object"
>> is really NOT supposed to matter.  For example,
>> if you put {"a":1,"b":2} into a JSON database
>> you should not be surprised to get {"b":2,"a":1}
>> back.  Or vice versa, of course.
> But when it does what do you do? It is pretty clear that the order is 
> important for that format. So saying it shouldn’t matter does not make it 
> better. If you work with mongo DB you will see the same that for some queries 
> you have to provide proper order of keys.
> 
> Norbert
> 
>>> On 8 June 2018 at 00:16, Tim Mackinnon  wrote:
>>> Thanks guys - it seems like I was on the right track.
>>> 
>>> Making my own NeoJsonObject did work, but I will go back and see if I’m 
>>> really using the js nature of the values and if for this, just an 
>>> OrderedDictionary might be clearer.
>>> 
>>> As an aside, I was doing some experiments with prismic.io (a headless cms) 
>>> and the order of your content when rendering it on a page(generically) is 
>>> obviously important.
>>> 
>>> Tim
>>> 
>>> Sent from my iPhone
>>> 
>>> > On 7 Jun 2018, at 07:46, Sven Van Caekenberghe  wrote:
>>> > 
>>> > 
>>> > 
>>> >> On 7 Jun 2018, at 08:16, Norbert Hartl  wrote:
>>> >> 
>>> >> 
>>> >> 
>>> >>> Am 07.06.2018 um 07:29 schrieb Sven Van Caekenberghe :
>>> >>> 
>>> >>> Tim,
>>> >>> 
>>> >>>> On 7 Jun 2018, at 01:37, Tim Mackinnon  wrote:
>>> >>>> 
>>> >>>> Hi - I’ve hit some Json where the outputted values (they are field 
>>> >>>> names) are written out in a specific order - and the author hasn’t 
>>> >>>> chosen to use an array to represent those fields in a specific order.
>>> >>>> 
>>> >>>> { ‘field1’ : { ….}, ‘field2’: { … } }
>>> >>>> 
>>> >>>> I think this is technically incorrect and should be:
>>> >>>> 
>>> >>>> { [ {‘field1’ : { ….}, ‘field2’: { … } ]}
>>> >>>> 
>>> >>>> Anyway - given what I’ve got, would it be a terrible idea to create my 
>>> >>>> own version NeoJsonObject and just make it a subclass of 
>>> >>>> OrderedDictionary?
>>> >>>> 
>>> >>>> I can’t see any issues - but then I might be kidding myself…
>>> >>>> 
>>> >>>> Tim
>>> >>> 
>>> >>> Yea, I think you could try making a NeoJSONOrderedObject as a subclass 
>>> >>> of OrderedDictionary, modelled after NeoJSONObject. Just remember it is 
>>> >>> implemented using DNU, which will surprise you at one point.
>>> >>> 
>>> >> Wouldn‘t be setting #mapClass: on the reader to OrderedDictionary not 
>>> >> enough? Dictionary is the default anyway.
>>> >> 
>>> >> Norbert
>>> > 
>>> > Yes, of course, Norbert, it keeps the order:
>>> > 
>>> > (NeoJSONReader on: '{"BB":1,"CC":2,"AA":3}' readStream) mapClass: 
>>> > OrderedDictionary; next.
>>> > 
>>> >  => an OrderedDictionary('BB'->1 'CC'->2 'AA'->3)
>>> > 
>>> > NeoJSONWriter toString: (OrderedDictionary new at: #BB put: 1; at: #CC 
>>> > put: 2; at: #AA put: 3; yourself). 
>>> > 
>>> >  => '{""BB"":1,""CC"":2,""AA"":3}'
>>> > 
>>> > It is not functionally 100% the same as a hypothetical 
>>> > NeoJSONOrderedObject, but might do.
>>> > 
>>> > Sven
> 


Re: [Pharo-users] Is it bad to have an order NeoJsonObject?

2018-06-12 Thread Tim Mackinnon
Once again, thanks for the interesting background to all of this (although I 
didn’t mean to cause so much discussion on the merits of the json spec).

Anyway, I did check with the authors of Prismic.io - and they confirmed that 
their intent is that their document (schema?) does order block elements in the 
json - and this is something you can rely on. So, its not really in my control 
to do otherwise.

Tim

> On 11 Jun 2018, at 09:19, Tim Mackinnon  wrote:
> 
> Yes i was a bit nervous about the ordering, but had also noticed other 
> examples like this - but it is a good reminder for me to double check with 
> the developers that they consciously have done this and to register an 
> interest that it stays that way (particularly as they strangely don’t provide 
> access to a schema for your user type definition - and hence could get the 
> ordering from that).
> 
> On a second note - I did phase out my use of NeoJsonObject after the 
> community warning (and realised how much it had worked into my solution). I 
> think explicitly handling the absent key is better (I do loathe nil checks 
> and am surprised how many languages set this terrible example - of shocked 
> how easily I fell into that trap too). That said - I did miss the #atPath:  
> concept in NeoJson and ended up adding an equivalent (better?) 
> #atPath:ifAbsent: to OrderedDictionary to cope with needing to reach into 
> structures to pull out relevant attributes.
> 
> It did then remind how much I wish we could sort out some form of 
> namespacing, as I don’t like to see my model code have to put 
> prAtPath:ifAbsent: (it’s just gross). Maybe I might subclass 
> OrderedDictionary to get the namespacing on a class and my methods can be 
> safely clean).
> 
> Appreciate the commentary on this, it’s been a useful exercise.
> 
> Tim
> 
> Sent from my iPhone
> 
> On 11 Jun 2018, at 08:02, Norbert Hartl  <mailto:norb...@hartl.name>> wrote:
> 
>> 
>> 
>>> Am 11.06.2018 um 08:55 schrieb Richard O'Keefe >> <mailto:rao...@gmail.com>>:
>>> 
>>> The order of key:value pairs in a JSON "object"
>>> is really NOT supposed to matter.  For example,
>>> if you put {"a":1,"b":2} into a JSON database
>>> you should not be surprised to get {"b":2,"a":1}
>>> back.  Or vice versa, of course.
>>> 
>> But when it does what do you do? It is pretty clear that the order is 
>> important for that format. So saying it shouldn’t matter does not make it 
>> better. If you work with mongo DB you will see the same that for some 
>> queries you have to provide proper order of keys.
>> 
>> Norbert
>> 
>>> On 8 June 2018 at 00:16, Tim Mackinnon >> <mailto:tim@testit.works>> wrote:
>>> Thanks guys - it seems like I was on the right track.
>>> 
>>> Making my own NeoJsonObject did work, but I will go back and see if I’m 
>>> really using the js nature of the values and if for this, just an 
>>> OrderedDictionary might be clearer.
>>> 
>>> As an aside, I was doing some experiments with prismic.io 
>>> <http://prismic.io/> (a headless cms) and the order of your content when 
>>> rendering it on a page(generically) is obviously important.
>>> 
>>> Tim
>>> 
>>> Sent from my iPhone
>>> 
>>> > On 7 Jun 2018, at 07:46, Sven Van Caekenberghe >> > <mailto:s...@stfx.eu>> wrote:
>>> > 
>>> > 
>>> > 
>>> >> On 7 Jun 2018, at 08:16, Norbert Hartl >> >> <mailto:norb...@hartl.name>> wrote:
>>> >> 
>>> >> 
>>> >> 
>>> >>> Am 07.06.2018 um 07:29 schrieb Sven Van Caekenberghe >> >>> <mailto:s...@stfx.eu>>:
>>> >>> 
>>> >>> Tim,
>>> >>> 
>>> >>>> On 7 Jun 2018, at 01:37, Tim Mackinnon >> >>>> <mailto:tim@testit.works>> wrote:
>>> >>>> 
>>> >>>> Hi - I’ve hit some Json where the outputted values (they are field 
>>> >>>> names) are written out in a specific order - and the author hasn’t 
>>> >>>> chosen to use an array to represent those fields in a specific order.
>>> >>>> 
>>> >>>> { ‘field1’ : { ….}, ‘field2’: { … } }
>>> >>>> 
>>> >>>> I think this is technically incorrect and should be:
>>> >>>> 
>>> >>>> { [ {‘field1’ : { ….}, ‘field2’: { … }

[Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-13 Thread Tim Mackinnon
Hi - my second attempt at using Pharo with Git has proven very satisfying (I 
saw the potential in phase 1, but it was often difficult to understand what was 
happening and the workflow to use).

One thing that has come up a few times for me however - and its something that 
using git nicely highlights, there are many non-smalltalk assets in my project 
that don’t need to live in the image (like Seaside FileLibraries were trying to 
do) but do need to be versioned and be part of my project. Common examples are 
server config files, images and even the playground history files that are 
useful to pull up when on another computer.

It seems that while Iceberg does check out a full project, if I change any of 
the files outside of the src directory (like edit a .txt file using the crude 
Pharo file editor), those changes don’t get committed when I do a checkin? Is 
this on purpose? It makes the workflow a bit trickier to do an atomic commit of 
a piece of work - and I’m not clear whether this is a conscious thing, or an 
MVP thing (and it will come later).

As mentioned above, I was also thinking it would be nice if I could checkin 
some of the play-/*.sh files to essentially keep some of that history 
synced between environments (or team members?).

It strikes me that this is the kind of thing that git integration should bring 
to us?

I can overlay my copy of IntelliJ on top of my local iceberg directory and then 
use it for checkins - but then I still have the atomic problem, as its only 
when I commit that tonel files are written out onto the file system for me to 
checkin along with any other assets I’ve changed. Does anyone else have a good 
workflow for this? What do you guys do?

Tim


[Pharo-users] Iceberg - finding deleted classes, reverting versions?

2018-06-13 Thread Tim Mackinnon
Hi - I am interested in what the future holds with Iceberg for things like 
finding deleted classes or reverting to older versions of things.

As we tend to use lots of classes in Smalltalk (and view them as cheap) - I 
often create them, then move behaviour around and delete things I don’t need 
anymore. However, if you want to recover one of those classes - with Envy there 
was a useful concept of “show me deleted classes in a package” and you would 
get a list that you could then browse and recover from.  Even older squeaks had 
some nice tools to pull this information from the .changes file (and while not 
quite the same as envy, it did let a solo developer work efficiently).

So I was a bit surprised yesterday in Pharo 6.1 - to struggle to find a class I 
knew that I had deleted. There seemed to be no easy way to do this - and I 
thought there was somewhere that had that “Available/Deleted classes” menu. 
Eventually I went to iceberg and browsed older versions of my package and with 
some riffing - managed to find what a I wanted - but it definitely seemed 
harder than it should be - for a concept that feels natural to us.

I’ve heard it mentioned that we might get “versions” behaviour back via git on 
a method or existing class - but what about Deleted classes - is this something 
we will be able to do more easily?

Tim


Re: [Pharo-users] Iceberg - finding deleted classes, reverting versions?

2018-06-13 Thread Tim Mackinnon
Hi Sean - that is an excellent reply, I didn’t quite get your fu to work - but 
if you look up how to find deleted classes in git they give the following:

git log --diff-filter=D --summary

This gives you a git list of checkins and shows you the checkin comment, along 
with the list of files that were deleted (this is using tonel format, so its 
quite clear).

A bit more man help gives a better:

git log --diff-filter=D --summary --pretty='format:%cd|%h|%cn%n%s%n’

Which will output something a bit more like what I think you have to use to 
then understand how to find your change (the %h is the short hash with the 
Repository explorer in the new Iceberg shows). So you then get something like 
this:

Mon Jun 11 01:33:59 2018 +0100|65363ad|Tim Mackinnon
Refactor to a more consistent design with support for a basic link resolver

 delete mode 100644 src/PrismicDemo/PrismicBlock.class.st
 delete mode 100644 src/PrismicDemo/PrismicSpan.class.st
 delete mode 100644 src/PrismicDemo/PrismicSpannedText.class.st
 delete mode 100644 src/PrismicDemo/PrismicTextSpan.class.st

Wed Jun 6 19:05:07 2018 +0100|4bea74d|macta
Better handling of more data types for improved demo

 delete mode 100644 src/PrismicDemo/Text.extension.st


This does highlight a few more thing though (and possibly future things to 
implement) - there is no search in the Repository list, so you have to scroll 
down yourself.

Having found the class of interest - if I want to restore it, you are a bit on 
your own here too, as I think the “Revert Change” menu option (regardless of 
where you click) is going to try and recover the whole checkin and not let you 
cherry pick the class you want. You can of course at least see the source in 
the middle pane, and copy paste each method (but it could be a bit tedious).

Possibly you might then be able to do this:

git checkout 65363ad src/PrismicDemo/PrismicBlock.class.st

I’m not sure how Pharo will then react to this command line jiggery - as I keep 
getting an error : error: pathspec 'PrismicDemo/PrismicBlock.class.st' did not 
match any file(s) known to git.

But I suspect its something like that?

Tim

> On 13 Jun 2018, at 17:23, Sean P. DeNigris  wrote:
> 
> Tim Mackinnon wrote
>> Hi - I am interested in what the future holds with Iceberg for things like
>> finding deleted classes or reverting to older versions of things.
> 
> Great question! It used to be in the Change Sorter that delections were
> logged and reversible. At some point that stopped working and then I moved
> to git so I don't know if it was ever fixed. Obviously, that only looks back
> w/in the current image which doesn't fully solve your issue. The cool thing
> about git is that we inherit all its functionality - the good and bad. So
> iot got me wondering whether we could drop down to the command line for the
> time being. After some googling and experimentation, I came up with the
> following:
> 
>git log --full-history -- */{{className}}.class/properties.json
> 
> NB. I had to add the properties.json because directories don't work, but
> that may not be needed with Tonel
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 



Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-13 Thread Tim Mackinnon
Esteban - so I don't then understand why iceberg (usefully in my view) checks 
out more than the src directory, if it’s only focusing on the Pharo blob?

I’m guessing that by knowing where the src is, you are just committing that 
part of the tree with libgit?

Perhaps from a pragmatic first step you might consider letting us add a second 
safe resources directory that you could check in atomically as well (on the 
understanding all bets are off if it goes wrong?)

OR could we have a check in mode does all the add/remove operations and writes 
to disk but then let’s you drop to the command line/other tool to add any other 
files and do the final commit?

I just feel like you/we are so close to something that works a bit more broadly 
and embrace the wider world.?

Tim

Sent from my iPhone

> On 13 Jun 2018, at 21:28, Esteban Lorenzano  wrote:
> 
> hi,
> 
> 
>> On 13 Jun 2018, at 16:50, Tim Mackinnon  wrote:
>> 
>> Hi - my second attempt at using Pharo with Git has proven very satisfying (I 
>> saw the potential in phase 1, but it was often difficult to understand what 
>> was happening and the workflow to use).
>> 
>> One thing that has come up a few times for me however - and its something 
>> that using git nicely highlights, there are many non-smalltalk assets in my 
>> project that don’t need to live in the image (like Seaside FileLibraries 
>> were trying to do) but do need to be versioned and be part of my project. 
>> Common examples are server config files, images and even the playground 
>> history files that are useful to pull up when on another computer.
>> 
>> It seems that while Iceberg does check out a full project, if I change any 
>> of the files outside of the src directory (like edit a .txt file using the 
>> crude Pharo file editor), those changes don’t get committed when I do a 
>> checkin? Is this on purpose? It makes the workflow a bit trickier to do an 
>> atomic commit of a piece of work - and I’m not clear whether this is a 
>> conscious thing, or an MVP thing (and it will come later).
> 
> workflow is tricker because you are expecting iceberg to talk with the local 
> working copy and to handle that WC.
> what happens in fact is different: iceberg treats the image as a working copy 
> itself (it has its own “stage” area) and what you have in disk is like a 
> separated WC. 
> 
> at least, this is the metaphor we are using now, because we cannot 
> realistically handle/control what is in disk since it can be anything. 
> So, instead having this picture in mind: 
> 
> Image -> Disk -> Git blob (database)
> 
> you need to have this other: 
> 
> Image \
>Git blob (database)
> Disk/
> 
> 
> you will see as soon as you change the mental image, your problems are gone ;)
> 
> cheers!
> Esteban
> 
> ps: diagram before is not exactly as it is since the image actually writes 
> into disk first, but this is an implementation detail we would like to remove 
> in the future, even.
> 
>> 
>> As mentioned above, I was also thinking it would be nice if I could checkin 
>> some of the play-/*.sh files to essentially keep some of that history 
>> synced between environments (or team members?).
>> 
>> It strikes me that this is the kind of thing that git integration should 
>> bring to us?
>> 
>> I can overlay my copy of IntelliJ on top of my local iceberg directory and 
>> then use it for checkins - but then I still have the atomic problem, as its 
>> only when I commit that tonel files are written out onto the file system for 
>> me to checkin along with any other assets I’ve changed. Does anyone else 
>> have a good workflow for this? What do you guys do?
>> 
>> Tim
> 
> 




Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-13 Thread Tim Mackinnon


> yeah… but is a lot of work and no time just right now.
> long term, it would be cool to manage everything from iceberg.
> but reality check, is a huge amount of work so it has to come step by step.

Fair enough - its pretty cool we’ve got this far, and I guess the onus is on 
the rest of us to learn more about how its done and see if we can contribute 
more somehow. I really appreciate the love you’ve already put into this - it 
works far better than I think we even realised it could.

Tim



> On 13 Jun 2018, at 21:55, Esteban Lorenzano  wrote:
> 
> 
> 
>> On 13 Jun 2018, at 22:44, Tim Mackinnon  wrote:
>> 
>> Esteban - so I don't then understand why iceberg (usefully in my view) 
>> checks out more than the src directory, if it’s only focusing on the Pharo 
>> blob?
>> 
>> I’m guessing that by knowing where the src is, you are just committing that 
>> part of the tree with libgit?
>> 
>> Perhaps from a pragmatic first step you might consider letting us add a 
>> second safe resources directory that you could check in atomically as well 
>> (on the understanding all bets are off if it goes wrong?)
>> 
>> OR could we have a check in mode does all the add/remove operations and 
>> writes to disk but then let’s you drop to the command line/other tool to add 
>> any other files and do the final commit?
>> 
>> I just feel like you/we are so close to something that works a bit more 
>> broadly and embrace the wider world.?
> 
> yeah… but is a lot of work and no time just right now.
> long term, it would be cool to manage everything from iceberg.
> but reality check, is a huge amount of work so it has to come step by step.
> 
>> 
>> Tim
>> 
>> Sent from my iPhone
>> 
>>> On 13 Jun 2018, at 21:28, Esteban Lorenzano  wrote:
>>> 
>>> hi,
>>> 
>>> 
>>>> On 13 Jun 2018, at 16:50, Tim Mackinnon  wrote:
>>>> 
>>>> Hi - my second attempt at using Pharo with Git has proven very satisfying 
>>>> (I saw the potential in phase 1, but it was often difficult to understand 
>>>> what was happening and the workflow to use).
>>>> 
>>>> One thing that has come up a few times for me however - and its something 
>>>> that using git nicely highlights, there are many non-smalltalk assets in 
>>>> my project that don’t need to live in the image (like Seaside 
>>>> FileLibraries were trying to do) but do need to be versioned and be part 
>>>> of my project. Common examples are server config files, images and even 
>>>> the playground history files that are useful to pull up when on another 
>>>> computer.
>>>> 
>>>> It seems that while Iceberg does check out a full project, if I change any 
>>>> of the files outside of the src directory (like edit a .txt file using the 
>>>> crude Pharo file editor), those changes don’t get committed when I do a 
>>>> checkin? Is this on purpose? It makes the workflow a bit trickier to do an 
>>>> atomic commit of a piece of work - and I’m not clear whether this is a 
>>>> conscious thing, or an MVP thing (and it will come later).
>>> 
>>> workflow is tricker because you are expecting iceberg to talk with the 
>>> local working copy and to handle that WC.
>>> what happens in fact is different: iceberg treats the image as a working 
>>> copy itself (it has its own “stage” area) and what you have in disk is like 
>>> a separated WC. 
>>> 
>>> at least, this is the metaphor we are using now, because we cannot 
>>> realistically handle/control what is in disk since it can be anything. 
>>> So, instead having this picture in mind: 
>>> 
>>> Image -> Disk -> Git blob (database)
>>> 
>>> you need to have this other: 
>>> 
>>> Image \
>>>  Git blob (database)
>>> Disk/
>>> 
>>> 
>>> you will see as soon as you change the mental image, your problems are gone 
>>> ;)
>>> 
>>> cheers!
>>> Esteban
>>> 
>>> ps: diagram before is not exactly as it is since the image actually writes 
>>> into disk first, but this is an implementation detail we would like to 
>>> remove in the future, even.
>>> 
>>>> 
>>>> As mentioned above, I was also thinking it would be nice if I could 
>>>> checkin some of the play-/*.sh files to essentially keep some of that 
>>>> history synced between environments (or team members?).
>>>> 
>>>> It strikes me that this is the kind of thing that git integration should 
>>>> bring to us?
>>>> 
>>>> I can overlay my copy of IntelliJ on top of my local iceberg directory and 
>>>> then use it for checkins - but then I still have the atomic problem, as 
>>>> its only when I commit that tonel files are written out onto the file 
>>>> system for me to checkin along with any other assets I’ve changed. Does 
>>>> anyone else have a good workflow for this? What do you guys do?
>>>> 
>>>> Tim
>>> 
>>> 
>> 
>> 
> 
> 




Re: [Pharo-users] Iceberg - finding deleted classes, reverting versions?

2018-06-13 Thread Tim Mackinnon
Hi Sean - I tried it again, and it worked:

git log --full-history -- */PrismicBlock.class*

(I got my wildcard slightly wrong for tonel format) - although the beauty of 
the one I gave was that it shows you all deleted classes (in case you don’t 
know the name)

I’m still confused why I can’t checkout the deleted class though - damn you 
git, for the cryptic error: : error: pathspec 
'PrismicDemo/PrismicBlock.class.st <http://prismicblock.class.st/>' did not 
match any file(s) known to git.

I was hoping a quick hack to iceberg might be to OSProcess a few choice git 
commands to help us along while we work out better ways to do things.

Tim

> On 13 Jun 2018, at 21:53, Sean P. DeNigris  wrote:
> 
> Tim Mackinnon wrote
>> I didn’t quite get your fu to work
> 
> Interesting.
> 
> When I searched for commits affecting the deleted class SuDebianKey:
> 
> $ git log --full-history -- */SuDebianKey.class/properties.json
> 
> I got back a list of commits (obviously with the last chronologically being
> the deletion):
> 
> commit a38fbced4abec59ff9879d4c607da80dc89b6637
> Author: Sean DeNigris 
> Date:   Mon Jan 30 17:13:58 2017 -0500
> 
>Extract Lots to ComputerWorld, Absorb Rest of Old ScriptingBase Project
> 
> commit 61175745d57c60a1707d5e2f9a2fc92e6c19a6ea
> Author: Sean DeNigris 
> Date:   Sat Aug 20 17:14:12 2016 -0400
> 
>Basket O' Enhancements
> ...
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 



Re: [Pharo-users] Iceberg - finding deleted classes, reverting versions?

2018-06-14 Thread Tim Mackinnon
Hi Guille - I have tried the repo browser with the new iceberg loaded in Pharo 
6.1 and I couldn’t see how it helps me? (I will make a firm point of using 7 
now as I think I’ve now got a reasonable grasp of how things should work).

From the threads below - how would I find the commit with my missing class - 
Sean has pointed me to a git query that helps with that (and presumablyq is 
something we can plug into iceberg - maybe I will even take a look).

Having identified the hash with the class I want - getting to it is awkward 
(there is no search - again pretty easy for us to plug in, but something to do)

Having got to my commit - how can I retrieve one class? Maybe this is something 
only in Pharo 7 with Calypso? All I can see are diffs - so I’d have to copy and 
paste 20 methods and a class def. doable,  but painful. I’m hoping there is a 
way to get a shadow copy of the commit from the tonel file and then use it to 
restore classes and methods? As this sounds like a decent chunk of work, I’m 
guessing it’s not done yet?

As a fallback, Any thoughts on why git won’t let me checkout a file from that 
commit? Something about the pathspec (is it mangled in some way)? And if I 
could restore a tonel file - would iceberg then recognise it to bring it back 
in, or Would I need to use some filestream foo to do that (as this would at 
least be a viable workaround for now)?

Tim

Sent from my iPhone



Sent from my iPhone
> On 14 Jun 2018, at 08:52, Guillermo Polito  wrote:
> 
> Hi,
> 
> Regarding history, right now we have a history browser implemented as a 
> Calypso plugin, that is open using context menu => history or the little box 
> button on the top right of the method pane (second button from the left in 
> the picture):
> 
> 
> 
> That button will nowadays only be shown if the method's package is linked to 
> an iceberg repository.
> Once you click it, you will have the entire history of the method.
> 
> 
> 
> With the possibility to install that version of the method (among others).
> 
> Now, regarding the recovery of deleted classes/methods, have you tried the 
> repository browser?
> Go to Iceberg, right click on a repository and select "Repository".
> You can there select a commit in history and then in the tabs below see the 
> diff between
>  - your current version and the selected commit
>  - the selected commit and its main parent
> 
> Of course any of these can be improved, but if you have concrete requests, it 
> is much easier :)
> 
> https://github.com/pharo-vcs/iceberg
> 
> Guille
> 
>> On Wed, Jun 13, 2018 at 11:22 PM Tim Mackinnon  wrote:
>> Hi Sean - I tried it again, and it worked:
>> 
>> git log --full-history -- */PrismicBlock.class*
>> 
>> (I got my wildcard slightly wrong for tonel format) - although the beauty of 
>> the one I gave was that it shows you all deleted classes (in case you don’t 
>> know the name)
>> 
>> I’m still confused why I can’t checkout the deleted class though - damn you 
>> git, for the cryptic error: : error: pathspec 
>> 'PrismicDemo/PrismicBlock.class.st' did not match any file(s) known to git.
>> 
>> I was hoping a quick hack to iceberg might be to OSProcess a few choice git 
>> commands to help us along while we work out better ways to do things.
>> 
>> Tim
>> 
>>>> On 13 Jun 2018, at 21:53, Sean P. DeNigris  wrote:
>>>> 
>>>> Tim Mackinnon wrote
>>>> I didn’t quite get your fu to work
>>> 
>>> Interesting.
>>> 
>>> When I searched for commits affecting the deleted class SuDebianKey:
>>> 
>>> $ git log --full-history -- */SuDebianKey.class/properties.json
>>> 
>>> I got back a list of commits (obviously with the last chronologically being
>>> the deletion):
>>> 
>>> commit a38fbced4abec59ff9879d4c607da80dc89b6637
>>> Author: Sean DeNigris 
>>> Date:   Mon Jan 30 17:13:58 2017 -0500
>>> 
>>>Extract Lots to ComputerWorld, Absorb Rest of Old ScriptingBase Project
>>> 
>>> commit 61175745d57c60a1707d5e2f9a2fc92e6c19a6ea
>>> Author: Sean DeNigris 
>>> Date:   Sat Aug 20 17:14:12 2016 -0400
>>> 
>>>Basket O' Enhancements
>>> ...
>>> 
>>> 
>>> 
>>> -
>>> Cheers,
>>> Sean
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 
> 
> -- 
>
> Guille Polito
> Research Engineer
> Centre de Recherche en Informatique, Signal et Automatique de Lille
> CRIStAL - UMR 9189
> French National Center for Scientific Research - http://www.cnrs.fr
> 
> Web: http://guillep.github.io
> Phone: +33 06 52 70 66 13


Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-14 Thread Tim Mackinnon
Hi - yes I’m pleased you check out the entire tree, although currently it’s a 
bit confusing that you do (fortunately this does give the possibility that we 
can checkout images and other resources that an Pharo application might rely on 
- without having to resort to the Seaside FileLibrary trick).

However my concrete case was that I have a gitlab ci pipeline and next to my 
src directory in my project I have a config directory that has some Nginx 
config for my teapot app. If I add a teapot route, I also need to adjust that 
config and check both changes in together. I can’t easily do that now?

I can modify /config/app.nginx either in another app (intellij) or even in the 
simple Pharo text editor, and the I can add my new route in my 
DemoApp>>createRoutes method but how do I check them in together so my pipeline 
will build atomically?

Iceberg hasn’t written out the changes yet, so IntelliJ can’t see them to do a 
commit, and iceberg ignores the parallel /config directory (that it checked 
out). So it’s a catch 22.

This is why I suggested maybe we could specify safer (textual) directories that 
iceberg might also checkin? OR we have a Stage command in iceberg that does 
everything that commit does up to the point of actually writing to the repo - 
then I could jump to IntelliJ and do the final commit there and use its tools 
to manage non Pharo stuff (until we can build more)?

Does this make sense?

As an aside - I’d really like to checkin in the play-xxx directories (the .ph 
files) as there is often useful playground stuff I’d like to access on my home 
computer. We can’t do that easily at the moment either.

Tim

Sent from my iPhone

> On 14 Jun 2018, at 09:12, Guillermo Polito  wrote:
> 
> Just to complement Esteban's answer:
> 
> - Iceberg checks out in disk more than the src directory because you **may** 
> want to edit files from the command line, and after long discussions we did 
> not want to forbid that.
> Actually, just to put everybody in perspective, at first the idea was to not 
> have a working copy in disk at all, but just hit to the blob.
> Imagine is nowadays we are a bit alien, that would have been worst :)
> 
> - About checking in files. I'd like to understand what you mean exactly.
>   - Do you want to load them into memory?
> This would be the "more consistent" way to do it, following the "the 
> image it its own working copy" metaphore.
> This would allow us to, for example, share an image and transparently 
> share resources with it (without requiring to clone).
> But this would have some impact in memory consumption and add stress to 
> the GC, right?
> 
>   - Or do you mean to ask like any other Git client and show you the file 
> differences between the working copy and the git index?
> The problem with this approach is that we will have some treatment for 
> pharo code and some different treatment for non-code...
> If I do a change to a class, the change is kept in the image. But if I do 
> a change to a file, that change is not kept in the image!
> 
> Also, as Esteban says, having an IDE with support for files would mean that 
> we would need good tools to edit in-memory files (not only text files, right? 
> but also any kind of binary file...)
> 
> So far we cover the bare minimum that allows us to *not lose* changes :)
> 
>> On Wed, Jun 13, 2018 at 11:07 PM Tim Mackinnon  wrote:
>> 
>> > yeah… but is a lot of work and no time just right now.
>> > long term, it would be cool to manage everything from iceberg.
>> > but reality check, is a huge amount of work so it has to come step by step.
>> 
>> Fair enough - its pretty cool we’ve got this far, and I guess the onus is on 
>> the rest of us to learn more about how its done and see if we can contribute 
>> more somehow. I really appreciate the love you’ve already put into this - it 
>> works far better than I think we even realised it could.
>> 
>> Tim
>> 
>> 
>> 
>> > On 13 Jun 2018, at 21:55, Esteban Lorenzano  wrote:
>> > 
>> > 
>> > 
>> >> On 13 Jun 2018, at 22:44, Tim Mackinnon  wrote:
>> >> 
>> >> Esteban - so I don't then understand why iceberg (usefully in my view) 
>> >> checks out more than the src directory, if it’s only focusing on the 
>> >> Pharo blob?
>> >> 
>> >> I’m guessing that by knowing where the src is, you are just committing 
>> >> that part of the tree with libgit?
>> >> 
>> >> Perhaps from a pragmatic first step you might consider letting us add a 
>> >> second safe resources directory that you could check in atomically as 
>> >> well (on the understanding all b

Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-14 Thread Tim Mackinnon
Ooooh - I didn’t know about #addToIndex: that sounds like a possible workaround 
to my problem (but not a generic solution though).

BTW - I don’t want this to be a criticism, I’m loving the tools and their 
possibilities!

Tim

Sent from my iPhone

> On 14 Jun 2018, at 09:36, Peter Uhnák  wrote:
> 
> Wait... so it is no longer possible to #addtoIndex: external files from 
> Pharo? I thought that this functionality was supposed to be preserved.
> 
> Peter
> 
>> On Thu, Jun 14, 2018 at 10:30 AM, Tim Mackinnon  wrote:
>> Hi - yes I’m pleased you check out the entire tree, although currently it’s 
>> a bit confusing that you do (fortunately this does give the possibility that 
>> we can checkout images and other resources that an Pharo application might 
>> rely on - without having to resort to the Seaside FileLibrary trick).
>> 
>> However my concrete case was that I have a gitlab ci pipeline and next to my 
>> src directory in my project I have a config directory that has some Nginx 
>> config for my teapot app. If I add a teapot route, I also need to adjust 
>> that config and check both changes in together. I can’t easily do that now?
>> 
>> I can modify /config/app.nginx either in another app (intellij) or even in 
>> the simple Pharo text editor, and the I can add my new route in my 
>> DemoApp>>createRoutes method but how do I check them in together so my 
>> pipeline will build atomically?
>> 
>> Iceberg hasn’t written out the changes yet, so IntelliJ can’t see them to do 
>> a commit, and iceberg ignores the parallel /config directory (that it 
>> checked out). So it’s a catch 22.
>> 
>> This is why I suggested maybe we could specify safer (textual) directories 
>> that iceberg might also checkin? OR we have a Stage command in iceberg that 
>> does everything that commit does up to the point of actually writing to the 
>> repo - then I could jump to IntelliJ and do the final commit there and use 
>> its tools to manage non Pharo stuff (until we can build more)?
>> 
>> Does this make sense?
>> 
>> As an aside - I’d really like to checkin in the play-xxx directories (the 
>> .ph files) as there is often useful playground stuff I’d like to access on 
>> my home computer. We can’t do that easily at the moment either.
>> 
>> Tim
>> 
>> Sent from my iPhone
>> 
>>> On 14 Jun 2018, at 09:12, Guillermo Polito  
>>> wrote:
>>> 
>>> Just to complement Esteban's answer:
>>> 
>>> - Iceberg checks out in disk more than the src directory because you 
>>> **may** want to edit files from the command line, and after long 
>>> discussions we did not want to forbid that.
>>> Actually, just to put everybody in perspective, at first the idea was to 
>>> not have a working copy in disk at all, but just hit to the blob.
>>> Imagine is nowadays we are a bit alien, that would have been worst :)
>>> 
>>> - About checking in files. I'd like to understand what you mean exactly.
>>>   - Do you want to load them into memory?
>>> This would be the "more consistent" way to do it, following the "the 
>>> image it its own working copy" metaphore.
>>> This would allow us to, for example, share an image and transparently 
>>> share resources with it (without requiring to clone).
>>> But this would have some impact in memory consumption and add stress to 
>>> the GC, right?
>>> 
>>>   - Or do you mean to ask like any other Git client and show you the file 
>>> differences between the working copy and the git index?
>>> The problem with this approach is that we will have some treatment for 
>>> pharo code and some different treatment for non-code...
>>> If I do a change to a class, the change is kept in the image. But if I 
>>> do a change to a file, that change is not kept in the image!
>>> 
>>> Also, as Esteban says, having an IDE with support for files would mean that 
>>> we would need good tools to edit in-memory files (not only text files, 
>>> right? but also any kind of binary file...)
>>> 
>>> So far we cover the bare minimum that allows us to *not lose* changes :)
>>> 
>>>> On Wed, Jun 13, 2018 at 11:07 PM Tim Mackinnon  wrote:
>>>> 
>>>> > yeah… but is a lot of work and no time just right now.
>>>> > long term, it would be cool to manage everything from iceberg.
>>>> > but reality check, is a huge amount of work so it has to come step by 
>>>> &g

Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-14 Thread Tim Mackinnon
Yes - I’m a fan of small checkins (not always great at it, but I strive for it) 
- and yes, the issue I’ve had is the same as what Thierry mentions - my 
Smalltalk code is tied to an external file which has some rewrite rules that 
depend on the classes I have in my image. I could possibly generate them from 
the Smalltalk code (this is something Sean does) - but I can see all kinds of 
reasons to atomically checkin code together.

It haven’t tried it - but I’m guessing if I stick non smalltalk things in my 
src directory, that might work (ugly and potentially confusing, but it might do 
the trick). OR I’ve just learned about #addFilesToIndex: which might help me in 
this case.

But as a more general (and easier to understand) solution - working well in a 
polyglot arena and checking other stuff in would be very handy. Hence my 
“staging” proposal (if it would work?).

Alternatively, I will try and see what happens if I commit locally (without 
push) and then use my external tool to commit other files and then do the final 
push t(talking about it here helped me spot what could be an easy workaround). 
Still, I do hope we can keep working on the tools to get to something a bit 
more sophisticated - as the full atomic commit is the obvious end goal.

Tim

> On 14 Jun 2018, at 12:12, Thierry Goubier  wrote:
> 
> Hi Norbert, Tim,
> 
> 2018-06-14 11:33 GMT+02:00 Norbert Hartl  <mailto:norb...@hartl.name>>:
> 
> 
>> Am 14.06.2018 um 10:30 schrieb Tim Mackinnon > <mailto:tim@testit.works>>:
>> 
>> Hi - yes I’m pleased you check out the entire tree, although currently it’s 
>> a bit confusing that you do (fortunately this does give the possibility that 
>> we can checkout images and other resources that an Pharo application might 
>> rely on - without having to resort to the Seaside FileLibrary trick).
>> 
>> However my concrete case was that I have a gitlab ci pipeline and next to my 
>> src directory in my project I have a config directory that has some Nginx 
>> config for my teapot app. If I add a teapot route, I also need to adjust 
>> that config and check both changes in together. I can’t easily do that now?
>> 
>> I can modify /config/app.nginx either in another app (intellij) or even in 
>> the simple Pharo text editor, and the I can add my new route in my 
>> DemoApp>>createRoutes method but how do I check them in together so my 
>> pipeline will build atomically?
>> 
>> Iceberg hasn’t written out the changes yet, so IntelliJ can’t see them to do 
>> a commit, and iceberg ignores the parallel /config directory (that it 
>> checked out). So it’s a catch 22.
>> 
>> This is why I suggested maybe we could specify safer (textual) directories 
>> that iceberg might also checkin? OR we have a Stage command in iceberg that 
>> does everything that commit does up to the point of actually writing to the 
>> repo - then I could jump to IntelliJ and do the final commit there and use 
>> its tools to manage non Pharo stuff (until we can build more)?
>> 
>> Does this make sense?
>> 
> I don’t understand why you are so eager to have everything into one commit. 
> Usually the tension is rather have small commits. What is the problem of 
> having two commits for this?
> 
> A single commit allow one to make sure that both the smalltalk code and the 
> external resource are well in sync, and that you may not ending up in a 
> situation were at commit j has data format v1 and smalltalk code for format 
> v2, because it is in commit j+1 that you rewrote the data in format v2.
> 
> I had that issue recently with a Pharo / FPGA project with a Pharo package 
> generating state machines to be integrated in a Verilog FPGA design with C 
> code for the drivers, the softcore in the FPGA, and test programs, and both 
> Pharo and the C/FPGA working out of the same test data... And that whole 
> thing getting regularly out of sync.
> 
> IMHO: I'd model a concept of "multi-lingual projet" for that sort of things, 
> where one can list, in Pharo, Monticello packages and external files or 
> directories. Whatever the technology you use (OSProcess, libgit, whatever...) 
> it is easy then to commit all this in a single pass. On a per-package basis, 
> I'd see the package manifest as a suitable place for listing external 
> resources. On a per-project basis, a possible place could be the manifest for 
> the BaselineOf the project.
> 
> Thierry
>  
> 
> Norbert
> 
>> As an aside - I’d really like to checkin in the play-xxx directories (the 
>> .ph files) as there is often useful playground stuff I’d like to access on 
>> my home computer. We can’t do that easily at the moment either.
>> 
>>

[Pharo-users] How to contribute to Pharo Launcher?

2018-06-14 Thread Tim Mackinnon
Is PharoLauncher using git - there is a note saying the StHub repo is about to 
be moved?

I ask as I wanted to contribute a simple change that shows the modified date of 
the images and lets you sort by that (I sometimes forget which was the latest 
image I was using and have a few old ones kicking around).

Tim


Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-15 Thread Tim Mackinnon

In many parts of the dev world - every commit should be shippable, meaning 
atomic - particularly with the use of CI systems (Travis, Gitlab etc) that 
build on every commit. 

Of course you can choose to work a different way - but our tools shouldn’t 
force a very common practice to be awkward, should they?

I don’t understand why many of you guys are so anti such a common thing. In 
fact our community pioneered this way of working - a build machine where you 
loaded all your code and ran all your tests before committing.  Also, a large 
number of agile teams will council to work on master (and avoid branches - a 
technique we also pioneered).
In today’s world where we live in a wider polyglot stack this is one of the 
reasons why git is so attractive as it should easily embraces that.

I get that it’s not quite possible yet - but there are some decent ways to 
accommodate this (a staging operation, or perhaps a better way to make use of 
the #addToIndex: which I will experiment with).

Anyway, I’ll shut up - and possibly will learn how to implement it myself. 
Thinking more, I may also be able run with commit and no push , which I will 
try - as it’s probably the easiest mechanism if the CI will recognise that (I 
think it will).

Thanks for the enlightening conversation, and as always the hard work on 
iceberg that made this conversation even possible.

Tim

Sent from my iPhone

> On 15 Jun 2018, at 07:11, Norbert Hartl  wrote:
> 
> 
> 
>> Am 14.06.2018 um 13:12 schrieb Thierry Goubier :
>> 
>> Hi Norbert, Tim,
>> 
>> 2018-06-14 11:33 GMT+02:00 Norbert Hartl :
>>> 
>>> 
>>>> Am 14.06.2018 um 10:30 schrieb Tim Mackinnon :
>>>> 
>>>> Hi - yes I’m pleased you check out the entire tree, although currently 
>>>> it’s a bit confusing that you do (fortunately this does give the 
>>>> possibility that we can checkout images and other resources that an Pharo 
>>>> application might rely on - without having to resort to the Seaside 
>>>> FileLibrary trick).
>>>> 
>>>> However my concrete case was that I have a gitlab ci pipeline and next to 
>>>> my src directory in my project I have a config directory that has some 
>>>> Nginx config for my teapot app. If I add a teapot route, I also need to 
>>>> adjust that config and check both changes in together. I can’t easily do 
>>>> that now?
>>>> 
>>>> I can modify /config/app.nginx either in another app (intellij) or even in 
>>>> the simple Pharo text editor, and the I can add my new route in my 
>>>> DemoApp>>createRoutes method but how do I check them in together so my 
>>>> pipeline will build atomically?
>>>> 
>>>> Iceberg hasn’t written out the changes yet, so IntelliJ can’t see them to 
>>>> do a commit, and iceberg ignores the parallel /config directory (that it 
>>>> checked out). So it’s a catch 22.
>>>> 
>>>> This is why I suggested maybe we could specify safer (textual) directories 
>>>> that iceberg might also checkin? OR we have a Stage command in iceberg 
>>>> that does everything that commit does up to the point of actually writing 
>>>> to the repo - then I could jump to IntelliJ and do the final commit there 
>>>> and use its tools to manage non Pharo stuff (until we can build more)?
>>>> 
>>>> Does this make sense?
>>>> 
>>> I don’t understand why you are so eager to have everything into one commit. 
>>> Usually the tension is rather have small commits. What is the problem of 
>>> having two commits for this?
>> 
>> A single commit allow one to make sure that both the smalltalk code and the 
>> external resource are well in sync, and that you may not ending up in a 
>> situation were at commit j has data format v1 and smalltalk code for format 
>> v2, because it is in commit j+1 that you rewrote the data in format v2.
>> 
> Yes, sure but that is only a problem if you lost control over which commit 
> goes into action. I think the problem is in the deployment then. Putting 
> integrity constraints on commits is IMHO the wrong level deployment 
> granularity
> 
> Norbert
> 
>> I had that issue recently with a Pharo / FPGA project with a Pharo package 
>> generating state machines to be integrated in a Verilog FPGA design with C 
>> code for the drivers, the softcore in the FPGA, and test programs, and both 
>> Pharo and the C/FPGA working out of the same test data... And that whole 
>> thing getting regularly out of sync.
>> 
>> IMHO: I'd model a concept of "multi-lingual projet

Re: [Pharo-users] Insecure issue tracker registration

2018-06-15 Thread Tim Mackinnon
I think Let’s Encrypt can be your friend (that seems to be the instructions all 
of the providers give - e.g. 
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
 
).

Alternatively - and this applies more to Pharo.org - why not stick it on 
Netlify (https://www.netlify.com/docs/welcome/ 
) which does https for you. I was amazed 
how much it does by checking your site off git and even offers some dynamic 
hooks too.

I am still sizing up porting my metalsmith generated site to something pillar 
based - but the concept is the same and depending on how you do things, it 
might be quite trivial.

Tim

> On 15 Jun 2018, at 10:15, Marcus Denker  wrote:
> 
> Hello,
> 
> yes, we really need to setup SSL for that server. I will have a look next 
> week.
> 
>> On 13 Jun 2018, at 10:25, Manuel Leuenberger  
>> wrote:
>> 
>> Hi,
>> 
>> I announced my concerns on Discord already, but got no reaction, so I post 
>> it here as well to have it properly archived.
>> 
>> "A colleague just noticed that the registration for the issue tracker is 
>> HTTP-only. This is not an appropriate choice for sensitive data like a 
>> password. Any possibilities to make this HTTPS-only?
>> Link: http://tracker.pharo.org/issues-register-service, setting https:// 
>> manually does not work"
>> 
>> From my perspective this is a serious problem that should be quickly 
>> addressed, it's not just a nice to have feature. Not treating sensitive data 
>> with proper care leaves an image of not caring about user security and looks 
>> unprofessional. I don't think that is what Pharo needs.
>> 
>> Cheers,
>> Manuel
> 
> 



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

2018-06-15 Thread Tim Mackinnon
Hi Christophe - you are right, I did contribute many years ago (I found the Mcz 
field on my disk when I just checked now) - but I’ll be darned If I can 
remember how it works (I have to confess, I never really got on with Metacello 
and slices).

Do I simply take my latest .mcz file in my local directory and somehow apply it 
to the sthub repo (sorry if this is obvious to you - but I’ve plain forgotten 
how its done).

It would be good to get it into GitHub - it certainly seems to work pretty well 
now for most things, and it makes contributing so much easier.

Tim

> On 15 Jun 2018, at 08:14, Christophe Demarey  
> wrote:
> 
> Hi Tim,
> 
>> Le 14 juin 2018 à 18:48, Tim Mackinnon  a écrit :
>> 
>> Is PharoLauncher using git - there is a note saying the StHub repo is about 
>> to be moved?
>> 
>> I ask as I wanted to contribute a simple change that shows the modified date 
>> of the images and lets you sort by that (I sometimes forget which was the 
>> latest image I was using and have a few old ones kicking around).
> 
> 
> Until now, I preferred to stay on StHub mainly because Iceberg was not ready 
> to work smoothly with. I did not wanted to get extra-difficulties to work on 
> Pharo Launcher (merge problems, etc).
> That said, Iceberg has now moved a lot in the right direction and I think we 
> could start to use git for Pharo Launcher development.
> I will release a ne version of PharoLauncher soon and then, I think I will 
> move PharoLauncher on github and use Cargo to manage it.
> 
> For your contribution, it is welcomed (in fact, it was planned to be added 
> but you were faster). Feel free to commit it directly to the SH repository, I 
> will then take a look at it. It looks like you already can commit: 
> http://smalltalkhub.com/#!/~Pharo/PharoLauncher/contributors.
> 
> Thanks Tim.
> 
> Regards,
> Christophe




Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-15 Thread Tim Mackinnon
Tod/Norbert - I won’t shy away from answering your comments on this - but if 
its ok - lets move that conversation to a new thread. I don’t want to distract 
away from how one actually does some form of atomic checkin (and I’m talking a 
small one - one Smalltalk class, one associated text file).

I earlier tried doing a change on a class - committing, but not pushing and 
then switching to IntelliJ to then commit and push my config file change - and 
it didn’t seem to work - which surprised me, so I’m gong to redo my test again 
with the the latest Iceberg 1.1 in a new image (and also make sure my IntelliJ 
is attached to the same local repo). This seems like the closest root to how I 
would like to work (albeit a slightly bit more complicated than I would like, 
but certainly doable).

Tim

> On 15 Jun 2018, at 18:26, Todd Blanchard  wrote:
> 
> 
> 
>> On Jun 15, 2018, at 2:05 AM, Esteban Lorenzano > <mailto:esteba...@gmail.com>> wrote:
>> 
>> 
>> 
>>> On 15 Jun 2018, at 10:29, Tim Mackinnon >> <mailto:tim@testit.works>> wrote:
>>> 
>>> 
>>> In many parts of the dev world - every commit should be shippable, meaning 
>>> atomic - particularly with the use of CI systems (Travis, Gitlab etc) that 
>>> build on every commit. 
>> 
>> but then, you mean every *push* should be shippable :)
>> that’s something I agree :)
> 
> The way we run projects - pushing to master is forbidden.  You push your work 
> to a feature specific branch, a CI server runs all the tests in the branch 
> every push.  We create pull requests from the github project page, people 
> review them and when the tests are green and reviewers approve, we perform 
> the merge on github.
> 
> Never touch master (or whatever branch you pick for main trunk) outside of 
> github.  Always perform new work in new branch.
> 



Re: [Pharo-users] Why doesn't Iceberg checkin other assets (scripts) but does check them out?

2018-06-15 Thread Tim Mackinnon
Phew - I can confirm that (unsurprisingly I guess) - just committing in Iceberg 
(without ticking - push changes to origin/master) does then let you easily 
overlay the same checked out project (typically ./iceberg/ProjectName) in a 
tool like VSCode or IntelliJ where you can then also commit further changes to 
files that Iceberg is ignoring (essentially everything not in the src directory 
- typically candidates would be your Readme.md file and possibly a ./scripts or 
./assets directory).

In that other tool you can then issue a push which will then atomically push 
all commits to a pipeline. It can be a little more tricky to understand what 
the pipeline is building - in Gitlab it will show you the comment of the most 
recent commit in the pipeline, however if you then click on the branch the 
pipeline is running on, you will get a list of commits and can see all the 
commits that are between the running pipeline and the previously run pipeline.

For many of you - this might be pleadingly obvious - but when you have a 
different workflow mindset in your head, it might be trickier to spot this 
subtlety.

Tim

p.s. Thanks for all the useful debate in this thread. I should add that when I 
wrote “I’ll shut up” - a meant more that I felt the conversation was going in a 
cycle and repeating itself, not that I was offended or frustrated. I can 
probably live with the above nuance for my desire for atomic commits.

p.p.s It hadn’t occurred to me that the most common use case where people will 
hit a similar problem to me - is that Readme.md file. Definitely that is one 
where it should possibly automatically added to the index, or catered for - as 
it is really just a text file right?

> On 15 Jun 2018, at 18:26, Todd Blanchard  wrote:
> 
> 
> 
>> On Jun 15, 2018, at 2:05 AM, Esteban Lorenzano > <mailto:esteba...@gmail.com>> wrote:
>> 
>> 
>> 
>>> On 15 Jun 2018, at 10:29, Tim Mackinnon >> <mailto:tim@testit.works>> wrote:
>>> 
>>> 
>>> In many parts of the dev world - every commit should be shippable, meaning 
>>> atomic - particularly with the use of CI systems (Travis, Gitlab etc) that 
>>> build on every commit. 
>> 
>> but then, you mean every *push* should be shippable :)
>> that’s something I agree :)
> 
> The way we run projects - pushing to master is forbidden.  You push your work 
> to a feature specific branch, a CI server runs all the tests in the branch 
> every push.  We create pull requests from the github project page, people 
> review them and when the tests are green and reviewers approve, we perform 
> the merge on github.
> 
> Never touch master (or whatever branch you pick for main trunk) outside of 
> github.  Always perform new work in new branch.
> 



Re: [Pharo-users] Tonel Fileout

2018-06-16 Thread Tim Mackinnon
Not quite the same usecase . But on github it’s a brilliant format for a side 
project - I can hack code on the tube on my phone with a build ci server to 
report the results when I surface (very lazy programming, but with a family and 
limited time - needs must) .

Tim

Sent from my iPhone

> On 16 Jun 2018, at 22:10, Esteban Lorenzano  wrote:
> 
> 
> 
>> On 16 Jun 2018, at 16:38, Ben Coman  wrote:
>> 
>> Le 16/06/2018 à 10:43, Ben Coman a écrit :
>>> How can a fileout/filein be done using Tonel format?
>>> In the first case as a script?
>>> and secondly as a possible menu option for Pharo?
>>> 
>>> This is to facilitate transfer of student coding exercises for Exercism.
>>> http://exercism.io/languages/pharo/launch
>>> 
>>> Could Tonel handle a full package export in one file?
>> 
>>> On 16 June 2018 at 17:13, Hilaire  wrote:
>>> Hi Ben,
>>> 
>>> I am not sure, but the purpose of Tonel is to propose a file representation 
>>> of "one class=one file".
>> 
>> Sure thats how Tonel came about, and its how we mostly use it, but is this 
>> an inherent limitation? 
> 
> no. 
> in fact, Martin McClure is working to make tonel available to work on 
> file-per-package and even file-per-method again. In general, we do not want 
> one or the other, but there are certain contexts where those can be useful.
> 
>> Each method is prefixed with its class, so from my 100ft viewpoint it seems 
>> feasible to transport a whole package in one Tonel file. 
>> 
>> 
>>> Why not using Fileout st files to transfer the code?
>> 
>> The same question might be asked why Iceberg didn't just use a Fileout at 
>> class level
> 
> well, while file-out is good, we want to use Tonel format also to file-out 
> and file-in. Not a replacement but an addition. Because the format is more 
> readable, is sometimes more suitable for exchange too.
> 
> cheers,
> Esteban
> 
>> . 
>> The Tonel format is more readable, especially minus the scattering of 
>> exclamation marks.
>>  
>> I also meant to ask, what methods are used to file-in a Tonel file ?
>> Or more the point, what method process a string in Tonel format that has 
>> been downloaded from a website?
>> 
>> Actually, hunting around a bit I found
>> 
>> TonelParserTest >> testMethodDefList
>> shows that... ((TonelParser on: tonelString readStream) perform: 
>> #methodDefList)
>> returns an array of MCMethodDefinitions that respond to #load
>> with...
>> MCMethodDefinition >> load
>>  self actualClass
>>  compile: source
>>  classified: category
>>  withStamp: timeStamp
>>  notifying: nil
>> 
>> And... 
>> TonelParserTest >> testTypeDef
>> shows that ((TonelParser on: tonelString readStream) perform: #typeDef)
>> returns a MCClassDefinition that also responds to #load
>> with...
>> MCClassDefinition >> load
>>  self createClass
>> 
>> 
>> So as an experiment I deleted MCMockClassD,
>> then in playground evaluated...
>> tonelString := (ZnEasy get: 
>> 'https://raw.githubusercontent.com/pharo-project/pharo/development/src/MonticelloMocks/MCMockClassD.class.st')
>>  contents.
>> parser := (TonelParser on: tonelString readStream).
>> classDef := parser perform: #typeDef.
>> methodDefs := parser perform: #methodDefList.
>> classDef load.
>> methodDefs do: [ :md | md load ].
>> 
>> and super cool...   MCMockClassD>>one  was restored.
>> So is that the correct way to use it?
>> 
>> cheers -ben
> 


Re: [Pharo-users] Smalltalk Programming Competition

2018-06-16 Thread Tim Mackinnon
I don’t think it would make Cincom and instantiations unhappy - they recognise 
how Pharo and Oss feed an interesting pipeline - if you need more support or 
just commercial backing, they can offer that (not that Pharo can’t - but it’s a 
handy symbiotic relationship that seems to work well)

Tim 

Sent from my iPhone

> On 17 Jun 2018, at 00:12, horrido  wrote:
> 
> FYI, I am trying to jumpstart a Smalltalk programming competition.  Read all
> about it here.
> 
>   
> 
> My plan is to use Pharo for this competition, even if it makes companies
> like Cincom and Instantiations unhappy.
> 
> Any support this competition can receive would be greatly appreciated.
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] Windows installation broken?

2018-06-18 Thread Tim Mackinnon
> Do you have enough balls to call out Steph for his obviously wrong decision

That’s a bit provocative - I think the launcher is pretty good, and helps 
ensure people get correct versions of things as well as feel more comfortable 
checking out newer Pharo’s (like 7) or other projects. I’ll admit I've blown 
hot and cold on it over the last few years - but I’ve come back to it, as it is 
a nice tool - we just need to rally around and fix it on Windows - and ideally 
ensure its got some tests to show if its broken.

Possibly we could make the download page a bit clearer? But that’s a simple Bug 
report.

I actually admire the drive to push things on - and now is the time to rally 
around together as we’ve had a lot of changes that need stabilising so that 
exciting things like documenter can hit main stream as well.

Tim 

> On 18 Jun 2018, at 14:39, Herbert Vojčík  wrote:
> 
> 
> 
> horrido wrote on 18. 6. 2018 0:04:
>> This is what concerns me. I don't care that there are workarounds
>> (undocumented or hard to find).
>> I care that Windows is a most popular development platform. I care that
>> newcomers to Pharo easily find what they need to get started. I care about
>> Pharo's reputation.
>> The last thing Pharo needs is a black eye.
> 
> Do you have enough balls to call out Steph for his obviously wrong decision 
> to push Launcher down the users' throats and make him revert to working 
> installers / zips? Cause AFAICT there's the bottleneck atm.
> 
> Herby
> 
>> Travis Ayres wrote
>>> I wonder how many people tried Pharo, thought "Oh this is totally broken"
>>> and are never going to give it a second (or third) chance.
>>> 
>>> On Sun, Jun 17, 2018 at 11:26 AM,
>>> phil@
>>>  <
>>> phil@
>>> >
>>> wrote:
>>> 
 The current website shows the wrong link, the installer for the bleeding
 edge is the wrong one in files.
 The situation on the Windows front is very very bad and not really
 improving.
 
 That being said, the installer on the CI is the right one and works.
 
 so, steal the installer from here: https://ci.inria.fr/pharo-ci-
 jenkins2/job/PharoLauncher
 
 This is the one you want:
 
 https://ci.inria.fr/pharo-ci-jenkins2/job/PharoLauncher/
 
 For having the latest lastet everything, go to the launcher settings, get
 into the devmode and open monticello and load the latest packages.
 
 Phil
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




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

2018-06-18 Thread Tim Mackinnon
Given Pharo Launcher is a bit in the limelight, I’m a bit nervous contributing 
blindly. Can someone point me/advice me towards how to safely push changes to 
StHub?

As I mentioned, I’ve added a last-modified column as well as fixing the broken 
status bar in PL (it looks like spec is a bit pernickety about nested tables). 

Tim

> On 15 Jun 2018, at 22:25, Tim Mackinnon  wrote:
> 
> Hi Christophe - you are right, I did contribute many years ago (I found the 
> Mcz field on my disk when I just checked now) - but I’ll be darned If I can 
> remember how it works (I have to confess, I never really got on with 
> Metacello and slices).
> 
> Do I simply take my latest .mcz file in my local directory and somehow apply 
> it to the sthub repo (sorry if this is obvious to you - but I’ve plain 
> forgotten how its done).
> 
> It would be good to get it into GitHub - it certainly seems to work pretty 
> well now for most things, and it makes contributing so much easier.
> 
> Tim
> 
>> On 15 Jun 2018, at 08:14, Christophe Demarey  
>> wrote:
>> 
>> Hi Tim,
>> 
>>> Le 14 juin 2018 à 18:48, Tim Mackinnon  a écrit :
>>> 
>>> Is PharoLauncher using git - there is a note saying the StHub repo is about 
>>> to be moved?
>>> 
>>> I ask as I wanted to contribute a simple change that shows the modified 
>>> date of the images and lets you sort by that (I sometimes forget which was 
>>> the latest image I was using and have a few old ones kicking around).
>> 
>> 
>> Until now, I preferred to stay on StHub mainly because Iceberg was not ready 
>> to work smoothly with. I did not wanted to get extra-difficulties to work on 
>> Pharo Launcher (merge problems, etc).
>> That said, Iceberg has now moved a lot in the right direction and I think we 
>> could start to use git for Pharo Launcher development.
>> I will release a ne version of PharoLauncher soon and then, I think I will 
>> move PharoLauncher on github and use Cargo to manage it.
>> 
>> For your contribution, it is welcomed (in fact, it was planned to be added 
>> but you were faster). Feel free to commit it directly to the SH repository, 
>> I will then take a look at it. It looks like you already can commit: 
>> http://smalltalkhub.com/#!/~Pharo/PharoLauncher/contributors.
>> 
>> Thanks Tim.
>> 
>> Regards,
>> Christophe
> 
> 




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

2018-06-18 Thread Tim Mackinnon
Hi Cyril - I have to confess that I don’t recall what the steps are to safely 
commit in Monticello. I have smallish changes to 2 packages Core and Spec, and 
I can see that smalltalkhub repo in the MC browser and can browse my changes 
against it - but how do I commit both packages in there? I vaguely recall 
something about slices - but wasn’t that a Pharo core thing?

I get the impression that I don’t just press save on each package against sthub 
do I?

Sorry to be so dumb - I’ve just swapped out Monticello usage for Git usage 
these days.  Just need a few hints to get back on track

Tim

> On 18 Jun 2018, at 16:20, Cyril Ferlicot D.  wrote:
> 
> On 18/06/2018 17:15, Tim Mackinnon wrote:
>> Given Pharo Launcher is a bit in the limelight, I’m a bit nervous 
>> contributing blindly. Can someone point me/advice me towards how to safely 
>> push changes to StHub?
>> 
>> As I mentioned, I’ve added a last-modified column as well as fixing the 
>> broken status bar in PL (it looks like spec is a bit pernickety about nested 
>> tables). 
>> 
> 
> Hi,
> 
> Since there is stable version released, you can safely commit in the
> StHub repository as long as you do not do a destructive actions such has
> deleting a .mcz from StHub.
> 
> If the worst case, you will break the bleeding edge launcher, it will be
> detected by a review or a bleeding edge user and the commit will be
> either corrected or reverted.
> 
> I think stable versions are created from the versions defined in
> ConfigurationOfPharoLauncher.
> 
>> Tim
>> 
>> 
>> 
> 
> 
> -- 
> Cyril Ferlicot
> https://ferlicot.fr
> 




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

2018-06-18 Thread Tim Mackinnon
Ok - I’ve done a save for both packages - hopefully they are useful:

Name: PharoLauncher-Spec-TimM.70
Author: TimM
Time: 18 June 2018, 5:32:00.928101 pm
UUID: 5e888bd7-4e2b-0d00-85bb-537409965ccd
Ancestors: PharoLauncher-Spec-TimM.69


Name: PharoLauncher-Core-TimM.172
Author: TimM
Time: 18 June 2018, 5:34:46.055084 pm
UUID: 6a2b63e1-4e2b-0d00-85bc-0fed09965ccd
Ancestors: PharoLauncher-Core-TimM.171



> On 18 Jun 2018, at 16:30, Cyril Ferlicot D.  wrote:
> 
> On 18/06/2018 17:27, Tim Mackinnon wrote:
>> Hi Cyril - I have to confess that I don’t recall what the steps are to 
>> safely commit in Monticello. I have smallish changes to 2 packages Core and 
>> Spec, and I can see that smalltalkhub repo in the MC browser and can browse 
>> my changes against it - but how do I commit both packages in there? I 
>> vaguely recall something about slices - but wasn’t that a Pharo core thing?
>> 
>> I get the impression that I don’t just press save on each package against 
>> sthub do I?
>> 
>> Sorry to be so dumb - I’ve just swapped out Monticello usage for Git usage 
>> these days.  Just need a few hints to get back on track
>> 
> 
> You need to save the two packages individually.
> 
> While git is project oriented, StHub is package oriented.
> 
> Slices are only for Pharo development. (One could adapt them to make
> Monticello more project oriented but it is currently not the case).
> 
> So in conclusion, yes you need to press save on each package. :)
> 
>> Tim
>> 
>> 
>> 
> 
> 
> -- 
> Cyril Ferlicot
> https://ferlicot.fr
> 




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

2018-06-18 Thread Tim Mackinnon
While I’m at it - improve the icon for Launch without Settings (it needed Alpha)

Name: PharoLauncher-Core-TimM.174
Author: TimM
Time: 18 June 2018, 6:11:54.416337 pm
UUID: d9433566-4f2b-0d00-85be-afca09965ccd
Ancestors: PharoLauncher-Core-TimM.173

Sorry - can’t help with the windows launch problems as I don’t have a windows 
machine any more.

> On 18 Jun 2018, at 17:35, Tim Mackinnon  wrote:
> 
> Ok - I’ve done a save for both packages - hopefully they are useful:
> 
> Name: PharoLauncher-Spec-TimM.70
> Author: TimM
> Time: 18 June 2018, 5:32:00.928101 pm
> UUID: 5e888bd7-4e2b-0d00-85bb-537409965ccd
> Ancestors: PharoLauncher-Spec-TimM.69
> 
> 
> Name: PharoLauncher-Core-TimM.172
> Author: TimM
> Time: 18 June 2018, 5:34:46.055084 pm
> UUID: 6a2b63e1-4e2b-0d00-85bc-0fed09965ccd
> Ancestors: PharoLauncher-Core-TimM.171
> 
> 
> 
>> On 18 Jun 2018, at 16:30, Cyril Ferlicot D.  wrote:
>> 
>> On 18/06/2018 17:27, Tim Mackinnon wrote:
>>> Hi Cyril - I have to confess that I don’t recall what the steps are to 
>>> safely commit in Monticello. I have smallish changes to 2 packages Core and 
>>> Spec, and I can see that smalltalkhub repo in the MC browser and can browse 
>>> my changes against it - but how do I commit both packages in there? I 
>>> vaguely recall something about slices - but wasn’t that a Pharo core thing?
>>> 
>>> I get the impression that I don’t just press save on each package against 
>>> sthub do I?
>>> 
>>> Sorry to be so dumb - I’ve just swapped out Monticello usage for Git usage 
>>> these days.  Just need a few hints to get back on track
>>> 
>> 
>> You need to save the two packages individually.
>> 
>> While git is project oriented, StHub is package oriented.
>> 
>> Slices are only for Pharo development. (One could adapt them to make
>> Monticello more project oriented but it is currently not the case).
>> 
>> So in conclusion, yes you need to press save on each package. :)
>> 
>>> Tim
>>> 
>>> 
>>> 
>> 
>> 
>> -- 
>> Cyril Ferlicot
>> https://ferlicot.fr
>> 
> 
> 




Re: [Pharo-users] Windows installation broken?

2018-06-18 Thread Tim Mackinnon
Guys - let’s STOP this and focus on getting the download page changed. A knife 
fight within our midst is not going to help us make things better.

I’m sure Steph would prefer actions to fix code over in-fighting. The best way 
to make amends would be a nice code fix for the community.

Tim

Sent from my iPhone

> On 18 Jun 2018, at 19:39, Travis Ayres  wrote:
> 
> What does not talking like an asshole have to do with being white and male?
> 
> ...seriously?
> 
>> On Mon, Jun 18, 2018, 11:31 AM Offray Vladimir Luna Cárdenas 
>>  wrote:
>> 
>> 
>>> On 18/06/18 09:47, Herbert Vojčík wrote:
> Do you have enough balls to call out Steph for his obviously wrong 
> decision to push Launcher down the users' throats and make him revert to 
> working installers / zips? Cause AFAICT there's the bottleneck atm. 
 
 First, it was MY decision. 
>>> 
>>> My apologies to blaming Steph. 
>>> 
 I’m pushing launcher as the default download for Pharo since year now. 
 Do I am happy with it not working on windows right now? Of course not. But 
 pushing it also in windows has already forced us to fix some bugs there 
 and a new version of the launcher (and a better Pharo on windows) and at 
 the result will be good. 
 I was going to suspend the launcher as the default download until a better 
 version arrived, but I’ve been told that will happen this week, so I will 
 wait. 
 
 Second, we have a lot of bottlenecks, but is true this is important. 
 
 Third, please restrain your self to talk like that in the future. Is rude 
 and unnecessary. 
>>> 
>>> I won't. Sometimes it seems this kind of talk is needed. Windows launcher 
>>> was not working for so long but it is still pushed as the default download 
>>> option, because "higher goals" I presume. If this kind of talk helps to get 
>>> rid of it until working (or make it finally actually work), it is anything 
>>> but unnecessary. 
>> 
>> I don't see how this "Macho Programmer Culture" mixing genitalia size with 
>> community behavior and admin choices is necessary. But I see why, for sure, 
>> non-(white)-males feel so unwelcome in developers communities when some 
>> members feels such "necessity" of addressing others with such language and 
>> when pointed to that, just reinforce their choices.
>> 
>> Best,
>> 
>> Offray


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

2018-06-19 Thread Tim Mackinnon
Done - sorry, I wasn’t clear on how best to tie it all together. I think its 
more obvious when we get it all onto GitHub - but for now this can work too.

Thanks for resurrecting the project a while back - I know its had a bit of 
flack lately, but that more the complexity of multiple OS environments, and 
trying to get some more contributors to help.

Ironically its quite nicely structured code - although it could do with a few 
more tests - so maybe thats one to double up on.

Tim

> On 19 Jun 2018, at 09:51, Christophe Demarey  
> wrote:
> 
> Hi Tim,
> 
> Thanks a lot for your contributions. Looks good to me. It is a nice addition.
> Could you open an issue 
> https://github.com/pharo-project/pharo-launcher/issues/new so that we can 
> keep a trace of your contribution (we open issues for features / improvements 
> also)? 
> 
> Thanks also to Cyril who helped you to commit to ST.
> 
> Cheers,
> Christophe.
> 
>> Le 18 juin 2018 à 19:20, Tim Mackinnon  a écrit :
>> 
>> While I’m at it - improve the icon for Launch without Settings (it needed 
>> Alpha)
>> 
>> Name: PharoLauncher-Core-TimM.174
>> Author: TimM
>> Time: 18 June 2018, 6:11:54.416337 pm
>> UUID: d9433566-4f2b-0d00-85be-afca09965ccd
>> Ancestors: PharoLauncher-Core-TimM.173
>> 
>> Sorry - can’t help with the windows launch problems as I don’t have a 
>> windows machine any more.
>> 
>>> On 18 Jun 2018, at 17:35, Tim Mackinnon  wrote:
>>> 
>>> Ok - I’ve done a save for both packages - hopefully they are useful:
>>> 
>>> Name: PharoLauncher-Spec-TimM.70
>>> Author: TimM
>>> Time: 18 June 2018, 5:32:00.928101 pm
>>> UUID: 5e888bd7-4e2b-0d00-85bb-537409965ccd
>>> Ancestors: PharoLauncher-Spec-TimM.69
>>> 
>>> 
>>> Name: PharoLauncher-Core-TimM.172
>>> Author: TimM
>>> Time: 18 June 2018, 5:34:46.055084 pm
>>> UUID: 6a2b63e1-4e2b-0d00-85bc-0fed09965ccd
>>> Ancestors: PharoLauncher-Core-TimM.171
>>> 
>>> 
>>> 
>>>> On 18 Jun 2018, at 16:30, Cyril Ferlicot D.  
>>>> wrote:
>>>> 
>>>> On 18/06/2018 17:27, Tim Mackinnon wrote:
>>>>> Hi Cyril - I have to confess that I don’t recall what the steps are to 
>>>>> safely commit in Monticello. I have smallish changes to 2 packages Core 
>>>>> and Spec, and I can see that smalltalkhub repo in the MC browser and can 
>>>>> browse my changes against it - but how do I commit both packages in 
>>>>> there? I vaguely recall something about slices - but wasn’t that a Pharo 
>>>>> core thing?
>>>>> 
>>>>> I get the impression that I don’t just press save on each package against 
>>>>> sthub do I?
>>>>> 
>>>>> Sorry to be so dumb - I’ve just swapped out Monticello usage for Git 
>>>>> usage these days.  Just need a few hints to get back on track
>>>>> 
>>>> 
>>>> You need to save the two packages individually.
>>>> 
>>>> While git is project oriented, StHub is package oriented.
>>>> 
>>>> Slices are only for Pharo development. (One could adapt them to make
>>>> Monticello more project oriented but it is currently not the case).
>>>> 
>>>> So in conclusion, yes you need to press save on each package. :)
>>>> 
>>>>> Tim
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Cyril Ferlicot
>>>> https://ferlicot.fr
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 




[Pharo-users] Help contributing a fix to pharo - docs seem out of date again?

2018-06-19 Thread Tim Mackinnon
Hi - a few weeks ago, I contributed a tiny fix to Pharo 7 -and the instructions 
seemed to work really well.

I’ve since come back to try and do some more over lunch (I was thinking I’d 
like to dig out the changes I worked out for using the AST and cursor to make 
senders/implements work properly and not just use the selected text).

My first problem was that my fork of Pharo from many months ago was out of date 
- I think the instructions on 
https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo 
 should 
probably mention this subtlety.

It took me ages to figure out what to do - this was the clue 
(https://help.github.com/articles/syncing-a-fork/ 
) - and of particular note 
the the tiny bit at the bottom to ensure you Push your changes back to your 
GitHub fork (I slightly complicated myself by using IntelliJ to do this - 
doable but you need to be aware of whats going on). I did this in a separate 
non-pharo directory (I think thats what you would recommend right? Then you can 
keep updating it from time to time?)

Having got my GitHub fork caught up with pharo/development - I then have the 
Local Repo Missing error (expected) - and now when I go to repair it I can 
either clone again (which is the instructions online) - or “Locate this 
repository in your file system”. As I’ve had to already check everything out to 
catch up to pharo/dev I chose to locate.

I then get a Fetch require msg (expected)

I then choose to use Fetch (I’m not sure what the Repair repository picture is 
now about?) - the text does mention I will become detached, so I’ve stuck to 
that

I’m not sure why the “solving a detached working copy” is further down the page 
- but I’ve jumped to that

It says I need to synchronise both (image and repo) - but then says its easier 
to do a branch - and then says a nice alternative is to create a temp branch 
like temp/synch - however I can’t see how to do that as there is only Crete new 
Branch from Issue now (the picture shows that plus New Branch).

Am I on the right track here? If I want try something out - do I just create 
myself a new issue (or is there a temp issue anyway?)

Tim

Re: [Pharo-users] Help contributing a fix to pharo - docs seem out of date again?

2018-06-19 Thread Tim Mackinnon
Hi Guillermo - it sounds like I’m on the right track - the only thing that 
caught me out was in the latest V7 there is no “new branch” - I have to have an 
issue number? The picture in your doc shows both possibilities?

For now, I found a bug and created an issue, and so can experiment with that - 
but I think it is handy to create a generic branch so that you can experiment 
(while easily tracking your changes)?

Tim

> On 19 Jun 2018, at 14:01, Guillermo Polito  wrote:
> 
> Hi,
> 
> On Tue, Jun 19, 2018 at 2:26 PM Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> Hi - a few weeks ago, I contributed a tiny fix to Pharo 7 -and the 
> instructions seemed to work really well.
> 
> I’ve since come back to try and do some more over lunch (I was thinking I’d 
> like to dig out the changes I worked out for using the AST and cursor to make 
> senders/implements work properly and not just use the selected text).
> 
> My first problem was that my fork of Pharo from many months ago was out of 
> date - I think the instructions on 
> https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo 
> <https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo> 
> should probably mention this subtlety.
> 
> It took me ages to figure out what to do - this was the clue 
> (https://help.github.com/articles/syncing-a-fork/ 
> <https://help.github.com/articles/syncing-a-fork/>) - and of particular note 
> the the tiny bit at the bottom to ensure you Push your changes back to your 
> GitHub fork (I slightly complicated myself by using IntelliJ to do this - 
> doable but you need to be aware of whats going on). I did this in a separate 
> non-pharo directory (I think thats what you would recommend right? Then you 
> can keep updating it from time to time?)
> 
> Usually, you don't care. You don't need to update your fork :)
> You only need to:
>  - clone/locate your repository in disk
>  - fetch (this will find your commit in the pharo repository)
>  - create a new branch X
>  - push branch X to your fork
>  - make a pull request
> 
> The contribution process never goes through master nor development, so it 
> does not really matter if they are updated.
> And that's what I was showing in my videos because there is nothing else to 
> it :)
>  
> 
> Having got my GitHub fork caught up with pharo/development - I then have the 
> Local Repo Missing error (expected) - and now when I go to repair it I can 
> either clone again (which is the instructions online) - or “Locate this 
> repository in your file system”. As I’ve had to already check everything out 
> to catch up to pharo/dev I chose to locate.
> 
> I then get a Fetch require msg (expected)
> 
> I then choose to use Fetch (I’m not sure what the Repair repository picture 
> is now about?) - the text does mention I will become detached, so I’ve stuck 
> to that
> 
> I’m not sure why the “solving a detached working copy” is further down the 
> page - but I’ve jumped to that
> 
> It says I need to synchronise both (image and repo) - but then says its 
> easier to do a branch - and then says a nice alternative is to create a temp 
> branch like temp/synch - however I can’t see how to do that as there is only 
> Crete new Branch from Issue now (the picture shows that plus New Branch).
> 
> I don't see what's the problem, maybe the UI can be enhanced to be more 
> explicit.
> But you can just select "New branch" and create a branch with any name.
> 
> I'll go a bit deeper here:
>  - you just downloaded a new image that was built from commit 100
>  - In the meantime, while you downloaded your image, a new PR would have been 
> integrated in pharo, so now the development branch may not be anymore on 
> commit 100 but on commit 101.
>  - Even worse! There is no branch at all pointing to 100, your image's commit
>  - So the safest way to work (because updating the image may be dangerous not 
> because of Iceberg :)) is to create a new branch on your commit.
> 
> However, while this is the recommended way to work on Pharo, on other 
> projects you can do a more normal workflow: checkout, pull.
> 
> Does this answer it? Maybe I've missed something?
> 
>  
> 
> Am I on the right track here? If I want try something out - do I just create 
> myself a new issue (or is there a temp issue anyway?)
> 
> Tim
> 
> 
> -- 
>
> Guille Polito
> Research Engineer
> 
> Centre de Recherche en Informatique, Signal et Automatique de Lille
> CRIStAL - UMR 9189
> French National Center for Scientific Research - http://www.cnrs.fr 
> <http://www.cnrs.fr/>
> 
> Web: http://guillep.github.io <http://guillep.github.io/>
> Phone: +33 06 52 70 66 13



Re: [Pharo-users] Help contributing a fix to pharo - docs seem out of date again?

2018-06-19 Thread Tim Mackinnon
Hi guys - I got build 1072 using Pharo Launcher (I like to know what build I’m 
using - but maybe I should pick stable and just date stamp my image?)

Anyway just tried the latest 1077 and followed the steps I described (although 
using my caught up branch)  - when I right click on the detached pharo  - there 
is the Pharo menu item and inside that there is only the option to create a new 
branch for an issue?

Am I missing something (or is this something recently broken?)

Tim

> On 19 Jun 2018, at 14:35, Guillermo Polito  wrote:
> 
> Strange... I'm with Esteban there, I'd need more information to reproduce it.
> I've just done
> 
> $ wget -O - get.pharo.org/70+vm <http://get.pharo.org/70+vm> | bash
> $ ./pharo-ui Pharo.image
> 
> - Open iceberg
> - Repair Pharo by cloning my (really out of date) fork (guillep/pharo)
> - Fetch
> - Repair -> Create branch
> 
> And I have the "New branch" option.
> 
> On Tue, Jun 19, 2018 at 3:28 PM Esteban Lorenzano  <mailto:esteba...@gmail.com>> wrote:
> 
> 
>> On 19 Jun 2018, at 15:18, Tim Mackinnon > <mailto:tim@testit.works>> wrote:
>> 
>> Hi Guillermo - it sounds like I’m on the right track - the only thing that 
>> caught me out was in the latest V7 there is no “new branch” - I have to have 
>> an issue number? The picture in your doc shows both possibilities?
> 
> how did you arrive there?
> seems to me that there should always be the opportunity of just branch. If 
> not, may be there is an error.
> 
> Esteban
> 
>> 
>> For now, I found a bug and created an issue, and so can experiment with that 
>> - but I think it is handy to create a generic branch so that you can 
>> experiment (while easily tracking your changes)?
>> 
>> Tim
>> 
>>> On 19 Jun 2018, at 14:01, Guillermo Polito >> <mailto:guillermopol...@gmail.com>> wrote:
>>> 
>>> Hi,
>>> 
>>> On Tue, Jun 19, 2018 at 2:26 PM Tim Mackinnon >> <mailto:tim@testit.works>> wrote:
>>> Hi - a few weeks ago, I contributed a tiny fix to Pharo 7 -and the 
>>> instructions seemed to work really well.
>>> 
>>> I’ve since come back to try and do some more over lunch (I was thinking I’d 
>>> like to dig out the changes I worked out for using the AST and cursor to 
>>> make senders/implements work properly and not just use the selected text).
>>> 
>>> My first problem was that my fork of Pharo from many months ago was out of 
>>> date - I think the instructions on 
>>> https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo 
>>> <https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo> 
>>> should probably mention this subtlety.
>>> 
>>> It took me ages to figure out what to do - this was the clue 
>>> (https://help.github.com/articles/syncing-a-fork/ 
>>> <https://help.github.com/articles/syncing-a-fork/>) - and of particular 
>>> note the the tiny bit at the bottom to ensure you Push your changes back to 
>>> your GitHub fork (I slightly complicated myself by using IntelliJ to do 
>>> this - doable but you need to be aware of whats going on). I did this in a 
>>> separate non-pharo directory (I think thats what you would recommend right? 
>>> Then you can keep updating it from time to time?)
>>> 
>>> Usually, you don't care. You don't need to update your fork :)
>>> You only need to:
>>>  - clone/locate your repository in disk
>>>  - fetch (this will find your commit in the pharo repository)
>>>  - create a new branch X
>>>  - push branch X to your fork
>>>  - make a pull request
>>> 
>>> The contribution process never goes through master nor development, so it 
>>> does not really matter if they are updated.
>>> And that's what I was showing in my videos because there is nothing else to 
>>> it :)
>>>  
>>> 
>>> Having got my GitHub fork caught up with pharo/development - I then have 
>>> the Local Repo Missing error (expected) - and now when I go to repair it I 
>>> can either clone again (which is the instructions online) - or “Locate this 
>>> repository in your file system”. As I’ve had to already check everything 
>>> out to catch up to pharo/dev I chose to locate.
>>> 
>>> I then get a Fetch require msg (expected)
>>> 
>>> I then choose to use Fetch (I’m not sure what the Repair repository picture 
>>> is now about?) - the text does mention I will become detached, so I’ve 
>>&g

Re: [Pharo-users] Help contributing a fix to pharo - docs seem out of date again?

2018-06-19 Thread Tim Mackinnon
Ah - I didn’t think to look in the repair menu, now I see what you guys are 
talking about - the nomenclature threw me (maybe that’s ok if its there).

Tim

> On 19 Jun 2018, at 17:40, Guillermo Polito  <mailto:guillermopol...@gmail.com>> wrote:
> 
> Ok, I confirm. Actually I think that never worked. The create branch option 
> is only available from the repair action.
> 
> I've opened an issue:
> 
> https://github.com/pharo-vcs/iceberg/issues/871 
> <https://github.com/pharo-vcs/iceberg/issues/871>
> 
> I think it would be nice to show all valid options (including the ones in the 
> repair button) in the context menu too, for experienced users that want to 
> avoid an extra click.
> 
> On Tue, Jun 19, 2018 at 5:57 PM Guillermo Polito  <mailto:guillermopol...@gmail.com>> wrote:
> Ah! Yes, in the Pharo plugin you have just that option.
> What we were saying with Esteban is that if you go to the *Repair* and then 
> *Create new Branch* you should have it.
> 
> But in the main menu you don't have a "Checkout branch" option?
> That's then maybe a bug, I'll check.
> 
> On Tue, Jun 19, 2018 at 5:45 PM Tim Mackinnon  <mailto:tim@testit.works>> wrote:
> Hi guys - I got build 1072 using Pharo Launcher (I like to know what build 
> I’m using - but maybe I should pick stable and just date stamp my image?)
> 
> Anyway just tried the latest 1077 and followed the steps I described 
> (although using my caught up branch)  - when I right click on the detached 
> pharo  - there is the Pharo menu item and inside that there is only the 
> option to create a new branch for an issue?
> 
> Am I missing something (or is this something recently broken?)
> 
> Tim
> 
>> On 19 Jun 2018, at 14:35, Guillermo Polito > <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> Strange... I'm with Esteban there, I'd need more information to reproduce it.
>> I've just done
>> 
>> $ wget -O - get.pharo.org/70+vm <http://get.pharo.org/70+vm> | bash
>> $ ./pharo-ui Pharo.image
>> 
>> - Open iceberg
>> - Repair Pharo by cloning my (really out of date) fork (guillep/pharo)
>> - Fetch
>> - Repair -> Create branch
>> 
>> And I have the "New branch" option.
>> 
>> On Tue, Jun 19, 2018 at 3:28 PM Esteban Lorenzano > <mailto:esteba...@gmail.com>> wrote:
>> 
>> 
>>> On 19 Jun 2018, at 15:18, Tim Mackinnon >> <mailto:tim@testit.works>> wrote:
>>> 
>>> Hi Guillermo - it sounds like I’m on the right track - the only thing that 
>>> caught me out was in the latest V7 there is no “new branch” - I have to 
>>> have an issue number? The picture in your doc shows both possibilities?
>> 
>> how did you arrive there?
>> seems to me that there should always be the opportunity of just branch. If 
>> not, may be there is an error.
>> 
>> Esteban
>> 
>>> 
>>> For now, I found a bug and created an issue, and so can experiment with 
>>> that - but I think it is handy to create a generic branch so that you can 
>>> experiment (while easily tracking your changes)?
>>> 
>>> Tim
>>> 
>>>> On 19 Jun 2018, at 14:01, Guillermo Polito >>> <mailto:guillermopol...@gmail.com>> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> On Tue, Jun 19, 2018 at 2:26 PM Tim Mackinnon >>> <mailto:tim@testit.works>> wrote:
>>>> Hi - a few weeks ago, I contributed a tiny fix to Pharo 7 -and the 
>>>> instructions seemed to work really well.
>>>> 
>>>> I’ve since come back to try and do some more over lunch (I was thinking 
>>>> I’d like to dig out the changes I worked out for using the AST and cursor 
>>>> to make senders/implements work properly and not just use the selected 
>>>> text).
>>>> 
>>>> My first problem was that my fork of Pharo from many months ago was out of 
>>>> date - I think the instructions on 
>>>> https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo 
>>>> <https://github.com/pharo-project/pharo/wiki/Contribute-a-fix-to-Pharo> 
>>>> should probably mention this subtlety.
>>>> 
>>>> It took me ages to figure out what to do - this was the clue 
>>>> (https://help.github.com/articles/syncing-a-fork/ 
>>>> <https://help.github.com/articles/syncing-a-fork/>) - and of particular 
>>>> note the the tiny bit at the bottom to ensure you Push your changes back 
&g

[Pharo-users] How to contribute to Calypso when it relies on pharo-core editors?

2018-06-19 Thread Tim Mackinnon
Hi - so in trying to improve the sendersof/implementors of - I thought I had 
nailed it (and got working what I had done in Pharo 6 for Pharo 7) - but when I 
loaded my commit into a fresh image I realised that none of the (minor) changes 
I had made to Calypso had been committed.

This is actually quite confusing - and its take me a while to realise that 
Calypso is a separate project and so when I picked commit on Pharo - this won’t 
pick up any of the changes in Calypso…. Arrr

So now I’m guessing that I have to follow the same steps that I followed for 
loading a pharo repo - for Calypso?

But then if I do this - and I propose some fixes to Calypso - how can it work, 
as it relies on some changes to older pharo core editors that its inserting 
from?

My changes without Calypso will work (they did in V6) - but then how can 
someone test those in V7 as Calypso is then the default variable.

I’m in a bit of a twist - how can I proceed?

I’d really like to help improve the situation - as its bugged me for years that 
its a pain looking stuff up quickly (requiring you to highlight just the right 
stuff for very obvious things)

Tim


Re: [Pharo-users] How to contribute to Calypso when it relies on pharo-core editors?

2018-06-19 Thread Tim Mackinnon
Thinking about this more - why doesn’t Calypso appear in iceberg as a separate 
project alongside iceberg and Pharo?

That’s what’s confusing? And how did it get loaded from it’s git project 
without it appearing?

Which all makes me think there might need to be an iceberg setting - show/hide 
system projects so they don’t get in the way of your own projects. 

But then if you accidentally save a method in a system class - how are we going 
to spit it and know?

I hate getting burned when you thought you were on a roll 

Tim

Sent from my iPhone

> On 20 Jun 2018, at 02:26, Tim Mackinnon  wrote:
> 
> Hi - so in trying to improve the sendersof/implementors of - I thought I had 
> nailed it (and got working what I had done in Pharo 6 for Pharo 7) - but when 
> I loaded my commit into a fresh image I realised that none of the (minor) 
> changes I had made to Calypso had been committed.
> 
> This is actually quite confusing - and its take me a while to realise that 
> Calypso is a separate project and so when I picked commit on Pharo - this 
> won’t pick up any of the changes in Calypso…. Arrr
> 
> So now I’m guessing that I have to follow the same steps that I followed for 
> loading a pharo repo - for Calypso?
> 
> But then if I do this - and I propose some fixes to Calypso - how can it 
> work, as it relies on some changes to older pharo core editors that its 
> inserting from?
> 
> My changes without Calypso will work (they did in V6) - but then how can 
> someone test those in V7 as Calypso is then the default variable.
> 
> I’m in a bit of a twist - how can I proceed?
> 
> I’d really like to help improve the situation - as its bugged me for years 
> that its a pain looking stuff up quickly (requiring you to highlight just the 
> right stuff for very obvious things)
> 
> Tim




Re: [Pharo-users] [Moose-dev] [ann] gt documenter

2018-06-19 Thread Tim Mackinnon
Bump (not sure this got through , and keen to know how to load the diagramming 
bit)

Guys this is really impressive!

2 things I noticed when going through the example in a new Pharo 6.1 image 
(with the latest Iceberg) -

1) The example "IceRepository repositoriesLocation / 'feenkcom'/ 
'gtoolkit-examples' / 'doc' / 'tutorial' / 'examples-tutorial.pillar'. “ has 
changed to “IceLibgitRepository …” in the newer iceberg - so it might be worth 
a note in the readme (I’ll submit a PR)

2) In a clean 6.1 image I get a walkback (GtPhlowExplicitView>>mondrian DNU) 
when you try any of the graphical bits , making me think either the 
dependencies are incorrect  on the Baseline (or the instruction for the example 
also need to mention you need to load something else - presumably Roassal?
3) You can’t scroll the Diff tabs of results, only the Code tabs

Tim

> On 13 Jun 2018, at 21:57, Tudor Girba  wrote:
> 
> Hi,
> 
> We are happy to announce a new leap of GToolkit Documenter, the tool for 
> manipulating live documents directly in the development environment:
> https://github.com/feenkcom/gtoolkit-documenter
> 
> Documenter is part of the second generation GToolkit project, it is based on 
> Bloc and works with the latest Pillar. It is mainly developed by Juraj 
> Kubelka.
> 
> Attached you can see a preview of how documents look like:
> 
> 
> 
> At its core it offers a live editor for manipulating Pillar documents. The 
> interaction happens seamlessly directly in the text editor, and it can be 
> combined with different types of previews to serve several classes of use 
> cases:
>   • code documentation
>   • tutorials
>   • interactive data notebook
> 
> 
> Code documentation
> 
> Documenter complements the GToolkit Examples engine to redefine code 
> documentation. When practicing example-driven development, examples get 
> written as part of the typical development. Once examples exist, they can be 
> quickly put together in a document to form documentation. For example, the 
> linked picture shows the comment of a class containing a visual explanation:
> https://twitter.com/feenkcom/status/973899862482866176
> 
> You can see a live example of documentation by inspecting the following 
> snippet:
>   GtDocumenter editorForText: BrToggleExamples comment. 
> 
> 
> Tutorials:
> 
> Documenter offers a new experience of writing tutorials for Pharo by enabling 
> the creation and embedding of Epicea change sessions directly in the 
> document. For example, take a look at the following animation:
> https://twitter.com/feenkcom/status/75333972541440
> 
> The document shows a method on top, and a change preview at the bottom 
> showing both the code and the associated diff to the state from the image. 
> Applying the change updates both the change view (no more diff), and method 
> preview. This speeds up significantly the process of going through a 
> tutorial. Furthermore, given that now the document shows the diff to the 
> current image, the reader can safely explore alternative scenario and come 
> back to the tutorial at any time without losing the overview.
> 
> The size of the preview can also be adjusted live:
> https://twitter.com/feenkcom/status/1001152789874167808
> https://twitter.com/feenkcom/status/1001407762285375490
> 
> You can see a live tutorial by inspecting:
>   IceRepository repositoriesLocation / 'feenkcom'/ 'gtoolkit-examples' / 
> 'doc' / 'tutorial' / 'examples-tutorial.pillar’.
> 
> 
> Interactive data notebook:
> 
> A Documenter document can also be used as an interactive notebook. Internally 
> it essentially acts as a playground:
>   • it supports defining variables in code snippets, and
>   • the execution of code shows an embedded inspector.
> 
> For example:
> https://twitter.com/feenkcom/status/996310432225820672
> https://twitter.com/feenkcom/status/1002851190475026432
> 
> An example, can be seen by inspecting:
>   IceRepository repositoriesLocation / 'feenkcom'/ 'gtoolkit' / 'doc' / 
> 'gtoolkit' / 'gtoolkit.pillar'. 
> 
> 
> As always, please do let us know what you think.
> 
> Enjoy,
> The feenk team
> 
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "If you can't say why something is relevant, 
> it probably isn't."
> 
> ___
> Moose-dev mailing list
> moose-...@list.inf.unibe.ch
> https://www.list.inf.unibe.ch/listinfo/moose-dev



Re: [Pharo-users] [Moose-dev] [ann] gt documenter

2018-06-19 Thread Tim Mackinnon
Actually I realised it ended up on the be moose forum - here’s what Doru 
replied (for any lurkers)



Sent from my iPhone
> On Jun 18, 2018, at 1:21 PM, Tim Mackinnon  wrote:
> 
> Guys this is really impressive!

Thanks.


> 2 things I noticed when going through the example in a new Pharo 6.1 image 
> (with the latest Iceberg) -
> 
> 1) The example "IceRepository repositoriesLocation / 'feenkcom'/ 
> 'gtoolkit-examples' / 'doc' / 'tutorial' / 'examples-tutorial.pillar'. “ has 
> changed to “IceLibgitRepository …” in the newer iceberg - so it might be 
> worth a note in the readme (I’ll submit a PR)

Show Quoted Content
> 2 things I noticed when going through the example in a new Pharo 6.1 image 
> (with the latest Iceberg) -
> 
> 1) The example "IceRepository repositoriesLocation / 'feenkcom'/ 
> 'gtoolkit-examples' / 'doc' / 'tutorial' / 'examples-tutorial.pillar'. “ has 
> changed to “IceLibgitRepository …” in the newer iceberg - so it might be 
> worth a note in the readme (I’ll submit a PR)

Ok.


> 2) In a clean 6.1 image I get a walkback (GtPhlowExplicitView>>mondrian DNU) 
> when you try any of the graphical bits , making me think either the 
> dependencies are incorrect  on the Baseline (or the instruction for the 
> example also need to mention you need to load something else - presumably 
> Roassal?

Indeed, this is due to the fact that loading GToolkitDocumenter does not load 
GToolkitVisualizer which includes GtMondrian. We are still working on finding 
the right dependencies balance.

Until then, please load the whole GToolkit to get the full support.


> 3) You can’t scroll the Diff tabs of results, only the Code tabs

Good catch!


Cheers,
Doru

Sent from my iPhone

> On 20 Jun 2018, at 02:47, Tim Mackinnon  wrote:
> 
> Bump (not sure this got through , and keen to know how to load the 
> diagramming bit)
> 
> Guys this is really impressive!
> 
> 2 things I noticed when going through the example in a new Pharo 6.1 image 
> (with the latest Iceberg) -
> 
> 1) The example "IceRepository repositoriesLocation / 'feenkcom'/ 
> 'gtoolkit-examples' / 'doc' / 'tutorial' / 'examples-tutorial.pillar'. “ has 
> changed to “IceLibgitRepository …” in the newer iceberg - so it might be 
> worth a note in the readme (I’ll submit a PR)
> 
> 2) In a clean 6.1 image I get a walkback (GtPhlowExplicitView>>mondrian DNU) 
> when you try any of the graphical bits , making me think either the 
> dependencies are incorrect  on the Baseline (or the instruction for the 
> example also need to mention you need to load something else - presumably 
> Roassal?
> 3) You can’t scroll the Diff tabs of results, only the Code tabs
> 
> Tim
> 
>> On 13 Jun 2018, at 21:57, Tudor Girba  wrote:
>> 
>> Hi,
>> 
>> We are happy to announce a new leap of GToolkit Documenter, the tool for 
>> manipulating live documents directly in the development environment:
>> https://github.com/feenkcom/gtoolkit-documenter
>> 
>> Documenter is part of the second generation GToolkit project, it is based on 
>> Bloc and works with the latest Pillar. It is mainly developed by Juraj 
>> Kubelka.
>> 
>> Attached you can see a preview of how documents look like:
>> 
>> 
>> 
>> At its core it offers a live editor for manipulating Pillar documents. The 
>> interaction happens seamlessly directly in the text editor, and it can be 
>> combined with different types of previews to serve several classes of use 
>> cases:
>>  • code documentation
>>  • tutorials
>>  • interactive data notebook
>> 
>> 
>> Code documentation
>> 
>> Documenter complements the GToolkit Examples engine to redefine code 
>> documentation. When practicing example-driven development, examples get 
>> written as part of the typical development. Once examples exist, they can be 
>> quickly put together in a document to form documentation. For example, the 
>> linked picture shows the comment of a class containing a visual explanation:
>> https://twitter.com/feenkcom/status/973899862482866176
>> 
>> You can see a live example of documentation by inspecting the following 
>> snippet:
>>  GtDocumenter editorForText: BrToggleExamples comment. 
>> 
>> 
>> Tutorials:
>> 
>> Documenter offers a new experience of writing tutorials for Pharo by 
>> enabling the creation and embedding of Epicea change sessions directly in 
>> the document. For example, take a look at the following animation:
>&g

Re: [Pharo-users] [ANN] Pharo Launcher v1.2 release

2018-06-20 Thread Tim Mackinnon
A simple way is to have a tick box - don’t show me again?

Sent from my iPhone

> On 20 Jun 2018, at 15:08, Sean P. DeNigris  wrote:
> 
> demarey wrote
>> I just released PharoLauncher 1.2
> 
> Thanks!
> 
> Warning to users: This new release is based on 64-bit Pharo. This caused a
> bit of unexpected havoc for me as my projects are not all tested on 64-bit.
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] OmniBase for Pharo 6

2018-06-20 Thread Tim Mackinnon
I too used it in Dolphin and it was fine, But i don’t think it gets used much 
in Pharo and so has probably decayed, isn’t Voyage an object dB or Gemstone?

(Todd & everyone, a gentle reminder to try and leave personality opinions at 
the door , we’ve already had another thread that got overly heated 
unnecessarily. Our community is small and we need to avoid knife fights. The 
technical stuff is already hard enough)

Tim

Sent from my iPhone

> On 21 Jun 2018, at 00:20, Matias Maretto  wrote:
> 
>  thanks for your answer Todd. I know omnibase from dolphin. Now I am starting 
> a new Project and I want to use pharo. Would you recommend me another object 
> database?
> Thanks.
> 
> El 20 jun. 2018 19:29, Todd Blanchard  escribió:
> FWIW, I have used it before and I don't have anything good to say about the 
> library or the individual who wrote it.
> 
> I'd look for something else.
> 
> On Jun 20, 2018, at 3:05 PM, pablo digonzelli Argentina 
>  wrote:
> 
> Hi try this. I do not know if working on pharo 6 or 7
> 
> https://github.com/sebastianconcept/OmniBase
> 
> 
> 
> El mié., 20 jun. 2018 a las 17:22, Matias Maretto () 
> escribió:
> Hi folks, does anyone know how to get OmniBase for Pharo 6?.  The Package on 
> Pharo.org is for pharo 4, I tried to install them manually from the MCZ 
> files, but I get a strange error in a closeHandle method.  constant expected -> ulong 'CloseHandle' (long) module:'kernel32.dll'>
> ^self externalCallFailed. 
> I am using win 7.
> Thanks.
> Matias.
> 
> 
> 
> 
> -- 
> Ing. Pablo Digonzelli 
> Software Solutions
> IP-Solutiones SRL
> 25 de Mayo 521
> Email: pdigonze...@softsargentina.com
> pdigonze...@gmail.com
> Cel: 543815982714
> 
> 


Re: [Pharo-users] OmniBase for Pharo 6

2018-06-21 Thread Tim Mackinnon
Todd - thanks for clarifying - thats a fairer non-emotive assessment. I also 
know that you often helpfully chip in here too, so thanks for that too.

Tim

> On 21 Jun 2018, at 11:18, Todd Blanchard  wrote:
> 
> I'll just leave it with production data was lost through creeping file 
> corruption and recovery services were paid for but not rendered.  If you need 
> your data to be safe, I'd pick something else.
> 
> Sorry if that seems offensive, that's my experience with it.
> 
>> On Jun 20, 2018, at 11:13 PM, Tim Mackinnon > <mailto:tim@testit.works>> wrote:
>> 
>> I too used it in Dolphin and it was fine, But i don’t think it gets used 
>> much in Pharo and so has probably decayed, isn’t Voyage an object dB or 
>> Gemstone?
>> 
>> (Todd & everyone, a gentle reminder to try and leave personality opinions at 
>> the door , we’ve already had another thread that got overly heated 
>> unnecessarily. Our community is small and we need to avoid knife fights. The 
>> technical stuff is already hard enough)
>> 
>> Tim
>> 
>> Sent from my iPhone
>> 
>> On 21 Jun 2018, at 00:20, Matias Maretto > <mailto:mgmare...@hotmail.com>> wrote:
>> 
>>>  thanks for your answer Todd. I know omnibase from dolphin. Now I am 
>>> starting a new Project and I want to use pharo. Would you recommend me 
>>> another object database?
>>> Thanks.
>>> 
>>> El 20 jun. 2018 19:29, Todd Blanchard >> <mailto:tblanch...@mac.com>> escribió:
>>> FWIW, I have used it before and I don't have anything good to say about the 
>>> library or the individual who wrote it.
>>> 
>>> I'd look for something else.
>>> 
>>> On Jun 20, 2018, at 3:05 PM, pablo digonzelli Argentina 
>>> mailto:pdigonze...@gmail.com>> wrote:
>>> 
>>> Hi try this. I do not know if working on pharo 6 or 7
>>> 
>>> https://github.com/sebastianconcept/OmniBase 
>>> <https://github.com/sebastianconcept/OmniBase>
>>> 
>>> 
>>> 
>>> El mié., 20 jun. 2018 a las 17:22, Matias Maretto (>> <mailto:mgmare...@hotmail.com>>) escribió:
>>> Hi folks, does anyone know how to get OmniBase for Pharo 6?.  The Package 
>>> on Pharo.org <http://pharo.org/> is for pharo 4, I tried to install them 
>>> manually from the MCZ files, but I get a strange error in a closeHandle 
>>> method.  ulong 'CloseHandle' (long) 
>>> module:'kernel32.dll'>
>>> ^self externalCallFailed. 
>>> I am using win 7.
>>> Thanks.
>>> Matias.
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Ing. Pablo Digonzelli 
>>> Software Solutions
>>> IP-Solutiones SRL
>>> 25 de Mayo 521
>>> Email: pdigonze...@softsargentina.com 
>>> <mailto:pdigonze...@softsargentina.com>
>>> pdigonze...@gmail.com <mailto:pdigonze...@gmail.com>
>>> Cel: 543815982714
>>> 
>>> 
> 



Re: [Pharo-users] Smalltalk Programming Competition

2018-06-21 Thread Tim Mackinnon
I noticed that your gofundme update email went into my spam mail box - so I 
wasn’t aware it had gone live.

Are you able to apply the funds from your previous campaign (The Ultimate 
Smalltalk Tutorial) to this one? As a contributor to that last one - which 
unfortunately didn’t manage to deliver like you hoped, I am a little hesitant… 
I think this is often the way, we need to feel like its something that has 
gathered enough moment to  succeed otherwise what happens to the money 
collected?

Don’t get me wrong, I am a fan of your tutorials (it reignited my interested a 
few years back) - so don’t count me out yet.

Tim

> On 21 Jun 2018, at 11:23, horrido  wrote:
> 
> I'm disappointed in the response. Only two contributors of $100 each. This is
> extremely tepid.
> 
> There must be thousands of Smalltalkers around the world. How to reach out
> to them? It can't be that hard to fund this contest. I mean, there are many
> stupid causes on GoFundMe that have raised tens of thousands of dollars!
> This Smalltalk programming competition is anything but stupid.
> 
> If only 1500 Smalltalkers each contributed a paltry $20, the contest would
> be fully funded. It would only take 300 contributors of $100 each.
> 
> The question is: How much do we care about the future of Smalltalk?
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] Iceberg - finding deleted classes, reverting versions?

2018-06-21 Thread Tim Mackinnon
Guille - just following up on this thread as I’d like to get more confident 
with this stuff.

You mentioned a Calypso plugin for versions - where is that? I loaded a 
recentish P7 image and I don’t see those icons? Is this something I can easily 
load to try out?

As I don’t have that plugin, I’ve followed up on your next suggestion (just to 
learn how to do this) about looking up a commit having used the command line 
git history to list all of my deleted classes (I think this might be a useful 
thing to add to Iceberg BTW).

Not sure how to get a repository but I cobbled together the following?

(IceLibgitRepository registry detect: [ :r | r name beginsWith: 'Prismic' ]) 
lookupCommit: '65363ad’.

This give me an IceGitCommit - but then what can I easily do with this to try 
and iterate over deleted classes to try and get the one I’ve identified back?

Failing all of this - I went back to the command line again (which should work) 
- and I’m really wondering if we do something weird with files or paths when 
checking in?

Having got a valid commitID (I used: git log --diff-filter=D --summary 
—pretty="format:%cd|%h|%cn%n%s%n” )

if I simply run the following (with the id and pathname taken from the output 
of my previous command

git checkout 65363ad src/PrismicDemo/PrismicBlock.class.st 
<http://prismicblock.class.st/>

I keep getting an error : error: pathspec 
‘src/PrismicDemo/PrismicBlock.class.st <http://prismicblock.class.st/>' did not 
match any file(s) known to git. 

Are you able to confirm if you can restore a deleted class from a commit? I’ve 
tried it on 2 different OSX machines and neither of them works - making me 
think we do something odd.

Tim

> On 14 Jun 2018, at 08:52, Guillermo Polito  wrote:
> 
> Hi,
> 
> Regarding history, right now we have a history browser implemented as a 
> Calypso plugin, that is open using context menu => history or the little box 
> button on the top right of the method pane (second button from the left in 
> the picture):
> 
> 
> 
> That button will nowadays only be shown if the method's package is linked to 
> an iceberg repository.
> Once you click it, you will have the entire history of the method.
> 
> 
> 
> With the possibility to install that version of the method (among others).
> 
> Now, regarding the recovery of deleted classes/methods, have you tried the 
> repository browser?
> Go to Iceberg, right click on a repository and select "Repository".
> You can there select a commit in history and then in the tabs below see the 
> diff between
>  - your current version and the selected commit
>  - the selected commit and its main parent
> 
> Of course any of these can be improved, but if you have concrete requests, it 
> is much easier :)
> 
> https://github.com/pharo-vcs/iceberg <https://github.com/pharo-vcs/iceberg>
> 
> Guille
> 
> On Wed, Jun 13, 2018 at 11:22 PM Tim Mackinnon  wrote:
> Hi Sean - I tried it again, and it worked:
> 
> git log --full-history -- */PrismicBlock.class*
> 
> (I got my wildcard slightly wrong for tonel format) - although the beauty of 
> the one I gave was that it shows you all deleted classes (in case you don’t 
> know the name)
> 
> I’m still confused why I can’t checkout the deleted class though - damn you 
> git, for the cryptic error: : error: pathspec 
> 'PrismicDemo/PrismicBlock.class.st <http://prismicblock.class.st/>' did not 
> match any file(s) known to git.
> 
> I was hoping a quick hack to iceberg might be to OSProcess a few choice git 
> commands to help us along while we work out better ways to do things.
> 
> Tim
> 
>> On 13 Jun 2018, at 21:53, Sean P. DeNigris > <mailto:s...@clipperadams.com>> wrote:
>> 
>> Tim Mackinnon wrote
>>> I didn’t quite get your fu to work
>> 
>> Interesting.
>> 
>> When I searched for commits affecting the deleted class SuDebianKey:
>> 
>> $ git log --full-history -- */SuDebianKey.class/properties.json
>> 
>> I got back a list of commits (obviously with the last chronologically being
>> the deletion):
>> 
>> commit a38fbced4abec59ff9879d4c607da80dc89b6637
>> Author: Sean DeNigris mailto:s...@seans-mbp.home>>
>> Date:   Mon Jan 30 17:13:58 2017 -0500
>> 
>>Extract Lots to ComputerWorld, Absorb Rest of Old ScriptingBase Project
>> 
>> commit 61175745d57c60a1707d5e2f9a2fc92e6c19a6ea
>> Author: Sean DeNigris mailto:s...@clipperadams.com>>
>> Date:   Sat Aug 20 17:14:12 2016 -0400
>> 
>>Basket O' Enhancements
>> ...
>> 
>> 
>> 
>> -
>> Cheers,
>> Sean
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html 
>> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html>
>> 
> 
> 
> 
> -- 
>
> Guille Polito
> Research Engineer
> 
> Centre de Recherche en Informatique, Signal et Automatique de Lille
> CRIStAL - UMR 9189
> French National Center for Scientific Research - http://www.cnrs.fr 
> <http://www.cnrs.fr/>
> 
> Web: http://guillep.github.io <http://guillep.github.io/>
> Phone: +33 06 52 70 66 13



[Pharo-users] In Pharo 7 - are the Browsers in any particular order in the new menu?

2018-06-21 Thread Tim Mackinnon
Hi - in the new menu system (which I kind of like, and certainly see the value 
for new user, but worry about the loss of screen space for advanced users) - is 
the order of browsers specified for any particular reason?

I ask, because the 2 main one System and Playground should both be at the top 
(in my opinion) but I’m wondering if its in some specific order?

Tim




Re: [Pharo-users] In Pharo 7 - are the Browsers in any particular order in the new menu?

2018-06-21 Thread Tim Mackinnon
Hi Cyril (nice work on the menu by the way) - I was thinking in the Tools menu 
they should both be at the top. For the world menu - I think maybe the 
consistency is better - and for the advanced user they can learnt he keyboard 
shortcuts?

I’ll put a bug for this.

Tim

> On 21 Jun 2018, at 22:42, Cyril Ferlicot D.  wrote:
> 
> Le 21/06/2018 à 23:18, Tim Mackinnon a écrit :
>> Hi 
> 
> Hi,
> 
> 
> - in the new menu system (which I kind of like, and certainly see the
> value for new user, but worry about the loss of screen space for
> advanced users)
> 
> There is a setting to disable it if needed ;)
> 
> - is the order of browsers specified for any particular reason?
>> 
>> I ask, because the 2 main one System and Playground should both be at the 
>> top (in my opinion) but I’m wondering if its in some specific order?
>> 
> 
> By top you mean at the root of the menu or at the top of the Tool submenu?
> 
> If you mean at the root of the menu, then no for the menubar because it
> is a menubar and not a toolbar. But, it would be cool to get it back at
> the root of the WorldMenu but it need work to be able to define two
> different locations for menubar and world menu.
> 
> If you mean at the top of the Tools submenu, then yes. The fact that
> Iceberg is before the playground is an error I think.
> 
>> Tim
>> 
>> 
> 
> -- 
> Cyril Ferlicot
> https://ferlicot.fr
> 




Re: [Pharo-users] Iceberg - finding deleted classes, reverting versions?

2018-06-21 Thread Tim Mackinnon
Just to add more information to this - I did try what was suggested here (it 
refers to a branch and not a commit id - but heck worth a shot) 
https://stackoverflow.com/questions/5989592/git-cannot-checkout-branch-error-pathspec-did-not-match-any-files-kn
 
<https://stackoverflow.com/questions/5989592/git-cannot-checkout-branch-error-pathspec-did-not-match-any-files-kn>
 - but nah /refs/heads/src… or /origin/src… didn’t seem to give a recognised 
path.

Grasping at straws I also tried --ignore-skip-worktree-bits 

So I’m really curious if anyone else has managed to restore a deleted Pharo 
class in git?

Tim

> On 21 Jun 2018, at 16:07, Tim Mackinnon  wrote:
> 
> Guille - just following up on this thread as I’d like to get more confident 
> with this stuff.
> 
> You mentioned a Calypso plugin for versions - where is that? I loaded a 
> recentish P7 image and I don’t see those icons? Is this something I can 
> easily load to try out?
> 
> As I don’t have that plugin, I’ve followed up on your next suggestion (just 
> to learn how to do this) about looking up a commit having used the command 
> line git history to list all of my deleted classes (I think this might be a 
> useful thing to add to Iceberg BTW).
> 
> Not sure how to get a repository but I cobbled together the following?
> 
> (IceLibgitRepository registry detect: [ :r | r name beginsWith: 'Prismic' ]) 
> lookupCommit: '65363ad’.
> 
> This give me an IceGitCommit - but then what can I easily do with this to try 
> and iterate over deleted classes to try and get the one I’ve identified back?
> 
> Failing all of this - I went back to the command line again (which should 
> work) - and I’m really wondering if we do something weird with files or paths 
> when checking in?
> 
> Having got a valid commitID (I used: git log --diff-filter=D --summary 
> —pretty="format:%cd|%h|%cn%n%s%n” )
> 
> if I simply run the following (with the id and pathname taken from the output 
> of my previous command
> 
> git checkout 65363ad src/PrismicDemo/PrismicBlock.class.st 
> <http://prismicblock.class.st/>
> 
> I keep getting an error : error: pathspec 
> ‘src/PrismicDemo/PrismicBlock.class.st <http://prismicblock.class.st/>' did 
> not match any file(s) known to git. 
> 
> Are you able to confirm if you can restore a deleted class from a commit? 
> I’ve tried it on 2 different OSX machines and neither of them works - making 
> me think we do something odd.
> 
> Tim
> 
>> On 14 Jun 2018, at 08:52, Guillermo Polito > <mailto:guillermopol...@gmail.com>> wrote:
>> 
>> Hi,
>> 
>> Regarding history, right now we have a history browser implemented as a 
>> Calypso plugin, that is open using context menu => history or the little box 
>> button on the top right of the method pane (second button from the left in 
>> the picture):
>> 
>> 
>> 
>> That button will nowadays only be shown if the method's package is linked to 
>> an iceberg repository.
>> Once you click it, you will have the entire history of the method.
>> 
>> 
>> 
>> With the possibility to install that version of the method (among others).
>> 
>> Now, regarding the recovery of deleted classes/methods, have you tried the 
>> repository browser?
>> Go to Iceberg, right click on a repository and select "Repository".
>> You can there select a commit in history and then in the tabs below see the 
>> diff between
>>  - your current version and the selected commit
>>  - the selected commit and its main parent
>> 
>> Of course any of these can be improved, but if you have concrete requests, 
>> it is much easier :)
>> 
>> https://github.com/pharo-vcs/iceberg <https://github.com/pharo-vcs/iceberg>
>> 
>> Guille
>> 
>> On Wed, Jun 13, 2018 at 11:22 PM Tim Mackinnon > <mailto:tim@testit.works>> wrote:
>> Hi Sean - I tried it again, and it worked:
>> 
>> git log --full-history -- */PrismicBlock.class*
>> 
>> (I got my wildcard slightly wrong for tonel format) - although the beauty of 
>> the one I gave was that it shows you all deleted classes (in case you don’t 
>> know the name)
>> 
>> I’m still confused why I can’t checkout the deleted class though - damn you 
>> git, for the cryptic error: : error: pathspec 
>> 'PrismicDemo/PrismicBlock.class.st <http://prismicblock.class.st/>' did not 
>> match any file(s) known to git.
>> 
>> I was hoping a quick hack to iceberg might be to OSProcess a few choice git 
>> commands to help us along while we work out better ways to do things.
>>

Re: [Pharo-users] In Pharo 7 - are the Browsers in any particular order in the new menu?

2018-06-22 Thread Tim Mackinnon
I’ve been thinking similar and was holding out to see if I might relearn the 
new layout - but I agree it needs tweaking a bit (not lots - just make it a bit 
more comfortable)

I’m pleased to see us trying to make it more approachable though.

Tim

Sent from my iPhone

> On 22 Jun 2018, at 03:36, Ben Coman  wrote:
> 
> 
> 
>> On 22 June 2018 at 10:25, Ben Coman  wrote:
>> 
>> 
>>> 
>>> > On 21 Jun 2018, at 22:42, Cyril Ferlicot D.  
>>> > wrote:
>>> > 
>>> > Le 21/06/2018 à 23:18, Tim Mackinnon a écrit :
>>> >> Hi 
>>> > 
>>> > Hi,
>>> > 
>>> > - is the order of browsers specified for any particular reason?
>>> >> 
>>> >> I ask, because the 2 main one System and Playground should both be at 
>>> >> the top (in my opinion) but I’m wondering if its in some specific order?
>>> >> 
>>> > 
>>> > By top you mean at the root of the menu or at the top of the Tool submenu?
>>> > 
>>> > If you mean at the root of the menu, then no for the menubar because it
>>> > is a menubar and not a toolbar. But, it would be cool to get it back at
>>> > the root of the WorldMenu but it need work to be able to define two
>>> > different locations for menubar and world menu.
>>> > 
>>> > If you mean at the top of the Tools submenu, then yes. The fact that
>>> > Iceberg is before the playground is an error I think.
>> 
>>  
>>> On 22 June 2018 at 06:03, Tim Mackinnon  wrote:
>>> Hi Cyril (nice work on the menu by the way) - I was thinking in the Tools 
>>> menu they should both be at the top. For the world menu - I think maybe the 
>>> consistency is better - and for the advanced user they can learnt he 
>>> keyboard shortcuts?
>> 
>> I've been meaning to provide some feedback on this, but been giving myself 
>> time to adapt first.
>> 
>> Generally I like the direction this is heading, but I find I'm really 
>> missing the World-Menu > Save item.  
>> When I'm playing with deep parts of the system where mistakes are likely to 
>> break the Image, I use this often.  
>> Actually its not awkward so much that its an extra level down, but that 
>> "Save" is not at the top of its submenu.
>> 
>> Now as this arrangement is new, and I guess will become locked in when Pharo 
>> 7 is released
>> (at the risk of bike shedding) can we experiment a bit with the arrangement.
>> I am finding that to open Browser and Playground I often accidentally go to 
>> "Pharo" item first,
>> then correct myself to find them under "Tools".  
>> I'm not sure if I'm expecting Browser to be under the first menu, or 
>> expecting them under "Pharo".  
>> I think maybe the latter.  For me the tools *are* Pharo.
>> 
>> So...
>> * Maybe rename the current "Pharo" to "File"? Its a common paradigm in many 
>> application that the first top-level item is "File" with save/quit/etc. And 
>> after, "saving" is the act of freezing the Image into a file.
>> * Rename current "Tools" to "Pharo" as the second top-level item.
>> 
>> Here is an experiment for anyone to try...
>> 
>> WorldState-class >> pharoItemsOn: aBuilder
>> (aBuilder item: #Pharo)
>> +label: 'File';
>> - icon: ((self iconNamed: #pharo) scaledToSize: 20 @ 20);
>> +icon: ((self iconNamed: #smallOpen) scaledToSize: 15 @ 15);
>> 
>> (aBuilder item: #Save)
>> +   order: 1
>> 
>> (aBuilder item: #'Save as...')
>> +   order: 2
>> 
>> (aBuilder item: #saveAndQuit)
>> +   order: 2 ; withSeparatorAfter
>> 
>> (aBuilder item: #Quit)
>> +  order: 9
>> 
>> AbstractTool-class >> menuCommandOn:
>> +label: 'Pharo';
>> +icon: ((self iconNamed: #pharo) scaledToSize: 20 @ 20);
>> 
>> SettingsBrowser-class >> menuCommandOn:
>> + order: 5
> 
> A slight variation on top of above...
> 
> WorldState-class >> pharoItemsOn: aBuilder
> (aBuilder item: #Pharo)
> -label: 'File';
> +   label: 'Image';
> 
> cheers -ben


Re: [Pharo-users] Smalltalk Programming Competition

2018-06-22 Thread Tim Mackinnon
Hey guys - lets just try and give this some support - I’d like to see something 
useful come out of it that hopefully can be applied to other countries. I’d 
really like to see some kids enjoy programming.

I once met one of the original participants of the Parc experiments who was ~14 
at the time (he was much older when I met him). I commented that it must have 
been amazing, and he was a bit reflective and interestingly said that it almost 
ruined his life because while it was cool at the time - when they had to take 
it all away, he couldn’t code in the way he had enjoyed for a further 10 years….

Of course now we have an amazing environment, that not enough people actually 
know about, or take seriously enough - even though its produced most of what 
they take for granted today, AND is still busily pushing on things they will 
take for granted in another 1 years.

Richard - give it a shot and inspire some kids (and inspire me with some 
interesting problems or setups that you think might work)

I also notice that Kent Beck gave some support  - thats pretty cool!

Tim

> On 22 Jun 2018, at 14:38, horrido  wrote:
> 
> I do not diminish the efforts of open source contributors. I applaud them.
> 
> My point was that, as a Smalltalk advocate, I worked on average 8 hours a
> day, every day of the year, for nearly 4 years. That is a tremendous burn
> rate, and I can tell you I am totally exhausted.
> 
> Imagine if I had a *real*, full-time job. This effort would've literally
> killed me. And this is exactly why no one else can do the job.
> 
> 
> 
>> I hear what you're saying. Here's my rationale...
>> 
>> #1. As far as I know, I'm the only person on the planet who has worked
>> full-time and without pay as a programming language advocate for nearly
>> four
>> years. Did I mention full-time and without pay? So I think you can trust
>> me
>> to deliver, come hell or high water.
>> 
> 
> I applaud your commitment, but there are many people giving free time to
> Pharo
> (although more technical oriented than pure advocacy)
> 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




Re: [Pharo-users] Smalltalk Programming Competition

2018-06-22 Thread Tim Mackinnon
Stay pumped - we’re a tricky crowd of deep thinkers, but everyone’s heart is in 
the right place!

Tim

Sent from my iPhone

> On 22 Jun 2018, at 15:29, horrido  wrote:
> 
> Yes, I was totally pumped about Kent Beck's support! With a few more
> contributors like him, I am certain the campaign would take off. Star power.
> (Cross my fingers.)
> 
> 
> 
> Tim Mackinnon wrote
>> Hey guys - lets just try and give this some support - I’d like to see
>> something useful come out of it that hopefully can be applied to other
>> countries. I’d really like to see some kids enjoy programming.
>> 
>> I once met one of the original participants of the Parc experiments who
>> was ~14 at the time (he was much older when I met him). I commented that
>> it must have been amazing, and he was a bit reflective and interestingly
>> said that it almost ruined his life because while it was cool at the time
>> - when they had to take it all away, he couldn’t code in the way he had
>> enjoyed for a further 10 years….
>> 
>> Of course now we have an amazing environment, that not enough people
>> actually know about, or take seriously enough - even though its produced
>> most of what they take for granted today, AND is still busily pushing on
>> things they will take for granted in another 1 years.
>> 
>> Richard - give it a shot and inspire some kids (and inspire me with some
>> interesting problems or setups that you think might work)
>> 
>> I also notice that Kent Beck gave some support  - thats pretty cool!
>> 
>> Tim
>> 
>>> On 22 Jun 2018, at 14:38, horrido <
> 
>> horrido.hobbies@
> 
>> > wrote:
>>> 
>>> I do not diminish the efforts of open source contributors. I applaud
>>> them.
>>> 
>>> My point was that, as a Smalltalk advocate, I worked on average 8 hours a
>>> day, every day of the year, for nearly 4 years. That is a tremendous burn
>>> rate, and I can tell you I am totally exhausted.
>>> 
>>> Imagine if I had a *real*, full-time job. This effort would've literally
>>> killed me. And this is exactly why no one else can do the job.
>>> 
>>> 
>>> 
>>>> I hear what you're saying. Here's my rationale...
>>>> 
>>>> #1. As far as I know, I'm the only person on the planet who has worked
>>>> full-time and without pay as a programming language advocate for nearly
>>>> four
>>>> years. Did I mention full-time and without pay? So I think you can trust
>>>> me
>>>> to deliver, come hell or high water.
>>>> 
>>> 
>>> I applaud your commitment, but there are many people giving free time to
>>> Pharo
>>> (although more technical oriented than pure advocacy)
>>> 
>>> 
>>> 
>>> 
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>> 
> 
> 
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




[Pharo-users] Is there an easy way to create a test class in Calypso?

2018-06-22 Thread Tim Mackinnon
Hi - In nautilus there was a handy menu item on a class to jump to its test 
class (and create it if need by) - Is there any easy way to do this in Calypso? 
I know it was a simple thing - but I found it did encourage me to write tests…

Tim


Re: [Pharo-users] Is there an easy way to create a test class in Calypso?

2018-06-22 Thread Tim Mackinnon
Makes sense - I didn’t scroll enough through the issues… trying to clone the 
repo to see how to contribute … ;)

> On 22 Jun 2018, at 16:03, Cyril Ferlicot D.  wrote:
> 
> On 22/06/2018 16:59, Tim Mackinnon wrote:
>> Hi - In nautilus there was a handy menu item on a class to jump to its test 
>> class (and create it if need by) - Is there any easy way to do this in 
>> Calypso? I know it was a simple thing - but I found it did encourage me to 
>> write tests…
>> 
>> Tim
>> 
> 
> Hi,
> 
> Not yet. This is in the feature requests:
> https://github.com/pharo-ide/Calypso/issues/257
> 
> -- 
> Cyril Ferlicot
> https://ferlicot.fr
> 




[Pharo-users] How do you clone Calypso to contribute to it?

2018-06-22 Thread Tim Mackinnon
Ok - I give up - how do you add Calypso as a project to help contribute to it?

I’ve downloaded the latest Pharo 7 image (1081), and I’ve tried to use the 
Github template to load my fork of Calypso. After several read herrings where I 
was getting a Github timeout (it turns out that Calypso isn’t in a src 
directory but in a root directory) I have gotten further, in that it loads the 
code, but at the end of the operation I always get “failed to connect to 
GitHub.com : Operation timed out”. It looks to have loaded all of the code and 
but then it looks to be doing a remote fetch to (pharo-ide 
(git://github.com/pharo-ide/Calypso.git)) - which isn’t the fork I’m cloning, 
and then it gets its knickers in a knot?

I’m using https (which has worked so far for everything else) What is going on?

Tim


Re: [Pharo-users] How do you clone Calypso to contribute to it?

2018-06-22 Thread Tim Mackinnon
It seems that you have to use ssh for Calypso - not sure why, but at least I’ve 
got a clone now.

> On 22 Jun 2018, at 17:29, Tim Mackinnon  wrote:
> 
> Ok - I give up - how do you add Calypso as a project to help contribute to it?
> 
> I’ve downloaded the latest Pharo 7 image (1081), and I’ve tried to use the 
> Github template to load my fork of Calypso. After several read herrings where 
> I was getting a Github timeout (it turns out that Calypso isn’t in a src 
> directory but in a root directory) I have gotten further, in that it loads 
> the code, but at the end of the operation I always get “failed to connect to 
> GitHub.com : Operation timed out”. It looks to have loaded all of the code 
> and but then it looks to be doing a remote fetch to (pharo-ide 
> (git://github.com/pharo-ide/Calypso.git)) - which isn’t the fork I’m cloning, 
> and then it gets its knickers in a knot?
> 
> I’m using https (which has worked so far for everything else) What is going 
> on?
> 
> Tim




Re: [Pharo-users] How do you clone Calypso to contribute to it?

2018-06-22 Thread Tim Mackinnon
Grrr - I think I didn’t have the image setting RemoteType set to https in the 
image I was trying. False alarm - sorry.

> On 22 Jun 2018, at 17:29, Tim Mackinnon  wrote:
> 
> Ok - I give up - how do you add Calypso as a project to help contribute to it?
> 
> I’ve downloaded the latest Pharo 7 image (1081), and I’ve tried to use the 
> Github template to load my fork of Calypso. After several read herrings where 
> I was getting a Github timeout (it turns out that Calypso isn’t in a src 
> directory but in a root directory) I have gotten further, in that it loads 
> the code, but at the end of the operation I always get “failed to connect to 
> GitHub.com : Operation timed out”. It looks to have loaded all of the code 
> and but then it looks to be doing a remote fetch to (pharo-ide 
> (git://github.com/pharo-ide/Calypso.git)) - which isn’t the fork I’m cloning, 
> and then it gets its knickers in a knot?
> 
> I’m using https (which has worked so far for everything else) What is going 
> on?
> 
> Tim




Re: [Pharo-users] How do you clone Calypso to contribute to it?

2018-06-22 Thread Tim Mackinnon
Actually, although I appear crazy talking to myself… its true - you have to use 
SSH to clone Calypso? Not sure why (other projects have all been fine with 
https) but there you go.

Tim

> On 22 Jun 2018, at 17:39, Tim Mackinnon  wrote:
> 
> Grrr - I think I didn’t have the image setting RemoteType set to https in the 
> image I was trying. False alarm - sorry.
> 
>> On 22 Jun 2018, at 17:29, Tim Mackinnon  wrote:
>> 
>> Ok - I give up - how do you add Calypso as a project to help contribute to 
>> it?
>> 
>> I’ve downloaded the latest Pharo 7 image (1081), and I’ve tried to use the 
>> Github template to load my fork of Calypso. After several read herrings 
>> where I was getting a Github timeout (it turns out that Calypso isn’t in a 
>> src directory but in a root directory) I have gotten further, in that it 
>> loads the code, but at the end of the operation I always get “failed to 
>> connect to GitHub.com : Operation timed out”. It looks to have loaded all of 
>> the code and but then it looks to be doing a remote fetch to (pharo-ide 
>> (git://github.com/pharo-ide/Calypso.git)) - which isn’t the fork I’m 
>> cloning, and then it gets its knickers in a knot?
>> 
>> I’m using https (which has worked so far for everything else) What is going 
>> on?
>> 
>> Tim
> 
> 




Re: [Pharo-users] Smalltalk Programming Competition

2018-06-23 Thread Tim Mackinnon
Nice - now you’ve really got to work out the details of the competition and how 
your going to judge it.



Sent from my iPhone

> On 23 Jun 2018, at 11:07, horrido  wrote:
> 
> Alan Kay contributed to my campaign! This is so frickin' amazing!
> 
> Can we spell S-T-A-R P-O-W-E-R, boys and girls?
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 




<    1   2   3   4   5   6   7   8   >