Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Serge Stinckwich
Hi Hernán,

very impressive demo !

We are working on similar tools in the context of epidemiological modelling:
https://github.com/UMMISCO/kendrick

I see the nice table views.
Did you build something specific or reuse existing stuff ? Can you
edit tables from UI ?

Territories looks interesting. We might be interesting to use such
information for building spatial epidemiology simulation evolving many
countries. Looks at Ebola modelling we have done here:
https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/EpidemiologicalModels/0301-EpidemiologicalModels.html

Regards,

On Thu, Sep 29, 2016 at 7:38 AM, Hernán Morales Durand
 wrote:
>
> I want to share with you a video I did just yesterday (no audio yet) of the
> PhyloclassTalk application:
>
> https://youtu.be/1iPbDHbjbLU
>
> As some of you may know, I work in a research institute, so the workflow is
> very specific to phylogeography and bioinformatics. But I hope you may find
> it useful as a showcase for Pharo, or to grab some ideas. It took some years
> to get here.
>
> It also uses code many of you wrote, so you can say Hi! if you recognize
> your source there :)
>
> Here is the web site for documentation and details:
> http://phyloclasstalk.github.io/
>
> I would love to read your recommendations, or comments.
>
> Cheers,
>
> Hernán
>
>



-- 
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/



Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Hernán Morales Durand
Hi Serge,

2016-09-29 4:05 GMT-03:00 Serge Stinckwich :

> Hi Hernán,
>
> very impressive demo !
>
>
Thanks!


> We are working on similar tools in the context of epidemiological
> modelling:
> https://github.com/UMMISCO/kendrick
>
> I see the nice table views.
> Did you build something specific or reuse existing stuff ? Can you
> edit tables from UI ?
>

I built several support packages. From helpers like SpecUIAddOns and
StringExtensions to a Query Builder and a Project Framework (the Project UI
is based on the work of Peter Uhnak IIRC). The GenBank Browser could be
generalized to a XML node editor.

For editing tables it was never a requirement for the app.


> Territories looks interesting. We might be interesting to use such
> information for building spatial epidemiology simulation evolving many
> countries. Looks at Ebola modelling we have done here:
> https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/
> EpidemiologicalModels/0301-EpidemiologicalModels.html
>
>
It looks really interesting!

For Territorial I am analyzing now what we could get from Bioregions.
Integration of repositories is not so straightforward, so I plan also to
finish my Code Generator to automate generation of classes and methods when
importing CSV's and XML's, a good test case could be the Unicode's CLDR.
In PhyloclasTalk for most analysis we start always from the reported DNA
sequences, for example if we would have to analyze Ebola we would start
from here
https://www.ncbi.nlm.nih.gov/genomes/VirusVariation/Database/nph-select.cgi
and then apply NER to curate the locations or other features of isolates.
If you execute the query for Zaire ebolavirus, the PhyloclassTalk GenBank
Browser could be adapted to load the CSV (which seems pretty curated) or
accession list, and then use the Classifier directly.
I see you define routes in your code, good starting point to add the
feature :)

Best regards,

Hernán

Regards,
>
> On Thu, Sep 29, 2016 at 7:38 AM, Hernán Morales Durand
>  wrote:
> >
> > I want to share with you a video I did just yesterday (no audio yet) of
> the
> > PhyloclassTalk application:
> >
> > https://youtu.be/1iPbDHbjbLU
> >
> > As some of you may know, I work in a research institute, so the workflow
> is
> > very specific to phylogeography and bioinformatics. But I hope you may
> find
> > it useful as a showcase for Pharo, or to grab some ideas. It took some
> years
> > to get here.
> >
> > It also uses code many of you wrote, so you can say Hi! if you recognize
> > your source there :)
> >
> > Here is the web site for documentation and details:
> > http://phyloclasstalk.github.io/
> >
> > I would love to read your recommendations, or comments.
> >
> > Cheers,
> >
> > Hernán
> >
> >
>
>
>
> --
> Serge Stinckwich
> UCBN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://www.doesnotunderstand.org/
>
>


Re: [Pharo-users] Speeding-up >>#instVarNamed: in Pharo-5.0 and beyond?

