Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Dale Henrichs



On 04/08/2015 12:47 PM, Thierry Goubier wrote:

Hi Dale,

Le 08/04/2015 19:30, Dale Henrichs a écrit :



On 04/07/2015 10:24 PM, Thierry Goubier wrote:

Le 08/04/2015 02:05, Dale Henrichs a écrit :
I have threatened in the past to add an option to a repository that
would eliminate the need to store monticello meta data ... Damien is
working on starting from scratch on the new format, because the
current implementation supports 4-5 different FileTree formats. 
Damien's
work could be leveraged to add an optional Monticello meta data 
option
to FileTree and if your SCM (like git) gives you per method history 
with

the proper tools you can leverage that information..

I would say this could be a reasonable possibility, in that you could
have two modes of compatibility:

- Complete filetree compatibility for gitfiletree: the current
situation, with properties and version written to disk.

- Partial filetree compatibility, where that metadata isn't written
and you rely on gitfiletree to recreate it to export as .mcz.

Partial compatibility has two effects, which need to be considered.
When using github:// or bitbucket:// urls, filetree will be used and
your packages will end up having no version number (except .1?), no
author, no timestamps for methods, etc... And the second one is that,
if you clone a mcz inside the gitfiletree repository, the mcz ancestry
of versions and author timestamps on methods will be lost, which is
something you may not want.

Yes for Metacello some modifications would need to be made because in a
normal mcz universe Metacello will not load a package if the version is
older or the same as the one in the image ... and following in the
tradition of other Monticello tools the UUID is ignored:( .. I was
working with a pure cypress implementation and have written the
Metacello code to support these repos ...


Ok.

Yes, the version number handling is delicate; even the one used by 
gitfiletree feels unsatisfying, even if it allows Metacello/Monticello 
to work as usual.
The work I had done was at the Metacello level and is in the 
Metacello-Cypress package where I changed the load semantics to 
unconditionally load the package ... the snapshot comparison logic in 
play when loading packages is pretty good so it isn't necessarily a 
penalty to unconditionally compare snapshots when loading a package from 
FileTree ...



A better long term solution is to treat these as a CypressPackage or
FileTreePackage which has some similarities to Monticello packages ...
because faking out Monitcello version numbers and users is not much
different than storing the metadata in FileTree ...


Not sure I understand. I know where the Cypress/FileTree code handles 
the lack of metadata when reading, that's all :)



But someone were to add those options to filetree, I think we could
reduce the overall number of hacks:)


Another solution I'd see possible is a reduced metadata format, where 
just the version number of the current package is stored and retrieved 
(i.e. a version file without ancestry).


It would allow FileTree and Metacello to work exactly as usual.

And, maybe, I could even unify the UUIDs?

There are things in Monticello which needs a rethink to better adapt 
to SCMs like git (or Fossil: it's so similar to git :) ) while keeping 
more or less the same appearance: branches, hashes, tags and semantic 
versionning.


But I don't see yet how to handle that or to propose anything.

I know that it would be great to reduce the cognitive distance between 
MC version and history handling, and the same as seen from Metacello 
baselines and configurations. Branches + baselines are doing a lot to 
simplify, but MC stuff is unaware of that. And MC should delegate 
merging to the underlying repository, as well.


So this extraneous Monticello meta data is really related to the 
versioning aspects of the Monticello package ... aspects that really 
needed if you are using git (read git as svn, hg, git, fossil, 
etc.:) for version control .. in working with git the SHA of the 
commit for the repository as a whole is more important than any of the 
package meta data ... from the SHA one can see the commit comment for 
the git commit the SHA is related to a project not a package ... the 
project contents is represented by the BaselineOf ... in git one can 
reason about the collection of commits associated with a directory 
(package or class or method) and look at diffs at that level of 
granularity  The primary point being that a git package can be 
stripped down to the basic list of definitions and the ancestry and 
version names and method properties can be dropped on the floor instead 
of fabricated ...


What I imagine is a separate software stack for these git packages the 
commonality is at the snapshot/definition level and the core definitions 
can migrate between Monticello and git packages almost without change 
... if one wanted to know the history of a package the Monticello 
package would 

Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Dale Henrichs



On 04/08/2015 01:11 AM, Thierry Goubier wrote:



2015-04-08 8:47 GMT+02:00 Peter Uhnák i.uh...@gmail.com 
mailto:i.uh...@gmail.com:


I thnk that rather than focus on the disk format which I
hardly ever actually look at ... that folks should be looking
at tools support (like Thierry) ... this is where the real
work needs to happen ... good tools can hide the disk fomat
completely so why does the disk format matter ...

I am personally not really a fan of this; I've been using git for
a while and I am perfectly content with using command line on the
disk (maybe I'm rare breed); I have yet to see a GUI/tool that
would come even close to the power of command line, but I've been
using Linux for a long time.


Agreed and this is in that spirit I did GitFileTree. Dale went a bit 
further and even integrated the git command line access inside 
smalltalk via CommandShell... so that you get the best of both worlds 
without leaving your beloved Smalltalk :)


Actually it is not quite CommandShell based ... the shell is tODE shell, 
where Smalltalk is the scripting language. The tODE git commands  are 
implemented by parsing the command line args, resolving options and args 
to objects, and then calling a Smalltalk git command API that eventually 
does make shell calls (sometimes multiple git commands are folded into a 
single tODE git command ... thus making it possible to ultimately switch 
out the actual `git calls` and use something FFI-based, like libgit2...


This approach also makes it quite feasible to write fairly complicated 
Smalltalk scripts that call the smalltalk git command api directly, 
bypassing the command line interface altogether ...



As I've said to Thierry some time ago in different thread, I would
be interested in idea of having everything on disk side and Pharo
would only somehow refresh it's content (just like a Java IDE /
text editor would). But that may be a lot o work so I can only
dream about it, as nobody has time for that (me included).


Well, as I said elsewhere, Smalltalk doesn't work like that: code has 
to be lived in the image for most tools to work properly... it doesn't 
really have an editor of file mindset, but an object inspector 
mindset.


What we're looking at in another thread is how to emulate that live 
object approach over dead files, and, thinking of it, I'm not sure we 
will succeed well.


In short, what you want may never work properly because it is not how 
it should be conceptualized.


In tODE I regularly drop off live objects to the file system using STON 
... The tODE shell which allows you to navigate an object-based 
directory also allows you to mount the nodes from the file system and 
when traversing the file system recognizes STON files and presents 
objects to you instead of the dead files:)


I haven't tried taking this approach all the way to source files ... but

Dale


Re: [Pharo-users] Opening SettingBrowser on custom settings

2015-04-08 Thread Laura Risani
Mmmm, the second option takes for me a while to open, i'll try using the
first option adding an argument to the pragma.

On Wed, Apr 8, 2015 at 7:25 PM, Laura Risani laura.ris...@gmail.com wrote:

 Hi Alain , hi Nicolai, thank you for your answers.
 In fact what i need is to parametrically show all settings i defined on a
 package, so i'll do the second.


 On Wed, Apr 8, 2015 at 6:23 PM, Nicolai Hess nicolaih...@web.de wrote:



 2015-04-08 18:34 GMT+02:00 Laura Risani laura.ris...@gmail.com:

 Hi all,

 Say that i wanted to open a SettingBrowser showing only the settings
 defined by 'SystemSystemSettings class  systemSettingOn:' . How could i
 do that?

 There is a method 'SettingBrowser  browse:' . Based on it's comment i
 tried adding to systemSettingOn: the pragma banana, and then sending
 ' SettingBrowser browse:#('banana') ' but it didn't work.


 Most (all?) settings use the pragma systemsettings, that means you can
 not filter by the pragma keyword, to only get the settings for one
 subcategory in the default settings.
 But if the settings you want to display are all from one Package, you can
 browse only settings from that package:

 (SettingBrowser new setViewedPackageNames: 'Settings-System')
 open;
 expandAll




 Best,
 Laura






Re: [Pharo-users] Opening SettingBrowser on custom settings

2015-04-08 Thread Laura Risani
Hi Alain , hi Nicolai, thank you for your answers.
In fact what i need is to parametrically show all settings i defined on a
package, so i'll do the second.


