Re: [Pharo-dev] Killing respondsTo:

2013-05-14 Thread Tudor Girba
+1

Doru


On May 14, 2013, at 10:27 PM, stephane ducasse stephane.duca...@free.fr wrote:

 why do we want to introduce a bad slow type system on certain single place?
 Why a UI element would have to check that a given instance can do something 
 while we never ever do it in any other places. 
 
 if we have a button and its label should be able to answer the message enabled
 then we display the button and send the message enabled.
 If it crashes then this is the programmer' fault. He should provide an object 
 that responds
 to enabled but we do not test it.
 
 And we should have nice polymorphic objects and not string and nil and color 
 why not array with hexa decimal colors?
 
 Being reasonable programmers and not kids wanted to plug anything anyhow 
 is the way to build nice system (and polymorphic objects).
 
 Stef
 
 On 14 May 2013 16:21, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 Hi
 
 I'm in favor killing all the respondsTo:
 
 acceptTextMorphs
   Accept any text morphs except for those that have no edits.
 
   self allMorphs do: [:p |
   ((p respondsTo: #accept) and: [
   (p respondsTo: #hasUnacceptedEdits) and: [
   p hasUnacceptedEdits]]) ifTrue: [p accept]]
 
 They're a step up from #isKindOf:. It looks like you need is something
 that says does this object respond to a particular set of messages
 (i.e., a Protocol)?. (No, Nicolas, I don't mean a message category!
 :) )
 
 But in this particular case the solution looks like making a
 #insertADecentNameHere that particular classes of things can implement
 as ^ self hasUnacceptedEdits ifTrue: [self accept]
 
 frank
 
 
 

--
www.tudorgirba.com

Things happen when they happen,
not when you talk about them happening.




Re: [Pharo-dev] TxText new version 0.8

2013-05-23 Thread Tudor Girba
Yes, I think this is good at this point.

When the mapping will disappear, things will become simpler.

Doru


On Thu, May 23, 2013 at 8:11 AM, Denis Kudriashov dionisi...@gmail.comwrote:

 2013/5/22 Tudor Girba tu...@tudorgirba.com

 So, the pattern I know of is to put the Tests as a discriminator before
 the variable part of your code. So, something like:
 - BaseName-Core
 - BaseName-Tests-Core


 It is exactly my pattern but with dash before Tests word:
 -TxText-Model
 -TxTextTests-Model




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] TxText new version 0.8

2013-05-23 Thread Tudor Girba
Not even for Moose it makes sense to deploy without tests :)

Doru


On Thu, May 23, 2013 at 9:18 AM, Camillo Bruni camillobr...@gmail.comwrote:

 
  technically yes, but you do not need many things to run the code:
  - class comments
  - method comments
  - any documentation in general
 
 
  And I don't have it at production because I don't have changes file here.
 
 
  yet you load them. so I wonder if it makes sense to even load tests
  separately?
 
 
  It make sense when you try to reduce production image size. And loading
  only required packages (without tests) works well. Why change it?

 I know that this scheme is in use, but why? why do I have to reduce the
 size
 of a production image? from how many to many megabytes? It might make sense
 for moose, but none of the other projects. Do you really care if the image
 is
 35 instead of 25MB? To me this argument sounds invalid :/





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Ann] New TxText version 1.0

2013-05-26 Thread Tudor Girba
I tried to load it, but could not because in the sig repository, the latest 
version of the configuration is still 0.6.

Cheers,
Doru


On May 26, 2013, at 11:09 PM, Denis Kudriashov dionisi...@gmail.com wrote:

 Hello.
 
 I finish edit validation logic. So new version 1.0 is available:
 
 Gofer it
 url: 'http://www.smalltalkhub.com/#!/~sig/TxText';
 package: 'ConfigurationOfTxText';
 load.
 
 ((Smalltalk at: #ConfigurationOfTxText) project version: '1.0') load:
 #('ALL').
 
 TxEditValidator is introduced for TxEditor. It validates changes performed by 
 given block.
 It asks editor to try changes from this block. And if changed text satisfied 
 text spec validator executes given block to apply changes.
 
 Few text specs implemented:
 -TxAnyTextSpec
 -TxDigitalTextSpec
 -TxDecimalTextSpec
 
 More example of text specs are at TxTextMorph class side:
 - mask with digits only
 - smart numbers which accept only decimal numbers:
 
 m := TxTextMorph new.
 m editDecorator: TxSingleLineEditDecorator smartNumbers.
 m textSpec: (TxDecimalTextSpec maxDecimalDigits: 3).
 m newTextContents: '1000'.
 m addCursor.
 m beEditable.
 m openInHand
 
 Best regards.
 Denis.
 
 

--
www.tudorgirba.com

Problem solving efficiency grows with the abstractness level of problem 
understanding.






Re: [Pharo-dev] [Ann] New TxText version 1.0

2013-05-27 Thread Tudor Girba
Hi,

I found the issue: the url from the Gofer script was wrong :).

Here is the correct one:
Gofer it
url: 'http://www.smalltalkhub.com/mc/sig/TxText/main';
package: 'ConfigurationOfTxText';
load.

((Smalltalk at: #ConfigurationOfTxText) project version: '1.0') load:
#('ALL').

Cheers,
Doru



On May 27, 2013, at 6:44 AM, Denis Kudriashov dionisi...@gmail.com wrote:

 2013/5/27 Tudor Girba tu...@tudorgirba.com
 I tried to load it, but could not because in the sig repository, the latest 
 version of the configuration is still 0.6.
 
 
 It works for me. I use Pharo 2.0 on Windows 7.
 And you can see by webbrowser all versions exist at smalltalkhub repository 
 http://www.smalltalkhub.com/#!/~sig/TxText
  
 Cheers,
 Doru
 
 
 On May 26, 2013, at 11:09 PM, Denis Kudriashov dionisi...@gmail.com wrote:
 
  Hello.
 
  I finish edit validation logic. So new version 1.0 is available:
 
  Gofer it
  url: 'http://www.smalltalkhub.com/#!/~sig/TxText';
  package: 'ConfigurationOfTxText';
  load.
 
  ((Smalltalk at: #ConfigurationOfTxText) project version: '1.0') load:
  #('ALL').
 
  TxEditValidator is introduced for TxEditor. It validates changes performed 
  by given block.
  It asks editor to try changes from this block. And if changed text 
  satisfied text spec validator executes given block to apply changes.
 
  Few text specs implemented:
  -TxAnyTextSpec
  -TxDigitalTextSpec
  -TxDecimalTextSpec
 
  More example of text specs are at TxTextMorph class side:
  - mask with digits only
  - smart numbers which accept only decimal numbers:
 
  m := TxTextMorph new.
  m editDecorator: TxSingleLineEditDecorator smartNumbers.
  m textSpec: (TxDecimalTextSpec maxDecimalDigits: 3).
  m newTextContents: '1000'.
  m addCursor.
  m beEditable.
  m openInHand
 
  Best regards.
  Denis.
 
 
 
 --
 www.tudorgirba.com
 
 Problem solving efficiency grows with the abstractness level of problem 
 understanding.
 
 
 
 
 

--
www.tudorgirba.com

Quality cannot be an afterthought.




Re: [Pharo-dev] Reflectivity beta

2013-05-31 Thread Tudor Girba
Indeed, this would be fantastic :)

Doru


On Fri, May 31, 2013 at 9:45 AM, Camille Teruel camille.ter...@gmail.comwrote:


 On 31 mai 2013, at 09:03, Norbert Hartl wrote:

 Sounds great! What happens if a method is recompiled. All metalinks are
 gone then?


 Yes indeed. If you have the method:
 foo
 self bar
 with a metalink on the message node and you recompile it to:
 foo
 self
 qux;
 bar;
 bar.

 then it is hard to tell which node(s) should adopt the metalink because
 there is no way to tell which #bar message of the second version is the one
 from the first version.
 I would love to have an editor where you manipulates ast nodes directly.
 With such an editor the developer would have feedback of where the
 metalinks are.
 In the underlying model, AST nodes would have an equivalence relation to
 say whether two nodes are different versions the same or not.
 This model could also be really useful for versioning and diff too.


 Norbert

 Am 30.05.2013 um 18:15 schrieb Camille Teruel camille.ter...@gmail.com:

 Hello everyone,

 Reflectivity beta is out !

 Reflectivity is a tool that permit to annotate AST nodes with metalinks.
 You can put metalinks at different positions:

- before: the metalink is executed before the node
- instead: the metalink is executed instead the node
- after: the metalink is executed after the node
- onError: the metalink is executed only if the execution of the node
raises an error
- onSuccess: the metalink is executed only if the execution of the
node raises no error


 When you put metalinks on some node of a method's AST, a wrapper is
 installed in place of the method. When executed, this wrapper compiles an
 expanded version of the AST that takes metalinks into account and install
 the resulting compiled method.

 Examples:

 increaseAllNumbersIn: aCompiledMethod
 A method that increases all numbers in aCompiledMethod
 aCompiledMethod reflectiveAST
 forAllNodes: [ :node | node isLiteral and: [ node value isNumber ] ]
 putInstead: [ :node | RFMetalink fromExpression: (node value + 1) asString
 ].

 removeMetalinksIn: aCompiledMethod
 aCompiledMethod reflectiveAST removeAllMetalinks

 In nautilus, you have a menu entry called 'Edit metalinks' that permit to
 edit the metalinks of the node corresponding to the selected piece of code.
 As an example use case, another entry called 'Put breakpoint' adds a
 metalink that corresponds to 'Halt now' before the selected node.

 Remember that it is a beta, so you might find errors and things are likely
 to change.

 You can load Reflectivity with:

 Gofer it
 smalltalkhubUser: 'RMoD' project: 'Reflectivity';
 configuration;
 loadDevelopment

 Or you can download it from RMoD's CI:
 https://ci.inria.fr/rmod/job/Reflectivity/

 Camille





-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] using fogbugz for other projects (like moose)

2013-05-31 Thread Tudor Girba
Hi,

Would it be possible and desired, to open the Pharo fogbugz infrastructure
for other related projects?

Namely, I am thinking of Moose, in particular given that various issues are
directly relevant for Pharo as well? For projects like Moose, this would
imply less costs. The question is if something in this direction is even
desired.

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Lowecase class names

2013-06-01 Thread Tudor Girba
+1

Doru


On May 31, 2013, at 3:47 PM, Marcus Denker marcus.den...@inria.fr wrote:

 
 On May 31, 2013, at 1:32 PM, Jan Vrany jan.vr...@fit.cvut.cz wrote:
 
 Hi
 
 is there any reason why class builder does not allow lowercase
 classnames? Underscore is allowed, though.
 
 
 In the past people started too add check to make sure that we only use
 the naming that people are supposed to use.
 The place these checks where placed was the class builder. Over time
 it has shown that this is not good: it has do be done on a higher level.
 
 (we already removed certain checks, e.g. about variable capitalization).
 
 We should at some point introduce something that does these kinds of checks
 for the tools, but allows one to just do anything when needed at the lower 
 level…
 
   Marcus
 
 

--
www.tudorgirba.com

It's not what we do that matters most, it's how we do it.




Re: [Pharo-dev] Rubric screencast

2013-06-01 Thread Tudor Girba
Good job, Alain!

Here is the script for people that want to try it out (I tried it and it works 
in Pharo 2.0):

Gofer new
url: 'http://www.smalltalkhub.com/mc/AlainPlantec/Rubric/main';
package: 'Rubric';
load.

Doru

On Jun 1, 2013, at 5:38 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 alex there is only one package on smalltalkhub/alainplantec
 
 
 
 On Jun 1, 2013, at 2:40 PM, Alexandre Bergel alexandre.ber...@me.com wrote:
 
 Any script to load Rubric?
 
 Alexandre
 
 On 1 Jun 2013, at 02:13, plantec alain.plan...@yahoo.com wrote:
 
 
 On 1 juin 2013, at 01:48, Igor Stasenko siguc...@gmail.com wrote:
 
 On 1 June 2013 01:25, Alexandre Bergel alexandre.ber...@me.com wrote:
 Hi Alain!
 
 Impressive!
 
 Very. But only feature-wise.
 Speed-wise is not. Is it related to recording?
 
 yes, my computer is slow and the screen recording make it inresponsive
 
 hoping that live version faster.
 
 just try it :)
 
 But I think there is a lot of place for improvement:
 A selection is a PolygonMorph. Maybe a dedicated version should be done.
 
 Cheers
 Alain
 
 
 
 
 -- 
 Best regards,
 Igor Stasenko.
 
 
 
 
 

--
www.tudorgirba.com

Problem solving should be focused on describing
the problem in a way that makes the solution obvious.







Re: [Pharo-dev] about Announcement weak on: do:

2013-06-02 Thread Tudor Girba
Indeed, the main reason why announcers were not made weak by default was that 
the weak code only worked for message sends but not for blocks. It would be 
great to have the blocks working, too.

Doru


On Jun 2, 2013, at 2:13 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Hi igor
 
 after our discussions about the fact that we should not use weak with block, 
 I checked and 
 
 WeakSubscriptionBuilderon: anAnnouncementClass do: aValuable
   ^ self subscribe: anAnnouncementClass do: aValuable
 
 Does not look like raising error.
 
 Stef
 
 

--
www.tudorgirba.com

Presenting is storytelling.




[Pharo-dev] get.moosetechnology.org

2013-06-03 Thread Tudor Girba
Hi,

Andrei joined Camillo and extended a bit the ZeroConf infrastructure to make it 
easy for other projects to generate install scripts.

As a consequence, we now have:
http://get.moosetechnology.org

The Moose-specific customization code can be found in the 
Moose-Development-Tools package from:
http://www.smalltalkhub.com/mc/Moose/Moose/main

The scripts are generated via the Pharo command line like:
Pharo/pharo-ui moose-latest-dev-4.8.image moosezeroconf

Cheers,
Doru


--
www.tudorgirba.com

No matter how many recipes we know, we still value a chef.









Re: [Pharo-dev] MetacelloRepository

2013-06-04 Thread Tudor Girba
Which is a good thing :)

Thanks,
Doru


On Tue, Jun 4, 2013 at 9:28 AM, Stéphane Ducasse
stephane.duca...@inria.frwrote:


 On Jun 4, 2013, at 7:18 AM, Hilaire Fernandes hilaire.fernan...@gmail.com
 wrote:

  Stephane,
 
  The lack for me was the configurationOfXML with the XML-Parser version I
  use (#20, a bit old).
  As this is problably limited to my sistuation I recreate a
  configurationOfXML in my own repo.
 
  Btw, I use XML-Parser for both read and write of XML file.
  Was XML-support splited in two packages recently?

 yes
 Normally when loading the parser you would get the writer but damien cut
 it apart.

 Stef

 
  Thanks
 
  Hilaire
 
  Le 03/06/2013 22:08, Stéphane Ducasse a écrit :
  Hilaire
 
  Normally this is XMLParser. I extracted just the XML parser and not all
 the tools.
  Now if you want to write you have XMLWriter.
 
  Let us know if it works.
 
  Stef
 
  On Jun 3, 2013, at 10:17 AM, Hilaire Fernandes 
 hilaire.fernan...@gmail.com wrote:
 
  Hello,
 
  To build DrGeo I use the squeaksource MetacelloRepository (example
 bellow).
  I can not find it in SmalltalkHub?
  I can see in PahroExtra/XMLParser ConfigurationOfXMLParser, is it the
  same as ConfigurationOfXMLSupport. Can I find equivalent of
  ConfigurationOfXMLSupport matching the exact same XML source version?
  Unhelpful, I did not find how to browse the source form Smalltalkhub to
  explore online the ConfigurationOf... code.
 
  Thanks
 
  Hilaire
 
 
  baseline1012: spec
version: '10.12-baseline'
spec for: #pharo do: [
spec blessing: #baseline.
spec project: 'XML Parser' with: [
spec className: 'ConfigurationOfXMLSupport';
version: '1.0.1';
loads: #('default');
file: 'ConfigurationOfXMLSupport';
repository: '
 http://www.squeaksource.com/MetacelloRepository'].
spec package: 'DrGeoII-Core' with: [
spec requires: 'XML Parser']]
 
  --
  Dr. Geo - http://drgeo.eu
 
 
 
 
 
  --
  Dr. Geo - http://drgeo.eu
 
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Screencast]: Pharo Smalltalk's New TxText: The Power of Clean Code

2013-06-06 Thread Tudor Girba
This is elegant :)

Doru


On Thu, Jun 6, 2013 at 9:21 PM, Stéphane Ducasse
stephane.duca...@inria.frwrote:

 So cool :)


  something like that ? :)
 
  smalltalkCodeWithStabilo
self smalltalkCodeWithStabilo
| area seg code |
area := RubEditingArea new
beWrapped;
width: 400;
updateTextWith: (code := self someSmallSmalltalkCode).
area addSegment: (seg := RubPlainSegmentMorph inTextArea: area
 from: 3 to: code size).
seg color: (Color yellow).
seg borderColor: (Color orange alpha: 0.5).
seg beSmoothCurve.
area openInWorld
 
  Alain
 
  stabilo-selection.png





-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] taking a custom screenshot of a submorph

2013-06-06 Thread Tudor Girba
Hi,

Just in case you want to take a screenshot of a submorph, here is a
description + video of how you can do it using the GTInspector:

http://www.humane-assessment.com/blog/custom-morph-screenshot-with-gtinspector


Cheers,
Doru


-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Modification on CollectionsExtensions

2013-06-14 Thread Tudor Girba
Moose is running (smoothly :)) on Pharo 2.0 since several months now. The idea 
is to merge the efforts to have more people working on top of the latest Pharo. 
There are two reasons for it:
- first, we are too small of a community to split our efforts
- second, often the Moose projects are directly relevant for Pharo and the 
other way around

Cheers,
Doru

--
www.tudorgirba.com

Every thing has its own flow.

On 13.06.2013, at 23:24, Sean P. DeNigris s...@clipperadams.com wrote:

 Tudor Girba-2 wrote
 We will release Moose at the end of this month and we will move to Pharo
 3.0
 
 I'm impressed! Did you move Moose to Pharo 2.0 before it was released? I
 have been hesitant to move my projects to the alpha/beta versions because we
 are making so much progress (i.e. breaking things, lol)...
 
 
 
 -
 Cheers,
 Sean
 --
 View this message in context: 
 http://forum.world.st/Pharo-dev-Modification-on-CollectionsExtensions-tp4692784p4693234.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
 



Re: [Pharo-dev] Tabs

2013-06-20 Thread Tudor Girba
Great job, Ben.

Doru


On Sun, Jun 9, 2013 at 9:03 PM, Benjamin 
benjamin.vanryseghem.ph...@gmail.com wrote:

 hello guys :)

 I would like to introduce a new implementation of tabs with the following
 features (for now):
 - tabs with icon (and a label of course)
 - un-closable tabs
 - threaded contents loading (with animated icon)
 - shortcuts handling (to navigate from one tab to the next/previous one,
 to close a tab)
 - multi-selection (will display all the selected contents with splitter in
 between)
 - actions (each tab can define actions displayed in the tab bar) - Thanks
 Tudor for the idea
 - menu items - Thanks Tudor for the idea

 Here is a little (geeky) video showing a bit of everything:
 https://dl.dropboxusercontent.com/u/24369478/Tabs.m4v

 The code can be loaded executing this:

 Gofer it
 url: 'http://smalltalkhub.com/mc/BenjaminVanRyseghem/Tabs/main';
 package: 'ConfigurationOfTabs';
  load.

 ConfigurationOfTabs loadDefault.
 TabExample open

 Next steps:
 - drag and drop (for rearranging tabs)
 - Spec support (almost finished)


 Ben




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] taking a custom screenshot of a submorph