2016-09-29 Thread Marcus Denker

> On 28 Sep 2016, at 23:41, Holger Freyther  wrote:
> 
> Hi,
> 
> Magritte and my TagLengthValue (TLV) both use 
> >>#instVarNamed:/>>#instVarNamed:put: to read and write from an object. I was 
> just running >>#bench on my SMPP library and noticed that besides Spur Pharo5 
> is slower than Pharo3.
> 
> 
> I added this to PointerLayout:
> 
>>> # instVarIndexFor: aString ifAbsent: aBlockClosure 
>   | idx |
>   idx := 1.
>   slotScope do: [:each |
>   each isVisible ifTrue: [
>   each name = aString ifTrue: [^idx].
>   idx := idx +1]].
>   ^aBlockClosure value
> 
> and modified ClassDescription/TClassDescription to use it:
> 
> "protocol: instance variables"
> instVarIndexFor: instVarName ifAbsent: aBlock
>   "Answer the index of the named instance variable."
> 
>   | index |
>   index := self classLayout instVarIndexFor: instVarName ifAbsent: [0].
>   index = 0 ifTrue: 
>   [^self superclass == nil 
>   ifTrue: [aBlock value]
>   ifFalse: [self superclass instVarIndexFor: instVarName 
> ifAbsent: aBlock]].
>   ^self superclass == nil 
>   ifTrue: [index]
>   ifFalse: [index + self superclass instSize]
> 
> 
> The speed-up comes from filtering allSlots to allVisibleSlots (and creating 
> an Array), then collecting the slot names and finally searching the name. 
> Does it make sense to integrate such speed-ups?
> 
> 

Yes! I will add it. 

Marcus




Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Serge Stinckwich
On Thu, Sep 29, 2016 at 10:02 AM, Hernán Morales Durand
 wrote:
> Hi Serge,
>
> 2016-09-29 4:05 GMT-03:00 Serge Stinckwich :
>>
>> Hi Hernán,
>>
>> very impressive demo !
>>
>
> Thanks!
>
>>
>> We are working on similar tools in the context of epidemiological
>> modelling:
>> https://github.com/UMMISCO/kendrick
>>
>> I see the nice table views.
>> Did you build something specific or reuse existing stuff ? Can you
>> edit tables from UI ?
>
>
> I built several support packages. From helpers like SpecUIAddOns and
> StringExtensions to a Query Builder and a Project Framework (the Project UI
> is based on the work of Peter Uhnak IIRC). The GenBank Browser could be
> generalized to a XML node editor.
>
> For editing tables it was never a requirement for the app.

Ok I will have a look later.

>> Territories looks interesting. We might be interesting to use such
>> information for building spatial epidemiology simulation evolving many
>> countries. Looks at Ebola modelling we have done here:
>>
>> https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/EpidemiologicalModels/0301-EpidemiologicalModels.html
>>
>
> It looks really interesting!
>
> For Territorial I am analyzing now what we could get from Bioregions.
> Integration of repositories is not so straightforward, so I plan also to
> finish my Code Generator to automate generation of classes and methods when
> importing CSV's and XML's, a good test case could be the Unicode's CLDR.
> In PhyloclasTalk for most analysis we start always from the reported DNA
> sequences, for example if we would have to analyze Ebola we would start from
> here
> https://www.ncbi.nlm.nih.gov/genomes/VirusVariation/Database/nph-select.cgi
> and then apply NER to curate the locations or other features of isolates. If
> you execute the query for Zaire ebolavirus, the PhyloclassTalk GenBank
> Browser could be adapted to load the CSV (which seems pretty curated) or
> accession list, and then use the Classifier directly.
> I see you define routes in your code, good starting point to add the feature
> :)

Routes ? yes, because usually when you are doing an epidemiological
modeling, you want to know how the countries are connected and what
the rates of propagation between these countries. Some people are
using flights routes also (they are available freely on Internet).

We are not working at the level of virus DNA sequences, we are just
modelling propagation of diseases.
But integrating both would be amazing in the long term.