On Wed, Apr 8, 2015 at 6:23 PM, Nicolai Hess nicolaih...@web.de wrote:



 2015-04-08 18:34 GMT+02:00 Laura Risani laura.ris...@gmail.com:

 Hi all,

 Say that i wanted to open a SettingBrowser showing only the settings
 defined by 'SystemSystemSettings class  systemSettingOn:' . How could i
 do that?

 There is a method 'SettingBrowser  browse:' . Based on it's comment i
 tried adding to systemSettingOn: the pragma banana, and then sending ' 
 SettingBrowser
 browse:#('banana') ' but it didn't work.


 Most (all?) settings use the pragma systemsettings, that means you can
 not filter by the pragma keyword, to only get the settings for one
 subcategory in the default settings.
 But if the settings you want to display are all from one Package, you can
 browse only settings from that package:

 (SettingBrowser new setViewedPackageNames: 'Settings-System')
 open;
 expandAll




 Best,
 Laura





Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Dale Henrichs



On 04/08/2015 04:23 AM, Sean P. DeNigris wrote:

Dale Henrichs-3 wrote
Dale Henrichs-3 wrote

I am really pressed for time so I don't have the luxury to blue sky
ideas ...

I understand. I was not suggesting anyone do anything. Also, I agree that
methods seem to be the proper level for SCM versioning as they are in the
Smalltalk image. I was simply asking, in light of the appearance that the
merge driver could seemingly ignore the changes to certain files while still
committing them with Git, if it would be feasible to add read-only
one-class-per files for viewing on GitHub. This is more of a sanity check
to see if I understood what the merge driver makes possible.


Sean, I think the issue becomes one of so who makes sure the the 
readonly file matches the rest of the source ...


I do occasionally edit files directory with vi ... I do regularly merge 
in changes from GemStone and Squeak ... so any package with this kind of 
file has the potential to decay quickly unless the changes were made so 
that they'd work on the supported filetree platforms ...


If you wanted to experiment, you could fork FileTree and try some 
experiments ... if they become something worth sharing, they could be 
merged into the master pharo branch ...


Dale



Re: [Pharo-users] class variable accessor naming

2015-04-08 Thread Christian Caldeiro
You can find many guidelines like these in the Smalltalk with Style book.

For instance on page 3 it says Upper and lowercase letters also
distinguish variable scope. Variables beginning with an upper case letter
(globals, classes, *class variables*, and pool dictionaries) are global to
all methods within the definition scope of the variable. Method parameters,
temporary variables, and instance variables begin with a lower case letter.
By convention, *class and instance method names* begin with a lower case
letter.

You can find this and other Smalltalk books here:
http://stephane.ducasse.free.fr/FreeBooks.html

Christian

On Wed, Apr 8, 2015 at 3:13 PM, Jan B. blizn...@fit.cvut.cz wrote:

 True, I already found few examples of accessors to class variables, but I
 like to be sure when I use it for the first time. Thank you.

 Jan


 Christian Caldeiro wrote
  Class variables should be written with Uppercase (but there are some
  classes in Pharo that don't follow this convention). Class methods
  (accessors in this case) are written in lowercase. Again, you can find
  several samples in Pharo.
 
  Thanks
  Christian
 
  On Tue, Apr 7, 2015 at 1:54 PM, Jan B. lt;

  bliznjan@.cvut

  gt; wrote:
 
  Hello
 
  Class variable names should start with capital letter (as I just found
  out),
  like RecentProjects. We have a getter to it. Should such accessor method
  be
  named recentProjects or RecentProjects?
 
  ... class#(r/R)ecentProjects
   ^ RecentProjects
 
  Jan
 
 
 
  --
  View this message in context:
  http://forum.world.st/class-variable-accessor-naming-tp4818137.html
  Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
 
 





 --
 View this message in context:
 http://forum.world.st/class-variable-accessor-naming-tp4818137p4818431.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




Re: [Pharo-users] Opening SettingBrowser on custom settings

2015-04-08 Thread Nicolai Hess
2015-04-08 18:34 GMT+02:00 Laura Risani laura.ris...@gmail.com:

 Hi all,

 Say that i wanted to open a SettingBrowser showing only the settings
 defined by 'SystemSystemSettings class  systemSettingOn:' . How could i
 do that?

 There is a method 'SettingBrowser  browse:' . Based on it's comment i
 tried adding to systemSettingOn: the pragma banana, and then sending ' 
 SettingBrowser
 browse:#('banana') ' but it didn't work.


Most (all?) settings use the pragma systemsettings, that means you can
not filter by the pragma keyword, to only get the settings for one
subcategory in the default settings.
But if the settings you want to display are all from one Package, you can
browse only settings from that package:

(SettingBrowser new setViewedPackageNames: 'Settings-System')
open;
expandAll




 Best,
 Laura



Re: [Pharo-users] Opening SettingBrowser on custom settings

2015-04-08 Thread Alain Plantec via Pharo-users
---BeginMessage---

 Le 8 avr. 2015 à 18:34, Laura Risani laura.ris...@gmail.com a écrit :
 
 Hi all,
 
 Say that i wanted to open a SettingBrowser showing only the settings defined 
 by 'SystemSystemSettings class  systemSettingOn:' . How could i do that? 
 
 There is a method 'SettingBrowser  browse:' . Based on it's comment i tried 
 adding to systemSettingOn: the pragma banana, and then sending ' 
 SettingBrowser browse:#('banana') ' but it didn't work.

Hello Laura,

try this:

SettingTreeBuilderbanana
settingPragmaProcessor
Process a banana pragma »
banana just works as a regular setting
^ self systemsettings

then define your banana settings:

BananaSetting classmyBananaSettingOn: aBuilder
banana
(aBuilder group: #Banana)

then try:
SettingBrowser browse: #('banana’)





 
 Best,
 Laura

---End Message---


Re: [Pharo-users] Eating your own dog food (Site/Blog)

2015-04-08 Thread stepharo
I started to work on using pillar to do that but nothing ready for 
people to use.

I will work on it at Lviv or during my vacations just after.
I want to use it for my website. Right now parts of it are automatically 
generated from Pharo.


Stef

Le 7/4/15 10:56, Yuriy Tymchuk a écrit :

Oh, I knew that there was a discussion about that, but couldn’t find where.

Still, is anybody else using Marina except for Pharo website?

Uko




On 07 Apr 2015, at 10:45, Damien Cassou damien.cas...@gmail.com wrote:


Yuriy Tymchuk yuriy.tymc...@me.com writes:


if I want to create a site/blog in pharo… What do I use? I know that
there is Pier, but when you check its webpage, the last update is in
2011. Pharo website is built with Marina, but when I check the repo,
the last commit was done by me and it was 2 month ago. Will Marina
continue to evolve? And is anyone else using Marina?


http://forum.world.st/Any-framework-to-create-a-blog-over-seaside-td4810615.html
--
Damien Cassou
http://damiencassou.seasidehosting.st

Success is the ability to go from one failure to another without
losing enthusiasm. --Winston Churchill









Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Peter Uhnák

 I thnk that rather than focus on the disk format which I hardly ever
 actually look at ... that folks should be looking at tools support (like
 Thierry) ... this is where the real work needs to happen ... good tools can
 hide the disk fomat completely so why does the disk format matter ...

I am personally not really a fan of this; I've been using git for a while
and I am perfectly content with using command line on the disk (maybe I'm
rare breed); I have yet to see a GUI/tool that would come even close to the
power of command line, but I've been using Linux for a long time. As I've
said to Thierry some time ago in different thread, I would be interested in
idea of having everything on disk side and Pharo would only somehow refresh
it's content (just like a Java IDE / text editor would). But that may be a
lot o work so I can only dream about it, as nobody has time for that (me
included).

But to bottom line this thread (for me at least, because I'm getting lost):
1. methodProperties.json provide compatibility for FileTree, so I don't
want to get rid of it (for now)
2. the large amount of file changes is probably a bug (I'll try to be more
observant about the commits in the future and hopefully some pattern will
emerge.)
3. I shouldn't want to break things for now at least
4. more people are starting to work on Git
5. I need to learn about FileTree at some point if I want to contribute and
experiment with (my) ideas (which won't be soon as I'm preparing for my
finals)

Thanks for all your answers.

Peter

On Wed, Apr 8, 2015 at 7:24 AM, Thierry Goubier thierry.goub...@gmail.com
wrote:

 Le 08/04/2015 02:05, Dale Henrichs a écrit :

 Peter,

 That looks like a bug in the FileTree writer ... wiht one method change
 there should have been only one method property file change ...


 Yes, I'd agree. This is surprising.

 Unless you had been loading that package via another repository / another
 version / another branch before in the same image?

 MCMethodDefinition has a cache which consider equals methods with
 different timestamps, and, in that case, it would carry the timestamps of
 the previous version, and writing those upon save instead of the originals.

  Peter and Sean,

 If you are interested in contributing code/bugfixes to FileTree, I will
 welcome pull requests ... As I have mentioned in several posts today, I
 do not have the time to fiddle with changes to the FileTree format
 myself, but I welcome contributions.

 Damien has started work on an updated version of the FileTree format[2].

 I have threatened in the past to add an option to a repository that
 would eliminate the need to store monticello meta data ... Damien is
 working on starting from scratch on the new format, because the
 current implementation supports 4-5 different FileTree formats. Damien's
 work could be leveraged to add an optional Monticello meta data option
 to FileTree and if your SCM (like git) gives you per method history with
 the proper tools you can leverage that information..


 I would say this could be a reasonable possibility, in that you could have
 two modes of compatibility:

 - Complete filetree compatibility for gitfiletree: the current situation,
 with properties and version written to disk.

 - Partial filetree compatibility, where that metadata isn't written and
 you rely on gitfiletree to recreate it to export as .mcz.

 Partial compatibility has two effects, which need to be considered. When
 using github:// or bitbucket:// urls, filetree will be used and your
 packages will end up having no version number (except .1?), no author, no
 timestamps for methods, etc... And the second one is that, if you clone a
 mcz inside the gitfiletree repository, the mcz ancestry of versions and
 author timestamps on methods will be lost, which is something you may not
 want.

 Thierry

  As I ranted in another post ... changing the disk format is the easy
 part ... building and maintaining tools for the 4-5 different Smalltalk
 dialects is a different matter ...

 Dale

 [1] https://github.com/dalehenrich/filetree/issues
 [2] https://github.com/dalehenrich/filetree/issues/144
 On 04/07/2015 04:38 PM, Peter Uhnák wrote:

 Yeah, I do use the MergeDriver and it saved me a lot of headache, but
 when I see things like this

 https://github.com/dynacase/dynacase/commit/
 90141d63bfdd433e51a768c2191e035b76c5da83

 where one five lines long method generated 14 file changes with 180
 additions and 172 deletions... it makes the log on github and pull
 requests incredibly messy.

 I don't want to cut branch under myself if I were to remove the
 properties file. So my question now is: how hard would it be to
 regenerate those files?

 Or maybe if it was moved to some metadirectory. This reminds me a bit
 of svn which polluted the whole folder tree with .svn files everywhere.

 Peter



 On Wed, Apr 8, 2015 at 1:14 AM, Sean P. DeNigris
 s...@clipperadams.com mailto:s...@clipperadams.com wrote:

 Dale Henrichs-3 wrote
  

Re: [Pharo-users] GitHub Mirror Workflow

2015-04-08 Thread Sean P. DeNigris
Bump :)


Sean P. DeNigris wrote
 for the Mirror on Github use case, I wonder if less granularity wouldn't
 clearly be more appropriate. I read about using chunk format (not ideal,
 but perhaps a bit more readable on the mirror) via Gitocello, but loading
 in Pharo 4.0 broke on the FFI dependency. Any thoughts/suggestions?





-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/GitHub-Mirror-Workflow-tp4810339p4818339.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Eating your own dog food (Site/Blog)

2015-04-08 Thread Yuriy Tymchuk
When are you going to be in Lviv?

 On 08 Apr 2015, at 08:32, stepharo steph...@free.fr wrote:
 
 I started to work on using pillar to do that but nothing ready for people to 
 use.
 I will work on it at Lviv or during my vacations just after.
 I want to use it for my website. Right now parts of it are automatically 
 generated from Pharo.
 
 Stef
 
 Le 7/4/15 10:56, Yuriy Tymchuk a écrit :
 Oh, I knew that there was a discussion about that, but couldn’t find where.
 
 Still, is anybody else using Marina except for Pharo website?
 
 Uko
 
 
 
 On 07 Apr 2015, at 10:45, Damien Cassou damien.cas...@gmail.com wrote:
 
 
 Yuriy Tymchuk yuriy.tymc...@me.com writes:
 
 if I want to create a site/blog in pharo… What do I use? I know that
 there is Pier, but when you check its webpage, the last update is in
 2011. Pharo website is built with Marina, but when I check the repo,
 the last commit was done by me and it was 2 month ago. Will Marina
 continue to evolve? And is anyone else using Marina?
 
 http://forum.world.st/Any-framework-to-create-a-blog-over-seaside-td4810615.html
 -- 
 Damien Cassou
 http://damiencassou.seasidehosting.st
 
 Success is the ability to go from one failure to another without
 losing enthusiasm. --Winston Churchill
 
 
 
 
 




Re: [Pharo-users] happy easter :-)

2015-04-08 Thread Alexandre Bergel
I got the icon from http://iconmonstr.com
I simply use the path in roassal

Alexandre


 On Apr 8, 2015, at 3:34 AM, kilon alios kilon.al...@gmail.com wrote:
 
 Not if you are Orthodox Christian ;)
 
 Happy Easter , great graphic. Did you do it by hand or you used a vector app 
 like inkscape ?
 
 On Wed, Apr 8, 2015 at 2:08 AM, Alexandre Bergel alexandre.ber...@me.com 
 wrote:
 A few days late :-)
 
 http://ws.stfx.eu/B8D2V8TO8BIE
 
 Screen Shot 2015-04-07 at 8.08.03 PM.png
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Sean P. DeNigris
Dale Henrichs-3 wrote
 My mail may have been a bit harsh, so please read my reply to Peter ... 
 where I think I take a bit more positive tack:)