2013-06-20 Thread Tudor Girba
One could, but it is not the same.

The inspector offers a quick visual interface that allows you to browse a
complex morph hierarchy. Taking the screenshot is secondary, but when
combined with the visual feedback it gets more interesting.

Cheers,
Doru



On Sun, Jun 9, 2013 at 7:21 PM, Benjamin 
benjamin.vanryseghem.ph...@gmail.com wrote:

 One could use the halo, seems faster to me

 Ben

 On Jun 6, 2013, at 11:04 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi,

 Just in case you want to take a screenshot of a submorph, here is a
 description + video of how you can do it using the GTInspector:


 http://www.humane-assessment.com/blog/custom-morph-screenshot-with-gtinspector


 Cheers,
 Doru


 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Modification on CollectionsExtensions

2013-06-21 Thread Tudor Girba
Thanks again.

I committed the change you proposed. So, now we have flatCollect: using
writeStream.

Cheers,
Doru


On Tue, Jun 11, 2013 at 3:18 PM, Sebastian Tleye stl...@gmail.com wrote:

 Hello,

 Fixing some bugs in Traits we realized that it would be good idea to use
 CollectionsExtensions package (it has some useful functions), also it would
 be great to include CollectionsExtensions in Pharo 3.0.

 One problem we found is that CollectionsExtensions is depending on a
 Nile Package (that's not a desired feature).
 In the method CollectionflatCollect: there is a line refering to a nile
 function nsWriteStream.

 If i change nsWriteStream for writeStream the dependency disapears.

 I also run all the tests and they are working, so i was wondering if it
 would be possible to commit the change.

 Thanks.




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Tabs

2013-06-21 Thread Tudor Girba
As far as I saw, the Tabs are not going through the theme to decide the
look and feel.

Could we work on this? Perhaps we can take the opportunity to try a new
oo-design for the theme code: I proposed to have a theme strategy per morph
and have the theme be a conglomerate of these strategies.

Cheers,
Doru


On Fri, Jun 21, 2013 at 12:16 PM, Benjamin 
benjamin.vanryseghem.ph...@gmail.com wrote:

 Thank you :)

 Ben

 On Jun 21, 2013, at 6:48 AM, S Krish krishnamachari.sudha...@gmail.com
 wrote:

 It is super cool to see Chrome  look n feel in Pharo. More so the
 startup of the video..

 Way to go Ben.. It is inspiring


 On Thu, Jun 20, 2013 at 2:21 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Great job, Ben.

 Doru


 On Sun, Jun 9, 2013 at 9:03 PM, Benjamin 
 benjamin.vanryseghem.ph...@gmail.com wrote:

 hello guys :)

 I would like to introduce a new implementation of tabs with the
 following features (for now):
  - tabs with icon (and a label of course)
 - un-closable tabs
 - threaded contents loading (with animated icon)
  - shortcuts handling (to navigate from one tab to the next/previous
 one, to close a tab)
 - multi-selection (will display all the selected contents with splitter
 in between)
  - actions (each tab can define actions displayed in the tab bar) -
 Thanks Tudor for the idea
 - menu items - Thanks Tudor for the idea

 Here is a little (geeky) video showing a bit of everything:
 https://dl.dropboxusercontent.com/u/24369478/Tabs.m4v

 The code can be loaded executing this:

 Gofer it
 url: 'http://smalltalkhub.com/mc/BenjaminVanRyseghem/Tabs/main';
  package: 'ConfigurationOfTabs';
  load.

 ConfigurationOfTabs loadDefault.
 TabExample open

 Next steps:
 - drag and drop (for rearranging tabs)
  - Spec support (almost finished)


 Ben




 --
 www.tudorgirba.com

 Every thing has its own flow






-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] First shot on acceptance tests for the VM

2013-06-23 Thread Tudor Girba
Excellent!

Doru


On Fri, Jun 21, 2013 at 5:08 PM, Guillermo Polito guillermopol...@gmail.com
 wrote:

 Hi!

 We were discussing over here about it, so I decided to finally start
 something on the front of an acceptance test for our VM.

 The core idea is to stress the VM to test its stability and find bugs and
 regressions.

 So I created the ci job in [1] which does:
  - use latest vm
  - use 2.0 latest image
  - loads seaside and moose on it
  - runs all tests

 Right now it runs on 6 different slaves, getting different results on
 each, which we should take care about :).

 Also there are some things on it that should be improved easily:
  - once 2.0 summer is released this job should use that version instead of
 the latest 2.0
  - right now we are loading the development version of moose because moose
 4.8 is not released (but will be soon :)

 And of course, now we have them, we can improve them (and make them run
 because not all of them do :D).

 Guille

 [1] https://ci.inria.fr/pharo/view/VM/job/PharoVM-AcceptanceTest/




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] First shot on acceptance tests for the VM

2013-06-23 Thread Tudor Girba
+1

Doru


On Sat, Jun 22, 2013 at 9:28 AM, Marcus Denker marcus.den...@inria.frwrote:

 Very nice!

 Another thing we need to look at at some point is to make different VM
 build for each major version.

 The idea is that there is a dedicated build of the VM for Pharo3, which
 would be frozen with the release,
 and then we start with a VM build for Pharo4.

 I even want them to have the major version number is the binary, so that
 it is easy to install Pharo3 in Parallel
 to Pharo4.

 With this we free ourselves from needed the VM to be at  the same time
 forward *and* backward compatible.
 And we make sure that the VM that people use for the stable release does
 not change.

 Marcus

 On Jun 21, 2013, at 5:08 PM, Guillermo Polito guillermopol...@gmail.com
 wrote:

 Hi!

 We were discussing over here about it, so I decided to finally start
 something on the front of an acceptance test for our VM.

 The core idea is to stress the VM to test its stability and find bugs and
 regressions.

 So I created the ci job in [1] which does:
  - use latest vm
  - use 2.0 latest image
  - loads seaside and moose on it
  - runs all tests

 Right now it runs on 6 different slaves, getting different results on
 each, which we should take care about :).

 Also there are some things on it that should be improved easily:
  - once 2.0 summer is released this job should use that version instead of
 the latest 2.0
  - right now we are loading the development version of moose because moose
 4.8 is not released (but will be soon :)

 And of course, now we have them, we can improve them (and make them run
 because not all of them do :D).

 Guille

 [1] https://ci.inria.fr/pharo/view/VM/job/PharoVM-AcceptanceTest/





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Object #is:

2013-06-23 Thread Tudor Girba
Actually, a better implementation would be:

Objectis: aClassOrSymbol
 ^ aClassOrSymbol asString = self class name asString

Like this you can even pass the class instead of its name (I presume that
printOn: will not change any time soon so we can rely on the fact that we
can polymorphically obtain the name of the class via asString).

Cheers,
Doru



On Sun, Jun 23, 2013 at 9:30 PM, Camillo Bruni camillobr...@gmail.comwrote:


 On 2013-06-23, at 21:25, Tudor Girba tu...@tudorgirba.com wrote:

  If we want to have an Objectis:, why not:
 
  Objectis: aSymbol
  ^ aSymbol = self class name
 
  ?
 
  Like this, I do not have to override it unless I need to rely on a
  different mechanism.

 exactly, that is everybody's immediate reaction, except for the method's
 author ;)..




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Better Interruption in 2.0

2013-06-30 Thread Tudor Girba
Is this integrated in 2.0 already?

Doru


On Fri, Jun 28, 2013 at 3:12 PM, Goubier Thierry thierry.goub...@cea.frwrote:

 Hi Stephan,

 I've put a slice to integrate that and the overall UserInterrupt code to
 get it to work. Can you try it?

 It's SLICE-Issue-10569-Backport-20-**Better-Interrruption-**ThierryGoubier.1
 in 
 http://ss3.gemtalksystems.com/**ss/PharoInbox/http://ss3.gemtalksystems.com/ss/PharoInbox/

 Thierry

 Le 27/06/2013 00:40, Stephan Eggermont a écrit :

  Using Henry's

 processToInterrupt
  Look for best candidate to interrupt:
 - any scheduled non-finalization process of lower priority
 - the weak-finalization process, if scheduled
 - the UI process
  Never interrupt the idle process, since killing it is fatal

  | fallback |

  fallback := UIManager default uiProcess.
  Processor
  scanSchedule: [:p |
  suspendedContext sender == nil usually means
 that process is only scheduled but had no chance to run
  ((p ~~ Processor backgroundProcess) and: [ p
 suspendedContext sender notNil]) ifTrue: [
  p ~~  WeakArray
 runningFinalizationProcess
  ifTrue: [^p]
  ifFalse: [fallback := p]] ]
  startingAt: Processor activePriority.
  ^fallback

 in todays Moose 4.8 (on Pharo 20608) on the april 10 VM
 allows for better interruption, up to the point where the system runs out
 of memory
 without a lowspace warning after I assume trying to collect garbage for
 20 minutes or so.

 Stephan


 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] WhatsUp from: 2013-07-01 until: 2013-07-14

2013-07-01 Thread Tudor Girba
On Mon, Jul 1, 2013 at 7:00 AM, seas...@rmod.lille.inria.fr wrote:

 Hi! We're sending this automatic email twice a month, to give the
 community an opportunity to easily know what's happening and to coordinate
 efforts.  Just answer informally, and feel free to spawn discussions
 thereafter!

 ### Here's what I've been up to since the last WhatsUp:


Preparing for Moose 4.8 release
Working with Andrei on fancy, yet cheap debuggers


 ### What's next, until 2013-07-14 (*):


Release Moose 4.8
Move Moose development on Pharo 3.0

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] Fwd: [Pharo-users] Tudor Girba joins Pharo Board

2013-07-03 Thread Tudor Girba
I forgot again to push the reply all button.

Doru

-- Forwarded message --
From: Tudor Girba tu...@tudorgirba.com
Date: Wed, Jul 3, 2013 at 9:59 AM
Subject: Re: [Pharo-users] [Pharo-dev] Tudor Girba joins Pharo Board
To: Any question about pharo is welcome pharo-us...@lists.pharo.org


Hi everyone,

Thanks for the wishes.

Just a note: I do not see getting in the board as a prize, but as a work to
do. And there is some work left :)

One of the points that I will stress everyone with is the marketing of
Pharo. Marketing, like any other meaningful thing, requires design. Design
requires feedback. And feedback requires time. That is why we have to start
with this endeavor sooner rather than later.

The other thing about marketing is that it can actually be meaningful, but
this happens only when we live what we sell. Pharo does offer a fantastic
opportunity because when people talk about it, their eyes blink. This
reveals both value and values that are packaged deep in Pharo.

We just have to capitalize on that, and I want to start by making explicit
what makes Pharo unique and valuable. Everyone thinks of various things,
but we do not yet have a concerted message. This message, and I will aim at
one single message, has to transpire in everything we do: from the way we
design the code, to the concepts we adopt in the language, to the
frameworks we build on top, and to the developer and user experience.

This is exciting, but it requires team effort. This is where you come in.
We want your energy outside of pure coding. More concrete proposals will
come in the near future, but until then, feel free to chip in your ideas.

Cheers,
Doru




On Wed, Jul 3, 2013 at 4:16 AM, Mariano Martinez Peck marianop...@gmail.com
 wrote:

 Congrats! Doru, It's well deserved.
 Best,


 On Tue, Jul 2, 2013 at 7:51 PM, Alexandre Bergel 
 alexandre.ber...@me.comwrote:

 Cool!

 Alexandre


 On Jul 2, 2013, at 10:12 AM, Sven Van Caekenberghe s...@stfx.eu wrote:

  Hi,
 
  The Pharo Board is pleased to announce that Tudor Girba has recently
 joined the Pharo Board. Among others, he will try to contribute on long
 term issues like the positioning of Pharo.
 
  Stéphane, Marcus  Sven
 
  http://www.pharo-project.org/about/board
 
  --
  http://pharo.org
  http://association.pharo.org
  http://consortium.pharo.org
 
 
 
 
 

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







 --
 Mariano
 http://marianopeck.wordpress.com




-- 
www.tudorgirba.com

Every thing has its own flow



-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] We did it! SlotClassBuilder is active

2013-07-03 Thread Tudor Girba
Wow!

I cannot wait to clunky dictionary-based instance variable extensions with
slots.

Doru


On Wed, Jul 3, 2013 at 5:00 PM, Marcus Denker marcus.den...@inria.frwrote:

 Hi,

 Today we turned on the SlotClassBuilder… this means actually quite a huge
 change, as it puts into place
 lots of things that we can build on later.

 What it means for now

 - A new, much easier to understand ClassBuilder
 - meta Objects. Layouts + Slots

 For example, there is now for every instance variable a meta object that
 describes it
 It will be very interesting to see what we can do with that!

 Thanks to Toon + Camillo for the original implementation, and Martin Dias
 with Camillo
 for the work to get in really into 3.0.

 Marcus




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] We did it! SlotClassBuilder is active

2013-07-04 Thread Tudor Girba
I forgot about this side-effect. PetitParser will be so happy.

Doru


On Thu, Jul 4, 2013 at 9:51 AM, Norbert Hartl norb...@hartl.name wrote:

 Hehe, yes, and finally I can have more than 254 instance variables!

 Norbert

 Am 03.07.2013 um 23:38 schrieb Tudor Girba tu...@tudorgirba.com:

 Wow!

 I cannot wait to clunky dictionary-based instance variable extensions with
 slots.

 Doru


 On Wed, Jul 3, 2013 at 5:00 PM, Marcus Denker marcus.den...@inria.frwrote:

 Hi,

 Today we turned on the SlotClassBuilder… this means actually quite a huge
 change, as it puts into place
 lots of things that we can build on later.

 What it means for now

 - A new, much easier to understand ClassBuilder
 - meta Objects. Layouts + Slots

 For example, there is now for every instance variable a meta object that
 describes it
 It will be very interesting to see what we can do with that!

 Thanks to Toon + Camillo for the original implementation, and Martin Dias
 with Camillo
 for the work to get in really into 3.0.

 Marcus




 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] We did it! SlotClassBuilder is active

2013-07-04 Thread Tudor Girba
And Moose :)

Doru


On Thu, Jul 4, 2013 at 10:56 AM, Stephan Eggermont step...@stack.nl wrote:

 Great!
 Time to simplify Magritte.

 Stephan




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Moose-dev] SourceCity works

2013-07-04 Thread Tudor Girba
+1

Doru

On Jul 4, 2013, at 6:23 PM, Alexandre Bergel alexandre.ber...@me.com wrote:

 Hi Erwan and all,
 
 Just to make a few things clear about Roassal 3d vs SourceCity.
 
 We are currently working on Roassal 3d, which intends to be a nice layer at 
 the top of NBOpenGL and NBXLib to easily create 3d scenes with cubes, lights, 
 camera, interactions, zooming, translucent coloring, 
 clicking/rotating/translating individual elements and so on. Everything that 
 is good for Roassal is equally good for 3D Scene.
 
 Having a city-like visualization will be one of our first objectives since 
 (i) it is a compelling use of 3D and (ii) it is easy to implement (at least 
 the bases).  We started to work on a CityBuilder, to easily create cities 
 from objects and provided metrics. Ideally, it would be great to have 
 SourceCity based on our effort. Not now since we have just started Roassal 
 3D, but on some point we should merge (this is similar in the 2d World with 
 Mondrian and EyeSee moving from plain Morphic to Roassal).
 
 Our objective is to offer a great 3d framework to make a truly flying 
 SourceCity.
 Does this make sense to you?
 
 Cheers,
 Alexandre
 
 
 
 On Jul 4, 2013, at 10:47 AM, Erwan Douaille douailleer...@gmail.com wrote:
 
 https://ci.inria.fr/pharo-contribution/job/SourceCity/
 
 done
 
 
 2013/7/4 Camillo Bruni camillobr...@gmail.com
 
 On 2013-07-04, at 15:35, Erwan Douaille douailleer...@gmail.com wrote:
 
 I updated the ConfigurationOfSourceCity.
 
 Gofer new
 smalltalkhubUser: 'ErwanDouaille' project: 'SourceCity';
 configuration;
 load.
 ConfigurationOfSourceCity loadBleedingEdge
 
 would it make sense to make a jenkins job for this?
 
 
 
 
 -- 
 Best regards,
 
 Douaille Erwan douaille.er...@gmail.com
 
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 

--
www.tudorgirba.com

Live like you mean it.




Re: [Pharo-dev] Sunburst visualization

2013-07-04 Thread Tudor Girba
This looks like really a fantastic job. I cannot wait to see the code :)

Doru


On Jul 4, 2013, at 3:20 PM, Alexandre Bergel alexandre.ber...@me.com wrote:

 Hi!
 
 We are currently working on a Sunburst based on top of Roassal. Milton is 
 doing a fantastic job!
 Here some early screenshots:
 
 image copy 2.pngimage copy.pngimage.png
 
 
 Milton  Alexandre
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 

--
www.tudorgirba.com

If you can't say why something is relevant, 
it probably isn't.




Re: [Pharo-dev] sunit failures vs errors

2013-07-10 Thread Tudor Girba
Precisely. There is a huge difference between invalidating a known contract 
(i.e., failure) and raising an unexpected error (i.e., error).

Please do not do away with this distinction.

Cheers,
Doru


On Jul 10, 2013, at 10:34 AM, Damien Cassou damien.cas...@gmail.com wrote:

 
 On Wed, Jul 10, 2013 at 8:16 AM, Norbert Hartl norb...@hartl.name wrote:
 I use them. I always fix the red tests first because they are mostly easier 
 to fix and some of them lead to yellow tests
 
 I agree with you. I tend to do that as well.
 
 
 -- 
 Damien Cassou
 http://damiencassou.seasidehosting.st
 
 Success is the ability to go from one failure to another without losing 
 enthusiasm. 
 Winston Churchill

--
www.tudorgirba.com

Beauty is where we see it.






Re: [Pharo-dev] sunit failures vs errors

2013-07-10 Thread Tudor Girba
Hi,

On Jul 10, 2013, at 1:47 PM, Camillo Bruni camillobr...@gmail.com wrote:

 On 2013-07-10, at 13:32, Tudor Girba tu...@tudorgirba.com wrote:
 Precisely. There is a huge difference between invalidating a known contract 
 (i.e., failure) and raising an unexpected error (i.e., error).
 
 In which sense?

In the sense that they express two distinct classes of problems.

 As a programmer I have to tackle them both the same way: start debugging.

Yes, but not all debugging is created equal :)

 I really do not see the difference. In both cases the code does not behave as 
 expected.
 One might even say that there is a global contract that the code does not 
 raise exceptions.

Yes, but then what is the point of explicit assertions? :)

 Tackling the failures first is purely a habit induced by the existing system 
 that errors are worse than failures

Actually, it is the other way around :). Errors are much faster to fix than 
failures. Errors are often caused by bad initializations and you can see it 
rather fast when you see the exceptions. On the other hand, failures are often 
more sensitive to the deep semantics of your code and that is why they require 
more time to get fixed.



