Re: [Pharo-dev] Questions about TextModel in Spec

2016-07-24 Thread Yuriy Tymchuk
I’ve found a partial hack:

whenEdited: aBlock
"Set a block to perform when the text wasEddited & the widget entered 
hasUnacceptedEdits mode"

hasUnacceptedEdits whenChangedDo: [ :val |
val ifTrue: aBlock value ]

So now before the text is accepted I can block some other widgets

Uko

> On 24 Jul 2016, at 14:17, Nicolai Hess <nicolaih...@gmail.com> wrote:
> 
> 
> 
> 2016-07-24 13:45 GMT+02:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>>:
> There is #pendingText to access it, finally found that. Now I want to detect 
> when someone starts typing and do actions (like disable something until the 
> text is accepted). There is whenTextChanged: but it’s not that useful because 
> it checks if the accepted text has changed. Is there a way to check if 
> pendingCode has changed? Or if the model is entering “hasUnacceptedEdits”?
> 
> No :(
> 
> I don't think this is possible.
> You could turn autoAccept to true and listen for set a whenTextChanged block, 
> but of course, you can not display "unaccepted" text anymore, because all 
> text is accepted.
> 
> Uko
> 
>> On 24 Jul 2016, at 12:48, Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> Cool. Thank you Nicolai. While we are on this, is there an example of how to 
>> display the parsing/compilation error as is done in playground?
>> 
>> Uko
>> 
>> 
>>> On 24 Jul 2016, at 11:37, Nicolai Hess <nicolaih...@gmail.com 
>>> <mailto:nicolaih...@gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> 2016-07-24 11:35 GMT+02:00 Nicolai Hess <nicolaih...@gmail.com 
>>> <mailto:nicolaih...@gmail.com>>:
>>> 
>>> 
>>> 2016-07-24 11:14 GMT+02:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
>>> <mailto:yuriy.tymc...@me.com>>:
>>> Hi,
>>> 
>>> at some moment I wrote a super angry comment about Spec. But as there is a 
>>> big effort put into documentation & improving the framework I’ve decided to 
>>> give it another try.
>>> 
>>> And guess what, after 10 min I ran into yet one more problem. I was 
>>> expecting that it will be tough to have a custom styling for code, but no 
>>> it’s much simpler: how do I get a text from text model? I type something 
>>> in, sent #getText to the model => nothing. I expect that the problem is 
>>> that the text is not accepted… Why in the first place a basic text model 
>>> needs this “accept” stuff? What if I have just a dialog where someone types 
>>> something and submits it? I don’t need accepts with orange corners for that.
>>> 
>>> textmodel autoAccept: true.
>>>  
>>> 
>>> I think that you’ve got the idea. I just want to build a simple UI and it 
>>> looks like it’s easier to do it with Morphic…
>>> 
>>> Cheers.
>>> Uko
>>> 
>>> 
>>> But I agree, it is not *that* obvious and I think the behavior even changed 
>>> as we replaced the PluggableTextMorph with Rubric ones - (maybe?)
>>> 
>>> Anyway, maybe we need a way to distinguish between
>>> - get visible text (view get text?)
>>> and
>>> - get accepted text (model get text?)
>>> 
>>> nicolai
>>> 
>> 
> 
> 



Re: [Pharo-dev] Questions about TextModel in Spec

2016-07-24 Thread Yuriy Tymchuk
There is #pendingText to access it, finally found that. Now I want to detect 
when someone starts typing and do actions (like disable something until the 
text is accepted). There is whenTextChanged: but it’s not that useful because 
it checks if the accepted text has changed. Is there a way to check if 
pendingCode has changed? Or if the model is entering “hasUnacceptedEdits”?

Uko

> On 24 Jul 2016, at 12:48, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
> 
> Cool. Thank you Nicolai. While we are on this, is there an example of how to 
> display the parsing/compilation error as is done in playground?
> 
> Uko
> 
> 
>> On 24 Jul 2016, at 11:37, Nicolai Hess <nicolaih...@gmail.com 
>> <mailto:nicolaih...@gmail.com>> wrote:
>> 
>> 
>> 
>> 2016-07-24 11:35 GMT+02:00 Nicolai Hess <nicolaih...@gmail.com 
>> <mailto:nicolaih...@gmail.com>>:
>> 
>> 
>> 2016-07-24 11:14 GMT+02:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>>:
>> Hi,
>> 
>> at some moment I wrote a super angry comment about Spec. But as there is a 
>> big effort put into documentation & improving the framework I’ve decided to 
>> give it another try.
>> 
>> And guess what, after 10 min I ran into yet one more problem. I was 
>> expecting that it will be tough to have a custom styling for code, but no 
>> it’s much simpler: how do I get a text from text model? I type something in, 
>> sent #getText to the model => nothing. I expect that the problem is that the 
>> text is not accepted… Why in the first place a basic text model needs this 
>> “accept” stuff? What if I have just a dialog where someone types something 
>> and submits it? I don’t need accepts with orange corners for that.
>> 
>> textmodel autoAccept: true.
>>  
>> 
>> I think that you’ve got the idea. I just want to build a simple UI and it 
>> looks like it’s easier to do it with Morphic…
>> 
>> Cheers.
>> Uko
>> 
>> 
>> But I agree, it is not *that* obvious and I think the behavior even changed 
>> as we replaced the PluggableTextMorph with Rubric ones - (maybe?)
>> 
>> Anyway, maybe we need a way to distinguish between
>> - get visible text (view get text?)
>> and
>> - get accepted text (model get text?)
>> 
>> nicolai
>> 
> 



Re: [Pharo-dev] Questions about TextModel in Spec

2016-07-24 Thread Yuriy Tymchuk
Cool. Thank you Nicolai. While we are on this, is there an example of how to 
display the parsing/compilation error as is done in playground?

Uko


> On 24 Jul 2016, at 11:37, Nicolai Hess <nicolaih...@gmail.com> wrote:
> 
> 
> 
> 2016-07-24 11:35 GMT+02:00 Nicolai Hess <nicolaih...@gmail.com 
> <mailto:nicolaih...@gmail.com>>:
> 
> 
> 2016-07-24 11:14 GMT+02:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>>:
> Hi,
> 
> at some moment I wrote a super angry comment about Spec. But as there is a 
> big effort put into documentation & improving the framework I’ve decided to 
> give it another try.
> 
> And guess what, after 10 min I ran into yet one more problem. I was expecting 
> that it will be tough to have a custom styling for code, but no it’s much 
> simpler: how do I get a text from text model? I type something in, sent 
> #getText to the model => nothing. I expect that the problem is that the text 
> is not accepted… Why in the first place a basic text model needs this 
> “accept” stuff? What if I have just a dialog where someone types something 
> and submits it? I don’t need accepts with orange corners for that.
> 
> textmodel autoAccept: true.
>  
> 
> I think that you’ve got the idea. I just want to build a simple UI and it 
> looks like it’s easier to do it with Morphic…
> 
> Cheers.
> Uko
> 
> 
> But I agree, it is not *that* obvious and I think the behavior even changed 
> as we replaced the PluggableTextMorph with Rubric ones - (maybe?)
> 
> Anyway, maybe we need a way to distinguish between
> - get visible text (view get text?)
> and
> - get accepted text (model get text?)
> 
> nicolai
> 



[Pharo-dev] Questions about TextModel in Spec

2016-07-24 Thread Yuriy Tymchuk
Hi,

at some moment I wrote a super angry comment about Spec. But as there is a big 
effort put into documentation & improving the framework I’ve decided to give it 
another try.

And guess what, after 10 min I ran into yet one more problem. I was expecting 
that it will be tough to have a custom styling for code, but no it’s much 
simpler: how do I get a text from text model? I type something in, sent 
#getText to the model => nothing. I expect that the problem is that the text is 
not accepted… Why in the first place a basic text model needs this “accept” 
stuff? What if I have just a dialog where someone types something and submits 
it? I don’t need accepts with orange corners for that.

I think that you’ve got the idea. I just want to build a simple UI and it looks 
like it’s easier to do it with Morphic…

Cheers.
Uko


Re: [Pharo-dev] SessionManager and SystemSettings?

2016-07-10 Thread Yuriy Tymchuk
Settings should work now

> On 26 Jun 2016, at 04:56, Juraj Kubelka <juraj.kube...@icloud.com> wrote:
> 
> Thanks Yuriy!
> 
> Last time, there was a problem on Jenkins. I do not have access to check it 
> or change it.
> It is necessary that cleanUp process is called as a last command on Jenkins.
> 
> The other thing is to find out another solution. The current solution expects 
> that an instance variable is unset in a fresh (downloaded) image. And this 
> variable is set when the image is opened. 
> 
> Cheers,
> Juraj
> 
>> On Jun 25, 2016, at 17:25, Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> cc Juraj
>> 
>>> On 25 Jun 2016, at 22:28, Nicolai Hess <nicolaih...@gmail.com 
>>> <mailto:nicolaih...@gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> 2016-06-23 15:32 GMT+02:00 Esteban Lorenzano <esteba...@gmail.com 
>>> <mailto:esteba...@gmail.com>>:
>>> 
>>> > On 23 Jun 2016, at 15:29, Cyril Ferlicot Delbecque 
>>> > <cyril.ferli...@gmail.com <mailto:cyril.ferli...@gmail.com>> wrote:
>>> >
>>> >
>>> >
>>> > On 23/06/2016 15:07, Christophe Demarey wrote:
>>> >> What happens if you execute
>>> >> 'SystemSettingsPersistence resumeSystemSettings’ in a 60103 image?
>>> >> If nothing happens, it could be that 'SystemSettingsPersistence
>>> >> instVarNamed: ‘alreadyResumed’’ is true
>>> >>
>>> >> I checked the startupList and PharoCommandLineHandler>>#runPreferences
>>> >> but nothing changed there.
>>> >>
>>> >>
>>> >
>>> >
>>> > I think I read something about a script esteban added to clear the
>>> > ever-growing stack. Couldn't it be that? Maybe it open the image and the
>>> 
>>> > system setting think he already loaded the settings.
>>> 
>>> no it shouldn’t… and *my* preferences are correctly loaded :)
>>> 
>>> Can we please fix this.
>>> I work a lot with fresh images, and now every time a start a new image and 
>>> trying to access a repository I have to remmember
>>> to set the network proxy settings.
>>>  
>>> 
>>> >
>>> >>
>>> >
>>> > --
>>> > Cyril Ferlicot
>>> >
>>> > http://www.synectique.eu <http://www.synectique.eu/>
>>> >
>>> > 165 Avenue Bretagne
>>> > Lille 59000 France
>>> >
>> 
> 



Re: [Pharo-dev] [Holidays] 14 days no updates: 14th to end of July

2016-07-08 Thread Yuriy Tymchuk
Have fun dear integrators! :)

> On 08 Jul 2016, at 19:57, stepharo  wrote:
> 
> Hi marcus
> 
> I will see if the temperature forces me to stay inside after afternoon naps 
> and before jumping in water.
> In such case I will looks at easy fixes.
> But I will not do it regularly. I will probably have a look the week of 20 
> and take a real break from tomorrow to end of next week.
> 
> Stef
>> Hi,
>> 
>> We just saw that everyone who can press the button for a final integration
>> will be on Holidays from July 14 to the end of the month.
>> 
>> This means there will be no update, but the issue tracker will stay open of 
>> course,
>> so issues can be submitted, fixed and reviewed… they will just not end up 
>> the downloadable
>> image for that 2 weeks.
>> 
>>  Marcus
>> 
> 
> 




Re: [Pharo-dev] Failure in Tests Cases

2016-07-06 Thread Yuriy Tymchuk
Hi.

while you are on this, I’d also like to have fueled-out errors (this implies 
storing the errors in the report objects).

Also there are two unresolved issues with worker:
https://pharo.fogbugz.com/f/cases/18499/
https://pharo.fogbugz.com/f/cases/18502/

Maybe you will be able to uncover what is the problem while improving the 
worker.

Cheers.
Uko

> On 06 Jul 2016, at 17:12, teso...@gmail.com wrote:
> 
> Hi to all, 
>   I have tried to fix the CI process to show the failures and errors in 
> the tests in a more descriptive way, not only showing the failed test case, 
> but also the error and the stack trace of it. 
> 
> After checking the problem, I have seen that the failures (and also errors) 
> are not registered with the Error that has produce the failure. 
> 
> Of course, then I remembered that is why the TestRunner reruns the tests to 
> allow the debugging of the error. 
> 
> What do you think of adding the produced exception to the TestResult? 
> 
> Do you think it can have any other consequences? If it has, what if only 
> adding to the CI process? 
> Or perhaps storing a reduced version of the error (perhaps a String 
> representation, or something a lighter than the Error) 
> 
> Thanks for all.
> 
> 
> -- 
> Pablo Tesone.
> teso...@gmail.com 


Re: [Pharo-dev] SessionManager and SystemSettings?

2016-06-25 Thread Yuriy Tymchuk
cc Juraj

> On 25 Jun 2016, at 22:28, Nicolai Hess  wrote:
> 
> 
> 
> 2016-06-23 15:32 GMT+02:00 Esteban Lorenzano  >:
> 
> > On 23 Jun 2016, at 15:29, Cyril Ferlicot Delbecque 
> > > wrote:
> >
> >
> >
> > On 23/06/2016 15:07, Christophe Demarey wrote:
> >> What happens if you execute
> >> 'SystemSettingsPersistence resumeSystemSettings’ in a 60103 image?
> >> If nothing happens, it could be that 'SystemSettingsPersistence
> >> instVarNamed: ‘alreadyResumed’’ is true
> >>
> >> I checked the startupList and PharoCommandLineHandler>>#runPreferences
> >> but nothing changed there.
> >>
> >>
> >
> >
> > I think I read something about a script esteban added to clear the
> > ever-growing stack. Couldn't it be that? Maybe it open the image and the
> 
> > system setting think he already loaded the settings.
> 
> no it shouldn’t… and *my* preferences are correctly loaded :)
> 
> Can we please fix this.
> I work a lot with fresh images, and now every time a start a new image and 
> trying to access a repository I have to remmember
> to set the network proxy settings.
>  
> 
> >
> >>
> >
> > --
> > Cyril Ferlicot
> >
> > http://www.synectique.eu 
> >
> > 165 Avenue Bretagne
> > Lille 59000 France
> >



Re: [Pharo-dev] Reordering working directory mess

2016-06-24 Thread Yuriy Tymchuk
play-cache contains history from default playground.
play-stash contains state of playground pages (if you rename "playground” tab 
into something else it becomes a custom page. You can look it up with spotter)

Uko

> On 23 Jun 2016, at 22:18, stepharo  wrote:
> 
> What is the difference between play-cache play-stash
> 
> Stef
> 
> 
> Le 23/6/16 à 17:22, Esteban Lorenzano a écrit :
>> Hi,
>> 
>> Since some time I’ve seen growing the amount of files/directories generated 
>> when running Pharo. Up to Pharo 2.0, we had just this:
>> 
>> Pharo.image
>> Pharo.changes
>> PharoDebug.log
>> pharo-cache
>> 
>> now we have:
>> 
>> Pharo.image
>> Pharo.changes
>> PharoDebug.log
>> pharo-cache
>> epicea-sessions
>> play-cache
>> play-stash
>> 
>> it does not looks like much, but I think this does not looks professional 
>> (we take too much from user space). So I proposed (and implemented) a 
>> “concentrator” directory:
>> 
>> Pharo.image
>> Pharo.changes
>> ./pharo
>>  … and everything for “pharo working internally” here
>> 
>> then users have again control about what they have along with the image 
>> (this allows to some nice strategies too, when we want a version that does 
>> not pollutes the file dir).
>> 
>> of course, this idea follows other developing spaces, where things are 
>> stored in same fashion way… for example in eclipse for java they store all 
>> eclipse data under .workspace directory.
>> 
>> so, please note that this is NOT user space… regular pharo users will store 
>> his files along with the image, for instance filetree repositories… 
>> something like:
>> 
>> Pharo.image
>> Pharo.changes
>> .pharo/
>> voyage/
>> punqlite/
>> etc.
>> 
>> well… I will commit a SLICE with the changes soon (is not a hard change at 
>> all).
>> 
>> But then:
>> 
>> is ./pharo a good name?
>> will this work?
>> 
>> Esteban
>> 
> 
> 




Re: [Pharo-dev] SessionManager and SystemSettings?

2016-06-23 Thread Yuriy Tymchuk

> On 23 Jun 2016, at 15:32, Esteban Lorenzano  wrote:
> 
>> 
>> On 23 Jun 2016, at 15:29, Cyril Ferlicot Delbecque 
>>  wrote:
>> 
>> 
>> 
>> On 23/06/2016 15:07, Christophe Demarey wrote:
>>> What happens if you execute
>>> 'SystemSettingsPersistence resumeSystemSettings’ in a 60103 image?
>>> If nothing happens, it could be that 'SystemSettingsPersistence
>>> instVarNamed: ‘alreadyResumed’’ is true
>>> 
>>> I checked the startupList and PharoCommandLineHandler>>#runPreferences
>>> but nothing changed there.
>>> 
>>> 
>> 
>> 
>> I think I read something about a script esteban added to clear the
>> ever-growing stack. Couldn't it be that? Maybe it open the image and the
> 
>> system setting think he already loaded the settings.
> 
> no it shouldn’t… and *my* preferences are correctly loaded :)

Are you talking about preferences or startup scripts?

> 
>> 
>>> 
>> 
>> -- 
>> Cyril Ferlicot
>> 
>> http://www.synectique.eu 
>> 
>> 165 Avenue Bretagne
>> Lille 59000 France



Re: [Pharo-dev] shit + double click on a category :)

2016-06-22 Thread Yuriy Tymchuk
Could shortcut reminder capture this?

> On 22 Jun 2016, at 11:44, stepharo  wrote:
> 
> Hi guys
> 
> alain showed me that click + double click on a category is really nice to 
> rename a category.
> 
> May be you knew it but this is nice.
> 
> 
> Stef
> 
> 




Re: [Pharo-dev] NonInteractiveUIManager vs. Epicea

2016-06-21 Thread Yuriy Tymchuk
yay, thanks. I wanted to report this but forgot