We are beyond politeness, my friend... Not our first rodeo :)


Dale Henrichs-3 wrote
 I am really pressed for time so I don't have the luxury to blue sky 
 ideas ...

I understand. I was not suggesting anyone do anything. Also, I agree that
methods seem to be the proper level for SCM versioning as they are in the
Smalltalk image. I was simply asking, in light of the appearance that the
merge driver could seemingly ignore the changes to certain files while still
committing them with Git, if it would be feasible to add read-only
one-class-per files for viewing on GitHub. This is more of a sanity check
to see if I understood what the merge driver makes possible.



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Metacello-GIT-methodProperties-json-tp4818097p4818323.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Thierry Goubier

Le 08/04/2015 13:23, Sean P. DeNigris a écrit :

Dale Henrichs-3 wrote

My mail may have been a bit harsh, so please read my reply to Peter ...
where I think I take a bit more positive tack:)


We are beyond politeness, my friend... Not our first rodeo :)


Dale Henrichs-3 wrote

I am really pressed for time so I don't have the luxury to blue sky
ideas ...


I understand. I was not suggesting anyone do anything. Also, I agree that
methods seem to be the proper level for SCM versioning as they are in the
Smalltalk image. I was simply asking, in light of the appearance that the
merge driver could seemingly ignore the changes to certain files while still
committing them with Git, if it would be feasible to add read-only
one-class-per files for viewing on GitHub. This is more of a sanity check
to see if I understood what the merge driver makes possible.


The merge driver seemingly ignoring the changes to certain files while 
still committing? No, doesn't work that way. The merge driver never commits.


Unless you mean that, in case of conflicts on merging that file, that 
the merge driver should be disregarding the conflicts and choose one 
version over another... Not sure to see how that would work.


Remember that the merge driver is only called by git merge. Nothing else.

Adding a description file would enter it into the git and make it 
tracked as are all other files. And adding a file is really not a big deal.


Thierry





-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Metacello-GIT-methodProperties-json-tp4818097p4818323.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.







Re: [Pharo-users] Spec with dynamic tabs

2015-04-08 Thread Hartmut

ok, I put it on my list.

Hartmut

Am 07.04.15 um 21:14 schrieb Peter Uhnák:

Can you add an issue for Pharo 5 so it doesn't get lost?
Currently a lot of effort is focused on Pharo 4 release (this 
week-ish), so nobody might have time to look at this now.


Peter

On Thu, Apr 2, 2015 at 5:16 PM, Hartmut krasem...@acm.org 
mailto:krasem...@acm.org wrote:


Hi to all,

I'm working with Spec and appreciate the modularity a lot.
However, I had some difficulties to discover, how I can have a
dynamic widget in a tab.

Plugging together the TabsExample and the DynamicWidgetChange
didn't work either.