Cheers,
Doru

--
www.tudorgirba.com

Presenting is storytelling.




Re: [Pharo-dev] Athens + Amber progress

2013-07-13 Thread Tudor Girba
Hi,

Great work!

Also, Matthias is describing the progress on a dedicated blog, so people can 
stay tuned:
http://amber-athens.m-sp.org/

Cheers,
Doru


On Jul 12, 2013, at 5:51 PM, Igor Stasenko siguc...@gmail.com wrote:

 Hi, i just wanna share news about progress on subject GSoC project.
 
 Matthew made quite decent progress on the subject. It is almost there,
 just some glitches here and there,
 but in overall, i am quite happy, and i think it is already in quite
 useful state.
 
 To check it, just follow the link on your browser:
 
 http://matthias-springer.github.io/amber-athens/
 
 (works best with chrome then firefox)
 
 For impatient:
 
 go to step 2, press doit,
 then skip to step 32 and press doit again
 
 :)
 
 -- 
 Best regards,
 Igor Stasenko.
 

--
www.tudorgirba.com

What we can governs what we wish.






Re: [Pharo-dev] Some Spec questions

2013-07-13 Thread Tudor Girba
Exciting times :)

Doru


On Jul 13, 2013, at 8:08 AM, Clément Bera bera.clem...@gmail.com wrote:

 Ok, then we will integrate it together when you come to Lille in 2 weeks.
 
 Good news.
 
 Cheers,
 
 
 2013/7/12 Andrei Vasile Chis chisvasileand...@gmail.com
 Hi Clément, Hi Clara,
 
 
 What about integrating the new debugger by default now ? I mean the new 
 debugger is now in Pharo 3.0 alpha but the old debugger is still triggered by 
 default, for example when you do Cmd+Maj+d or when you set the setting 
 'Always open full debugger'. We (Marcus and I) would like to integrate it now 
 by default in Pharo 3.0 alpha, so we have enough time to stabilize it (in 
 case of problems) and we can then remove the old debugger and old inspectors 
 from Pharo.
 
 Now I want your point of view:
 - What do you think about integrating the spec debugger by default next week 
 ? 
 
 In two weeks (22 July) I would visit you in Lille. That would be a good time 
 to integrate.
 
  
 - Is it currently stable enough ? 
 
 All the features that are present at the moment are quite stable.
 
  
 - Should I wait a little more so you can add extra features ?
 
 I've talked with Andrei and we've set a milestone. By next week, we would 
 like to have done issues
 10956
 10952
 10954
 10953
 10955 
 
 If at least the first three issues are done, then the new debugger will have 
 most of the necessary features.
 I'd also help with these and I hope we'll be done by the end of this month.
 
  
 By next week I will have more time, since the semester will be finished. 
  
 Having Andrei's debugger by default requires that it has the full stack menu 
 ready before the Pharo 3.0 release (next spring), because if not people will 
 blame all the Pharo team. 
 - Are you working on it ? 
 That's what I plan to do next week :) I'm working on it, but not full time.
  
 - Will it be ready before the next Pharo release ? 
 
 If you think you need to improve the debugger before we integrate it by 
 default, for example with Clara's GSoC work, please tell me when it will be 
 ready so we can add it into the Pharo 3.0 integration planning. Then I guess 
 you can add a slice with your improvements in the Pharo bug tracker, and I 
 will add an extra slice with smalltalk tools change so the new debugger will 
 be triggered by default. It would be nice if we can integrate it before the 
 end of september.
 
 We'll surely be able to have all the missing features by the end of September.
 They do not require so much work.
  
 
 In any case I will be in case with both Andrei and you (if you don't mind) to 
 get this done...
 
 Please do :)
 
 Cheers,
 Andrei
 
 
 

--
www.tudorgirba.com

Problem solving efficiency grows with the abstractness level of problem 
understanding.






Re: [Pharo-dev] [2.0] Issues tagged for Pharo 2

2013-07-16 Thread Tudor Girba
I would definitely say so :)

Doru


On Tue, Jul 16, 2013 at 9:21 AM, Marcus Denker marcus.den...@inria.frwrote:

 Hi,

 There are 7 issues tagged for Pharo2:

 https://pharo.fogbugz.com/f/filters/8/2-0-Work-Needed

 None of them was important enough to be fixed (or even discussed on
 this list).

 So I guess we can conclude that they are not showstoppers to be fixed
 for Pharo2?

 Marcus




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] modeling Zinc request method

2013-07-16 Thread Tudor Girba
Hi,

The recently announced cool tutorial on using Zinc made me read the Zinc code 
in a bit more detail. I must admit, it makes for a nice read.

In the process, I stumbled across:

knownHTTPMethods
^ #(
Standard HTTP 1.1 Verbs
GET PUT POST DELETE HEAD 
TRACE OPTIONS CONNECT PATCH
WebDAV verbs
PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK)

I would propose to model these as classes (inheriting from ZnRequestMethod). 

If we would have such a hierarchy, then the following code:

ZnSingleThreadedServerhandleRequest: request
...
request method = #HEAD
ifTrue: [ response clearEntity ].


Could become something like:

ZnSingleThreadedServerhandleRequest: request
...
request method clearEntityForSingleThreadedServerResponse: response

ZnRequestMethodclearEntityForSingleThreadedServer: aResponse
nothing

ZnHeadRequestMethodclearEntityForSingleThreadedServer: aResponse
aResponse clearEntity


What do you think?

Cheers,
Doru


--
www.tudorgirba.com

Not knowing how to do something is not an argument for how it cannot be done.




Re: [Pharo-dev] Spec delete method

2013-07-17 Thread Tudor Girba
I guess what Stef means is that he would like to know if there is a way
specify custom behavior when a window closes, and then use this for his
purpose of unregistering from some announcer.

Cheers,
Doru


On Wed, Jul 17, 2013 at 2:36 PM, Benjamin 
benjamin.vanryseghem.ph...@gmail.com wrote:

 I do not think it's a UI framework concern to handle model behaviour (like
 registration to announcement)

 Ben

 On Jul 17, 2013, at 9:40 AM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 Hi ben

 I would like to unsubscribe announcement when the window is closed.
 Is there a hook for that in Spec?

 Stef








-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [update 3.0] #30285

2013-07-20 Thread Tudor Girba
Hi,


On Fri, Jul 19, 2013 at 2:27 PM, Marcus Denker marcus.den...@inria.frwrote:

 30285
 -

 10823 Kill old list model
 https://pharo.fogbugz.com/f/cases/10823

 11136 RadioButtonGroupExample new openWithSpec is not working
 https://pharo.fogbugz.com/f/cases/11136

 11174 Add support for sync position of multiple widgets with just one
 scroll bar
 https://pharo.fogbugz.com/f/cases/11174


How does this work? Do you have an example at hand?

Doru







 Diff information:

 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Examples-MarcusDenker.33.diff

 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Polymorph-Widgets-MarcusDenker.859.diff

 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Morphic-Base-MarcusDenker.48.diff





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] About abuse of inheritance

2013-07-20 Thread Tudor Girba
Thanks, Hannes. I am not completely misunderstood, then :)

Doru


On Sat, Jul 20, 2013 at 2:02 PM, H. Hirzel hannes.hir...@gmail.com wrote:

 On 7/19/13, Igor Stasenko siguc...@gmail.com wrote:
  On 19 July 2013 16:17, Tudor Girba tu...@tudorgirba.com wrote:
  Hi Igor,
 
  I love these discussions. I agree that abusing inheritance is
  counter-productive. Definitely, Shampoo subclass: #Shower does not
  match
  any mental model I can think of. But, I am not seeing Announcer
  subclass:
  #MyDomainConcept equally as an abuse.
 
  Here is why.
 
  When I say Object subclass: #MyDomainConcept, my actual intention is
  not
  to reuse types necessarily, but rather the infrastructure needed for the
  Smalltalk runtime. From this point of view, it is an implementation
  inheritance. I could as well, inherit from ProtoObject, but I do not do
  it
  because Object gives me a bit more technical infrastructure.
 
  For me, Announcer is nothing but an Object that has an extra technical
  capability. Inheriting from Announcer rather than Object seems the same
  as
  inheriting from Object rather than ProtoObject.
 
  Now, you can shoot.
 
 
  As i understood, you see nothing wrong in using inheritance as reuse,
  while i do.

 not generally I assume Tudor thinks, only for this particular case of
 sub classing Announcer.
 Announcing behaviour may be considered part of a package objects
 should have and this has  been the case in Smalltalk since the
 beginning, though implemented with the symbol based changed/update
 mechanism.

 To restate
 Yes, I agree that subclasses should specialize the behaviour of the
 superclass. But there need to be classes first you may subclass to
 specialize and these inherit general properties of object behaviour.

 --Hannes

  The argument with Object does not stands, to my thinking, because
  it is most generic class, and protocols it implements used by various
  parts of a system,
  including reflection etc,
  and those parts actually expecting that all objects they dealing with
  is at least implementing Object protocol(s).
  So, strictly speaking by inheriting from Object you may call it reuse,
  but to my thinking it is more
  about having a guarantee that your class will play well with the rest
  of smalltalk ecosystem (even if it's not your direct concern).
 
  While in case of inheriting from Announcer it is something different:
  you already have specific behavior
  which is non-universal for all objects in system (otherwise why not
  implementing Announcer protocol in Object?).
 
  Also, i am sure you aware, that by doing this, you introducing a
  certain degree of rigidness in your model (every time you refer
  directly to names instead of protocols, little kittie dies ;)
 
  because if today, Announcer serves well for your needs, and all is
 happy..
  but maybe tomorrow, one guy will make a better one AnnouncerOnSteroids..
  and to reuse it , you will need to change the parent in all numerous
  classes where you used Announcer
  originally.
  And to make it absolutely ridiculous, imagine how you will give user a
  choice whether use one Announcer or AnnouncerOnSteroids? You will
  recompile your classes each time? And what if parts of your model
  insist on using just Announcer while others having no problem with
  trying to play with AnnouncerOnSteroids?
 
  Another aspect of such abuse is when you inherit, you are tempted to
  use direct access to internal state and private methods, and that
  leads to really strange and complex problems later..
 
  Just giving you an example:
 
  Suppose we have a class Butter, which implements #numberOfCalories and
  #fatPercentage protocols..
 
  Now we do it like that:
 
  Butter subclass: #Fridge
 
  and then, of course
 
  fridge := Fridge new.
 
  fridge fatPercentage
 
  or:
 
  fridge fatPercentage: 10.
 
  ^^^ just look at the above line, how much sense you think this piece
  of code makes
  for reader, who will try to reason what is happens in your code?
 
  And why you think it is not the same story with Announcer?
 
  Because by subclassing from it, you expose its protocol(s) in places
  where it is not needed and
  will cause problems and confusion.
  Because when you inherit to reuse, not to specialize, then users of
  such class in most cases won't use
  full protocol of the superclass, nor require it.. and therefore by
  providing more than necessary,
  you are basically violating the principle of least authority.
  To fix that, you will need to override certain methods in your
  subclass to prevent exposing unwanted/low-level behavior to users. But
  that's again wrong, because then your model now starting to know too
  much about Announcer's internals, which should be an implementation
  detail, and adds even more rigidness to your design.
 
 
  --
  Best regards,
  Igor Stasenko.
 
 




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] About abuse of inheritance

2013-07-20 Thread Tudor Girba
Certainly :)

Doru


On Sat, Jul 20, 2013 at 1:48 PM, Camillo Bruni camillobr...@gmail.comwrote:

 How about statefull Traits?
 http://scg.unibe.ch/archive/papers/Berg07aStatefulTraits.pdf


 On 2013-07-20, at 12:48, Denis Kudriashov dionisi...@gmail.com wrote:
  Hi
 
  2013/7/19 Igor Stasenko siguc...@gmail.com
 
  So, on your place, if you really need a lot of classes with announcer
  capabilities, you can do it like that:
 
  Object subclass: #ObjectWithAnnouncer
  instvars: 'announcer'
 
 
  ObjectWithAnnouncer is exactly what I think about Announcer. I just need
  class which makes my objects events sources. And I'm wondering why
  Announcer is bad for this?
  Just look at Announcer definition:
 
  Object subclass: #Announcer
 
  instanceVariableNames: 'registry'
 
  classVariableNames: ''
 
  poolDictionaries: ''
 
  category: 'Announcements-Core'
 
 
  registry variable is instance of SubscriptionsRegistry which actually
  implements all announcements logic. Announcer just adds convenient public
  api to events subscriptions and delivering. No complex logic. No actual
  knowledge about how announcements work.
  And your argument why you subclass from Announcer looks to me like why
  you subclass from SubscriptionsRegistry. But I'm not. Nobody doing it.
  So i'm not understand why you want another wrapper around Announcer.
 
  (To me subscriptions is better name then registry. And I prefer
  composition than inheritance too).
 
 
 
  then may implement same protocol as in Announcer in it, which will
  simply delegate to announcer ivar.
  And i bet, you don't want to expose full Announcer protocol there,
  while probably you may want to implement some convenience protocols,
  which Announcer lacking.
 
  So, at the end by subclassing from ObjectWithAnnouncer you will be
  reusing its capabilities in each and every subclass of it, but by
  delegating real job, you are free from worrying about dealing with
  implementation detail and exposing unwanted state/protocols to its
  users.
 
  Another aspect of it, is when i see:
 
  ObjectWithAnnouncer subclass: #MyDomainObject
 
  it tells me, aha.. so some (at least this one) of his domain objects
  having announcers,
  and the valid protocols is defined in ObjectWithAnnouncer.
 
  but when i see
 
  Announcer subclass: #MyDomainObject
 
  i starting to be uncertain: is Announcer private there or public?
  can i send messages like #basicSubscribe: to your domain object and
 expect
  that
  it will be handled correctly? Or do i allowed to subscribe directly at
  all, because maybe
  domain object has some specific protocol(s) and ways to do that..
  Every such question and uncertainty for coder means more time, more
  errors, and less productivity.
 
 
  --
  Best regards,
  Igor Stasenko.
 
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] About abuse of inheritance

2013-07-22 Thread Tudor Girba
I love this debate, but given the energy it attracted, I now apologize to
have fueled it.

By reading the thread, I believe that everyone involved in the discussion
is on the same page on 99.9% of the cases, the only real difference being
the case of the Announcer (and even there, the difference is more
philosophical in nature).

Would it be Ok to call it a day and move on? :)

Cheers,
Doru




On Mon, Jul 22, 2013 at 1:05 PM, Igor Stasenko siguc...@gmail.com wrote:

 On 21 July 2013 20:21, Denis Kudriashov dionisi...@gmail.com wrote:
  2013/7/21 Stéphane Ducasse stephane.duca...@inria.fr
 
  Interesting how many people in this list think that Announcer subclass:
  #TxEditor provides special implementation of announcer named TxEditor?
 
 
  Many
  this is composition using inheritance and inheritance should not be used
  like that.
 
  Announcer subclass: #GreedyAnnouncer
 
  Announcer subclass: #RemoteAnnouncer
 
 
  And if we prefer composition we should not implement such kind of
 hierarchy.
  We should implement GreadySubscriptionsRegistry,
 RemoteSubscriptionsRegistry
  or AsynchSubscriptionsRegistry and reuse existed Announcer. All
 subscribing
  and delivering logic implemented by subscription registry. Announcer is
 just
  simple delegator with convenient api to create Subscription instances:
 
  Announcersubscribe: anAnnouncementClass do: aValuable
  Declare that when anAnnouncementClass is raised, aValuable is executed.
  ^ registry add: (
  AnnouncementSubscription new
  announcer: self;
  announcementClass: anAnnouncementClass;
  valuable: aValuable)
 
 
  Announcerannounce: anAnnouncement
 
  | announcement |
  announcement := anAnnouncement asAnnouncement.
  registry ifNotNil: [
  registry deliver: announcement
  ].
  ^ announcement
 
  All magic happens inside #add: and #deliver: methods of
  SubscriptionsRegistry.
 
  Also announcements framework provides very nice feature: you can have
  announcer as last argument of event handler selector (that's why
  AnnouncementSubscription contains reference to announcer instance):
 
  announcer on: MyEvent send: #handleAnnouncement:raisedBy: to: aSubscriber
 
  Without subclassing YourEventsSource from Announcer you will not have
 such
  feature. Or you will need implement complex subscription method inside
  YourEventSource which will delegates special event handler to its
 announcer
 

 1. you don't need separate class to represent event source.
 it can be any object which does:

 announcer announce: Foo.

 in any place..
 I do not see any practical gains from forming a separate class for this
 role.
 It is barely formalizeable because the way how users creating and
 triggering events is arbitrary.

 2. SubscriptionRegistry is an implementation detail. It is private. It
 is a way how Announcer
 doing things inside. It should be no concern of anything outside to
 consider what it does.
 You won't find this class in VisualWorks implementation, for instance.

 3. again, event source - is any object which says 'announcer announce: ...'
 It is NOT announcer, because announcer is an event dispatcher.
 dispatcher ~= source
 Is it so hard to see a difference?

 When you subclass from Announcer, is that you want to say:

 'self announce:' , so the very same object acts both as event source
 and event dispatcher.

 But then , as Stef said, by subclassing you inheriting API.
 So, what prevents me from writing following code, in my own class,
 which uses your domain object
 in a following way:

 coolDomainObject := YourDomainObjectWhichInheritsFromAnnouncer new.

 coolDomainObject on: Foo do: #bar.
 coolDomainObject announce: Foo.

 That i guess is not something you expected, huh? But why not?
 As long as your object understand this protocol, and as long as you
 don't overriding original behavior of Announcer,
 i can abuse your object in a way you did not expected.
 And this is a consequence of violating principle of least authority.

 Because once you declare that we're free to use subclassing for any
 purpose,
 then, i can declare: i am free to use any subclass of Announcer as
 announcer for myself.

 Lets write random code, do not follow any rules and everyone will be happy.

 ---
 Best regards,
 Igor Stasenko.




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] [ann] snapshotcello

2013-07-23 Thread Tudor Girba
Hi,

Stef and I developed Snapshotcello, a little utility that enables you to freeze 
a snapshot of a given configuration based on what is already loaded in your 
current image.

The idea is simple. You develop against the latest versions of all packages, 
and commit your changes for each package. When you are ready for a release, you 
assemble your image, and generate a snapshot version that can be reloaded later.

Here is an example of how it can work to take a snapshot of a development 
version:
Snapshotcello new
 configurationClass: ConfigurationOfMoose;
 configurationVersion: #development;
 publishVersion: '4.8-snapshot'

You can find more details here:
http://www.tudorgirba.com/blog/snapshotcello-take-a-snapshot-when-you-re-ready

You can get the code at:
Gofer new
 smalltalkhubUser: 'girba' project: 'Snapshotcello';
 package: 'ConfigurationOfSnapshotcello';
 load.
(Smalltalk globals at: #ConfigurationOfSnapshotcello) loadDevelopment

Cheers,
Doru

--
www.tudorgirba.com

Every successful trip needs a suitable vehicle.







Re: [Pharo-dev] [Pharo-users] [Moose-dev] Re: [ann] snapshotcello

2013-07-24 Thread Tudor Girba
Hi,

On Jul 23, 2013, at 11:51 PM, Dale K. Henrichs 
dale.henri...@gemtalksystems.com wrote:

 Stef,
 
 I haven't completely wrapped my brain around what SnapshotCello does so I 
 don't have an informed opinion ... the fact that you found a need to invent 
 SnapshotCello does speak volumes to the fact that there is a need that is 
 going unmet:).