> On 22 Jun 2016, at 00:27, Esteban Lorenzano  wrote:
> 
> I spotted the same problem today… yes, fogbugz is better place :)
> 
> Esteban
> 
>> On 22 Jun 2016, at 00:23, Holger Freyther  wrote:
>> 
>> Hi,
>> 
>> would fogbugz be the better place for reports like this? It looks like the 
>> introduction of Epicea has broken my use of headless images?
>> 
>> Should >>#initialize use "Smalltalk ui theme" instead of "UIManager default 
>> theme"?
>> 
>> 
>> NonInteractiveUIManager>>theme
>> NonInteractiveUIManager(Object)>>doesNotUnderstand: #theme
>> EpDisplayMorphVisitor>>initialize
>> EpDisplayMorphVisitor class(Behavior)>>new
>> EpEntryItem>>displayWidget
>> [ :item | item displayWidget ] in EpLogBrowser>>initializeItemsModel in 
>> Block: [ :item | item displayWidget ]
>> BlockClosure>>cull:
>> BlockClosure>>cull:cull:
>> TreeModel>>wrapItem:
>> [ :node | self wrapItem: node content ] in TreeModel>>initialize in Block: [ 
>> :node | self wrapItem: node content ]
>> [ :node :cont | self rowMorphGetSelector value: node ] in 
>> SpecTreeColumn(MorphTreeColumn)>>rowMorphGetterBlock in Block: [ :node :cont 
>> | self rowMorphGetSelector value: no...etc...
>> SpecTreeColumn>>rowMorphFor:
>> [ :col | 
>> | v |
>> v := col rowMorphFor: complexContents.
>> controls add: v.
>> col -> v ] in MorphTreeNodeMorph>>buildRowMorph in Block: [ :col | ...
>> OrderedCollection>>collect:
>> MorphTreeNodeMorph>>buildRowMorph
>> MorphTreeNodeMorph>>initRow
>> MorphTreeNodeMorph>>initWithContents:prior:forList:indentLevel:
>> [ :item :idx | 
>> priorMorph := self indentingItemClass new
>>  initWithContents: item
>>  prior: priorMorph
>>  forList: self
>>  indentLevel: newIndent.
>> firstAddition ifNil: [ firstAddition := priorMorph ].
>> morphList add: priorMorph.
>> "Was this row expanded ? if true -> expand it
>>  again "
>> ((item hasEquivalentIn: expandedItems) or: [ priorMorph isExpanded ])
>>  ifTrue: [ priorMorph isExpanded: true.
>>  priorMorph
>>  addChildrenForList: self
>>  addingTo: morphList
>>  withExpandedItems: expandedItems ] ] in 
>> MorphTreeMorph>>addMorphsTo:from:withExpandedItems:atLevel: in Block: [ 
>> :item :idx | ...
>> OrderedCollection(SequenceableCollection)>>withIndexDo:
>> OrderedCollection(SequenceableCollection)>>doWithIndex:
>> MorphTreeMorph>>addMorphsTo:from:withExpandedItems:atLevel:
>> MorphTreeMorph>>addSubmorphsFromNodeList:previouslyExpanded:
>> MorphTreeMorph>>addSubmorphsFromNodeList
>> MorphTreeMorph>>buildContents
>> MorphicTreeAdapter>>buildWidget
>> MorphicTreeAdapter(AbstractAdapter)>>adapt:
>> SpecInterpreter>>actionToPerformWithSelector:arguments:
>> SpecInterpreter>>performNextSelectorAndIncrementIndex
>> SpecInterpreter>>interpretASpec:selector:
>> SpecInterpreter>>interpretASpec:model:selector:
>> SpecInterpreter class>>private_interpretASpec:model:selector:
> 
> 




Re: [Pharo-dev] CodeImporter and Rubric will not be external projects managed by configurations

2016-06-15 Thread Yuriy Tymchuk

> On 11 Jun 2016, at 10:46, stepharo  wrote:
> 
> Cargo all the packages have a configuration

Would work the same as having only one package per repo :)

Re: [Pharo-dev] What's new in Pharo 5.0

2016-05-24 Thread Yuriy Tymchuk
By the way, we can add a rule that checks if a package has a comment. Because 
for example I had no idea that you can comment packages.

> On 24 May 2016, at 14:37, Cyril Ferlicot Delbecque  
> wrote:
> 
> 
> 
> On 24/05/2016 13:19, Christophe Demarey wrote:
>> 
>>> Le 24 mai 2016 à 10:08, Esteban Lorenzano  a écrit :
>>> 
>>> there is a space: same as class comment now. 
>> 
>> 
>> only for the class comment, not for other package metadata
>> 
> 
> Maybe the package comment can be at the place of the class comment when
> the package is selected and for the other metadatas a button that would
> open a new window can be add to Nautilus? For now there is some free
> space close to the scope button.
> 
> -- 
> Cyril Ferlicot
> 
> http://www.synectique.eu
> 
> 165 Avenue Bretagne
> Lille 59000 France
> 




Re: [Pharo-dev] What's new in Pharo 5.0

2016-05-24 Thread Yuriy Tymchuk

> On 24 May 2016, at 10:09, Cyril Ferlicot Delbecque  
> wrote:
> 
> 
> 
> On 24/05/2016 07:44, Sven Van Caekenberghe wrote:
>> 
>> The missing class comments are totally unacceptable, we should refuse these.
>> 
> 
> +1
> 
> It is really frustrating to take free time to improve the comments of
> the current classes and to see that there is dozens of classes without
> comment added in the same time.
> 
>> Apart from BlueInk (a code formatter), I have never heard or seen the others 
>> ;-)
>> 
>>> How would a new user discover what these are?
>> 
>> If these are important to end users, they should be mentioned somewhere.
>> 
> 
> Another important think about it is to remember that the user don't know
> what the community knows. I see for example setting talking about
> Renkaku, about Growl, about a lot of stuff… But how as a use should I
> know what I need to do with the setting "Renkaku's rule"? This is only
> an example (I do not target you Yuriy :) ) but there is a lot everywhere
> in Pharo.

Because people should give more feedback. Now as you point this out I know that 
I have to improve. But at the moment when I was implementing the stuff my main 
goal was to provide the functionality somewhere else then just a script on 
class side, and after I’ve managed to copy the bottom and make it work I was 
very happy and didn’t think that it’s not clear for users. Now I know and can 
elaborate on that.


> 
>> This has been suggested before. I actually like the current approach, I 
>> would not want to click open trees all the time.
>> 
> 
> 
> -- 
> Cyril Ferlicot
> 
> http://www.synectique.eu
> 
> 165 Avenue Bretagne
> Lille 59000 France
> 




Re: [Pharo-dev] What's new in Pharo 5.0

2016-05-24 Thread Yuriy Tymchuk

> On 24 May 2016, at 04:00, Sean P. DeNigris  wrote:
> 
> Doing some exploring... BlueInk, Chroma, Flashback, Renraku - all packages
> with no class comments. How would a new user discover what these are? 

How comes that Renraku has no class comments?



Re: [Pharo-dev] Smalltalk ui icons foo -> Smalltalk ui icons iconNamed: #foo

2016-04-21 Thread Yuriy Tymchuk
Is it ok to do that next week? I’m a bit busy at the moment (actually writing 
about this stuff).

Uko

> On 21 Apr 2016, at 14:13, stepharo  wrote:
> 
> Hi guys
> 
> With the changes made by esteban all the tools should be accessing icons 
> using iconNamed:
> Yes Yuriy it would be good to have a nice QA rule
> 
> Smalltalk ui icons foo -> Smalltalk ui icons iconNamed: #foo
> 
> The DNU trick should be deprecated in Pharo 60.
> Could you update your tools and we will do it for all the non externally 
> managed ones?
> 
> Stef
> 
> 




Re: [Pharo-dev] Missing #removeDuplicates

2016-04-15 Thread Yuriy Tymchuk

> On 11 Apr 2016, at 09:06, Nicolai Hess  wrote:
> 
> 
> 
> 2016-04-10 8:55 GMT+02:00 Volkert  >:
> Sorry. i meant AthensSkatch ;-) It is a nice demo about using athens.
> 
> http://smalltalkhub.com/#!/~NicolaiHess/AthensSketch 
> 
> 
> 
> Hi Volkert,
> I just replaced 
> #removeDuplicates with
> #asSet
> (this should work now).

I think that it would be nice to have removeDuplicates. Because sometimes you 
need to end up with ordered collection and then you need to do something like 
`obj asSet asArray` and it is ugly.

Uko

> 
> (and replaced some deprecated on:send:to: calls (for Announcements) with 
> when:send:to:
> 
> in the latest version.
> 
> 
> Nicolai
>  
> 
> 
> 
> On 10.04.2016 07:42, stepharo wrote:
> 
> 
> Le 9/4/16 22:36, Volkert a écrit :
> What happens to OrderedCollection>>removeDuplicates in Pharo 5.0? In Pharo 
> 4.0 it was part of a Package "GroupManager"?
> 
> It was probably badly implemented or only used in group manager (whose code 
> was terrible) and we cleaned it.
> Now we could reintroduce it but in the right place and with tests.
> It breaks the nice Package "AthensScratch" in Pharo 5.0
> 
> what is athenscracth?
> 
> BW.
> Volkert
> 
> 
> 
> 
> 
> 
> 



[Pharo-dev] Pharo Days 2016 Photos and Video

2016-04-04 Thread Yuriy Tymchuk
Good morning everyone!

I think that it’s a nice way to start the new week by viewing photos from Pharo 
Days 2016: https://goo.gl/photos/orgTn4C1bSeqf6fy5 
.
Additionally if someone wants to get a quick impression of the conference, now 
there is a video for that: https://youtu.be/eHKtxgbuLSg 
.


Have a great week.
Cheers!
Uko

Re: [Pharo-dev] [bloc] shape size?

2016-04-03 Thread Yuriy Tymchuk

> On 03 Apr 2016, at 21:58, Igor Stasenko  wrote:
> 
> 
> 
> On 3 April 2016 at 22:32, Thierry Goubier  > wrote:
> Le 03/04/2016 20:01, Igor Stasenko a écrit :
> 
> 
> On 3 April 2016 at 20:51, Thierry Goubier  
> >> wrote:
> 
> Le 03/04/2016 19:12, Igor Stasenko a écrit :
> 
> 
> 
> On 3 April 2016 at 19:48, Thierry Goubier
>  
> >
> 
> 
>   
>  Le 03/04/2016 17:33, stepharo a écrit :
> 
>  If you want to change clicking behaviour you need to
> override
>  one single
>  method.
> 
> 
>   Everything you wrote with unreadable amount of
>  characters is
>   for nothing.
> 
>   I see clearly point of Igor. And for me it
> feels very
>  logical.
>   With such design you can lively change
> clipping area and
>   interaction area for any morph (element) on
> screen.
> 
> 
>  In short, i see only two cases where indeed, morph
> requires
>  a nothing
>  of shapes to define:
>- clipping region(s)
>- ui interaction region(s)
> 
>  but for drawing? no... really? who cares what
> you draw
>  there?
>  draw anything, in any possible way you see fit..
> compose,
>  decompose,
>  recombine, blend and mix.. that's the whole purpose of
>  drawing and be
>  artistic and be able to express yourself in any
> possible way
>  you want :)
>  Why nailing and formalizing things that are tend to
> be hardly
>  formalizable and more than that, unnecessary.
>  That's my main concern about current design.
> 
> 
>  I agree.
>  I do not see why people are forced to create a submorph
> just to
>  change
>  the rendering.
>  If you want to change it dynamically you can for
> example pass a
>  different shape.
> 
> 
>  I don't see the problem with subclassing a morph.
> 
> Me neither. But do you confusing subclassing and submorph
> compositing?
> 
> 
> Let me return you the question then: do you do a composition of
> submorphs if you're trying to get a different drawOn:?
> 
> Who, me? No. Maybe i was just misunderstood your reply.
> Because what i was tried to demonstrate in previous post(s) that there's
> simply no easy way to expose all possible drawing operations via
> composition of morphs (or composition of any other kind of elements),
> unless, of course you will lift full feature set of Athens to the level
> of composition..
> As result you will get a full feature set that Athens provides, plus
> extra complexity.
> Sounds like thing to do, no? :)
> 
> Agreed :)
> 
> Oh, ok, that's true FastTable does it for the selection... changing
> background color by encapsulating a row in another Morph with the
> right background color.
> 
> Well, i don't know what is FastTable beast are.. so i cannot comment on
> this one.
> 
> I think FastTable is something you should have a look at. Esteban did 
> something really interesting there.
> 
> In FT, Submorphs are only created when they are about to be displayed: Pharo 
> can easily create hundreds of morphs on every redraw cycle. So FT performance 
> is O(k) where k is the number of rows to display on screen (typical k is 
> ~25), and is O(1) regarding the length of the list (almost: there is a point, 
> for very large tree-like structures, where just iterating over the structure 
> becomes the main performance limitation: see FTTree).
> 
> Sounds like right way to do it. There's no point to keep million UI elements 
> for million items in list, since you never render them all at once on the 
> screen. So, practical approach is to create as many UI elements as fits on 
> the screen, but not as many you have in list.

I think that Cocoa list does that. When a list item goes out of the screen it’s 
sent to a pool, and when a new one has to be displayed they take any one from 
that pool and 

Re: [Pharo-dev] GSoC alternative: SOCIS

2016-04-03 Thread Yuriy Tymchuk
Looks interesting. But then we need someone to “sell” pharo as a space-related 
OS project… I mean, it’s not hard, just talk about remote debugging and live 
update (project of Max Mattone). But someone has to do it. And also someone has 
to propose the projects around this topics.

Cheers.
Uko

> On 02 Apr 2016, at 19:23, Skip  wrote:
> 
> Hi everyone,
> 
> I just came across an alternative to GSoC called SOCIS.
> It's run by the ESA (European Space Agency):
> 
> http://sophia.estec.esa.int/socis/ 
> 
> Maybe you can try applying there? Deadline is April 10th.
> 
> And maybe you all know already about this, in that case feel free to let this 
> thread die :)
> 
> Best wishes,
> 
> Skip



Re: [Pharo-dev] How to set styler for RubEditingArea?

2016-03-21 Thread Yuriy Tymchuk
You made my day. Thank you. Now I have a minimal working example to experiment 
with.

Uko

> On 21 Mar 2016, at 20:46, Henrik Nergaard  wrote:
> 
> '| area | area := RubEditingArea new.



Re: [Pharo-dev] How to set styler for RubEditingArea?

2016-03-21 Thread Yuriy Tymchuk
Ok, I’m continuing my journey of styling code. And at the beginning I want to 
at least recreate the original coding area. I’ve did this and everything is red…

area := RubEditingArea new.

area
backgroundColor: Color lightGray;
updateTextWith: 'method: sth ^ 1';
textColor: Color white;
beNotWrapped;
beForSmalltalkCode;
width: 400;
withDecoratorNamed: #shoutStyler.

area shoutStyler styler: RubSHTextStylerST80 new.

area openInWorld

any idea what could possibly go wrong?
Uko




> On 20 Mar 2016, at 02:56, monty  wrote:
> 
> There are actually two, a highlighting parser used when you inspect files 
> from spotter, and a highlighting writer used to implement the "Tree" and 
> "Source" tabs when inspecting an already-parsed DOM tree.
>  
> 
> Sent: Saturday, March 19, 2016 at 7:24 AM
> From: "Nicolai Hess" 
> To: "Pharo Development List" 
> Subject: Re: [Pharo-dev] How to set styler for RubEditingArea?
> Isn't there a xml.-Styler in Moose? How is that implemented?
> 
> Am 19.03.2016 11:28 vorm. schrieb "Stephan Eggermont" :On 
> 19-03-16 10:59, Henrik Nergaard wrote:There is no way of doing that, 
> RubParagraphDecorator lacks a method to set its style variable.
> 
> If you add that, then you can do something like:
> Self is a RubEditingArea
> 
> (self decoratorNamed:  #shoutStyler) style: yourStyleclass new.
>  
> I'm strongly in favor of adding this. There are other languages I want to 
> style than smalltalk.
> 
> Stephan
> 
>  
> 




Re: [Pharo-dev] [Pharo-users] DeprecationAssistant

2016-03-21 Thread Yuriy Tymchuk
Oh, that’s an interesting use case. It’s not easy no make predictions further 
in stack so by default it is assumed that the change should happen in the 
method that has called the deprecated one. In fact usually this should help 
with the method deprecation, and in the particular case we are dealing with a 
class deprecation hacked as a method deprecation :)

But it’s good that now I know more use cases ;)

Uko



> On 21 Mar 2016, at 14:56, Alexandre Bergel <alexandre.ber...@me.com> wrote:
> 
> Ah okay!
> But how does the system resolve it ? I mean, the class RTLabelled does not 
> refer to RTLabeled. So, what is the magic behind your tool?
> 
> I found an interesting situation. Look at this:
> 
> 
> Alexandre
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
>> On Mar 21, 2016, at 10:19 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> Hi Alex,
>> 
>> this is not about critics…
>> 
>> If you have a method like 
>> 
>> labeledObject
>>  ^ RTLabelled new
>> 
>> in the latest roassal image and you will execute it, you will get a debugger 
>> deprecation warning with an option to fix that.
>> 
>> Cheers.
>> Uko
>> 
>>> On 21 Mar 2016, at 14:07, Alexandre Bergel <alexandre.ber...@me.com 
>>> <mailto:alexandre.ber...@me.com>> wrote:
>>> 
>>> Hi!
>>> 
>>> I cannot figure out what I should expect after loading 
>>> DeprecationAssistant. I have loaded it and created a method:
>>> -=-=-=-=-=-=-=-=-=
>>> foo
>>> self deprecated: 'use bar instead’
>>> -=-=-=-=-=-=-=-=-=
>>> 
>>> Is there anything that should be displayed in the critic list?
>>> 
>>> Alexandre
>>> -- 
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> 
>>> 
>>> 
>>>> On Mar 21, 2016, at 9:59 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>>>> <mailto:yuriy.tymc...@me.com>> wrote:
>>>> 
>>>> HI everyone,
>>>> 
>>>> last week I’ve created a little tool that automates deprecation 
>>>> resolution. The goal is to provide a help based on the existing code (no 
>>>> need for extra actions). You can read more here: 
>>>> http://blog.yuriy.tymch.uk/2016/03/deprecationassistant-aiding-developers.html
>>>>  
>>>> <http://blog.yuriy.tymch.uk/2016/03/deprecationassistant-aiding-developers.html>
>>>> 
>>>> You can install and try it out with:
>>>> Metacello new
>>>>repository: 'github://Uko/DeprecationAssistant' 
>>>> ;
>>>>baseline: 'DeprecationAssistant';
>>>>load
>>>> 
>>>> This will add additional actions to the debugger once you will get a 
>>>> deprecation warning.
>>>> 
>>>> Have fun!
>>>> Cheers.
>>>> Uko
>>> 
>> 
> 



Re: [Pharo-dev] [Pharo-users] DeprecationAssistant

2016-03-21 Thread Yuriy Tymchuk
Hi Alex,

this is not about critics…

If you have a method like 

labeledObject
^ RTLabelled new

in the latest roassal image and you will execute it, you will get a debugger 
deprecation warning with an option to fix that.

Cheers.
Uko

> On 21 Mar 2016, at 14:07, Alexandre Bergel <alexandre.ber...@me.com> wrote:
> 
> Hi!
> 
> I cannot figure out what I should expect after loading DeprecationAssistant. 
> I have loaded it and created a method:
> -=-=-=-=-=-=-=-=-=
> foo
>   self deprecated: 'use bar instead’
> -=-=-=-=-=-=-=-=-=
> 
> Is there anything that should be displayed in the critic list?
> 
> Alexandre
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
>> On Mar 21, 2016, at 9:59 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> HI everyone,
>> 
>> last week I’ve created a little tool that automates deprecation resolution. 
>> The goal is to provide a help based on the existing code (no need for extra 
>> actions). You can read more here: 
>> http://blog.yuriy.tymch.uk/2016/03/deprecationassistant-aiding-developers.html
>>  
>> <http://blog.yuriy.tymch.uk/2016/03/deprecationassistant-aiding-developers.html>
>> 
>> You can install and try it out with:
>> Metacello new
>>repository: 'github://Uko/DeprecationAssistant' 
>> ;
>>baseline: 'DeprecationAssistant';
>>load
>> 
>> This will add additional actions to the debugger once you will get a 
>> deprecation warning.
>> 
>> Have fun!
>> Cheers.
>> Uko
> 



[Pharo-dev] DeprecationAssistant

2016-03-21 Thread Yuriy Tymchuk
HI everyone,

last week I’ve created a little tool that automates deprecation resolution. The 
goal is to provide a help based on the existing code (no need for extra 
actions). You can read more here: 
http://blog.yuriy.tymch.uk/2016/03/deprecationassistant-aiding-developers.html 


You can install and try it out with:
Metacello new
   repository: 'github://Uko/DeprecationAssistant';
   baseline: 'DeprecationAssistant';
   load

This will add additional actions to the debugger once you will get a 
deprecation warning.

Have fun!
Cheers.
Uko

Re: [Pharo-dev] How to set styler for RubEditingArea?

2016-03-19 Thread Yuriy Tymchuk
Nice, thank you!


> On 19 Mar 2016, at 15:58, Stephan Eggermont  wrote:
> 
> On 19-03-16 14:35, Henrik Nergaard wrote:
>> That is probably done by using GLMHighlighterTextStylerDecorator which 
>> includes #styler: , but I guess you have to also use 
>> GLMRubircSMalltalkTextModel and perhaps also some other things then.
>> 
>> Anyways I added a new configuration of rubric (2.12) which adds #styler: to 
>> RubShoutStylerDecorator and some other stuff.
>> 
> Thanks
> 
> Stephan
> 
> 




[Pharo-dev] How to set styler for RubEditingArea?

2016-03-19 Thread Yuriy Tymchuk
Hi, I have my own styler which is a subclass of SHRBTextStyler. How do I set it 
as a styler for RubEditingArea?

Cheers.
Uko


Re: [Pharo-dev] feedback from yet another student presentation

2016-03-10 Thread Yuriy Tymchuk

> On 10 Mar 2016, at 22:14, Alexandre Bergel  wrote:
> 
>> - it was realy hard to register a project on smalltalkhub just after we 
>> created an account.
>> This already happened to me during the open-devs.
>> So this is a really big show stopper for the mooc. Because people will gave 
>> up just after the first lecture :(
> 
> The situation will be much easier I hope once git is well supported…

If they know git - yes. Otherwise git is very complicated. But at least we will 
be able to say that this is not our fault.

Uko

> 
>> - we should really rename Class>>name: into setClassName:
>> students were manipulating object with name such as state of state machine 
>> and one wrote
>> 
>> State name: 'A' and just rename the class and broke the system.
> 
> I have just created an issue:
> https://pharo.fogbugz.com/f/cases/17798/Rename-Class-name-into-setClassName
> 
> Alexandre
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> 




Re: [Pharo-dev] Call about Numerical Methods in Pharo :)

