Re: [Pharo-users] I'd really love to use Pharo this way

2017-01-26 Thread Ben Coman
On Fri, Jan 27, 2017 at 3:36 AM, Offray Vladimir Luna Cárdenas
 wrote:
> Hi,
>
>
>
> On 26/01/17 05:43, Serge Stinckwich wrote:
>>
>> On Wed, Jan 25, 2017 at 10:29 PM, Offray Vladimir Luna Cárdenas
>>  wrote:
>>>
>>> Hi Jose,
>>>
>>> I'm building something that has ideas borrowed from Jupyter notebook[a],
>>> Leo
>>> Editor[b] and Pharo/Smalltalk and few other original ones. The more I see
>>> the connections between stuff like Eve[1], org-mode[2], Jupyter Lab[3], I
>>> think that the time for literate computing[4] (a development beyond
>>> literal
>>> programming), reproducible research and live coding is coming.
>>>
>>> [a] http://jupyter.org/
>>> [b] http://leoeditor.com/
>>> [1]
>>>
>>> https://hackernoon.com/smalltalk-and-protein-programming-4da245ac93e2#.2riwbeeia
>>> [2] https://www.jstatsoft.org/article/view/v046i03
>>> [3] http://jupyterlab.github.io/jupyterlab/
>>> [4]
>>>
>>> http://blog.jupyter.org/2015/07/07/project-jupyter-computational-narratives-as-the-engine-of-collaborative-data-science/
>>
>> I'm currently using Jupyter notebook with some of my students for
>> doing simulation of dynamical systems and they love it I guess. I'm
>> not a big fan of the UI because it still looks like a web page and the
>> interaction is still somewhat limited compared to what you can do with
>> Pharo.
>> I'm also a big fan of org-mode and even more powefull than Jupyter
>> notebooks because you can mix different computer languages at the same
>> time and there is a real support for folding.
>
>
> Yes, I am not a big fan of Jupyter notebook neither. Sounds kind of mean,
> but the actual interface is like a glorified REPL log, powered by HTML
> output, with a linear sequence of single input/output pair of cells. So
> notebooks authors have two options: split the document into several files,
> loosing the general overview of the document or a single long "reel" of REPL
> log, with too much detail at the same time (I have experience this by myself
> [1]). I think that org-mode and interactive outliners (as exemplified in
> [2][3])  are better suited to manage exploratory literate computing,
> interactive documentation, and the "emergent" order that writing implies.
>
> [1] http://mutabit.com/repos.fossil/piamed/doc/tip/Afiche/narrativa.png
> [2] https://youtu.be/dljNabciEGg
> [3] http://xiki.org/screencasts/
>
>
>> If you remember I have
>> done a small show us "your project" last ESUG about some experience I
>> have done about be able to run Pharo code inside org-mode.
>
>
> Yes, I remember :-). I was also the "USB guy" in the orange cap team :-P, so
> I was taking care of logistics and didn't see as much as I would like of the
> event :-/
>
>>
>> At the moment, we are quite interested in my research group to be able
>> to a kind of literate style of computing for modeling and simulation
>> of complex systems like simulation of epidemiology models. This is
>> something we can do with Jupyter but would be even more interesting in
>> the context of Pharo.
>>
>> Eve looks also very interesting but I have to read more about this one.
>
> [...]
>>
>> I really like what you done until now with Grafoscopio and I will try
>> to help and use it for own work in the future.
>
>
> Because of the uniform, moldable and integrated nature of Pharo, I think
> that Grafoscopio, even in its early stages, prototypes stuff that others,
> like Jupyter Lab, are trying to reach, for example trying to go beyond the
> notebook and having a extensible computing environment available to the
> notebooks. With Grafoscopio we already have that (thanks to being "inside"
> Pharo).
>
> Maybe a first try to integrate our work could be to have some Kendrick
> notebook in Grafoscopio. I have to fix some important bugs, but Grafoscopio
> is already usable for this kind of scenario and, of course, any help is more
> that welcomed!
>
> (There is still a nasty bug about playgrounds that produce text output
> replacing the playground code, but I hope to fix it soon).
>
>> I have to look to Fossil. Is it possible to linked in someways to git ?
>
>
> Yes, there is some fossil to git bridge. I will try to give support to
> fossil first, to have a smooth integrated experience, but that doesn't
> preclude the use of other DVCS to work with.
>
>> I was thinking that maybe that I will submit a gsoc proposal to have
>> some support in Jupyter notebooks for Pharo.
>> Apparently this not that difficult to built a basic support and after
>> that we can built some elaborate on top of it.
>> What do you about that ?
>>
>> Regards,
>
>
> I would like better a GSoC proposal to improve Grafoscopio, as a literate
> computing environment for Pharo.