What is not clear? I would be interested in describing our scenario in more 
details because I think this is a development pattern. But, I need some 
concrete questions to start from.

 However, I don't like the fact that you end up sending a non-spec message to 
 make this work (#populateSpec:with:). Tools like Versioner will not be able 
 to rewrite a method like this correctly so it is a less than satisfactory 
 workaround to the method literal limit.

I still do not understand why Versionner would be affected by the current 
versions given that we are only generating versions that should be immutable 
hence no need for management.

 With that said it _is_ performing a useful function ...
 
 I have recently come up with an approach to addressing the method literal 
 limit from a slightly different angle and I would assume that SnapshotCello 
 could be recast to use this approved approach when the new techinique 
 becomes available. At that time it would make sense to roll the SnapshotCello 
 funtionality into the MetacelloToolBox...

Having a different way to store the information should be no problem. I am 
curious about your ideas.

Cheers,
Doru



 Dale
 
 [1] http://forum.world.st/Loading-problem-in-Seaside-tp4699965p4700161.html
 - Original Message -
 | From: Stéphane Ducasse stephane.duca...@inria.fr
 | To: Moose-related development moose-...@iam.unibe.ch
 | Cc: Any question about pharo is welcome pharo-us...@lists.pharo.org, 
 Pharo Development List
 | pharo-dev@lists.pharo.org
 | Sent: Tuesday, July 23, 2013 2:17:50 PM
 | Subject: [Moose-dev] Re: [ann] snapshotcello
 | 
 | Nice to see SnapshotCello coming to live. May be it should be
 | integrated to Metacello.
 | Because everybody may need this cool feature.
 | 
 | Stef
 | 
 | On Jul 23, 2013, at 10:43 PM, Tudor Girba tu...@tudorgirba.com
 | wrote:
 | 
 |  Hi,
 |  
 |  Stef and I developed Snapshotcello, a little utility that enables
 |  you to freeze a snapshot of a given configuration based on what is
 |  already loaded in your current image.
 |  
 |  The idea is simple. You develop against the latest versions of all
 |  packages, and commit your changes for each package. When you are
 |  ready for a release, you assemble your image, and generate a
 |  snapshot version that can be reloaded later.
 |  
 |  Here is an example of how it can work to take a snapshot of a
 |  development version:
 |  Snapshotcello new
 |  configurationClass: ConfigurationOfMoose;
 |  configurationVersion: #development;
 |  publishVersion: '4.8-snapshot'
 |  
 |  You can find more details here:
 |  
 http://www.tudorgirba.com/blog/snapshotcello-take-a-snapshot-when-you-re-ready
 |  
 |  You can get the code at:
 |  Gofer new
 |  smalltalkhubUser: 'girba' project: 'Snapshotcello';
 |  package: 'ConfigurationOfSnapshotcello';
 |  load.
 |  (Smalltalk globals at: #ConfigurationOfSnapshotcello)
 |  loadDevelopment
 |  
 |  Cheers,
 |  Doru
 |  
 |  --
 |  www.tudorgirba.com
 |  
 |  Every successful trip needs a suitable vehicle.
 |  
 |  
 |  
 |  
 |  
 |  ___
 |  Moose-dev mailing list
 |  moose-...@iam.unibe.ch
 |  https://www.iam.unibe.ch/mailman/listinfo/moose-dev
 | 
 | 
 | ___
 | Moose-dev mailing list
 | moose-...@iam.unibe.ch
 | https://www.iam.unibe.ch/mailman/listinfo/moose-dev
 | 
 

--
www.tudorgirba.com

Live like you mean it.




Re: [Pharo-dev] [Moose-dev] [ann] snapshotcello

2013-07-24 Thread Tudor Girba
Hi,

On Jul 24, 2013, at 8:49 AM, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 
 On Jul 24, 2013, at 12:09 AM, Camillo Bruni camillobr...@gmail.com wrote:
 
 Nice :)
 
 Random Question: Do you have a way to file out a whole configuration as a 
 fuel file?
 
 Do you mean the packages? or the configuration itself?
 What snapshotcello does is that it walks the configurations and gather the 
 packages and their repository
 and generate a list.

I think he means all packages. I like the idea.

 or would it be considerably easier to so with your Snappy tool?
 
 probably because you get a linear list of packages.

It actually does not depend that much on Snapshotcello, given that 
Snapshotcello actually uses Metacello for anything meaningful. But, it could be 
cheaper to simply traverse the snapshotted list of packages and dump them in 
fuel.

Cheers,
Doru


 Stef
 
 
 On 2013-07-23, at 23:17, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 Nice to see SnapshotCello coming to live. May be it should be integrated to 
 Metacello.
 Because everybody may need this cool feature.
 
 Stef
 
 On Jul 23, 2013, at 10:43 PM, Tudor Girba tu...@tudorgirba.com wrote:
 
 Hi,
 
 Stef and I developed Snapshotcello, a little utility that enables you to 
 freeze a snapshot of a given configuration based on what is already loaded 
 in your current image.
 
 The idea is simple. You develop against the latest versions of all 
 packages, and commit your changes for each package. When you are ready for 
 a release, you assemble your image, and generate a snapshot version that 
 can be reloaded later.
 
 Here is an example of how it can work to take a snapshot of a development 
 version:
 Snapshotcello new
  configurationClass: ConfigurationOfMoose;
  configurationVersion: #development;
  publishVersion: '4.8-snapshot'
 
 You can find more details here:
 http://www.tudorgirba.com/blog/snapshotcello-take-a-snapshot-when-you-re-ready
 
 You can get the code at:
 Gofer new
  smalltalkhubUser: 'girba' project: 'Snapshotcello';
  package: 'ConfigurationOfSnapshotcello';
  load.
 (Smalltalk globals at: #ConfigurationOfSnapshotcello) loadDevelopment
 
 Cheers,
 Doru
 
 --
 www.tudorgirba.com
 
 Every successful trip needs a suitable vehicle.
 
 
 
 
 
 ___
 Moose-dev mailing list
 moose-...@iam.unibe.ch
 https://www.iam.unibe.ch/mailman/listinfo/moose-dev
 
 
 
 
 
 

--
www.tudorgirba.com

No matter how many recipes we know, we still value a chef.









Re: [Pharo-dev] Loading scripts vs. configs with #stable and config browser (was: [ann] snapshotcello)

2013-07-24 Thread Tudor Girba
Hi Torsten,

Thanks for the rant :)

It did not put it as a release yet, because I still wanted people to play
with it. Hence the suggested loadDevelopment.

As for Moose not being in the configuration browser, it is precisely
because we could not really release it until now in a reliable fashion that
you do not find it there :). Snapshotcello is a little tool to help us
bootstrap precisely around this problem.

Cheers,
Doru




On Wed, Jul 24, 2013 at 10:04 AM, Torsten Bergmann asta...@gmx.de wrote:

 Tudor wrote:
 You can get the code at:
 Gofer new
  smalltalkhubUser: 'girba' project: 'Snapshotcello';
  package: 'ConfigurationOfSnapshotcello';
  load.
 (Smalltalk globals at: #ConfigurationOfSnapshotcello) loadDevelopment

 Sorry about the rant in advance (which is more general and not only
 specific to snapshotcello), but:

 Next time someone wants this (or another) nice little Pharo tool:

  - one has to remember this load script or have to find the announcement
 mail again
  - one has to a lot of typing the expression or copying to a workspace to
 load it.

 Just with the posted load script he does dont know if Pharo 1.4, 2.0 or
 3.0 was used to develop it,
 so how does he know the Pharo version to use it without failures? A pharo
 version where it is not broken.
 Maybe the user is still using Pharo 2.0 but maybe the tool requires at
 least Pharo 3.0 ...

 What about a new user who starts tomorrow with Pharo and never read this
 announcement.
 Since he entered the mailinglist very late he missed the mail with the
 script.
 How can he now about this super cool package? Why cant it be more
 accessible?

 I propose: PLEASE define a #stable for the working versions and place an
 additional copy in:

  - ss3.gemtalksystems.com/ss/MetaRepoForPharo20 (Pharo 2.0)
 or
  - http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main; (Pharo 3.0)

 when you know it runs in the according pharo version. It will then appear
 in the config browser.

 If it is not in the config browser of the current pharo version for easy
 loading
 then it does not really exist.  ;)
 It only exists for the people who read about it in the mailinglist. Think
 of a first
 time user who downloads Pharo 2.0. He may never stumble over the load
 script or
 the tool in Smalltalkhub.

 I know: it may not yet be the best mechanism to provide packages to users
 (we need more infos
 on the configs, hence catalog and automatic verification in the future) -
 but still it
 is better than the load scripts and possible confusion.

 So please CARE ABOUT YOUR USERS and make your packages available like this
 so it can
 be easily accessible and loadable right from the according image!

 Same for Roassal, Moose, ... and all the nice packages that now appear in
 the
 Pharo universe...

 Thanks
 T.




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Pharo-users] [Moose-dev] Re: Re: [ann] snapshotcello

2013-07-24 Thread Tudor Girba
Perhaps I missed something in the toolbox, but as far as I know you cannot
create a version of a configuration that is composed of multiple
sub-projects nested multiple levels deep.

Could you describe the way you are using the Metacello Toolbox?

Doru


On Wed, Jul 24, 2013 at 10:39 AM, Johan Brichau jo...@inceptive.be wrote:

 Hi Doru, Stef,

 May I ask what the difference is with the version generation and updating
 methods found in MetacelloToolbox ? I want to understand, because I am
 currently using these of MetacelloToolbox to do the things you describe.

 Cheers!
 Johan

 On 24 Jul 2013, at 09:52, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 
  On Jul 24, 2013, at 9:11 AM, Tudor Girba tu...@tudorgirba.com wrote:
 
  Hi,
 
  On Jul 24, 2013, at 8:48 AM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:
 
 
  On Jul 23, 2013, at 11:51 PM, Dale K. Henrichs 
 dale.henri...@gemtalksystems.com wrote:
 
  Stef,
 
  I haven't completely wrapped my brain around what SnapshotCello does
 so I don't have an informed opinion ... the fact that you found a need to
 invent SnapshotCello does speak volumes to the fact that there is a need
 that is going unmet:).
 
  However, I don't like the fact that you end up sending a non-spec
 message to make this work (#populateSpec:with:). Tools like Versioner will
 not be able to rewrite a method like this correctly so it is a less than
 satisfactory workaround to the method literal limit.
  Indeed. May be in the future we could recreate a simple compliant spec
 driven method by interpreting the
  existing configuration trees but this requires some work.
 
  I do not understand this point. What do you mean by interpreting the
 configuration trees?
 
  I mean going over the configurations with dependencies to recreate the
 tree structure but with versions.
  May be this is not needed because for versions we do not need
 dependencies so just group them per configurations.
 
 
  Doru
 
 
  With that said it _is_ performing a useful function ...
 
  I have recently come up with an approach to addressing the method
 literal limit from a slightly different angle and I would assume that
 SnapshotCello could be recast to use this approved approach when the new
 techinique becomes available. At that time it would make sense to roll the
 SnapshotCello funtionality into the MetacelloToolBox...
 
  Dale
 
  [1]
 http://forum.world.st/Loading-problem-in-Seaside-tp4699965p4700161.html
  - Original Message -
  | From: Stéphane Ducasse stephane.duca...@inria.fr
  | To: Moose-related development moose-...@iam.unibe.ch
  | Cc: Any question about pharo is welcome 
 pharo-us...@lists.pharo.org, Pharo Development List
  | pharo-dev@lists.pharo.org
  | Sent: Tuesday, July 23, 2013 2:17:50 PM
  | Subject: [Moose-dev] Re: [ann] snapshotcello
  |
  | Nice to see SnapshotCello coming to live. May be it should be
  | integrated to Metacello.
  | Because everybody may need this cool feature.
  |
  | Stef
  |
  | On Jul 23, 2013, at 10:43 PM, Tudor Girba tu...@tudorgirba.com
  | wrote:
  |
  |  Hi,
  | 
  |  Stef and I developed Snapshotcello, a little utility that enables
  |  you to freeze a snapshot of a given configuration based on what is
  |  already loaded in your current image.
  | 
  |  The idea is simple. You develop against the latest versions of all
  |  packages, and commit your changes for each package. When you are
  |  ready for a release, you assemble your image, and generate a
  |  snapshot version that can be reloaded later.
  | 
  |  Here is an example of how it can work to take a snapshot of a
  |  development version:
  |  Snapshotcello new
  |  configurationClass: ConfigurationOfMoose;
  |  configurationVersion: #development;
  |  publishVersion: '4.8-snapshot'
  | 
  |  You can find more details here:
  | 
 http://www.tudorgirba.com/blog/snapshotcello-take-a-snapshot-when-you-re-ready
  | 
  |  You can get the code at:
  |  Gofer new
  |  smalltalkhubUser: 'girba' project: 'Snapshotcello';
  |  package: 'ConfigurationOfSnapshotcello';
  |  load.
  |  (Smalltalk globals at: #ConfigurationOfSnapshotcello)
  |  loadDevelopment
  | 
  |  Cheers,
  |  Doru
  | 
  |  --
  |  www.tudorgirba.com
  | 
  |  Every successful trip needs a suitable vehicle.
  | 
  | 
  | 
  | 
  | 
  |  ___
  |  Moose-dev mailing list
  |  moose-...@iam.unibe.ch
  |  https://www.iam.unibe.ch/mailman/listinfo/moose-dev
  |
  |
  | ___
  | Moose-dev mailing list
  | moose-...@iam.unibe.ch
  | https://www.iam.unibe.ch/mailman/listinfo/moose-dev
  |
 
 
  ___
  Moose-dev mailing list
  moose-...@iam.unibe.ch
  https://www.iam.unibe.ch/mailman/listinfo/moose-dev
 
  --
  www.tudorgirba.com
 
  From an abstract enough point of view, any two things are similar.
 
 




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [update 3.0] #30295

2013-07-24 Thread Tudor Girba
Hi,


On Wed, Jul 24, 2013 at 1:05 PM, Marcus Denker marcus.den...@inria.frwrote:

 30295
 -

 11219 Speed up test run: #testAddMetaclassPattern in
 RBRefactoringChangeTests
 https://pharo.fogbugz.com/f/cases/11219

 11224 Enable the new debugger
 https://pharo.fogbugz.com/f/cases/11224


This is so cool! :)

Doru




 10780 Inspecting self in SpecDebugger inspects nil
 https://pharo.fogbugz.com/f/cases/10780



 Diff information:

 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Debugger-MarcusDenker.99.diff

 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Refactoring-Tests-Changes-MarcusDenker.26.diff





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Moose-dev] Re: [ann] snapshotcello

2013-07-24 Thread Tudor Girba
Hi,

I would be happy to blend Snapshotcello into Metacello.

Cheers,
Doru



On Jul 24, 2013, at 9:05 PM, Dale K. Henrichs 
dale.henri...@gemtalksystems.com wrote:

 
 
 - Original Message -
 | From: Stéphane Ducasse stephane.duca...@inria.fr
 | To: Pharo Development List pharo-dev@lists.pharo.org
 | Cc: Moose-related development moose-...@iam.unibe.ch, Any question 
 about pharo is welcome
 | pharo-us...@lists.pharo.org
 | Sent: Tuesday, July 23, 2013 11:48:27 PM
 | Subject: Re: [Pharo-dev] [Moose-dev] Re: [ann] snapshotcello
 | 
 | 
 | On Jul 23, 2013, at 11:51 PM, Dale K. Henrichs
 | dale.henri...@gemtalksystems.com wrote:
 | 
 |  Stef,
 |  
 |  I haven't completely wrapped my brain around what SnapshotCello
 |  does so I don't have an informed opinion ... the fact that you
 |  found a need to invent SnapshotCello does speak volumes to the
 |  fact that there is a need that is going unmet:).
 |  
 |  However, I don't like the fact that you end up sending a non-spec
 |  message to make this work (#populateSpec:with:). Tools like
 |  Versioner will not be able to rewrite a method like this correctly
 |  so it is a less than satisfactory workaround to the method literal
 |  limit.
 | 
 | Indeed. May be in the future we could recreate a simple compliant
 | spec driven method by interpreting the
 | existing configuration trees but this requires some work.
 
 Absolutely and it would be work that I'd be willing to do ... From that 
 perspective SnapshotCello is a very good spec for what you and the Moose team 
 need.
 
 Dale
 

--
www.tudorgirba.com

Every thing has its own flow.







Re: [Pharo-dev] [Pharo-users] [Moose-dev] Re: Re: [ann] snapshotcello

2013-07-25 Thread Tudor Girba
Unfortunately, I will not be able to join :(

Doru


On Wed, Jul 24, 2013 at 9:38 PM, Dale K. Henrichs 
dale.henri...@gemtalksystems.com wrote:

 Doru,

 Are you going to be at ESUG this year?

 I think there are some features of the Metacello Preview that can be of a
 great help to your Moose development and I think you and I need to spend
 time discussing the ins and outs in detail ...

 I have also done a fair amount or work writing tools for tODE that
 manipulate sets of configurations using the MetacelloToolBox (Metacello
 Preview version), so perhaps your goal of automatic transitive versioning
 of all nested configurations is not as far away as you think. And again, I
 think some deep discussions at a whiteboard and some pair programming is
 probably the most efficient...

 Dale

 - Original Message -
 | From: Tudor Girba tu...@tudorgirba.com
 | To: Pharo Development List pharo-dev@lists.pharo.org
 | Sent: Wednesday, July 24, 2013 11:24:20 AM
 | Subject: Re: [Pharo-dev] [Pharo-users] [Moose-dev] Re: Re: [ann]
  snapshotcello
 |
 | Hi,
 |
 | On Jul 24, 2013, at 5:25 PM, Johan Brichau jo...@inceptive.be
 | wrote:
 |
 |  Doru,
 | 
 |  What do you understand with 'levels'? Is it referenced projects?
 |
 | Yes. Nested projects, each being under development  :)
 |
 |  Perhaps this is the difference I did not immediately extract from
 |  your description. Re-reading it with this focus makes the
 |  difference clear I think.
 | 
 |  My use of the toolbox is indeed to generate or update a version for
 |  a single project where all 'nested' projects are referenced by
 |  project version. As I understand it, the snapshot version is a
 |  'flattened' version containing all packages?
 |
 | Yes.
 |
 | My end goal would be to be able to create automatic transitive
 | versioning of all nested configurations, but this requires some more
 | work, and likely some extension at the level of Metacello. So, until
 | this happens, we now have the option of snapshotting all packages.
 |
 | The cool thing is that if you have something like:
 | ConfigurationOfMoose depends on ConfigurationOfGlamour
 |
 | then in the list of snapshotted packages, you will also get the
 | version of ConfigurationOfGlamour. Thus, essentially, you obtain the
 | same thing as if you would load nested configurations.
 |
 | The only problem is that because we lose configuration nesting
 | information, Metacello is unable to resolve possible diamond
 | conflicts. For example, suppose you have a project that depends on a
 | certain version X of Glamour, but also would like to load the whole
 | Moose that loads version Y of Glamour. If you use normal
 | configurations, Metacello should be able to detect the conflict, but
 | if you only have flattened versions, you will likely not detect the
 | conflict so easily. In any case, I think this is acceptable at the
 | moment.
 |
 | Cheers,
 | Doru
 |
 |
 |
 |  I think I get it now. thanks
 | 
 |  Johan
 | 
 |  On 24 Jul 2013, at 12:45, Tudor Girba tu...@tudorgirba.com wrote:
 | 
 |  Perhaps I missed something in the toolbox, but as far as I know
 |  you cannot create a version of a configuration that is composed
 |  of multiple sub-projects nested multiple levels deep.
 | 
 |  Could you describe the way you are using the Metacello Toolbox?
 | 
 |  Doru
 | 
 | 
 |  On Wed, Jul 24, 2013 at 10:39 AM, Johan Brichau
 |  jo...@inceptive.be wrote:
 |  Hi Doru, Stef,
 | 
 |  May I ask what the difference is with the version generation and
 |  updating methods found in MetacelloToolbox ? I want to
 |  understand, because I am currently using these of
 |  MetacelloToolbox to do the things you describe.
 | 
 |  Cheers!
 |  Johan
 | 
 |  On 24 Jul 2013, at 09:52, Stéphane Ducasse
 |  stephane.duca...@inria.fr wrote:
 | 
 | 
 |  On Jul 24, 2013, at 9:11 AM, Tudor Girba tu...@tudorgirba.com
 |  wrote:
 | 
 |  Hi,
 | 
 |  On Jul 24, 2013, at 8:48 AM, Stéphane Ducasse
 |  stephane.duca...@inria.fr wrote:
 | 
 | 
 |  On Jul 23, 2013, at 11:51 PM, Dale K. Henrichs
 |  dale.henri...@gemtalksystems.com wrote:
 | 
 |  Stef,
 | 
 |  I haven't completely wrapped my brain around what
 |  SnapshotCello does so I don't have an informed opinion ...
 |  the fact that you found a need to invent SnapshotCello does
 |  speak volumes to the fact that there is a need that is going
 |  unmet:).
 | 
 |  However, I don't like the fact that you end up sending a
 |  non-spec message to make this work (#populateSpec:with:).
 |  Tools like Versioner will not be able to rewrite a method
 |  like this correctly so it is a less than satisfactory
 |  workaround to the method literal limit.
 |  Indeed. May be in the future we could recreate a simple
 |  compliant spec driven method by interpreting the
 |  existing configuration trees but this requires some work.
 | 
 |  I do not understand this point. What do you mean by
 |  interpreting the configuration trees?
 | 
 |  I mean going over the configurations with dependencies to
 |  recreate

Re: [Pharo-dev] [Pharo-users] [Moose-dev] Re: Re: [ann] snapshotcello

2013-07-25 Thread Tudor Girba
This would be so cool :).