I think that Territorial is not MIT, all Kendrick code is MIT and I'm
bit reluctant to mix licences.
This is the only drawback for me at the moment.

Regards,
-- 
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/



Re: [Pharo-users] Speeding-up >>#instVarNamed: in Pharo-5.0 and beyond?

2016-09-29 Thread Marcus Denker

> On 29 Sep 2016, at 10:08, Marcus Denker  wrote:
> 
> 
>> On 28 Sep 2016, at 23:41, Holger Freyther  wrote:
>> 
>> Hi,
>> 
>> Magritte and my TagLengthValue (TLV) both use 
>> >>#instVarNamed:/>>#instVarNamed:put: to read and write from an object. I 
>> was just running >>#bench on my SMPP library and noticed that besides Spur 
>> Pharo5 is slower than Pharo3.
>> 
> 
> Yes! I will add it. 
> 

Slice committed:

https://pharo.fogbugz.com/f/cases/19155/speedup-instVarNamed 


Marcus





Re: [Pharo-users] Speeding-up >>#instVarNamed: in Pharo-5.0 and beyond?

2016-09-29 Thread Holger Freyther

> On 29 Sep 2016, at 10:25, Marcus Denker  wrote:
> 
> 

> 
> Slice committed:
> 
> https://pharo.fogbugz.com/f/cases/19155/speedup-instVarNamed
> 
>   Marcus


that was quick!

I had locally modified to use 1 to: specLayout size do: [] and then use 
specLayout at: directly. It seemed to make a small difference as well

So I was "lucky" to pick PointerLayout as class to put the method in? 
classLayout will always be an instance of PointerLayout (or its subclasses)?

thank you
holger


PS: It luckily speeds up instVarNamed:put: as well :)


Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread Guille Polito

Hi Stef,

I have some experiments I did last year in here

http://www.smalltalkhub.com/#!/~Guille/ReactiveExtensions

They allow you to do something like you want.

It is based on the ideas in

https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
http://www.introtorx.com/

These guys model a stream with different transformations (such as 
select:, collect: flatCollect: and so on...) as a chain of observers 
where each transformation observes the one before, transforms the result 
and notifies its observers with the modified value.


 - The funny side is that with these they can manage polymorphically 
both collections as streams, and normal streams (that may never end). 
Also they do nice things with concurrency and retry operations fairly 
easily.

 - The odd part is DEBUGGING this.
   * You may have tons of elements into your collection => Then you may 
block all incoming events as soon as you debug one.
   * You have to debug chains of observer/observed pairs, with the 
boilerplate code that comes to it. Maybe a domain specific debugger 
would be need for this...


Guille

Guille

 Original Message 

Hi

I was looking at how we can turn a collection into a stream.

I played with

g := Generator on: [ :gen |
| current |
current := 0.
[ gen yield: (current := current + 1) ] repeat ].
g next.

and now imagine that we have

(1 to: 1000) collect: [:each | {each -1 . each . each + 1}].

I was wondering how we could turn it into a stream

(1 to: 1000) asStream collect: [:each | {each -1 . each . each + 1}].

and what would be the asStream method.

for index based I can see that next

next is something like

next

^ self at: (current := current + 1)

and collect: could be rewritten to use a generator.

Now does anybody play with this already?

Does xtream provide a way to do something in the same vein?

We can have a stream of blocks.

Stef














Re: [Pharo-users] Speeding-up >>#instVarNamed: in Pharo-5.0 and beyond?

2016-09-29 Thread Denis Kudriashov
Cool.

What the percentage of speedup?

2016-09-28 23:41 GMT+02:00 Holger Freyther :