2016-03-06 Thread Yuriy Tymchuk
You know people, you should get a life.

The call was to Pharoers to improve Numerical Methods in Pharo. I understand 
that someone is pissed that Pharo is evolving, but I don’t understand why you 
keep replying to them.

Uko

> On 06 Mar 2016, at 14:31, Benoit St-Jean via Pharo-dev 
>  wrote:
> 
> 
> From: Benoit St-Jean via Pharo-dev 
> Subject: Re: [Pharo-dev] Call about Numerical Methods in Pharo :)
> Date: 6 March 2016 at 14:31:24 GMT+1
> To: Pharo Development List 
> Cc: Benoit St-Jean 
> Reply-To: Benoit St-Jean , Pharo Development List 
> 
> 
> 
> 
> From: Benoit St-Jean 
> Subject: Re: [Pharo-dev] Call about Numerical Methods in Pharo :)
> Date: 6 March 2016 at 14:30:03 GMT+1
> To: Pharo Development List 
> Reply-To: Benoit St-Jean 
> 
> 
> Amen!
> 
> My lastname is St-Jean, like it or not I'm closer to Ducasse than 
> Hollansworth!
> 
> I discovered Smalltalk with ObjectWorks on AIX : I'm closer to Pharo than 
> Python, C, C++, C#, Ruby, Snobol, Dart, Go or any other language... Like it 
> or not, I'm closer to Smalltalk than Java, COBOL or any other retarded 
> programming language...
> 
> I've been working as a consultant in Smalltalk since the 90s.  I don't care : 
> VW, VAST, VSE as long as it's Smalltalk!  I'm closer to Pharo than I am to 
> anything else (except Modula-2).
> 
> This stupid war is sooo stupid!
> 
> If you know what the DNU acronym means, you're a Smalltalker. Period.
> 
> Pharo can go its own way (whether I like it nor not), but it's still 
> Smalltalk!
> 
> These guys (the Pharoers, and Stéphane Ducasse) have made *tremendous* steps 
> forward. Like "how come nobody ever did that for Smalltalk except James 
> Robertson" ?
> 
> I like Pharo.  I fell in love with VW 2.5.  
> 
> Vous êtes si belles, vous toutes!
> 
> I love Smalltalk!
> 
> 
>  
> - 
> Benoît St-Jean 
> Yahoo! Messenger: bstjean 
> Twitter: @BenLeChialeux 
> Pinterest: benoitstjean 
> IRC: lamneth 
> Blogue: endormitoire.wordpress.com 
> "A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
> 
> 
> From: Dimitris Chloupis 
> To: Pharo Development List  
> Sent: Sunday, March 6, 2016 7:00 AM
> Subject: Re: [Pharo-dev] Call about Numerical Methods in Pharo :)
> 
> Sorry guys but I dont think this is non sense because you may be coding in 
> Pharo and Smalltalk for a long time, but as a beginner I was confused by 
> this, and to this day I am still confused why Pharo is not calling itself a 
> modern implementation of Smalltalk. Even in Pharo by Example there was no 
> mention at all the Pharo is a Squeak fork, nothing, now there is (few week 
> before) , guess who added it. No mention about Squeak in our website 
> whatsoever.  Why ? Do we just fork and forget about them ? 
> 
> Also this whole guilt about the so called "failure" or "death" of smalltalk 
> is hilarious. Smalltalk was never popular and we certainly wont be with 
> Pharo, because in the end its very unfamiliar and most coders dont like going 
> outside their comfort zone. Personally  I am fine with that but this is why I 
> use Pharo to get outside my comfort zone and think outside the box, but I 
> dont kid myself, I belong to a tiny minority. 
> 
> I am sorry if you feel that we derail the thread, but some of us feel very 
> uncomfortable by some people trying to mislead newcomers that Pharo will at 
> some point brake away from Smalltalk heritage when we all know that wont 
> happen for the following reasons 1) Smalltalk is an awesome language and its 
> failure to become popular has nothing to do with the IDE and the language and 
> more to do with lack of libraries, documentation and third party tool support 
> plus of course the all important familiarity b) Most likely a ton of Squeak 
> and older Smalltalk code will remain in Pharo because none sane enough would 
> removed code that has stood the test of time, is well designed and works c) 
> Even if you have a tiny sense or realism you will realize that the reason why 
> people use Pharo is because is a modern implementation of smalltalk, trying 
> to connect with modern technologies but at same time remaining a smalltalk in 
> the core.
> 
> And finally lets take into account that all languages are evolving. 
> 
> I was coding C++ till 1996 and was very frustrated with the language, manual 
> memory management, inflexible type system, horrible GUI libraries (MFC). Now 
> I learn C++ 11 which means an almost fully dynamic type systems (see auto , 
> templates etc) , automatic memory management (smart pointers), vast array of 
> greatly design GUI and graphics libraries (QT, Unreal, GTK etc). In 20 years 
> C++ has become night and day, sure still much more ugly than Pharo but far, 
> far better 

Re: [Pharo-dev] For future version of Spotter

2016-03-06 Thread Yuriy Tymchuk
I want to have the same thing for 

> On 06 Mar 2016, at 14:44, stepharo  wrote:
> 
> 
> 
> Le 6/3/16 11:39, Tudor Girba a écrit :
>> Hi,
>> 
>> This is on the todo list, but I would rather want to have that in settings 
>> with a button.
> 
> sure
> 
>> I did not check if this is possible yet. Does anyone know if it is?

I want to have the same thing for my stuff. Let me know if you find out how to 
do that. (Juraj was working with settings. Maybe he knows something)


Cheers.
Uko

> 
> it could be also in the help.
> Normally you do not shoot videos every day or need to get to a clean state.
>> 
>> Cheers,
>> Doru
>> 
>> 
>>> On Mar 6, 2016, at 10:53 AM, stepharo  wrote:
>>> 
>>> Add a menu doing
>>> 
>>>GTSpotter cleanUp.
>>>GTSpotter dontShowPreview
>>> 
>>> Stef
>>> 
>> --
>> www.tudorgirba.com
>> www.feenk.com
>> 
>> "Every thing should have the right to be different."
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 




Re: [Pharo-dev] Call about Numerical Methods in Pharo :)

2016-03-05 Thread Yuriy Tymchuk
Or we can use the name from other languages like Liczydło in Polish :)

> On 05 Mar 2016, at 16:34, Serge Stinckwich  wrote:
> 
> I was thinking as this name : Abacus
> 
> https://en.wikipedia.org/wiki/Abacus
> A calculating tool !
> 
> On Sat, Mar 5, 2016 at 4:22 PM, Ben Coman  wrote:
>> On Sat, Mar 5, 2016 at 4:14 AM, Serge Stinckwich
>>  wrote:
>>> On Fri, Mar 4, 2016 at 8:44 PM, Nicolas Cellier
>>>  wrote:
 
 2016-03-04 19:51 GMT+01:00 Alexandre Bergel :
> 
> I personally never liked the name “SciSmalltalk”. “SciPharo” is much
> better in my opinion
> PhaNum is also okay to me.
> 
 
 SciSmalltalk is ugly.
>>> 
>>> I don't like the name either. We will find a better sexy name !
>> 
>> Just a random line of thought...
>> PhaNum --> NumPha --> numcha --> numchi
>> --> numqi "An energy around numbers"
>> 
>> https://en.wikipedia.org/wiki/Qi
>> 
>> cheers -ben
>> 
 Currently, there is no package named SciSmalltalk.
 SciSmalltalk is just:
 - an aggregate of packages (a metacello configuration)
 - a repository (github + Smalltalkhub)
>>> 
>>> SciSmalltalk is a bit more than just a few packages ...
>>> We have tests, we have a CI job, we have a book.
>>> 
>>> --
>>> Serge Stinckwich
>>> UCBN & UMI UMMISCO 209 (IRD/UPMC)
>>> Every DSL ends up being Smalltalk
>>> http://www.doesnotunderstand.org/
>>> 
>> 
> 
> 
> 
> -- 
> Serge Stinckwich
> UCBN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://www.doesnotunderstand.org/
> 




Re: [Pharo-dev] Mocking network…

2016-03-03 Thread Yuriy Tymchuk
Look guys,

I know that you can start a super smart discussion about the approaches to test 
network-related stuff.

But my question was super simple. If I’m writing something that accesses github 
I can write a test for handling request limit error. And in ruby I can say: “ok 
in this test when you get a request to https://github/SomePathThatITest 
hive a response with this number and this headers”. And then I can test the 
result. If I cannot do this in Pharo, then I will not test it, it’s that easy.

Cheers.
Uko

> On 03 Mar 2016, at 03:53, Chris Muller <ma.chri...@gmail.com> wrote:
> 
> I use a framework designed for testing network programs.  Depending on
> the test, it launches 3-5 "player" copies of the image solely for
> participation in the tests.  The controlling image runs the unit
> tests, which each send their dance of rpc messages to the players to
> make them run the tests in a controlled fashion.
> 
> The failure tests involve setting a boolean flag in the server image
> that causes it to execute "Smalltalk quitPrimitive" from a place deep
> in the system -- i.e., at one place in mid disk-write, to exercise the
> recovery code.
> 
> This approach to testing network programs is heavier-weight than a
> mock and doesn't integrate well with the SUnit browser.  But it does
> provide me a comfortable context that assures me it really does work
> over the network.  Back then, I was wanting to learn and practice my
> TCP socket programming anyway, so it was hard for me to allocate time
> to learning a mock which.. at the end of the day, I knew, would nag me
> to wonder whether my program would really work over the network for
> real.
> 
> 
> On Wed, Mar 2, 2016 at 6:16 PM, Frank Shearar <frank.shea...@gmail.com> wrote:
>> Er. How do you reliably inject arbitrary network faults in your
>> localhost network again?
>> 
>> frank
>> 
>> On 2 March 2016 at 08:27, Chris Muller <asquea...@gmail.com> wrote:
>>> A mock network will never test as thoroughly as locahost network..
>>> 
>>> On Wed, Mar 2, 2016 at 6:32 AM, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
>>>> HI, there is one thing in Ruby (on Rails) that I really like and it is a 
>>>> option to mock network. This means that when you run a test your network 
>>>> requests are handled by a mock object and you can tell it that for this 
>>>> URI it should give you this response. This is helpful if you don’t want to 
>>>> rely on a network availability or test certain corner cases.
>>>> 
>>>> Is there anything like this in Pharo?
>>>> 
>>>> Uko
>>> 
> 




[Pharo-dev] Mocking network…

2016-03-02 Thread Yuriy Tymchuk
HI, there is one thing in Ruby (on Rails) that I really like and it is a option 
to mock network. This means that when you run a test your network requests are 
handled by a mock object and you can tell it that for this URI it should give 
you this response. This is helpful if you don’t want to rely on a network 
availability or test certain corner cases.

Is there anything like this in Pharo?

Uko


Re: [Pharo-dev] Code Combat

2016-02-29 Thread Yuriy Tymchuk
Yes, that one with ruby knight in the dungeon was nice. Because you both learn 
to program and you are implementing an AI. But it was too procedural and it was 
hard to modularize your code. That’s why I’d like to be able to “enhance" your 
charter with methods.

Uko

> On 29 Feb 2016, at 20:25, stepharo  wrote:
> 
> Let us know. My plate is way too full
> I started to look at ruby framework where there a hero is in one dungeon (I 
> do not remember which one it is)
> but yes I would like to have something for my sons to work on.
> Now I found that most of the time people were taught to conditional and this 
> was boring.
> Because this is not what I want to teach.
> 
> Stef
> 
> Le 29/2/16 18:11, Ben Coman a écrit :
>> I was talking to my kids' primary school about teaching them
>> programming, and one of the systems they are planning to use is Code
>> Combat.  It "teaches" programming by posing puzzles in an arcade
>> adventure game setting.  Both(only) Python and Javascript are catered
>> for, but I notice its MIT licensed and *more importantly, that the
>> media are CC licensed [1].  So, not immediately because I have a few
>> things to get off my plate, but I thought I'd just survey who might be
>> interested in collaborating on Code Combat Pharo - at least to the
>> degree to determine how big the job would be.
>> 
>> If you want to take a peek to hazard an opinion, you can create login
>> here [2] to get free access to the basic levels.   I found some
>> instructions to install it locally to avoid paying to check out the
>> other levels (but atm I've hit a snag with the last `npm start` step),
>> and maybe take a peek inside data.tar.gz - as I understand it we have
>> a MongoDB driver around somewhere.
>> 
>> Open to your thoughts...
>> 
>> cheers -ben
>> 
>> 
>> [1] https://codecombat.com/legal
>> [2] https://codecombat.com/
>> [3] https://project.altservice.com/issues/693
>> 
>> 
> 
> 




Re: [Pharo-dev] Code Combat

2016-02-29 Thread Yuriy Tymchuk
I think that I was playing that for a few hours. This one may be interesting. 
One thing that really pisses me of with the coding games is that they usually 
work on reading and writing text which is a huge turn off for functional 
programming languages (and other ones too). Now code combat works on invoking 
methods (if I remember correctly), which is nice. Also I don't know how 
complicated the tasks are there, but usually in coding games I feel a lack of 
the support for organizing your code. For example I'd like to be able to add 
methods to my hero nested of writing numerous functions in a single file.

Cheers
Uko

Sent from my iPad

> On 29 Feb 2016, at 18:11, Ben Coman  wrote:
> 
> I was talking to my kids' primary school about teaching them
> programming, and one of the systems they are planning to use is Code
> Combat.  It "teaches" programming by posing puzzles in an arcade
> adventure game setting.  Both(only) Python and Javascript are catered
> for, but I notice its MIT licensed and *more importantly, that the
> media are CC licensed [1].  So, not immediately because I have a few
> things to get off my plate, but I thought I'd just survey who might be
> interested in collaborating on Code Combat Pharo - at least to the
> degree to determine how big the job would be.
> 
> If you want to take a peek to hazard an opinion, you can create login
> here [2] to get free access to the basic levels.   I found some
> instructions to install it locally to avoid paying to check out the
> other levels (but atm I've hit a snag with the last `npm start` step),
> and maybe take a peek inside data.tar.gz - as I understand it we have
> a MongoDB driver around somewhere.
> 
> Open to your thoughts...
> 
> cheers -ben
> 
> 
> [1] https://codecombat.com/legal
> [2] https://codecombat.com/
> [3] https://project.altservice.com/issues/693
> 



Re: [Pharo-dev] [Moose-dev] Re: short spotter demos

2016-02-24 Thread Yuriy Tymchuk
Thank you very much. Does it dynamically update the result on each #value: 
send? Also I’ve spotted one behavior which is maybe not always expected. 
Usually when you are defining a processor, you can specify #actLogic:. But when 
you press enter on the history item it only runs the #spotterActDefault method. 
So when you are pressing enter on a catalog project you are prompted if you 
want to load it. If you press enter or a catalog project from history, the 
project is inspected.

Uko

> On 24 Feb 2016, at 22:22, Tudor Girba <tu...@tudorgirba.com> wrote:
> 
> Hi,
> 
> Ok, this is more tricky, but it is supported :). Actually this is one of the 
> really cool things about Spotter.
> 
> For this we have #filter:item:. Look at the senders to find examples in the 
> image.
> 
> For example:
> PragmaType>>spotterSendersFor: aStep
>   
>   ^ aStep listProcessor
>   title: 'Senders';
>   filter: GTFilterSubstring item: [ :filter :context | 
>   self keyword senders do: [ :sender | 
>   filter value: sender compiledMethod ] ]
> 
> or:
> GTSpotter>>spotterForReferencesFor: aStep
>   
>   aStep listProcessor
>   title: 'References';
>   filter: GTNullFilter item: [ :filter :context | 
>   context textTrimmed asClassIfPresent: [ :class |
>   SystemNavigation default allReferencesTo: class 
> binding do: filter ] ];
>   keyBinding: $n shift meta;
>   itemName: [ :method | method gtDisplayString ]
> 
> so, the block is being passed a filter which actually behaves like a block 
> :). So, you can pass it to whatever traversal you have, and this will stream 
> the results back to Spotter. I find this so cool that I cannot describe it :).
> 
> Let me know if this helps.
> 
> Cheers,
> Doru
> 
> 
> 
>> On Feb 24, 2016, at 10:14 PM, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
>> 
>> Also in your case you have `allCandidates`. I don’t have this as I’m going 
>> to query a remote service base on input and I want to display all that I 
>> will get :)
>> 
>> Uko
>> 
>>> On 24 Feb 2016, at 21:52, Sven Van Caekenberghe <s...@stfx.eu> wrote:
>>> 
>>>> 
>>>> On 24 Feb 2016, at 21:41, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
>>>> 
>>>> This is super cool! But now I need to lookup: “How to make your own 
>>>> Spotter engine(whatever you call the thing)” ;)
>>> 
>>> That is actually surprisingly simple.
>>> 
>>> To look up known Unicode Characters by partial name:
>>> 
>>> GTSpotter>>#spotterForUnicodeCharacterFor: aStep
>>> 
>>> aStep listProcessor
>>> title: 'Unicode Character';
>>> allCandidates: [ UnicodeCharacterData database values ];
>>> itemName: [ :each | each name ];
>>> filter: GTFilterSubstring;
>>> wantsToDisplayOnEmptyQuery: false
>>> 
>>> And if you want a preview:
>>> 
>>> UnicodeCharacterData>>#spotterPreviewIn: aComposite
>>> 
>>> 
>>> ... same as GT inspector ...
>>> 
>>>> Cheers!
>>>> Uko
>>>> 
>>>>> On 24 Feb 2016, at 21:38, Tudor Girba <tu...@tudorgirba.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> The recent debates around Spotter, showed that some of its features are 
>>>>> not well understood. In an effort to document it more thoroughly I 
>>>>> created a couple of (very short) videos. They have no sound. Please take 
>>>>> a look and let us know what you think.
>>>>> 
>>>>> 
>>>>> Spotting a class with GTSpotter 
>>>>> https://www.youtube.com/watch?v=_wIh4fekcD8
>>>>> 
>>>>> Scoping a search to a specific category in GTSpotter 
>>>>> https://www.youtube.com/watch?v=9-fY4mN6Isc
>>>>> 
>>>>> Using category shortcuts in GTSpotter 
>>>>> https://www.youtube.com/watch?v=USNZ7_6gLDA
>>>>> 
>>>>> Using preview in GTSpotter 
>>>>> https://www.youtube.com/watch?v=FSm5xylmTqM
>>>>> 
>>>>> Using the dive-in action in GTSpotter 
>>>>> https://www.youtube.com/watch?v=C7mJBX3Oblw
>>>>> 
>>>>> Loading a public playground with GTSpotter 
>>>

Re: [Pharo-dev] How was BoxedFloat64 integrated into the image ?

2016-02-21 Thread Yuriy Tymchuk
Hi, I can add it, but can you give me a bit of context? Are we talking about 
references to BoxedFloat64 class?

Cheers.
Uko

> On 18 Feb 2016, at 13:55, Ben Coman  wrote:
> 
> On Thu, Feb 18, 2016 at 8:52 PM, Nicolas Cellier
>  wrote:
>> Beware, most client code should only refer to the visible façade Float and
>> its API.
>> BoxedFloat64 is an implementation detail and is VM dependent.
>> We don't want client code to be VM dependent, do we?
>> I hope those references to BoxedFloat64 are rare.
> 
> Should there be a Quality Assistant rule for this?
> cheers -ben
> 
>> 
>> 2016-02-18 11:47 GMT+01:00 Nicolai Hess :
>>> 
>>> Because we have compiled methods with BoxedFloat64 associations in the
>>> methods literals, but the source code still shows only "Float".
>>> 
>>> 17638 Browsing calls on BoxedFloat64 shows methods with reference to
>>> BoxedFloat64 in the code
>>> 
>>> 
>>> 
>> 
> 




Re: [Pharo-dev] TaskIT chapter

2016-02-20 Thread Yuriy Tymchuk
Ok, I found it here: 
https://github.com/SquareBracketAssociates/PharoReadyForReviews/blob/master/TaskIT/TaskIT.pier
 
<https://github.com/SquareBracketAssociates/PharoReadyForReviews/blob/master/TaskIT/TaskIT.pier>

Now another question: does anybody use it? Because there is no configuration 
for pharo 5…

Uko