Doru


On Thu, Jul 25, 2013 at 8:47 AM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 Hi dale

 do you plan to write a visitor on metacello spec?

 Stef

 On Jul 24, 2013, at 9:38 PM, Dale K. Henrichs 
 dale.henri...@gemtalksystems.com wrote:

  Doru,
 
  Are you going to be at ESUG this year?
 
  I think there are some features of the Metacello Preview that can be of
 a great help to your Moose development and I think you and I need to spend
 time discussing the ins and outs in detail ...
 
  I have also done a fair amount or work writing tools for tODE that
 manipulate sets of configurations using the MetacelloToolBox (Metacello
 Preview version), so perhaps your goal of automatic transitive versioning
 of all nested configurations is not as far away as you think. And again, I
 think some deep discussions at a whiteboard and some pair programming is
 probably the most efficient...
 
  Dale
 
  - Original Message -
  | From: Tudor Girba tu...@tudorgirba.com
  | To: Pharo Development List pharo-dev@lists.pharo.org
  | Sent: Wednesday, July 24, 2013 11:24:20 AM
  | Subject: Re: [Pharo-dev] [Pharo-users] [Moose-dev] Re: Re: [ann]
  snapshotcello
  |
  | Hi,
  |
  | On Jul 24, 2013, at 5:25 PM, Johan Brichau jo...@inceptive.be
  | wrote:
  |
  |  Doru,
  | 
  |  What do you understand with 'levels'? Is it referenced projects?
  |
  | Yes. Nested projects, each being under development  :)
  |
  |  Perhaps this is the difference I did not immediately extract from
  |  your description. Re-reading it with this focus makes the
  |  difference clear I think.
  | 
  |  My use of the toolbox is indeed to generate or update a version for
  |  a single project where all 'nested' projects are referenced by
  |  project version. As I understand it, the snapshot version is a
  |  'flattened' version containing all packages?
  |
  | Yes.
  |
  | My end goal would be to be able to create automatic transitive
  | versioning of all nested configurations, but this requires some more
  | work, and likely some extension at the level of Metacello. So, until
  | this happens, we now have the option of snapshotting all packages.
  |
  | The cool thing is that if you have something like:
  | ConfigurationOfMoose depends on ConfigurationOfGlamour
  |
  | then in the list of snapshotted packages, you will also get the
  | version of ConfigurationOfGlamour. Thus, essentially, you obtain the
  | same thing as if you would load nested configurations.
  |
  | The only problem is that because we lose configuration nesting
  | information, Metacello is unable to resolve possible diamond
  | conflicts. For example, suppose you have a project that depends on a
  | certain version X of Glamour, but also would like to load the whole
  | Moose that loads version Y of Glamour. If you use normal
  | configurations, Metacello should be able to detect the conflict, but
  | if you only have flattened versions, you will likely not detect the
  | conflict so easily. In any case, I think this is acceptable at the
  | moment.
  |
  | Cheers,
  | Doru
  |
  |
  |
  |  I think I get it now. thanks
  | 
  |  Johan
  | 
  |  On 24 Jul 2013, at 12:45, Tudor Girba tu...@tudorgirba.com wrote:
  | 
  |  Perhaps I missed something in the toolbox, but as far as I know
  |  you cannot create a version of a configuration that is composed
  |  of multiple sub-projects nested multiple levels deep.
  | 
  |  Could you describe the way you are using the Metacello Toolbox?
  | 
  |  Doru
  | 
  | 
  |  On Wed, Jul 24, 2013 at 10:39 AM, Johan Brichau
  |  jo...@inceptive.be wrote:
  |  Hi Doru, Stef,
  | 
  |  May I ask what the difference is with the version generation and
  |  updating methods found in MetacelloToolbox ? I want to
  |  understand, because I am currently using these of
  |  MetacelloToolbox to do the things you describe.
  | 
  |  Cheers!
  |  Johan
  | 
  |  On 24 Jul 2013, at 09:52, Stéphane Ducasse
  |  stephane.duca...@inria.fr wrote:
  | 
  | 
  |  On Jul 24, 2013, at 9:11 AM, Tudor Girba tu...@tudorgirba.com
  |  wrote:
  | 
  |  Hi,
  | 
  |  On Jul 24, 2013, at 8:48 AM, Stéphane Ducasse
  |  stephane.duca...@inria.fr wrote:
  | 
  | 
  |  On Jul 23, 2013, at 11:51 PM, Dale K. Henrichs
  |  dale.henri...@gemtalksystems.com wrote:
  | 
  |  Stef,
  | 
  |  I haven't completely wrapped my brain around what
  |  SnapshotCello does so I don't have an informed opinion ...
  |  the fact that you found a need to invent SnapshotCello does
  |  speak volumes to the fact that there is a need that is going
  |  unmet:).
  | 
  |  However, I don't like the fact that you end up sending a
  |  non-spec message to make this work (#populateSpec:with:).
  |  Tools like Versioner will not be able to rewrite a method
  |  like this correctly so it is a less than satisfactory
  |  workaround to the method literal limit.
  |  Indeed. May be in the future we could recreate a simple
  |  compliant spec driven method

Re: [Pharo-dev] Loading scripts vs. configs with #stable and config browser (was: [ann] snapshotcello)

2013-07-27 Thread Tudor Girba
Snapshotcello is now in ss3.gemtalksystems.com/ss/MetaRepoForPharo20. Once
it will be tested in Pharo 3.0, it will be published in there, too.

Doru


On Wed, Jul 24, 2013 at 12:42 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi Torsten,

 Thanks for the rant :)

 It did not put it as a release yet, because I still wanted people to play
 with it. Hence the suggested loadDevelopment.

 As for Moose not being in the configuration browser, it is precisely
 because we could not really release it until now in a reliable fashion that
 you do not find it there :). Snapshotcello is a little tool to help us
 bootstrap precisely around this problem.

 Cheers,
 Doru




 On Wed, Jul 24, 2013 at 10:04 AM, Torsten Bergmann asta...@gmx.de wrote:

 Tudor wrote:
 You can get the code at:
 Gofer new
  smalltalkhubUser: 'girba' project: 'Snapshotcello';
  package: 'ConfigurationOfSnapshotcello';
  load.
 (Smalltalk globals at: #ConfigurationOfSnapshotcello) loadDevelopment

 Sorry about the rant in advance (which is more general and not only
 specific to snapshotcello), but:

 Next time someone wants this (or another) nice little Pharo tool:

  - one has to remember this load script or have to find the announcement
 mail again
  - one has to a lot of typing the expression or copying to a workspace to
 load it.

 Just with the posted load script he does dont know if Pharo 1.4, 2.0 or
 3.0 was used to develop it,
 so how does he know the Pharo version to use it without failures? A pharo
 version where it is not broken.
 Maybe the user is still using Pharo 2.0 but maybe the tool requires at
 least Pharo 3.0 ...

 What about a new user who starts tomorrow with Pharo and never read this
 announcement.
 Since he entered the mailinglist very late he missed the mail with the
 script.
 How can he now about this super cool package? Why cant it be more
 accessible?

 I propose: PLEASE define a #stable for the working versions and place an
 additional copy in:

  - ss3.gemtalksystems.com/ss/MetaRepoForPharo20 (Pharo
 2.0) or
  - http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main; (Pharo 3.0)

 when you know it runs in the according pharo version. It will then appear
 in the config browser.

 If it is not in the config browser of the current pharo version for easy
 loading
 then it does not really exist.  ;)
 It only exists for the people who read about it in the mailinglist. Think
 of a first
 time user who downloads Pharo 2.0. He may never stumble over the load
 script or
 the tool in Smalltalkhub.

 I know: it may not yet be the best mechanism to provide packages to users
 (we need more infos
 on the configs, hence catalog and automatic verification in the future) -
 but still it
 is better than the load scripts and possible confusion.

 So please CARE ABOUT YOUR USERS and make your packages available like
 this so it can
 be easily accessible and loadable right from the according image!

 Same for Roassal, Moose, ... and all the nice packages that now appear in
 the
 Pharo universe...

 Thanks
 T.




 --
 www.tudorgirba.com

 Every thing has its own flow




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] moose build - pharo vm crash

2013-08-06 Thread Tudor Girba
Hi,

It seems that the Moose build crashes the VM since yesterday evening due to
a failing test. The image is based on Pharo 2.0 and is running a stable VM
on Ubuntu.

See some details here:
https://ci.inria.fr/moose/job/Moose-latest-dev-4.8/804/console

The script to reproduce the problem (on Ubuntu) is:

#---
wget --quiet -O - http://get.pharo.org/20+vm | bash

./pharo Pharo.image save $JOB_NAME

REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
./pharo $JOB_NAME.image config $REPO ConfigurationOfMoose
--install=development
./pharo $JOB_NAME.image mooseimagesetup

./pharo $JOB_NAME.image moosetest --junit-xml-output

mv ./pharo-vm/PharoV20.sources ./
zip $JOB_NAME.zip $JOB_NAME.image $JOB_NAME.changes PharoV20.sources
#---

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Checking your Gravatar

2013-08-13 Thread Tudor Girba
Ha. Funny. I actually did not know about Alt+Shift+Click :). I only know
the Ctrl+Shift+Click combination to spawn the menu and choose halos from
there.

Doru


On Tue, Aug 13, 2013 at 11:04 PM, Mariano Martinez Peck 
marianop...@gmail.com wrote:

 okit's alt (option) + command + shift in my keyword...
 you were lucky Doru :)


 On Tue, Aug 13, 2013 at 6:01 PM, Mariano Martinez Peck 
 marianop...@gmail.com wrote:

 I forgot to say..cmd+shift+click doesn't open the halos for me, it just
 picks the picture and draws a small shadow and allows me to move the
 picture around...
 bug?


 On Tue, Aug 13, 2013 at 6:00 PM, Mariano Martinez Peck 
 marianop...@gmail.com wrote:

 That's so cool Doru :)
 I arrived at the point of ImageMorph allInstances size.
 The World submorphs select: [:each | each class = ImageMorph] was a
 great idea!!!

 While I appreciate the post and you know I love your inspector, I
 wonder, isn't there a bug?
 If I try to open the halos on the picture, it actually takes the World.
 Is this the expected behavior?

 Thanks!



 On Tue, Aug 13, 2013 at 5:53 PM, Tudor Girba tu...@tudorgirba.comwrote:

 Hi,

 I could not resist: here is a little blog post about removing your
 troublesome morph :)

 http://www.humane-assessment.com/blog/spotting-a-troublesome-image-morph

 Cheers,
 Doru




 On Tue, Aug 13, 2013 at 2:21 PM, Mariano Martinez Peck 
 marianop...@gmail.com wrote:

 This one is more fun

 (ImageMorph fromStream:(
   ZnClient new
 beOneShot;
 url: 'http://www.gravatar.com/avatar';
 addPathSegment: (ZnDigestAuthenticator md5Hash: '
 marianop...@gmail.com');
 queryAt: #s put: '128';
 queryAt: #d put: '404';
 get) readStream) openInWorld


 uhhh but I cannot remove the morph from the worlddamn it!


 On Mon, Aug 12, 2013 at 7:46 PM, Sven Van Caekenberghe 
 s...@stfx.euwrote:

 Hi,

 Related to the usage of Gravatars (
 http://en.wikipedia.org/wiki/Gravatar) for
 http://contributors.pharo.org here is some code you can use to check
 whether your Gravatar image really works:

 ZnClient new
   beOneShot;
   url: 'http://www.gravatar.com/avatar';
   addPathSegment: (ZnDigestAuthenticator md5Hash: 's...@stfx.eu');
   queryAt: #s put: '128';
   queryAt: #d put: '404';
   get;
   isSuccess.

 ZnClient new
   beOneShot;
   url: 'http://www.gravatar.com/avatar';
   addPathSegment: (ZnDigestAuthenticator md5Hash: '
 nobody.at@gmail.com');
   queryAt: #s put: '128';
   queryAt: #d put: '404';
   get;
   isSuccess.

 (ZnClient new
   enforceHttpSuccess: true;
   beOneShot;
   url: 'http://www.gravatar.com/avatar';
   addPathSegment: (ZnDigestAuthenticator md5Hash: '
 tu...@tudorgirba.com');
   queryAt: #s put: '128';
   queryAt: #d put: '404';
   contentReader: [ :entity | ImageMorph fromStream: entity readStream
 ];
   get) openInWindow.

 And now you know how simple Gravatars really are, provided you use a
 proper programming language to access them.

 Enjoy!

 Sven





 --
 Mariano
 http://marianopeck.wordpress.com




 --
 www.tudorgirba.com

 Every thing has its own flow




 --
 Mariano
 http://marianopeck.wordpress.com




 --
 Mariano
 http://marianopeck.wordpress.com




 --
 Mariano
 http://marianopeck.wordpress.com




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] inria jenkins got much faster

2013-08-14 Thread Tudor Girba
Hi,

I just noticed that the Jenkins jobs got much faster. For example, the
Moose job went from 36 minutes to 6 minutes. Or the Glamour job went from
11 minutes to 3 minutes. This is fantastic, but I do not know why the
difference occurs.

It seems that the difference started yesterday before 15:00:
https://ci.inria.fr/moose/job/moose-latest-dev-4.8/871/ (15:49 -- 6 min)
https://ci.inria.fr/moose/job/moose-latest-dev-4.8/870/ (02:49 -- 36 min)

As it affected multiple jobs, I suspect it has to do with the
infrastructure.

Anyone has any idea as to why this happens?

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] inria jenkins got much faster

2013-08-14 Thread Tudor Girba
Yes, we are always using the latest :).

I just saw now the report about #20619.
http://permalink.gmane.org/gmane.comp.lang.smalltalk.pharo.devel/81515

Wow, this is a phenomenal boost! Thank you very much.

Doru


On Wed, Aug 14, 2013 at 11:46 AM, Esteban Lorenzano esteba...@gmail.comwrote:

 if you are using latest 2.0, that's probably because the integration of
 the RPackageSet cache.
 the previous slowdown was exponential, so big projects like moose took
 *really* much time to load.

 Esteban


 On Aug 14, 2013, at 11:43 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi,

 I just noticed that the Jenkins jobs got much faster. For example, the
 Moose job went from 36 minutes to 6 minutes. Or the Glamour job went from
 11 minutes to 3 minutes. This is fantastic, but I do not know why the
 difference occurs.

 It seems that the difference started yesterday before 15:00:
 https://ci.inria.fr/moose/job/moose-latest-dev-4.8/871/ (15:49 -- 6 min)
 https://ci.inria.fr/moose/job/moose-latest-dev-4.8/870/ (02:49 -- 36 min)

 As it affected multiple jobs, I suspect it has to do with the
 infrastructure.

 Anyone has any idea as to why this happens?

 Cheers,
 Doru

 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] XML writer in the default image

2013-08-15 Thread Tudor Girba
+1


On Thu, Aug 15, 2013 at 10:10 AM, Esteban Lorenzano esteba...@gmail.comwrote:

 +1

 On Aug 15, 2013, at 9:41 AM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 
  On Aug 15, 2013, at 2:15 AM, Camillo Bruni camillobr...@gmail.com
 wrote:
 
  As reported a while ago (
 https://pharo.fogbugz.com/default.asp?7412#80347), the TestRunner
  is crashing when test failures accidentally spit out XML sensitive
 characters:
 
 
 https://ci.inria.fr/pharo/view/all/job/Pharo-3.0-Regression-Tests/304/VM=vm,label=pharo-linux64.ci.inria.fr/consoleFull
 
  I don't really see a reason to generate XML by concatenating strings,
 so I wonder
  whether we could include the XMLWriter in the default image?
 
  Why don't we load HDTestRunner when needed? And HDTestRunner could then
 use XMLWriter
 
  This way I could finally fix the HDTestRunner with very little effort.
 
  I will finish to pop up my list and start to work on managing the image
 with Metacello
  because we should build it based on subproject
RB
Nautilus
Athens
NativeBoost
AsmJit
Zinc
OPAL
were/are managed with metacello so we could be there :)
 
  Stef
 
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Installing Rubrik into 3alpha

2013-08-15 Thread Tudor Girba
Just make sure it still works on Pharo 2.0 for a little while.

Doru