> Hi,
>
> Magritte and my TagLengthValue (TLV) both use 
> >>#instVarNamed:/>>#instVarNamed:put:
> to read and write from an object. I was just running >>#bench on my SMPP
> library and noticed that besides Spur Pharo5 is slower than Pharo3.
>
>
> I added this to PointerLayout:
>
> >># instVarIndexFor: aString ifAbsent: aBlockClosure
> | idx |
> idx := 1.
> slotScope do: [:each |
> each isVisible ifTrue: [
> each name = aString ifTrue: [^idx].
> idx := idx +1]].
> ^aBlockClosure value
>
> and modified ClassDescription/TClassDescription to use it:
>
> "protocol: instance variables"
> instVarIndexFor: instVarName ifAbsent: aBlock
> "Answer the index of the named instance variable."
>
> | index |
> index := self classLayout instVarIndexFor: instVarName ifAbsent:
> [0].
> index = 0 ifTrue:
> [^self superclass == nil
> ifTrue: [aBlock value]
> ifFalse: [self superclass instVarIndexFor:
> instVarName ifAbsent: aBlock]].
> ^self superclass == nil
> ifTrue: [index]
> ifFalse: [index + self superclass instSize]
>
>
> The speed-up comes from filtering allSlots to allVisibleSlots (and
> creating an Array), then collecting the slot names and finally searching
> the name. Does it make sense to integrate such speed-ups?
>
>
> cheers
> holger
>
>
>


Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread Denis Kudriashov
2016-09-29 6:54 GMT+02:00 stepharo :

> and now imagine that we have
>
> (1 to: 1000) collect: [:each | {each -1 . each . each + 1}].
>
> I was wondering how we could turn it into a stream
>
> (1 to: 1000) asStream collect: [:each | {each -1 . each . each + 1}].
>
> and what would be the asStream method.
>
> for index based I can see that next
>
> next is something like
>
> next
>
> ^ self at: (current := current + 1)
>
> and collect: could be rewritten to use a generator.
>
> Now does anybody play with this already?
>
> Does xtream provide a way to do something in the same vein?
>

Yes. XStream supports it:

(1 to: 1000) reading transforming: [:in :out | | each | each := in get. out
 put: each -1; put: each; put: each + 1]


Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread Denis Kudriashov
2016-09-29 12:39 GMT+02:00 Denis Kudriashov :

> and collect: could be rewritten to use a generator.
>>
>> Now does anybody play with this already?
>>
>> Does xtream provide a way to do something in the same vein?
>>
>
> Yes. XStream supports it:
>
> (1 to: 1000) reading transforming: [:in :out | | each | each := in get.
> out  put: each -1; put: each; put: each + 1]
>

But you probably wants different:

(1 to: 1000) reading collecting: [:each | {each -1. each. each + 1} ]


Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread Damien Pollet
Same with transducers/reducers, except they work by pushing values through
the pipeline instead of pulling them. The library I started porting from VW
last year had a dual API, one more like the original Clojure transducers,
and one more like Xtreams.

One nice point of going collection→stream & filters→result is that the
final step is explicit, so you can pick what kind of result you build
(could be a collection or a single aggregated value).

On 29 September 2016 at 12:40, Denis Kudriashov 
wrote:

>
> 2016-09-29 12:39 GMT+02:00 Denis Kudriashov :
>
>> and collect: could be rewritten to use a generator.
>>>
>>> Now does anybody play with this already?
>>>
>>> Does xtream provide a way to do something in the same vein?
>>>
>>
>> Yes. XStream supports it:
>>
>> (1 to: 1000) reading transforming: [:in :out | | each | each := in get.
>> out  put: each -1; put: each; put: each + 1]
>>
>
> But you probably wants different:
>
> (1 to: 1000) reading collecting: [:each | {each -1. each. each + 1} ]
>


Re: [Pharo-users] Speeding-up >>#instVarNamed: in Pharo-5.0 and beyond?

2016-09-29 Thread Holger Freyther

> On 29 Sep 2016, at 12:28, Denis Kudriashov  wrote:
> 
> Cool.
> 
> What the percentage of speedup?

Random micro benchmark...

| m |
m := Morph new.
[ | var |
var := m instVarNamed: #submorphs
] bench

From: 983,066 per second
To: 1,302,098 per second





Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Alexandre Bergel
Hi Hernán,

Impressive work!
Very cool demo! Object Profile will advertise your work

Alexandre

