Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Tudor Girba
Oh, I see now. Where was the fix committed?

Doru

On Sun, Oct 5, 2014 at 12:02 AM, Nicolai Hess nicolaih...@web.de wrote:

 2014-10-04 23:13 GMT+02:00 Tudor Girba tu...@tudorgirba.com:

 Hi,

 On Sat, Oct 4, 2014 at 11:02 PM, Hernán Morales Durand 
 hernan.mora...@gmail.com wrote:

 Hi Doru

 2014-10-04 17:43 GMT-03:00 Tudor Girba tu...@tudorgirba.com:

 Hi Hernán,

 Thanks for the feedback. Just a question: Was there anything you do
 like? :)


 One day I will write about what I like, I promise!


 Good :)


 [...]

 - When I select code, right click gives no Copy, Cut, Delete
 commands.


 This was reported. The menu is missing on purpose. I still have a hard
 time understanding why a developer needs those menu entries, but we will
 add them back. Btw, the shortcuts do work.


 In my case, because sometimes I do remote desktop over remote desktop
 over Windows and Linux, and protocols use to lost dead keys like Ctrl,
 Shift, etc.


 Ok. That makes sense. Andrei added these actions in the latest
 development version. Loading again like you said below should provide you
 those actions.

  [...]


 - Print it seems broken. It seems to print evaluation result but
 suddenly dissapears.


 What do you mean? Can you elaborate on that? Print it should behave
 like here:



 I just typed

 DateAndTime now asTime.

 and Print it displays current date and time but get quickly refreshed.
 This happens only the first time, print it again didn't show any results at
 all. Let me know if you cannot reproduce, below is how I installed GT.


 I cannot reproduce it. Print it should popup the result and the popup
 should remain until you either press Esc or you change focus to something
 else.


 This happens on choosing PrintIt from the menu.
 There is an  issue on fogbugz
 14128 https://pharo.fogbugz.com/default.asp?14128
 Print it from Playground menu does not work

 already fixed an integrated in 40276





 It should look like this:
 http://www.humane-assessment.com/blog/rethinking-print-it-in-pharo/




 - Debugger buttons Into, Through, etc.

 -- They are too small and close themselves for the importance they have.
 -- They have no caption, so you have to mouse over to know what they
 do (until you get used to)
 -- They are like too distant from the code view.


 The debugger is not in the Pharo image, so I think you are trying the
 Moose image. Is that so?


 I am trying in a fresh Pharo 3.0 image on Windows 8.1, and followed
 instructions in
 http://www.humane-assessment.com/blog/installing-gtoolkit .BTW when the
 installation finish the image seems to automatically closes, but this is
 reported in other recent post.


 Indeed, the script should have mention activateWithoutSaving instead of
 activate.


 Cheers,
 Doru


 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Inspector steals my Window !

2014-10-05 Thread Tudor Girba
This is why the Preview should be static. For the Morph preview we simply
render the form.

Doru

On Sun, Oct 5, 2014 at 12:32 AM, Nicolai Hess nicolaih...@web.de wrote:

 Inspect in  playground (inspect it from menu or with the play-icon):

 |t|
 t:=TextModel new.
 t title:'Test'.
 t openWithSpec

 It opens a window with the textfield and an inspector.
 In the inspector, choose the preview tab, your textfield window
 will dissapear from the world and only show up in the preview tab.

 Funny!
 But is there any way to get the window back to the world?




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] GT first impressions

2014-10-05 Thread stepharo


On 4/10/14 22:10, Hernán Morales Durand wrote:
Sorry if following issues were reported. I have seen so many mails 
about GT that I wanted to try it. These are my first notes and 
personal tastes, don't take them as negative just want to provide some 
feedback:


- First weird thing: The Workspace doesn't open a Workspace anymore, 
it opens a Playground window.

- When I select code, right click gives no Copy, Cut, Delete commands.
- Selecting an instance variable from the State tab, completely 
shift the code view and scrolls to a new Inspector. Is not that I 
would love to scroll back everytime to get a view on my code.

- I cannot find how to close new Inspector tabs.
- Print it seems broken. It seems to print evaluation result but 
suddenly dissapears.

- Debugger buttons Into, Through, etc.
-- They are too small and close themselves for the importance they have.
-- They have no caption, so you have to mouse over to know what they 
do (until you get used to)

-- They are like too distant from the code view.



I already reported most of them on the moose mailing-list :)
Tx!


Cheers,

Hernán







Re: [Pharo-dev] GT first impressions

2014-10-05 Thread stepharo


On 4/10/14 22:43, Tudor Girba wrote:

Hi Hernán,

Thanks for the feedback. Just a question: Was there anything you do 
like? :)


The rest of the reply is inline.


On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand 
hernan.mora...@gmail.com mailto:hernan.mora...@gmail.com wrote:


Sorry if following issues were reported. I have seen so many mails
about GT that I wanted to try it. These are my first notes and
personal tastes, don't take them as negative just want to provide
some feedback:

- First weird thing: The Workspace doesn't open a Workspace
anymore, it opens a Playground window.


That is because it is still a work in progress.

- When I select code, right click gives no Copy, Cut, Delete
commands.


This was reported. The menu is missing on purpose. I still have a hard 
time understanding why a developer needs those menu entries, but we 
will add them back. Btw, the shortcuts do work.


Doru can you add sender and implementors
because I saw that newbies are really lost when the cannot know what 
they can do.



- Selecting an instance variable from the State tab, completely
shift the code view and scrolls to a new Inspector. Is not that I
would love to scroll back everytime to get a view on my code.


The usage depends on the scenario in which you are. In most cases, 
when you do want to drill through many objects, you are likely to only 
use the playground as an entry point. When you build a more elaborate 
piece of code in the playground, you typically do not need to drill 
too much. In any case, if you want to scroll back, there are also 
keybindings that allow you to navigate: Cmd+Alt+Left/Right.


- I cannot find how to close new Inspector tabs.


This is a feature that is already planned.

- Print it seems broken. It seems to print evaluation result but
suddenly dissapears.


What do you mean? Can you elaborate on that? Print it should behave 
like here:


- Debugger buttons Into, Through, etc.

-- They are too small and close themselves for the importance they
have.
-- They have no caption, so you have to mouse over to know what
they do (until you get used to)
-- They are like too distant from the code view.


The debugger is not in the Pharo image, so I think you are trying the 
Moose image. Is that so?
In any case, the positioning of the icons will be the same everywhere 
in GT (to the right of the scope they relate to). We are still 
fiddling with the right balance in the debugger.

putting a caption would be a great point.
why forcing people to learn icons. Icons should be there to help not to 
force learning.




Cheers,
Doru

Cheers,

Hernán





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

Every thing has its own flow




Re: [Pharo-dev] Athens and TxText Re: About ways to participate in community and general negativity

2014-10-05 Thread stepharo

Thanks this is a great initiative.


On 4/10/14 22:21, Nicolai Hess wrote:


2014-10-04 12:11 GMT+02:00 stepharo steph...@free.fr 
mailto:steph...@free.fr:



What are the plans to integrate TxText?


- Igor is taking clients one by one and improving txText. We
got a new syntax hilighter.
- Then I want to replace the workspace by a TxWorkspace.
- After for athens we should rewrite all the drawOn: methods.
- We were waiting to get integration based on configurations
to include it and now this is ready.
so soon we will have
-  TxText inside Pharo
-



I made a fogbugz issue about changes to be done for
athens based morphic drawing

13790 https://pharo.fogbugz.com/default.asp?13790
Port what is needed for Athens (drawing morphs)

One is about TextMorphs, I wrote about what I had to change to make
the basic drawing working. Maybe some of it is useless with TxText
but maybe it helps.

13449 https://pharo.fogbugz.com/default.asp?13449
AthensWrapMorph can not draw TextMorphs

If we don't port/rewrite all text based morphs, we will have an
issue with this:

13448 https://pharo.fogbugz.com/default.asp?13448
No Font emphasis (bold/oblique...) on text drawn with Athens


AFAIK for the font handling in text morphs, they use the normal font
and holds the emphasis property on their own. But Athens (FreeType 
renderer)
relies on the font allone, that means if you want a bold font you 
don't take

the normal font *name* + bold emphasis, but you'll have to take the
bold font FreeType font entry, or something like that.

About changing all the drawOn: methods for athens, there is
an alternative I proposed in
13866 https://pharo.fogbugz.com/default.asp?13866
AthensFormCanvasWrapper

Font rendering bug:
The font-bug for FreeType fonts (wrong sized characters) in Athens is 
not solved.

(see screenshot)
The current solution is: Don't use the same font (+font size) for 
Athens and
Morphic. 
(http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2014-June/097128.html)

But of course, how can we enforce this?




Now I know that GTools have been used in Moose for a long
time, but its integration to Pharo REPLACING Workspace has
been a cultural shock to those that haven't used it before
(myself included, though I'm lookign forward to adapting).  I
think there'll be similar culture shock when Pharo 4 is
released, from those that don't follow the bleeding edge. I'd
strongly suggest that GTools operate for ONE release alongside
existing tools, as an additional item in the first level World
menu next to 'Workspace'.

I said the same to doru :).


Indeed, even if Playground is quite stable through long use in
Moose, it is new to Pharo, and marking its menu entry as
'Experimental' for now might provide some benefits.

* This may provide a to stress test new evolving frameworks
like TxText  Rubric - without affecting existing tools.

* Now Playground has a wider community exposure, feedback from
new users is likely to be less pressure and less negative if
they still have access to old tools.

* Feedback may result in changes.

* Reduced culture shock. Builds confidence in a stable system
not going too fast but just fast enough (very subjective I
know).








Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Tudor Girba
Hi Esteban,

I know it's a usability principle, but usability should also take into
account culture. Programmers are not every-day users, and the assumptions
we take should adapt to their needs. This is why it is worth exploring what
might or might not be needed.

I cannot believe that programmers do not know the shortcuts, but I did not
consider the case in which people go through multiple virtual boxes to get
to the image. This is a legitimate issue, so these actions are back.

Cheers,
Doru


On Sun, Oct 5, 2014 at 9:36 AM, Esteban Lorenzano esteba...@gmail.com
wrote:


 On 04 Oct 2014, at 22:43, Tudor Girba tu...@tudorgirba.com wrote:

 Hi Hernán,

 Thanks for the feedback. Just a question: Was there anything you do like?
 :)

 The rest of the reply is inline.


 On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand 
 hernan.mora...@gmail.com wrote:

 Sorry if following issues were reported. I have seen so many mails about
 GT that I wanted to try it. These are my first notes and personal tastes,
 don't take them as negative just want to provide some feedback:

 - First weird thing: The Workspace doesn't open a Workspace anymore, it
 opens a Playground window.


 That is because it is still a work in progress.


 - When I select code, right click gives no Copy, Cut, Delete commands.


 This was reported. The menu is missing on purpose. I still have a hard
 time understanding why a developer needs those menu entries, but we will
 add them back. Btw, the shortcuts do work.


 Is an usability principle: A system should provide visual feedback about
 what happens and about what it can do.
 How can we know what can or cannot do the playground?
 But of course, using menus as documentation is not always a good idea, so…
 we need to find a balance here :)
 I always use OSX design guidelines as a base on what I want to do (not
 that we should take it literally, but is always good to see what others
 with time to invest have to say).
 And this is all what they say about menus:
 https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Menus/Menus.html

 Esteban



 - Selecting an instance variable from the State tab, completely shift
 the code view and scrolls to a new Inspector. Is not that I would love to
 scroll back everytime to get a view on my code.


 The usage depends on the scenario in which you are. In most cases, when
 you do want to drill through many objects, you are likely to only use the
 playground as an entry point. When you build a more elaborate piece of code
 in the playground, you typically do not need to drill too much. In any
 case, if you want to scroll back, there are also keybindings that allow you
 to navigate: Cmd+Alt+Left/Right.


 - I cannot find how to close new Inspector tabs.


 This is a feature that is already planned.


 - Print it seems broken. It seems to print evaluation result but
 suddenly dissapears.


 What do you mean? Can you elaborate on that? Print it should behave like
 here:


 - Debugger buttons Into, Through, etc.

 -- They are too small and close themselves for the importance they have.
 -- They have no caption, so you have to mouse over to know what they do
 (until you get used to)
 -- They are like too distant from the code view.


 The debugger is not in the Pharo image, so I think you are trying the
 Moose image. Is that so?
 In any case, the positioning of the icons will be the same everywhere in
 GT (to the right of the scope they relate to). We are still fiddling with
 the right balance in the debugger.

 Cheers,
 Doru



 Cheers,

 Hernán





 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Esteban Lorenzano

 On 05 Oct 2014, at 09:55, Tudor Girba tu...@tudorgirba.com wrote:
 
 Hi,
 
 On Sun, Oct 5, 2014 at 9:40 AM, Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com wrote:
 
 On 05 Oct 2014, at 08:43, stepharo steph...@free.fr 
 mailto:steph...@free.fr wrote:
 
 
 On 4/10/14 22:43, Tudor Girba wrote:
 Hi Hernán,
 
 Thanks for the feedback. Just a question: Was there anything you do like? :)
 
 The rest of the reply is inline.
 
 
 On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand 
 hernan.mora...@gmail.com mailto:hernan.mora...@gmail.com wrote:
 Sorry if following issues were reported. I have seen so many mails about GT 
 that I wanted to try it. These are my first notes and personal tastes, 
 don't take them as negative just want to provide some feedback:
 
 - First weird thing: The Workspace doesn't open a Workspace anymore, it 
 opens a Playground window.
 
 That is because it is still a work in progress.
  
 - When I select code, right click gives no Copy, Cut, Delete commands.
 
 This was reported. The menu is missing on purpose. I still have a hard time 
 understanding why a developer needs those menu entries, but we will add 
 them back. Btw, the shortcuts do work.
 
 Doru can you add sender and implementors
 because I saw that newbies are really lost when the cannot know what they 
 can do.
 
 and “browse”.
 In fact… I want almost all the “extended search” back… please, please, please.
 
 It's back. But, this time as a real submenu, not like the hack we had before 
 in the Workspace (a menu was spawning another menu). Funny enough, nobody 
 complained about that one. It's good to shake the tree :).
   
 - Selecting an instance variable from the State tab, completely shift the 
 code view and scrolls to a new Inspector. Is not that I would love to 
 scroll back everytime to get a view on my code.
 
 The usage depends on the scenario in which you are. In most cases, when you 
 do want to drill through many objects, you are likely to only use the 
 playground as an entry point. When you build a more elaborate piece of code 
 in the playground, you typically do not need to drill too much. In any 
 case, if you want to scroll back, there are also keybindings that allow you 
 to navigate: Cmd+Alt+Left/Right.
  
 - I cannot find how to close new Inspector tabs.
 
 This is a feature that is already planned.
  
 - Print it seems broken. It seems to print evaluation result but suddenly 
 dissapears.
 
 What do you mean? Can you elaborate on that? Print it should behave like 
 here:
  
 - Debugger buttons Into, Through, etc. 
 -- They are too small and close themselves for the importance they have.
 -- They have no caption, so you have to mouse over to know what they do 
 (until you get used to)
 -- They are like too distant from the code view.
 
 The debugger is not in the Pharo image, so I think you are trying the Moose 
 image. Is that so?
 In any case, the positioning of the icons will be the same everywhere in GT 
 (to the right of the scope they relate to). We are still fiddling with the 
 right balance in the debugger.
 putting a caption would be a great point.
 why forcing people to learn icons. Icons should be there to help not to 
 force learning.
 
 I’m planning to make Doru hate me by replacing all those icons by “themable” 
 icons and of course, using eclipse icons for all that actions ;)
 
 All the visual aspects from GT and Glamour should get themeable (not all of 
 them are at this point). I will certainly not complain if you help there :).
 
 As for the icons, I think Pharo deserves a Pharo look, not an Eclipse one. 
 So, you can certainly use the Eclipse icons, but I will try to propose a 
 complete set of Pharo icons.