On Thu, Aug 15, 2013 at 12:08 PM, Esteban Lorenzano esteba...@gmail.comwrote:

 Hi,

 I tried to install Rubrik in 3alpha (yes, yes, I know... is development,
 etc., etc., but I wanted to test precisely how it is behaving a text
 package with the changes we are introducing :) )
 Well... configuration fails because there is a repeated slot,
 enabledHolder.

 This is because RubTextModel is shadowing a property that already exists
 on AbstractBasicWidget (and that's not allowed with new opal compiler).

 Now... I just removed it on RubTextModel and everything is working so... I
 wonder if this change could be introduced so I can continue playing without
 need to hack it each time? ;)

 cheers,
 Esteban




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] WhatsUp from: 2013-08-19 until: 2013-08-31

2013-08-19 Thread Tudor Girba
Hi,


### Here's what I've been up to since the last WhatsUp:

 - $HEROIC_ACHIEVEMENTS_OR_DISMAL_FAILURES_OR_SIMPLE_BORING_NECESSARY_TASKS


- Significant Moose cleaning and preparation for the release
- Strenghtening Snapshotcello (a new release is available for Pharo 2.0)
- Working on a robust and configurable object traverser
- Working with Andrei on some exciting new debuggers (yes, you read right:
we are working on multiple debuggers that can be customized and
interchanged. it's so cool)
- Continue work on a new Coder design
- Wrote more blog posts about using Moose for solving specific problems (
http://humane-assessment.com)


### What's next, until 2013-08-31 (*):

 - $NEXT_STEPS_TOWARDS_WORLD_DOMINATION


- Release Moose
- Finish the object traverser

Cheers,
Doru


-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] reflection examples

2013-08-20 Thread Tudor Girba
Hi,

I am preparing a set of talks that have reflection at the center.

Obviously, I want to use Pharo to demonstrate reflection. I am now looking
for examples that can be explained to programmer newbies (actually,
managers). I am particularly looking for examples that include adaptation
(not just inspection) and that can show that reflection is valuable.

I already have some examples in mind, but they might not appear
particularly valuable. For example:
- inspecting a class: Object methods.
- adapting a class: Object compile: 'answer ^ 42'.

Any suggestions?

Cheers,
Doru


-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] reflection examples

2013-08-21 Thread Tudor Girba
Hi,


On Tue, Aug 20, 2013 at 10:40 PM, Stéphane Ducasse 
stephane.duca...@inria.fr wrote:


 On Aug 20, 2013, at 10:29 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi,

 I am preparing a set of talks that have reflection at the center.

 Obviously, I want to use Pharo to demonstrate reflection. I am now looking
 for examples that can be explained to programmer newbies (actually,
 managers). I am particularly looking for examples that include adaptation
 (not just inspection) and that can show that reflection is valuable.

 I already have some examples in mind, but they might not appear
 particularly valuable. For example:
 - inspecting a class: Object methods.
 - adapting a class: Object compile: 'answer ^ 42'.


 Scaffolding patterns (read them)
 Increase productivity when brainstorming.


What patterns are you referring to specifically? Any link?


 Use DNU to compile on the fly some methods or to copy methods when you are
 designing a new piece of functionality


Yes, that is a nice path, and I am looking for specific scenarios that can
be used for a short demo. Any ideas?


 Proxy how to implement them nicely


Proxies are indeed interesting and not difficult to explain, but the
examples I think of (such as a facade, or a logger) do not really show
adaptation. Does anyone have other examples?

Cheers,
Doru





 Any suggestions?

 Cheers,
 Doru


 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] default of completion

2013-08-21 Thread Tudor Girba
Completion should always be on. If it is perceived to be not useful, it
means the completion identification mechanism must be improved. Turning the
completion off will not make it likely to improve the mechanism behind.

Doru


On Wed, Aug 21, 2013 at 3:02 PM, Camillo Bruni camillobr...@gmail.comwrote:

 use startup preferences and your done.
 @rmod we prefer it on.

 On 2013-08-21, at 15:00, Alexandre Bergel alexandre.ber...@me.com wrote:

  Hi!
 
  Should it not be better to have the automatic code completion turned off?
  90% of the time I do not want to see it. Am I the only one to experience
 this?
 
  I know this has been discussed some times ago, but this is really
 annoying.
 
  Alexandre
  --
  _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
  Alexandre Bergel  http://www.bergel.eu
  ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] -= First Visualization Contest with Roassal =-

2013-08-23 Thread Tudor Girba
Great idea!

Doru


On Fri, Aug 23, 2013 at 8:31 AM, Alexandre Bergel
alexandre.ber...@me.comwrote:

 Dear colleagues and friends,

 We are happy to announce the First Visualization Contest with Roassal.

 What can I win?
 - 150 euros, sponsored by ObjectProfile
 - a über-cool ObjectProfile T-shirt and some wonderful stickers
 - maximum publicity of your work
 - a nice award certificate, delivered during ESUG

 How can I win?
 - you have to produce a visualization with Roassal. You can use the Pharo,
 VisualWorks or VAST version of Roassal. Here is an example of what we
 expect http://bit.ly/sunburstDemo
 - making a video is mandatory. The video will weight the most in our
 decision. The video could be of any length and has to include your name and
 say that is was made (partly or completely) with Roassal. No need to talk,
 just show off!
 - making your code available and easy to install will help you get more
 points

 How can I submit?
 - send the links of your video and other material (if needed) to
 i...@objectprofile.com Every email you will send to this email will be
 acknowledged. If you do not receive a 'Ok' from us, it means we haven't
 read it, in that case send your email again after a few days.
 - the deadline for submitting is September 4, 2013

 Mini FAQ?
 - Is the object-profile team allowed to participate? No
 - Should my visualization or code be open source? No need for this,
 whatever license is fine. However your video should be made public.
 - How can I get more information? Just comment on the facebook
 https://www.facebook.com/ObjectProfile or using Twitter @ObjectProfile or
 send email to i...@objectprofile.com
 - What I submit twice? Yes, no problem with that
 - How will judge the videos? both the esug community and the object
 profile team. The Esug community will have 30% of the final grade, object
 profile the remaining 70%
 --
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel

 http://ObjectProfile.com
 http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.







-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] -= First Visualization Contest with Roassal =-

2013-08-24 Thread Tudor Girba
Let's try to keep the noise going about this:
http://www.moosetechnology.org/news/roassal-visualization-competition

I think it would be cool to see the submissions as they get submitted.

Doru


On Fri, Aug 23, 2013 at 10:49 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Great idea!

 Doru


 On Fri, Aug 23, 2013 at 8:31 AM, Alexandre Bergel alexandre.ber...@me.com
  wrote:

 Dear colleagues and friends,

 We are happy to announce the First Visualization Contest with Roassal.

 What can I win?
 - 150 euros, sponsored by ObjectProfile
 - a über-cool ObjectProfile T-shirt and some wonderful stickers
 - maximum publicity of your work
 - a nice award certificate, delivered during ESUG

 How can I win?
 - you have to produce a visualization with Roassal. You can use the
 Pharo, VisualWorks or VAST version of Roassal. Here is an example of what
 we expect http://bit.ly/sunburstDemo
 - making a video is mandatory. The video will weight the most in our
 decision. The video could be of any length and has to include your name and
 say that is was made (partly or completely) with Roassal. No need to talk,
 just show off!
 - making your code available and easy to install will help you get more
 points

 How can I submit?
 - send the links of your video and other material (if needed) to
 i...@objectprofile.com Every email you will send to this email will be
 acknowledged. If you do not receive a 'Ok' from us, it means we haven't
 read it, in that case send your email again after a few days.
 - the deadline for submitting is September 4, 2013

 Mini FAQ?
 - Is the object-profile team allowed to participate? No
 - Should my visualization or code be open source? No need for this,
 whatever license is fine. However your video should be made public.
 - How can I get more information? Just comment on the facebook
 https://www.facebook.com/ObjectProfile or using Twitter @ObjectProfile
 or send email to i...@objectprofile.com
 - What I submit twice? Yes, no problem with that
 - How will judge the videos? both the esug community and the object
 profile team. The Esug community will have 30% of the final grade, object
 profile the remaining 70%
 --
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel

 http://ObjectProfile.com
 http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.







 --
 www.tudorgirba.com

 Every thing has its own flow




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] [ann] dynamic browsers with glamour

2013-08-25 Thread Tudor Girba
Hi,

Here is a little announcement for those that like Glamour.

Andrei and I worked on making Glamour more dynamic by pushing the
presentation definition at execution, rather than at browser construction
time.

To achieve dynamic presentation creation, before you needed to use the
GLMDymamicPresentation. For example, the MooseFinder was built like:

MooseFindercompose
   self finder show: [ :a |
  a dynamic
 display: [:each |
| dynamic |
dynamic := GLMCompositePresentation new.
each mooseInterestingEntity mooseFinderPresentationsIn: dynamic.
dynamic ] ].

Now, the same code becomes:

MooseFindercompose
   self finder show: [ :a :each |
  each mooseInterestingEntity mooseFinderPresentationsIn: a ].

You can see more details here:
http://www.humane-assessment.com/blog/building-dynamic-browsers-with-glamour

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Rubrik, scroll to end?

2013-08-27 Thread Tudor Girba
I also thinks it sounds good now. I love this type of discussions.

Doru


On Tue, Aug 27, 2013 at 3:19 PM, Stephan Eggermont step...@stack.nl wrote:


 Alain wrote:
 Maybe something like:
 #scrollToEndOfText, #scrollToBeginningOfText, #scrollToEndOfLine,
 #scrollToBeginningOfLine.
 #pageUp, #pageDown, #pageLeft, #pageRight.

 Clear to me, thank you

 Stephan





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] a weak on:do:/when:do:

2013-08-28 Thread Tudor Girba
Does this work?

Doru


On Wed, Aug 28, 2013 at 11:54 AM, Stéphane Ducasse 
stephane.duca...@inria.fr wrote:

 whenListChanged: aBlock
 Specify a block to value after the contents of the list has
 changed

 Basically when you set a new list of items

 api: #event
 | block |
 block := [ :announcement :ann |
 aBlock
 cull: announcement newContents
 cull: announcement oldContents
 cull: announcement
 cull: ann ].
 listAnnouncer weak
 when: ValueChanged
 do: block




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] a weak on:do:/when:do:

2013-08-28 Thread Tudor Girba
That is what I knew, too. I asked because the mail seemed to suggest that
it would work :).

Doru


On Wed, Aug 28, 2013 at 12:54 PM, Esteban Lorenzano esteba...@gmail.comwrote:

 no, it is not.
 that will keep the registry forever because it acts over a block (no
 ephemerons, remember)

 Esteban

 On Aug 28, 2013, at 11:56 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Does this work?

 Doru


 On Wed, Aug 28, 2013 at 11:54 AM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:

 whenListChanged: aBlock
 Specify a block to value after the contents of the list has
 changed

 Basically when you set a new list of items

 api: #event
 | block |
 block := [ :announcement :ann |
 aBlock
 cull: announcement newContents
 cull: announcement oldContents
 cull: announcement
 cull: ann ].
 listAnnouncer weak
 when: ValueChanged
 do: block




 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] It was a productive and nice sprint.

2013-08-28 Thread Tudor Girba
Thank you!

Where can I see the pointer explorer?

Doru




On Wed, Aug 28, 2013 at 9:00 PM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 Thanks all for your good energy.
 I will push some of the fixes in the stream too :)

 For the non participating guys we got
 - compiler fixes
 - faster tests
 - cleans in morphic
 - better pointer explorer
 - critics browser working
 - grease better configuration
 - and many more…

 Stef




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] It was a productive and nice sprint.

2013-08-29 Thread Tudor Girba
Yes! I would love to have such a tool.

Doru


On Thu, Aug 29, 2013 at 9:32 AM, Igor Stasenko siguc...@gmail.com wrote:




 On 29 August 2013 08:53, Stéphane Ducasse stephane.duca...@inria.frwrote:

 in the bug tracker

 Igor spent the day chasing bad registration hanging around and fixing the
 tools to let him
 get there.


 unfortunately i didn't managed to chase them all.
 found couple leaks, but there are more which still escaping :(

 what i want to do is to write small tracer which will search for local
 roots of set of objects.


 stef

 On Aug 29, 2013, at 7:00 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Thank you!

 Where can I see the pointer explorer?

 Doru




 On Wed, Aug 28, 2013 at 9:00 PM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:

 Thanks all for your good energy.
 I will push some of the fixes in the stream too :)

 For the non participating guys we got
 - compiler fixes
 - faster tests
 - cleans in morphic
 - better pointer explorer
 - critics browser working
 - grease better configuration
 - and many more…

 Stef




 --
 www.tudorgirba.com

 Every thing has its own flow





 --
 Best regards,
 Igor Stasenko.




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Moose-dev] Some FAMIX questions

2013-08-29 Thread Tudor Girba
+100

Doru


On Thu, Aug 29, 2013 at 9:58 PM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 nice analysis.
 I really hope that using smarter class structure based on Slot we can
 offer a solution in the future.


 On Aug 29, 2013, at 6:24 PM, Stephan Eggermont step...@stack.nl wrote:

  Currently, quite a lot of space seem to be taken up by not-filled
 instvars.
  In my Delphi based Whitestar model, 406085 out of 664371
  are either nil or empty sets. In a JHotDraw model from inFusion
  it is 724408 out of 1351527
 
  Stephan
 
 
  FAMeasurementsmeasure
varSize := mClass instSize.
instSize := mClass allInstances size.
nrNil := 0.
nrEmpty := 0.
mClass allInstancesDo: [ :instance |
1 to: varSize do: [:varIndex | |value|
value := instance instVarAt: varIndex.
value ifNil: [ nrNil := nrNil+1 ].
value isCollection ifTrue: [
value ifEmpty: [ nrEmpty := nrEmpty+1 ] ]
 ] ]
 
  MeasureFAMIXinitializeMeasurements
FAMIXEntity withAllSubclassesDo: [ :each |
self measurements add: (FAMeasurements new
  mClass: each;
  yourself). ]
 
  MeasureFAMIXrun
self initializeMeasurements.
measurements do: [ :each | each measure]
 
  MeasureFAMIXsum
nrOfVars := 0.
nrEmpty := 0.
measurements do: [ :measurement |
nrOfVars := nrOfVars + (measurement varSize * measurement
 instSize).
nrEmpty := nrEmpty + measurement nrEmpty + measurement
 nrNil].
 
  In Famix-SelfMeasurements on smalltalkhub
  ___
  Moose-dev mailing list
  moose-...@iam.unibe.ch
  https://www.iam.unibe.ch/mailman/listinfo/moose-dev





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] No more dirty packages in Pharo

2013-09-01 Thread Tudor Girba
Ok, great. I loaded ConfigurationOfMagritte3 #development, and Grease
loaded clean. Thank you!

The only remaining problem was asMorph in Magritte-Morph, but I fixed it
now, so Magritte loads clean in Pharo 2.0.

Cheers,
Doru



On Sun, Sep 1, 2013 at 7:29 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Great.

 What version?

 Doru


 On Fri, Aug 30, 2013 at 12:59 PM, Damien Cassou 
 damien.cas...@gmail.comwrote:

 Hi,

 I've fixed Magritte and Grease configurations so that loading these
 projects do not dirty any pharo package anymore.

 Best

 --
 Damien Cassou
 http://damiencassou.seasidehosting.st

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

 ___
 Magritte, Pier and Related Tools ...
 https://www.iam.unibe.ch/mailman/listinfo/smallwiki




 --
 www.tudorgirba.com

 Every thing has its own flow




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] self foo: (var := …) vs var := …. self foo: var

2013-09-01 Thread Tudor Girba
As far as I know, it was the same problem that induced the Metacello loading 
problem related with SmallInteger.

Doru


On Sep 1, 2013, at 5:37 PM, Alexandre Bergel alexandre.ber...@me.com wrote:

 Ok, thanks!
 
 Alexandre
 
 
 On Sep 1, 2013, at 10:01 AM, Camillo Bruni camillobr...@gmail.com wrote:
 
 this is a VM problem,
 
 Use the latest (unstable) vm from here: http://files.pharo.org/vm/pharo/
 Esteban updated the VM
 
 
 
 On 2013-09-01, at 15:02, Alexandre Bergel alexandre.ber...@me.com wrote:
 Hi!
 
 I am facing a strange situation:
 
 The following expression raises an error:
 -=-=-=-=-=-=-=-=-=
 rawView add: (helpLabel := (ROElement on: 'Click here!') + ROLabel). 
 -=-=-=-=-=-=-=-=-=
 
 Apparently, what is sent as argument to #add: is an integer. 
 
 I have to update my code with :
 -=-=-=-=-=-=-=-=-=
 (helpLabel := (ROElement on: 'Click here!') + ROLabel). 
 rawView add: helpLabel.
 -=-=-=-=-=-=-=-=-=
 
 To not have an error.
 
 This is really strange! By the way, this looks like the issue with 
 Metacello?
 
 Alexandre
 
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 
 
 
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 

--
www.tudorgirba.com

Every successful trip needs a suitable vehicle.







Re: [Pharo-dev] Distributing File Resources

2013-09-03 Thread Tudor Girba
Hi Jeff,

Would you have an interest looking into this and prototyping a solution?

Doru


On Tue, Sep 3, 2013 at 12:44 PM, J.F. Rick s...@je77.com wrote:

 I'm surprised this doesn't exist yet. It seems like it would be a natural
 thing to be part of Monticello.

 Cheers,

 Jeff


 On Tue, Sep 3, 2013 at 11:29 AM, Marcus Denker marcus.den...@inria.frwrote:

 What I would like to have is

 - A way to save files per package in the image in a virtual file system
  - Monticello support to save that virtual file system as part of the
 .mcz

 We could clean up *a lot* of methods in the image and even save memory:
 right now
 the save Base64 encoded strings in methods means that we have the data
 two times: the string literal and the
 object created from it. (and the source on disk).


 On Sep 3, 2013, at 11:23 AM, p...@highoctane.be wrote:

 yes that would be great to have indeed.



 On Tuesday, September 3, 2013, J.F. Rick s...@je77.com wrote:
  Hi everyone,
  I've been trying to move things over to Pharo and may be a bit more
 active on the list. Part of that is trying to use smalltalkhub to manage my
 code. Since I do a lot of visual work, I tend to have a lot of images (and
 sounds) to manage. I'd like to be able to distribute them easily but I
 can't seem to find a way to upload them to a shared directory. In Squeak,
 there was this idea of .SAR files for distributing files. Is there a good
 solution for this outside of the Seaside approach of embedding the file
 information in class methods. I'm talking about hundreds of files and
 multiple MBs here, rather than one or two small files.
  Cheers,
  Jeff
  --
  Jochen Jeff Rick, Ph.D.
  http://www.je77.com/
  Skype ID: jochenrick

 --
 ---
 Philippe Back
 Dramatic Performance Improvements
 Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
 Mail:p...@highoctane.be | Web: http://philippeback.eu
 Blog: http://philippeback.be | Twitter: @philippeback
 Youtube: http://www.youtube.com/user/philippeback/videos

 High Octane SPRL
 rue cour Boisacq 101 | 1301 Bierges | Belgium

 Pharo Consortium Member - http://consortium.pharo.org/
 Featured on the Software Process and Measurement Cast -
 http://spamcast.libsyn.com
 Sparx Systems Enterprise Architect and Ability Engineering EADocX Value
 Added Reseller







 --
 Jochen Jeff Rick, Ph.D.
 http://www.je77.com/
 Skype ID: jochenrick




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [About Documentation] Teach, Don't Tell / Steve Losh