> On Sep 29, 2016, at 2:38 AM, Hernán Morales Durand  
> wrote:
> 
> 
> I want to share with you a video I did just yesterday (no audio yet) of the 
> PhyloclassTalk application:
> 
> https://youtu.be/1iPbDHbjbLU 
> 
> As some of you may know, I work in a research institute, so the workflow is 
> very specific to phylogeography and bioinformatics. But I hope you may find 
> it useful as a showcase for Pharo, or to grab some ideas. It took some years 
> to get here.
> 
> It also uses code many of you wrote, so you can say Hi! if you recognize your 
> source there :)
> 
> Here is the web site for documentation and details: 
> http://phyloclasstalk.github.io/ 
> 
> I would love to read your recommendations, or comments.
> 
> Cheers,
> 
> Hernán
> 
> 



Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread stepharo

Hi hernan


it is really excellent. I suggest that you add a title and a end slide 
with you name and email :)


so that people can contact you.


Stef


Le 29/9/16 à 08:38, Hernán Morales Durand a écrit :


I want to share with you a video I did just yesterday (no audio yet) 
of the PhyloclassTalk application:


https://youtu.be/1iPbDHbjbLU

As some of you may know, I work in a research institute, so the 
workflow is very specific to phylogeography and bioinformatics. But I 
hope you may find it useful as a showcase for Pharo, or to grab some 
ideas. It took some years to get here.


It also uses code many of you wrote, so you can say Hi! if you 
recognize your source there :)


Here is the web site for documentation and details: 
http://phyloclasstalk.github.io/


I would love to read your recommendations, or comments.

Cheers,

Hernán







Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread stepharo

I would love to see this package and a little documentation on it.


Stef

Le 29/9/16 à 15:02, Damien Pollet a écrit :
Same with transducers/reducers, except they work by pushing values 
through the pipeline instead of pulling them. The library I started 
porting from VW last year had a dual API, one more like the original 
Clojure transducers, and one more like Xtreams.


One nice point of going collection→stream & filters→result is that the 
final step is explicit, so you can pick what kind of result you build 
(could be a collection or a single aggregated value).


On 29 September 2016 at 12:40, Denis Kudriashov > wrote:



2016-09-29 12:39 GMT+02:00 Denis Kudriashov mailto:dionisi...@gmail.com>>:

and collect: could be rewritten to use a generator.

Now does anybody play with this already?

Does xtream provide a way to do something in the same vein?


Yes. XStream supports it:

(1 to: 1000) reading transforming: [:in :out | | each | each
:= in get. out  put: each -1; put: each; put: each + 1]


But you probably wants different:

(1 to: 1000) reading collecting: [:each | {each -1. each. each + 1} ]






Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread stepharo

Hi denis


Yes. XStream supports it:

(1 to: 1000) reading transforming: [:in :out | | each | each := in
get. out  put: each -1; put: each; put: each + 1]


But you probably wants different:

(1 to: 1000) reading collecting: [:each | {each -1. each. each + 1} ]


My point is can we control the next action so that we can take any 
collection

and turn it in a stream.

Stef



Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread Damien Pollet
It's in http://smalltalkhub.com/#!/~cdlm/Experiments