In the end I discovered the flaw:

- In DynamicWidgetChangechange the last line from self
openWithSpec  to  self buildWithSpec  .
  The DynamicWidgetChange example works as before.

But now also the following works (I propose to enhance the example):
- Add a method
  dynamicTab
  | tab |
  tab := self newTab.
  tab
  label: 'Dynamic';
  icon: Smalltalk ui icons nautilusIcon;
  model: (DynamicWidgetChange  new).
  ^ tab 
  to DynamicWidgetChange.
- add a line addTab: self dynamicTab  to
DynamicWidgetChangepopulateManager

Now you can dynamically change the widgets in the fourth tab.

Cheers, Hartmut



--
Hartmut Krasemann

Königsberger Str. 41 c

D 22869 Schenefeld

Tel. 040.8307097

Mobil 0171.6451283

krasem...@acm.org



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Martin Bähr
Excerpts from Thierry Goubier's message of 2015-04-08 10:11:44 +0200:
  As I've said to Thierry some time ago in different thread, I would be
  interested in idea of having everything on disk side and Pharo would only
  somehow refresh it's content (just like a Java IDE / text editor would).
  But that may be a lot o work so I can only dream about it, as nobody has
  time for that (me included).
 Well, as I said elsewhere, Smalltalk doesn't work like that: code has to be
 lived in the image for most tools to work properly... it doesn't really
 have an editor of file mindset, but an object inspector mindset.

the interesting thing is that i don't think git is the problem here. a git repo
does not need to have a working tree. smalltalk git tools could read the code
directly from git using git-fast-export and write them with git-fast-import

the effect would be that the working tree is now only in the smalltalk image,
and git would be a pure storage of history. any use of external tools on the
repo would happen on a clone and be pushed into the repo that smalltalk uses.

that would however be a complete break with filetree. (it could still create
compatible structures, it just could not use its code to read and write)

greetings, martin.

-- 
eKita   -   the online platform for your entire academic life
-- 
chief engineer   eKita.co
pike programmer  pike.lysator.liu.secaudium.net societyserver.org
secretary  beijinglug.org
mentor   fossasia.org
foresight developer  foresightlinux.orgrealss.com
unix sysadmin
Martin Bähr  working in chinahttp://societyserver.org/mbaehr/



Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Thierry Goubier
2015-04-08 9:19 GMT+02:00 Martin Bähr mba...@email.archlab.tuwien.ac.at:

 Excerpts from Peter Uhnák's message of 2015-04-08 08:47:15 +0200:
   I thnk that rather than focus on the disk format which I hardly ever
   actually look at

 i think the disk format is crucial for interoperability with other tools,
 such
 as github webinterface, or external editors to work on things like
 pictures or data.
 (which is not yet supported (i have an idea how support could look like
 though))


Open subject... I think there are a few ideas floating around, and maybe a
need to see a vision around that.

i don't mind file-per-method though, it helps to make the diff-stat more
 readable, showing which methods have been changed, added or removed...





  ... that folks should be looking at tools support (like
   Thierry) ... this is where the real work needs to happen ... good
 tools can
   hide the disk fomat completely so why does the disk format matter ...
  I am personally not really a fan of this; I've been using git for a while
  and I am perfectly content with using command line on the disk (maybe I'm
  rare breed); I have yet to see a GUI/tool that would come even close to
 the
  power of command line, but I've been using Linux for a long time.

 except for displaying the history graph. can't beat gitk or other gui
 tools for that.
 having a smalltalk version of that graph would really be great!


+1
I saw Martin Dias tools for Epicea during PharoDays, and he has that
visualisation in his history browser. I wanted to reuse it, but for now I'm
more like chasing bugs and coping with the increased use for gitfiletree.



  As I've
  said to Thierry some time ago in different thread, I would be interested
 in
  idea of having everything on disk side and Pharo would only somehow
 refresh
  it's content (just like a Java IDE / text editor would).

 can't you already do that, except that you need to manually update the
 image by
 loading/adopting the current state from the repo?


There is a bit more behind that.

At the moment, if you reopen / refresh a repository inspector, you'll get
that update.

If you browse from the repository, you'll get a 'original' style browser on
the stored code, but dead (can't edit).

A vision would be to have normal editing over the repository -- then we
could have repository state tracking (and reuse the IDE browser code
instead of cloning it inside MC).

But there is a conflict with smalltalk vision of live coding: you need a
far deeper connection of the repository and the Pharo image, and this is
clearly not how CMS are designed... git and fossil and the likes are
managing dead files, which is a concept which is clearly older than the
beginnings of Smalltalk, and it shows. For me, anything clearly
Smalltalk-ish in that approach would require a close integration of the
image and a versionning Object persistent storage (which would be
smalltalk-only in access to, for example, guarantee syntax correctness).

Thierry



 greetings, martin.

 --
 eKita   -   the online platform for your entire academic
 life
 --
 chief engineer
  eKita.co
 pike programmer  pike.lysator.liu.secaudium.net
 societyserver.org
 secretary
 beijinglug.org
 mentor
 fossasia.org
 foresight developer  foresightlinux.org
 realss.com
 unix sysadmin
 Martin Bähr  working in china
 http://societyserver.org/mbaehr/




Re: [Pharo-users] Eating your own dog food (Site/Blog)

2015-04-08 Thread Norbert Hartl
What you are after? A static site generator or a dynamic engine? Btw. what do 
you use to render pillar inside the image to something readable?

Norbert

 Am 08.04.2015 um 08:32 schrieb stepharo steph...@free.fr:
 
 I started to work on using pillar to do that but nothing ready for people to 
 use.
 I will work on it at Lviv or during my vacations just after.
 I want to use it for my website. Right now parts of it are automatically 
 generated from Pharo.
 
 Stef
 
 Le 7/4/15 10:56, Yuriy Tymchuk a écrit :
 Oh, I knew that there was a discussion about that, but couldn’t find where.
 
 Still, is anybody else using Marina except for Pharo website?
 
 Uko
 
 
 
 On 07 Apr 2015, at 10:45, Damien Cassou damien.cas...@gmail.com wrote:
 
 
 Yuriy Tymchuk yuriy.tymc...@me.com writes:
 
 if I want to create a site/blog in pharo… What do I use? I know that
 there is Pier, but when you check its webpage, the last update is in
 2011. Pharo website is built with Marina, but when I check the repo,
 the last commit was done by me and it was 2 month ago. Will Marina
 continue to evolve? And is anyone else using Marina?
 
 http://forum.world.st/Any-framework-to-create-a-blog-over-seaside-td4810615.html
 -- 
 Damien Cassou
 http://damiencassou.seasidehosting.st
 
 Success is the ability to go from one failure to another without
 losing enthusiasm. --Winston Churchill
 
 
 
 
 




Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Martin Bähr
Excerpts from Peter Uhnák's message of 2015-04-08 08:47:15 +0200:
  I thnk that rather than focus on the disk format which I hardly ever
  actually look at 

i think the disk format is crucial for interoperability with other tools, such
as github webinterface, or external editors to work on things like pictures or 
data.
(which is not yet supported (i have an idea how support could look like though))

i don't mind file-per-method though, it helps to make the diff-stat more
readable, showing which methods have been changed, added or removed...

 ... that folks should be looking at tools support (like
  Thierry) ... this is where the real work needs to happen ... good tools can
  hide the disk fomat completely so why does the disk format matter ...
 I am personally not really a fan of this; I've been using git for a while
 and I am perfectly content with using command line on the disk (maybe I'm
 rare breed); I have yet to see a GUI/tool that would come even close to the
 power of command line, but I've been using Linux for a long time.

except for displaying the history graph. can't beat gitk or other gui tools for 
that.
having a smalltalk version of that graph would really be great!

 As I've
 said to Thierry some time ago in different thread, I would be interested in
 idea of having everything on disk side and Pharo would only somehow refresh
 it's content (just like a Java IDE / text editor would). 

can't you already do that, except that you need to manually update the image by
loading/adopting the current state from the repo?

greetings, martin.

-- 
eKita   -   the online platform for your entire academic life
-- 
chief engineer   eKita.co
pike programmer  pike.lysator.liu.secaudium.net societyserver.org
secretary  beijinglug.org
mentor   fossasia.org
foresight developer  foresightlinux.orgrealss.com
unix sysadmin
Martin Bähr  working in chinahttp://societyserver.org/mbaehr/



Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Thierry Goubier
2015-04-08 8:47 GMT+02:00 Peter Uhnák i.uh...@gmail.com:

 I thnk that rather than focus on the disk format which I hardly ever
 actually look at ... that folks should be looking at tools support (like
 Thierry) ... this is where the real work needs to happen ... good tools can
 hide the disk fomat completely so why does the disk format matter ...

 I am personally not really a fan of this; I've been using git for a while
 and I am perfectly content with using command line on the disk (maybe I'm
 rare breed); I have yet to see a GUI/tool that would come even close to the
 power of command line, but I've been using Linux for a long time.


Agreed and this is in that spirit I did GitFileTree. Dale went a bit
further and even integrated the git command line access inside smalltalk
via CommandShell... so that you get the best of both worlds without leaving
your beloved Smalltalk :)


 As I've said to Thierry some time ago in different thread, I would be
 interested in idea of having everything on disk side and Pharo would only
 somehow refresh it's content (just like a Java IDE / text editor would).
 But that may be a lot o work so I can only dream about it, as nobody has
 time for that (me included).