of course, is better if we have our own. 
problem is that a complete set is hard to do, with the appropriate quality, 
etc. 
If you do it, I will be super happy (with Nico we started a set of icons both 
for Pharo  and Amber… and my contribution there was just to ask Nico “is there 
something new today”, because I frankly suck at design :P)

Esteban

 
 Cheers,
 Doru
 
 
  
 Esteban
 
 
 
 
 Cheers,
 Doru
 
  
 Cheers,
 
 Hernán
 
 
 
 
 
 -- 
 www.tudorgirba.com http://www.tudorgirba.com/
 
 Every thing has its own flow
 
 
 
 
 
 -- 
 www.tudorgirba.com http://www.tudorgirba.com/
 
 Every thing has its own flow



Re: [Pharo-dev] Browser on a single class

2014-10-05 Thread Yuriy Tymchuk
Yes, but as I’ve mentioned earlier, I’m interested in drag-n-drop 
recategorization. I don’t know if it’s doable with glamour.

Uko

 On 04 Oct 2014, at 15:58, Esteban Lorenzano esteba...@gmail.com wrote:
 
 and this is same with glamour:
 
 browser := GLMTabulator new 
   row: [ :row | 
   row 
   column: #protocols;
   column: #methods ];
   row: #code;
   yourself.
   
 browser transmit 
   to: #protocols; 
   andShow: [ :a| a list display: [ :class | class organization protocols 
 ]; format: #name ].
 browser transmit 
   from: #protocols; 
   to: #methods; 
   andShow: [ :a| a list display: [ :protocol | protocol methods ] ].
 browser transmit 
   from: #methods; 
   to: #code; 
   andShow: [ :a | 
   a smalltalkCode 
   smalltalkClass: [ browser entity ];
   display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph.
 
 Of course spec is capable of doing that. 
 But glamour is designed with transitions and scripting in mind (thinking 
 specially on browsers), while spec is designed for components and composition.
 
 Esteban
 
 On 04 Oct 2014, at 15:35, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 2014-10-03 13:26 GMT+02:00 Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com:
 
 On 03 Oct 2014, at 13:14, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 Am 03.10.2014 12:34 schrieb Yuriy Tymchuk yuriy.tymc...@me.com 
 mailto:yuriy.tymc...@me.com:
 
  Hi.
 
  I want to make something like a browser on a single class. I.e. just use 
  2 last lists out if 4 in standard browser.
 
  Is there already something like that? If not, should I use existing 
  widgets, or implement my own using spec?
 
  Cheers!
  Uko
 
  Sent from my iPhone
 
 I think that is pretty easy with some spec models.
 Maybe there is already an example
 
 yes, but a few models means a few classes :)
 in a single class, it will e a lot easier glamour (which btw, is specially 
 designed for that: to make browsers).
 
 You can work with ready made models like ListModel/TextModel and just need 
 one class for sticking them
 together. Here some code, evaluateable from workspace, that shows how we
 can build a simple browser with spec models:
 This is just the simple skeleton, for more details it would be a bit 
 confusing doing all this
 in one workspace script :)
 
 class:=Morph.
 method:=class#openInWorld.
 
 composed:= DynamicComposableModel new.
 composed instantiateModels: #(code TextModel protocols ListModel methods 
 ListModel).
 composed code text:method sourceCode.
 composed protocols items: class protocols.
 composed methods items: class selectors.
 composed code aboutToStyle:true.
 composed code behavior:class.
 composed title: class asString.
 composed code acceptBlock:[:text |
 class compile:text notifying:nil.
 ].
 composed protocols whenSelectedItemChanged:[:item |
 composed methods items:( class selectorsInProtocol: item)
 ].
 composed methods  whenSelectedItemChanged:[:item |
 item ifNotNil:[
 method:=class methodDict at:item.
composed code text:method sourceCode]
 ].
 composed openWithSpecLayout:(
 SpecLayout composed
 newColumn:[:c | c
  newRow:[:r | r
 add: #protocols;
 add: #methods
 ];
 add: #code];
 yourself).
  
 
 Esteban
 Hilaire asked for a simple Method editor and
 i wrote a simple example build with DynamicComposableModel, search the 
 Mailingliste.
 
 



Re: [Pharo-dev] Issue 14160: Introduce isXXX dialect testing methods to SmalltalkImage to ease cross-dialect development

2014-10-05 Thread Johan Brichau
It’s true that when you do a lot of cross-dialect development, such a method is 
often what you desire.
However, I think it’s better to do feature detection instead of dialect 
detection. So, something like:

((Smalltalk includesKey: #CharacterWriteStream) ifTrue:[
  stream := CharacterWriteStream on: (String new: 10)
] ifFalse:[
  stream := WriteStream on: (String new: 10)
]

And yes: use Grease where applicable. We try to maintain Grease across Pharo, 
Squeak and Gemstone. I also think it’s actively ported to VA.

cheers
Johan

On 05 Oct 2014, at 09:00, stepharo steph...@free.fr wrote:

 Hi jan
 
 Thanks for the proposal.
 I thought about it and I'm against because it goes again the idea of dispatch.
 I prefer to have a class and some dispatch. Seaside with Grease is the way to 
 go from my perspective.
 Finally I do not want such methods in the systems because I spent my time 
 removing is because of bad design.
 Let us see what other people think.
 
 Stef
 
 On 4/10/14 22:14, Jan Vrany wrote:
 Hi guys,
 
 I've just opened:
 
 https://pharo.fogbugz.com/f/cases/14160/Introduce-isXXX-dialect-testing-methods-to-SmalltalkImage-to-ease-cross-dialect-development
 
 Introduce isXXX (isPharo, isVisualWorks, ...) dialect testing methods to
 SmalltalkImage to ease multi-dialect development.
 
 RATIONALE:
 
 Commonly used approach to solve differences among dialect is to use a
 sort of platform object and dispatch there for troublesome operations
 that has to be specialized. This platform object is usually in platform
 specific package.
 Other option is to load some library like Grease or Sport.
 
 The problem of the first approach is that brings to much (unnecessary)
 burden when used for two, three things. The amount of of the code and
 management is way to bigger then the amount of the code that has to be
 specialized. Loading Grease/Sport on the other hand introduces a
 dependency on an external package - not worth of for two or three
 things.
 
 The proposed dialect testing messages would allow for simple,
 #ifdef-like idiom like:
 
 | stream |
 ...
 ((Smalltalk respondsTo: #isSomeCoolDialect) and:[Smalltalk
 isSomeCoolDialect]) ifTrue:[
   stream := CharacterWriteStream on: (String new: 10)
 ] ifFalse:[
   stream := WriteStream on: (String new: 10)
 ]
 
 The #respondsTo: check, while not nice, is required as at the moment not
 all dialects could be trusted to have these testing messages.
 
 Putting these methods may not stick with Pharo standard (whatever it
 is), but Smalltalk global is probably one of the
 very few that are present in pretty much every Smalltalk implementation.
 Other option would be to place them to the class side of an Object
 (which is amost certainly present everywhere), however
 
 Smalltalk isPharo
 
 reads better than
 
 Object isPharo.
 
 Best, Jan
 
 
 
 
 




Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Tudor Girba
Hi,

On Sun, Oct 5, 2014 at 10:04 AM, Esteban Lorenzano esteba...@gmail.com
wrote:


 On 05 Oct 2014, at 09:55, Tudor Girba tu...@tudorgirba.com wrote:

 Hi,

 On Sun, Oct 5, 2014 at 9:40 AM, Esteban Lorenzano esteba...@gmail.com
 wrote:


 On 05 Oct 2014, at 08:43, stepharo steph...@free.fr wrote:


 On 4/10/14 22:43, Tudor Girba wrote:

 Hi Hernán,

 Thanks for the feedback. Just a question: Was there anything you do like?
 :)

 The rest of the reply is inline.


 On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand 
 hernan.mora...@gmail.com wrote:

 Sorry if following issues were reported. I have seen so many mails about
 GT that I wanted to try it. These are my first notes and personal tastes,
 don't take them as negative just want to provide some feedback:

 - First weird thing: The Workspace doesn't open a Workspace anymore, it
 opens a Playground window.


 That is because it is still a work in progress.


 - When I select code, right click gives no Copy, Cut, Delete commands.


 This was reported. The menu is missing on purpose. I still have a hard
 time understanding why a developer needs those menu entries, but we will
 add them back. Btw, the shortcuts do work.


 Doru can you add sender and implementors
 because I saw that newbies are really lost when the cannot know what they
 can do.


 and “browse”.
 In fact… I want almost all the “extended search” back… please, please,
 please.


 It's back. But, this time as a real submenu, not like the hack we had
 before in the Workspace (a menu was spawning another menu). Funny enough,
 nobody complained about that one. It's good to shake the tree :).


 - Selecting an instance variable from the State tab, completely shift
 the code view and scrolls to a new Inspector. Is not that I would love to
 scroll back everytime to get a view on my code.


 The usage depends on the scenario in which you are. In most cases, when
 you do want to drill through many objects, you are likely to only use the
 playground as an entry point. When you build a more elaborate piece of code
 in the playground, you typically do not need to drill too much. In any
 case, if you want to scroll back, there are also keybindings that allow you
 to navigate: Cmd+Alt+Left/Right.


 - I cannot find how to close new Inspector tabs.


 This is a feature that is already planned.


 - Print it seems broken. It seems to print evaluation result but
 suddenly dissapears.


 What do you mean? Can you elaborate on that? Print it should behave like
 here:


 - Debugger buttons Into, Through, etc.

 -- They are too small and close themselves for the importance they have.
 -- They have no caption, so you have to mouse over to know what they do
 (until you get used to)
 -- They are like too distant from the code view.


 The debugger is not in the Pharo image, so I think you are trying the
 Moose image. Is that so?
 In any case, the positioning of the icons will be the same everywhere in
 GT (to the right of the scope they relate to). We are still fiddling with
 the right balance in the debugger.

 putting a caption would be a great point.
 why forcing people to learn icons. Icons should be there to help not to
 force learning.


 I’m planning to make Doru hate me by replacing all those icons by
 “themable” icons and of course, using eclipse icons for all that actions ;)


 All the visual aspects from GT and Glamour should get themeable (not all
 of them are at this point). I will certainly not complain if you help there
 :).

 As for the icons, I think Pharo deserves a Pharo look, not an Eclipse one.
 So, you can certainly use the Eclipse icons, but I will try to propose a
 complete set of Pharo icons.


 of course, is better if we have our own.
 problem is that a complete set is hard to do, with the appropriate
 quality, etc.
 If you do it, I will be super happy (with Nico we started a set of icons
 both for Pharo  and Amber… and my contribution there was just to ask Nico
 “is there something new today”, because I frankly suck at design :P)


When I asked for help, I was more thinking of getting the icons be
themeable at the code level - delegate to a themer object :)

Cheers,
Doru




 Esteban


 Cheers,
 Doru




 Esteban




 Cheers,
 Doru



 Cheers,

 Hernán





 --
 www.tudorgirba.com

 Every thing has its own flow






 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Browser on a single class

2014-10-05 Thread Esteban Lorenzano
lazy Yury


browser := GLMTabulator new 
row: [ :row | 
row 
column: #protocols;
column: #methods ];
row: #code;
yourself.

browser transmit 
to: #protocols; 
andShow: [ :a| 
a list 
allowDropOnItem: [:draggedObject :targetItem :list | 
true ];
dropOnItem: [:draggedObject :targetItem :list | 
browser entity organization
classify: draggedObject
under: targetItem name.
list update.
true ];
display: [ :class | class organization protocols ]; 
format: #name ].
browser transmit 
from: #protocols; 
to: #methods; 
andShow: [ :a| 
a list 
allowItemDrag: [:item :list | true ];   
display: [ :protocol | protocol methods ] ].
browser transmit 
from: #methods; 
to: #code; 
andShow: [ :a | 
a smalltalkCode 
smalltalkClass: [ browser entity ];
display: [ :method | (browser entitymethod) 
sourceCode ] ].

browser openOn: Morph

 On 05 Oct 2014, at 10:08, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Yes, but as I’ve mentioned earlier, I’m interested in drag-n-drop 
 recategorization. I don’t know if it’s doable with glamour.
 
 Uko
 
 On 04 Oct 2014, at 15:58, Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com wrote:
 
 and this is same with glamour:
 
 browser := GLMTabulator new 
  row: [ :row | 
  row 
  column: #protocols;
  column: #methods ];
  row: #code;
  yourself.
  
 browser transmit 
  to: #protocols; 
  andShow: [ :a| a list display: [ :class | class organization protocols 
 ]; format: #name ].
 browser transmit 
  from: #protocols; 
  to: #methods; 
  andShow: [ :a| a list display: [ :protocol | protocol methods ] ].
 browser transmit 
  from: #methods; 
  to: #code; 
  andShow: [ :a | 
  a smalltalkCode 
  smalltalkClass: [ browser entity ];
  display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph.
 
 Of course spec is capable of doing that. 
 But glamour is designed with transitions and scripting in mind (thinking 
 specially on browsers), while spec is designed for components and 
 composition.
 
 Esteban
 
 On 04 Oct 2014, at 15:35, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 2014-10-03 13:26 GMT+02:00 Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com:
 
 On 03 Oct 2014, at 13:14, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 Am 03.10.2014 12:34 schrieb Yuriy Tymchuk yuriy.tymc...@me.com 
 mailto:yuriy.tymc...@me.com:
 
  Hi.
 
  I want to make something like a browser on a single class. I.e. just use 
  2 last lists out if 4 in standard browser.
 
  Is there already something like that? If not, should I use existing 
  widgets, or implement my own using spec?
 
  Cheers!
  Uko
 
  Sent from my iPhone
 
 I think that is pretty easy with some spec models.
 Maybe there is already an example
 
 yes, but a few models means a few classes :)
 in a single class, it will e a lot easier glamour (which btw, is specially 
 designed for that: to make browsers).
 
 You can work with ready made models like ListModel/TextModel and just need 
 one class for sticking them
 together. Here some code, evaluateable from workspace, that shows how we
 can build a simple browser with spec models:
 This is just the simple skeleton, for more details it would be a bit 
 confusing doing all this
 in one workspace script :)
 
 class:=Morph.
 method:=class#openInWorld.
 
 composed:= DynamicComposableModel new.
 composed instantiateModels: #(code TextModel protocols ListModel methods 
 ListModel).
 composed code text:method sourceCode.
 composed protocols items: class protocols.
 composed methods items: class selectors.
 composed code aboutToStyle:true.
 composed code behavior:class.
 composed title: class asString.
 composed code acceptBlock:[:text |
 class compile:text notifying:nil.
 ].
 composed protocols whenSelectedItemChanged:[:item |
 composed methods items:( class selectorsInProtocol: item)
 ].
 composed methods  whenSelectedItemChanged:[:item |
 item ifNotNil:[
 method:=class methodDict at:item.
composed code text:method sourceCode]
 ].
 composed openWithSpecLayout:(
 SpecLayout composed
 newColumn:[:c | c
  newRow:[:r | r
 add: #protocols;
 add: #methods
 ];
 add: #code];
 yourself).
  
 
 

Re: [Pharo-dev] GT first impressions

2014-10-05 Thread kilon alios
If I was coding God that was able to code at coding speed 120WPM (Words Per
Minute) then yes I would not even consider using anything but shortcuts but
my speed is more like 120 WPH (Words Per Hour) which is more like 20 lines
of code and that is a very optimistic scenario. So I find myself in many
cases just right clicking , why ?

a) Because using menus does not bother me too much even if it is a bit slow
to using a shortcut and
b) In many cases I tend to forget shortcuts I dont use 24/7. Of course not
copy and paste.

I tried to make my brain fit into the emacs/vim mentality of only using
shortcuts but I keep forgetting stuff or being lazy to go back to
documentation to remember when I can just right click and find what I want.
Plus right clicking has another advantage it shows you the right shortcut
next to the menu option. So for me right click menus and other menus are
beginner and lazy friendly.

On Sun, Oct 5, 2014 at 10:53 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi Esteban,

 I know it's a usability principle, but usability should also take into
 account culture. Programmers are not every-day users, and the assumptions
 we take should adapt to their needs. This is why it is worth exploring what
 might or might not be needed.

 I cannot believe that programmers do not know the shortcuts, but I did not
 consider the case in which people go through multiple virtual boxes to get
 to the image. This is a legitimate issue, so these actions are back.

 Cheers,
 Doru


 On Sun, Oct 5, 2014 at 9:36 AM, Esteban Lorenzano esteba...@gmail.com
 wrote:


 On 04 Oct 2014, at 22:43, Tudor Girba tu...@tudorgirba.com wrote:

 Hi Hernán,

 Thanks for the feedback. Just a question: Was there anything you do like?
 :)

 The rest of the reply is inline.


 On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand 
 hernan.mora...@gmail.com wrote:

 Sorry if following issues were reported. I have seen so many mails about
 GT that I wanted to try it. These are my first notes and personal tastes,
 don't take them as negative just want to provide some feedback:

 - First weird thing: The Workspace doesn't open a Workspace anymore, it
 opens a Playground window.


 That is because it is still a work in progress.


 - When I select code, right click gives no Copy, Cut, Delete commands.


 This was reported. The menu is missing on purpose. I still have a hard
 time understanding why a developer needs those menu entries, but we will
 add them back. Btw, the shortcuts do work.


 Is an usability principle: A system should provide visual feedback about
 what happens and about what it can do.
 How can we know what can or cannot do the playground?
 But of course, using menus as documentation is not always a good idea,
 so… we need to find a balance here :)
 I always use OSX design guidelines as a base on what I want to do (not
 that we should take it literally, but is always good to see what others
 with time to invest have to say).
 And this is all what they say about menus:
 https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Menus/Menus.html

 Esteban



 - Selecting an instance variable from the State tab, completely shift
 the code view and scrolls to a new Inspector. Is not that I would love to
 scroll back everytime to get a view on my code.


 The usage depends on the scenario in which you are. In most cases, when
 you do want to drill through many objects, you are likely to only use the
 playground as an entry point. When you build a more elaborate piece of code
 in the playground, you typically do not need to drill too much. In any
 case, if you want to scroll back, there are also keybindings that allow you
 to navigate: Cmd+Alt+Left/Right.


 - I cannot find how to close new Inspector tabs.


 This is a feature that is already planned.


 - Print it seems broken. It seems to print evaluation result but
 suddenly dissapears.


 What do you mean? Can you elaborate on that? Print it should behave like
 here:


 - Debugger buttons Into, Through, etc.

 -- They are too small and close themselves for the importance they have.
 -- They have no caption, so you have to mouse over to know what they do
 (until you get used to)
 -- They are like too distant from the code view.


 The debugger is not in the Pharo image, so I think you are trying the
 Moose image. Is that so?
 In any case, the positioning of the icons will be the same everywhere in
 GT (to the right of the scope they relate to). We are still fiddling with
 the right balance in the debugger.

 Cheers,
 Doru



 Cheers,

 Hernán





 --
 www.tudorgirba.com

 Every thing has its own flow





 --
 www.tudorgirba.com

 Every thing has its own flow