> On 20 Feb 2016, at 11:11, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
> 
> HI,
> 
> here it says that there is a chapter about it in Pharo Enterprise book: 
> https://pharoweekly.wordpress.com/2014/06/23/taskit-handling-processes-nicely/
>  
> <https://pharoweekly.wordpress.com/2014/06/23/taskit-handling-processes-nicely/>
> 
> 
> But I cannot find it.
> 
> Can someone give me a pointer?
> 
> Cheers.
> Uko



[Pharo-dev] TaskIT chapter

2016-02-20 Thread Yuriy Tymchuk
HI,

here it says that there is a chapter about it in Pharo Enterprise book: 
https://pharoweekly.wordpress.com/2014/06/23/taskit-handling-processes-nicely/ 



But I cannot find it.

Can someone give me a pointer?

Cheers.
Uko

[Pharo-dev] Get an image from monkey job

2016-01-23 Thread Yuriy Tymchuk
Hi,

sometimes some strange tests fail while money is checking the 
slice/configuration. And while the failures are not related to the contribution 
sometimes I want to know what happened and maybe fix it. Is it possible to get 
the resulting image to investigate it?

Cheers.
Uko


Re: [Pharo-dev] another spotter question

2016-01-22 Thread Yuriy Tymchuk
I think that it is really hard to figure out that the arrow is clickable if you 
do res shift and see it highlighted. I mean, it doesn’t look like a button or 
anything special…

Cheers!
Uko

> On 22 Jan 2016, at 11:08, Aliaksei Syrel  wrote:
> 
> I was talking about clickable arrow to open preview ;)
> 
> On Jan 22, 2016 10:47 AM, "stepharo"  > wrote:
> Hi aliaksei
> 
>> Hi Stef
>> 
>> I saw an early version of Spotter with arrows near each item and it was IMHO 
>> awful. But still, pencils taste differently for each of us ;)
>> 
> 
> I do not know. May be the arrow should not be on every element but just on 
> the group/category
> may be the colors should be deemed. 
> 
>> I can agree with you that people "do not get how to use spotter". However it 
>> depends on how we define "use spotter". From my prospective almost all do 
>> understand how to use main feature: searching.
>> I think the whole discussion is about more advanced features.
>> 
> No it is about frustration. 
> I get a list in front of my nose and I have no clue how to access it. I click 
> on it and it does not work. 
> I have to read blog to see something and I have no clue how to obtain the 
> same result. 
> This kind of thing.
> 
>> Let's talk about how to open preview(pane to the right) in context of 
>> learnability which consists of multiple design principles. During our 
>> analysis we will try to determinate violated ones and see how they can be 
>> fixed.
>> 
>> a) Familiarity. It consists of guessability which is surely violated - I can 
>> not imagine anyone who could guess that in order to open preview she should 
>> click on arrow to the right of the item (I talk about intentional click, not 
>> random one to see what will happen).
>> 
> ok
> 
>> Second part describes how prior knowledge applies to new system. If we would 
>> take Pharo as new system, then principle is finally busted because I never 
>> saw such behaviour anywhere else - it was invented in spotter. If new system 
>> would be spotter in context of Pharo, then still violated as clicking on 
>> arrow is not used anywhere else in Pharo.
>> 
> If you put a little triangular icons on top of the arrow then people will 
> certainly undertsand that they can click on it. 
> 
> My point is ask yourself why many people do not know how to open the pane. 
> I could not find it. Once I got it I asked around and really few people know 
> it. 
>> Possible way to fix familiarity principle is to spread usage of arrow to the 
>> whole Pharo (or world) or to modify its design to improve guessability by 
>> adding preview icon/label/whatever on the arrow.
>> 
>> b) Generalizability. Meaning that user can extend specific interaction 
>> knowledge to new situations. Clicking on arrow is only used in one place in 
>> spotter - so there is no chance for user to extend not existing knowledge. 
>> Violated.
>> 
>> Fix is similar to familiarity - clicking on arrow to expand/open new pane 
>> should be used in more places.
>> 
> I do not think. 
> 
>> c) Predictability. Consists of determinism and operation visibility. 
>> Determinism is not violated because effect of clicking on arrow can be 
>> immediately observed by user. However, operation visibility is violated - 
>> arrow does not change depending whether preview is available or not.
>> 
>> To fix operation visibility we need to change arrow color/icon depending on 
>> availability of preview.
>> 
> 
> You do not reply to the point that to see that I can interact with a group of 
> element I have to select the first one. 
> Currently it only work because some people use arrows. I never because there 
> are at the bottom of my keyboard. 
> 
>> d) Synthesisability. Not violated - user can easily observe effect of past 
>> operations. Preview has only two states: on and off.
>> 
>> e) Consistency. We can not say anything, because there are no similar 
>> situations in the system.
>> 
>> To conclude, an action to open preview should be improved. The most easiest 
>> fix would be to add something on top of arrow to make it obvious (improve 
>> guessability) what clicking does.
>> 
> yes to improve the fact that we may click on something. 
>> More preferred one IMHO is to expose arrow usecases and teach users so that 
>> generalizability would start playing a role.
>> 
> I do not get it. 
> You should understand that Pharo can be used with a mouse. 
>> Sorry for long email
>> Alex
>> 
>> 
>> 
>> Le 20/1/16 14:30, Aliaksei Syrel a écrit :
>>> On Wed, Jan 20, 2016 at 12:59 PM, Ben Coman < 
>>> b...@openinworld.com 
>>> > wrote:
>>> +1. Its annoying that it takes two clicks to dive into categories like 
>>> "Implementors" (one to click an item under the category to make the arrow 
>>> appear, and then another to click on it) when it would only take one if 
>>> that arrow for each category was always visible.   
>>> 

Re: [Pharo-dev] Spotter suggestions

2016-01-20 Thread Yuriy Tymchuk

> On 20 Jan 2016, at 10:51, Thierry Goubier  wrote:
> 
> Le 20/01/2016 10:48, David Allouche a écrit :
>> 
>>> On 20 Jan 2016, at 10:39, David Allouche >> > wrote:
>>> 
>>> And some suggestion for all lists:
>> 
>> Another one: Esc should close Spotter.
> 
> That one is nice to have, yes.

But it is already there, no?


Uko

> 
> Thierry
> 
>> I see Cmd-W does that, but Spotter is not a "normal" window, it is an
>> incremental search popup.
>> 
>> Thanks.
> 
> 




Re: [Pharo-dev] spotter: top search for senders and references

2016-01-20 Thread Yuriy Tymchuk

> On 19 Jan 2016, at 22:40, Tudor Girba  wrote:
> 
> Most people I know use Shift to type an upper case, and we observed that when 
> people search, they often tend to still use uppercase. Not all, but many. 
> That is why we put this functionality on Shift. This does not mean that it is 
> enough, but we just wanted to increase the chance of people stumbling across 
> this without any documentation. It only partially succeeded.


Hi.

My 2 cents on showing the functionality. In some games that I play there firs 
time you open a new interface they highlight all the main parts and you can 
learn what each one does. Also they have a small “?” button in the corner of 
the window that again highlights all important parts when you click it.

We already have the highlighting. Maybe putting a small “?” button in the 
corner will not kill the cool design. This button can be used to turn on the 
highlight rather then relying on the random shift press. Also you can turn on 
the highlight for the first time a person opens a sportier window in his/her 
machine.


Cheers.
Uko

[Pharo-dev] Cmd + click

2016-01-19 Thread Yuriy Tymchuk
Hi, there was a future that "cmd + click" browsed classes or showed 
implementors. Now it doesn’t seem to work at least in Nautilus.

Is anyone aware of this?

Cheers.
Uko


Re: [Pharo-dev] Cmd + click

2016-01-19 Thread Yuriy Tymchuk
Sorry, I’ve tried again and it works. I don’t know what happened… Maybe 
something else was registering the event, or some other magic.
I was using 50522.

Cheers.
Uko


> On 19 Jan 2016, at 17:39, Sven Van Caekenberghe <s...@stfx.eu> wrote:
> 
>> 
>> On 19 Jan 2016, at 17:31, stepharo <steph...@free.fr> wrote:
>> 
>> 
>> 2016-01-19 15:37 GMT+01:00 Yuriy Tymchuk <yuriy.tymc...@me.com>:
>> Hi, there was a future that "cmd + click" browsed classes or showed 
>> implementors. Now it doesn’t seem to work at least in Nautilus.
>> 
>> Is anyone aware of this?
>> 
>> platform and image version?
>> 
>> It works on Windows pharo 50529:
>> alt+right click -> browse Class/implementors of
>> alt+shift+right click -> users of class /senders of
>> 
>>> Cmd (Apple) key + (Shift) + Click works fine on OS X in #50535
>> 
>> Sven do you get implementors and senders working because I get refs and 
>> class def but not the method counterparts.
> 
> I just tried in a fresh 50 image, and they all work fine. (I seem to remember 
> differently, maybe from 40).
> 
>> Stef
>>> 
>>>> Cheers.
>>>> Uko



Re: [Pharo-dev] Why there is no setting to disable QA?

2016-01-17 Thread Yuriy Tymchuk
You can simply do `QANautilusPlugin uninstall`. I have not figured out how to 
put it in the prefs.

Now about the false positives… I don’t know what you are talking about, but I 
suspect that it is about something like “class not being used”. Now if it is 
not being used it’s not a false positive, it’s just a useless information. What 
we can do, is put this rules into “information” category and disable it in 
settings.

Cheers.
Uko

> On 17 Jan 2016, at 11:47, stepharo  wrote:
> 
> Hi nicolai
> 
> Le 17/1/16 11:29, Nicolai Hess a écrit :
>> Hi
>> 
>> Why there is no setting for that?
>> 
>> Stef
>> 
>> 
>> 
>> You can remove the Nautilus plugin (Nautilus window menu -> plugin manager)
> Yes I saw looking around. Now I have to dive into it to script it so that I 
> avoid to be forced as today to redo 
> my screenshots (to avoid all the false positive on class creation). 
> Because else
>> For the spotter and inspector integration, there is a setting (default 
>> "disabled") 
>> 
> 



Re: [Pharo-dev] Why there is no setting to disable QA?

2016-01-17 Thread Yuriy Tymchuk
That’s the point. Someone finds this disruptive, someone instructing. But it’s 
always a true information. So here we are not dealing with the faults of 
algorithm but with a way we are communicating a data with a user.

That’s why I kindly ask not to call this things “false positives” :).
I thinks that it makes sense to be bale to disable some critics by their 
severity.

Also I think that it’s a good thing to teach beginners to write class comments. 
You don’t need special skills for that and making it a habit from the beginning 
will payoff in the future.

Cheers.
Uko




> On 17 Jan 2016, at 16:11, Cyril Ferlicot D.  wrote:
> 
> Le 17/01/2016 16:04, stepharo a écrit :
>> We have also
>>instance variables not written or read
>>class comment is empty
>> 
>> And I find that disruptive for a student starting with Pharo.
>> 
> 
> I find that instructing.
> When I create a class and I see those messages it's like "objectives". I
> need to correct that and it help me not to avoid the documentation.
> 
> -- 
> Cyril Ferlicot
> 
> http://www.synectique.eu
> 
> 165 Avenue Bretagne
> Lille 59000 France
> 




[Pharo-dev] Add a package to Manifest?

2016-01-14 Thread Yuriy Tymchuk
Hi,

is it possible to add a package into CodeCritics manifest?


Cheers.
Uko



Re: [Pharo-dev] Bug in protocol and method selection

2016-01-14 Thread Yuriy Tymchuk
Stef,

I cannot see the issue, moreover there were no changes in QA that touch 
Nautilus.

Maybe this is because of FastTable highlighting: when you hover over a selected 
list item, it changes color to the hover color, so when you select an item you 
cannot see the you selected it because you see the tower color. This was 
already fixed, but not yes integrated.

Uko

> On 14 Jan 2016, at 13:33, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
> 
> I will take a look. Just to make sure: this is not the FT coloring thing, 
> right?
> 
> Uko
> 
>> On 14 Jan 2016, at 13:06, stepharo <steph...@free.fr> wrote:
>> 
>> Hi
>> 
>> There is a problem in latest Pharo. I cannot select (and keep the selection 
>> selected)
>> of a method and method protocol.
>> To me it looks like QA is interferring but I do not know.
>> This is the kind of glitches that can kill our effort doing videos. We have 
>> a strong deadline
>> for producing such videos. beginning of march but we want to get done before
>> any help is welcome.
>> 
>> Stef
>> 
> 
> 




Re: [Pharo-dev] Bug in protocol and method selection

2016-01-14 Thread Yuriy Tymchuk
I will take a look. Just to make sure: this is not the FT coloring thing, right?

Uko

> On 14 Jan 2016, at 13:06, stepharo  wrote:
> 
> Hi
> 
> There is a problem in latest Pharo. I cannot select (and keep the selection 
> selected)
> of a method and method protocol.
> To me it looks like QA is interferring but I do not know.
> This is the kind of glitches that can kill our effort doing videos. We have a 
> strong deadline
> for producing such videos. beginning of march but we want to get done before
> any help is welcome.
> 
> Stef
> 




Re: [Pharo-dev] [ANN] I created a web page so you can stalk me :)

2016-01-08 Thread Yuriy Tymchuk
Wow, the blog looks really nice.

I wander if it will work for a bigger blogs as well.

Cheers.
Uko

> On 07 Jan 2016, at 18:18, Esteban Lorenzano  wrote:
> 
> Hi,
> 
> Stef told me I need to make a bit more visibility my work, and while being in 
> Togo I sketched an application I tested last few days and seems to be working 
> fina. 
> Of course, easiest way would be to use twitter as a work log, but I was not 
> satisfied with the idea. Why? well… some reasons are explained in the source 
> page: 
> 
> - You can add formatting using pillar
> - You do not have 140 characters max (probably you will not need much more, 
> but anyway, the limitation is annoying :P)
> - You can disqus (http://disqus.com ) posts.
> - Posts are interpreted and links are detected and listed (so is easy to find 
> them)
> - Since is made for my own work, it understand links like *case:12345* as a 
> link to pharo fogbugz case 12345. 
> - It has a command line!
> 
> but another reason was because I wanted to try it (and I was bored in Togo 
> waiting for the planes)
> I don’t know how this experiment will work, but let’s give it a try :)
> 
> http://log.smallworks.eu 
> http://log.smallworks.eu/rss  (you can suscribe 
> with your reader, so you do not need to go to the page)
> https://github.com/estebanlm/worklog 
> 
> Enjoy stalking me :)
> 
> Esteban
> 



Re: [Pharo-dev] Catalog statistics (Who know this projects?)

2016-01-06 Thread Yuriy Tymchuk
I’ve fixed my project


> On 05 Jan 2016, at 16:21, Esteban Lorenzano  wrote:
> 
> So… I took a couple of minutes to do a small list of project description 
> status: 
> 
> From a total of 379 projects currently in the catalog, just 115 have a 
> description and/or keywords associated. 
> Which means 264 are mysterious projects nobody can guess what are they about. 
> 
> I was thinking most of this projects would be in Unsorted (or Pharo 3), but I 
> found that many are also on Pharo 5 and 4…. which is frankly unacceptable :)
> Even very important projects like Seaside or Garage and Glorp are not 
> documented. 
> 
> So, please people… take a look at your projects and PLEASE, provide a 
> description and proper keywords… Nobody can guess what is Aconcagua (besides 
> a cool mountain in south america), or Telescope, etc., etc., etc.
> 
> Here the list of non-documented projects:
> 
> 
> http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo50/main
> ---
> 'A4BP'
> 'Aconcagua'
> 'BootstrapMagritte'
> 'Chalten'
> 'CommandShell'
> 'Cormas'
> 'DependencyAnalyser'
> 'FamixJS'
> 'FontAwesome'
> 'Garage'
> 'GarageConnectionPool'
> 'GarageGlorp'
> 'Glorp'
> 'Grease'
> 'IniModules'
> 'Kendrick'
> 'Magritte3'
> 'MagritteMagic'
> 'MetaBoardBoard'
> 'MyFirstWebApp'
> 'NBOpenGL'
> 'NeoJSON'
> 'OSProcess'
> 'PetitParser'
> 'Phexample'
> 'Pier3'
> 'Pier3AddOns'
> 'ProcessWrapper'
> 'RewriteTool'
> 'Seaside3'
> 'SimplePersistence'
> 'Ston'
> 'Telescope'
> 'Woden'
> ‘Xtreams'
> 
> http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo40/main
> ---
> 'AconcaguaDeluxe'
> 'AthensSVG'
> 'Autotest'
> 'CPanel'
> 'CreativeCommonsLive'
> 'DevFlow'
> 'EventRecorder'
> 'ExtendedNumberParser'
> 'ExternalWebBrowser2'
> 'FixedDecimal'
> 'Ghost'
> 'GraphViz'
> 'Gravatar'
> 'Hubcap'
> 'Infinity'
> 'Mandrill'
> 'Mathex'
> 'MemoryMonitor'
> 'MinimalConnectors'
> 'Mocketry'
> 'MongoTalk'
> 'NBSQLite3'
> 'NumericalMethods'
> 'ODBC'
> 'OSOSX'
> 'OSWindows'
> 'PackageDependenciesAnalysis'
> 'PharoLauncher'
> 'PlagueDoctor'
> 'Pomodoro'
> 'RemoteAnnouncement'
> 'SandstoneDb'
> 'Scheduler'
> 'ScriptManager'
> 'Shapes'
> 'SmallUML'
> 'Spreadsheet'
> 'Spy'
> 'StateSpecs'
> 'SuffixConditionals'
> 'Teachable'
> 'TestMock'
> 'Trees'
> 'Twilio'
> 'Vidi'
> 'VistaCursors'
> 'Viva'
> 'WiringPi'
> 'WorkingSet'
> 'XBase'
> 'sQuick'
> ‘sQuick_new'
> 
> http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main
> ---
> 'Actalk'
> 'Arduino'
> 'BabyMock2'
> 'CTranslator'
> 'DBPedia'
> 'DigitalOcean'
> 'Forum'
> 'Fuel'
> 'GTDebugger'
> 'GTInspector'
> 'GTInspectorCore'
> 'GTPlayground'
> 'GTPlaygroundCore'
> 'GTSpotter'
> 'GToolkit'
> 'GlamourCore'
> 'GlorpDBX'
> 'GraphET'
> 'InstanceEncoder'
> 'Marina'
> 'Mechanize'
> 'Memcached'
> 'Moose'
> 'Pastell'
> 'PharoOnlineHelp'
> 'ProfStef'
> 'PythonParser'
> 'RFB'
> 'Roassal3d'
> 'SQLite3'
> 'Smallapack'
> 'SmalltalkHub'
> 'Snapshotcello'
> 'SortFunctions'
> 'Spotlight'
> 'Stamp'
> 'Tide'
> 'VersionBrowser'
> ‘Versionner'
> 
> http://www.squeaksource.com/MetacelloRepository
> ---
> 'AXAnnouncements'
> 'Adore'
> 'Aida'
> 'Ajp'
> 'Algernon'
> 'Alien'
> 'Amers'
> 'Announcements'
> 'AutomaticMethodCategorizer'
> 'BetaNineIPAddress'
> 'CAnalyzer'
> 'CairoGraphics'
> 'CampSmalltalkLondon'
> 'Cecinestpasunepomme'
> 'CharacterMap'
> 'Chronos'
> 'CloudforkAWS'
> 'Cog'
> 'Connectors'
> 'ContextS'
> 'Control'
> 'Country'
> 'Countryside'
> 'DBXBrowser'
> 'DBXTools'
> 'DependencyBrowser'
> 'DependencyView'
> 'EnhancedOmniBrowser'
> 'ExternalIconFamily'
> 'ExternalWebBrowser'
> 'FileMan'
> 'FileTree'
> 'Filesystem'
> 'GemTools'
> 'Gitocello'
> 'Glamour'
> 'Gofer'
> 'GoferProjectLoader'
> 'GoogleAnalytics'
> 'HPDF'
> 'HealthReportProducer'
> 'HelpSystem'
> 'ICal'
> 'InstancesBrowser'
> 'JQueryWidgetBox'
> 'JavaScriptAnalyzer'
> 'Jejak'
> 'Keymapping'
> 'Kozen'
> 'KyotoTycoonClient'
> 'MaBase'
> 'MaClientServer'
> 'Magma'
> 'Magmafy'
> 'Magritte'
> 'Magritte2'
> 'Magritte3AddOns'
> 'MagritteAddOns2'
> 'Metacello'
> 'MetacelloBrowser'
> 'MetacelloPreview'
> 'MockGemStone'
> 'Mondrian'
> 'Money'
> 'MonticelloRedirect'
> 'Murmansk'
> 'Nagare'
> 'NativeBoost'
> 'Neo4reSt'
> 'NewECompletion'
> 'NewInspector'
> 'NewOCompletion'
> 'Nile'
> 'NotificationsArea'
> 'O2'
> 'OCompletion'
> 'OPAX'
> 'ObjectMetaTools'
> 'OmniBrowser'
> 'OmniBrowserLukas'
> 'Orca'
> 'PagedReader'
> 'Pharo'
> 'PharoMorphicExtras'
> 'PharoNonCore'
> 'Phriak'
> 'Pier'
> 'Pier2'
> 'PierAddOns'
> 'PierAddOns2'
> 'PostMark'
> 'ProcessModel'
> 'Quaternion'
> 'REPL'
> 'Raphael'
> 'RatPack'
> 'RefactoringBrowser'
> 'RefactoringTools'
> 'RoelTyper'
> 'SIXX'
> 'SPort2'
> 'SandcastleThemes'
> 'Scamper'
> 'Scribo'
> 'Seafox'
> 'Seaside'
> 'Seaside28'
> 'Seaside28Examples'
> 'Seaside30'
> 'SeasideJSON'
> 'SeasideRest'
> 'SeasideTesting'
> 'SharedWorkspace'
> 'Shout'
> 'SimpleApplescript'
> 'SoapOpera'
> 'SpellingServices'
> 'SpyForO2'
> 'Sqnappy'
> 'SqueakCheck'
> 'SqueakDBX'
> 'SqueakFS'
> 'SqueakSource'
> 'StOMP'
> 'Stripe'
> 'SunnysidePlanning2'
> 'SwaLint'
> 