2013-09-04 Thread Tudor Girba
+1

Doru


On Wed, Sep 4, 2013 at 2:13 PM, Camillo Bruni camillobr...@gmail.comwrote:

 I really liked it!
 thanks for the link :)

 On 2013-09-04, at 06:34, Sven Van Caekenberghe s...@stfx.eu wrote:

  Pretty well written piece about real documentation:
 
   http://stevelosh.com/blog/2013/09/teach-dont-tell/
 
  Sven
 
  --
  Sven Van Caekenberghe
  Proudly supporting Pharo
  http://pharo.org
  http://association.pharo.org
  http://consortium.pharo.org
 
 




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] The Moldable Debugger Framework

2013-09-08 Thread Tudor Girba
Hi,

Great job, Andrei!

Just a couple of complementary remarks:
- Moldable tools offer a significant departure from the original Smalltalk
environment. Just think about it: we pride ourselves on our live
environment, yet the default tools are utterly static. In contrast, the
moldable debugger lets you switch change your debugging tools while
debugging. Another example from the same family is the GTInspector: there
too you can switch the inspection workflow and presentation while
inspecting. Live should describe everything in our environment, not just
the code model.
- The Moldable Debugger also brings enhanced presentations into the
debugger. For example, in the Glamour-specific debugger instead of only
textual presentations of your objects, you get a visualization that shows
the schematics of your browser.
- But, the Moldable Debugger is not just a debugger or a collection of
debuggers, it's an engine for building your own debuggers. And the great
thing about it is that it makes it cheap. A couple of hundred lines of code
cheap. This was made possible through to a complete rewrite of the debugger
model that is essentially integrated in Pharo 3.0.
- By making it cheap, a moldable tool opens another door: if you spend your
energy building a framework, you should spend a little fraction of the
overall effort and ship dedicated tools to handle that framework, too. This
can increase the value of your framework significantly. For example, in
Moose, we now have a browser dedicated for developing and analyzing
parsers, we have debuggers for PetitParser and Glamour, we have dedicated
editors for building interactive tools like Roassal or Glamour, and we have
enhancements to the GTInspector for various object types we work often
with. This makes Moose much more than a library: it makes it a versatile
environment with which you can craft your own analyses cheaply. Yet, the
cost of these additional tools is tiny compared with the overall cost of
building the engines.

All in all, please take a bit of time and look into this work. Moose offers
examples of how it looks in practice, but the moldable tools should be used
for any Pharo project. Yes, having worked on this I am biased, but I
believe if we go on this route we can redefine what the IDE means. And this
can be a huge opportunity both for Pharo and for Moose.

Cheers,
Doru




On Sun, Sep 8, 2013 at 12:31 AM, Andrei Vasile Chis 
chisvasileand...@gmail.com wrote:

 Hi,

 I'd like to announce the first version of the Moldable Debugger.
 It is a framework for creating and working with domain specific debuggers.

 It's integrated into Moose and it currently comes with three debuggers:
 one for announcements, one for PetitParser and one for Glamour.

 More information can be found here: *
 http://scg.unibe.ch/research/moldabledebugger*
 A video introducing the framework is here: *https://vimeo.com/73980431*
 (more are on the way)

 Cheers,
 Andrei




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] cannot commit with gofer to sthub (HTTP 403)

2013-09-10 Thread Tudor Girba
Hi,

It seems that I cannot commit with Gofer on STHub. I get a 403.

If I do it via the regular Monticello browser, it works just fine.

I am on the latest Pharo 2.0 and I use a script that goes like this:
Gofer new
url: 'http://www.smalltalkhub.com/mc/Moose/MooseAlgos/main/';
package: 'ConfigurationOfMooseAlgos';
commit: 'version generated by Snapshotcello'

with the url being already authenticated beforehand.

I also tried by passing the url:username:password: explicitly, but this has
the same 403 effect.

Anyone knows what the issue is?

Cheers,
Doru


-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] cannot commit with gofer to sthub (HTTP 403)

2013-09-10 Thread Tudor Girba
As I said, I was using the latest Pharo 2.0.

Doru


On Tue, Sep 10, 2013 at 9:36 AM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 which version of the image are you using?

 Stef


 Hi,

 It seems that I cannot commit with Gofer on STHub. I get a 403.

 If I do it via the regular Monticello browser, it works just fine.

 I am on the latest Pharo 2.0 and I use a script that goes like this:
 Gofer new
 url: 'http://www.smalltalkhub.com/mc/Moose/MooseAlgos/main/';
  package: 'ConfigurationOfMooseAlgos';
 commit: 'version generated by Snapshotcello'

 with the url being already authenticated beforehand.

 I also tried by passing the url:username:password: explicitly, but this
 has the same 403 effect.

 Anyone knows what the issue is?

 Cheers,
 Doru


 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] cannot commit with gofer to sthub (HTTP 403)

2013-09-11 Thread Tudor Girba
Hi,

Yes, I know that. I was just saying that I tried multiple variations just
in case someone wanted to know.

The debugger is not particularly helpful here: I just get a 403 response
which means that the authentication fails. I cannot see where the problem
is.

Cheers,
Doru


On Tue, Sep 10, 2013 at 7:22 PM, MartinW w...@fastmail.fm wrote:

 Tudor Girba-2 wrote
  with the url being already authenticated beforehand.
 
  I also tried by passing the url:username:password: explicitly, but this
  has
  the same 403 effect.
 
  Anyone knows what the issue is?

 At least I know that second part:
 *If the repository is already present* in the image sending
 url:username:password: to a Gofer instance has no effect at all.

 So if your repository is in the image without username and password sending
 url:username: 'correctName' password: 'correctPassword' will change
 nothing.
 You have to manually edit the repository info.

 On the other hand - if you have a repository with correct username and
 password you can send url:username: 'someNonsense' password:
 'wrongPassword'
 and everything will still work correctly.

 If you just get something via Gofer from a public repository you have the
 repository added by Gofer and when you later want to push to the repository
 via Gofer and provide your username and password - you get an error.

 That's why i was asking about programatically manipulating repositories:

 http://stackoverflow.com/questions/18100136/manipulating-repositories-for-specific-monticello-packages-programatically



 --
 View this message in context:
 http://forum.world.st/cannot-commit-with-gofer-to-sthub-HTTP-403-tp4707412p4707523.html
 Sent from the Pharo Smalltalk Developers mailing list archive at
 Nabble.com.




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] [ann] moose 4.8

2013-09-12 Thread Tudor Girba
We are happy to announce version 4.8 of the Moose Suite:
http://moosetechnology.org/download/4.8

Description
--

This was supposed to be a minor release, but in the end it turned out to be
a major release with significant improvements.

The key highlights are:
- Based on Pharo 2.0.
- All built-in visualizations use Roassal.
- Roassal received a significant performance boost and new smart graph
layouts like TreeMapLayout or ForceBasedLayout.
- Roassal uses Athens for nice looking vectorial graphics.
- New charting engine based on Roassal: Graph-ET.
- Glamour changed to enable dynamic scripts, while still remaining backward
compatible.
- Glamour received a RubricTextPresentation for using the new Rubric text
morph.
- Glamour, Roassal, EyeSee, Graph-ET editors are more robust when dealing
with errors in scripts.- New GTDebugger with dedicated workflows for
Announcements, PetitParser and Glamour itself.
- Extended GTInspector for several object types.
- Usable version of GTMetaceller for handling Metacello configurations.
- FAMIX was strengthen to handle functions better in various programming
languages.
- New free type fonts and simpler whitespace-loving theme.
- Lower memory footprint for large models.
- Faster MSE import.

A list of issues addressed in this release can be found at:
http://code.google.com/p/moose-technology/issues/list?can=1q=status=Fixed%20milestone=4.8


Installation
--

The Moose Suite 4.8 comes for each platform as a separate bundle:
- Mac:
https://dl.dropboxusercontent.com/u/18323746/Moose/moose_suite_4_8-mac.zip
- Windows:
https://dl.dropboxusercontent.com/u/18323746/Moose/moose_suite_4_8-win.zip
- Linux:
https://dl.dropboxusercontent.com/u/18323746/Moose/moose_suite_4_8-linux.zip

The Moose Suite 4.8 can also be loaded in a Pharo 2.0 image either from the
Configuration Browser, or by executing the following script:

Gofer new
  smalltalkhubUser: 'Moose' project: 'Moose';
  package: 'ConfigurationOfMoose';
  load.
((Smalltalk at: #ConfigurationOfMoose)
project version: '4.8-snapshot') load


Enjoy,
The Moose Team

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [ann] moose 4.8

2013-09-13 Thread Tudor Girba
Yeah, I used to work with Smalltalk quite a lot.

Now, I only work with Pharo, and I do not miss Smalltalk at all :)

Doru




On Fri, Sep 13, 2013 at 11:11 AM, Damien Cassou damien.cas...@gmail.comwrote:

 On Fri, Sep 13, 2013 at 11:05 AM, Serge Stinckwich
 serge.stinckw...@gmail.com wrote:
  Ouaa, there is still PL/1 on the earth ?


 yes! and Smalltalk too :-)

 --
 Damien Cassou
 http://damiencassou.seasidehosting.st

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




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [ann] moose 4.8

2013-09-13 Thread Tudor Girba
Pharo is Pharo :)

http://www.tudorgirba.com/blog/pharo-is-pharo

Doru


On Fri, Sep 13, 2013 at 11:18 AM, kilon theki...@yahoo.co.uk wrote:

 pharo is not smalltalk ? o_O

 it certainly fooled me



 --
 View this message in context:
 http://forum.world.st/ann-moose-4-8-tp4707988p4708053.html
 Sent from the Pharo Smalltalk Developers mailing list archive at
 Nabble.com.




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Seaside News] Smalltalkhub, ConfigurationOfSeaside3, Seaside3.1

2013-09-14 Thread Tudor Girba
Great work!

Doru


On Sep 14, 2013, at 10:33 AM, Johan Brichau jo...@inceptive.be wrote:

 Hi Seasiders,
 
 The Seaside repository moved to Smalltalkhub, a new ConfigurationOfSeaside3 
 was created and Seaside 3.1 is in release candidate mode.
 
 Current stable release for all platforms is 3.0.8 (with a final bugfix 
 release 3.0.9 coming up).
 Seaside 3.1 has all tests green on Pharo 1.4 and 2.0. We are working on 
 Gemstone and Squeak 
 
 Seaside and all Seaside team curated projects can be found here:
   http://www.smalltalkhub.com/#!/~Seaside
 
 We have grouped all Metacello configurations for these projects in a single 
 repository: 
   http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main
 
 Important: there now is a single configuration for both Seaside 3.0 and 
 Seaside 3.1: ConfigurationOfSeaside3
 
 To load current stable Seaside 3.0.8:
 
   Gofer new 
   url: 
 'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
   package: 'ConfigurationOfSeaside3';
   load.
   ((Smalltalk at: #ConfigurationOfSeaside3) project version: #stable) load
 
 To load Seaside 3.1.0:
 
   ((Smalltalk at: #ConfigurationOfSeaside3) project version: '3.1.0') load
 
 Stay tuned for a follow-up email on Seaside3.1
 
 For the Seaside team,
 Johan, Philippe, Dale, John

--
www.tudorgirba.com

To utilize feedback, you first have to acquire it.




Re: [Pharo-dev] moose build under 2.0

2013-09-16 Thread Tudor Girba
Hi,

We typically load development on the CI server:

REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
./pharo $JOB_NAME.image config $REPO ConfigurationOfMoose --install=development

But, I think you are doing something else other than loading the code, and I 
think the problem is that at least in the version that we load, Grease defines 
its own package implementation which conflicts with RPackage. Could you confirm?

Cheers,
Doru



On Sep 16, 2013, at 8:51 PM, Camillo Bruni camillobr...@gmail.com wrote:

 I'm trying to fix the VM acceptance test. I currently have troubles loading 
 moose.
 What is the standard location of the configuration for Pharo 2.0?
 
 +++
 + ./pharo ./Pharo.image config http://www.smalltalkhub.com/mc/Moose/Moose/main
 ConfigurationOfMoose --install=stable
 
 
 ===
 Notice: Installing ConfigurationOfMoose stable
 ===
 
  Startup Error: GRError: 'Grease-Tests-Pharo-Core' depends on unknown 
 package 'Grease-Pharo-Core'
 
 GRPackage class(GRObject class)error:
 GRPackage(GRObject)error:
 GRPackageresolveWith: in Block: [self error: self name printString , ' 
 depends on ...etc...
 Dictionaryat:ifAbsent:
 GRPackageresolveWith: in Block: [:each | aDictionary...
 OrderedCollectioncollect:
 GRPackageresolveWith:
 GRPackage classpackages in Block: [:each | each resolveWith: packages]
 ...
 +++
 

--
www.tudorgirba.com

Every now and then stop and ask yourself if the war you're fighting is the 
right one.






Re: [Pharo-dev] moose build under 2.0

2013-09-16 Thread Tudor Girba
Indeed. Torsten pointed out the same thing.

We will look into it.

Doru


On Sep 16, 2013, at 11:15 PM, Camillo Bruni camillobr...@gmail.com wrote:

 actually you pointed out the problem :)
 
 we previously load seaside into the same image, seems like the grease 
 versions do not like each other very much ;)
 
 
 On 2013-09-16, at 17:26, Tudor Girba tu...@tudorgirba.com wrote:
 
 Hi,
 
 We typically load development on the CI server:
 
 REPO=http://www.smalltalkhub.com/mc/Moose/Moose/main
 ./pharo $JOB_NAME.image config $REPO ConfigurationOfMoose 
 --install=development
 
 But, I think you are doing something else other than loading the code, and I 
 think the problem is that at least in the version that we load, Grease 
 defines its own package implementation which conflicts with RPackage. Could 
 you confirm?
 
 Cheers,
 Doru
 
 
 
 On Sep 16, 2013, at 8:51 PM, Camillo Bruni camillobr...@gmail.com wrote:
 
 I'm trying to fix the VM acceptance test. I currently have troubles loading 
 moose.
 What is the standard location of the configuration for Pharo 2.0?
 
 +++
 + ./pharo ./Pharo.image config 
 http://www.smalltalkhub.com/mc/Moose/Moose/main
 ConfigurationOfMoose --install=stable
 
 
 ===
 Notice: Installing ConfigurationOfMoose stable
 ===
 
  Startup Error: GRError: 'Grease-Tests-Pharo-Core' depends on unknown 
 package 'Grease-Pharo-Core'
 
 GRPackage class(GRObject class)error:
 GRPackage(GRObject)error:
 GRPackageresolveWith: in Block: [self error: self name printString , ' 
 depends on ...etc...
 Dictionaryat:ifAbsent:
 GRPackageresolveWith: in Block: [:each | aDictionary...
 OrderedCollectioncollect:
 GRPackageresolveWith:
 GRPackage classpackages in Block: [:each | each resolveWith: packages]
 ...
 +++
 
 
 --
 www.tudorgirba.com
 
 Every now and then stop and ask yourself if the war you're fighting is the 
 right one.
 
 
 
 
 

--
www.tudorgirba.com

What is more important: To be happy, or to make happy?




[Pharo-dev] scripts for automating the moose release

2013-09-16 Thread Tudor Girba
Hi,

I wrote a little blog post describing the process of releasing Moose:
http://www.humane-assessment.com/blog/automating-moose-4-8-release

Perhaps this might be useful for others. And perhaps we can find ways to 
improve it.

Cheers,
Doru


--
www.tudorgirba.com

The coherence of a trip is given by the clearness of the goal.







Re: [Pharo-dev] Seaside Continuous Integration on ci.inria.fr

2013-09-16 Thread Tudor Girba
+100

This is so important.

Doru


On Sep 16, 2013, at 6:09 PM, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 I deeply appreciate your effort and I want to thank the seaside group.
 
 Stef
 
 On Sep 16, 2013, at 11:20 AM, Philippe Marschall kus...@gmx.net wrote:
 
 Hi
 
 This is a short write up on the state of Seaside on ci.inria.fr.
 
 After a week of work we have Metacello based builds running green at 
 ci.inria.fr.
 
 Grease 1.0 and 1.1 are green on both Pharo 2.0 and 3.0 [1]. Updating Pier 3 
 to use the latest Grease 1.0 should fix the Pier 3 build.
 
 For Seaside 3.x we load the Metacello group 'CI' and run the tests in the 
 packages matching the following regex
 ((Seaside)|(Comet)|(Javascript)|(RSS)|(JQuery)|(Prototype)|(Scriptaculous))-.*.
  Currently we have no way of running SLint/Slime and fake Checkstyle like in 
 [3]. If anybody knows how to do with please let us know. There are still 
 some issues with file library in Pharo 3.0 and Seaside 3.0. They are only 
 fixed in Seaside 3.1.
 
 Please try to keep the build green, otherwise we'll get spammed with emails.
 
 Currently we keep all the build (5GB already). Do we really need this?
 
 [1] https://ci.inria.fr/pharo-contribution/job/Grease/
 [2] https://ci.inria.fr/pharo-contribution/job/Seaside/
 [3] http://jenkins.lukas-renggli.ch/view/Seaside%203.1/job/Seaside%203.1/
 
 Cheers
 Philippe
 
 
 
 

--
www.tudorgirba.com

In a world where everything is moving ever faster,
one might have better chances to win by moving slower.






Re: [Pharo-dev] Smalltalkhub = 503

2013-09-18 Thread Tudor Girba
Thank you, Nicolas.

Just for the record: Although people send mails mostly when SmalltalkHub is
down, I am sure everyone is happy that SmalltalkHub exists. I for one am :)

Doru


On Tue, Sep 17, 2013 at 5:40 PM, Guillermo Polito guillermopol...@gmail.com
 wrote:

 Thanksss :)


 On Tue, Sep 17, 2013 at 5:32 PM, nicolas petton 
 petton.nico...@gmail.comwrote:

 Hi!

 It's up again. Mongo was down for some reason, I'm looking at it now.

 Sorry for the inconvenience,
 Nico


 2013/9/17 Guillermo Polito guillermopol...@gmail.com

 it's down and I need to commit!!






-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Moose-dev] Code functionality assessment

2013-09-23 Thread Tudor Girba
I blogged it:)
http://www.moosetechnology.org/news/assessing-ode-with-graphet

Cheers,
Doru



On Mon, Sep 23, 2013 at 7:36 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Very nice work, Natalia!

 Doru


 On Mon, Sep 23, 2013 at 6:12 PM, Natalia Tymchuk 
 natalia.tymc...@unikernel.net wrote:

  Hello,
 I wrote another blog post concerning my project on Google  Summer of
 Code, and there's how I assessed the results using Graph-ET.

 http://nataliatymchuk.blogspot.com/2013/09/code-functionality-assessment.html

 Best regard,
 Natalia


 ___
 Moose-dev mailing list
 moose-...@iam.unibe.ch
 https://www.iam.unibe.ch/mailman/listinfo/moose-dev




 --
 www.tudorgirba.com

 Every thing has its own flow




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [Moose-dev] Code functionality assessment

2013-09-23 Thread Tudor Girba
Very nice work, Natalia!

Doru


On Mon, Sep 23, 2013 at 6:12 PM, Natalia Tymchuk 
natalia.tymc...@unikernel.net wrote:

  Hello,
 I wrote another blog post concerning my project on Google  Summer of Code,
 and there's how I assessed the results using Graph-ET.

 http://nataliatymchuk.blogspot.com/2013/09/code-functionality-assessment.html

 Best regard,
 Natalia


 ___
 Moose-dev mailing list
 moose-...@iam.unibe.ch
 https://www.iam.unibe.ch/mailman/listinfo/moose-dev




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Dynamically adding nodes to Roassal

2013-09-30 Thread Tudor Girba
You would get answers to these questions faster on the moose mailing list.

Doru


On Mon, Sep 30, 2013 at 8:13 AM, roberto.mine...@usi.ch 
roberto.mine...@usi.ch wrote:

 Anyone can help here?

 On Sep 20, 2013, at 5:32 PM, roberto.mine...@usi.ch wrote:

  Hi,
 
  It's me again..
 
  I managed to have something *almost* working, but the behavior of the
 ROTreeMapLayout is not clear to me.
 
  Using the ROMondrianViewBuilder I can specify the size of the Tree map,
 but then I am not able to dynamically add nodes. Well, at least I did not
 manage to do that. So I moved to pure Roassal, as suggested by Alejandro.
 
  Here's how my actual code looks like: http://ws.stfx.eu/CFM522Z9X3ES
 
  I am a beginner with Roassal, so I spend some time to figure out how to
 draw the tree map in this way. I did not really quite understand why I have
 to add the ROBox new size: 200 to the ROElement, but I'll figure it out.
 
  The thing is when I try to add the new node. Following, again,
 Alejandro's advice I am writing something like:
 
  I add a new node, re-layout the view, and signalUpdate
  rawView add: ((ROElement on: 10) + (ROBox new size: 200)).
  (ROTreeMapLayout withWeightBlock: [ :e | e model ]) applyOn: rawView
 elements.
  rawView signalUpdate .
 
  The result is quite strange, the view is indeed updated but I cannot
 understand why all sizes are messed up.
 
  My questions, in short are: How can I fix the overall size of the tree
 map? Am I doing everything correct till now?
 
  Thanks again for your help,
  Roby
 
  On Sep 20, 2013, at 11:24 AM, roberto.mine...@usi.ch wrote:
 
  Hi,
 
  I was playing around with Roassal (in particular, a tree map) and I
 have a question: Is there a way to dynamically adding nodes? I mean, once
 the view is generated to update the #nodes by adding a new node (and
 associations as well, i.e., edges) and have the visualization re-
 
  Thanks in advance.
 
  Roby
 
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] failing moose tests