This sounds like a good idea.  If the project proposal compares and
contrasts with the competitors,
as well as showing why its not a "me-too" project,
this would highlight the advantages of Pharo's approach and why its a
worthwhile ecosystem for GSoC to support.

cheers -ben

> Jupyter is popular but pretty limited in
> ter

Re: [Pharo-users] [Pharo-dev] Pharo by Example 50 released!

2017-01-26 Thread stepharong

I should publish the HTML version and put in on the web.
Just no time. 

Stef


Both PDF and HTML version are built automagically each time we commit to  
the github repository so you do not need to way, just tell people to  
always visit to be kept up to date


PDF version

https://ci.inria.fr/pharo-contribution/view/Books/job/UpdatedPharoByExample/lastSuccessfulBuild/artifact/book-result/UpdatedPharoByExample.pdf

HTML version

https://ci.inria.fr/pharo-contribution/job/UpdatedPharoByExample/lastSuccessfulBuild/artifact/book-result/

each folder contains both pdf and html version of each chapter, enjoy :)
On Sun, Jan 22, 2017 at 6:11 PM Sven Van Caekenberghe   
wrote:
Great work, can't wait for the HTML version (to link to when answering  
questions).


Thank you !


On 22 Jan 2017, at 16:53, stepharong  wrote:

https://pharoweekly.wordpress.com/2017/01/22/pharo-by-example-50-released/

Super special thanks to Nicolai Hess that pushed me to do the last  
steps to release.

Thanks Nicolai your steady commits pushed me!

Stef








--
Using Opera's mail client: http://www.opera.com/mail/

Re: [Pharo-users] I'd really love to use Pharo this way

2017-01-26 Thread Offray Vladimir Luna Cárdenas

Hi,


On 26/01/17 05:43, Serge Stinckwich wrote:

On Wed, Jan 25, 2017 at 10:29 PM, Offray Vladimir Luna Cárdenas
 wrote:

Hi Jose,

I'm building something that has ideas borrowed from Jupyter notebook[a], Leo
Editor[b] and Pharo/Smalltalk and few other original ones. The more I see
the connections between stuff like Eve[1], org-mode[2], Jupyter Lab[3], I
think that the time for literate computing[4] (a development beyond literal
programming), reproducible research and live coding is coming.

[a] http://jupyter.org/
[b] http://leoeditor.com/
[1]
https://hackernoon.com/smalltalk-and-protein-programming-4da245ac93e2#.2riwbeeia
[2] https://www.jstatsoft.org/article/view/v046i03
[3] http://jupyterlab.github.io/jupyterlab/
[4]
http://blog.jupyter.org/2015/07/07/project-jupyter-computational-narratives-as-the-engine-of-collaborative-data-science/

I'm currently using Jupyter notebook with some of my students for
doing simulation of dynamical systems and they love it I guess. I'm
not a big fan of the UI because it still looks like a web page and the
interaction is still somewhat limited compared to what you can do with
Pharo.
I'm also a big fan of org-mode and even more powefull than Jupyter
notebooks because you can mix different computer languages at the same
time and there is a real support for folding.


Yes, I am not a big fan of Jupyter notebook neither. Sounds kind of 
mean, but the actual interface is like a glorified REPL log, powered by 
HTML output, with a linear sequence of single input/output pair of 
cells. So notebooks authors have two options: split the document into 
several files, loosing the general overview of the document or a single 
long "reel" of REPL log, with too much detail at the same time (I have 
experience this by myself [1]). I think that org-mode and interactive 
outliners (as exemplified in [2][3])  are better suited to manage 
exploratory literate computing, interactive documentation, and the 
"emergent" order that writing implies.


[1] http://mutabit.com/repos.fossil/piamed/doc/tip/Afiche/narrativa.png
[2] https://youtu.be/dljNabciEGg
[3] http://xiki.org/screencasts/