Re: [Pharo-dev] #sum:, #detectSum:, #sumNumbers:

2015-12-01 Thread Yuriy Tymchuk
#sum:ifEmpty: looks nice

> On 01 Dec 2015, at 12:45, Stephan Eggermont  wrote:
> 
> On 01-12-15 11:46, Sven Van Caekenberghe wrote:
>> The basic question for me is, what should
>> 
>>   #() sum
>> 
>> return. Right now, it is an error, I would very much like that for this 
>> common case the result would be 0. There is a lot of power (easy of use) in 
>> a unary selector, we should not destroy that with semantics that force a 
>> test before using it.
> 
> I like the error, it aligns with most of our collection protocol.
> It shows the need for #sum:ifEmpty: though
> 
> Stephan
> 
> 
> 




Re: [Pharo-dev] #sum:, #detectSum:, #sumNumbers:

2015-12-01 Thread Yuriy Tymchuk

> On 01 Dec 2015, at 15:11, Tudor Girba  wrote:
> 
> Hi,
> 
>> On Dec 1, 2015, at 12:52 PM, Sven Van Caekenberghe  wrote:
>> 
>> 
>>> On 01 Dec 2015, at 12:45, Stephan Eggermont  wrote:
>>> 
>>> On 01-12-15 11:46, Sven Van Caekenberghe wrote:
 The basic question for me is, what should
 
 #() sum
 
 return. Right now, it is an error, I would very much like that for this 
 common case the result would be 0. There is a lot of power (easy of use) 
 in a unary selector, we should not destroy that with semantics that force 
 a test before using it.
>>> 
>>> I like the error, it aligns with most of our collection protocol.
>> 
>> I hate the error, a lot ;-)
>> 
>>> It shows the need for #sum:ifEmpty: though
>> 
>> Yes, as long as #() sum == 0 
> 
> That won’t work :).

But wouldn’t it be nice to have #sum:ifEmpty:? I think that this is a nice way 
to describe summing. Otherwise I have to do ifEmpty: [ something ] ifNotEmpty: 
[ :col | col sum: … ]

Cheers.
Uko

> 
>> I want the simplest case to be simple, having a non-0 default is a special 
>> case IMHO
> 
> That is why you have sumNumbers:. We could also add Collection>>sumNumbers.
> 
> We had this discussion at length before Pharo 4, and this is when we agreed 
> to add sumNumbers: and let sum: be generic (like the name says it should be) 
> and not assume that it should work with Numbers.
> 
> Cheers,
> Doru
> 
>> 
>>> Stephan
>>> 
>>> 
>>> 
>> 
>> 
> 
> --
> www.tudorgirba.com
> 
> "Speaking louder won't make the point worthier."
> 
> 




Re: [Pharo-dev] [Pharo-users] Pharo Consortium New Gold Member: Thales

2015-11-30 Thread Yuriy Tymchuk
You can start a “Future of Pharo” discussion on a Java mailing list :)

Cheers.
Uko

> On 30 Nov 2015, at 12:27, Tudor Girba  wrote:
> 
> Great news!
> 
> For everyone not directly involved in the Consortium:
> The money collected from memberships go towards the infrastructure of Pharo 
> in form of engineering time. This is a key effort to make Pharo a sustainable 
> platform for the long run.
> 
> That is why these pieces of news are so important.
> 
> Doru
> 
> 
>> On Nov 26, 2015, at 2:42 PM, marcus.den...@inria.fr wrote:
>> 
>> The Pharo Consortium is very happy to announce that Thales 
>> has joined the Consortium as an Gold Member.
>> 
>> About
>> - Thales: https://www.thalesgroup.com
>> - Pharo Consortium: http://consortium.pharo.org
>> 
>> The goal of the Pharo Consortium is to allow companies and institutions to
>> support the ongoing development and future of Pharo.
>> 
>> Individuals can support Pharo via the Pharo Association:
>> 
>> http://association.pharo.org
>> 
> 
> --
> www.tudorgirba.com
> 
> "Value is always contextual."
> 
> 
> 
> 




Re: [Pharo-dev] learning from errors....

2015-11-24 Thread Yuriy Tymchuk
I use it when you switch classes and methods.

To avoid interrupting method browsing I set a loading morph and have an async 
task with a priority lower than UI. When there is no UI interaction the task 
gets critics and displays them. Usually the “loading” morph is there only for a 
fraction of a second, but if you are on a class with dozens of ivars and even 
more methods, then it can take a longer time.

I don’t feel that the spinning cog is important there, but also I think that it 
would be nice if we have some “in progress” indicator. Maybe there is already 
something in Bric though.

Cheers.
Uko

> On 24 Nov 2015, at 20:49, stepharo <steph...@free.fr> wrote:
> 
> Hi Yiruy 
> 
> when do you use it because I could see it in action?
> We can package the animation out of komitter and fix this ugly state pattern 
> (so naive :)).
> 
> Stef
> 
> Le 24/11/15 19:58, Yuriy Tymchuk a écrit :
>> Good catch.
>> 
>> At the time when I was developing it, the loading morph implementation was 
>> such a magic for me, that I was super happy after finishing it and forgot 
>> that I depend on Komitter.
>> 
>> Is there any alternative for that? Otherwise I will simply remove the 
>> spinning cog, I don’t feel that this is super important.
>> 
>> 
>> Uko
>> 
>>> On 24 Nov 2015, at 19:51, stepharo < 
>>> <mailto:steph...@free.fr>steph...@free.fr <mailto:steph...@free.fr>> wrote:
>>> 
>>> BTW: it would be good that QA does not refer to Komitter. And package it as 
>>> a separate project.
>>> QA should not dependent on Komitter because we can remove Komitter. And it 
>>> makes no sense!
>> 
> 



Re: [Pharo-dev] Rules

2015-11-24 Thread Yuriy Tymchuk

> On 24 Nov 2015, at 17:29, Ben Coman <b...@openinworld.com> wrote:
> 
> On Tue, Nov 24, 2015 at 11:45 PM, Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> On 24 Nov 2015, at 14:10, Ben Coman <b...@openinworld.com> wrote:
>> 
>> On Tue, Nov 24, 2015 at 4:32 PM, Nicolas Anquetil
>> <nicolas.anque...@inria.fr> wrote:
>> On 23/11/2015 22:14, stepharo wrote:
>> Le 22/11/15 22:11, Yuriy Tymchuk a écrit :
>> 
>> 
>> Hi.
>> 
>> The rule is correct. Sending a different message to super may be
>> confusing. In this case you are in “printOn:” method and you are sending
>> “printOn:nextPutAll:” to super. The idea is that you have to send
>> “printOn:nextPutAll:” to self and then either it will invoke the super one,
>> you there will be an overridden method in your current class.
>> 
>> exactly but do you expect a newbie to understand anything with the current
>> explanation?
>> I do not.
>> 
>> Rewrite super messages to self messages when both refer to same method"
>> 
>> 
>> What about :
>> 
>> 
>> Sorry :) both of these make my head hurt. I think Stef's was clearer.
>> The useful part there is that it reports the actual identifier causing
>> the problem, which makes it more obvious this is not what was meant,
>> from which even a newbie may infer the missing period.
>> 
>> "'super' should call the same selector. Send different selector to 'self'
>> then use 'super' in this one."
>> ?
>> 
>> 
>> btw, is this just commonly how super is used, or is it really bad to
>> call a different super method?
>> I'm sure I've done that on occasion.
>> 
>> 
>> It makes harder to extend your code. Because if method `a` calls method `b`,
>> then even if method `b` is not defined in your class, I can subclass and
>> redefine method b. Otherwise I have to subclass and redefine `a` although
>> `a` is fine, but I want to run my `b` and not the one of superclass.
>> 
>> 
>> Uko
>> 
>> 
> 
> Thanks Uko.  I was considering a case where my new subclass has
> redefined 'b', but I want my 'a' to avoid my 'b' and use the
> superclass one.
> 
> (Sorry I can't remember the use case)
> cheers -ben

Hi,

no rule is perfect, and there are definitely cases that work the other way 
around. But we try to focus on the best practices.

Also I think this influences the maintainability of code. Because in the 
suggested by the rule, you have method `a` with one responsibility and it uses 
method `b` with another responsibility. Now when you call method `b` from the 
super class, all logic becomes more complicated.

Uko

> 
> 
>> cheers -ben
>> 
>> 
>> or:
>> 
>> "should not send a different message to super (send different message to
>> self and then call super from it)"
>> ?
>> 
>> 
>> 
>> nicolas
>> 
>> 
>> Sucks
>> 
>> 
>> Secondly, there is an issue with “sends unkown selector”. I’ve also
>> noticed it recently. I think that it happens because the rule has a special
>> cace, and I messed up something with refresh. This is the next thing on my
>> TODO list.
>> 
>> Cheers.
>> Uko
>> 
>> 
>> On 22 Nov 2015, at 16:33, Marcus Denker <marcus.den...@inria.fr> wrote:
>> 
>> 
>> On 22 Nov 2015, at 12:20, stepharo <steph...@free.fr> wrote:
>> 
>> With the following (broken) definition
>> 
>> 
>> : aStream
>>  super printOn: aStream
>>  aStream nextPutAll: '(', faces printString , ')'
>> 
>> I got this strange rule:
>> 
>>  Rewrite super messages to self messages when both refer to same
>> method
>> 
>> I do not get it and it looks really suspicious to me.
>> Any suggestions?
>> 
>> 
>> The rule is meant to catch the case when when “super” can be “self” as
>> there is no #printOn:
>> defined in the class.
>> 
>> But here it looks like it is wrong: it would be an infinite loop.
>> 
>> I think it could be related to this other bug: I have seen that the
>> rules are not correctly updated
>> when you add methods. (I wanted to add an issue for that but did not
>> yet). E.g. I often get
>> a “sends unkown selector” for self sends and then I check —> method is
>> there, I just added it!
>> 
>> So here this means that you added a new printOn:, the rules do not
>> update, and it thinks
>> that there is no printOn:.
>> 
>> So the real bug is that added methods need to be taken into account by
>> QA.
>> 
>>   Marcus
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> --
>> Nicolas Anquetil
>> RMod team -- Inria Lille



Re: [Pharo-dev] learning from errors....

2015-11-24 Thread Yuriy Tymchuk
Good catch.

At the time when I was developing it, the loading morph implementation was such 
a magic for me, that I was super happy after finishing it and forgot that I 
depend on Komitter.

Is there any alternative for that? Otherwise I will simply remove the spinning 
cog, I don’t feel that this is super important.


Uko

> On 24 Nov 2015, at 19:51, stepharo  wrote:
> 
> BTW: it would be good that QA does not refer to Komitter. And package it as a 
> separate project.
> QA should not dependent on Komitter because we can remove Komitter. And it 
> makes no sense!



Re: [Pharo-dev] Rules

2015-11-24 Thread Yuriy Tymchuk
Essentially there should be 3 things:

1) clear name like: 'super' should receiver the same message (or similar).
2) good rationale explaining that you have to send the message to self and then 
either override it or let it run from supper, as this allows better flexibility.
3) make an automate fixing (as it is trivial). It should be doable by rewrite 
rules I suppose, but what annoys me is that when you use them, you don’t have 
the matched string, nor the interval, so you cannot highlight it…

Anyway, it is on my todolist.

Cheers.
Uko

> On 24 Nov 2015, at 09:32, Nicolas Anquetil <nicolas.anque...@inria.fr> wrote:
> 
> 
> 
> On 23/11/2015 22:14, stepharo wrote:
>> 
>> 
>> Le 22/11/15 22:11, Yuriy Tymchuk a écrit :
>>> Hi.
>>> 
>>> The rule is correct. Sending a different message to super may be confusing. 
>>> In this case you are in “printOn:” method and you are sending 
>>> “printOn:nextPutAll:” to super. The idea is that you have to send 
>>> “printOn:nextPutAll:” to self and then either it will invoke the super one, 
>>> you there will be an overridden method in your current class.
>> 
>> exactly but do you expect a newbie to understand anything with the current 
>> explanation?
>> I do not.
>> 
>> "
>> 
>> Rewrite super messages to self messages when both refer to same method"
> What about :
> "'super' should call the same selector. Send different selector to 'self' 
> then use 'super' in this one."
> ?
> 
> or:
> 
> "should not send a different message to super (send different message to self 
> and then call super from it)"
> ?
> 
> 
> 
> nicolas
>> 
>> Sucks
>> 
>>> 
>>> Secondly, there is an issue with “sends unkown selector”. I’ve also noticed 
>>> it recently. I think that it happens because the rule has a special cace, 
>>> and I messed up something with refresh. This is the next thing on my TODO 
>>> list.
>>> 
>>> Cheers.
>>> Uko
>>> 
>>> 
>>>> On 22 Nov 2015, at 16:33, Marcus Denker <marcus.den...@inria.fr> wrote:
>>>> 
>>>> 
>>>>> On 22 Nov 2015, at 12:20, stepharo <steph...@free.fr> wrote:
>>>>> 
>>>>> With the following (broken) definition
>>>>> 
>>>>> 
>>>>> : aStream
>>>>>   super printOn: aStream
>>>>>   aStream nextPutAll: '(', faces printString , ')'
>>>>> 
>>>>> I got this strange rule:
>>>>> 
>>>>>   Rewrite super messages to self messages when both refer to same method
>>>>> 
>>>>> I do not get it and it looks really suspicious to me.
>>>>> Any suggestions?
>>>> The rule is meant to catch the case when when “super” can be “self” as 
>>>> there is no #printOn:
>>>> defined in the class.
>>>> 
>>>> But here it looks like it is wrong: it would be an infinite loop.
>>>> 
>>>> I think it could be related to this other bug: I have seen that the rules 
>>>> are not correctly updated
>>>> when you add methods. (I wanted to add an issue for that but did not yet). 
>>>> E.g. I often get
>>>> a “sends unkown selector” for self sends and then I check —> method is 
>>>> there, I just added it!
>>>> 
>>>> So here this means that you added a new printOn:, the rules do not update, 
>>>> and it thinks
>>>> that there is no printOn:.
>>>> 
>>>> So the real bug is that added methods need to be taken into account by QA.
>>>> 
>>>>Marcus
>>> 
>>> 
>> 
>> 
> 
> -- 
> Nicolas Anquetil
> RMod team -- Inria Lille



Re: [Pharo-dev] Rules

2015-11-24 Thread Yuriy Tymchuk

> On 24 Nov 2015, at 14:10, Ben Coman <b...@openinworld.com> wrote:
> 
> On Tue, Nov 24, 2015 at 4:32 PM, Nicolas Anquetil
> <nicolas.anque...@inria.fr <mailto:nicolas.anque...@inria.fr>> wrote:
>> 
>> 
>> On 23/11/2015 22:14, stepharo wrote:
>>> 
>>> 
>>> 
>>> Le 22/11/15 22:11, Yuriy Tymchuk a écrit :
>>>> 
>>>> Hi.
>>>> 
>>>> The rule is correct. Sending a different message to super may be
>>>> confusing. In this case you are in “printOn:” method and you are sending
>>>> “printOn:nextPutAll:” to super. The idea is that you have to send
>>>> “printOn:nextPutAll:” to self and then either it will invoke the super one,
>>>> you there will be an overridden method in your current class.
>>> 
>>> 
>>> exactly but do you expect a newbie to understand anything with the current
>>> explanation?
>>> I do not.
>>> 
>>> "
>>> 
>>> Rewrite super messages to self messages when both refer to same method"
>> 
>> What about :
> 
> Sorry :) both of these make my head hurt. I think Stef's was clearer.
> The useful part there is that it reports the actual identifier causing
> the problem, which makes it more obvious this is not what was meant,
> from which even a newbie may infer the missing period.
> 
>> "'super' should call the same selector. Send different selector to 'self'
>> then use 'super' in this one."
>> ?
> 
> btw, is this just commonly how super is used, or is it really bad to
> call a different super method?
> I'm sure I've done that on occasion.

It makes harder to extend your code. Because if method `a` calls method `b`, 
then even if method `b` is not defined in your class, I can subclass and 
redefine method b. Otherwise I have to subclass and redefine `a` although `a` 
is fine, but I want to run my `b` and not the one of superclass.


Uko

> 
> cheers -ben
> 
>> 
>> or:
>> 
>> "should not send a different message to super (send different message to
>> self and then call super from it)"
>> ?
>> 
>> 
>> 
>> nicolas
>> 
>>> 
>>> Sucks
>>> 
>>>> 
>>>> Secondly, there is an issue with “sends unkown selector”. I’ve also
>>>> noticed it recently. I think that it happens because the rule has a special
>>>> cace, and I messed up something with refresh. This is the next thing on my
>>>> TODO list.
>>>> 
>>>> Cheers.
>>>> Uko
>>>> 
>>>> 
>>>>> On 22 Nov 2015, at 16:33, Marcus Denker <marcus.den...@inria.fr> wrote:
>>>>> 
>>>>> 
>>>>>> On 22 Nov 2015, at 12:20, stepharo <steph...@free.fr> wrote:
>>>>>> 
>>>>>> With the following (broken) definition
>>>>>> 
>>>>>> 
>>>>>> : aStream
>>>>>>   super printOn: aStream
>>>>>>   aStream nextPutAll: '(', faces printString , ')'
>>>>>> 
>>>>>> I got this strange rule:
>>>>>> 
>>>>>>   Rewrite super messages to self messages when both refer to same
>>>>>> method
>>>>>> 
>>>>>> I do not get it and it looks really suspicious to me.
>>>>>> Any suggestions?
>>>>> 
>>>>> The rule is meant to catch the case when when “super” can be “self” as
>>>>> there is no #printOn:
>>>>> defined in the class.
>>>>> 
>>>>> But here it looks like it is wrong: it would be an infinite loop.
>>>>> 
>>>>> I think it could be related to this other bug: I have seen that the
>>>>> rules are not correctly updated
>>>>> when you add methods. (I wanted to add an issue for that but did not
>>>>> yet). E.g. I often get
>>>>> a “sends unkown selector” for self sends and then I check —> method is
>>>>> there, I just added it!
>>>>> 
>>>>> So here this means that you added a new printOn:, the rules do not
>>>>> update, and it thinks
>>>>> that there is no printOn:.
>>>>> 
>>>>> So the real bug is that added methods need to be taken into account by
>>>>> QA.
>>>>> 
>>>>>Marcus
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> --
>> Nicolas Anquetil
>> RMod team -- Inria Lille



Re: [Pharo-dev] Metacello load script won't update the configuration