Well, as I said elsewhere, Smalltalk doesn't work like that: code has to be
lived in the image for most tools to work properly... it doesn't really
have an editor of file mindset, but an object inspector mindset.

What we're looking at in another thread is how to emulate that live object
approach over dead files, and, thinking of it, I'm not sure we will succeed
well.

In short, what you want may never work properly because it is not how it
should be conceptualized.



 But to bottom line this thread (for me at least, because I'm getting lost):
 1. methodProperties.json provide compatibility for FileTree, so I don't
 want to get rid of it (for now)
 2. the large amount of file changes is probably a bug (I'll try to be more
 observant about the commits in the future and hopefully some pattern will
 emerge.)
 3. I shouldn't want to break things for now at least
 4. more people are starting to work on Git
 5. I need to learn about FileTree at some point if I want to contribute
 and experiment with (my) ideas (which won't be soon as I'm preparing for my
 finals)


Please ask around for 5. It is valuable to have to expose what we already
know.

Thierry



 Thanks for all your answers.

 Peter

 On Wed, Apr 8, 2015 at 7:24 AM, Thierry Goubier thierry.goub...@gmail.com
  wrote:

 Le 08/04/2015 02:05, Dale Henrichs a écrit :

 Peter,

 That looks like a bug in the FileTree writer ... wiht one method change
 there should have been only one method property file change ...


 Yes, I'd agree. This is surprising.

 Unless you had been loading that package via another repository / another
 version / another branch before in the same image?

 MCMethodDefinition has a cache which consider equals methods with
 different timestamps, and, in that case, it would carry the timestamps of
 the previous version, and writing those upon save instead of the originals.

  Peter and Sean,

 If you are interested in contributing code/bugfixes to FileTree, I will
 welcome pull requests ... As I have mentioned in several posts today, I
 do not have the time to fiddle with changes to the FileTree format
 myself, but I welcome contributions.

 Damien has started work on an updated version of the FileTree format[2].

 I have threatened in the past to add an option to a repository that
 would eliminate the need to store monticello meta data ... Damien is
 working on starting from scratch on the new format, because the
 current implementation supports 4-5 different FileTree formats. Damien's
 work could be leveraged to add an optional Monticello meta data option
 to FileTree and if your SCM (like git) gives you per method history with
 the proper tools you can leverage that information..


 I would say this could be a reasonable possibility, in that you could
 have two modes of compatibility:

 - Complete filetree compatibility for gitfiletree: the current situation,
 with properties and version written to disk.

 - Partial filetree compatibility, where that metadata isn't written and
 you rely on gitfiletree to recreate it to export as .mcz.

 Partial compatibility has two effects, which need to be considered. When
 using github:// or bitbucket:// urls, filetree will be used and your
 packages will end up having no version number (except .1?), no author, no
 timestamps for methods, etc... And the second one is that, if you clone a
 mcz inside the gitfiletree repository, the mcz ancestry of versions and
 author timestamps on methods will be lost, which is something you may not
 want.

 Thierry

  As I ranted in another post ... changing the disk format is the easy
 part ... building and maintaining tools for the 4-5 different Smalltalk
 dialects is a different matter ...

 Dale

 [1] https://github.com/dalehenrich/filetree/issues
 [2] 

Re: [Pharo-users] Eating your own dog food (Site/Blog)

2015-04-08 Thread Christophe Demarey
There is a plan to have pillar rendering with TextModel. I don't think it will 
support the full pillar syntax.

Le 8 avr. 2015 à 11:16, Norbert Hartl a écrit :

 What you are after? A static site generator or a dynamic engine? Btw. what do 
 you use to render pillar inside the image to something readable?
 
 Norbert
 
 Am 08.04.2015 um 08:32 schrieb stepharo steph...@free.fr:
 
 I started to work on using pillar to do that but nothing ready for people to 
 use.
 I will work on it at Lviv or during my vacations just after.
 I want to use it for my website. Right now parts of it are automatically 
 generated from Pharo.
 
 Stef
 
 Le 7/4/15 10:56, Yuriy Tymchuk a écrit :
 Oh, I knew that there was a discussion about that, but couldn’t find where.
 
 Still, is anybody else using Marina except for Pharo website?
 
 Uko
 
 
 
 On 07 Apr 2015, at 10:45, Damien Cassou damien.cas...@gmail.com wrote:
 
 
 Yuriy Tymchuk yuriy.tymc...@me.com writes:
 
 if I want to create a site/blog in pharo… What do I use? I know that
 there is Pier, but when you check its webpage, the last update is in
 2011. Pharo website is built with Marina, but when I check the repo,
 the last commit was done by me and it was 2 month ago. Will Marina
 continue to evolve? And is anyone else using Marina?
 
 http://forum.world.st/Any-framework-to-create-a-blog-over-seaside-td4810615.html
 -- 
 Damien Cassou
 http://damiencassou.seasidehosting.st
 
 Success is the ability to go from one failure to another without
 losing enthusiasm. --Winston Churchill
 
 
 
 
 
 
 



smime.p7s
Description: S/MIME cryptographic signature


Re: [Pharo-users] String operations

2015-04-08 Thread Norbert Hartl

 Am 07.04.2015 um 21:31 schrieb Peter Uhnák i.uh...@gmail.com:
 
 
 'BormParticipant' allButFirst: 4
 ('BormParticipant' splitOn: 'Borm') last
 Thank you both, this will work. :)
 
 In the Moose configuration, there is a CollectionExtensions that allows you 
 to do this:
 'BormParticipant' removePrefix: 'Borm' - 'Participant'.
 'BormParticipant' removeSuffix: 'Participant' - 'Borm'
 
 For Pharo 5, we should move these extensions to Pharo.
 
 Isn't it the case that a remove* methods mostly return what has been removed? 
 Wouldn't be
 
 withoutPrefix:
 withoutSuffix:
 I guess withoutPrefix: would probably makes more sense.
 
As well as

allButPrefix:
allButSuffix:

but to me the sound of them is weird.

Norbert



Re: [Pharo-users] GitHub Mirror Workflow

2015-04-08 Thread Sean P. DeNigris
EstebanLM wrote
 why would you want another format form mirroring?

For the case when one is only actually committing to e.g. StHub and then
mirroring to GitHub for external visibility, the purpose is not served when
a casual observer must drill down several levels to view each method
individually. One-class-per-file would be better in that case (where no
actual SCM is being done via Git). And if one was using Git, it would still
be handy - for the same reason - to have a read-only one-class-per file
handy for a quick perusal via GitHub



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/GitHub-Mirror-Workflow-tp4810339p4818401.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] GitHub Mirror Workflow

2015-04-08 Thread Thierry Goubier

Le 08/04/2015 17:16, Stephan Eggermont a écrit :

On 08/04/15 14:38, Esteban Lorenzano wrote:

I don’t know your problem… why would you want another format form
mirroring?


Because with packages the size of Roassal2 you might get rather unhappy
on a machine without an SSD. That is a lot of files.


Nothing compared to the time needed to load Roassal into the image on 
that very same machine ;)


Thierry



Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Dale Henrichs



On 04/07/2015 10:24 PM, Thierry Goubier wrote:

Le 08/04/2015 02:05, Dale Henrichs a écrit :
I have threatened in the past to add an option to a repository that
would eliminate the need to store monticello meta data ... Damien is
working on starting from scratch on the new format, because the
current implementation supports 4-5 different FileTree formats. Damien's
work could be leveraged to add an optional Monticello meta data option
to FileTree and if your SCM (like git) gives you per method history with
the proper tools you can leverage that information..