2013-10-02 Thread Tudor Girba
You would get this problem anyway. Let's fix the current development version 
and the we resnapshot. In the longer term we will see how the enhancements from 
Diego can help.

Doru

Sent from my iPhone

On Oct 2, 2013, at 10:28, Stephan Eggermont step...@stack.nl wrote:

 (from pharo -dev)
 
 PharoVM-AcceptanceTest loads Moose-Stable. That is based on a snapshot.
 As the snapshot flattens the configuration, it is basically unpatchable.
 
 Stephan
 
 
 



Re: [Pharo-dev] Any visualisation for Metacello?

2013-10-03 Thread Tudor Girba
Indeed. And if you need some other information than the one shown, just let
us know and we can try to add it.

Doru


On Thu, Oct 3, 2013 at 10:13 AM, Christophe Demarey 
christophe.dema...@inria.fr wrote:

 Gofer new
 url: 'http://www.smalltalkhub.com/mc/Moose/GToolkit/main';
 package: 'ConfigurationOfGToolkit';
 load.

 (Smalltalk at: #ConfigurationOfGToolkit) project development load.

 (Smalltalk at: #GTMetaceller) open.

 Le 2 oct. 2013 à 19:03, Stéphane Ducasse a écrit :

 metaceller
 in the moose image maybe

 On Oct 2, 2013, at 6:29 PM, Damien Cassou damien.cas...@gmail.com wrote:

 Hi,


 I have to deal with complex configurations involving Pier (and some of

 its plugins), Magritte, Voyage, Mongo and Seaside. There is a bug

 somewhere because I can't load all of that. Is there any tool that

 would show me a graph of the projects and their dependencies? If there

 is no graph, is there at least some place to get the information? I

 know the #record + #loadDirective combo, but I don't understand the

 result and it does not help.


 Best


 --

 Damien Cassou

 http://damiencassou.seasidehosting.st


 Success is the ability to go from one failure to another without

 losing enthusiasm.

 Winston Churchill








-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] [ann] system attraction view

2013-10-03 Thread Tudor Girba
Hi,

I built a new visualization that has two goals:

1. show how the architecture of a system is fluid rather than rigid.
2. look good and serve as advertisement device for Moose, Roassal and Pharo.

A description of mainly point 1. can be found here:
http://www.humane-assessment.com/blog/system-attraction/

I already used it as a splash screen for a couple of presentations, and it
catches the eye.

The code can be found in Moose, in a separate tiny FAMIXSystemAttraction
class. You can invoke it on any class group (note: it can take a long time
to render for large groups).

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Pharo (cog) Vm on Windows with 2GB virtual mem

2013-10-04 Thread Tudor Girba
Hi,

As far as I can tell, you should set the limit in MBytes.

So, for 2G, you should have:
AddressSpaceLimit=2048

I am using 1GB for some Moose analyses. I benchmarked and got no sign of
slowdown.

Cheers,
Doru


On Fri, Oct 4, 2013 at 6:10 AM, Oscar EA Callaú oalva...@dcc.uchile.clwrote:

 Thanks a lot, I added

 ** **

 AddressSpaceLimit = 2147483648

 ** **

 To the .ini file and all is working smoothly. 

 ** **

 FYI, I don’t have speed problems with such memory. Of course, If I’ll
 process some big data, I’ll wait a while to get the answer, but the same
 happens in any other lang/platt. Certainty, I can do fast experiments in C,
 but I don’t get all Pharo benefits, like pausing my analysis and resuming
 it later, such thing in C (or may be any other language) would require to
 store the intermediate data into files or a database. With Pharo, I don’t
 care about that.

 ** **

 Cheers.

 ** **

 *From:* Pharo-dev [mailto:pharo-dev-boun...@lists.pharo.org] *On Behalf
 Of *Guillermo Polito
 *Sent:* Thursday, October 3, 2013 2:37 AM

 *To:* Pharo Development List
 *Subject:* Re: [Pharo-dev] Pharo (cog) Vm on Windows with 2GB virtual mem*
 ***

 ** **

 I can only guess by the comment in the commit:

 ** **


 https://gitorious.org/cogvm/blessed/commit/341e6c2e150bcde80dfea6c890bab7745b2a6d44
 

 ** **

 Can you check that?

 ** **

 Guille

 ** **

 On Thu, Oct 3, 2013 at 6:36 AM, Oscar EA Callaú oalva...@dcc.uchile.cl
 wrote:

 Thanks, but what would be the parameter?

  

 This is the default .ini

  

 [Global]

 DeferUpdate=1

 ShowConsole=0

 DynamicConsole=1

 ReduceCPUUsage=1

 ReduceCPUInBackground=0

 3ButtonMouse=0

 1ButtonMouse=0

 UseDirectSound=1

 PriorityBoost=1

 B3DXUsesOpenGL=0

 CaseSensitiveFileMode=0

  

  

 So there is no mention the paratemer to change or add.

  

 Cheers.

  

 *From:* Pharo-dev [mailto:pharo-dev-boun...@lists.pharo.org] *On Behalf
 Of *Guillermo Polito
 *Sent:* Friday, September 27, 2013 5:18 AM
 *To:* Pharo Development List
 *Subject:* Re: [Pharo-dev] Pharo (cog) Vm on Windows with 2GB virtual mem*
 ***

  

 I think latest Pharo VM supports to change the memory limit by only
 changing an ini file. Igor did that not long ago.

  

 Cheers,

 Guille

  

 On Fri, Sep 27, 2013 at 2:09 PM, Oscar E. A. Callaú 
 oalva...@dcc.uchile.cl wrote:

 Hi Guys,

  

I read in this thread

  

 http://forum.world.st/out-of-memory-cog-on-windows-td3465621.html

  

  that 512 mb limit can be avoided in windows, but a re-compilation is
 needed. I was wondering if the situation changed, and now we can pass a
 parameter. Otherwise, I would be interested if any of you has a
 pre-compiled vm with more mem.

  

 I need to run some experiments and I need 2GB (or 1.5 GB at least ) on a
 cog VM for Windows.  

  

 Thanks in advance.

  

 Oscar

  

 ** **




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [ann] system attraction view

2013-10-04 Thread Tudor Girba
Hi,


On Fri, Oct 4, 2013 at 1:41 PM, Goubier Thierry thierry.goub...@cea.frwrote:

 Hi Tudor,

 I found your visualisation very interesting, and wondered about one thing
 linked to your blog post and if I got it right.

 The visualisation you're showing is able to show, at the single class
 level, if a class is more or less regular (i.e. tidy == well designed?) but
 you show that it will loose very shortly it's tidy shape if the classes it
 joins to are added to the visualisation. And I wondered if this was a
 choice on the graph layout algorithm you've choosen, i.e. that maintaining
 the tidiness of the class could be done with a different layout algorithm?
 Maybe one which has a measure of tidiness of the class at the local level,
 and weight it against the position and attraction of its links to the other
 components in the application?


My argumentation is that if we look at a class isolated it will have a
certain shape, and because we are exposed to this view (the IDE is always
showing me only that) all the time we will optimize it such that the shape
is tidy. But if we look at the class in the context of its interactions the
shape will be less recognizable. The chosen layout is a very simple one,
and the goal is not to say whether the structure is good or bad. This is
neither good nor bad. It simply argues how steering the architecture has to
take these forces into account.

In the mean time, I'm slowly discovering we have amazing software
 architecture visualisation tools :)


They really are amazing :). If you want to get more information about it,
you can join the Moose mailing list:
http://www.moosetechnology.org/about/contact

Would really like to setup a project on that if I get the chance.


What do you mean? What kind of a project?

Cheers,
Doru


Regards,

 Thierry

 Le 03/10/2013 23:34, Tudor Girba a écrit :

 Hi,

 I built a new visualization that has two goals:

 1. show how the architecture of a system is fluid rather than rigid.
 2. look good and serve as advertisement device for Moose, Roassal and
 Pharo.

 A description of mainly point 1. can be found here:
 http://www.humane-assessment.**com/blog/system-attraction/http://www.humane-assessment.com/blog/system-attraction/

 I already used it as a splash screen for a couple of presentations, and
 it catches the eye.

 The code can be found in Moose, in a separate tiny FAMIXSystemAttraction
 class. You can invoke it on any class group (note: it can take a long
 time to render for large groups).

 Cheers,
 Doru

 --
 www.tudorgirba.com http://www.tudorgirba.com


 Every thing has its own flow


 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [ANN] Mustache templates

2013-10-04 Thread Tudor Girba
Very nice!

Doru


On Fri, Oct 4, 2013 at 1:47 PM, Sven Van Caekenberghe s...@stfx.eu wrote:


 On 04 Oct 2013, at 12:58, Norbert Hartl norb...@hartl.name wrote:

 
  Am 04.10.2013 um 12:32 schrieb Alexandre Bergel alexandre.ber...@me.com
 :
 
  What is a mustache template?
 
 
 http://norbert.hartl.name/blog/2013/10/03/mustache-templates-for-smalltalk/

 Nice!

  Norbert
 
  On 4 Oct 2013, at 03:56, Torsten Bergmann asta...@gmx.de wrote:
 
  I like to announce my smalltalk port of mustache templates.
 
  Cool!
 
  To load it do
 
  Consider making a copy into MetaRepoForPharo20 or MetaReporForPharo30
  if it is working in these versions.
 
  That way it is easily accessible via Config browser.
 
  Thx
  T.
 
 
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [ann] system attraction view

2013-10-04 Thread Tudor Girba
Hi,


On Fri, Oct 4, 2013 at 2:42 PM, Goubier Thierry thierry.goub...@cea.frwrote:



 Le 04/10/2013 14:14, Tudor Girba a écrit :

 Hi,


 On Fri, Oct 4, 2013 at 1:41 PM, Goubier Thierry thierry.goub...@cea.fr
 mailto:thierry.goub...@cea.fr** wrote:

 Hi Tudor,

 I found your visualisation very interesting, and wondered about one
 thing linked to your blog post and if I got it right.

 The visualisation you're showing is able to show, at the single
 class level, if a class is more or less regular (i.e. tidy == well
 designed?) but you show that it will loose very shortly it's tidy
 shape if the classes it joins to are added to the visualisation. And
 I wondered if this was a choice on the graph layout algorithm you've
 choosen, i.e. that maintaining the tidiness of the class could be
 done with a different layout algorithm? Maybe one which has a
 measure of tidiness of the class at the local level, and weight it
 against the position and attraction of its links to the other
 components in the application?


 My argumentation is that if we look at a class isolated it will have a
 certain shape, and because we are exposed to this view (the IDE is
 always showing me only that) all the time we will optimize it such that
 the shape is tidy. But if we look at the class in the context of its
 interactions the shape will be less recognizable. The chosen layout is a
 very simple one, and the goal is not to say whether the structure is
 good or bad. This is neither good nor bad. It simply argues how steering
 the architecture has to take these forces into account.


 Hum, my point would be that a locally well designed class is a factor to
 strive for; also that the overall architecture has it's impact on it as
 well, but not so as to so easily erase the local good property when looking
 at the visualisation, otherwise the latter may not end up so usefull,
 that's all.

 I do agree with your point, I just believe the layout could carry a bit
 more insight in trying to both show the local property the code was trying
 to achieve (and areas where it failed) and the emergence of the
 architecture coupling on it. Your representation seemed to imply that local
 good design is unimportant in the architectural view, and I'm sure this is
 not what it is supposed to convey.


There are many visualizations that try to capture good and bad, but I
distinctly did not want the visualization to be about this. It is about how
context changes the shape. As a consequence, architecture does not exist
without the context, and as the context evolves in millions of little ways,
so does architecture. Constantly. That is all.

The main goal is to support technical people argue when discussing with
managers, rather than necessarily having a say about the value.

But, here is a challenge: would you like to play with it and propose a
different approach? Btw, the current implementation has 19 lines :).


 In the mean time, I'm slowly discovering we have amazing software
 architecture visualisation tools :)


 They really are amazing :). If you want to get more information about
 it, you can join the Moose mailing list:
 http://www.moosetechnology.**org/about/contacthttp://www.moosetechnology.org/about/contact


 I'll do once I have a strong/practical incentive :) I know its there,
 Stéphane showed a lot of interesting things in it when he came here, but I
 didn't managed to organize things around that subject.


  Would really like to setup a project on that if I get the chance.


 What do you mean? What kind of a project?


 Collaborative R or RD project :) Only way I can justify working on
 something like that...

 A good fit would be visualisation of large software in my lab expertise
 area : high performance and real time massively parallel software on
 embedded systems.


Perhaps you can get some inspiration of places to use Moose in on the
humane-assessment.com site. In particular, on the blog I try to offer
examples and stories for how assessment should change the face of
development :).

Cheers,
Doru


Thierry

 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [update 3.0] #30446

2013-10-04 Thread Tudor Girba
Impressive is the right word, indeed :)

Doru


On Fri, Oct 4, 2013 at 12:08 PM, Sven Van Caekenberghe s...@stfx.eu wrote:


 On 04 Oct 2013, at 10:53, Marcus Denker marcus.den...@inria.fr wrote:

  30446
  -
 
  11719 integrate all the changes from the repository of the new debugger
https://pharo.fogbugz.com/f/cases/11719
 
  This commit contains the following main changes:
  - debugging actions are first class entities; they are defined in
 separate classes. All actions from the toolbar are added dynamically based
 on pragmas.
  - separated the spec interface into multiple widgets: stack, toolbar,
 buttons
  - have dedicated filters to hide contexts from the stack
 
  Thanks to Clara Allende and Andrei Chis!

 Impressive stuff !

  Diff information:
 
 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Debugger-MarcusDenker.160.diff
 
 http://smalltalkhub.com/mc/Pharo/Pharo30/main/Settings-Tools-MarcusDenker.48.diff
 
 http://smalltalkhub.com/mc/Pharo/Pharo30/main/DebuggerModel-MarcusDenker.76.diff
 
 http://smalltalkhub.com/mc/Pharo/Pharo30/main/DebuggerActions-MarcusDenker.60.diff
 
 http://smalltalkhub.com/mc/Pharo/Pharo30/main/DebuggerFilters-MarcusDenker.4.diff
 





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] about creating Morphic-Widgets

2013-10-06 Thread Tudor Girba
+1

Doru


On Sun, Oct 6, 2013 at 10:28 PM, Benjamin 
benjamin.vanryseghem.ph...@gmail.com wrote:

 I am in for splitting Morphic in more that one package.

 It makes things really boring to have every thing in one MC Package :(

 Ben

 On Oct 6, 2013, at 8:54 PM, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

 Hi guys

 I started to play with sorting a bit Morphic :)
 So I would like to create a new Package Morphics-Widgets with the
 following contents.


 Morphic-Widgets-Basic
  SimpleSwitchMorph
  MulticolumnLazyListMorph
  SimpleButtonMorph
  LazyListMorph
  IconicButton
  ThreePhaseButtonMorph
  CalendarMorph
 Morphic-Widgets-Pluggable
  PluggableTabButtonMorph
  PluggableButtonMorph
  PluggableTextMorph
  PluggableMultiColumnListMorph
  PluggableTextMorphWithLimits
  PluggableTabBarMorph
  PluggableListMorph
 Morphic-Widgets-NewList
  NewList
  NewListRenderer
  NewListAdapter
 Morphic-Widgets-Tab

 Morphic-Widget-MorphTreeWidget
 Morphic-Widget-MorphTreeWidget-Pagination

 I would promote Morphic-Base-ProgressBar - Morphic-ProgressBar

 So what do you think?






-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Please try to reproduce this bug

2013-10-07 Thread Tudor Girba
I just tried on Windows with:
http://files.pharo.org/platform/Pharo2.0-win.zip

and it works fine.

Doru


On Mon, Oct 7, 2013 at 11:04 AM, Goubier Thierry thierry.goub...@cea.frwrote:

 In short:

 does not happens if you use the get.pharo.org vm.

 Happens if you use the ubuntu pharo ppa.

 (ubuntu 13.04 64bits)


 Thierry

 Le 07/10/2013 10:12, Damien Cassou a écrit :

 Can you please try to reproduce this bug:


 1- Open a fresh Pharo 2.0
 2- Open Monticello
 3- Select the package AST-Core
 4- Click browse

 you get a PharoV20.sources does not exist. error message. You can't
 escape.

 Please write your findings in
 https://pharo.fogbugz.com/f/**cases/11803/PharoV20-sources-**
 does-not-exist-when-browsing-**with-Monticellohttps://pharo.fogbugz.com/f/cases/11803/PharoV20-sources-does-not-exist-when-browsing-with-Monticello
 .

 For me, it looks like the problem is in MCPackagesnapshot


 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95




-- 
www.tudorgirba.com

Every thing has its own flow


  1   2   3   4   5   6   7   8   9   10   >