2015-11-23 Thread Yuriy Tymchuk
Then this means that the latest version of Metacello is not in Pharo5 :(. I’m 
trying to make it possible for people to load the project on out of the box 
pharo.

Cheers.
Uko

> On 23 Nov 2015, at 19:20, Dale Henrichs <dale.henri...@gemtalksystems.com> 
> wrote:
> 
> That is because you aren't using the latest version of Metacello  one of 
> the "recent changes" (in the last year) was to allow the "chaining" of the 
> primary commands like get and load ...
> 
> Dale
> 
> On 11/23/2015 03:04 AM, Yuriy Tymchuk wrote:
>> Hi,
>> 
>> when I’m trying to do this now, adding a `get` command causes “project, 
>> baseline, or configuration not specified” error. Is it a but in metacello, 
>> or the API changed?
>> 
>> Cheers.
>> Uko
>> 
>>> On 14 Sep 2015, at 23:10, Dale Henrichs < 
>>> <mailto:dale.henri...@gemtalksystems.com>dale.henri...@gemtalksystems.com 
>>> <mailto:dale.henri...@gemtalksystems.com>> wrote:
>>> 
>>> Uko,
>>> 
>>> The `get` command is used to load a fresh copy of the ConfigurationOf or 
>>> BaselineOf so the following should do the trick:
>>> 
>>> Metacello new
>>>   smalltalkhubUser: 'Pharo'
>>>   project: 'MetaRepoForPharo40';
>>>   configuration: 'QualityAssistant';
>>>   get;
>>>   load
>>> 
>>> 
>>> I make the loading of the BaselineOf and ConfigurationOf explicit so that 
>>> the developer can control when and if they want a new copy of the 
>>> BaselineOf or ConfigurationOf. 
>>> 
>>> For github urls like github://project/user/project 
>>> , the `get` command causes the system to 
>>> invalidate the cache directory so that on the next load, the github cache 
>>> for the project is freshly downloaded so that you get the latest version of 
>>> the BaselineOf ...
>>> 
>>> Dale
>>> 
>>> On 09/14/2015 01:49 PM, Yuriy Tymchuk wrote:
>>>> Hi,
>>>> 
>>>> when you use a script like 
>>>> 
>>>> Metacello new
>>>>   smalltalkhubUser: 'Pharo'
>>>>   project: 'MetaRepoForPharo40';
>>>>   configuration: 'QualityAssistant';
>>>>   load
>>>> 
>>>> and you already have the configuration package loaded, the script is not 
>>>> updating the configuration itself. As the result you cannot update to a 
>>>> newer version. Is there a special expression that has to be used to update 
>>>> the configuration package? If not, maybe it does make sense to update the 
>>>> configuration before loading it?
>>>> 
>>>> Cheers!
>>>> Uko
>>> 
>> 
> 



Re: [Pharo-dev] Refactoring and traits…

2015-11-23 Thread Yuriy Tymchuk
But is there an issue or not? Because I was not able to find it. If there is no 
issue I will create one.

Cheers.
Uko


> On 21 Nov 2015, at 12:15, stepharo <steph...@free.fr> wrote:
> 
> 
> 
> Le 20/11/15 15:01, Yuriy Tymchuk a écrit :
>> Hi guys,
>> 
>> is it a known issue that if you are refactoring something (eg. doing a class 
>> rename) and some changes should happen in a method which comes from trait, 
>> then new methods are compiled in concrete classes instead of changing the 
>> trait method?
> 
> Yes the problem is just money.
> 
> Stef
>> 
>> Cheers.
>> Uko
>> 
> 
> 




Re: [Pharo-dev] Digest from slack to the mailing list?

2015-11-23 Thread Yuriy Tymchuk
The problem is, that it is not that easy to create a “digest” from Slack, as 
there is no kind of grouping. Either you have to detect similar words in 
discussion, or you have to simply export everything. I don’t know whether it 
makes sense to just compose a huge email of all discussions, but we can try to 
do that.

Cheers.
Uko

> On 23 Nov 2015, at 00:21, EuanM  wrote:
> 
> I agree - if we can have each 24 hours of chat archived to somewhere
> that provides a free-text search, that would be very good.
> 
> Up until now, I've been grabbing, editting and posting chats I find of
> interest and importance to me.  And it seems to lend itself to design
> discussions.  What it's not very good at, atm, is discussion
> threading.  It would be great to be able to set your typing as
> belonging to a thread., so that when it get sucked out and archived
> that the threads were segregated.
> 
> Does someone have a server that could receive a text dump of all
> recent Slack messages every 12 (or 24, or 6) hours, and then make it
> available for indexing by Google et al, and querying (via the search
> engines) by our dev base?
> 
> 
> 
> 
> 
> On 22 November 2015 at 13:57, Dimitris Chloupis  wrote:
>> Just to clear something up , because I see people in slack saying goodbye,
>> or "I cant reply right now I have something to do" . Slack is not just a
>> real time chat, it keeps messages inside a history of 10 thousand messages.
>> So that means you can log in Slack at any time and not lose a message. There
>> is no reason for you to be online all time, no reason to say goodbye,
>> goodmorning , goodafternoon. You can come and go as you please the exact
>> same way as the mailing list.
>> 
>> The problem arises when we exceed 10k messages, the old ones get lost and I
>> think having a place to store them is a good idea.
>> 
>> Also what is important is in the eye of the beholder, for example I dont
>> care about any discussion about web development , its just does not interest
>> me or database coding or many other things. I have learned to filter out the
>> messages I dont care about in the mailing list and just reject them. Slack
>> is same story, I quickly glance through its history and I can search the
>> messages that interest me using the search bar , I can star messages that I
>> want to keep, and I can comment on existing messages / code snippets which
>> create a thread about that message.
>> 
>> In the end its impossible to keep the community in one place but to have a
>> central hub that collects all the little gems can be quite useful.
>> 
>> On Sun, Nov 22, 2015 at 3:46 PM stepharo  wrote:
>>> 
>>> Yes this would be good.
>>> People should understand that important discussions should be via the
>>> mailing-list.
>>> Emails are good because you can consume them the way you want.
>>> I simply cannot be connected all the time. So emails are good because I
>>> can process them
>>> when I decide.
>>> Slack is good for more interactive session around debugger and things
>>> like that.
>>> 
>>> Stef
>>> 
>>> 
>>> Le 21/11/15 18:05, Stephan Eggermont a écrit :
 Should we have a digest from slack to a mailing list?
 We are already losing messages
 
 Stephan
 
 
 
>>> 
>>> 
>> 
> 




Re: [Pharo-dev] Metacello load script won't update the configuration

2015-11-23 Thread Yuriy Tymchuk
Hi,

when I’m trying to do this now, adding a `get` command causes “project, 
baseline, or configuration not specified” error. Is it a but in metacello, or 
the API changed?

Cheers.
Uko

> On 14 Sep 2015, at 23:10, Dale Henrichs <dale.henri...@gemtalksystems.com> 
> wrote:
> 
> Uko,
> 
> The `get` command is used to load a fresh copy of the ConfigurationOf or 
> BaselineOf so the following should do the trick:
> 
> Metacello new
>   smalltalkhubUser: 'Pharo'
>   project: 'MetaRepoForPharo40';
>   configuration: 'QualityAssistant';
>   get;
>   load
> 
> 
> I make the loading of the BaselineOf and ConfigurationOf explicit so that the 
> developer can control when and if they want a new copy of the BaselineOf or 
> ConfigurationOf. 
> 
> For github urls like github://project/user/project, the `get` command causes 
> the system to invalidate the cache directory so that on the next load, the 
> github cache for the project is freshly downloaded so that you get the latest 
> version of the BaselineOf ...
> 
> Dale
> 
> On 09/14/2015 01:49 PM, Yuriy Tymchuk wrote:
>> Hi,
>> 
>> when you use a script like 
>> 
>> Metacello new
>>   smalltalkhubUser: 'Pharo'
>>   project: 'MetaRepoForPharo40';
>>   configuration: 'QualityAssistant';
>>   load
>> 
>> and you already have the configuration package loaded, the script is not 
>> updating the configuration itself. As the result you cannot update to a 
>> newer version. Is there a special expression that has to be used to update 
>> the configuration package? If not, maybe it does make sense to update the 
>> configuration before loading it?
>> 
>> Cheers!
>> Uko
> 



Re: [Pharo-dev] Rules

2015-11-23 Thread Yuriy Tymchuk
Yes, thanks Stef, it’s really important to report bad explanation, because I 
work with rules all the time and so know then by heart. I will improve this 
one, also let me know if there are more strange rationales.

Cheers,
Uko


> On 23 Nov 2015, at 22:20, stepharo <steph...@free.fr> wrote:
> 
> yuriy could you improve the explanation of the rule?
> 
> 
> Le 22/11/15 22:11, Yuriy Tymchuk a écrit :
>> Hi.
>> 
>> The rule is correct. Sending a different message to super may be confusing. 
>> In this case you are in “printOn:” method and you are sending 
>> “printOn:nextPutAll:” to super. The idea is that you have to send 
>> “printOn:nextPutAll:” to self and then either it will invoke the super one, 
>> you there will be an overridden method in your current class.
>> 
>> Secondly, there is an issue with “sends unkown selector”. I’ve also noticed 
>> it recently. I think that it happens because the rule has a special cace, 
>> and I messed up something with refresh. This is the next thing on my TODO 
>> list.
>> 
>> Cheers.
>> Uko
>> 
>> 
>>> On 22 Nov 2015, at 16:33, Marcus Denker <marcus.den...@inria.fr> wrote:
>>> 
>>> 
>>>> On 22 Nov 2015, at 12:20, stepharo <steph...@free.fr> wrote:
>>>> 
>>>> With the following (broken) definition
>>>> 
>>>> 
>>>> : aStream
>>>>   super printOn: aStream
>>>>   aStream nextPutAll: '(', faces printString , ')'
>>>> 
>>>> I got this strange rule:
>>>> 
>>>>   Rewrite super messages to self messages when both refer to same method
>>>> 
>>>> I do not get it and it looks really suspicious to me.
>>>> Any suggestions?
>>> The rule is meant to catch the case when when “super” can be “self” as 
>>> there is no #printOn:
>>> defined in the class.
>>> 
>>> But here it looks like it is wrong: it would be an infinite loop.
>>> 
>>> I think it could be related to this other bug: I have seen that the rules 
>>> are not correctly updated
>>> when you add methods. (I wanted to add an issue for that but did not yet). 
>>> E.g. I often get
>>> a “sends unkown selector” for self sends and then I check —> method is 
>>> there, I just added it!
>>> 
>>> So here this means that you added a new printOn:, the rules do not update, 
>>> and it thinks
>>> that there is no printOn:.
>>> 
>>> So the real bug is that added methods need to be taken into account by QA.
>>> 
>>> Marcus
>> 
>> 
> 
> 




Re: [Pharo-dev] Rules

2015-11-22 Thread Yuriy Tymchuk
Hi.

The rule is correct. Sending a different message to super may be confusing. In 
this case you are in “printOn:” method and you are sending 
“printOn:nextPutAll:” to super. The idea is that you have to send 
“printOn:nextPutAll:” to self and then either it will invoke the super one, you 
there will be an overridden method in your current class.

Secondly, there is an issue with “sends unkown selector”. I’ve also noticed it 
recently. I think that it happens because the rule has a special cace, and I 
messed up something with refresh. This is the next thing on my TODO list.

Cheers.
Uko


> On 22 Nov 2015, at 16:33, Marcus Denker  wrote:
> 
> 
>> On 22 Nov 2015, at 12:20, stepharo  wrote:
>> 
>> With the following (broken) definition
>> 
>> 
>> : aStream
>>   super printOn: aStream
>>   aStream nextPutAll: '(', faces printString , ')'
>> 
>> I got this strange rule:
>> 
>>   Rewrite super messages to self messages when both refer to same method
>> 
>> I do not get it and it looks really suspicious to me.
>> Any suggestions?
> 
> The rule is meant to catch the case when when “super” can be “self” as there 
> is no #printOn: 
> defined in the class.
> 
> But here it looks like it is wrong: it would be an infinite loop.
> 
> I think it could be related to this other bug: I have seen that the rules are 
> not correctly updated
> when you add methods. (I wanted to add an issue for that but did not yet). 
> E.g. I often get
> a “sends unkown selector” for self sends and then I check —> method is there, 
> I just added it!
> 
> So here this means that you added a new printOn:, the rules do not update, 
> and it thinks
> that there is no printOn:.
> 
> So the real bug is that added methods need to be taken into account by QA.
> 
>   Marcus




[Pharo-dev] Refactoring and traits…

2015-11-20 Thread Yuriy Tymchuk
Hi guys,

is it a known issue that if you are refactoring something (eg. doing a class 
rename) and some changes should happen in a method which comes from trait, then 
new methods are compiled in concrete classes instead of changing the trait 
method?

Cheers.
Uko


[Pharo-dev] Recovering _lost_ changes

2015-11-20 Thread Yuriy Tymchuk
Hi,

is Epicea integrated already?

If so, is it possible to apply all the changes to code (without doits) since 
the last image save? I think that it should be really helpful because searching 
for changes and cherry-picking them is a pain.

Later this can be improved, so before the changes are applied you see the 
condensed diff.

Cheers.
Uko


Re: [Pharo-dev] Recovering _lost_ changes

2015-11-20 Thread Yuriy Tymchuk

> On 20 Nov 2015, at 17:52, Skip Lentz <skip.le...@inria.fr> wrote:
> 
> Hi,
> 
>> On Nov 20, 2015, at 5:27 PM, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
>> is Epicea integrated already?
> 
> No, not yet I think.
> 
>> If so, is it possible to apply all the changes to code (without doits) since 
>> the last image save? I think that it should be really helpful because 
>> searching for changes and cherry-picking them is a pain.
> 
> You can see the lost changes in the ‘Old sessions’ browser (in the World 
> menu). You have to then open the appropriate session, the timestamp shows 
> when they were last modified. Open the one when you crashed the image, or 
> whatever happened. This will open the log browser.

I cannot find ‘Old sessions’. Where is it? Is it something new, or it’s “Tools 
> Recover lost changes…" thing that was always there?

Cheers.
Uko

> 
> As of now you have to manually select all events (using shift you can select 
> a range of events in the log).Then you have to redo them in one go by right 
> clicking the selection.
> Double check the changes for the time being as the redoing and undoing 
> functionality is still being tested. For example, right now you will get an 
> error when you redo (or undo) a class comment change. I will try to fix this 
> bug right now.
> 
>> Later this can be improved, so before the changes are applied you see the 
>> condensed diff.
> 
> Yea that would be nice.. Also functionality for in the special case of 
> recovering changes should really be there..
> 
> Skip




Re: [Pharo-dev] Recovering _lost_ changes

2015-11-20 Thread Yuriy Tymchuk
That was my point. If we had a solid model of changes (and I expect epic to be 
like that), than I believe we could simply select the real changes since last 
save and apply them.

Maybe some time :)

Cheers.
Uko