I would say this could be a reasonable possibility, in that you could 
have two modes of compatibility:


- Complete filetree compatibility for gitfiletree: the current 
situation, with properties and version written to disk.


- Partial filetree compatibility, where that metadata isn't written 
and you rely on gitfiletree to recreate it to export as .mcz.


Partial compatibility has two effects, which need to be considered. 
When using github:// or bitbucket:// urls, filetree will be used and 
your packages will end up having no version number (except .1?), no 
author, no timestamps for methods, etc... And the second one is that, 
if you clone a mcz inside the gitfiletree repository, the mcz ancestry 
of versions and author timestamps on methods will be lost, which is 
something you may not want.
Yes for Metacello some modifications would need to be made because in a 
normal mcz universe Metacello will not load a package if the version is 
older or the same as the one in the image ... and following in the 
tradition of other Monticello tools the UUID is ignored:( .. I was 
working with a pure cypress implementation and have written the 
Metacello code to support these repos ...


A better long term solution is to treat these as a CypressPackage or 
FileTreePackage which has some similarities to Monticello packages ... 
because faking out Monitcello version numbers and users is not much 
different than storing the metadata in FileTree ...


But someone were to add those options to filetree, I think we could 
reduce the overall number of hacks:)


Dale




Re: [Pharo-users] GitHub Mirror Workflow

2015-04-08 Thread Esteban Lorenzano
I don’t know your problem… why would you want another format form mirroring?

Esteban

 On 08 Apr 2015, at 14:07, Sean P. DeNigris s...@clipperadams.com wrote:
 
 Bump :)
 
 
 Sean P. DeNigris wrote
 for the Mirror on Github use case, I wonder if less granularity wouldn't
 clearly be more appropriate. I read about using chunk format (not ideal,
 but perhaps a bit more readable on the mirror) via Gitocello, but loading
 in Pharo 4.0 broke on the FFI dependency. Any thoughts/suggestions?
 
 
 
 
 
 -
 Cheers,
 Sean
 --
 View this message in context: 
 http://forum.world.st/GitHub-Mirror-Workflow-tp4810339p4818339.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
 




Re: [Pharo-users] ZnClient: getting more that 19 tweet for data scrapping

2015-04-08 Thread Paul DeBruicker
Offray - What Sven said is correct.  You're not getting an answer about how
to violate their Terms of Service because this isn't that kind of place. 
You've asked 3 times.  Once is usually enough.  Use the API. For the Soup
questions get an inspector on an instance of a SoupTag and start sending it
messages it understands and see what you get. Trial and error.  Or read the
python Soup docs as the commands probably have an equivalent in the
Smalltalk library.  Most of this programming stuff is reading, doing a
little experiment,  thinking, then trying again.  

Sven - I only showed him that SoupTag has a #text message. I'm sure you're
busy and had forgotten that the first time he/she asked they stated that
they don't want to use the api: 
http://forum.world.st/Data-scrapping-in-pharo-Extracting-tweets-contents-td4817746.html
and provided the download code in an ws.stfx.eu snippet.  

Hope this helps

Paul


Sven Van Caekenberghe-2 wrote
 What Paul showed is basically just a hack.
 
 What you probably what is full API access to Twitter, that gives you the
 real thing, but it is more work and you have to understand all the
 technical details (unless somebody already did it for you, I don't know -
 I know that Zinc-SSO can connect to Twitter).
 
 https://dev.twitter.com/overview/api
 
 On 07 Apr 2015, at 20:23, Offray Vladimir Luna Cárdenas lt;

 offray@

 gt; wrote:
 
 Hi,
 
 Recently Paul DeBruicker taught me how to refine my code for getting
 tweets properly. Consider this:
 
 =[1]
 | source anUrl tweet |
 
 anUrl := 'https://twitter.com/offrayLC'.
 source := Soup fromString: (ZnEasy get: anUrl ) contents asString.
 tweets := (source findAllTagsByClass: 'ProfileTweet-text') collect:[:ea |
 ea text].
 
 
 Is working fine, but I would like to get more that 19 tweets, that is
 what you get by default. There is any way to tell ZnEasy and friends to
 get more tweets, something similar to what you do when you scroll down
 into a twitter page?
 
 And by the way, I would like to make more sense of the Soup I got in the
 last line. ea text gives me the tweet contents, but how can I interpret
 the metadata in the soup? (is a retweet, date of publishing and so on). I
 could make this for most part of the twitter profile page, but the tweet
 is kind of elusive, for example how to know that text is the proper
 message for getting the tweet content? Any pointer to how to make sense
 of it by myself is greatly appreciated.
 
 Cheers,
 
 Offray






--
View this message in context: 
http://forum.world.st/ZnClient-getting-more-that-19-tweet-for-data-scrapping-tp4818162p4818361.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] Messaging solutions for Pharo

2015-04-08 Thread Bernat Romagosa
Hi Esteban,

did you finally choose MQTT? I'm in the beginning of a project right now
where we need to communicate with a bunch of devices and we've considered
MQTT, but we don't know whether to use some existing broker like mosquitto
or implement it in Pharo. Have you been down this path?

Thanks!
Bernat.

2014-11-24 11:55 GMT+01:00 Andres Fortier andres.fort...@gmail.com:

 Hi Stef,

 thanks! Glad to be doing things in Pharo :)

 On Sun, Nov 23, 2014 at 9:24 AM, stepharo steph...@free.fr wrote:

  Hello Andres

 nice to see you on this list :)

 Stef

 Le 19/11/14 19:40, Andres Fortier a écrit :

 Hi Esteban,
 Never used either of them, but IIRC there was a Jabber package in
 Visualworks (JabberXMPP?), although not sure if it provided both client and
 server. There is also
 http://www.squeaksource.com/@zQrCJXpxIQLxqde8/tV369AO0. Seems dated, but
 maybe worth a shot considering you only need the server side?

  HTH,
 Andrés

 On Wed, Nov 19, 2014 at 3:06 PM, Esteban A. Maringolo 
 emaring...@gmail.com wrote:

 Hi,

  I'll be needing to add bidirectional messaging to our current Android
 (Java) application, and as usual I'm expecting to manage the server side of
 the communication with Pharo.

  I'm evaluating two alternatives, but I'm in open to other, proven,
 options.

  Option 1. WebSockets
 Open a WebSocket on each device, and push/retrieve messages from each of
 these, tracking the device id if I need to recreate a new socket (avoiding
 recreating new sockets in case of connectivity issues, very common).

  Option 2. MQTT [1]
 This is basically a mobile oriented MQ, super low footprint on mobile.
 For what I saw, I could implement the server using an intermediate MQ
 (RabbitMQ) and use STOMP to connect to it.

  Option 3. XMPP [3]
 Provides several features I'll need in the future, like file transfer in
 addition to regular text messaging. It is very well supported in Android
 with Smack [4], but I don't know if we have a Pharo server for it, or if
 somebody ever played with it.

  By means of simplicity and use load I favor option 1, because I can
 understand it better, and as everything moves towards web based
 technologies, I could implement WAMP [5] on top of that in the future.

  Right now I'd need to have a hundred websockets opened at the same
 time, which doesn't sound like a heavy load to me, but I certainly don't
 know. In the future it could be an order of magnitude bigger, and that's
 why I don't discard more complex solutions like XMPP or MQTT.

  Regards!


  [1] http://mqtt.org/
 [2] https://github.com/svenvc/docs/blob/master/neo/stamp.md
 [3] http://xmpp.org/
 [4] http://www.igniterealtime.org/projects/smack/
 [5] http://wamp.ws/








-- 
Bernat Romagosa.


Re: [Pharo-users] GitHub Mirror Workflow

2015-04-08 Thread kilon alios
probably I kinda cheat, I use the smalltalkhub repo as nothing more than a
shell for my github repo. I commit to it only my configuration which in
turn loads the code from github . I have done this with Ephestos and Nireas
, the configuration browsers entries just load the baseline from my github
repos this way people who are not familiar with github can load my code
from sthub without installing git or learning git but will getting
automagically the latest code from my github repos.


Its a win win situation and beats having to maintain multiple repos of the
same project :) There is also no need to touch the configuration either so
all my work is focus just on the github repo. I recently updated to add
info to it for the package catalog.