If you remember I have
done a small show us "your project" last ESUG about some experience I
have done about be able to run Pharo code inside org-mode.


Yes, I remember :-). I was also the "USB guy" in the orange cap team 
:-P, so I was taking care of logistics and didn't see as much as I would 
like of the event :-/




At the moment, we are quite interested in my research group to be able
to a kind of literate style of computing for modeling and simulation
of complex systems like simulation of epidemiology models. This is
something we can do with Jupyter but would be even more interesting in
the context of Pharo.

Eve looks also very interesting but I have to read more about this one.

[...]

I really like what you done until now with Grafoscopio and I will try
to help and use it for own work in the future.


Because of the uniform, moldable and integrated nature of Pharo, I think 
that Grafoscopio, even in its early stages, prototypes stuff that 
others, like Jupyter Lab, are trying to reach, for example trying to go 
beyond the notebook and having a extensible computing environment 
available to the notebooks. With Grafoscopio we already have that 
(thanks to being "inside" Pharo).


Maybe a first try to integrate our work could be to have some Kendrick 
notebook in Grafoscopio. I have to fix some important bugs, but 
Grafoscopio is already usable for this kind of scenario and, of course, 
any help is more that welcomed!


(There is still a nasty bug about playgrounds that produce text output 
replacing the playground code, but I hope to fix it soon).



I have to look to Fossil. Is it possible to linked in someways to git ?


Yes, there is some fossil to git bridge. I will try to give support to 
fossil first, to have a smooth integrated experience, but that doesn't 
preclude the use of other DVCS to work with.



I was thinking that maybe that I will submit a gsoc proposal to have
some support in Jupyter notebooks for Pharo.
Apparently this not that difficult to built a basic support and after
that we can built some elaborate on top of it.
What do you about that ?

Regards,


I would like better a GSoC proposal to improve Grafoscopio, as a 
literate computing environment for Pharo. Jupyter is popular but pretty 
limited in terms of the notebooks document model and the moldabiliy of 
the environment or the live coding capabilities (but it's improving). 
For me, the big advantage of Jupyter or Org-mode is their language 
agnostic architecture, while Grafoscopio is focused on Pharo/Smalltalk. 
But language specific computing suites (like RStudio) are still 
appealing for projects like GSoC.


A Grafoscopio GSoC proposal would try to improve several items:

- User interface and functionality: Keyboard shorcuts, GUI bugs, 
integrated pdf export (via pandoc/LaTeX), integrated asynchronous 
lightweight collabo

Re: [Pharo-users] Deployment pharo with multiple instances and voyage

2017-01-26 Thread Alexandre Bergel
+1

> Le 26 janv. 2017 à 16:10, stepharong  a écrit :
> 
> This is great
> I would love to know what is your application and we should add it in the 
> success stories.
> 
> Stef
> 
>> Hi!
>> 
>> I’m close to deploy a web service using Pharo with Voyage and MongoDB. I 
>> have been playing with it and everything works ok with a single Pharo image.
>> 
>> Couple of days ago I started questioning myself about how voyage behaves 
>> when you have multiple pharo images using the same mongo database 
>> (horizontal scaling). I want to know how the cache of voyage behaves in a 
>> scenario with object updates.
>> 
>> Example: ——
>> Imagine I have two images A and B.
>> 
>> - Image A query for object o and voyage put it in the cache.
>> - Image B query for object o and voyage put it in the cache.
>> - Image A updates object o and push it into the database calling #save.
>> - Image B query for object o that should be already in the cache.
>> 
>> In this case, does Image B see the changes performed by image A?
>> ——
>> 
>> All ideas are welcome :)
>> 
>> Thanks and cheers!
>> Alejandro
> 
> 
> -- 
> Using Opera's mail client: http://www.opera.com/mail/
> 



Re: [Pharo-users] Deployment pharo with multiple instances and voyage

2017-01-26 Thread stepharong

This is great
I would love to know what is your application and we should add it in the  
success stories.


Stef


Hi!

I’m close to deploy a web service using Pharo with Voyage and MongoDB. I  
have been playing with it and everything works ok with a single Pharo  
image.


Couple of days ago I started questioning myself about how voyage behaves  
when you have multiple pharo images using the same mongo database  
(horizontal scaling). I want to know how the cache of voyage behaves in  
a scenario with object updates.