> On 20 Nov 2015, at 23:11, Nicolai Hess <nicolaih...@gmail.com> wrote:
> 
> 
> 
> 2015-11-20 23:01 GMT+01:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>>:
> 
> > On 20 Nov 2015, at 17:52, Skip Lentz <skip.le...@inria.fr 
> > <mailto:skip.le...@inria.fr>> wrote:
> >
> > Hi,
> >
> >> On Nov 20, 2015, at 5:27 PM, Yuriy Tymchuk <yuriy.tymc...@me.com 
> >> <mailto:yuriy.tymc...@me.com>> wrote:
> >> is Epicea integrated already?
> >
> > No, not yet I think.
> >
> >> If so, is it possible to apply all the changes to code (without doits) 
> >> since the last image save? I think that it should be really helpful 
> >> because searching for changes and cherry-picking them is a pain.
> >
> > You can see the lost changes in the ‘Old sessions’ browser (in the World 
> > menu). You have to then open the appropriate session, the timestamp shows 
> > when they were last modified. Open the one when you crashed the image, or 
> > whatever happened. This will open the log browser.
> 
> I cannot find ‘Old sessions’. Where is it? Is it something new, or it’s 
> “Tools > Recover lost changes…" thing that was always there?
> 
> Yes, “Tools > Recover lost changes…" the session browser is gone. It was just 
> a list of last save timestamp. Now the Recover lost changes
> just shows *all* changes. But beware, recovering from this changes browser 
> does not always work - some times the order is wrong :( 
>  
> 
> Cheers.
> Uko
> 
> >
> > As of now you have to manually select all events (using shift you can 
> > select a range of events in the log).Then you have to redo them in one go 
> > by right clicking the selection.
> > Double check the changes for the time being as the redoing and undoing 
> > functionality is still being tested. For example, right now you will get an 
> > error when you redo (or undo) a class comment change. I will try to fix 
> > this bug right now.
> >
> >> Later this can be improved, so before the changes are applied you see the 
> >> condensed diff.
> >
> > Yea that would be nice.. Also functionality for in the special case of 
> > recovering changes should really be there..
> >
> > Skip



Re: [Pharo-dev] Where are ConfigurationOfRenraku and ConfigurationOfQualityAssistant?

2015-11-19 Thread Yuriy Tymchuk
Hi, both configuration can be found here: 
http://smalltalkhub.com/#!/~YuriyTymchuk/Configuration 


Also ConfigurationOfQualityAssistant is in pharo4 and pharo 5 meta repos.

Cheers.
Uko

> On 19 Nov 2015, at 19:14, Pavel Krivanek  wrote:
> 
> Hi, 
> 
> where are placed the current packages ConfigurationOfRenraku and 
> ConfigurationOfQualityAssistant? 
> 
> Cheers,
> -- Pavel



Re: [Pharo-dev] Where are ConfigurationOfRenraku and ConfigurationOfQualityAssistant?

2015-11-19 Thread Yuriy Tymchuk
Thanks Pavel.

I forgot to check if that exists. Fixing now.

Cheers!
Uko

> On 19 Nov 2015, at 19:46, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
> 
> Thank you,
> 
> one error: in BaselineOfQualityAssistant>>#removeRenrakuCrap you have this 
> expression:
> 
>   #QualityAssistant asPackage mcWorkingCopy modified: false
> 
> This expects that QualityAssistant is already present in the image so the 
> configuration crashes on a blank image. 
> 
> Cheers,
> -- Pavel
> 
> 2015-11-19 19:24 GMT+01:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>>:
> Hi, both configuration can be found here: 
> http://smalltalkhub.com/#!/~YuriyTymchuk/Configuration 
> <http://smalltalkhub.com/#!/~YuriyTymchuk/Configuration>
> 
> Also ConfigurationOfQualityAssistant is in pharo4 and pharo 5 meta repos.
> 
> Cheers.
> Uko
> 
>> On 19 Nov 2015, at 19:14, Pavel Krivanek <pavel.kriva...@gmail.com 
>> <mailto:pavel.kriva...@gmail.com>> wrote:
>> 
>> Hi, 
>> 
>> where are placed the current packages ConfigurationOfRenraku and 
>> ConfigurationOfQualityAssistant? 
>> 
>> Cheers,
>> -- Pavel
> 
> 



[Pharo-dev] Help me to understand where I screwed up QA…

2015-11-16 Thread Yuriy Tymchuk
Hi everyone,

this is a weird issue that wasn’t there when I was developing the feature.

If inspector plugin is enabled in prefs and you inspect a method (e.g. 
Object>>#asString) you get “MessageNotUnderstood: SmallInteger>>notEmpty” on 
“(critics := self critics) notEmpty”. If you inspect critics temporary it’s a 
Set, if you restart in debugger and step over it works well, but for some 
reason initially notEmpty is sent to some int. Any idea what is the issue?

Cheers,
Uko


Re: [Pharo-dev] Help me to understand where I screwed up QA…

2015-11-16 Thread Yuriy Tymchuk
Maybe my VM is rusty :)

We need to put pharo launcher on Appstore, so it will ask for updates 
automatically.

Thanks.
Uko


> On 16 Nov 2015, at 15:48, Marcus Denker <marcus.den...@inria.fr> wrote:
> 
> I can not reproduce it here (with a recent VM).
> 
>   Marcus
> 
>> On 16 Nov 2015, at 11:40, Eliot Miranda <eliot.mira...@gmail.com> wrote:
>> 
>> Hi Yuriy,
>> 
>>   this looks like an old VM bug.  Are you sure you're using the most 
>> up-to-date VM?  
>> 
>> _,,,^..^,,,_ (phone)
>> 
>>> On Nov 16, 2015, at 6:02 AM, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
>>> 
>>> Hi everyone,
>>> 
>>> this is a weird issue that wasn’t there when I was developing the feature.
>>> 
>>> If inspector plugin is enabled in prefs and you inspect a method (e.g. 
>>> Object>>#asString) you get “MessageNotUnderstood: SmallInteger>>notEmpty” 
>>> on “(critics := self critics) notEmpty”. If you inspect critics temporary 
>>> it’s a Set, if you restart in debugger and step over it works well, but for 
>>> some reason initially notEmpty is sent to some int. Any idea what is the 
>>> issue?
>>> 
>>> Cheers,
>>> Uko
>> 
> 
> 




Re: [Pharo-dev] Help me to understand where I screwed up QA…

2015-11-16 Thread Yuriy Tymchuk
I have already installed the newest one, and it works.

Thank you for helping me out!

> On 16 Nov 2015, at 18:40, Eliot Miranda <eliot.mira...@gmail.com> wrote:
> 
> 
> 
> On Mon, Nov 16, 2015 at 6:54 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>> wrote:
> Maybe my VM is rusty :)
> 
> If you invoke it on the command line with the -version flag it'll tell you 
> what version it is and when i was compiled.  Would you mind checking?
>  
> 
> We need to put pharo launcher on Appstore, so it will ask for updates 
> automatically.
> 
> Thanks.
> Uko
> 
> 
> > On 16 Nov 2015, at 15:48, Marcus Denker <marcus.den...@inria.fr 
> > <mailto:marcus.den...@inria.fr>> wrote:
> >
> > I can not reproduce it here (with a recent VM).
> >
> >   Marcus
> >
> >> On 16 Nov 2015, at 11:40, Eliot Miranda <eliot.mira...@gmail.com 
> >> <mailto:eliot.mira...@gmail.com>> wrote:
> >>
> >> Hi Yuriy,
> >>
> >>   this looks like an old VM bug.  Are you sure you're using the most 
> >> up-to-date VM?
> >>
> >> _,,,^..^,,,_ (phone)
> >>
> >>> On Nov 16, 2015, at 6:02 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
> >>> <mailto:yuriy.tymc...@me.com>> wrote:
> >>>
> >>> Hi everyone,
> >>>
> >>> this is a weird issue that wasn’t there when I was developing the feature.
> >>>
> >>> If inspector plugin is enabled in prefs and you inspect a method (e.g. 
> >>> Object>>#asString) you get “MessageNotUnderstood: SmallInteger>>notEmpty” 
> >>> on “(critics := self critics) notEmpty”. If you inspect critics temporary 
> >>> it’s a Set, if you restart in debugger and step over it works well, but 
> >>> for some reason initially notEmpty is sent to some int. Any idea what is 
> >>> the issue?
> >>>
> >>> Cheers,
> >>> Uko
> >>
> >
> >
> 
> 
> 
> 
> 
> -- 
> _,,,^..^,,,_
> best, Eliot



Re: [Pharo-dev] Changing class template

2015-11-09 Thread Yuriy Tymchuk
Ok, maybe for students it’s bad, but for myself I’d like something like that :)

Uko

> On 09 Nov 2015, at 10:06, Peter Uhnák <i.uh...@gmail.com> wrote:
> 
> > Power users use the template directly (saves you one, two, three mouse 
> > clicks and a few mouse mouvements)
> 
> +1
> 
> From student/beginner perspective I would argue that it is very valuable for 
> them to see that creating class is just a regular message send and not some 
> special syntax/magic. Adding UI would alienate them from this 
> knowledge/revelation.
> 
> On Mon, Nov 9, 2015 at 9:47 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>> wrote:
> 
>> On 09 Nov 2015, at 06:50, Thierry Goubier <thierry.goub...@gmail.com 
>> <mailto:thierry.goub...@gmail.com>> wrote:
>> 
>> Le 09/11/2015 01:33, Yuriy Tymchuk a écrit :
>>> 
>>>> On 08 Nov 2015, at 20:14, Thierry Goubier
>>>> <thierry.goub...@gmail.com <mailto:thierry.goub...@gmail.com>> wrote:
>>>> 
>>>> Stef,
>>>> 
>>>> I don't understand. I have never set a category in a class creation
>>>> template for the last three years.
>>>> 
>>>> When I teach using Pharo, I allways tell students to create a
>>>> package, select the package in the browser and add a class there.
>>>> 
>>>> Changing #category: for #package: (which is what the fix will be, I
>>>> bet) is useless.
>>> 
>>> Because what written there is not a package, it’s a package + tag. So
>>> it would make sense to have
>>> 
>>> … package: ‘PacakgeName’ tag: ’TagName’
>> 
>> Trying to make it simpler for new students, I see :(
> 
> Exactly, because you say: “each class has in a package and can have a tag, 
> and here you can define that”. Otherwise you have to explain that category is 
> actually a magical thing that splits into a package and a tag by following 
> some rules.
> 
>> 
>>> 
>>> But what I’d really enjoy is to have a dedicated UI there. Because we
>>> really use class templates as templates. 90% of a time I just change
>>> the Superclass, Class and instance variables.
>> 
>> As I said.
>> 
>>> And 9% more I also add
>>> a tag to the package.
>> 
>> What? You don't do a 'add a tag to a package' operation? You create tags by 
>> side effect of a new class creation?
> 
> Of course.
> 
>> 
>> (Your numbers don't add up to 100%. What is the one percent left for then? 
>> ;))
> 
> I guess Traits.
> 
>> 
>>> So why we cannot have a UI with text fields for
>>> this values? Later it can be fancier e.g. classVariables are hidden
>>> by default and can be expanded on demand or if the are defined (I
>>> don’t like explaining class vars to people and I don’t like them from
>>> design point of view). Then also superclass field can have
>>> autocompletion only from the defined classes prioritizing the ones
>>> from the same package. Instance variables can be converted to slots
>>> really fast by lookup, etc…
>> 
>> Look, you're making even more complex everytime. But you're welcome to try; 
>> such a GUI can be added, yes, especially behind the add Class menu item 
>> instead of reusing the full template.
>> 
>> A wizard for class creation :)
>> 
>> Note that on current Nautilus, if you use add Class in the menu, opening the 
>> menu will auto-select what is behind the mouse click. And the template is 
>> prefilled, which makes it a bit more complex to create a new clas on Object.
> 
> It’s not about creation, it’s about working with classes. 
> #compile:classified: is not present in the method template because no one 
> will never change it. Similarly I’ve never ever changed the `subclass:` 
> keyword, so why should it be editable? I’ve never changed 
> `instanceVariableNames:` keyword. Probably the only thing I’ve changed was 
> adding `uses:` when working with traits. But again, why do I have to recall 
> whether it’s called `uses:` or `using:` and type it between `subclass:` and 
> `instanceVariableNames:`? Wy I cannot just press a button “use traits” and a 
> field will appear where I have to specify traits.
> 
> 
>> 
>>> I mean, it’s nice that we can subclass by sending a message, but we
>>> don’t develop methods in a template like:
>>> 
>>> compile: ‘methodCode’ classified: ‘protocolName’
>> 
>> I do. When the browser is broken, it's sometime the only way left :) Or 
>> editing Smalltalk code 

Re: [Pharo-dev] Changing class template

2015-11-09 Thread Yuriy Tymchuk

> On 09 Nov 2015, at 06:50, Thierry Goubier <thierry.goub...@gmail.com> wrote:
> 
> Le 09/11/2015 01:33, Yuriy Tymchuk a écrit :
>> 
>>> On 08 Nov 2015, at 20:14, Thierry Goubier
>>> <thierry.goub...@gmail.com> wrote:
>>> 
>>> Stef,
>>> 
>>> I don't understand. I have never set a category in a class creation
>>> template for the last three years.
>>> 
>>> When I teach using Pharo, I allways tell students to create a
>>> package, select the package in the browser and add a class there.
>>> 
>>> Changing #category: for #package: (which is what the fix will be, I
>>> bet) is useless.
>> 
>> Because what written there is not a package, it’s a package + tag. So
>> it would make sense to have
>> 
>> … package: ‘PacakgeName’ tag: ’TagName’
> 
> Trying to make it simpler for new students, I see :(

Exactly, because you say: “each class has in a package and can have a tag, and 
here you can define that”. Otherwise you have to explain that category is 
actually a magical thing that splits into a package and a tag by following some 
rules.

> 
>> 
>> But what I’d really enjoy is to have a dedicated UI there. Because we
>> really use class templates as templates. 90% of a time I just change
>> the Superclass, Class and instance variables.
> 
> As I said.
> 
>> And 9% more I also add
>> a tag to the package.
> 
> What? You don't do a 'add a tag to a package' operation? You create tags by 
> side effect of a new class creation?

Of course.

> 
> (Your numbers don't add up to 100%. What is the one percent left for then? ;))

I guess Traits.

> 
>> So why we cannot have a UI with text fields for
>> this values? Later it can be fancier e.g. classVariables are hidden
>> by default and can be expanded on demand or if the are defined (I
>> don’t like explaining class vars to people and I don’t like them from
>> design point of view). Then also superclass field can have
>> autocompletion only from the defined classes prioritizing the ones
>> from the same package. Instance variables can be converted to slots
>> really fast by lookup, etc…
> 
> Look, you're making even more complex everytime. But you're welcome to try; 
> such a GUI can be added, yes, especially behind the add Class menu item 
> instead of reusing the full template.
> 
> A wizard for class creation :)
> 
> Note that on current Nautilus, if you use add Class in the menu, opening the 
> menu will auto-select what is behind the mouse click. And the template is 
> prefilled, which makes it a bit more complex to create a new clas on Object.

It’s not about creation, it’s about working with classes. #compile:classified: 
is not present in the method template because no one will never change it. 
Similarly I’ve never ever changed the `subclass:` keyword, so why should it be 
editable? I’ve never changed `instanceVariableNames:` keyword. Probably the 
only thing I’ve changed was adding `uses:` when working with traits. But again, 
why do I have to recall whether it’s called `uses:` or `using:` and type it 
between `subclass:` and `instanceVariableNames:`? Wy I cannot just press a 
button “use traits” and a field will appear where I have to specify traits.


> 
>> I mean, it’s nice that we can subclass by sending a message, but we
>> don’t develop methods in a template like:
>> 
>> compile: ‘methodCode’ classified: ‘protocolName’
> 
> I do. When the browser is broken, it's sometime the only way left :) Or 
> editing Smalltalk code directly on github :)

Yes, but you are not doing that in Nautilus, and there is probably a reason for 
that. Otherwise we can do an experiment: add #compile:classified: to the method 
editor and see if people like it.

> 
>> So maybe we make use of special UI for classes instead of plain
>> code.
> 
> Note that with smart suggestions, you can have both in the same apparently 
> plain code.