On Wed, Apr 8, 2015 at 3:07 PM, Sean P. DeNigris s...@clipperadams.com
wrote:

 Bump :)


 Sean P. DeNigris wrote
  for the Mirror on Github use case, I wonder if less granularity
 wouldn't
  clearly be more appropriate. I read about using chunk format (not ideal,
  but perhaps a bit more readable on the mirror) via Gitocello, but loading
  in Pharo 4.0 broke on the FFI dependency. Any thoughts/suggestions?





 -
 Cheers,
 Sean
 --
 View this message in context:
 http://forum.world.st/GitHub-Mirror-Workflow-tp4810339p4818339.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




Re: [Pharo-users] ZnClient: getting more that 19 tweet for data scrapping

2015-04-08 Thread Sven Van Caekenberghe

 On 08 Apr 2015, at 15:29, Paul DeBruicker pdebr...@gmail.com wrote:
 
 Offray - What Sven said is correct.  You're not getting an answer about how
 to violate their Terms of Service because this isn't that kind of place. 
 You've asked 3 times.  Once is usually enough.  Use the API. For the Soup
 questions get an inspector on an instance of a SoupTag and start sending it
 messages it understands and see what you get. Trial and error.  Or read the
 python Soup docs as the commands probably have an equivalent in the
 Smalltalk library.  Most of this programming stuff is reading, doing a
 little experiment,  thinking, then trying again.  
 
 Sven - I only showed him that SoupTag has a #text message. I'm sure you're
 busy and had forgotten that the first time he/she asked they stated that
 they don't want to use the api: 
 http://forum.world.st/Data-scrapping-in-pharo-Extracting-tweets-contents-td4817746.html
 and provided the download code in an ws.stfx.eu snippet.  

Paul, I know you understand, we're on the same page. Sven

 Hope this helps
 
 Paul
 
 
 Sven Van Caekenberghe-2 wrote
 What Paul showed is basically just a hack.
 
 What you probably what is full API access to Twitter, that gives you the
 real thing, but it is more work and you have to understand all the
 technical details (unless somebody already did it for you, I don't know -
 I know that Zinc-SSO can connect to Twitter).
 
 https://dev.twitter.com/overview/api
 
 On 07 Apr 2015, at 20:23, Offray Vladimir Luna Cárdenas lt;
 
 offray@
 
 gt; wrote:
 
 Hi,
 
 Recently Paul DeBruicker taught me how to refine my code for getting
 tweets properly. Consider this:
 
 =[1]
 | source anUrl tweet |
 
 anUrl := 'https://twitter.com/offrayLC'.
 source := Soup fromString: (ZnEasy get: anUrl ) contents asString.
 tweets := (source findAllTagsByClass: 'ProfileTweet-text') collect:[:ea |
 ea text].
 
 
 Is working fine, but I would like to get more that 19 tweets, that is
 what you get by default. There is any way to tell ZnEasy and friends to
 get more tweets, something similar to what you do when you scroll down
 into a twitter page?
 
 And by the way, I would like to make more sense of the Soup I got in the
 last line. ea text gives me the tweet contents, but how can I interpret
 the metadata in the soup? (is a retweet, date of publishing and so on). I
 could make this for most part of the twitter profile page, but the tweet
 is kind of elusive, for example how to know that text is the proper
 message for getting the tweet content? Any pointer to how to make sense
 of it by myself is greatly appreciated.
 
 Cheers,
 
 Offray
 
 
 
 
 
 
 --
 View this message in context: 
 http://forum.world.st/ZnClient-getting-more-that-19-tweet-for-data-scrapping-tp4818162p4818361.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




Re: [Pharo-users] GitHub Mirror Workflow

2015-04-08 Thread Stephan Eggermont

On 08/04/15 14:38, Esteban Lorenzano wrote:

I don’t know your problem… why would you want another format form mirroring?


Because with packages the size of Roassal2 you might get rather unhappy 
on a machine without an SSD. That is a lot of files.


Stephan





Re: [Pharo-users] Messaging solutions for Pharo

2015-04-08 Thread Esteban A. Maringolo
Hi Bernat,

I did some with MQTT in Java/Android and JavaScript with Paho, but
never used it with Pharo nor in any of our products.

Regards!
Esteban A. Maringolo


2015-04-08 10:55 GMT-03:00 Bernat Romagosa tibabenfortlapala...@gmail.com:
 Hi Esteban,

 did you finally choose MQTT? I'm in the beginning of a project right now
 where we need to communicate with a bunch of devices and we've considered
 MQTT, but we don't know whether to use some existing broker like mosquitto
 or implement it in Pharo. Have you been down this path?

 Thanks!
 Bernat.

 2014-11-24 11:55 GMT+01:00 Andres Fortier andres.fort...@gmail.com:

 Hi Stef,

 thanks! Glad to be doing things in Pharo :)

 On Sun, Nov 23, 2014 at 9:24 AM, stepharo steph...@free.fr wrote:

 Hello Andres

 nice to see you on this list :)

 Stef

 Le 19/11/14 19:40, Andres Fortier a écrit :

 Hi Esteban,
 Never used either of them, but IIRC there was a Jabber package in
 Visualworks (JabberXMPP?), although not sure if it provided both client and
 server. There is also
 http://www.squeaksource.com/@zQrCJXpxIQLxqde8/tV369AO0. Seems dated, but
 maybe worth a shot considering you only need the server side?

 HTH,
 Andrés

 On Wed, Nov 19, 2014 at 3:06 PM, Esteban A. Maringolo
 emaring...@gmail.com wrote:

 Hi,

 I'll be needing to add bidirectional messaging to our current Android
 (Java) application, and as usual I'm expecting to manage the server side of
 the communication with Pharo.

 I'm evaluating two alternatives, but I'm in open to other, proven,
 options.

 Option 1. WebSockets
 Open a WebSocket on each device, and push/retrieve messages from each of
 these, tracking the device id if I need to recreate a new socket (avoiding
 recreating new sockets in case of connectivity issues, very common).

 Option 2. MQTT [1]
 This is basically a mobile oriented MQ, super low footprint on mobile.
 For what I saw, I could implement the server using an intermediate MQ
 (RabbitMQ) and use STOMP to connect to it.

 Option 3. XMPP [3]
 Provides several features I'll need in the future, like file transfer in
 addition to regular text messaging. It is very well supported in Android
 with Smack [4], but I don't know if we have a Pharo server for it, or if
 somebody ever played with it.

 By means of simplicity and use load I favor option 1, because I can
 understand it better, and as everything moves towards web based
 technologies, I could implement WAMP [5] on top of that in the future.

 Right now I'd need to have a hundred websockets opened at the same time,
 which doesn't sound like a heavy load to me, but I certainly don't know. In
 the future it could be an order of magnitude bigger, and that's why I don't
 discard more complex solutions like XMPP or MQTT.

 Regards!


 [1] http://mqtt.org/
 [2] https://github.com/svenvc/docs/blob/master/neo/stamp.md
 [3] http://xmpp.org/
 [4] http://www.igniterealtime.org/projects/smack/
 [5] http://wamp.ws/








 --
 Bernat Romagosa.



Re: [Pharo-users] class variable accessor naming

2015-04-08 Thread Jan B.
True, I already found few examples of accessors to class variables, but I
like to be sure when I use it for the first time. Thank you.

Jan