Not sure if it's Transducers or Reducers. Most probably the latter is the
ported code from VW, I recall having success running some examples, but the
tests probably will not (I recall trying to rewrite them using BabyMock2
but it's either failed or unfinished).

On 29 September 2016 at 16:50, stepharo  wrote:

> I would love to see this package and a little documentation on it.
>
> Stef
>
> Le 29/9/16 à 15:02, Damien Pollet a écrit :
>
> Same with transducers/reducers, except they work by pushing values through
> the pipeline instead of pulling them. The library I started porting from VW
> last year had a dual API, one more like the original Clojure transducers,
> and one more like Xtreams.
>
> One nice point of going collection→stream & filters→result is that the
> final step is explicit, so you can pick what kind of result you build
> (could be a collection or a single aggregated value).
>
> On 29 September 2016 at 12:40, Denis Kudriashov 
> wrote:
>
>>
>> 2016-09-29 12:39 GMT+02:00 Denis Kudriashov :
>>
>>> and collect: could be rewritten to use a generator.

 Now does anybody play with this already?

 Does xtream provide a way to do something in the same vein?

>>>
>>> Yes. XStream supports it:
>>>
>>> (1 to: 1000) reading transforming: [:in :out | | each | each := in get.
>>> out  put: each -1; put: each; put: each + 1]
>>>
>>
>> But you probably wants different:
>>
>> (1 to: 1000) reading collecting: [:each | {each -1. each. each + 1} ]
>>
>
>
>


Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread stepharo

Tx guille I will read it.


Le 29/9/16 à 11:47, Guille Polito a écrit :

Hi Stef,

I have some experiments I did last year in here

http://www.smalltalkhub.com/#!/~Guille/ReactiveExtensions

They allow you to do something like you want.

It is based on the ideas in

https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
http://www.introtorx.com/

These guys model a stream with different transformations (such as 
select:, collect: flatCollect: and so on...) as a chain of observers 
where each transformation observes the one before, transforms the 
result and notifies its observers with the modified value.


 - The funny side is that with these they can manage polymorphically 
both collections as streams, and normal streams (that may never end). 
Also they do nice things with concurrency and retry operations fairly 
easily.

 - The odd part is DEBUGGING this.
   * You may have tons of elements into your collection => Then you 
may block all incoming events as soon as you debug one.
   * You have to debug chains of observer/observed pairs, with the 
boilerplate code that comes to it. Maybe a domain specific debugger 
would be need for this...


Guille

Guille

 Original Message 

Hi

I was looking at how we can turn a collection into a stream.

I played with

g := Generator on: [ :gen |
| current |
current := 0.
[ gen yield: (current := current + 1) ] repeat ].
g next.

and now imagine that we have

(1 to: 1000) collect: [:each | {each -1 . each . each + 1}].

I was wondering how we could turn it into a stream

(1 to: 1000) asStream collect: [:each | {each -1 . each . each + 1}].

and what would be the asStream method.

for index based I can see that next

next is something like

next

^ self at: (current := current + 1)

and collect: could be rewritten to use a generator.

Now does anybody play with this already?

Does xtream provide a way to do something in the same vein?

We can have a stream of blocks.

Stef

















Re: [Pharo-users] turning a collection (interval for example) into a stream

2016-09-29 Thread Denis Kudriashov
2016-09-29 16:51 GMT+02:00 stepharo :

> Hi denis
>
> Yes. XStream supports it:
>>
>> (1 to: 1000) reading transforming: [:in :out | | each | each := in get.
>> out  put: each -1; put: each; put: each + 1]
>>
>
> But you probably wants different:
>
> (1 to: 1000) reading collecting: [:each | {each -1. each. each + 1} ]
>
>
> My point is can we control the next action so that we can take any
> collection
> and turn it in a stream.


Transforming is main approach to do this. And it is quite simple


Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Hernán Morales Durand
2016-09-29 5:22 GMT-03:00 Serge Stinckwich :

> On Thu, Sep 29, 2016 at 10:02 AM, Hernán Morales Durand
>  wrote:
> > Hi Serge,
> >
> > 2016-09-29 4:05 GMT-03:00 Serge Stinckwich :
> >>
> >> Hi Hernán,
> >>
> >> very impressive demo !
> >>
> >
> > Thanks!
> >
> >>
> >> We are working on similar tools in the context of epidemiological
> >> modelling:
> >> https://github.com/UMMISCO/kendrick
> >>
> >> I see the nice table views.
> >> Did you build something specific or reuse existing stuff ? Can you
> >> edit tables from UI ?
> >
> >
> > I built several support packages. From helpers like SpecUIAddOns and
> > StringExtensions to a Query Builder and a Project Framework (the Project
> UI
> > is based on the work of Peter Uhnak IIRC). The GenBank Browser could be
> > generalized to a XML node editor.
> >
> > For editing tables it was never a requirement for the app.
>
> Ok I will have a look later.
>
> >> Territories looks interesting. We might be interesting to use such
> >> information for building spatial epidemiology simulation evolving many
> >> countries. Looks at Ebola modelling we have done here:
> >>
> >> https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/
> EpidemiologicalModels/0301-EpidemiologicalModels.html
> >>
> >
> > It looks really interesting!
> >
> > For Territorial I am analyzing now what we could get from Bioregions.
> > Integration of repositories is not so straightforward, so I plan also to
> > finish my Code Generator to automate generation of classes and methods
> when
> > importing CSV's and XML's, a good test case could be the Unicode's CLDR.
> > In PhyloclasTalk for most analysis we start always from the reported DNA
> > sequences, for example if we would have to analyze Ebola we would start
> from
> > here
> > https://www.ncbi.nlm.nih.gov/genomes/VirusVariation/
> Database/nph-select.cgi
> > and then apply NER to curate the locations or other features of
> isolates. If
> > you execute the query for Zaire ebolavirus, the PhyloclassTalk GenBank
> > Browser could be adapted to load the CSV (which seems pretty curated) or
> > accession list, and then use the Classifier directly.
> > I see you define routes in your code, good starting point to add the
> feature
> > :)
>
> Routes ? yes, because usually when you are doing an epidemiological
> modeling, you want to know how the countries are connected and what
> the rates of propagation between these countries. Some people are
> using flights routes also (they are available freely on Internet).
>
> We are not working at the level of virus DNA sequences, we are just
> modelling propagation of diseases.
> But integrating both would be amazing in the long term.
>
> I think that Territorial is not MIT, all Kendrick code is MIT and I'm
> bit reluctant to mix licences.
> This is the only drawback for me at the moment.
>
>
I changed the Territorial license to MIT some days after the announce:
http://forum.world.st/ANN-Territorial-Re-Licensing-td4914705.html
Regards,