I didn’t get that one :(

> 
> But think of your usage, and also of the other usage: just beginner, new 
> student.

I don’t know how the student thinks, but I’d prefer to have 4 input fields:

- superclass autocompleted with existing classes
- class name
- instance variables that will have visual separation for each var (eg: 
http://xoxco.com/projects/code/tagsinput/example.html)
- package that will be already entered as it is now (and maybe have some 
inactive style not to distract)

Uko

> 
> And the last one will show you that our toolset is geared towards the power 
> user. And this is not going to change anytime soon, to the contrary.
> 
> Thierry



Re: [Pharo-dev] Changing class template

2015-11-08 Thread Yuriy Tymchuk

> On 08 Nov 2015, at 20:14, Thierry Goubier  wrote:
> 
> Stef,
> 
> I don't understand. I have never set a category in a class creation template 
> for the last three years.
> 
> When I teach using Pharo, I allways tell students to create a package, select 
> the package in the browser and add a class there.
> 
> Changing #category: for #package: (which is what the fix will be, I bet) is 
> useless.

Because what written there is not a package, it’s a package + tag. So it would 
make sense to have

…
package: ‘PacakgeName’
tag: ’TagName’

But what I’d really enjoy is to have a dedicated UI there. Because we really 
use class templates as templates. 90% of a time I just change the Superclass, 
Class and instance variables. And 9% more I also add a tag to the package. So 
why we cannot have a UI with text fields for this values? Later it can be 
fancier e.g. classVariables are hidden by default and can be expanded on demand 
or if the are defined (I don’t like explaining class vars to people and I don’t 
like them from design point of view). Then also superclass field can have 
autocompletion only from the defined classes prioritizing the ones from the 
same package. Instance variables can be converted to slots really fast by 
lookup, etc…

I mean, it’s nice that we can subclass by sending a message, but we don’t 
develop methods in a template like:

compile: ‘methodCode’ classified: ‘protocolName’

So maybe we make use of special UI for classes instead of plain code.


Uko

> 
> Thierry
> 
> Le 08/11/2015 19:55, stepharo a écrit :
>> https://pharo.fogbugz.com/f/cases/16952/Change-class-template-creation
>> 
>> Stef
>> 
>> Hi guys
>> 
>> I think that not enough of us are teaching... we are so used to jump around
>> "DETAILS" that we do not have a clue how newcomers see our system.
>> 
>> For example I hate that I have to explain that we should enter a package
>> name as argument of a category
>> 
>> Object subclass: #NameOfSubclass
>> instanceVariableNames: ’’
>> classVariableNames: ’’
>> category: ’PackageName’
>> 
>> 
>> I will change the template because I do not want to have to explain that
>> and that our Mooc refers to such crap. And you will have the right to
>> complain but in that case
>> I will tell you: "give a lecture and come back to"
>> 
>> We are trapped in our way of thinking and we are trapped in the glitches
>> of our system
>> 
>> We should not accept glitches and we should kill them.
>> 
>> Stef
> 
> 
> 




Re: [Pharo-dev] Code critic very bugged ?

2015-11-08 Thread Yuriy Tymchuk
What do you do to end up with that? It doesn’t look like code critics, it’s 
more on Rubric side. And if disabling QAPlugin helps to avoid that, then most 
likely QA hijacks Rubric functionality somehow that I can’t imagine…

Cheers,
Uko



> On 08 Nov 2015, at 12:57, Dimitris Chloupis  wrote:
> 
> ah I forgot about that one, yes it does here it is
> 
> http://pastebin.com/uW4AMphu 
> 
> On Sun, Nov 8, 2015 at 1:37 PM Nicolai Hess  > wrote:
> 2015-11-08 12:27 GMT+01:00 Dimitris Chloupis  >:
> Hey guys I try to use shortcuts and arrow keys with nautilus and I get this 
> every time 
> 
> MNU :  receiver of doSemanticsAnalysis: is nil
> 
> in ASTCache at: aCompiledMethod
> 
> I would paste the full stack but it keeps throwing me MNUs when I try to do 
> anything with the debugger. Seems like a pretty major bug , am I the only one 
> experiencing this ? 
> 
> does the pharodebug.log contain the stack trace?
> 
>  
> 
> I am on macos Yosemite using latest pharo 5 image and stable vm  with
> 
> wget -O- get.pharo.org/50+vm  | bash
> 
> 



Re: [Pharo-dev] Let's update Source Sans/Code fonts! Slice in inbox

2015-11-06 Thread Yuriy Tymchuk
kudos for the first phrase :)

> On 06 Nov 2015, at 00:20, Aliaksei Syrel  wrote:
> 
> Hi
> 
> As you may know current embedded fonts don't have many non-latin characters.
> Luckily adobe updated them and pushed new versions on github
> https://github.com/adobe-fonts/source-sans-pro 
> 
> https://github.com/adobe-fonts/source-code-pro 
> 
> 
> 
> 
> Here is issue:
> https://pharo.fogbugz.com/f/cases/16935/Source-Sans-and-Code-fonts-do-not-support-non-latin-characters-symbols-or-cyrillic
>  
> 
> 
> And slice:
> SLICE-Issue-16935-Source-Sans-and-Code-fonts-do-not-support-non-latin-characters-symbols-or-cyrillic-AliakseiSyrel.1
> 
> Cheers,
> Alex
> 



[Pharo-dev] Is RBRefactoryChange alive, and what do I use for recategorization

2015-11-06 Thread Yuriy Tymchuk
Hi everyone.

in my critic projects I need a concept of a “change” the can be previewed, 
executed or combined with other changes. I.e. if a critic can propose an 
automated solution, it has to be _something_. At the moment I’ve started to use 
RBRefactoryChange, but I want to know whether it is the thing to use, or maybe 
someone is preparing a replacement. Because classes have no comments. no real 
diff support and so on…

If it is the thing to use, which change should I use for a recategorization 
(change protocol) of a method?

Thanks.
Uko


Re: [Pharo-dev] Nautilus not garbage collected ?

2015-10-29 Thread Yuriy Tymchuk
Thanks Cyril. This is already solved in the upcoming version of quality 
assistant. But maybe we can add a test case like that, so in the future this 
will not repeat?

Uko

> On 29 Oct 2015, at 10:45, Ferlicot D. Cyril  wrote:
> 
> Hi,
> 
> Yesterday I needed to browse the instances of
> FTPluggableIconListMorphAdaptor and I saw that I had 117 of these.
> So I browsed the instances of Nautilus and I saw I had a lot with no
> window open.
> 
> On a new image I ran:
> 
> 10 timesRepeat: [
> |nautilus|
> nautilus := Object browse.
> nautilus close.   
> ].
> 
> Then print:
> 
> 
> 10 timesRepeat: [ Smalltalk garbageCollect ].
> Nautilus allInstances size.
> 
> I get 10.
> 
> If I launch the same in Pharo 4 (just replacing Nautilus by
> PackageTreeNautilus) I get 0.
> 
> I checked the class that points Nautilus instances:
> 
> (Nautilus allInstances flatCollectAsSet: #pointersTo) collect: #class.
> 
> And I saw that QANautilusPlugin points to them.
> If I disable QANautilusPlugin the new instances of Nautilus are garbage
> collected.
> 
> I am not sure but I think this comes from the SystemAnnoucement.
> 
> Should I open a bug entry ?
> 
> -- 
> 
> Cyril Ferlicot
> 
> http://www.synectique.eu
> 
> 165 Avenue Bretagne
> Lille 59000 France
> 




Re: [Pharo-dev] Finding the reason of merge

2015-10-27 Thread Yuriy Tymchuk
I think that I finally got it.

Here is the scenario

Project A depends on project B.
A 1.0 depends on B 1.0
A 2.0 depends on B 2.0

A 1.0 provides extensions to a class which is present in B 1.0 but removed in B 
2.0.

If A 1.0 is present in the image, and A 2.0 is loaded, packages from B 2.0 are 
loaded before the ones of A 2.0. To the class get’s removed, and the extension 
methods that disappeared with its removal are considered as local changes.

This means that there is no way to do a clean update via catalog browser?

Uko


> On 27 Oct 2015, at 07:23, Thierry Goubier <thierry.goub...@gmail.com> wrote:
> 
> Le 27/10/2015 03:40, Chris Cunningham a écrit :
>> you could try Merging instead of loading, and then look at the
>> difference between the newly merged in-image package and version 74.
>> 
>> Or, you could open the Monticello browser, highlight the package (which
>> you've already done),and click on Changes to see what you've changed
>> since version 73.
>> 
>> Or, maybe gitfiletree has so changed Monticello behaviour that neither
>> of these work anymore?
> 
> In that, GitFileTree has not changed Monticello behavior, so those operations 
> should work.
> 
> Thierry
> 
>> In any case, if you try to load over your changes, it doesn't give you
>> any hint as to what it is loading over.
>> 
>> -cbc
>> 
>> On Mon, Oct 26, 2015 at 6:14 PM, Yuriy Tymchuk <yuriy.tymc...@me.com
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>>Ok, I’m completely exhausted, I have no clue what’s the problem.
>> 
>>I have version 73 of my package, I load version 74 an then it says:
>>“If you continue, you will loose these changes: “ and there is
>>nothing more, there are no changes that I’m going to loose. Is there
>>any way to identify why the merge is happening. Yes, maybe it is
>>because I am using gitfiletree, but how do I find out the reason of
>>merge? Monticello is an amazing tool because it keeps my hands tied,
>>as I cannot really debug why there is a merge (it’s too complex at
>>least for me).
>> 
>>Uko
>> 
>> 
> 
> 




[Pharo-dev] Loading a baseline locally

2015-10-27 Thread Yuriy Tymchuk
Hi,

is it possible to load the baseline that is in a local repo? Because when I try 
to do that, I get: Could not resolve: …

I need to test how the configuration works and it looks like a cannot do that 
if I have not committed it.

Uko


Re: [Pharo-dev] Loading a baseline locally

2015-10-27 Thread Yuriy Tymchuk
I inspect `BeselineOfQualityAssistant project` then in versions presentation I 
select the one and only baseline version and send `load` to it. 

> On 27 Oct 2015, at 10:52, Thierry Goubier <thierry.goub...@gmail.com> wrote:
> 
> Can you list the command you are using as Metacello code?
> 
> I tried a few fancy things at one point with multiple repositories and 
> baselines, and Metacello gave me that power, but not in the way I expected 
> (at all).
> 
> Thierry
> 
> 2015-10-27 9:54 GMT+01:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>>:
> Hi,
> 
> is it possible to load the baseline that is in a local repo? Because when I 
> try to do that, I get: Could not resolve: …
> 
> I need to test how the configuration works and it looks like a cannot do that 
> if I have not committed it.
> 
> Uko
> 



Re: [Pharo-dev] Measuring width string

2015-10-27 Thread Yuriy Tymchuk
Hi Alex,

This is indeed a very useful information. You can also put it on StackOverflow, 
then it will be Googlable.

Cheers.
Uko


> On 27 Oct 2015, at 12:02, Aliaksei Syrel  wrote:
> 
> Hi
> 
> I'm sending it here so that it doesn't get lost.
> 
> There are multiple ways to measure string width. In the following examples 
> performance will be tested measuring 10`000 times the width of the following 
> string:
> 
> string := 'abcdefghijklmnopqrstuvwxyz 0123456789!@#$%^&*()_+'.
> 
> 1) The most straightforward way is to send #widthOfString: to the font. Time 
> to run gives around 250ms.
> http://ws.stfx.eu/2Q5YA9DFTRDR 
> Resulting value is rounded to integer and seems to be not absolutely correct 
> and precise.
> 
> 2) More complex way is to go deeper on the level of glyphs and manually 
> summarise the width of each character in the string sending #getGlyphWidth: 
> character to the font. Time to run gives around 750ms.
> http://ws.stfx.eu/ETBEW1EHAAZ8 
> Resulting value is float and looks like correct and precise value.
> 
> 3) Even more complex is to use CairoFontMetricsProvider instead of font's 
> methods. The same as in 2nd case we measure each character. Time to run 
> around 350ms.
> http://ws.stfx.eu/7I89DMD0ZLM3 
> Resulting value is exactly the same as in the 2nd case. With almost equal 
> performance to 1st it is nice alternative.
> 
> 4) One more way is to let native cairo to calculate everything for us. Calls 
> happen through nativeboost. Time to run around 120ms.
> http://ws.stfx.eu/HYD76OMIOM7L  
> As result it returns CairoTextExtents which allows to calculate width and 
> height with one call.
> 
> Cheers,
> Alex



Re: [Pharo-dev] Loading a baseline locally

2015-10-27 Thread Yuriy Tymchuk
Thanks, it worked!

> On 27 Oct 2015, at 14:45, Thierry Goubier <thierry.goub...@gmail.com> wrote:
> 
> 
> 
> 2015-10-27 12:36 GMT+01:00 Gabriel Cotelli <g.cote...@gmail.com 
> <mailto:g.cote...@gmail.com>>:
> Maybe something like: 
> Metacello new
>   baseline: 'QualityAssistant';
>   repository: 'filetree://REPO_LOCATION_IN_DISK';
>   load
> 
> That one certainly works, so that must be something else.
> 
> (i.e. if you load a baseline via a github:// url, then this code is used).
> 
> Thierry
>  
> On Tue, Oct 27, 2015 at 7:25 AM, Yuriy Tymchuk <yuriy.tymc...@me.com 
> <mailto:yuriy.tymc...@me.com>> wrote:
> I inspect `BeselineOfQualityAssistant project` then in versions presentation 
> I select the one and only baseline version and send `load` to it. 
> 
>> On 27 Oct 2015, at 10:52, Thierry Goubier <thierry.goub...@gmail.com 
>> <mailto:thierry.goub...@gmail.com>> wrote:
>> 
>> Can you list the command you are using as Metacello code?
>> 
>> I tried a few fancy things at one point with multiple repositories and 
>> baselines, and Metacello gave me that power, but not in the way I expected 
>> (at all).
>> 
>> Thierry
>> 
>> 2015-10-27 9:54 GMT+01:00 Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>>:
>> Hi,
>> 
>> is it possible to load the baseline that is in a local repo? Because when I 
>> try to do that, I get: Could not resolve: …
>> 
>> I need to test how the configuration works and it looks like a cannot do 
>> that if I have not committed it.
>> 
>> Uko
>> 
> 
> 
> 



Re: [Pharo-dev] Random access to meta repos?

2015-10-26 Thread Yuriy Tymchuk
So was this fixed or not? Because if I’m opening a git repo — it checks the 
meta, I’m saving to git repo — it checks the meta…

Uko


> On 24 Aug 2015, at 22:05, Thierry Goubier  wrote:
> 
> Hi Paul,
> 
> do you still see some of this in one of the filetree branches when doing 
> metacello integration testing?
> 
> Thierry
> 
> Le 24/08/2015 19:41, Paul DeBruicker a écrit :
>> per this discussion: https://github.com/dalehenrich/metacello-work/issues/354
>> 
>> You might check that your copy of  MCFileRepositoryInspector>>#refresh
>> doesn't refer to a nonexistent instvar
>> 
>> 
>> 
>> Uko2 wrote
>>> Hi,
>>> 
>>> I’ve noticed that when I try to open a gitfiletree repo, before displaying
>>> its contents something from meta repos is loaded (seen on screenshot). Why
>>> does it need file names from meta repos to display contents of the repo
>>> which is present on my machine?
>>> 
>>> Uko
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Screen Shot 2015-08-21 at 19.06.39.png (587K)
>>> http://forum.world.st/attachment/4845061/0/Screen%20Shot%202015-08-21%20at%2019.06.39.png;
>> 
>> 
>> 
>> 
>> 
>> --
>> View this message in context: 
>> http://forum.world.st/Random-access-to-meta-repos-tp4845061p4845346.html
>> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
>> 
>> 
>> 
> 
> 




[Pharo-dev] Finding the reason of merge

2015-10-26 Thread Yuriy Tymchuk
Ok, I’m completely exhausted, I have no clue what’s the problem.

I have version 73 of my package, I load version 74 an then it says: “If you 
continue, you will loose these changes: “ and there is nothing more, there are 
no changes that I’m going to loose. Is there any way to identify why the merge 
is happening. Yes, maybe it is because I am using gitfiletree, but how do I 
find out the reason of merge? Monticello is an amazing tool because it keeps my 
hands tied, as I cannot really debug why there is a merge (it’s too complex at 
least for me).

Uko


Re: [Pharo-dev] Storing System Settings using STON

2015-10-15 Thread Yuriy Tymchuk
First of all you can add additional data like a version of the project for 
which the setting should work.

Secondly it depends how much do we want to stress the developers. Because you 
cannot serialize classes in STON. So either we store “StoredSetting” and 
“StoredClassSetting” where the second one knows that is has to convert a value 
to a class, or we force developers to do that. I late the second one more…

Uko

> On 15 Oct 2015, at 13:09, Damien Cassou <damien.cas...@inria.fr> wrote:
> 
> 
> Yuriy Tymchuk <yuriy.tymc...@me.com> writes:
> 
>> It is like that:
>> 
>> [
>>  StoredSetting {
>>  #settingNodeIdentifier : '#shoreLine#autoSubmit',
>>  #realValue : true
>>  },
>>  StoredSetting {
>>  #settingNodeIdentifier : '#reIgnore',
>>  #realValue : Set [ ]
>>  }
>> ]
> 
> why not:
> 
> {
>  '#shoreLine#autoSubmit' : true,
>  '#reIgnore' : Set [ ]
> }
> 
> 
> -- 
> Damien Cassou
> http://damiencassou.seasidehosting.st
> 
> "Success is the ability to go from one failure to another without
> losing enthusiasm." --Winston Churchill
> 




Re: [Pharo-dev] GTools merging configurations

2015-10-15 Thread Yuriy Tymchuk
In my opinion it depends on the project size. When it’s small and evolves fast 
you can have everything in one conf. If the projects get big and evolve more 
slowly, it makes sense to keep them in separate configurations… I think that 
it’s about time for managing configurations vs time for managing projects.

Also you can make a one conf that relies on 3 others.

I like having baselines, but then you have to still make a conf…

Uko

> On 15 Oct 2015, at 09:48, stepharo  wrote:
> 
> I can imagine that well.
> Up to you but I think that having modular parts is nice too.
> What we should is a way to automatically update configurations.
> 
> Stef
> 
> Le 14/10/15 22:20, Andrei Chis a écrit :
>> Hi,
>> 
>> For the GTInspector, GTPlayground and GTSpotter we now have distinct 
>> configurations.
>> However, this complicates the integration process with Pharo as a lot of 
>> configurations need to be updated.
>> So we'd like to merge them  in ConfigurationOfGToolkitCore.
>> 
>> What do you think?
>> This will simplify a lot the integration process.
>> 
>> Cheers,
>> Andrei
> 
> 




Re: [Pharo-dev] Storing System Settings using STON

2015-10-15 Thread Yuriy Tymchuk
It is like that:

[
StoredSetting {
#settingNodeIdentifier : '#shoreLine#autoSubmit',
#realValue : true
},
StoredSetting {
#settingNodeIdentifier : '#reIgnore',
#realValue : Set [ ]
}
]

> On 15 Oct 2015, at 09:54, stepharo  wrote:
> 
> Cool!
> 
> Could you send an example of the file contents?
> 
> 
> Stef
> 
> 
> Le 12/10/15 21:45, Juraj Kubelka a écrit :
>> Hi,
>> 
>> we have a slice that introduce new storage solution for System Settings. 
>> See: 
>> https://pharo.fogbugz.com/f/cases/16681/Storing-System-Settings-using-STON 
>>  
>> 
>> You can load it using:
>> 
>> Gofer it
>> smalltalkhubUser: 'Pharo' project: 'Pharo50Inbox';
>> package: 'SLICE-Issue-16681-Storing-System-Settings-using-STON';
>> load.
>> 
>> When you open the Setting Browser, you can see that every setting has new 
>> items in context menu:
>> 
>> 
>> 
>> Thanks for reviewing it.
>> Cheers,
>> Juraj
> 



[Pharo-dev] One more question about the transformation rules

2015-10-15 Thread Yuriy Tymchuk
Hi,

when a transformation rule checks a method, except for only checking whether it 
matches the rule, it also checks if 

self class recursiveSelfRule executeTree: rewriteRule tree initialAnswer: false

evaluates to false. #recursiveSelfRule is 

'`@methodName: `@args | `@temps | self `@methodName: `@args1' 
'`@methodName: `@args | `@temps | ^ self `@methodName: `@args1’

Do I understand correctly that before signaling that method is bad the rule 
makes sure that the transformation will not create a recursion?

Uko


Re: [Pharo-dev] Storing System Settings using STON

2015-10-12 Thread Yuriy Tymchuk
Also you can save and load all settings using the buttons in top right corner


> On 12 Oct 2015, at 21:45, Juraj Kubelka  wrote:
> 
> Hi,
> 
> we have a slice that introduce new storage solution for System Settings. See: 
> https://pharo.fogbugz.com/f/cases/16681/Storing-System-Settings-using-STON 
>  
> 
> You can load it using:
> 
> Gofer it
> smalltalkhubUser: 'Pharo' project: 'Pharo50Inbox';
> package: 'SLICE-Issue-16681-Storing-System-Settings-using-STON';
> load.
> 
> When you open the Setting Browser, you can see that every setting has new 
> items in context menu:
> 
> 
> 
> Thanks for reviewing it.
> Cheers,
> Juraj



Re: [Pharo-dev] [Moose-dev] Re: Roassal3D is moving...

2015-10-10 Thread Yuriy Tymchuk
I do not remember the causes under first question. Something was broken and 
some layouts were not working. I’ve made a heavy usage of classes that align 
all elements alone some pane, and they were removed from RoassalWoden, so I 
have to add them as my own classes. Also I’ve added a lot of helper methods to 
the bounding box class, like getting its corrections.

Secondly it’s not really an issue of Woden but more of the way I’ve designed 
ViDI. There is actually no such thing as a “city layout”. If you take a look at 
the latest CodeCity by Ricky, there are plenty layouts (like rectangle packing, 
grid, wall, stack) and a nice way to compost them. Now besides having this 
functionality I also wanted to be able to dynamically change the view i.e. 
method get’s deleted, visualization is re-layedout. That’s why I have a custom 
“Building” classes, that know their bricks (methods) and can lay them out and 
inform the parent container if the bonds were changed.

The point is that ViDI should not be restricted only to 3D so I don’t want to 
code all the re-layout logic into 3D subclasses. I think that at the moment I 
can just port orbiting controls to the old Roassal3D. 

Maybe in the future I will have time to create ViDI v2. Or maybe I’ll find a 
student willing to do that :)

Uko



> On 10 Oct 2015, at 13:18, Alexandre Bergel <alexandre.ber...@me.com> wrote:
> 
> Yes, I would like to understand why you cannot migrate to woden 
> Alexandre 
> 
> Le 10 oct. 2015 à 04:55, stepharo <steph...@free.fr 
> <mailto:steph...@free.fr>> a écrit :
> 
>> 
>> 
>> Le 9/10/15 19:59, Yuriy Tymchuk a écrit :
>>> 2 reasons:
>>> 
>>> 1) something is always incompatible (I’ve tried 2 times already)
>>> 2) I have too many things hardcoded in Roassal3D subclasses. I have to move 
>>> it into a proper model, and this will take time.
>> 
>> 
>> Alex you should have a look at the missing hooks mentioned by Yuriy because 
>> I'm quite sure that other 
>> people will have the same problems and this is not good to duplicate effort. 
>> 
>> Yiriy can you point alex to the hardcoded points?
>> 
>>> 
>>> I’ll take a look at the Orbiter. Although as far as I remember Roassal3D 
>>> and Woden have different interfaces.
>>> 
>>> Cheers.
>>> Uko
>>> 
>>> 
>>>> On 09 Oct 2015, at 19:54, Alexandre Bergel < 
>>>> <mailto:alexandre.ber...@me.com>alexandre.ber...@me.com 
>>>> <mailto:alexandre.ber...@me.com>> wrote:
>>>> 
>>>> Ah sorry.
>>>> Teseo has written the class OrbitController. I think you should be able to 
>>>> reuse it for Roassal3d Old. But why not trying to migrate to Woden 
>>>> instead? 
>>>> 
>>>> Alexandre
>>>> -- 
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>> 
>>>> 
>>>> 
>>>>> On Oct 9, 2015, at 2:15 PM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>>>>> <mailto:yuriy.tymc...@me.com>> wrote:
>>>>> 
>>>>> No, the control the interaction that moves you around the object when you 
>>>>> drag mouse instead of "rotating your head” as in fps game.
>>>>> 
>>>>> Uko
>>>>> 
>>>>> 
>>>>>> On 09 Oct 2015, at 19:11, Alexandre Bergel < 
>>>>>> <mailto:alexandre.ber...@me.com>alexandre.ber...@me.com 
>>>>>> <mailto:alexandre.ber...@me.com>> wrote:
>>>>>> 
>>>>>> By flyover you mean having a text tooltip?
>>>>>> 
>>>>>> Alexandre
>>>>>> -- 
>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>> Alexandre Bergel   <http://www.bergel.eu/>http://www.bergel.eu 
>>>>>> <http://www.bergel.eu/>
>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On Oct 9, 2015, at 12:40 PM, Yuriy Tymchuk < 
>>>>>>> <mailto:yuriy.tymc...@me.com>yuriy.tymc...@me.com 
>>>>>>> <mailto:yuriy.tymc...@me.com>> wrote:
>>>>>>> 
>>>>>>> No, honestly I’d really appreciate if someone can help me to add this 
>>>>>>> flyover interaction to ViDI, so we can run some kind of controlled 
>>>>>>> experiment on it (and for now it’s not an option to move ViDI to Woden).
>>>>>> 
>>>>>> ___
>>>>>> Moose-dev mailing list
>>>>>> moose-...@iam.unibe.ch <mailto:moose-...@iam.unibe.ch>
>>>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev 
>>>>>> <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>>>> 
>>>>> ___
>>>>> Moose-dev mailing list
>>>>> moose-...@iam.unibe.ch <mailto:moose-...@iam.unibe.ch>
>>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev 
>>>>> <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>>> 
>>>> ___
>>>> Moose-dev mailing list
>>>> moose-...@iam.unibe.ch <mailto:moose-...@iam.unibe.ch>
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev 
>>>> <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>> 
>> 



Re: [Pharo-dev] [Moose-dev] Re: Roassal3D is moving...

2015-10-09 Thread Yuriy Tymchuk
No, the control the interaction that moves you around the object when you drag 
mouse instead of "rotating your head” as in fps game.

Uko


> On 09 Oct 2015, at 19:11, Alexandre Bergel <alexandre.ber...@me.com> wrote:
> 
> By flyover you mean having a text tooltip?
> 
> Alexandre
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
>> On Oct 9, 2015, at 12:40 PM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> No, honestly I’d really appreciate if someone can help me to add this 
>> flyover interaction to ViDI, so we can run some kind of controlled 
>> experiment on it (and for now it’s not an option to move ViDI to Woden).
> 
> ___
> Moose-dev mailing list
> moose-...@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev



Re: [Pharo-dev] [Moose-dev] Re: Roassal3D is moving...

2015-10-09 Thread Yuriy Tymchuk
2 reasons:

1) something is always incompatible (I’ve tried 2 times already)
2) I have too many things hardcoded in Roassal3D subclasses. I have to move it 
into a proper model, and this will take time.

I’ll take a look at the Orbiter. Although as far as I remember Roassal3D and 
Woden have different interfaces.

Cheers.
Uko


> On 09 Oct 2015, at 19:54, Alexandre Bergel <alexandre.ber...@me.com> wrote:
> 
> Ah sorry.
> Teseo has written the class OrbitController. I think you should be able to 
> reuse it for Roassal3d Old. But why not trying to migrate to Woden instead? 
> 
> Alexandre
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
>> On Oct 9, 2015, at 2:15 PM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>> <mailto:yuriy.tymc...@me.com>> wrote:
>> 
>> No, the control the interaction that moves you around the object when you 
>> drag mouse instead of "rotating your head” as in fps game.
>> 
>> Uko
>> 
>> 
>>> On 09 Oct 2015, at 19:11, Alexandre Bergel <alexandre.ber...@me.com 
>>> <mailto:alexandre.ber...@me.com>> wrote:
>>> 
>>> By flyover you mean having a text tooltip?
>>> 
>>> Alexandre
>>> -- 
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> 
>>> 
>>> 
>>>> On Oct 9, 2015, at 12:40 PM, Yuriy Tymchuk <yuriy.tymc...@me.com 
>>>> <mailto:yuriy.tymc...@me.com>> wrote:
>>>> 
>>>> No, honestly I’d really appreciate if someone can help me to add this 
>>>> flyover interaction to ViDI, so we can run some kind of controlled 
>>>> experiment on it (and for now it’s not an option to move ViDI to Woden).
>>> 
>>> ___
>>> Moose-dev mailing list
>>> moose-...@iam.unibe.ch <mailto:moose-...@iam.unibe.ch>
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev 
>>> <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>> 
>> ___
>> Moose-dev mailing list
>> moose-...@iam.unibe.ch <mailto:moose-...@iam.unibe.ch>
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> 
> ___
> Moose-dev mailing list
> moose-...@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev



Re: [Pharo-dev] [Moose-dev] Roassal3D is moving...

2015-10-09 Thread Yuriy Tymchuk
Wow, this is amazing. Can I have this king of interaction in the old Roassal3D? 
Or a slave that will move ViDI to Woden? :)

No, honestly I’d really appreciate if someone can help me to add this flyover 
interaction to ViDI, so we can run some kind of controlled experiment on it 
(and for now it’s not an option to move ViDI to Woden).

Cheers!
Uko


> On 09 Oct 2015, at 17:28, Alexandre Bergel  wrote:
> 
> Hi All!
> 
> We are (secretly :-) working on Roassal3D. Teseo, from the University of 
> Lugano, is quite enthusiast :-)
> 
> https://vimeo.com/141916068 
> 
> 
> 
> 
> Cheers,
> Alexandre
> -- 
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu 
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> 
> 
> 
> ___
> Moose-dev mailing list
> moose-...@iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev



Re: [Pharo-dev] [ANN] Pharo Catalog web page updated

2015-10-07 Thread Yuriy Tymchuk
Looks nice(er)!

Thanks Esteban.
Uko



> On 07 Oct 2015, at 19:17, Esteban Lorenzano  wrote:
> 
> Hi, 
> 
> I spend some time today adding some functionality top the Pharo Catalog web 
> page. 
> Is still far from *good* but I think now is a lot better:
> 
> http://catalog.pharo.org
> 
> Enjoy,
> Esteban
> 
> ps: as a “history” note, Pharo Catalog page was never intended to last too 
> much, it was going to be replaced for a complete web-page, and it still will 
> be, but since is not ready and I don’t know when it will be, I think is 
> better to enhance the current one :)
> 
> 




<    1   2   3   4   5   6   7   8   9   >