Christian Caldeiro wrote
 Class variables should be written with Uppercase (but there are some
 classes in Pharo that don't follow this convention). Class methods
 (accessors in this case) are written in lowercase. Again, you can find
 several samples in Pharo.
 
 Thanks
 Christian
 
 On Tue, Apr 7, 2015 at 1:54 PM, Jan B. lt;

 bliznjan@.cvut

 gt; wrote:
 
 Hello

 Class variable names should start with capital letter (as I just found
 out),
 like RecentProjects. We have a getter to it. Should such accessor method
 be
 named recentProjects or RecentProjects?

 ... class#(r/R)ecentProjects
  ^ RecentProjects

 Jan



 --
 View this message in context:
 http://forum.world.st/class-variable-accessor-naming-tp4818137.html
 Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.







--
View this message in context: 
http://forum.world.st/class-variable-accessor-naming-tp4818137p4818431.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] ZnClient: getting more that 19 tweet for data scrapping

2015-04-08 Thread Offray Vladimir Luna Cárdenas

Hi Paul and Sven,

I will try Twitter API if is necessary, but I'm not trying to get 
support here on how to violate Twitter ToS. I'm pretty aware of them, 
but surely there are exceptions. The mail I shared with you (the one 
Paul point to) about why I would like to not use API but instead use 
scrapping doesn't go in details, it just said that it was because people 
who have not a twitter account or signed the ToS should be able to get 
some twitter info. That special kind of info is the one regarding public 
political/politicians discourse and my idea to scrap  *public* and 
*specific* data from twitter happens in the context of a project for 
citizen oversight of political issues empowered by ICT. The project is 
discussed on detail here:


https://www.newschallenge.org/challenge/elections/entries/datapolis-data-narratives-visualizations-for-citizen-oversight-of-politicians-discourses-and-public-contracts-in-social-media-and-the-web

So, for the moment, I will get properly account permissions for getting 
twitter data, but my conviction for the long term is that public 
political discourse (among others), even the one that circulates on 
private networks like Twitter or Facebook, should be under 
Constitutional Terms (like free speech and wide political participation) 
and not under the restricted ones of Twitter or Facebook.


This is a sensible issue and surely needs more talk, may be on another 
time, but I will follow your advice and extract data from Twitter API 
and come here with questions about it.


Thanks for all your help and support,

Offray

El 08/04/15 a las 08:29, Paul DeBruicker escribió:

Offray - What Sven said is correct.  You're not getting an answer about how
to violate their Terms of Service because this isn't that kind of place.
You've asked 3 times.  Once is usually enough.  Use the API. For the Soup
questions get an inspector on an instance of a SoupTag and start sending it
messages it understands and see what you get. Trial and error.  Or read the
python Soup docs as the commands probably have an equivalent in the
Smalltalk library.  Most of this programming stuff is reading, doing a
little experiment,  thinking, then trying again.

Sven - I only showed him that SoupTag has a #text message. I'm sure you're
busy and had forgotten that the first time he/she asked they stated that
they don't want to use the api:
http://forum.world.st/Data-scrapping-in-pharo-Extracting-tweets-contents-td4817746.html
and provided the download code in an ws.stfx.eu snippet.

Hope this helps

Paul


Sven Van Caekenberghe-2 wrote

What Paul showed is basically just a hack.

What you probably what is full API access to Twitter, that gives you the
real thing, but it is more work and you have to understand all the
technical details (unless somebody already did it for you, I don't know -
I know that Zinc-SSO can connect to Twitter).

https://dev.twitter.com/overview/api


On 07 Apr 2015, at 20:23, Offray Vladimir Luna Cárdenas lt;



offray@



gt; wrote:


Hi,

Recently Paul DeBruicker taught me how to refine my code for getting
tweets properly. Consider this:

=[1]
| source anUrl tweet |

anUrl := 'https://twitter.com/offrayLC'.
source := Soup fromString: (ZnEasy get: anUrl ) contents asString.
tweets := (source findAllTagsByClass: 'ProfileTweet-text') collect:[:ea |
ea text].


Is working fine, but I would like to get more that 19 tweets, that is
what you get by default. There is any way to tell ZnEasy and friends to
get more tweets, something similar to what you do when you scroll down
into a twitter page?

And by the way, I would like to make more sense of the Soup I got in the
last line. ea text gives me the tweet contents, but how can I interpret
the metadata in the soup? (is a retweet, date of publishing and so on). I
could make this for most part of the twitter profile page, but the tweet
is kind of elusive, for example how to know that text is the proper
message for getting the tweet content? Any pointer to how to make sense
of it by myself is greatly appreciated.

Cheers,

Offray







--
View this message in context: 
http://forum.world.st/ZnClient-getting-more-that-19-tweet-for-data-scrapping-tp4818162p4818361.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.







Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Thierry Goubier

Hi Dale,

Le 08/04/2015 19:30, Dale Henrichs a écrit :



On 04/07/2015 10:24 PM, Thierry Goubier wrote:

Le 08/04/2015 02:05, Dale Henrichs a écrit :
I have threatened in the past to add an option to a repository that
would eliminate the need to store monticello meta data ... Damien is
working on starting from scratch on the new format, because the
current implementation supports 4-5 different FileTree formats. Damien's
work could be leveraged to add an optional Monticello meta data option
to FileTree and if your SCM (like git) gives you per method history with
the proper tools you can leverage that information..

I would say this could be a reasonable possibility, in that you could
have two modes of compatibility:

- Complete filetree compatibility for gitfiletree: the current
situation, with properties and version written to disk.

- Partial filetree compatibility, where that metadata isn't written
and you rely on gitfiletree to recreate it to export as .mcz.

Partial compatibility has two effects, which need to be considered.
When using github:// or bitbucket:// urls, filetree will be used and
your packages will end up having no version number (except .1?), no
author, no timestamps for methods, etc... And the second one is that,
if you clone a mcz inside the gitfiletree repository, the mcz ancestry
of versions and author timestamps on methods will be lost, which is
something you may not want.

Yes for Metacello some modifications would need to be made because in a
normal mcz universe Metacello will not load a package if the version is
older or the same as the one in the image ... and following in the
tradition of other Monticello tools the UUID is ignored:( .. I was
working with a pure cypress implementation and have written the
Metacello code to support these repos ...


Ok.

Yes, the version number handling is delicate; even the one used by 
gitfiletree feels unsatisfying, even if it allows Metacello/Monticello 
to work as usual.



A better long term solution is to treat these as a CypressPackage or
FileTreePackage which has some similarities to Monticello packages ...
because faking out Monitcello version numbers and users is not much
different than storing the metadata in FileTree ...


Not sure I understand. I know where the Cypress/FileTree code handles 
the lack of metadata when reading, that's all :)



But someone were to add those options to filetree, I think we could
reduce the overall number of hacks:)


Another solution I'd see possible is a reduced metadata format, where 
just the version number of the current package is stored and retrieved 
(i.e. a version file without ancestry).


It would allow FileTree and Metacello to work exactly as usual.

And, maybe, I could even unify the UUIDs?

There are things in Monticello which needs a rethink to better adapt to 
SCMs like git (or Fossil: it's so similar to git :) ) while keeping more 
or less the same appearance: branches, hashes, tags and semantic 
versionning.


But I don't see yet how to handle that or to propose anything.

I know that it would be great to reduce the cognitive distance between 
MC version and history handling, and the same as seen from Metacello 
baselines and configurations. Branches + baselines are doing a lot to 
simplify, but MC stuff is unaware of that. And MC should delegate 
merging to the underlying repository, as well.


Thierry



Re: [Pharo-users] Metacello GIT methodProperties.json

2015-04-08 Thread Dale Henrichs



On 04/07/2015 11:47 PM, Peter Uhnák wrote:


I thnk that rather than focus on the disk format which I hardly
ever actually look at ... that folks should be looking at tools
support (like Thierry) ... this is where the real work needs to
happen ... good tools can hide the disk fomat completely so why
does the disk format matter ...

I am personally not really a fan of this; I've been using git for a 
while and I am perfectly content with using command line on the disk 
(maybe I'm rare breed); I have yet to see a GUI/tool that would come 
even close to the power of command line, but I've been using Linux for 
a long time.
I understand and that is a tension point for FileTree ... the source 
_is_ on disk and you do use the GitHub tools (or any other git tools 
independent of those in Smalltalk) that give you a picture of everything 
that changed including the ugly meta data ...


I flip around and use vi at times to edit a method and of course the 
github tools for pull requests. But then I use the tODE tools for 
working with git as well ... but as you recognize, the monticello meta 
data is there for compatibility and righ now at least compatibility is a 
good thing ...


As I've said to Thierry some time ago in different thread, I would be 
interested in idea of having everything on disk side and Pharo would 
only somehow refresh it's content (just like a Java IDE / text editor 
would). But that may be a lot o work so I can only dream about it, as 
nobody has time for that (me included).


But to bottom line this thread (for me at least, because I'm getting 
lost):
1. methodProperties.json provide compatibility for FileTree, so I 
don't want to get rid of it (for now)
2. the large amount of file changes is probably a bug (I'll try to be 
more observant about the commits in the future and hopefully some 
pattern will emerge.)

3. I shouldn't want to break things for now at least
4. more people are starting to work on Git
5. I need to learn about FileTree at some point if I want to 
contribute and experiment with (my) ideas (which won't be soon as I'm 
preparing for my finals)



All very good points

Dale