Hernán



> Regards,
> --
> Serge Stinckwich
> UCBN & UMI UMMISCO 209 (IRD/UPMC)
> Every DSL ends up being Smalltalk
> http://www.doesnotunderstand.org/
>
>


Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Denis Kudriashov
2016-09-29 9:05 GMT+02:00 Serge Stinckwich :

> I see the nice table views.
> Did you build something specific or reuse existing stuff ? Can you
> edit tables from UI ?
>

Just to mention: FastTable allows editing. It supports any morph inside
cells


Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Hernán Morales Durand
Thank you Alex!!

Cheers,

Hernán


2016-09-29 11:44 GMT-03:00 Alexandre Bergel :

> Hi Hernán,
>
> Impressive work!
> Very cool demo! Object Profile will advertise your work
>
> Alexandre
>
> On Sep 29, 2016, at 2:38 AM, Hernán Morales Durand <
> hernan.mora...@gmail.com> wrote:
>
>
> I want to share with you a video I did just yesterday (no audio yet) of
> the PhyloclassTalk application:
>
> https://youtu.be/1iPbDHbjbLU
>
> As some of you may know, I work in a research institute, so the workflow
> is very specific to phylogeography and bioinformatics. But I hope you may
> find it useful as a showcase for Pharo, or to grab some ideas. It took some
> years to get here.
>
> It also uses code many of you wrote, so you can say Hi! if you recognize
> your source there :)
>
> Here is the web site for documentation and details:
> http://phyloclasstalk.github.io/
>
> I would love to read your recommendations, or comments.
>
> Cheers,
>
> Hernán
>
>
>
>


Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Serge Stinckwich
Thank Denis. I'm a bit busy actually, but I will have a look.


On Thu, Sep 29, 2016 at 6:49 PM, Denis Kudriashov  wrote:
>
> 2016-09-29 9:05 GMT+02:00 Serge Stinckwich :
>>
>> I see the nice table views.
>> Did you build something specific or reuse existing stuff ? Can you
>> edit tables from UI ?
>
>
> Just to mention: FastTable allows editing. It supports any morph inside
> cells



-- 
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/



Re: [Pharo-users] PhyloclassTalk Demo Video

2016-09-29 Thread Serge Stinckwich
On Thu, Sep 29, 2016 at 6:38 PM, Hernán Morales Durand
 wrote:
>
>
> 2016-09-29 5:22 GMT-03:00 Serge Stinckwich :
>>
>> On Thu, Sep 29, 2016 at 10:02 AM, Hernán Morales Durand
>>  wrote:
>> > Hi Serge,
>> >
>> > 2016-09-29 4:05 GMT-03:00 Serge Stinckwich :
>> >>
>> >> Hi Hernán,
>> >>
>> >> very impressive demo !
>> >>
>> >
>> > Thanks!
>> >
>> >>
>> >> We are working on similar tools in the context of epidemiological
>> >> modelling:
>> >> https://github.com/UMMISCO/kendrick
>> >>
>> >> I see the nice table views.
>> >> Did you build something specific or reuse existing stuff ? Can you
>> >> edit tables from UI ?
>> >
>> >
>> > I built several support packages. From helpers like SpecUIAddOns and
>> > StringExtensions to a Query Builder and a Project Framework (the Project
>> > UI
>> > is based on the work of Peter Uhnak IIRC). The GenBank Browser could be
>> > generalized to a XML node editor.
>> >
>> > For editing tables it was never a requirement for the app.
>>
>> Ok I will have a look later.
>>
>> >> Territories looks interesting. We might be interesting to use such
>> >> information for building spatial epidemiology simulation evolving many
>> >> countries. Looks at Ebola modelling we have done here:
>> >>
>> >>
>> >> https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/EpidemiologicalModels/0301-EpidemiologicalModels.html
>> >>
>> >
>> > It looks really interesting!
>> >
>> > For Territorial I am analyzing now what we could get from Bioregions.
>> > Integration of repositories is not so straightforward, so I plan also to
>> > finish my Code Generator to automate generation of classes and methods
>> > when
>> > importing CSV's and XML's, a good test case could be the Unicode's CLDR.
>> > In PhyloclasTalk for most analysis we start always from the reported DNA
>> > sequences, for example if we would have to analyze Ebola we would start
>> > from
>> > here
>> >
>> > https://www.ncbi.nlm.nih.gov/genomes/VirusVariation/Database/nph-select.cgi
>> > and then apply NER to curate the locations or other features of
>> > isolates. If
>> > you execute the query for Zaire ebolavirus, the PhyloclassTalk GenBank
>> > Browser could be adapted to load the CSV (which seems pretty curated) or
>> > accession list, and then use the Classifier directly.
>> > I see you define routes in your code, good starting point to add the
>> > feature
>> > :)
>>
>> Routes ? yes, because usually when you are doing an epidemiological
>> modeling, you want to know how the countries are connected and what
>> the rates of propagation between these countries. Some people are
>> using flights routes also (they are available freely on Internet).
>>
>> We are not working at the level of virus DNA sequences, we are just
>> modelling propagation of diseases.
>> But integrating both would be amazing in the long term.
>>
>> I think that Territorial is not MIT, all Kendrick code is MIT and I'm
>> bit reluctant to mix licences.
>> This is the only drawback for me at the moment.
>>
>
> I changed the Territorial license to MIT some days after the announce:
> http://forum.world.st/ANN-Territorial-Re-Licensing-td4914705.html

Great Hernan !
Thank you. I will have a look when I found time :-)

-- 
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/



Re: [Pharo-users] Speeding-up >>#instVarNamed: in Pharo-5.0 and beyond?

2016-09-29 Thread Tudor Girba
Not bad! This should have a significant impact when creating Pharo objects out 
of external data.

Cheers,
Doru


> On Sep 29, 2016, at 2:04 PM, Holger Freyther  wrote:
> 
> 
>> On 29 Sep 2016, at 12:28, Denis Kudriashov  wrote:
>> 
>> Cool.
>> 
>> What the percentage of speedup?
> 
> Random micro benchmark...
> 
> | m |
> m := Morph new.
> [ | var |
>   var := m instVarNamed: #submorphs
> ] bench
> 
> From: 983,066 per second
> To: 1,302,098 per second
> 
> 
> 

--
www.tudorgirba.com
www.feenk.com

"Next time you see your life passing by, say 'hi' and get to know her."







[Pharo-users] About Seaside3.2

2016-09-29 Thread stepharo

Hi guys

I wanted to show latest version of Seaside and I took Seaside on CI

and I do not get ZincAdaptor. Seaside looks dying to me sadly.

What should I do ?

Stef