Example: ——
Imagine I have two images A and B.

- Image A query for object o and voyage put it in the cache.
- Image B query for object o and voyage put it in the cache.
- Image A updates object o and push it into the database calling #save.
- Image B query for object o that should be already in the cache.

In this case, does Image B see the changes performed by image A?
——

All ideas are welcome :)

Thanks and cheers!
Alejandro



--
Using Opera's mail client: http://www.opera.com/mail/



Re: [Pharo-users] Deployment pharo with multiple instances and voyage

2017-01-26 Thread Henrik Johansen

> On 25 Jan 2017, at 22:39 , Alejandro Infante  
> wrote:
> 
> Cool! Thanks for the answers!
> 
> Norbert mentions something interesting about references. 
> I have found that even though on each query mongo get the up-to-date version 
> of the objects, it does not install the proxies to look for the up-to-date 
> versions of the references of the queried object.
> 
> I made the following experiment:
> Having two images 1 and 2 and two classes A and B, each of them having one 
> instance variable.
> —
> Image 1 (Create two objects, “a” referencing “b”)
> [ |a b|
> a := A new.
> b := B new
> a setInstVar: b.
> b setInstVar: ‘foo'.
> b save.
> a save.
> ]
> 
> Image 2 (Mutates the second object, but the first is not changed)
> [
> b := (repository selectAll: A) first instVar.
> b setInstVar: ‘bar’.
> b save.
> ]
> 
> Image 1 (Query the first object and access to the referenced object)
> [
> b := (repository selectAll: A) first instVar.
> b instVar. “-> foo”
> b := (repository selectAll: B) first.
> b instVar. “-> bar"
> ]
> 
> This little experiment showed me that I cannot trust on the state of other 
> objects that I have not explicitly queried for. 
> 
> Is there any way of solving this without creating new instances of voyage 
> repositories for each request?
> 
> Thanks!
> Alejandro

Three, actually ;)

- Accept that an image will contain some stale values, and deal with conflicts 
at save time.
This is the most performant/scalable.
- Always save only root objects
More overhead since there's more likeliness of cache misses and actual reloads, 
but you can be sure any query will return the freshest value.
- Extend retrieveObjectOf:json: to either replace doc refs with proxies, or do 
eager (recursive) lookup of whether cached versions of referenced documents are 
up-to-date when returning a cached object.

In reality, only the first really makes sense; as you can never guarantee how 
long a queried object stays current.

Cheers,
Henry


Re: [Pharo-users] [ANN] Pharo Sprint Friday, Jan 27

2017-01-26 Thread Marcus Denker

> On 26 Jan 2017, at 14:30, Marcus Denker  wrote:
> 
> (this is a bit late… next will be announced earlier. I will start to put the 
> sprints as official 
> events on the assoc site, too)

https://association.pharo.org/event-2447196 


No idea if it makes sense to have them listed here…

Marcus



[Pharo-users] [ANN] Pharo Sprint Friday, Jan 27

2017-01-26 Thread Marcus Denker
(this is a bit late… next will be announced earlier. I will start to put the 
sprints as official 
events on the assoc site, too)


We will organize a Pharo sprint / Moose dojo Friday, 27 Jan, starting at
10:00am. (Local Time Paris).

Goals of this sprint:
- Clean issue tracker to prepare for release Pharo6 
- remove Pharo6 tag from not-important cases
- Check Pharo5 Issues and pending back-ports

Remote Sprint


Remotely, you can join us on Slack. During the sprint, we will try to 
synchronize
local and remote Pharo sprinters.


Known Local Sprint meeting organised
==

We know about just one for this sprint:

Lille/France:
It will be at the Inria Lille, Building B, third floor (RMoD offices).
As the building is not open to the public, please contact us before if
you plan to come.

Re: [Pharo-users] Code loading/unloading order

2017-01-26 Thread Christophe Demarey

> Le 26 janv. 2017 à 12:25, webwarrior  a écrit :
> 
> Thanks.
> 
> Reason why I ask is because I ran into some issues with slots that depended
> on other classes in the package (when creating slot, like SomeSlot new
> valueClass: SomeOtherClass). I had to move slots into separate package to
> make it work.

probably because dependency computation done by Monticello does not take into 
account slots.
would be a good addition.


Re: [Pharo-users] Code loading/unloading order