Re: [Pharo-dev] Browser on a single class

2014-10-05 Thread Sven Van Caekenberghe
Nice ;-)

On 05 Oct 2014, at 11:56, Esteban Lorenzano esteba...@gmail.com wrote:

 lazy Yury
 
 
 browser := GLMTabulator new 
   row: [ :row | 
   row 
   column: #protocols;
   column: #methods ];
   row: #code;
   yourself.
   
 browser transmit 
   to: #protocols; 
   andShow: [ :a| 
   a list 
   allowDropOnItem: [:draggedObject :targetItem :list | 
 true ];
   dropOnItem: [:draggedObject :targetItem :list | 
   browser entity organization
   classify: draggedObject
   under: targetItem name.
   list update.
   true ];
   display: [ :class | class organization protocols ]; 
 format: #name ].
 browser transmit 
   from: #protocols; 
   to: #methods; 
   andShow: [ :a| 
   a list 
   allowItemDrag: [:item :list | true ];   
   display: [ :protocol | protocol methods ] ].
 browser transmit 
   from: #methods; 
   to: #code; 
   andShow: [ :a | 
   a smalltalkCode 
   smalltalkClass: [ browser entity ];
   display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph
 
 On 05 Oct 2014, at 10:08, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Yes, but as I’ve mentioned earlier, I’m interested in drag-n-drop 
 recategorization. I don’t know if it’s doable with glamour.
 
 Uko
 
 On 04 Oct 2014, at 15:58, Esteban Lorenzano esteba...@gmail.com wrote:
 
 and this is same with glamour:
 
 browser := GLMTabulator new 
 row: [ :row | 
 row 
 column: #protocols;
 column: #methods ];
 row: #code;
 yourself.
 
 browser transmit 
 to: #protocols; 
 andShow: [ :a| a list display: [ :class | class organization protocols 
 ]; format: #name ].
 browser transmit 
 from: #protocols; 
 to: #methods; 
 andShow: [ :a| a list display: [ :protocol | protocol methods ] ].
 browser transmit 
 from: #methods; 
 to: #code; 
 andShow: [ :a | 
 a smalltalkCode 
 smalltalkClass: [ browser entity ];
 display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph.
 
 Of course spec is capable of doing that. 
 But glamour is designed with transitions and scripting in mind (thinking 
 specially on browsers), while spec is designed for components and 
 composition.
 
 Esteban
 
 On 04 Oct 2014, at 15:35, Nicolai Hess nicolaih...@web.de wrote:
 
 
 2014-10-03 13:26 GMT+02:00 Esteban Lorenzano esteba...@gmail.com:
 
 On 03 Oct 2014, at 13:14, Nicolai Hess nicolaih...@web.de wrote:
 
 
 Am 03.10.2014 12:34 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
  Hi.
 
  I want to make something like a browser on a single class. I.e. just 
  use 2 last lists out if 4 in standard browser.
 
  Is there already something like that? If not, should I use existing 
  widgets, or implement my own using spec?
 
  Cheers!
  Uko
 
  Sent from my iPhone
 
 I think that is pretty easy with some spec models.
 Maybe there is already an example
 
 yes, but a few models means a few classes :)
 in a single class, it will e a lot easier glamour (which btw, is specially 
 designed for that: to make browsers).
 
 You can work with ready made models like ListModel/TextModel and just need 
 one class for sticking them
 together. Here some code, evaluateable from workspace, that shows how we
 can build a simple browser with spec models:
 This is just the simple skeleton, for more details it would be a bit 
 confusing doing all this
 in one workspace script :)
 
 class:=Morph.
 method:=class#openInWorld.
 
 composed:= DynamicComposableModel new.
 composed instantiateModels: #(code TextModel protocols ListModel methods 
 ListModel).
 composed code text:method sourceCode.
 composed protocols items: class protocols.
 composed methods items: class selectors.
 composed code aboutToStyle:true.
 composed code behavior:class.
 composed title: class asString.
 composed code acceptBlock:[:text |
 class compile:text notifying:nil.
 ].
 composed protocols whenSelectedItemChanged:[:item |
 composed methods items:( class selectorsInProtocol: item)
 ].
 composed methods  whenSelectedItemChanged:[:item |
 item ifNotNil:[
 method:=class methodDict at:item.
composed code text:method sourceCode]
 ].
 composed openWithSpecLayout:(
 SpecLayout composed
 newColumn:[:c | c
  newRow:[:r | r
 add: #protocols;
 add: #methods
 ];
 add: #code];
 yourself).
  
 
 Esteban
 Hilaire asked for a simple Method editor and
 i wrote a simple example build with 

Re: [Pharo-dev] Inspector steals my Window !

2014-10-05 Thread Andrei Chis
I made the preview tab only show a static picture of the morph and renamed
the title to Morph. Now it's like for Morph and Glamour. Still it seems
that clicking on a morph only works when inspecting Morph objects, and not
Spec or Glamour ones.

On Sun, Oct 5, 2014 at 8:16 AM, Tudor Girba tu...@tudorgirba.com wrote:

 This is why the Preview should be static. For the Morph preview we simply
 render the form.

 Doru

 On Sun, Oct 5, 2014 at 12:32 AM, Nicolai Hess nicolaih...@web.de wrote:

 Inspect in  playground (inspect it from menu or with the play-icon):

 |t|
 t:=TextModel new.
 t title:'Test'.
 t openWithSpec

 It opens a window with the textfield and an inspector.
 In the inspector, choose the preview tab, your textfield window
 will dissapear from the world and only show up in the preview tab.

 Funny!
 But is there any way to get the window back to the world?




 --
 www.tudorgirba.com

 Every thing has its own flow



Re: [Pharo-dev] Inspector steals my Window !

2014-10-05 Thread Tudor Girba
Thanks!

Doru

On Sun, Oct 5, 2014 at 12:12 PM, Andrei Chis chisvasileand...@gmail.com
wrote:

 I made the preview tab only show a static picture of the morph and renamed
 the title to Morph. Now it's like for Morph and Glamour. Still it seems
 that clicking on a morph only works when inspecting Morph objects, and not
 Spec or Glamour ones.

 On Sun, Oct 5, 2014 at 8:16 AM, Tudor Girba tu...@tudorgirba.com wrote:

 This is why the Preview should be static. For the Morph preview we simply
 render the form.

 Doru

 On Sun, Oct 5, 2014 at 12:32 AM, Nicolai Hess nicolaih...@web.de wrote:

 Inspect in  playground (inspect it from menu or with the play-icon):

 |t|
 t:=TextModel new.
 t title:'Test'.
 t openWithSpec

 It opens a window with the textfield and an inspector.
 In the inspector, choose the preview tab, your textfield window
 will dissapear from the world and only show up in the preview tab.

 Funny!
 But is there any way to get the window back to the world?




 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] History of the .image

2014-10-05 Thread Hilaire
Le 04/10/2014 16:16, David T. Lewis a écrit :
 On Sat, Oct 04, 2014 at 04:00:15PM +0200, Hilaire wrote:
 Hello,

 I am curious. What is the history of the Pharo image? I know it is
 forked from Squeak, but then from where does come the Squeak image?
 How and when was it build from its source code definition?
 When did it became an evolving organism as it is today?

 Thanks

 Hilaire
 
 http://lists.squeakfoundation.org/pipermail/squeak-dev/2014-September/179950.html
 
  
 
 


Thanks for the pointer. But my curiosity targets technical
considerations. How and when was done the first image bootstrap, then at
this moment was the image became the base of development, or was a kind
of boostrap-image-build from source still done for some time.

Hilaire

-- 
Dr. Geo - http://drgeo.eu
iStoa - http://istoa.drgeo.eu




Re: [Pharo-dev] Browser on a single class

2014-10-05 Thread Nicolai Hess
Yes, Glamour is cool.

But two issues (can you solve them? :) )
1. the source list is not updated, the dragged method is still visible in
the
old protocol until you change the selected protocol item
2. (critical) the image hangs if you drop the methods list item in the
methods list.




2014-10-05 11:56 GMT+02:00 Esteban Lorenzano esteba...@gmail.com:

 lazy Yury


 browser := GLMTabulator new
 row: [ :row |
 row
 column: #protocols;
 column: #methods ];
 row: #code;
 yourself.
 browser transmit
 to: #protocols;
 andShow: [ :a|
 a list
 allowDropOnItem: [:draggedObject :targetItem :list | true ];
 dropOnItem: [:draggedObject :targetItem :list |
 browser entity organization
 classify: draggedObject
 under: targetItem name.
 list update.
 true ];
 display: [ :class | class organization protocols ]; format: #name ].
 browser transmit
 from: #protocols;
 to: #methods;
 andShow: [ :a|
 a list
 allowItemDrag: [:item :list | true ];
 display: [ :protocol | protocol methods ] ].
 browser transmit
 from: #methods;
 to: #code;
 andShow: [ :a |
 a smalltalkCode
 smalltalkClass: [ browser entity ];
 display: [ :method | (browser entitymethod) sourceCode ] ].

 browser openOn: Morph

 On 05 Oct 2014, at 10:08, Yuriy Tymchuk yuriy.tymc...@me.com wrote:

 Yes, but as I’ve mentioned earlier, I’m interested in drag-n-drop
 recategorization. I don’t know if it’s doable with glamour.

 Uko

 On 04 Oct 2014, at 15:58, Esteban Lorenzano esteba...@gmail.com wrote:

 and this is same with glamour:

 browser := GLMTabulator new
 row: [ :row |
 row
 column: #protocols;
 column: #methods ];
 row: #code;
 yourself.
 browser transmit
 to: #protocols;
 andShow: [ :a| a list display: [ :class | class organization protocols ];
 format: #name ].
 browser transmit
 from: #protocols;
 to: #methods;
 andShow: [ :a| a list display: [ :protocol | protocol methods ] ].
 browser transmit
 from: #methods;
 to: #code;
 andShow: [ :a |
 a smalltalkCode
 smalltalkClass: [ browser entity ];
 display: [ :method | (browser entitymethod) sourceCode ] ].

 browser openOn: Morph.

 Of course spec is capable of doing that.
 But glamour is designed with transitions and scripting in mind (thinking
 specially on browsers), while spec is designed for components and
 composition.

 Esteban

 On 04 Oct 2014, at 15:35, Nicolai Hess nicolaih...@web.de wrote:


 2014-10-03 13:26 GMT+02:00 Esteban Lorenzano esteba...@gmail.com:


 On 03 Oct 2014, at 13:14, Nicolai Hess nicolaih...@web.de wrote:


 Am 03.10.2014 12:34 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
  Hi.
 
  I want to make something like a browser on a single class. I.e. just
 use 2 last lists out if 4 in standard browser.
 
  Is there already something like that? If not, should I use existing
 widgets, or implement my own using spec?
 
  Cheers!
  Uko
 
  Sent from my iPhone

 I think that is pretty easy with some spec models.
 Maybe there is already an example

 yes, but a few models means a few classes :)
 in a single class, it will e a lot easier glamour (which btw, is
 specially designed for that: to make browsers).


 You can work with ready made models like ListModel/TextModel and just need
 one class for sticking them
 together. Here some code, evaluateable from workspace, that shows how we
 can build a simple browser with spec models:
 This is just the simple skeleton, for more details it would be a bit confusing
 doing all this
 in one workspace script :)

 class:=Morph.
 method:=class#openInWorld.

 composed:= DynamicComposableModel new.
 composed instantiateModels: #(code TextModel protocols ListModel methods
 ListModel).
 composed code text:method sourceCode.
 composed protocols items: class protocols.
 composed methods items: class selectors.
 composed code aboutToStyle:true.
 composed code behavior:class.
 composed title: class asString.
 composed code acceptBlock:[:text |
 class compile:text notifying:nil.
 ].
 composed protocols whenSelectedItemChanged:[:item |
 composed methods items:( class selectorsInProtocol: item)
 ].
 composed methods  whenSelectedItemChanged:[:item |
 item ifNotNil:[
 method:=class methodDict at:item.
composed code text:method sourceCode]
 ].
 composed openWithSpecLayout:(
 SpecLayout composed
 newColumn:[:c | c
  newRow:[:r | r
 add: #protocols;
 add: #methods
 ];
 add: #code];
 yourself).



 Esteban

 Hilaire asked for a simple Method editor and
 i wrote a simple example build with DynamicComposableModel, search the
 Mailingliste.







Re: [Pharo-dev] GT first impressions

2014-10-05 Thread kmo
I don't even use shortcuts for copy and paste. I can't be much of a
programmer.



--
View this message in context: 
http://forum.world.st/GT-first-impressions-tp4782636p4782710.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] Browser on a single class

2014-10-05 Thread Esteban Lorenzano

 On 05 Oct 2014, at 13:21, Nicolai Hess nicolaih...@web.de wrote:
 
 Yes, Glamour is cool.
 
 But two issues (can you solve them? :) )
 1. the source list is not updated, the dragged method is still visible in the
 old protocol until you change the selected protocol item
 2. (critical) the image hangs if you drop the methods list item in the 
 methods list.

that’s an issue for Doru ;)

 
 
 
 
 2014-10-05 11:56 GMT+02:00 Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com:
 lazy Yury
 
 
 browser := GLMTabulator new 
   row: [ :row | 
   row 
   column: #protocols;
   column: #methods ];
   row: #code;
   yourself.
   
 browser transmit 
   to: #protocols; 
   andShow: [ :a| 
   a list 
   allowDropOnItem: [:draggedObject :targetItem :list | 
 true ];
   dropOnItem: [:draggedObject :targetItem :list | 
   browser entity organization
   classify: draggedObject
   under: targetItem name.
   list update.
   true ];
   display: [ :class | class organization protocols ]; 
 format: #name ].
 browser transmit 
   from: #protocols; 
   to: #methods; 
   andShow: [ :a| 
   a list 
   allowItemDrag: [:item :list | true ];   
   display: [ :protocol | protocol methods ] ].
 browser transmit 
   from: #methods; 
   to: #code; 
   andShow: [ :a | 
   a smalltalkCode 
   smalltalkClass: [ browser entity ];
   display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph
 
 On 05 Oct 2014, at 10:08, Yuriy Tymchuk yuriy.tymc...@me.com 
 mailto:yuriy.tymc...@me.com wrote:
 
 Yes, but as I’ve mentioned earlier, I’m interested in drag-n-drop 
 recategorization. I don’t know if it’s doable with glamour.
 
 Uko
 
 On 04 Oct 2014, at 15:58, Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com wrote:
 
 and this is same with glamour:
 
 browser := GLMTabulator new 
 row: [ :row | 
 row 
 column: #protocols;
 column: #methods ];
 row: #code;
 yourself.
 
 browser transmit 
 to: #protocols; 
 andShow: [ :a| a list display: [ :class | class organization protocols 
 ]; format: #name ].
 browser transmit 
 from: #protocols; 
 to: #methods; 
 andShow: [ :a| a list display: [ :protocol | protocol methods ] ].
 browser transmit 
 from: #methods; 
 to: #code; 
 andShow: [ :a | 
 a smalltalkCode 
 smalltalkClass: [ browser entity ];
 display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph.
 
 Of course spec is capable of doing that. 
 But glamour is designed with transitions and scripting in mind (thinking 
 specially on browsers), while spec is designed for components and 
 composition.
 
 Esteban
 
 On 04 Oct 2014, at 15:35, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 2014-10-03 13:26 GMT+02:00 Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com:
 
 On 03 Oct 2014, at 13:14, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 Am 03.10.2014 12:34 schrieb Yuriy Tymchuk yuriy.tymc...@me.com 
 mailto:yuriy.tymc...@me.com:
 
  Hi.
 
  I want to make something like a browser on a single class. I.e. just 
  use 2 last lists out if 4 in standard browser.
 
  Is there already something like that? If not, should I use existing 
  widgets, or implement my own using spec?
 
  Cheers!
  Uko
 
  Sent from my iPhone
 
 I think that is pretty easy with some spec models.
 Maybe there is already an example
 
 yes, but a few models means a few classes :)
 in a single class, it will e a lot easier glamour (which btw, is specially 
 designed for that: to make browsers).
 
 You can work with ready made models like ListModel/TextModel and just need 
 one class for sticking them
 together. Here some code, evaluateable from workspace, that shows how we
 can build a simple browser with spec models:
 This is just the simple skeleton, for more details it would be a bit 
 confusing doing all this
 in one workspace script :)
 
 class:=Morph.
 method:=class#openInWorld.
 
 composed:= DynamicComposableModel new.
 composed instantiateModels: #(code TextModel protocols ListModel methods 
 ListModel).
 composed code text:method sourceCode.
 composed protocols items: class protocols.
 composed methods items: class selectors.
 composed code aboutToStyle:true.
 composed code behavior:class.
 composed title: class asString.
 composed code acceptBlock:[:text |
 class compile:text 

Re: [Pharo-dev] Browser on a single class

2014-10-05 Thread Yuriy Tymchuk

 On 05 Oct 2014, at 11:56, Esteban Lorenzano esteba...@gmail.com wrote:
 
 lazy Yury
 
I’m just not so UI hacker as you are :). Thanks!

 
 browser := GLMTabulator new 
   row: [ :row | 
   row 
   column: #protocols;
   column: #methods ];
   row: #code;
   yourself.
   
 browser transmit 
   to: #protocols; 
   andShow: [ :a| 
   a list 
   allowDropOnItem: [:draggedObject :targetItem :list | 
 true ];
   dropOnItem: [:draggedObject :targetItem :list | 
   browser entity organization
   classify: draggedObject
   under: targetItem name.
   list update.
   true ];
   display: [ :class | class organization protocols ]; 
 format: #name ].
 browser transmit 
   from: #protocols; 
   to: #methods; 
   andShow: [ :a| 
   a list 
   allowItemDrag: [:item :list | true ];   
   display: [ :protocol | protocol methods ] ].
 browser transmit 
   from: #methods; 
   to: #code; 
   andShow: [ :a | 
   a smalltalkCode 
   smalltalkClass: [ browser entity ];
   display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph
 
 On 05 Oct 2014, at 10:08, Yuriy Tymchuk yuriy.tymc...@me.com 
 mailto:yuriy.tymc...@me.com wrote:
 
 Yes, but as I’ve mentioned earlier, I’m interested in drag-n-drop 
 recategorization. I don’t know if it’s doable with glamour.
 
 Uko
 
 On 04 Oct 2014, at 15:58, Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com wrote:
 
 and this is same with glamour:
 
 browser := GLMTabulator new 
 row: [ :row | 
 row 
 column: #protocols;
 column: #methods ];
 row: #code;
 yourself.
 
 browser transmit 
 to: #protocols; 
 andShow: [ :a| a list display: [ :class | class organization protocols 
 ]; format: #name ].
 browser transmit 
 from: #protocols; 
 to: #methods; 
 andShow: [ :a| a list display: [ :protocol | protocol methods ] ].
 browser transmit 
 from: #methods; 
 to: #code; 
 andShow: [ :a | 
 a smalltalkCode 
 smalltalkClass: [ browser entity ];
 display: [ :method | (browser entitymethod) 
 sourceCode ] ].
 
 browser openOn: Morph.
 
 Of course spec is capable of doing that. 
 But glamour is designed with transitions and scripting in mind (thinking 
 specially on browsers), while spec is designed for components and 
 composition.
 
 Esteban
 
 On 04 Oct 2014, at 15:35, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 2014-10-03 13:26 GMT+02:00 Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com:
 
 On 03 Oct 2014, at 13:14, Nicolai Hess nicolaih...@web.de 
 mailto:nicolaih...@web.de wrote:
 
 
 Am 03.10.2014 12:34 schrieb Yuriy Tymchuk yuriy.tymc...@me.com 
 mailto:yuriy.tymc...@me.com:
 
  Hi.
 
  I want to make something like a browser on a single class. I.e. just 
  use 2 last lists out if 4 in standard browser.
 
  Is there already something like that? If not, should I use existing 
  widgets, or implement my own using spec?
 
  Cheers!
  Uko
 
  Sent from my iPhone
 
 I think that is pretty easy with some spec models.
 Maybe there is already an example
 
 yes, but a few models means a few classes :)
 in a single class, it will e a lot easier glamour (which btw, is specially 
 designed for that: to make browsers).
 
 You can work with ready made models like ListModel/TextModel and just need 
 one class for sticking them
 together. Here some code, evaluateable from workspace, that shows how we
 can build a simple browser with spec models:
 This is just the simple skeleton, for more details it would be a bit 
 confusing doing all this
 in one workspace script :)
 
 class:=Morph.
 method:=class#openInWorld.
 
 composed:= DynamicComposableModel new.
 composed instantiateModels: #(code TextModel protocols ListModel methods 
 ListModel).
 composed code text:method sourceCode.
 composed protocols items: class protocols.
 composed methods items: class selectors.
 composed code aboutToStyle:true.
 composed code behavior:class.
 composed title: class asString.
 composed code acceptBlock:[:text |
 class compile:text notifying:nil.
 ].
 composed protocols whenSelectedItemChanged:[:item |
 composed methods items:( class selectorsInProtocol: item)
 ].
 composed methods  whenSelectedItemChanged:[:item |
 item ifNotNil:[
 method:=class methodDict at:item.
composed code text:method sourceCode]
 ].
 composed openWithSpecLayout:(
 SpecLayout composed
 newColumn:[:c | 

Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Tudor Girba
Hi,

My remark was not meant to be derogative. If it came out like this, I
apologize. I simply stated what my assumption was. You prove to refute my
assumption (at least for your specific case).

Cheers,
Doru



On Sun, Oct 5, 2014 at 1:35 PM, kmo vox...@gmail.com wrote:

 I don't even use shortcuts for copy and paste. I can't be much of a
 programmer.



 --
 View this message in context:
 http://forum.world.st/GT-first-impressions-tp4782636p4782710.html
 Sent from the Pharo Smalltalk Developers mailing list archive at
 Nabble.com.




-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] structuring widget examples

2014-10-05 Thread stepharo

Hi guys

I started to systematically defined widget example using the pragram 
exampleWidget



rowPrototype
Answer a prototypical row
self rowPrototype openInHand
exampleWidget

| sampleMorphs aRow |
sampleMorphs := (1 to: (2 + 3 atRandom)) collect:
[:integer | EllipseMorph new extent: ((60 + (20 atRandom)) @ 
(80 + ((20 atRandom; color: Color random; setNameTo: ('egg', integer 
asString); yourself].

aRow := self inARow: sampleMorphs.
aRow setNameTo: 'Row'.
aRow enableDragNDrop.
aRow cellInset: 6.
aRow layoutInset: 8.
aRow setBalloonText: 'Things dropped into here will automatically 
be organized into a row. Once you have added your own items here, you 
will want to remove the sample colored eggs that this started with, and 
you will want to change this balloon help message to one of your own!'.

aRow color: Color veryVeryLightGray.
^ aRow

This means that GTool will get instances for free to play with and the 
finder get really handy to browse widgets.


If you want to join the effort you are welcome.

Stef



Screen Shot 2014-10-05 at 14.23.10.pdf
Description: Adobe PDF document


[Pharo-dev] [GT] seeing morph **And** textpane

2014-10-05 Thread stepharo

Hi andrei/doru


When I inspect a morph I only see it, while when I look at state I see 
the variables and the textpane to evaluate expression.
I think that the expression is really important in the inspector and we 
should see it all the time.


Stef



Re: [Pharo-dev] GT first impressions

2014-10-05 Thread kmo
Doru -

Don't take me too seriously. There was no offence.



--
View this message in context: 
http://forum.world.st/GT-first-impressions-tp4782636p4782721.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Tudor Girba
Ok :)

Doru

On Sun, Oct 5, 2014 at 2:45 PM, kmo vox...@gmail.com wrote:

 Doru -

 Don't take me too seriously. There was no offence.



 --
 View this message in context:
 http://forum.world.st/GT-first-impressions-tp4782636p4782721.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] [GT] seeing morph **And** textpane

2014-10-05 Thread Tudor Girba
Indeed, this is something I would like since quite a while.

Of course, we could add the evaluator at the bottom of everything (I tried
that), but this will take away from the interaction and make up for an ugly
UI. What I would want is a kind of a pane that appears/disappears on
demand. We still need to create that support.

Cheers,
Doru

On Sun, Oct 5, 2014 at 2:40 PM, stepharo steph...@free.fr wrote:

 Hi andrei/doru


 When I inspect a morph I only see it, while when I look at state I see the
 variables and the textpane to evaluate expression.
 I think that the expression is really important in the inspector and we
 should see it all the time.

 Stef




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] structuring widget examples

2014-10-05 Thread Tudor Girba
Hi Stef,

Great. GT is already prepared for this :). If you define a gtExample on
the class side, you will get an E.g. tab with those examples.

It's called gtExample because we did not want to interfere with other
pragmas, but perhaps we can change it to eg, or example. What do you
think?

Cheers,
Doru


On Sun, Oct 5, 2014 at 2:25 PM, stepharo steph...@free.fr wrote:

 Hi guys

 I started to systematically defined widget example using the pragram
 exampleWidget


 rowPrototype
 Answer a prototypical row
 self rowPrototype openInHand
 exampleWidget

 | sampleMorphs aRow |
 sampleMorphs := (1 to: (2 + 3 atRandom)) collect:
 [:integer | EllipseMorph new extent: ((60 + (20 atRandom)) @ (80 +
 ((20 atRandom; color: Color random; setNameTo: ('egg', integer
 asString); yourself].
 aRow := self inARow: sampleMorphs.
 aRow setNameTo: 'Row'.
 aRow enableDragNDrop.
 aRow cellInset: 6.
 aRow layoutInset: 8.
 aRow setBalloonText: 'Things dropped into here will automatically be
 organized into a row. Once you have added your own items here, you will
 want to remove the sample colored eggs that this started with, and you will
 want to change this balloon help message to one of your own!'.
 aRow color: Color veryVeryLightGray.
 ^ aRow

 This means that GTool will get instances for free to play with and the
 finder get really handy to browse widgets.

 If you want to join the effort you are welcome.

 Stef




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] gt issues

2014-10-05 Thread Ben Coman

kmo wrote:

I've raised two issues on the GT playground:

https://pharo.fogbugz.com/f/cases/14158/Navigation-buttons-icons-at-bottom-of-GT-playground-are-meaningless-unintuitive

https://pharo.fogbugz.com/f/cases/14157/Navigation-buttons-at-bottom-of-GT-playground-are-almost-invisible-in-default-theme

When I first tried the playground I never even noticed the dots at the
bottom of the window - they do not show up well in the default theme. -
(they seem OK in the dark theme screenshots I've seen).

Also, I think little dots are not intuitive. It would be better if you had
video controller buttons or perhaps little outlined squares with page
numbers in them. Dots on their own mean nothing.




Perhaps when a new pane is added, its dot can flash a couple of times,
to form a cognitive cause--effect link between dots and panes.  Maybe 
this should only occur when going from 1 pane (which shows no dots) to

2 panes (which adds the bottom bar with dots).
-ben



Re: [Pharo-dev] gt issues

2014-10-05 Thread Tudor Girba
Indeed. But just having a good contrast solves the problem quite well, I
believe, because it is gets more easily noticeable.

Cheers,
Doru

On Sun, Oct 5, 2014 at 3:37 PM, Ben Coman b...@openinworld.com wrote:

 kmo wrote:

 I've raised two issues on the GT playground:

 https://pharo.fogbugz.com/f/cases/14158/Navigation-
 buttons-icons-at-bottom-of-GT-playground-are-meaningless-unintuitive

 https://pharo.fogbugz.com/f/cases/14157/Navigation-
 buttons-at-bottom-of-GT-playground-are-almost-invisible-in-default-theme

 When I first tried the playground I never even noticed the dots at the
 bottom of the window - they do not show up well in the default theme. -
 (they seem OK in the dark theme screenshots I've seen).

 Also, I think little dots are not intuitive. It would be better if you had
 video controller buttons or perhaps little outlined squares with page
 numbers in them. Dots on their own mean nothing.



 Perhaps when a new pane is added, its dot can flash a couple of times,
 to form a cognitive cause--effect link between dots and panes.  Maybe
 this should only occur when going from 1 pane (which shows no dots) to
 2 panes (which adds the bottom bar with dots).
 -ben




-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] structuring widget examples

2014-10-05 Thread Ben Coman

Tudor Girba wrote:

Hi Stef,

Great. GT is already prepared for this :). If you define a gtExample 
on the class side, you will get an E.g. tab with those examples.


It's called gtExample because we did not want to interfere with other 
pragmas, but perhaps we can change it to eg, or example. What do you 
think?


NOT eg!  I've no opinion on example versus gtExample - except that 
we shouldn't have too many varying forms of example.

-ben




Cheers,
Doru


On Sun, Oct 5, 2014 at 2:25 PM, stepharo steph...@free.fr 
mailto:steph...@free.fr wrote:


Hi guys

I started to systematically defined widget example using the pragram
exampleWidget


rowPrototype
Answer a prototypical row
self rowPrototype openInHand
exampleWidget

| sampleMorphs aRow |
sampleMorphs := (1 to: (2 + 3 atRandom)) collect:
[:integer | EllipseMorph new extent: ((60 + (20 atRandom)) @
(80 + ((20 atRandom; color: Color random; setNameTo: ('egg',
integer asString); yourself].
aRow := self inARow: sampleMorphs.
aRow setNameTo: 'Row'.
aRow enableDragNDrop.
aRow cellInset: 6.
aRow layoutInset: 8.
aRow setBalloonText: 'Things dropped into here will
automatically be organized into a row. Once you have added your own
items here, you will want to remove the sample colored eggs that
this started with, and you will want to change this balloon help
message to one of your own!'.
aRow color: Color veryVeryLightGray.
^ aRow

This means that GTool will get instances for free to play with and
the finder get really handy to browse widgets.

If you want to join the effort you are welcome.

Stef




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

Every thing has its own flow





Re: [Pharo-dev] [Pharo-fuel] Updates for Pharo4

2014-10-05 Thread Max Leske

 On 04.10.2014, at 07:26, Stéphane Ducasse stef...@free.fr wrote:
 
 
 On 03 Oct 2014, at 22:21, Max Leske maxle...@gmail.com wrote:
 
 I fixed a couple of issues and failing tests for Pharo4. There’s also a 
 couple of new things (e.g. test cases for Context instead of MethodContext) 
 that should be integrated into Pharo4.
 
 Let us know and we will do it ;)

Yep, saw that you included the change, thanks.

 Tx for your energy and constant push.

My pleasure :)

 
 
 Cheers,
 Max
 ___
 Pharo-fuel mailing list
 pharo-f...@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel
 
 ___
 Pharo-fuel mailing list
 pharo-f...@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel




Re: [Pharo-dev] Issue 14160: Introduce isXXX dialect testing methods to SmalltalkImage to ease cross-dialect development

2014-10-05 Thread Ben Coman

Johan Brichau wrote:

It’s true that when you do a lot of cross-dialect development, such a method is 
often what you desire.
However, I think it’s better to do feature detection instead of dialect detection. 


+1
and others agree... (though on the net its possible to find material to 
support any view)


test for features, not for platforms
http://programmers.stackexchange.com/questions/50876/are-there-any-best-practices-on-cross-device-development

The best bet is always to test for features, not versions, because
it's difficult to screw that up and it allows for the possibility
that things might be back-ported in future. 
http://mac-os-x.10953.n7.nabble.com/CocoaApp-isThisTiger-td29619i20.html

The Autoconf approach to portability is to test for features, not for 
versions.

http://en.wikipedia.org/wiki/Autoconf

btw Johan, how would you handle a method-existence-based requirement 
rather than class-existence-based?


...



So, something like:

((Smalltalk includesKey: #CharacterWriteStream) ifTrue:[
  stream := CharacterWriteStream on: (String new: 10)
] ifFalse:[
  stream := WriteStream on: (String new: 10)
]

And yes: use Grease where applicable. We try to maintain Grease across Pharo, 
Squeak and Gemstone. I also think it’s actively ported to VA.

cheers
Johan

On 05 Oct 2014, at 09:00, stepharo steph...@free.fr wrote:


Hi jan

Thanks for the proposal.
I thought about it and I'm against because it goes again the idea of dispatch.
I prefer to have a class and some dispatch. Seaside with Grease is the way to 
go from my perspective.
Finally I do not want such methods in the systems because I spent my time 
removing is because of bad design.
Let us see what other people think.

Stef


With the disclaimer that I haven't done cross platform Smalltalk yet,
in general philosophy I agree with Stef.  A Mentoring Course On 
Smalltalk regarding elimination of conditional logic says, drawing 
design time distinctions at run time is intention obscuring by nature.


...



On 4/10/14 22:14, Jan Vrany wrote:

Hi guys,

I've just opened:

https://pharo.fogbugz.com/f/cases/14160/Introduce-isXXX-dialect-testing-methods-to-SmalltalkImage-to-ease-cross-dialect-development

Introduce isXXX (isPharo, isVisualWorks, ...) dialect testing methods to
SmalltalkImage to ease multi-dialect development.


You would need to get ALL dialects to implement the convention?



RATIONALE:

Commonly used approach to solve differences among dialect is to use a
sort of platform object and dispatch there for troublesome operations
that has to be specialized. This platform object is usually in platform
specific package.



Other option is to load some library like Grease or Sport.

The problem of the first approach is that brings to much (unnecessary)
burden when used for two, three things. The amount of of the code and
management is way to bigger then the amount of the code that has to be
specialized. 


However if you do want to go the testing-for-versions, and your concern 
is management of separate packages, then perhaps it can all be done on 
one package. The following does not seem too onerous from a code 
perspective...

--

CrossPlatformplatform
^ CurrentPlatform ifNil: [ --class variable
CurrentPlatform := self class subClasses detect:
[   :candidatePlatformClass |
candidatePlatformClass isCurrentPlatform

CrossPlatform subclass: SomeCoolDialect.

SomeCoolDialectisCurrentPlatform
^ (Smalltalk version includesSubstring: 'SomeCoolDialect')

--

CrossPlatformwriteStreamOn: aString
self platform writeSteamOn: aString

SomeCoolDialectwriteStreamOn: aString
^ CharacterWriteStream on: aString

--



Loading Grease/Sport on the other hand introduces a

dependency on an external package - not worth of for two or three
things.

The proposed dialect testing messages would allow for simple,
#ifdef-like idiom like:


New #ifdef's which test for specific compilers or manufacturers or 
operating systems are unacceptable. All #ifdef's should test for features.

https://www.cs.utah.edu/dept/old/texinfo/gdb/gdbint.html

cheers -ben



| stream |
...
((Smalltalk respondsTo: #isSomeCoolDialect) and:[Smalltalk
isSomeCoolDialect]) ifTrue:[
  stream := CharacterWriteStream on: (String new: 10)
] ifFalse:[
  stream := WriteStream on: (String new: 10)
]

The #respondsTo: check, while not nice, is required as at the moment not
all dialects could be trusted to have these testing messages.

Putting these methods may not stick with Pharo standard (whatever it
is), but Smalltalk global is probably one of the
very few that are present in pretty much every Smalltalk implementation.
Other option would be to place them to the class side of an Object
(which is amost certainly present everywhere), however

Smalltalk isPharo

reads better than

Object isPharo.

Best, Jan















Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Ben Coman

Tudor Girba wrote:

Hi Esteban,

I know it's a usability principle, but usability should also take into 
account culture. Programmers are not every-day users, and the 
assumptions we take should adapt to their needs. This is why it is worth 
exploring what might or might not be needed.


I cannot believe that programmers do not know the shortcuts, 


But programmers new to Pharo don't know the shortcuts.  Menus enhance 
the explorability of the system, and lower the cognitive load of 
remembering everything all at once, and helps with video tutorials.

cheers -ben

but I did 
not consider the case in which people go through multiple virtual boxes 
to get to the image. This is a legitimate issue, so these actions are back.


Cheers,
Doru


On Sun, Oct 5, 2014 at 9:36 AM, Esteban Lorenzano esteba...@gmail.com 
mailto:esteba...@gmail.com wrote:




On 04 Oct 2014, at 22:43, Tudor Girba tu...@tudorgirba.com
mailto:tu...@tudorgirba.com wrote:

Hi Hernán,

Thanks for the feedback. Just a question: Was there anything you
do like? :)

The rest of the reply is inline.


On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand
hernan.mora...@gmail.com mailto:hernan.mora...@gmail.com wrote:

Sorry if following issues were reported. I have seen so many
mails about GT that I wanted to try it. These are my first
notes and personal tastes, don't take them as negative just
want to provide some feedback:

- First weird thing: The Workspace doesn't open a Workspace
anymore, it opens a Playground window.


That is because it is still a work in progress.
 


- When I select code, right click gives no Copy, Cut, Delete
commands.


This was reported. The menu is missing on purpose. I still have a
hard time understanding why a developer needs those menu entries,
but we will add them back. Btw, the shortcuts do work.


Is an usability principle: A system should provide visual feedback
about what happens and about what it can do. 
How can we know what can or cannot do the playground?

But of course, using menus as documentation is not always a good
idea, so… we need to find a balance here :)
I always use OSX design guidelines as a base on what I want to do
(not that we should take it literally, but is always good to see
what others with time to invest have to say). 
And this is all what they say about

menus: 
https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Menus/Menus.html

Esteban

 


- Selecting an instance variable from the State tab,
completely shift the code view and scrolls to a new Inspector.
Is not that I would love to scroll back everytime to get a
view on my code.


The usage depends on the scenario in which you are. In most cases,
when you do want to drill through many objects, you are likely to
only use the playground as an entry point. When you build a more
elaborate piece of code in the playground, you typically do not
need to drill too much. In any case, if you want to scroll back,
there are also keybindings that allow you to navigate:
Cmd+Alt+Left/Right.
 


- I cannot find how to close new Inspector tabs.


This is a feature that is already planned.
 


- Print it seems broken. It seems to print evaluation result
but suddenly dissapears.


What do you mean? Can you elaborate on that? Print it should
behave like here:
 

- Debugger buttons Into, Through, etc. 


-- They are too small and close themselves for the importance
they have.
-- They have no caption, so you have to mouse over to know
what they do (until you get used to)
-- They are like too distant from the code view.


The debugger is not in the Pharo image, so I think you are trying
the Moose image. Is that so?
In any case, the positioning of the icons will be the same
everywhere in GT (to the right of the scope they relate to). We
are still fiddling with the right balance in the debugger.

Cheers,
Doru

 


Cheers,

Hernán





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


Every thing has its own flow





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

Every thing has its own flow






Re: [Pharo-dev] About ways to participate in community and general negativity

2014-10-05 Thread Hernán Morales Durand
2014-10-03 17:03 GMT-03:00 stepharo steph...@free.fr:


 On 3/10/14 18:56, Hernán Morales Durand wrote:



  I have the same feeling. Pharo is yours, but I take the main
 decisions. Actually it feels a little bit insulting, I am using Pharo
 since several years in a domain which nobody works with Smalltalk, and
 never got a survey request (except for some software engineering research).
 And I bet there are people not in the Pharo/Moose/Seaside team that didn't
 received any attention and they are doing significant experiences.

 You are paranoid. :) We know well people in Moose and Seaside and they
 know that they can talk to us.
 Just ask and we listen. I do not think that people understand what is our
 life. We are not a team working on Pharo. We are a research team
 fighting to get some time to push Pharo and Inria gives us some money to
 pay engineers like igor, and esteban.



I know that. What I am saying is: Why there is no voting process for
libraries, tools, roadmaps, etc? Not for asking things to you but for
getting an idea what's most wanted, where is the community. Some of you are
scientists, you know the value of collecting data.

I remembered there was a Pharo usage poll in 2012 :
https://docs.google.com/forms/d/1sa01_h8_SFoPIrrXaAzpmmCBvnXgEpGzIyslnkcgTpk/viewform?formkey=dFZKeXUwaG80OWhSOGpZVERrX2ZlVGc6MQfromEmail=true

I like that route. Even if people with the money don't care, let us believe
we have the data, opinions, ideas, etc. You know like a modern democracy :)

Definitely I would help building a poll, it doesn't *have* to include a
Consortium member but that would be really nice. We could try smart
questions. Anyone?

   Why they don't write here? I suspect one of the reasons is Pharo is
 being too motivated by software enineering research and not enough interest
 for other giant domains like 3D, finance, expert systems, HPC, etc. People
 perceive this.

 We are NOT DOING RESEARCH IN SOFTWARE ENGINEERING IN PHARO.
 Repeat after me.
 We are NOT DOING RESEARCH IN SOFTWARE ENGINEERING IN PHARO.

 We are just maintaining it and making sure that we can have a decent
 compiler and infrastructure to build other systems.



Ok for now I disagree a little bit, but I don't want to go there, I don't
think that would be a productive discussion.



 How could we build finance, HPC, 3d without been experts. Do not dream
 there are full team of researchers at Inria building real 3d engines.
 Why would we go there? Seriously.


Because there is big money in 3D?






  I see years passing but money never comes. You cannot expect big funding
 if you keep doing things the same as always.


 Exactly and do not dream about investors.

Now we work hard to set the consortium. If at the end of the journey,
 people do not sponsor or participate then we will close it.
 and we will look back and say that we did our best. We create an
 autonomous entity that can manage Pharo but if we cannot pay an engineer
 with it then this is ok too. But people should not complain that
 open-source Pharo does not work.
 We do not have mozilla or google behind us and if individuals do not
 understand that they can get an impact = Pharo is yours
 then what can we do. Just continue slower with less engineers.


But there are entrepreneur networks like FounderDating and https://angel.co/
Of course they are not Google but they are a popular choice for initial
investment.
Someone using Pharo has passed the seed funding round?
Or tried to present a business plan?

Cheers,

Hernán


Re: [Pharo-dev] structuring widget examples

2014-10-05 Thread stepharo


On 5/10/14 15:10, Tudor Girba wrote:

Hi Stef,

Great. GT is already prepared for this :). If you define a gtExample 
on the class side, you will get an E.g. tab with those examples.


It's called gtExample because we did not want to interfere with other 
pragmas, but perhaps we can change it to eg, or example. What do 
you think?


for a given class I would like to have potentially multiple examples. I 
already have that in certain classes.
Then since these examples are for core classes I do not really like the 
idea to get gt*


Now first we should have many more and renaming a pragma is just the 
easy part of the game.
Because I'm turning WidgetExamples into class methods examples and 
trying to understand the API of UITheme

and reducing the mess.

I want

- UITheme to call widgets class methods
- but I have to understand the theme impact on the API.

a kind of gigantic task. but we will see.
Stef


Cheers,
Doru


On Sun, Oct 5, 2014 at 2:25 PM, stepharo steph...@free.fr 
mailto:steph...@free.fr wrote:


Hi guys

I started to systematically defined widget example using the
pragram exampleWidget


rowPrototype
Answer a prototypical row
self rowPrototype openInHand
exampleWidget

| sampleMorphs aRow |
sampleMorphs := (1 to: (2 + 3 atRandom)) collect:
[:integer | EllipseMorph new extent: ((60 + (20 atRandom))
@ (80 + ((20 atRandom; color: Color random; setNameTo: ('egg',
integer asString); yourself].
aRow := self inARow: sampleMorphs.
aRow setNameTo: 'Row'.
aRow enableDragNDrop.
aRow cellInset: 6.
aRow layoutInset: 8.
aRow setBalloonText: 'Things dropped into here will
automatically be organized into a row. Once you have added your
own items here, you will want to remove the sample colored eggs
that this started with, and you will want to change this balloon
help message to one of your own!'.
aRow color: Color veryVeryLightGray.
^ aRow

This means that GTool will get instances for free to play with and
the finder get really handy to browse widgets.

If you want to join the effort you are welcome.

Stef




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

Every thing has its own flow




Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Tudor Girba
Hi,

On Sun, Oct 5, 2014 at 5:38 PM, Ben Coman b...@openinworld.com wrote:

 Tudor Girba wrote:

 Hi Esteban,

 I know it's a usability principle, but usability should also take into
 account culture. Programmers are not every-day users, and the assumptions
 we take should adapt to their needs. This is why it is worth exploring what
 might or might not be needed.

 I cannot believe that programmers do not know the shortcuts,


 But programmers new to Pharo don't know the shortcuts.  Menus enhance the
 explorability of the system, and lower the cognitive load of remembering
 everything all at once, and helps with video tutorials.
 cheers -ben


Perhaps it was not clear, but the current discussion is about
copy/cut/paste :).

Cheers,
Doru




  but I did not consider the case in which people go through multiple
 virtual boxes to get to the image. This is a legitimate issue, so these
 actions are back.

 Cheers,
 Doru


 On Sun, Oct 5, 2014 at 9:36 AM, Esteban Lorenzano esteba...@gmail.com
 mailto:esteba...@gmail.com wrote:


  On 04 Oct 2014, at 22:43, Tudor Girba tu...@tudorgirba.com
 mailto:tu...@tudorgirba.com wrote:

 Hi Hernán,

 Thanks for the feedback. Just a question: Was there anything you
 do like? :)

 The rest of the reply is inline.


 On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand
 hernan.mora...@gmail.com mailto:hernan.mora...@gmail.com wrote:

 Sorry if following issues were reported. I have seen so many
 mails about GT that I wanted to try it. These are my first
 notes and personal tastes, don't take them as negative just
 want to provide some feedback:

 - First weird thing: The Workspace doesn't open a Workspace
 anymore, it opens a Playground window.


 That is because it is still a work in progress.

 - When I select code, right click gives no Copy, Cut, Delete
 commands.


 This was reported. The menu is missing on purpose. I still have a
 hard time understanding why a developer needs those menu entries,
 but we will add them back. Btw, the shortcuts do work.


 Is an usability principle: A system should provide visual feedback
 about what happens and about what it can do. How can we know what
 can or cannot do the playground?
 But of course, using menus as documentation is not always a good
 idea, so… we need to find a balance here :)
 I always use OSX design guidelines as a base on what I want to do
 (not that we should take it literally, but is always good to see
 what others with time to invest have to say). And this is all
 what they say about
 menus: https://developer.apple.com/library/mac/documentation/
 userexperience/conceptual/applehiguidelines/Menus/Menus.html

 Esteban


 - Selecting an instance variable from the State tab,
 completely shift the code view and scrolls to a new Inspector.
 Is not that I would love to scroll back everytime to get a
 view on my code.


 The usage depends on the scenario in which you are. In most cases,
 when you do want to drill through many objects, you are likely to
 only use the playground as an entry point. When you build a more
 elaborate piece of code in the playground, you typically do not
 need to drill too much. In any case, if you want to scroll back,
 there are also keybindings that allow you to navigate:
 Cmd+Alt+Left/Right.

 - I cannot find how to close new Inspector tabs.


 This is a feature that is already planned.

 - Print it seems broken. It seems to print evaluation result
 but suddenly dissapears.


 What do you mean? Can you elaborate on that? Print it should
 behave like here:

 - Debugger buttons Into, Through, etc.
 -- They are too small and close themselves for the importance
 they have.
 -- They have no caption, so you have to mouse over to know
 what they do (until you get used to)
 -- They are like too distant from the code view.


 The debugger is not in the Pharo image, so I think you are trying
 the Moose image. Is that so?
 In any case, the positioning of the icons will be the same
 everywhere in GT (to the right of the scope they relate to). We
 are still fiddling with the right balance in the debugger.

 Cheers,
 Doru


 Cheers,

 Hernán





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

 Every thing has its own flow





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

 Every thing has its own flow







-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Esteban Lorenzano

 On 05 Oct 2014, at 18:24, Tudor Girba tu...@tudorgirba.com wrote:
 
 Hi,
 
 On Sun, Oct 5, 2014 at 5:38 PM, Ben Coman b...@openinworld.com 
 mailto:b...@openinworld.com wrote:
 Tudor Girba wrote:
 Hi Esteban,
 
 I know it's a usability principle, but usability should also take into 
 account culture. Programmers are not every-day users, and the assumptions we 
 take should adapt to their needs. This is why it is worth exploring what 
 might or might not be needed.
 
 I cannot believe that programmers do not know the shortcuts, 
 
 But programmers new to Pharo don't know the shortcuts.  Menus enhance the 
 explorability of the system, and lower the cognitive load of remembering 
 everything all at once, and helps with video tutorials.
 cheers -ben
 
 Perhaps it was not clear, but the current discussion is about copy/cut/paste 
 :).

Well, I don’t know if it helps, but I cannot think on a single app in my life 
that does not have those ubiquitous copy/cut/paste options as part of their 
contextual menus. 
Not that because everybody does it we *have to* do it too… but I do not see a 
reason to not follow the universal conventions in this case.  

Esteban

 
 Cheers,
 Doru
 
 
  
 but I did not consider the case in which people go through multiple virtual 
 boxes to get to the image. This is a legitimate issue, so these actions are 
 back.
 
 Cheers,
 Doru
 
 
 On Sun, Oct 5, 2014 at 9:36 AM, Esteban Lorenzano esteba...@gmail.com 
 mailto:esteba...@gmail.com mailto:esteba...@gmail.com 
 mailto:esteba...@gmail.com wrote:
 
 
 On 04 Oct 2014, at 22:43, Tudor Girba tu...@tudorgirba.com 
 mailto:tu...@tudorgirba.com
 mailto:tu...@tudorgirba.com mailto:tu...@tudorgirba.com wrote:
 
 Hi Hernán,
 
 Thanks for the feedback. Just a question: Was there anything you
 do like? :)
 
 The rest of the reply is inline.
 
 
 On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand
 hernan.mora...@gmail.com mailto:hernan.mora...@gmail.com 
 mailto:hernan.mora...@gmail.com mailto:hernan.mora...@gmail.com wrote:
 
 Sorry if following issues were reported. I have seen so many
 mails about GT that I wanted to try it. These are my first
 notes and personal tastes, don't take them as negative just
 want to provide some feedback:
 
 - First weird thing: The Workspace doesn't open a Workspace
 anymore, it opens a Playground window.
 
 
 That is because it is still a work in progress.
  
 - When I select code, right click gives no Copy, Cut, Delete
 commands.
 
 
 This was reported. The menu is missing on purpose. I still have a
 hard time understanding why a developer needs those menu entries,
 but we will add them back. Btw, the shortcuts do work.
 
 Is an usability principle: A system should provide visual feedback
 about what happens and about what it can do. How can we know what can 
 or cannot do the playground?
 But of course, using menus as documentation is not always a good
 idea, so… we need to find a balance here :)
 I always use OSX design guidelines as a base on what I want to do
 (not that we should take it literally, but is always good to see
 what others with time to invest have to say). And this is all what 
 they say about
 menus: 
 https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Menus/Menus.html
  
 https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Menus/Menus.html
 
 Esteban
 
  
 - Selecting an instance variable from the State tab,
 completely shift the code view and scrolls to a new Inspector.
 Is not that I would love to scroll back everytime to get a
 view on my code.
 
 
 The usage depends on the scenario in which you are. In most cases,
 when you do want to drill through many objects, you are likely to
 only use the playground as an entry point. When you build a more
 elaborate piece of code in the playground, you typically do not
 need to drill too much. In any case, if you want to scroll back,
 there are also keybindings that allow you to navigate:
 Cmd+Alt+Left/Right.
  
 - I cannot find how to close new Inspector tabs.
 
 
 This is a feature that is already planned.
  
 - Print it seems broken. It seems to print evaluation result
 but suddenly dissapears.
 
 
 What do you mean? Can you elaborate on that? Print it should
 behave like here:
  
 - Debugger buttons Into, Through, etc. 
 -- They are too small and close themselves for the importance
 they have.
 -- They have no caption, so you have to mouse over to know
 what they do (until you get used to)
 -- They are like too distant from the code view.
 
 
 The debugger is not in the Pharo image, so I think you are trying
 the Moose image. 

[Pharo-dev] [pharo-project/pharo-core] 32845c: 40284

2014-10-05 Thread GitHub
  Branch: refs/heads/4.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: 32845c46176f43f87157c4ccc34157cf9392aa05
  
https://github.com/pharo-project/pharo-core/commit/32845c46176f43f87157c4ccc34157cf9392aa05
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2014-10-05 (Sun, 05 Oct 2014)

  Changed paths:
M KernelTests.package/IVsAndClassVarNamesConflictTest.class/definition.st
A 
KernelTests.package/IVsAndClassVarNamesConflictTest.class/instance/running/setUp.st
A 
KernelTests.package/IVsAndClassVarNamesConflictTest.class/instance/running/tearDown.st
R 
KernelTests.package/IVsAndClassVarNamesConflictTest.class/instance/setup/setUp.st
R 
KernelTests.package/IVsAndClassVarNamesConflictTest.class/instance/setup/tearDown.st
M 
KernelTests.package/IVsAndClassVarNamesConflictTest.class/instance/tests/testOneCanProceedWhenIntroducingCapitalizedInstanceVariables.st
M 
KernelTests.package/IVsAndClassVarNamesConflictTest.class/instance/tests/testOneCanProceedWhenIntroducingClasseVariablesBeginingWithLowerCaseCharacters.st
M KernelTests.package/ObsoleteTest.class/definition.st
A KernelTests.package/ObsoleteTest.class/instance/running/setUp.st
A KernelTests.package/ObsoleteTest.class/instance/running/tearDown.st
R 
KernelTests.package/ObsoleteTest.class/instance/testing/testClassObsolete.st
R 
KernelTests.package/ObsoleteTest.class/instance/testing/testTraitObsolete.st
A KernelTests.package/ObsoleteTest.class/instance/tests/testClassObsolete.st
A 
KernelTests.package/ObsoleteTest.class/instance/tests/testFixObsoleteSharedPools.st
A KernelTests.package/ObsoleteTest.class/instance/tests/testTraitObsolete.st
M 
MonticelloGUI.package/MCSliceMaker.class/instance/actions/downloadIssueSummary.st
A 
MonticelloGUI.package/MCSliceMaker.class/instance/actions/informFailedWith_.st
A 
Morphic-Base.package/StringMorph.class/class/examples/exampleManyStringMorphs.st
R Morphic-Base.package/StringMorph.class/class/testing/test.st
A Morphic-Widgets-Basic.package/LabelMorph.class/class/examples/example.st
A 
Morphic-Widgets-Basic.package/LabelMorph.class/class/examples/exampleDisable.st
A Morphic-Widgets-Basic.package/LabelMorph.class/class/instance 
creation/labelFont.st
A Morphic-Widgets-Basic.package/LabelMorph.class/class/instance 
creation/newLabelFor_label_getEnabled_.st
A Morphic-Widgets-Basic.package/LabelMorph.class/class/instance 
creation/newLabel_.st
A 
Morphic-Widgets-Basic.package/PluggableButtonMorph.class/class/examples/exampleButtonNoAction.st
A Morphic-Widgets-Basic.package/PluggableButtonMorph.class/class/instance 
creation/newButtonFor_action_label_help_.st
A Morphic-Widgets-Basic.package/PluggableButtonMorph.class/class/instance 
creation/newButtonFor_getState_action_arguments_getEnabled_label_help_.st
M 
Morphic-Widgets-Extra.package/DockingBarMorph.class/class/example/example.st
M 
Morphic-Widgets-Extra.package/DockingBarMorph.class/class/example/exampleWithMenu.st
R Polymorph-Tools-Diff.package/DiffChangeMorph.class/class/as yet 
unclassified/from_label_to_label_contextClass_.st
A Polymorph-Tools-Diff.package/DiffChangeMorph.class/class/instance 
creation/from_label_to_label_contextClass_.st
M SUnit-Core.package/ClassFactoryForTestCase.class/definition.st
A 
SUnit-Core.package/ClassFactoryForTestCase.class/instance/accessing/nextCount.st
A 
SUnit-Core.package/ClassFactoryForTestCase.class/instance/cleaning/deleteClass_.st
M 
SUnit-Core.package/ClassFactoryForTestCase.class/instance/creating/newClassName.st
M 
SUnit-Core.package/ClassFactoryForTestCase.class/instance/creating/newSubclassOf_uses_instanceVariableNames_classVariableNames_category_.st
A 
SUnit-Core.package/ClassFactoryForTestCase.class/instance/creating/newSubclassOf_uses_instanceVariableNames_classVariableNames_poolDictionaries_category_.st
A ScriptLoader40.package/ScriptLoader.class/instance/pharo - 
scripts/script284.st
A ScriptLoader40.package/ScriptLoader.class/instance/pharo - 
updates/update40284.st
M 
ScriptLoader40.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
A 
System-Support.package/SmalltalkImage.class/instance/housekeeping/fixObsoleteBindings.st
M 
System-Support.package/SmalltalkImage.class/instance/housekeeping/fixObsoleteReferences.st
A 
System-Support.package/SmalltalkImage.class/instance/housekeeping/fixObsoleteSharedPools.st
M Traits.package/TBehavior.class/instance/accessing/sharedPoolNames.st
M 
Traits.package/TClassDescription.class/instance/printing/sharedPoolsString.st

  Log Message:
  ---
  40284
13905 entering non existing issue numbers in slice maker 
https://pharo.fogbugz.com/f/cases/13905

14164 using exampleWidget and not widgetExample
https://pharo.fogbugz.com/f/cases/14164

13088 Deleting class that is used in pool dictionaries leaves a private class 
pool 

[Pharo-dev] [pharo-project/pharo-core]

2014-10-05 Thread GitHub
  Branch: refs/tags/40284
  Home:   https://github.com/pharo-project/pharo-core


Re: [Pharo-dev] GT first impressions

2014-10-05 Thread Ben Coman

Tudor Girba wrote:

Hi,

On Sun, Oct 5, 2014 at 5:38 PM, Ben Coman b...@openinworld.com 
mailto:b...@openinworld.com wrote:


Tudor Girba wrote:

Hi Esteban,

I know it's a usability principle, but usability should also
take into account culture. Programmers are not every-day users,
and the assumptions we take should adapt to their needs. This is
why it is worth exploring what might or might not be needed.

I cannot believe that programmers do not know the shortcuts,


But programmers new to Pharo don't know the shortcuts.  Menus
enhance the explorability of the system, and lower the cognitive
load of remembering everything all at once, and helps with video
tutorials.
cheers -ben


Perhaps it was not clear, but the current discussion is about 
copy/cut/paste :).


Cheers,
Doru





Yes, it was not clear.  I was thinking more of the Extended search... 
and suchlike, but I see you've mentioned addressing that already.

cheers -ben


 


but I did not consider the case in which people go through
multiple virtual boxes to get to the image. This is a legitimate
issue, so these actions are back.

Cheers,
Doru


On Sun, Oct 5, 2014 at 9:36 AM, Esteban Lorenzano
esteba...@gmail.com mailto:esteba...@gmail.com
mailto:esteba...@gmail.com mailto:esteba...@gmail.com wrote:


On 04 Oct 2014, at 22:43, Tudor Girba
tu...@tudorgirba.com mailto:tu...@tudorgirba.com
mailto:tu...@tudorgirba.com
mailto:tu...@tudorgirba.com wrote:

Hi Hernán,

Thanks for the feedback. Just a question: Was there
anything you
do like? :)

The rest of the reply is inline.


On Sat, Oct 4, 2014 at 10:10 PM, Hernán Morales Durand
hernan.mora...@gmail.com
mailto:hernan.mora...@gmail.com
mailto:hernan.morales@gmail.__com
mailto:hernan.mora...@gmail.com wrote:

Sorry if following issues were reported. I have seen
so many
mails about GT that I wanted to try it. These are my
first
notes and personal tastes, don't take them as
negative just
want to provide some feedback:

- First weird thing: The Workspace doesn't open a
Workspace
anymore, it opens a Playground window.


That is because it is still a work in progress.
 
- When I select code, right click gives no Copy,

Cut, Delete
commands.


This was reported. The menu is missing on purpose. I
still have a
hard time understanding why a developer needs those menu
entries,
but we will add them back. Btw, the shortcuts do work.


Is an usability principle: A system should provide visual
feedback
about what happens and about what it can do. How can we
know what can or cannot do the playground?
But of course, using menus as documentation is not always a good
idea, so… we need to find a balance here :)
I always use OSX design guidelines as a base on what I want
to do
(not that we should take it literally, but is always good to see
what others with time to invest have to say). And this
is all what they say about
menus:

https://developer.apple.com/__library/mac/documentation/__userexperience/conceptual/__applehiguidelines/Menus/Menus.__html

https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Menus/Menus.html

Esteban

 
- Selecting an instance variable from the State tab,

completely shift the code view and scrolls to a new
Inspector.
Is not that I would love to scroll back everytime to
get a
view on my code.


The usage depends on the scenario in which you are. In
most cases,
when you do want to drill through many objects, you are
likely to
only use the playground as an entry point. When you
build a more
elaborate piece of code in the playground, you typically
do not
need to drill too much. In any case, if you want to
scroll back,
there are also keybindings that allow you to navigate:
Cmd+Alt+Left/Right.
 
- I cannot find how to close new Inspector tabs.



This is a feature that is already planned.
 

Re: [Pharo-dev] gt issues

2014-10-05 Thread kmo
By video controls I meant /first, previous, next, last /buttons - but that's
not a good idea now I think about it. I still think  page numbers might be
better than dots. But, as you say, I managed to use the dots so they can't
be that bad, Still, I think the dots would look more obviously like
navigation controls if they were embedded in a small sunken or raised panel.
But perhaps as you suggest with more contrast in colour even that might not
be necessary.

I'm a bit more concerned about how easy it is to end up with lots of panes
that are identical. For example, in the screenshots of smallInteger(42) in
this thread. Every pane reads the same. Isn't that confusing? No doubt I'll
get used to it, though.   

I don't like the idea of flashing the controls by the way - that seems very
artificial to me.



--
View this message in context: 
http://forum.world.st/gt-issues-tp4782476p4782808.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] structuring widget examples

2014-10-05 Thread Tudor Girba
Hi Stef,

I was not clear. The E.g. presentation for a class lists all examples. So,
it is expected that we get more examples for a class. Take a look at the
attached screenshot showing the examples of FileReference.

Let's call it example and then we use it consistently throughout the
system. Is that Ok?

Cheers,
Doru

[image: Inline image 1]

On Sun, Oct 5, 2014 at 5:58 PM, stepharo steph...@free.fr wrote:


 On 5/10/14 15:10, Tudor Girba wrote:

 Hi Stef,

  Great. GT is already prepared for this :). If you define a gtExample
 on the class side, you will get an E.g. tab with those examples.

  It's called gtExample because we did not want to interfere with other
 pragmas, but perhaps we can change it to eg, or example. What do you
 think?


 for a given class I would like to have potentially multiple examples. I
 already have that in certain classes.
 Then since these examples are for core classes I do not really like the
 idea to get gt*

 Now first we should have many more and renaming a pragma is just the easy
 part of the game.
 Because I'm turning WidgetExamples into class methods examples and trying
 to understand the API of UITheme
 and reducing the mess.

 I want

 - UITheme to call widgets class methods
 - but I have to understand the theme impact on the API.

 a kind of gigantic task. but we will see.
 Stef


  Cheers,
 Doru


 On Sun, Oct 5, 2014 at 2:25 PM, stepharo steph...@free.fr wrote:

 Hi guys

 I started to systematically defined widget example using the pragram
 exampleWidget


 rowPrototype
 Answer a prototypical row
 self rowPrototype openInHand
 exampleWidget

 | sampleMorphs aRow |
 sampleMorphs := (1 to: (2 + 3 atRandom)) collect:
 [:integer | EllipseMorph new extent: ((60 + (20 atRandom)) @ (80
 + ((20 atRandom; color: Color random; setNameTo: ('egg', integer
 asString); yourself].
 aRow := self inARow: sampleMorphs.
 aRow setNameTo: 'Row'.
 aRow enableDragNDrop.
 aRow cellInset: 6.
 aRow layoutInset: 8.
 aRow setBalloonText: 'Things dropped into here will automatically be
 organized into a row. Once you have added your own items here, you will
 want to remove the sample colored eggs that this started with, and you will
 want to change this balloon help message to one of your own!'.
 aRow color: Color veryVeryLightGray.
 ^ aRow

 This means that GTool will get instances for free to play with and the
 finder get really handy to browse widgets.

 If you want to join the effort you are welcome.

 Stef




  --
 www.tudorgirba.com

  Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Issue 14160: Introduce isXXX dialect testing methods to SmalltalkImage to ease cross-dialect development

2014-10-05 Thread Jan Vrany
On Sun, 2014-10-05 at 10:29 +0200, Johan Brichau wrote:
 It’s true that when you do a lot of cross-dialect development, such a method 
 is often what you desire.
 However, I think it’s better to do feature detection instead of dialect 
 detection. So, something like:
 
 ((Smalltalk includesKey: #CharacterWriteStream) ifTrue:[
   stream := CharacterWriteStream on: (String new: 10)
 ] ifFalse:[
   stream := WriteStream on: (String new: 10)
 ]


Right, in this example it could eventually work. Another concrete
example I bumped just yesterday. The feature testing code would look
like 

((Character respondsTo: #to:) and:[($a to: $z) isKindOf: Interval])
ifTrue:[
   ...
] ifFalse:[
   ...
].

(true, in this very case you may be able to get around using different
method, but you get the point, no?)

Some time ago Hilaire posted a very nice, 15 lines long code that does
reliable feature detection whether the system is Pharo 2.0 or 3.0 
(or similar, I don't remember exactly). 

Is the interval testing code above more robust? Perhaps. Is it more
readable, more intention revelaling? I doubt it. 

While I can agree that feature testing is is better, however, in my
experience it is very tricky if the code does not provide support for
such tests. 

 And yes: use Grease where applicable. We try to maintain Grease across Pharo, 
 Squeak and Gemstone. I also think it’s actively ported to VA.
 
That's great. But having such dependency is exactly what I, and not only
me, don't want if it would be for only one or two methods. The aim is to
provide a simple solution for simple cases, not a silver bullet.

Jan  


 cheers
 Johan
 
 On 05 Oct 2014, at 09:00, stepharo steph...@free.fr wrote:
 
  Hi jan
  
  Thanks for the proposal.
  I thought about it and I'm against because it goes again the idea of 
  dispatch.
  I prefer to have a class and some dispatch. Seaside with Grease is the way 
  to go from my perspective.
  Finally I do not want such methods in the systems because I spent my time 
  removing is because of bad design.
  Let us see what other people think.
  
  Stef
  
  On 4/10/14 22:14, Jan Vrany wrote:
  Hi guys,
  
  I've just opened:
  
  https://pharo.fogbugz.com/f/cases/14160/Introduce-isXXX-dialect-testing-methods-to-SmalltalkImage-to-ease-cross-dialect-development
  
  Introduce isXXX (isPharo, isVisualWorks, ...) dialect testing methods to
  SmalltalkImage to ease multi-dialect development.
  
  RATIONALE:
  
  Commonly used approach to solve differences among dialect is to use a
  sort of platform object and dispatch there for troublesome operations
  that has to be specialized. This platform object is usually in platform
  specific package.
  Other option is to load some library like Grease or Sport.
  
  The problem of the first approach is that brings to much (unnecessary)
  burden when used for two, three things. The amount of of the code and
  management is way to bigger then the amount of the code that has to be
  specialized. Loading Grease/Sport on the other hand introduces a
  dependency on an external package - not worth of for two or three
  things.
  
  The proposed dialect testing messages would allow for simple,
  #ifdef-like idiom like:
  
  | stream |
  ...
  ((Smalltalk respondsTo: #isSomeCoolDialect) and:[Smalltalk
  isSomeCoolDialect]) ifTrue:[
stream := CharacterWriteStream on: (String new: 10)
  ] ifFalse:[
stream := WriteStream on: (String new: 10)
  ]
  
  The #respondsTo: check, while not nice, is required as at the moment not
  all dialects could be trusted to have these testing messages.
  
  Putting these methods may not stick with Pharo standard (whatever it
  is), but Smalltalk global is probably one of the
  very few that are present in pretty much every Smalltalk implementation.
  Other option would be to place them to the class side of an Object
  (which is amost certainly present everywhere), however
  
  Smalltalk isPharo
  
  reads better than
  
  Object isPharo.
  
  Best, Jan
  
  
  
  
  
 
 
 





[Pharo-dev] [ANN] flow: a living full-stack #‎framework for the web

2014-10-05 Thread Sebastian Sastre
Hi guys,

I’m sharing slides of my presentation at CampSmalltalkVI2014
http://www.slideshare.net/sebastianconcept/flow-39897704


From flow’s readme at github:

Flow's mission is to provide consultants, startups and software houses with a 
competitive Smalltalk full-stack framework that allows them to quickly deliver 
a demo with all the modern html5 features the market expects today (2014). The 
idea is that they can tactically use this framework to keep momentum up among 
their prospects and clients and scale things to full successful projects 
delivered by kickass productive teams or individuals.

sebastian

o/

blog: http://sebastianconcept.com
LinkedIn: http://www.linkedin.com/in/sebastiansastre
github: https://github.com/sebastianconcept







Re: [Pharo-dev] [Moose-dev] [ANN] Test Coverage with Hapao

2014-10-05 Thread Alexandre Bergel
Hi Maximiliano!

The legend problem is now fixed. Can you double check please?

What would be the best way to exclude some methods? This question slightly 
rephrased: how do you run Hapao? Programmatically or using the World menu?

Cheers,
Alexandre


On Oct 2, 2014, at 11:34 PM, Maximiliano Taborda mtabo...@gmail.com wrote:

 Hi Alexandre.
 
 Yes, now it works. Thank you. But, the box with the legends don't show very 
 well. Like in the attached image:
 
 RelativeDate.png
 
 And, a question. Is there a way to exclude some methods from the analysis? I 
 have some class methods, used for initialize some singletons for example, 
 that I do not want to be considered for coverage.
 
 Regards.
 Maxi
 
 2014-10-02 18:39 GMT-03:00 Alexandre Bergel alexandre.ber...@me.com:
 Hi!
 
 Sorry, we somehow slightly messed up with the configurations.
 I just took the last Pharo 4.0, and loaded Roassal2:
 
 -=-=-=-=-=-=-=-=-=-=-=-=
 Gofer new smalltalkhubUser: 'ObjectProfile'
 project: 'Roassal2';
 package: 'ConfigurationOfRoassal2';
 load.
 (Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
 -=-=-=-=-=-=-=-=-=-=-=-=
 
 Then I loaded S2py:
 -=-=-=-=-=-=-=-=-=-=-=-=
 Gofer new smalltalkhubUser: 'ObjectProfile'
 project: 'S2py';
 package: 'S2py';
 load.
 -=-=-=-=-=-=-=-=-=-=-=-=
 
 It works here.
 Can you confirm?
 
 Sorry for having taken long to answer...
 
 Cheers,
 Alexandre
 
 On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda mtabo...@gmail.com wrote:
 
  Hi Alexandre,
 
  I want to try Hapao2 to check the coverage level of Chalten, but it's not 
  working (at least for me).
  I load Roassal2 and S2py in a fresh 3.0 image like you say and the new 
  entries appear in the world menu, but the only option that partially works 
  is the one for a particular class (Hapao @ Class ...) and after run all the 
  tests (I see the progress showing that) a MNU is raised in the method 
  #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not 
  loaded.
 
  So, could you tell me what I missed please? I need to load another thing, 
  which?, at least the package which defines RTEdgeBuilder.
 
  Thanks for your help.
 
  Regards.
  Maxi
 
  2014-09-16 20:10 GMT-03:00 Alexandre Bergel alexandre.ber...@me.com:
  Excellent!
 
  Alexandre
 
  Le 16-09-2014 à 16:15, Tudor Girba tu...@tudorgirba.com a écrit :
 
  Great!
 
  I will go over it more thoroughly in the following weeks and get back to 
  you with feedback.
 
  Cheers,
  Doru
 
 
 
  On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel 
  alexandre.ber...@me.com wrote:
  Dear all,
 
  We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro 
  Infante put quite some work on Spy2 (an über cool profiling framework for 
  Pharo) and Hapao2.
  Hapao2 is about assessing the test coverage of your code and is a major 
  revamp of Hapao1, which was presented a couple of years ago by Vanessa.
  Hapao2 does not only list covered and uncovered methods, as most test 
  coverage tool on Earth will do. Hapao gives a great visualization to 
  easily navigate in your code, assess its complexity, and give you a great 
  visual output telling its coverage.
 
  You need Roassal in your image:
 
  Gofer new smalltalkhubUser: 'ObjectProfile'
  project: 'Roassal2';
  package: 'ConfigurationOfRoassal2';
  load.
  (Smalltalk at: #ConfigurationOfRoassal2) load
 
 
  and you need S2py:
  MCHttpRepository
   location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
   user: ''
   password: ''
 
 
  New entries will appear in the world menu:
  Screen Shot 2014-09-16 at 11.49.06 AM.png
 
  You can run the test coverage on :
   - the class classes you have modified,
   - on a particular
   - on a particular class category
   - on the last class categories you have modified
   - on the last packages you have modified
 
  Here is a portion of a large coverage:
 
  Screen Shot 2014-09-16 at 12.00.11 PM.png
 
  A technical description of Hapao may be found on 
  http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
 
  We are daily using Hapao to help us understand our tests.
 
  Cheers,
  Ricardo, Alejandro  Alexandre
  --
  _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
  Alexandre Bergel  http://www.bergel.eu
  ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 
  ___
  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
 
 
 --
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 
 

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






Re: [Pharo-dev] Issue 14160: Introduce isXXX dialect testing methods to SmalltalkImage to ease cross-dialect development

2014-10-05 Thread Paul DeBruicker
Would using Metacello's knowledge of the platform work for you?  e.g.


(MetacelloPlatform current defaultPlatformAttributes includes: '#squeak')
ifTrue:[ ... ] 
(MetacelloPlatform current defaultPlatformAttributes includes: '#pharo1.2') 
.
(MetacelloPlatform current defaultPlatformAttributes includes:
'#gemstone2.4')  .

Or are you trying to get very very cross platform (e.g. GST, VAST, etc...) ?



Jan Vrany wrote
 On Sun, 2014-10-05 at 10:29 +0200, Johan Brichau wrote:
 It’s true that when you do a lot of cross-dialect development, such a
 method is often what you desire.
 However, I think it’s better to do feature detection instead of dialect
 detection. So, something like:
 
 ((Smalltalk includesKey: #CharacterWriteStream) ifTrue:[
   stream := CharacterWriteStream on: (String new: 10)
 ] ifFalse:[
   stream := WriteStream on: (String new: 10)
 ]

 
 Right, in this example it could eventually work. Another concrete
 example I bumped just yesterday. The feature testing code would look
 like 
 
 ((Character respondsTo: #to:) and:[($a to: $z) isKindOf: Interval])
 ifTrue:[
...
 ] ifFalse:[
...
 ].
 
 (true, in this very case you may be able to get around using different
 method, but you get the point, no?)
 
 Some time ago Hilaire posted a very nice, 15 lines long code that does
 reliable feature detection whether the system is Pharo 2.0 or 3.0 
 (or similar, I don't remember exactly). 
 
 Is the interval testing code above more robust? Perhaps. Is it more
 readable, more intention revelaling? I doubt it. 
 
 While I can agree that feature testing is is better, however, in my
 experience it is very tricky if the code does not provide support for
 such tests. 
 
 And yes: use Grease where applicable. We try to maintain Grease across
 Pharo, Squeak and Gemstone. I also think it’s actively ported to VA.
 
 That's great. But having such dependency is exactly what I, and not only
 me, don't want if it would be for only one or two methods. The aim is to
 provide a simple solution for simple cases, not a silver bullet.
 
 Jan  
 
 
 cheers
 Johan
 
 On 05 Oct 2014, at 09:00, stepharo lt;

 stepharo@

 gt; wrote:
 
  Hi jan
  
  Thanks for the proposal.
  I thought about it and I'm against because it goes again the idea of
 dispatch.
  I prefer to have a class and some dispatch. Seaside with Grease is the
 way to go from my perspective.
  Finally I do not want such methods in the systems because I spent my
 time removing is because of bad design.
  Let us see what other people think.
  
  Stef
  
  On 4/10/14 22:14, Jan Vrany wrote:
  Hi guys,
  
  I've just opened:
  
 
 https://pharo.fogbugz.com/f/cases/14160/Introduce-isXXX-dialect-testing-methods-to-SmalltalkImage-to-ease-cross-dialect-development
  
  Introduce isXXX (isPharo, isVisualWorks, ...) dialect testing methods
 to
  SmalltalkImage to ease multi-dialect development.
  
  RATIONALE:
  
  Commonly used approach to solve differences among dialect is to use a
  sort of platform object and dispatch there for troublesome operations
  that has to be specialized. This platform object is usually in
 platform
  specific package.
  Other option is to load some library like Grease or Sport.
  
  The problem of the first approach is that brings to much (unnecessary)
  burden when used for two, three things. The amount of of the code and
  management is way to bigger then the amount of the code that has to be
  specialized. Loading Grease/Sport on the other hand introduces a
  dependency on an external package - not worth of for two or three
  things.
  
  The proposed dialect testing messages would allow for simple,
  #ifdef-like idiom like:
  
  | stream |
  ...
  ((Smalltalk respondsTo: #isSomeCoolDialect) and:[Smalltalk
  isSomeCoolDialect]) ifTrue:[
stream := CharacterWriteStream on: (String new: 10)
  ] ifFalse:[
stream := WriteStream on: (String new: 10)
  ]
  
  The #respondsTo: check, while not nice, is required as at the moment
 not
  all dialects could be trusted to have these testing messages.
  
  Putting these methods may not stick with Pharo standard (whatever it
  is), but Smalltalk global is probably one of the
  very few that are present in pretty much every Smalltalk
 implementation.
  Other option would be to place them to the class side of an Object
  (which is amost certainly present everywhere), however
  
  Smalltalk isPharo
  
  reads better than
  
  Object isPharo.
  
  Best, Jan
  
  
  
  
  
 
 






--
View this message in context: 
http://forum.world.st/Issue-14160-Introduce-isXXX-dialect-testing-methods-to-SmalltalkImage-to-ease-cross-dialect-developmt-tp4782638p4782844.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] Issue 14160: Introduce isXXX dialect testing methods to SmalltalkImage to ease cross-dialect development

2014-10-05 Thread David T. Lewis
Speaking as the maintainer of an external package (OSProcess/CommandShell) I
agree with both Stef and Johan.

Feature detection is better, because pharo (or squeak, or gemstone) is
meaningless over time as the dialect changes. If you need to test for some
feature, it is better to test for it explicitly than to assume that it
exists in all versions of a specified dialect.

As Stef says, Seaside with Grease is the way to go. The test for any given
feature belongs in an external package (Grease), not in the core images. For
a significant external package such as Seaside, use the abstraction layer of
Grease. For simpler cases (e.g. OSProcess) put the required tests directly
into that external package. But either way the isFoo tests belong in the
external packages, and not in pharo/squeak/gemstone proper.

Dave


On Sun, Oct 05, 2014 at 10:29:26AM +0200, Johan Brichau wrote:
 It?s true that when you do a lot of cross-dialect development, such a method 
 is often what you desire.
 However, I think it?s better to do feature detection instead of dialect 
 detection. So, something like:
 
 ((Smalltalk includesKey: #CharacterWriteStream) ifTrue:[
   stream := CharacterWriteStream on: (String new: 10)
 ] ifFalse:[
   stream := WriteStream on: (String new: 10)
 ]
 
 And yes: use Grease where applicable. We try to maintain Grease across Pharo, 
 Squeak and Gemstone. I also think it?s actively ported to VA.
 
 cheers
 Johan
 
 On 05 Oct 2014, at 09:00, stepharo steph...@free.fr wrote:
 
  Hi jan
  
  Thanks for the proposal.
  I thought about it and I'm against because it goes again the idea of 
  dispatch.
  I prefer to have a class and some dispatch. Seaside with Grease is the way 
  to go from my perspective.
  Finally I do not want such methods in the systems because I spent my time 
  removing is because of bad design.
  Let us see what other people think.
  
  Stef
  
  On 4/10/14 22:14, Jan Vrany wrote:
  Hi guys,
  
  I've just opened:
  
  https://pharo.fogbugz.com/f/cases/14160/Introduce-isXXX-dialect-testing-methods-to-SmalltalkImage-to-ease-cross-dialect-development
  
  Introduce isXXX (isPharo, isVisualWorks, ...) dialect testing methods to
  SmalltalkImage to ease multi-dialect development.
  
  RATIONALE:
  
  Commonly used approach to solve differences among dialect is to use a
  sort of platform object and dispatch there for troublesome operations
  that has to be specialized. This platform object is usually in platform
  specific package.
  Other option is to load some library like Grease or Sport.
  
  The problem of the first approach is that brings to much (unnecessary)
  burden when used for two, three things. The amount of of the code and
  management is way to bigger then the amount of the code that has to be
  specialized. Loading Grease/Sport on the other hand introduces a
  dependency on an external package - not worth of for two or three
  things.
  
  The proposed dialect testing messages would allow for simple,
  #ifdef-like idiom like:
  
  | stream |
  ...
  ((Smalltalk respondsTo: #isSomeCoolDialect) and:[Smalltalk
  isSomeCoolDialect]) ifTrue:[
stream := CharacterWriteStream on: (String new: 10)
  ] ifFalse:[
stream := WriteStream on: (String new: 10)
  ]
  
  The #respondsTo: check, while not nice, is required as at the moment not
  all dialects could be trusted to have these testing messages.
  
  Putting these methods may not stick with Pharo standard (whatever it
  is), but Smalltalk global is probably one of the
  very few that are present in pretty much every Smalltalk implementation.
  Other option would be to place them to the class side of an Object
  (which is amost certainly present everywhere), however
  
  Smalltalk isPharo
  
  reads better than
  
  Object isPharo.
  
  Best, Jan
  
  
  
  
  
 



Re: [Pharo-dev] [ANN] flow: a living full-stack #‎framework for the web

2014-10-05 Thread Tudor Girba
Hi Sebastian,

Interesting. Is there a relation between flow and Tide?

Cheers,
Doru



On Sun, Oct 5, 2014 at 11:04 PM, Sebastian Sastre 
sebast...@flowingconcept.com wrote:

 Hi guys,

 I’m sharing slides of my presentation at CampSmalltalkVI2014
 http://www.slideshare.net/sebastianconcept/flow-39897704


 From flow’s readme at github https://github.com/flow-stack/flow:

 Flow's mission is to provide *consultants*, *startups* and *software
 houses* with *a competitive Smalltalk full-stack framework* that allows
 them to quickly deliver a demo with all the modern html5 features the
 market expects today (2014). The idea is that they can tactically use this
 framework to keep momentum up among their prospects and clients and scale
 things to full successful projects delivered by kickass productive teams or
 individuals.

 sebastian https://about.me/sebastianconcept

 o/

 blog: http://sebastianconcept.com
 LinkedIn: http://www.linkedin.com/in/sebastiansastre
 github: https://github.com/sebastianconcept








-- 
www.tudorgirba.com

Every thing has its own flow


[Pharo-dev] WhatsUp from: 2014-10-06 until: 2014-10-19

2014-10-05 Thread seaside
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:

- $HEROIC_ACHIEVEMENTS_OR_DISMAL_FAILURES_OR_SIMPLE_BORING_NECESSARY_TASKS

### What's next, until 2014-10-19 (*):

- $NEXT_STEPS_TOWARDS_WORLD_DOMINATION

(*) we'll be expecting results by then ;)



Re: [Pharo-dev] [ANN] flow: a living full-stack #‎framework for the web

2014-10-05 Thread S Krish
Abs great .. !..  https://github.com/flow-stack/flow have yet to install
and check if it has any issues in my system.

Will check it out, infact have a hackathon to see if this can be tried out
on it.

Nice framework to demo Smalltalk to the crowd in a banking world..



On Mon, Oct 6, 2014 at 2:34 AM, Sebastian Sastre 
sebast...@flowingconcept.com wrote:

 Hi guys,

 I’m sharing slides of my presentation at CampSmalltalkVI2014
 http://www.slideshare.net/sebastianconcept/flow-39897704


 From flow’s readme at github https://github.com/flow-stack/flow:

 Flow's mission is to provide *consultants*, *startups* and *software
 houses* with *a competitive Smalltalk full-stack framework* that allows
 them to quickly deliver a demo with all the modern html5 features the
 market expects today (2014). The idea is that they can tactically use this
 framework to keep momentum up among their prospects and clients and scale
 things to full successful projects delivered by kickass productive teams or
 individuals.

 sebastian https://about.me/sebastianconcept

 o/

 blog: http://sebastianconcept.com
 LinkedIn: http://www.linkedin.com/in/sebastiansastre
 github: https://github.com/sebastianconcept








Re: [Pharo-dev] gt issues

2014-10-05 Thread Tudor Girba
Hi Phil,

Sorry for the late reply.

I cannot reproduce the stepping problem. Do you have a specific case?

Run to here exists. It is a contextual action that depends on the cursor
position. Hence, it is mapped in the context menu.

Cheers,
Doru



On Sat, Oct 4, 2014 at 11:07 PM, p...@highoctane.be p...@highoctane.be
wrote:

 I'd say that it is not intuitive at first but the abilities of the GT
 inspector are really making up for any inconvenience.

 As for the GT debugger, I've been running in a couple of problems, namely
 that stepping when restarting hasn't been working properly after a couple
 times.

 Also, I miss the run to here option that was in the debuggers before. It
 looks like gone.
 Why? It is a common option in all languages.

 Phil


 On Sat, Oct 4, 2014 at 10:56 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi,

 Thanks for the feedback.

 Of course, they are not used anywhere else at this point just because the
 inspector is the first tool that was integrated into Pharo :).

 You say they are meaningless, but in fact you seem to have no problem
 with what they are and how they work. And you found it out by yourself. I
 agree that it is a different interface than anything else out there, but
 that is not a negative thing. Actually, we also tried other variations,
 but this was the one we stuck with, and most people seem to not have a
 problem with it. What do you mean by video controller buttons?

 And, you are right in that the contrast is not proper in the Pharo theme.
 This will change. In the meantime, here is how they look like in the
 WhitespaceTheme
 [image: Inline image 1]

 Is this better?

 Cheers,
 Doru



 On Sat, Oct 4, 2014 at 1:15 PM, kmo vox...@gmail.com wrote:

 Well, one man's intuitive is another man's completely obscure. In the
 pharo
 context, the dots are a completely new navigation widget - used nowhere
 else
 - and their function is unclear. I think part of the problem is that the
 dots do not appear on any kind of obvious toolbar - they are more or less
 just dots on the bottom of the window. There is no visual cue that they
 have
 any function at all. They could be mere decoration. Just my two cents.



 --
 View this message in context:
 http://forum.world.st/gt-issues-tp4782476p4782557.html
 Sent from the Pharo Smalltalk Developers mailing list archive at
 Nabble.com.




 --
 www.tudorgirba.com

 Every thing has its own flow





-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] [ANN] flow: a living full-stack #‎framework for the web

2014-10-05 Thread S Krish
The links has the step by step. I am running it as I type..

* For newbies on linux a mention of dependencies viz installing git / curl/
npm , node.js and bower and any others reqd would be great..

Anyways will post my attempt note in a few min..



On Mon, Oct 6, 2014 at 11:06 AM, Sven Van Caekenberghe s...@stfx.eu wrote:

 Great !

 Wasn't there a step by step tutorial somewhere ?

 On 05 Oct 2014, at 23:04, Sebastian Sastre sebast...@flowingconcept.com
 wrote:

  Hi guys,
 
  I’m sharing slides of my presentation at CampSmalltalkVI2014
  http://www.slideshare.net/sebastianconcept/flow-39897704
 
 
  From flow’s readme at github:
 
  Flow's mission is to provide consultants, startups and software houses
 with a competitive Smalltalk full-stack framework that allows them to
 quickly deliver a demo with all the modern html5 features the market
 expects today (2014). The idea is that they can tactically use this
 framework to keep momentum up among their prospects and clients and scale
 things to full successful projects delivered by kickass productive teams or
 individuals.
 
  sebastian
 
  o/
 
  blog: http://sebastianconcept.com
  LinkedIn: http://www.linkedin.com/in/sebastiansastre
  github: https://github.com/sebastianconcept