2017-01-26 Thread webwarrior
Thanks.

Reason why I ask is because I ran into some issues with slots that depended
on other classes in the package (when creating slot, like SomeSlot new
valueClass: SomeOtherClass). I had to move slots into separate package to
make it work.

Like when you work on your code it's all good, but then you load it in other
image - and whoops... something's broken.



--
View this message in context: 
http://forum.world.st/Code-loading-unloading-order-tp4930611p4930944.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Re: [Pharo-users] I'd really love to use Pharo this way

2017-01-26 Thread Serge Stinckwich
On Wed, Jan 25, 2017 at 10:29 PM, Offray Vladimir Luna Cárdenas
 wrote:
> Hi Jose,
>
> I'm building something that has ideas borrowed from Jupyter notebook[a], Leo
> Editor[b] and Pharo/Smalltalk and few other original ones. The more I see
> the connections between stuff like Eve[1], org-mode[2], Jupyter Lab[3], I
> think that the time for literate computing[4] (a development beyond literal
> programming), reproducible research and live coding is coming.
>
> [a] http://jupyter.org/
> [b] http://leoeditor.com/
> [1]
> https://hackernoon.com/smalltalk-and-protein-programming-4da245ac93e2#.2riwbeeia
> [2] https://www.jstatsoft.org/article/view/v046i03
> [3] http://jupyterlab.github.io/jupyterlab/
> [4]
> http://blog.jupyter.org/2015/07/07/project-jupyter-computational-narratives-as-the-engine-of-collaborative-data-science/

I'm currently using Jupyter notebook with some of my students for
doing simulation of dynamical systems and they love it I guess. I'm
not a big fan of the UI because it still looks like a web page and the
interaction is still somewhat limited compared to what you can do with
Pharo.
I'm also a big fan of org-mode and even more powefull than Jupyter
notebooks because you can mix different computer languages at the same
time and there is a real support for folding. If you remember I have
done a small show us "your project" last ESUG about some experience I
have done about be able to run Pharo code inside org-mode.

At the moment, we are quite interested in my research group to be able
to a kind of literate style of computing for modeling and simulation
of complex systems like simulation of epidemiology models. This is
something we can do with Jupyter but would be even more interesting in
the context of Pharo.

Eve looks also very interesting but I have to read more about this one.

> These ideas are about expanding programming beyond programmers, for other
> professionals and authors that need to use computational thinking to tackle
> and talk about complex issues and themes. My approach is that these authors
> are going to use document as the central metaphor for their work (in a
> similar way to Mathematica notebooks) and that's why Grafoscopio is using
> the notebook as the organizing concept. Grafoscopio's interactive notebooks
> are tree-like documents, and soon you will be able to create custom tags to
> traverse them, and produce several outputs, from a single document.
>
> Having Pharo as a base for the Grafoscopio development brings a powerful
> environment to crystallize and explore several of the literate computing
> ideas. For example, Eve's idea of "programming without order" is already
> possible in Pharo (of course in both environments, you will be send to the
> debugger to define what is missing). Also you can use document as the
> central metaphor for organizing thinking (not classes, or protocols, or
> messages) while enjoying of a continuous environment to connect documents
> with Domain Specific Languages made with this "classical" objects thinking.
>
> Grafoscopio is my first "app" and the one I made to learn Pharo/Smalltalk.
> If you are interested in exploring the literate computing ideas in Pharo,
> you're welcomed to our community. I can be your peer teach what I have
> learned so far, and learn with you. We have a low traffic Spanish mailing
> list[5], but we can handle English there also (or in this mailing list), and
> our fossil repository for documentation and issues[6].
>
> [5] http://mutabit.com/grafoscopio/index.en.html#contacto
> [6] http://mutabit.com/repos.fossil/grafoscopio/
>
> Now I'm improving the English documentation (we have a local Spanish first
> approach for documentation) so you will have a better introduction to
> Grafoscopio, its usage and its community. I'll notify the community when is
> done.

I really like what you done until now with Grafoscopio and I will try
to help and use it for own work in the future.
I have to look to Fossil. Is it possible to linked in someways to git ?

I was thinking that maybe that I will submit a gsoc proposal to have
some support in Jupyter notebooks for Pharo.
Apparently this not that difficult to built a basic support and after
that we can built some elaborate on top of it.
What do you about that ?

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