Re: [Pharo-users] Status of Tabular

2019-01-10 Thread H. Hirzel
Hi Sven

The most recent discussion was November 2018 on Pharo-Dev ML

Subject: Excel export with Tabular

Repo now: https://github.com/VincentBlondeau/Tabular

--Hannes

On 1/10/19, Sven Van Caekenberghe  wrote:
> Hi,
>
> What is the status of Tabular (the Excel export package) ?
> There was some talk about recent additions, where are they ?
> There was some talk about moving this project to GitHub, has this been done
> ?
>
> Sven
>
>
>



Re: [Pharo-users] Dictionary and Date as keys

2018-10-17 Thread H. Hirzel
Maybe this happened with Squeak version 3.7?

http://wiki.squeak.org/squeak/1871

--Hannes

On 10/17/18, Richard O'Keefe  wrote:
> There is an elephant in the room.  Historically and in Smalltalks such as
> GNU Smalltalk, Smalltalk/X, my Smalltalk->C system, VisualAge Smalltalk,
> and VisualWOrks, a Date is *not* a TimeSpan and is *not* associated with
> a time zone or a zone offset.  It's generally a direct subclass of
> Magnitude.  And this was originally true in Squeak as well.  I just had a
> look at SqueakV2.source to verify that.
>
> At some point subsequent to the 2.x series, Squeak made an incompatible
> and to me incomprehensible change, with the result that "Date" in today's
> Squeak and Pharo is incompatible with every other Smalltalk I've been able
> to check: it does not mean the same thing any more and cannot be used the
> same ways.
>
> The "classic" semantics is that a Date represents a cultural item, a day
> in the proleptic Gregorian calendar, without reference to any particular
> locality.  For example, my most recent birthday was 2018-10-11, and it
> would have been the same *date* but not the same *timespan* no matter
> where I was in the world.  The USA celebrated President's day on
> 2018-02-19 this year, and it was the same *date* in every state, but
> by no means the same *timespan*.
>
> Now, granting the utility of a class to represent the timespan associated
> with a date in a given timezone, the obvious way to introduce it would
> have been to introduce a new DateInZone class.  Sadly, in Squeak the
> Date class was changed incompatibly to take that role, with nothing left
> to do what Date usefully did (and still does elsewhere).
>
> So now we have the problem that the original poster wanted to do
> something perfectly sensible that works in nearly every other Smalltalk
> and used to work in Squeak, but it doesn't work in Pharo.
>
> In this situation, I'd be strongly inclined to port say GNU Smalltalk's
> Date class, renaming it to CompatibleDate, add a global variable
> DateInZone, and add methods
>   CompatibleDate>>inZone:
>   DateInZone>>sansZone
>
>
>
> On Wed, 17 Oct 2018 at 09:44, Sven Van Caekenberghe  wrote:
>
>>
>>
>> > On 16 Oct 2018, at 22:27, Alistair Grant  wrote:
>> >
>> > Hi Petr,
>> >
>> > On Tue, 16 Oct 2018 at 21:25, Petr Fischer via Pharo-users
>> >  wrote:
>> >>
>> >> My problem - use Dates as Dictionary keys - shortly:
>> >>
>> >> d1 := Date today translateToUTC.
>> >> d2 := Date today.
>> >>
>> >> d1 = d2. (true!)
>> >
>> > Which timezone are you in?
>> >
>> > CEDT (UTC+0200) gives false for this.
>> >
>> > Date is implemented primarily as a timespan, so days in different
>> > timezones are considered different.  If you do:
>> >
>> > | d1 d2 |
>> >
>> > d1 := Date today translateTo: (TimeZone abbreviated: 'UTC') offset.
>> > d2 := Date today translateTo: (TimeZone abbreviated: 'EST') offset.
>> >
>> > { d1 = d2.  d1 equals: d2 }
>> >
>> >
>> > You can see the difference.
>> >
>> > Of course, this doesn't help with using Date as a key in a dictionary.
>> > Probably your best option is to look at Sven's excellent ZTimezone
>> > package (although I haven't tested it in this scenario).
>> >
>> > I can't find the repository right now (I think Sven moved it to
>> github).  Sven?
>>
>> It is called ZTimestamp and it lives in various places, for example:
>> https://github.com/svenvc/ztimestamp
>>
>> > Cheers,
>> > Alistair
>> >
>> >
>> >
>> >> d := Dictionary new.
>> >> d at: d1 put: 1.
>> >>
>> >> d at: d1. (ok)
>> >> d at: d2. (bad - key not found)
>> >>
>> >> ---
>> >>
>> >> pf
>> >>
>> >
>>
>>
>>
>



Re: [Pharo-users] Installing SmaCC

2018-10-16 Thread H. Hirzel
The successor of Ni is 'Spry'

https://github.com/gokr/spry
http://sprylang.se/

"Spry borrows homoiconicity from Rebol and Lisp, free form syntax from
Forth and Rebol, the word of different types from Rebol, good data
structure literal support from JavaScript and the general coding
experience and style from Smalltalk. It also has a few ideas of its
own, like an interesting argument passing mechanism and a relatively
novel take on OO."

--Hannes

On 10/17/18, Ben Coman  wrote:
> Have you looked at Ni?  (I only read about it)
> http://goran.krampe.se/2015/09/16/ni-a-strange-little-language/
>
> cheers -ben
>
> On Wed, 17 Oct 2018 at 03:45, Dimitris Chloupis 
> wrote:
>
>> Thank you Thierry , that was exactly what i was looking for :)
>>
>> On the subject of syntax, StrongTalk looks far more advanced compared to
>> what I am aiming which is basically writting C code with Smalltalk like
>> syntax. I am looking at this
>>
>> http://bracha.org/nwst.html
>>
>> Which describes some really impressive features. So I am aiming only for
>> source to source compiler and not implementation of complex systems for
>> incremental compilations , optional type system etc.
>>
>> On parsing strange code that is not much of an issue cause the project I
>> am working on has pretty reasonable code and will probably offer a way to
>> inline c code in case the parser fail. In any case my goals are small ,
>> cause I dont have resources for complex implementations. Its also a
>> language that will be designed solely for my needs and be offered open
>> source for anyone else that may find it useful. In any case I am sure I
>> will have many questions to ask :)
>>
>> I was looking into ANTLR , since the book I am reading on language design
>> is using ANTLR but I rather implement this in Pharo. I used SmaCC when I
>> was working for my Python bridge and I really liked it , mostly because
>> it
>> offers ready made syntax definitions for most popular languages. Which
>> makes my life a lot easier.
>>
>>
>> On Tue, Oct 16, 2018 at 9:45 PM Thierry Goubier
>> 
>> wrote:
>>
>>> Hi Dimitris,
>>>
>>> Le 16/10/2018 à 19:39, Dimitris Chloupis a écrit :
>>> > yes i already said that i followed the instructions in the github repo
>>>
>>> Yes, by default that installation of SmaCC does not load all parsers
>>> (some of them are fairly large). However, most of them are in the
>>> downloaded repository, so you can load them independently.
>>>
>>> Otherwise, loading that way, should load everything:
>>>
>>> Metacello new
>>>baseline: 'SmaCC';
>>>repository: 'github://SmaCCRefactoring/SmaCC';
>>>load: #('Tools' 'Examples' 'Examples-Extra')
>>>
>>> Regarding your language question, I'd suggest two things:
>>>
>>> - Look at StrongTalk for a way to write Smalltalk with type
>>> declarations...
>>>
>>> - C parsers able to parse most strange C code one may encounter takes
>>> some work...
>>>
>>> Regards,
>>>
>>> Thierry
>>>
>>> > On Tue, Oct 16, 2018 at 8:18 PM H. Hirzel >> > <mailto:hannes.hir...@gmail.com>> wrote:
>>> >
>>> > Refers to
>>> > https://github.com/SmaCCRefactoring/SmaCC
>>> >
>>> > which says
>>> >
>>> >   This is the port for Smalltalk/Pharo 1.3, 2, 3, 4, 5 and 6.
>>> >
>>> >
>>> > Installing a Development version of Pharo for the latest Pharo
>>> > (with
>>> > no guarantees):
>>> >
>>> > Metacello new
>>> >  baseline: 'SmaCC';
>>> >  repository: 'github://SmaCCRefactoring/SmaCC';
>>> >  load
>>> >
>>> > On 10/16/18, H. Hirzel >> > <mailto:hannes.hir...@gmail.com>> wrote:
>>> >  > What about trying
>>> >  >
>>> >  >
>>> >  > Metacello new
>>> >  > baseline: 'SmaCC';
>>> >  > repository: 'github://ThierryGoubier/SmaCC';
>>> >  > load
>>> >  >
>>> >  > This worked in Pharo 6.1 in November 2017
>>> >  >
>>> >  > On 10/16/18, Dimitris Chloupis >> > <mailto:kilon.al...@gmail.com>> wrote:
>>> >  >> thanks for the info Peter , will gi

Re: [Pharo-users] Installing SmaCC

2018-10-16 Thread H. Hirzel
Refers to
https://github.com/SmaCCRefactoring/SmaCC

which says

 This is the port for Smalltalk/Pharo 1.3, 2, 3, 4, 5 and 6.


Installing a Development version of Pharo for the latest Pharo (with
no guarantees):

Metacello new
baseline: 'SmaCC';
repository: 'github://SmaCCRefactoring/SmaCC';
load

On 10/16/18, H. Hirzel  wrote:
> What about trying
>
>
> Metacello new
> baseline: 'SmaCC';
> repository: 'github://ThierryGoubier/SmaCC';
> load
>
> This worked in Pharo 6.1 in November 2017
>
> On 10/16/18, Dimitris Chloupis  wrote:
>> thanks for the info Peter , will give it a try :)
>>
>> On Tue, Oct 16, 2018 at 7:35 PM PBKResearch 
>> wrote:
>>
>>> Dimitris
>>>
>>>
>>>
>>> If you download the latest Moose Suite 6.1, you will have Pharo 6.1 with
>>> lots of extra packages, including SmaCC. The SmaCC includes compilers
>>> for
>>> C, Smalltalk and Java, among others, but with little or no
>>> documentation.
>>> I
>>> am not a SmaCC expert, so I can’t say whether it will do what you want,
>>> but
>>> at least it will give you a start. Moose also includes PetitParser and
>>> PP2,if you want to try other parsing approaches. Of course, the Windows
>>> version is 32-bit only, for reasons explained elsewhere in this thread.
>>>
>>>
>>>
>>> HTH
>>>
>>>
>>>
>>> Peter Kenny
>>>
>>>
>>>
>>> *From:* Pharo-users  *On Behalf Of
>>> *Dimitris
>>> Chloupis
>>> *Sent:* 16 October 2018 15:40
>>> *To:* Any question about pharo is welcome 
>>> *Subject:* [Pharo-users] Installing SmaCC
>>>
>>>
>>>
>>> Hey guys
>>>
>>>
>>>
>>> I downloaded the latest Pharo 6.1 64bit for Windows and tried to install
>>> SmaCC through the catalog browser but it failed
>>>
>>>
>>>
>>> I did manage to install it following the instruction in the github repo
>>> but I see that I am missing most parser packages.
>>>
>>>
>>>
>>> The languages I am interested are Smalltalk (which is included) and C
>>> (if
>>> possible C++ too) cause I will be creating a new language which will be
>>> a
>>> cross between C and Smalltalk (very similar to smalltalk syntax but with
>>> the addtion of C types and no GC and dynamic typing and also a partial
>>> implementation of OOP that is quite diffirent). My goal is compilation
>>> of
>>> my language to readable C code so the ability to parse also existing C
>>> code
>>> is needed.
>>>
>>>
>>>
>>> Any help is greatly appreciated , thanks :)
>>>
>>
>



Re: [Pharo-users] Installing SmaCC

2018-10-16 Thread H. Hirzel
What about trying


Metacello new
baseline: 'SmaCC';
repository: 'github://ThierryGoubier/SmaCC';
load

This worked in Pharo 6.1 in November 2017

On 10/16/18, Dimitris Chloupis  wrote:
> thanks for the info Peter , will give it a try :)
>
> On Tue, Oct 16, 2018 at 7:35 PM PBKResearch 
> wrote:
>
>> Dimitris
>>
>>
>>
>> If you download the latest Moose Suite 6.1, you will have Pharo 6.1 with
>> lots of extra packages, including SmaCC. The SmaCC includes compilers for
>> C, Smalltalk and Java, among others, but with little or no documentation.
>> I
>> am not a SmaCC expert, so I can’t say whether it will do what you want,
>> but
>> at least it will give you a start. Moose also includes PetitParser and
>> PP2,if you want to try other parsing approaches. Of course, the Windows
>> version is 32-bit only, for reasons explained elsewhere in this thread.
>>
>>
>>
>> HTH
>>
>>
>>
>> Peter Kenny
>>
>>
>>
>> *From:* Pharo-users  *On Behalf Of
>> *Dimitris
>> Chloupis
>> *Sent:* 16 October 2018 15:40
>> *To:* Any question about pharo is welcome 
>> *Subject:* [Pharo-users] Installing SmaCC
>>
>>
>>
>> Hey guys
>>
>>
>>
>> I downloaded the latest Pharo 6.1 64bit for Windows and tried to install
>> SmaCC through the catalog browser but it failed
>>
>>
>>
>> I did manage to install it following the instruction in the github repo
>> but I see that I am missing most parser packages.
>>
>>
>>
>> The languages I am interested are Smalltalk (which is included) and C (if
>> possible C++ too) cause I will be creating a new language which will be a
>> cross between C and Smalltalk (very similar to smalltalk syntax but with
>> the addtion of C types and no GC and dynamic typing and also a partial
>> implementation of OOP that is quite diffirent). My goal is compilation of
>> my language to readable C code so the ability to parse also existing C
>> code
>> is needed.
>>
>>
>>
>> Any help is greatly appreciated , thanks :)
>>
>



[Pharo-users] World Cup 2018 with Glorp : SQL dump for SQLite : wc2018.sql

2018-10-11 Thread H. Hirzel
Hi Pierce

In your blog entry
'World Cup 2018 with Glorp'
you write about an SQL dump file wc2018.sql and mention a repo?

https://github.com/openfootball/world-cup/tree/master/2018--russia

seems to be a candidate, but on SQL.

In which repo is it?

--Hannes



Re: [Pharo-users] What is the easiest way to get SQLite3 support in Pharo7? (Ubuntu)

2018-10-11 Thread H. Hirzel
Hi Pierce

Great! Just this very minute before I saw your mail I found your
website with a lot of Pharo related SQLite posts.

For example
http://www.samadhiweb.com/blog/2018.05.20.sqlite.boolean.html

Are you the maintainer of GlorpSQLite?

--Hannes

On 10/11/18, Pierce Ng  wrote:
> On Thu, Oct 11, 2018 at 03:38:21PM +0200, H. Hirzel wrote:
>> What is the easiest way to get SQLite3 support in Pharo7 (Ubuntu Linux)?
>
> Hi Hannes,
>
> Until the catalog is updated, the snippet way is as follows:
>
>   Metacello new
> repository: 'github://pharo-rdbms/glorp-sqlite3';
> baseline: 'GlorpSQLite';
> load.
>
> I'm on Ubuntu 18.04. I've just run the above for Pharo7.0 f8ef5eb
> images, both 32- and 64-bit. After installing, in Test Runner, I
> selected UDBC and ran the SQLite tests: all 82 UDBCSQLite tests passed.
> For Glorp, on both, 891 run, 881 passes, 10 errors. For good measure, I
> did the same in a fresh Pharo-60543 image, and this time all 891 Glorp
> tests passed. So need to look into Glorp on Pharo 7.
>
> Pierce
>
>
>



[Pharo-users] What is the easiest way to get SQLite3 support in Pharo7? (Ubuntu)

2018-10-11 Thread H. Hirzel
Hello

What is the easiest way to get SQLite3 support in Pharo7 (Ubuntu Linux)?

The screen shot shows catalog entries I get in Pharo 7.

I do not mind if Glorp is loaded in addition.

I use Ubuntu 16.04 and the catalog entry refers to Microsoft Windows.

I have installed

 sudo apt-get install libsqlite3-dev

The setup in Squeak works fine (all tests green).

I want to move data forth and back.

Thank you for the answer in advance

--Hannes


[Pharo-users] Squeak: Compiler evaluate: '3+4' Pharo equivalent = ?

2018-10-06 Thread H. Hirzel
Hello

What is the Pharo equivalent of the Squeak expression

 Compiler evaluate: '3+4'

?

Thank you for the answer in advance

--Hannes



[Pharo-users] [Jupytertalk] Where do I put the Pharo files? Permission issue.

2018-10-05 Thread H. Hirzel
Hello Jesus Mari

I am doing a new installation of JupyterTalk in a Pharo7 environment


 curl get.pharo.org/64/70+vm | bash

Then installation of Jupytertalk.

I get a permission error. Even if I give very liberal permissions it
does not work.

How are the permissions set in your installation?

Regards
Hannes


Re: [Pharo-users] http://pharo.org/download | Pharo7 standalone?

2018-10-05 Thread H. Hirzel
Hi Cyril

This is fine for Linux   (e.g.
 curl get.pharo.org/64/70+vm | bash )

But I see no indication on the page
 http://get.pharo.org/
how this works for Microsoft Windows.

--Hannes

On 10/5/18, Cyril Ferlicot  wrote:
> On Fri, Oct 5, 2018 at 11:12 AM H. Hirzel  wrote:
>>
>> Thank you, Alistair.
>>
>> That worked fine for me in  64bit Ubuntu 18.04.
>>
>> In addition I'd like to have  the same as Windows installations
>>
>> Windows 7 (32 bit and 64 bit)
>> and Windows 10 (64bit)
>>
>> Is there a list of the allowed download URLs?
>>
>
> Hi,
>
> http://get.pharo.org/
>
>> --Hannes
>
> --
> Cyril Ferlicot
> https://ferlicot.fr
>
>



Re: [Pharo-users] http://pharo.org/download | Pharo7 standalone?

2018-10-05 Thread H. Hirzel
Thank you, Alistair.

That worked fine for me in  64bit Ubuntu 18.04.

In addition I'd like to have  the same as Windows installations

Windows 7 (32 bit and 64 bit)
and Windows 10 (64bit)

Is there a list of the allowed download URLs?

--Hannes

On 10/5/18, Alistair Grant  wrote:
> Hi Hannes,
>
> It depends a bit on the platform.  For linux 64 bit:
>
> curl get.pharo.org/64/70+vm | bash
>
> HTH,
> Alistair
>
> On Fri, 5 Oct 2018 at 01:28, H. Hirzel  wrote:
>>
>> Hello
>>
>> The Pharo download page http://pharo.org/download offers the Pharo
>> launcher with various images and a Pharo6.1 standalone download.
>>
>> I would like to have a Pharo 7 standalone installation.
>>
>> How do I do that?
>>
>> Thank you for the answer in advance
>>
>> Hannes
>>
>
>



[Pharo-users] http://pharo.org/download | Pharo7 standalone?

2018-10-04 Thread H. Hirzel
Hello

The Pharo download page http://pharo.org/download offers the Pharo
launcher with various images and a Pharo6.1 standalone download.

I would like to have a Pharo 7 standalone installation.

How do I do that?

Thank you for the answer in advance

Hannes



Re: [Pharo-users] Ready to use Roassal?

2018-09-08 Thread H. Hirzel
On 9/8/18, H. Hirzel  wrote:
> An easy to way to get it:
>
> It is included in the 'Moose Suite' distribution available through the
> 'Pharo Launcher'.

This is what you get when you go to

http://pharo.org/web/download

works very fine on Linux (Ubuntu 16.04 in my case)

>
> Another option is to load it through the catalog:
>
> see recent question on this list --Fri, Aug 24, 2018
>
> Subject: Roassal installation in Pharo 6.1 through the catalog?
>
>
> --Hannes
>
>
>
>
> On 9/8/18, Hilaire  wrote:
>> Hi,
>>
>> Is there a ready to download and to use Roassal for end user?
>>
>> I found nothing on http://agilevisualization.com/ I can point a user to.
>> User unaware of Pharo, Smalltalk, etc.
>>
>> Closest things I found is http://moosetechnology.org/#install. And
>> likely instructions will not work for a linux user.
>>
>> Thanks
>>
>> Hilaire
>>
>> --
>> Dr. Geo
>> http://drgeo.eu
>>
>>
>>
>>
>



Re: [Pharo-users] Ready to use Roassal?

2018-09-08 Thread H. Hirzel
An easy to way to get it:

It is included in the 'Moose Suite' distribution available through the
'Pharo Launcher'.


Another option is to load it through the catalog:

see recent question on this list --Fri, Aug 24, 2018

Subject: Roassal installation in Pharo 6.1 through the catalog?


--Hannes




On 9/8/18, Hilaire  wrote:
> Hi,
>
> Is there a ready to download and to use Roassal for end user?
>
> I found nothing on http://agilevisualization.com/ I can point a user to.
> User unaware of Pharo, Smalltalk, etc.
>
> Closest things I found is http://moosetechnology.org/#install. And
> likely instructions will not work for a linux user.
>
> Thanks
>
> Hilaire
>
> --
> Dr. Geo
> http://drgeo.eu
>
>
>
>


Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-29 Thread H. Hirzel
On 8/29/18, Jesús Marí  wrote:
> You can display text or html using

> self display openInJupyter:'*hello world in bolt*'
>
> or anything in a morph (a jpg, png ..a Roassal drawing).
> self display openInJupyter: aMorph
>
> you can expecify the extent
> self display openInJupyter: aMorph extent: aPoint.

Thanks! This is convenient!

> if you have installed Roassal group (it's a hack of many Roassal Classes)
> then you can visualize Interactive Roassal drawings doing:
>
> "this will load a modified version of Roassal.js that opens a Roassal view
> inside "
> self loadScript: IPRoassal js.
>
> self display
> interactionOn;
> openInJupyter: aRoassalView.
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-29 Thread H. Hirzel
Hello Jesús Marí

The JavaScript kernel has custom output functions [1] such as

   $$.html(htmlString)
   $$.svg(svgString)
   $$.png(base64String)
   $$.jpeg(base64String)
   $$.mime(mimeBundle)

What is the equivalent for $$.svg(svgString) for example?

Regards
Hannes




[1] http://n-riesco.github.io/ijavascript/doc/custom.ipynb.html

On 8/27/18, H. Hirzel  wrote:
> Actually there is a probably a configuration file, but not in the
> place where I checked, I assume.
>
> I have Ubuntu or Ubuntu based  test installations in partitions
> sda6,7,8,9,10. I can not recall in which partition in actually
> happened.
>
> However I found out about the command [1]
>
> jupyter --paths
>
> And I did this in some of  the different test installations [2]
>
> In sda8 I  have
>
> user8@Latitude2:~$ ls /usr/share/jupyter
> kernels  nbextensions
>
> user8@Latitude2:~$ ls /usr/share/jupyter/kernels
> python3
>
> user8@Latitude2:~$ ls /usr/local/share/jupyter/kernels
> pharo
>
>
> So the probable explanation is that there was actually a configuration
> file but not  in
>
>  /usr/local/share/jupyter/kernels/pharo
>
> as you indicate in
> https://github.com/jmari/JupyterTalk/blob/master/README.md
>
> but in
>
> /usr/share/jupyter/kernels
>
>
> So my guess is that a download *nteract*  (https://www.nteract.io/)
> alone and pharo6.1 with Juyptertalk (thus no python notebook) should
> work in a new Linux installation if there is a
>
> a kernel.json file with Pharo Smalltalk [3]
>
> in either
>
>  /usr/local/share/jupyter/kernels/pharo
> OR
> /usr/share/jupyter/kernels/pharo
>
> I will test that and report to the list.
>
> --Hannes
>
>
>
>
> [1] jupyter help
> =
>
> user10@Latitude2:~$ jupyter --help
> usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
>[--paths] [--json]
>[subcommand]
>
> Jupyter: Interactive Computing
>
> positional arguments:
>   subcommand the subcommand to launch
>
> optional arguments:
>   -h, --help show this help message and exit
>   --version  show the jupyter command's version and exit
>   --config-dir   show Jupyter config dir
>   --data-dir show Jupyter data dir
>   --runtime-dir  show Jupyter runtime dir
>   --pathsshow all Jupyter paths. Add --json for machine-readable
>  format.
>   --json output paths as machine-readable json
>
> Available subcommands: bundlerextension console kernel kernelspec migrate
> nbconvert nbextension notebook qtconsole run serverextension troubleshoot
> trust
>
>
>
> [2] jupyter paths in different test installations
> =
>
>
> sda7
> -
>  jupyter --paths
> config:
> /home/user25/.jupyter
> /home/user25/anaconda3/etc/jupyter
> /usr/local/etc/jupyter
> /etc/jupyter
> data:
> /home/user25/.local/share/jupyter
> /home/user25/anaconda3/share/jupyter
> /usr/local/share/jupyter
> /usr/share/jupyter
> runtime:
> /run/user/1000/jupyter
>
>
> sda8
> ---
>
> jupyter --paths
> config:
> /home/user8/.jupyter
> /usr/etc/jupyter
> /usr/local/etc/jupyter
> /etc/jupyter
> data:
> /home/user8/.local/share/jupyter
> /usr/local/share/jupyter
> /usr/share/jupyter
> runtime:
> /run/user/1000/jupyter
>
>
>
> user8@Latitude2:~$ ls /usr/share/jupyter
> kernels  nbextensions
> user8@Latitude2:~$ ls /usr/share/jupyter/kernels
> python3
> user8@Latitude2:~$ ls /usr/local/share/jupyter/kernels
> pharo
> user8@Latitude2:~$
>
>
>
> sda10
> -
>
>
>
> user10@Latitude2:~$ jupyter --paths
> config:
> /home/user10/.jupyter
> /usr/etc/jupyter
> /usr/local/etc/jupyter
> /etc/jupyter
> data:
> /home/user10/.local/share/jupyter
> /usr/local/share/jupyter
> /usr/share/jupyter
> runtime:
> /run/user/1000/jupyter
>
>
>
>
> [3] Example kernel.json file for Pharo
> ==
>
> ls /usr/local/share/jupyter/kernels/pharo
> kernel.json
> user8@Latitude2:~$ cat /usr/local/share/jupyter/kernels/pharo/kernel.json
> {
>   "argv": [
> "/home/user8/pharo-vm/bin/pharo",
> "/home/user8/Pharo.image",
> "ipharo",
> "{connection_file}"
>   ],
>   "display_name": "Pharo Smalltalk",
>   "language": "smalltalk"
> }
>
>
>
>
> On 8/24/18, Jesús Marí  wrote:
>> Last update  works also on *nteract*
>>
>> In the other hand, I could not understand how Jupyter knows about Pharo
>> kernel without the configuration file!!! Unbelievable!
>>
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-29 Thread H. Hirzel
To summarize this thread:

Make sure Jupyter (http://jupyter.org/) is installed properly.
Then ZeroMQ will work with the Pharo Smalltalk kernel (
https://github.com/jmari/JupyterTalk)

HH.

On 8/24/18, H. Hirzel  wrote:
> user25@Latitude2:~$ find . -name libzmq*
> ./anaconda3/lib/pkgconfig/libzmq.pc
> ./anaconda3/lib/libzmq.so.5
> ./anaconda3/lib/python3.6/site-packages/zmq/backend/cython/libzmq.pxd
> ./anaconda3/lib/libzmq.so
> ./anaconda3/lib/libzmq.so.5.1.5
> ./anaconda3/lib/libzmq.la
> ./anaconda3/lib/libzmq.a
> ./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/pkgconfig/libzmq.pc
> ./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5
> ./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so
> ./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5.1.5
> ./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.la
> ./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.a
> ./anaconda3/pkgs/pyzmq-17.0.0-py36h14c3975_0/lib/python3.6/site-packages/zmq/backend/cython/libzmq.pxd
> user25@Latitude2:~$
>
>
> On 8/24/18, H. Hirzel  wrote:
>> Yes, I re-evaluated in the playground
>>
>> Metacello new
>>  baseline: 'JupyterTalk';
>>  repository: 'github://jmari/JupyterTalk:master/repository';
>>  load:'all'
>>
>> Then save and quit.
>> I hope that this was sufficient.
>>
>>
>> jupyter notebook
>>
>> create new Pharo Smalltalk notebook
>>
>> --> the notebook was created.
>>
>>  Evaluate an expression
>>
>> --> the attached error comes up. The library is still not found. It is
>> looking for version 3 wheras the anaconda installation has 5.
>>
>>
>> At the moment for me anaconda support (600MB download) is nice to have
>> but not necessary.
>>
>> The other ways of installing jupyter notebooks (pip3 and nteract, 50MB
>> download) need less space and start giving good results.
>>
>> I suggest to put this as an issue at
>> https://github.com/jmari/JupyterTalk for the moment.
>>
>> 'Retest anaconda support and fix if necessary'
>>
>> --Hannes
>>
>> On 8/24/18, Jesús Marí  wrote:
>>> it's done.
>>> please try again
>>> Thanks
>>>
>>>
>>>
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>>
>>>
>>
>



Re: [Pharo-users] Dynabook and authentic learning pedagogy

2018-08-29 Thread H. Hirzel
On 8/26/18, Sean P. DeNigris  wrote:
> Offray Vladimir Luna Cárdenas-2 wrote
>> Smalltalk keeps its curse of being so concern with the future that was
>> disconnected from most of the present and so, giving the majority of us
>> no
>> bridge between our present
>> and the Dynabook vision.
>
> The idea of a bridge is an interesting one.

This idea needs to be further elaborated and then the gaps should be
identified and so that bridges may be built.

This should make it possible to use existing material from the curriculum.


>
> One of the core Dynabook/Smalltalk principles is that the whole computer
> should be available for inspection and experimentation by the user. As Dan
> Ingalls said about operating systems "there shouldn't be one".
>
> However, the rest of the world is stuck in an application/stovepipe model.
> While that may cripple and pigeonhole users' creativity, it's a reality
> that
> to be practically and generally useful the Dynabook would now have to
> deal/interact effectively with that whole mess while we're waiting for the
> rest of the world to catch up to our better way of doing things.
>
>
>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-27 Thread H. Hirzel
Actually there is a probably a configuration file, but not in the
place where I checked, I assume.

I have Ubuntu or Ubuntu based  test installations in partitions
sda6,7,8,9,10. I can not recall in which partition in actually
happened.

However I found out about the command [1]

jupyter --paths

And I did this in some of  the different test installations [2]

In sda8 I  have

user8@Latitude2:~$ ls /usr/share/jupyter
kernels  nbextensions

user8@Latitude2:~$ ls /usr/share/jupyter/kernels
python3

user8@Latitude2:~$ ls /usr/local/share/jupyter/kernels
pharo


So the probable explanation is that there was actually a configuration
file but not  in

 /usr/local/share/jupyter/kernels/pharo

as you indicate in https://github.com/jmari/JupyterTalk/blob/master/README.md

but in

/usr/share/jupyter/kernels


So my guess is that a download *nteract*  (https://www.nteract.io/)
alone and pharo6.1 with Juyptertalk (thus no python notebook) should
work in a new Linux installation if there is a

a kernel.json file with Pharo Smalltalk [3]

in either

 /usr/local/share/jupyter/kernels/pharo
OR
/usr/share/jupyter/kernels/pharo

I will test that and report to the list.

--Hannes




[1] jupyter help
=

user10@Latitude2:~$ jupyter --help
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
   [--paths] [--json]
   [subcommand]

Jupyter: Interactive Computing

positional arguments:
  subcommand the subcommand to launch

optional arguments:
  -h, --help show this help message and exit
  --version  show the jupyter command's version and exit
  --config-dir   show Jupyter config dir
  --data-dir show Jupyter data dir
  --runtime-dir  show Jupyter runtime dir
  --pathsshow all Jupyter paths. Add --json for machine-readable
 format.
  --json output paths as machine-readable json

Available subcommands: bundlerextension console kernel kernelspec migrate
nbconvert nbextension notebook qtconsole run serverextension troubleshoot
trust



[2] jupyter paths in different test installations
=


sda7
-
 jupyter --paths
config:
/home/user25/.jupyter
/home/user25/anaconda3/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/user25/.local/share/jupyter
/home/user25/anaconda3/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/run/user/1000/jupyter


sda8
---

jupyter --paths
config:
/home/user8/.jupyter
/usr/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/user8/.local/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/run/user/1000/jupyter



user8@Latitude2:~$ ls /usr/share/jupyter
kernels  nbextensions
user8@Latitude2:~$ ls /usr/share/jupyter/kernels
python3
user8@Latitude2:~$ ls /usr/local/share/jupyter/kernels
pharo
user8@Latitude2:~$



sda10
-



user10@Latitude2:~$ jupyter --paths
config:
/home/user10/.jupyter
/usr/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/user10/.local/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/run/user/1000/jupyter




[3] Example kernel.json file for Pharo
==

ls /usr/local/share/jupyter/kernels/pharo
kernel.json
user8@Latitude2:~$ cat /usr/local/share/jupyter/kernels/pharo/kernel.json
{
  "argv": [
"/home/user8/pharo-vm/bin/pharo",
"/home/user8/Pharo.image",
"ipharo",
"{connection_file}"
  ],
  "display_name": "Pharo Smalltalk",
  "language": "smalltalk"
}




On 8/24/18, Jesús Marí  wrote:
> Last update  works also on *nteract*
>
> In the other hand, I could not understand how Jupyter knows about Pharo
> kernel without the configuration file!!! Unbelievable!
>
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



[Pharo-users] Roassal installation in Pharo 6.1 through the catalog?

2018-08-24 Thread H. Hirzel
Hello

Installing Roassal in 6.1 through the catalog gives the message that
it has not been tested for installation in 6.0. See screen shot.

Is this the regular way to go for or is there a better installation script?


Regards
Hannes


Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-24 Thread H. Hirzel
user25@Latitude2:~$ find . -name libzmq*
./anaconda3/lib/pkgconfig/libzmq.pc
./anaconda3/lib/libzmq.so.5
./anaconda3/lib/python3.6/site-packages/zmq/backend/cython/libzmq.pxd
./anaconda3/lib/libzmq.so
./anaconda3/lib/libzmq.so.5.1.5
./anaconda3/lib/libzmq.la
./anaconda3/lib/libzmq.a
./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/pkgconfig/libzmq.pc
./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5
./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so
./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5.1.5
./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.la
./anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.a
./anaconda3/pkgs/pyzmq-17.0.0-py36h14c3975_0/lib/python3.6/site-packages/zmq/backend/cython/libzmq.pxd
user25@Latitude2:~$


On 8/24/18, H. Hirzel  wrote:
> Yes, I re-evaluated in the playground
>
> Metacello new
>   baseline: 'JupyterTalk';
>   repository: 'github://jmari/JupyterTalk:master/repository';
>   load:'all'
>
> Then save and quit.
> I hope that this was sufficient.
>
>
> jupyter notebook
>
> create new Pharo Smalltalk notebook
>
> --> the notebook was created.
>
>  Evaluate an expression
>
> --> the attached error comes up. The library is still not found. It is
> looking for version 3 wheras the anaconda installation has 5.
>
>
> At the moment for me anaconda support (600MB download) is nice to have
> but not necessary.
>
> The other ways of installing jupyter notebooks (pip3 and nteract, 50MB
> download) need less space and start giving good results.
>
> I suggest to put this as an issue at
> https://github.com/jmari/JupyterTalk for the moment.
>
> 'Retest anaconda support and fix if necessary'
>
> --Hannes
>
> On 8/24/18, Jesús Marí  wrote:
>> it's done.
>> please try again
>> Thanks
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-24 Thread H. Hirzel
Hello

On 8/24/18, H. Hirzel  wrote:
> On 8/23/18, Jesús Marí  wrote:
>> I'll take a look to *nteract*, seems that it uses the same protocol to
>> communicate with kernels.
>
> Good, actually my goal is to have a simple installation in a new Linux
> installation,
> something like
>
> a) download nteract (https://nteract.io/desktop), a 50MB executable file
> b) set up Pharo 6.1 with JupyterTalk
> c) whatever else is necessary, hopefully not to much
>

I have now a working JupyterTalk installation, see the attached screen shot.
What needs to be done is to come up with a reviewed, reproducible,
easy to use installation process.

The steps I used are

a) a fresh new Ubuntu 18.04.1 64 bit bionic beaver installation
then
sudo apt-get update

b) python --version

Command 'python' not found, but can be installed with:

python3 --version
Python 3.6.5


b) Instead of anaconda I tried then pip3 approach
sudo apt install python3-pip

python3 -m pip install jupyter

But
jupyter notebook

did not work.


After

sudo apt install jupyter-core
sudo apt install jupyter-notebook

This only downloaded 50MB instead of the 600MB for anaconda

The command

   jupyter-notebook

worked. Note the dash, i.e. it is  a different command

Then

   sudo apt-get install curl

and the Pharo 6.1 64 bit installation


   curl get.pharo.org/64/61+vm | bash

Then the Metacello installation taken from https://github.com/jmari/JupyterTalk.

Creation of the kernel.json file as described in
https://github.com/jmari/JupyterTalk was not necessary

The content of
 ls /usr/share/jupyter/kernels/

is only

python3

Interestingly, no entry for a Pharo kernel.

The CLI command
   jupyter-notebook
brings up a working Jupyter dashboard with the Pharo Smalltalk menu
entry installed in the 'New' menu.

--Hannes

On 8/24/18, H. Hirzel  wrote:
> On 8/23/18, Jesús Marí  wrote:
>> I'll take a look to *nteract*, seems that it uses the same protocol to
>> communicate with kernels.
>
> Good, actually my goal is to have a simple installation in a new Linux
> installation,
> something like
>
> a) download nteract (https://nteract.io/desktop), a 50MB executable file
> b) set up Pharo 6.1 with JupyterTalk
> c) whatever else is necessary, hopefully not to much
>



Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-24 Thread H. Hirzel
Thinking about it again:
Going for a Python - anaconda distribution related hack is to
specific. I am rather interested in a regular ZeroMQ installation for
Pharo.

I have now created a new Ubuntu 18.04.1 bionic beaver installation and
the question is: how do I set ZeroMQ up togehter with Pharo
(Juyptertalk)

On 8/24/18, H. Hirzel  wrote:
> On 8/24/18, H. Hirzel  wrote:
>> Thank you, Jesús Marí. I reloaded your updated JupyterTalk Pharo
>> Smalltalk package which now looks for more places to find the library
>> ZeroMQ.
>>
>> Unfortunately it still did not find the ZeroMQ library.
>>
>> The following command shows where there is a ZeroMQ library:  [1]
>>
>> root@Latitude2:/# find / -name libzmq*.so.*
>> /home/user25/anaconda3/lib/libzmq.so.5
>> /home/user25/anaconda3/lib/libzmq.so.5.1.5
>> /home/user25/anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5
>> /home/user25/anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5.1.5
>> --
>>
>> So there is
>> libzmq.so.5
>> and not
>> libzmq.so.3
>>
>> which you need for JuypterTalk.
>>
>> So I need to install either  libzmq.so.3 library separately or
>> JupyterTalk needs to be changed to also look for libzmq.so.3,
>> libzmq.so.4 or libzmq.so.5
>>
>> I'll look into your code and try a hack to look for
>> /home/user25/anaconda3/lib/libzmq.so.5
>
> I assume the hack has to be done here
>
> https://github.com/jmari/JupyterTalk/commit/b2155e64bcb8904f0cf8b830f9a78edfbfe6dc6f
>
> the question is how...
>
>> --Hannes
>>
>> --
>>
>> [1] Context: ZeroMQ was installed by the Python Anaconda distribution.
>> I t is the recommended way for installing the JupyterNotebook
>> http://jupyter.org/install
>>
>> The idea is that you get everything in one big installation ('a
>> distribution')
>>
>> However it seems that going for opteion 2 (pip installation seems to
>> be easier next time).
>> But as I have a working Jupyter installation now it is left with
>> getting a ZeroMQ installation which JupyterTalk finds.
>>
>>
>>
>> On 8/23/18, Jesús Marí  wrote:
>>> Load it again I've updated the unix64ModuleName to search for the
>>> correct
>>> library name.
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>>
>>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-23 Thread H. Hirzel
On 8/23/18, Jesús Marí  wrote:
> I'll take a look to *nteract*, seems that it uses the same protocol to
> communicate with kernels.

Good, actually my goal is to have a simple installation in a new Linux
installation,
something like

a) download nteract (https://nteract.io/desktop), a 50MB executable file
b) set up Pharo 6.1 with JupyterTalk
c) whatever else is necessary, hopefully not to much



Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-23 Thread H. Hirzel
On 8/24/18, H. Hirzel  wrote:
> Thank you, Jesús Marí. I reloaded your updated JupyterTalk Pharo
> Smalltalk package which now looks for more places to find the library
> ZeroMQ.
>
> Unfortunately it still did not find the ZeroMQ library.
>
> The following command shows where there is a ZeroMQ library:  [1]
>
> root@Latitude2:/# find / -name libzmq*.so.*
> /home/user25/anaconda3/lib/libzmq.so.5
> /home/user25/anaconda3/lib/libzmq.so.5.1.5
> /home/user25/anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5
> /home/user25/anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5.1.5
> --
>
> So there is
> libzmq.so.5
> and not
> libzmq.so.3
>
> which you need for JuypterTalk.
>
> So I need to install either  libzmq.so.3 library separately or
> JupyterTalk needs to be changed to also look for libzmq.so.3,
> libzmq.so.4 or libzmq.so.5
>
> I'll look into your code and try a hack to look for
> /home/user25/anaconda3/lib/libzmq.so.5

I assume the hack has to be done here

https://github.com/jmari/JupyterTalk/commit/b2155e64bcb8904f0cf8b830f9a78edfbfe6dc6f

the question is how...

> --Hannes
>
> --
>
> [1] Context: ZeroMQ was installed by the Python Anaconda distribution.
> I t is the recommended way for installing the JupyterNotebook
> http://jupyter.org/install
>
> The idea is that you get everything in one big installation ('a
> distribution')
>
> However it seems that going for opteion 2 (pip installation seems to
> be easier next time).
> But as I have a working Jupyter installation now it is left with
> getting a ZeroMQ installation which JupyterTalk finds.
>
>
>
> On 8/23/18, Jesús Marí  wrote:
>> Load it again I've updated the unix64ModuleName to search for the correct
>> library name.
>>
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] Dynabook and authentic learning pedagogy

2018-08-23 Thread H. Hirzel
P.S. The reference [1] you give
A. Tricot, L'innovation pédagogique, Retz, 2017
is very instructive.

On 8/24/18, H. Hirzel  wrote:
> Hello Hilaire
>
> Thank you for the short summary what  authentic learning is and the
> conclusions what this means for a Dynabook implementation.
>
> You conclude that
>
> Dynabook's tools should support using authentic documents.
>
> I think that in practice this means that DOCX and ODT documents should
> be supported in some way.
>
> The Dynabook tools should generate DOCX/ODT documents and also read them.
> [1]
>
> The cnx repository (https://cnx.org/) for learning materials allows
> the author to use DOCX/ODT documents  to upload content. There is the
> requirement that a particular style sheet is used. [2]
>
> For Dr. Geo it will probably mean that it can read and write DOCX/ODT
> documents which follow some conventions.
>
> The same might also apply for HTML. I am also doing investigations in
> JSON based Jupyter notebooks as you can see in another thread. That
> might be an easier option though only 'authentic' for a more limited
> though large audience.
>
> --Hannes
>
>
> [1] DOCX - the main file format used by Microsoft Word. ODT for
> LibreOffice. Compatibility is OK if you go for a subset of commonly
> supported functions. More than sufficient for Dynabook.
> LibreOffice 6.1 now supports easy production of epub books.
>
> [2] Mainly requiring the built in titles styles to be used and then
> there is a style for code. With this you can achieve a lot.
>
> On 8/23/18, Hilaire  wrote:
>> Hi,
>>
>> A few notes on how Dynabook and authentic learning methodology could be
>> related.
>>
>> http://blog.drgeo.eu/post/2018/Authentic-learning
>>
>> Hilaire
>>
>> --
>> Dr. Geo
>> http://drgeo.eu
>>
>>
>>
>>
>



Re: [Pharo-users] Dynabook and authentic learning pedagogy

2018-08-23 Thread H. Hirzel
Hello Hilaire

Thank you for the short summary what  authentic learning is and the
conclusions what this means for a Dynabook implementation.

You conclude that

Dynabook's tools should support using authentic documents.

I think that in practice this means that DOCX and ODT documents should
be supported in some way.

The Dynabook tools should generate DOCX/ODT documents and also read them. [1]

The cnx repository (https://cnx.org/) for learning materials allows
the author to use DOCX/ODT documents  to upload content. There is the
requirement that a particular style sheet is used. [2]

For Dr. Geo it will probably mean that it can read and write DOCX/ODT
documents which follow some conventions.

The same might also apply for HTML. I am also doing investigations in
JSON based Jupyter notebooks as you can see in another thread. That
might be an easier option though only 'authentic' for a more limited
though large audience.

--Hannes


[1] DOCX - the main file format used by Microsoft Word. ODT for
LibreOffice. Compatibility is OK if you go for a subset of commonly
supported functions. More than sufficient for Dynabook.
LibreOffice 6.1 now supports easy production of epub books.

[2] Mainly requiring the built in titles styles to be used and then
there is a style for code. With this you can achieve a lot.

On 8/23/18, Hilaire  wrote:
> Hi,
>
> A few notes on how Dynabook and authentic learning methodology could be
> related.
>
> http://blog.drgeo.eu/post/2018/Authentic-learning
>
> Hilaire
>
> --
> Dr. Geo
> http://drgeo.eu
>
>
>
>



Re: [Pharo-users] Pharo 6 snap package

2018-08-23 Thread H. Hirzel
Hello Alistair

Thank you for the detailed answer. I understand that at the moment
going for a Pharo snap package does not seem to be useful.

In particular as a Pharo installation may reside in a directory with
everything included.
So different Pharo installations may reside in different directories.

I think where snap still might come is for solutions which require
more than a particular Pharo installation.

For example I could think of combining a particular Pharo version with
a particular Jupyter notebook installation into a snap which could
lead to a  web based 'Dynabook' solution.

I am also looking forward to Guille's answer.

Regards
Hannes

On 8/23/18, Alistair Grant  wrote:
> Hi Hannes,
>
> On Wed, 22 Aug 2018 at 17:20, H. Hirzel  wrote:
>>
>> Hello
>>
>> Are there plans to do a Pharo 6.1  snap package in the upcoming
>> months? (Ubuntu 18.04.1)
>
> I haven't been thinking about it really, because:
>
> - The big attraction for me was the ability to easily run 32 bit Pharo
> on a 64 bit OS without installing all the dependencies.  But now that
> 64 bit Pharo is stable that driver has largely gone.
> - The sandboxing is quite limiting for a development environment, so
> if you want to run commands on the localhost you end up doing
> something like ssh'ing the command to localhost.
> - The snap runtime environment is still quite immature - I've had to
> deal with bugs in snapd, the gtk desktop interface, loading 32 bit
> executables, etc.
> - The snapcraft build environment is still evolving, so I have to keep
> up with the changes.
> - I was originally compiling the 32 and 64 bit VMs as part of the
> build process, but that is problematic as the 32 and 64 bit libraries
> tend to interfere with each other making the build process unstable.
> - You can't run multiple versions of a snap on one system, e.g. we
> can't have Pharo 6 and Pharo 7 installed simultaneously under the one
> snap name (pharo).  I tried to register Pharo7 so pharo could be the
> GA version (6), but never got a response.
>
> I was listening to an Ubuntu podcast just this week where one of the
> hosts tried installing 4 packages via snaps and ended up going back to
> debian packages for 3 of the packages due to problems, so it obviously
> still isn't mature.
>
> I realise that every software package has its own issues, I'm sure
> someone from the snap community could find parallel issues with Pharo,
> but it wasn't where I wanted to be spending all my time.
>
> If someone wants to take it over, I'm more than happy to pass it on
> (although it isn't building at the moment due to changes in
> snapcraft).
>
> If there is enough interest I'll try and update it to run Pharo 6.1.
>
> If Guille is actively maintaining his package, maybe we should move to
> that (I haven't looked at it).
>
> Cheers,
> Alistair
>
>



Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-23 Thread H. Hirzel
Thank you, Jesús Marí. I reloaded your updated JupyterTalk Pharo
Smalltalk package which now looks for more places to find the library
ZeroMQ.

Unfortunately it still did not find the ZeroMQ library.

The following command shows where there is a ZeroMQ library:  [1]

root@Latitude2:/# find / -name libzmq*.so.*
/home/user25/anaconda3/lib/libzmq.so.5
/home/user25/anaconda3/lib/libzmq.so.5.1.5
/home/user25/anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5
/home/user25/anaconda3/pkgs/zeromq-4.2.5-h439df22_0/lib/libzmq.so.5.1.5
--

So there is
libzmq.so.5
and not
libzmq.so.3

which you need for JuypterTalk.

So I need to install either  libzmq.so.3 library separately or
JupyterTalk needs to be changed to also look for libzmq.so.3,
libzmq.so.4 or libzmq.so.5

I'll look into your code and try a hack to look for
/home/user25/anaconda3/lib/libzmq.so.5

--Hannes

--

[1] Context: ZeroMQ was installed by the Python Anaconda distribution.
I t is the recommended way for installing the JupyterNotebook
http://jupyter.org/install

The idea is that you get everything in one big installation ('a distribution')

However it seems that going for opteion 2 (pip installation seems to
be easier next time).
But as I have a working Jupyter installation now it is left with
getting a ZeroMQ installation which JupyterTalk finds.



On 8/23/18, Jesús Marí  wrote:
> Load it again I've updated the unix64ModuleName to search for the correct
> library name.
>
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-23 Thread H. Hirzel
Pharo 6.1 - 64bit on Ubuntu 18.04.1 (Bionic Beaver, 64bit).

On 8/23/18, Marten Feldtmann  wrote:
> Simple question:
>
> Pharo 32 or 64 bit ?
>
> If you work with Pharo32 you need to install the 32bit (Unix)-libraries
> for 0MQ. If you work with Pharo64 you use the 64bit (Unix)-Libraries.
>
> So - what is your environment ?
>
> Marten
>
>
> Am 23.08.2018 um 10:54 schrieb H. Hirzel:
>> Hello
>>
>> I installed JupyterTalk [1]. With it comes a ZeroMQ implementation
>> [2]. This was done on Ubuntu 18.04.1 (Bionic Beaver, 64bit).
>>
>> However the ZeroMQ tests all fail.
>>
>> I assume there is something missing in the installation.
>>
>> How can I test that? Any other suggestions?
>>
>> Kind regards
>> Hannes
>>
>>
>>
>>
>>
>>
>>
>> [1]  JupyterTalk (https://github.com/jmari/JupyterTalk) is a Smalltalk
>> kernel for the Jupyter notebook system: http://jupyter.org/
>>
>> [2] ZeroMQ is a high-performance asynchronous messaging library, aimed
>> at use in distributed or concurrent applications.
>> It provides a message queue, but unlike message-oriented middleware, a
>> ZeroMQ system can run without a dedicated message broker.
>> https://en.wikipedia.org/wiki/ZeroMQ
>>
>
>
> --
> Marten Feldtmann
>



Re: [Pharo-users] How do I get ZeroMQ working?

2018-08-23 Thread H. Hirzel
P.S. I assume I have to install a package on Ubuntu 18.04 Bionic
Beaver. The question is which one.

Note: I plan to write a comprehensive installation instruction for JuypterTalk.

On 8/23/18, H. Hirzel  wrote:
> Hello
>
> I installed JupyterTalk [1]. With it comes a ZeroMQ implementation
> [2]. This was done on Ubuntu 18.04.1 (Bionic Beaver, 64bit).
>
> However the ZeroMQ tests all fail.
>
> I assume there is something missing in the installation.
>
> How can I test that? Any other suggestions?
>
> Kind regards
> Hannes
>
>
>
>
>
>
>
> [1]  JupyterTalk (https://github.com/jmari/JupyterTalk) is a Smalltalk
> kernel for the Jupyter notebook system: http://jupyter.org/
>
> [2] ZeroMQ is a high-performance asynchronous messaging library, aimed
> at use in distributed or concurrent applications.
> It provides a message queue, but unlike message-oriented middleware, a
> ZeroMQ system can run without a dedicated message broker.
> https://en.wikipedia.org/wiki/ZeroMQ
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-22 Thread H. Hirzel
P.S. Probably noteworthy is that for some reason a second instance of
Pharo was opened. Probably by the command

 jupyter notebook

I could close one but after closing the other instance it was opened
automatically again.

On 8/22/18, H. Hirzel  wrote:
> The installation progressed, success seems to be near, but still a problem
>
> The process so far:
>
> 1. Ubuntu 18.04.1 (64bit Bionic beaver)
>
> 2. Anaconda python distribution which includes the Jupyter notebook
> https://www.anaconda.com/download/#linux
> (Version for 3.6)
>
> 3. Pharo 6.1 64 bit
>
> 4. In a playground evaluate
>   Metacello new
> baseline: 'JupyterTalk';
> repository: 'github://jmari/JupyterTalk:master/repository';
> load:'all'
>
> 5. Hit proceed for skipping the complaint about missing Roassal classes.
>
> 6. Save and quit image --> error message pops up, --> hit proceed.
>
> 7. Restart image.
>
> 8. Start Jupyter on command line with
>
>jupyter notebook
>
>The result is that a browser window is opened which allows to
> connect to the pharo
>kernel (see screen shot)
>
> 9. A crash when opening the new notebook [details below].
>
> Suggestions how to proceed are welcome!
>
> --Hannes
>
>
> 
> The Pharo stack from the debugger
> 
>
> ExternalLibraryFunction(Object)>>error:
> ExternalLibraryFunction(Object)>>externalCallFailed
> ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments:
> ZmqApi class>>apiZmqVersion:minor:patch:
> FFICalloutAPI>>function:module:
> ZmqApi class(Object)>>ffiCall:module:
> ZmqApi class>>apiZmqVersion:minor:patch:
> ZmqApi class>>version
> ZmqApi class>>forCurrentVersion
> ZmqContext>>initialize
> ZmqContext class(Behavior)>>new
> ZmqContext class>>new
> ZmqContext class>>current
> IPharoCommandLineHandler>>activate
> IPharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
> [ aCommandLinehandler activateWith: commandLine ] in
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
> in Block: [ aCommandLinehandler activateWith: commandLine ]
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
> [ self
>   handleArgument:
>   (self arguments
>   ifEmpty: [ '' ]
>   ifNotEmpty: [ :arguments | arguments first ]) ] in
> PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [
> self...
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
> PharoCommandLineHandler>>activate
> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
> [ super activateWith: aCommandLine ] in PharoCommandLineHandler
> class>>activateWith: in Block: [ super activateWith: aCommandLine ]
> WorldState>>runStepMethodsIn:
> WorldMorph>>runStepMethods
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
>



Re: [Pharo-users] Pharo 6 snap package

2018-08-22 Thread H. Hirzel
Hello

Are there plans to do a Pharo 6.1  snap package in the upcoming
months? (Ubuntu 18.04.1)

--Hannes

On 6/13/17, p...@highoctane.be  wrote:
> On Tue, Jun 13, 2017 at 11:34 AM, Alistair Grant 
> wrote:
>
>> On Tue, Jun 13, 2017 at 11:25:15AM +0200, p...@highoctane.be wrote:
>> > I need to upgrade to 16.04 now :-)
>>
>> :-)
>>
>> Don't forget you can install snapd on Ubuntu 14.04:
>>
>> https://snapcraft.io/docs/core/install-ubuntu
>>
>>
> Ah, wasn't aware of that. Thx Alistair!
>
> Phil
>
>
>> Cheers,
>> Alistair
>>
>>
>> > Phil
>> >
>> > On Tue, Jun 13, 2017 at 11:04 AM, Stephane Ducasse <
>> stepharo.s...@gmail.com>
>> > wrote:
>> >
>> > THANKS A LOT ALISTAIR.
>> > I mean it :)
>> >
>> > On Tue, Jun 13, 2017 at 10:58 AM, Alistair Grant <
>> akgrant0...@gmail.com>
>> > wrote:
>> > > Hi Everyone,
>> > >
>> > > I've updated the Pharo 6 snap package for Ubuntu.
>> > >
>> > > The major advantages of using the snap package are:
>> > >
>> > > - No need to install all the 32 bit dependencies on a 64 bit
>> system,
>> > >   they're all contained and isolated within the snap package.
>> > > - Automagically distinguish between 32 bit and 64 bit images and
>> run the
>> > >   appropriate VM (as with the ZeroConf package, the 64 bit VM
>> > still
>> > >   needs more testing).
>> > >
>> > >
>> > >
>> > > To get Pharo up and running on Ubuntu 16.04 or later:
>> > >
>> > > # Install Pharo
>> > > $ sudo snap install --candidate pharo --classic
>> > > # If your system isn't configured for threaded heartbeat:
>> > > $ sudo pharo.config
>> > > # Download the latest Pharo 6 image
>> > > $ pharo.getimage
>> > > # Go...
>> > > $ pharo.ui Pharo.image
>> > > # or:
>> > > $ pharo Pharo.image eval 4+3
>> > >
>> > > To get a list of available commands:
>> > >
>> > > $ snap info pharo
>> > >
>> > >
>> > > If you're on Debian or Ubuntu 14.04 you'll need to install snapd,
>> see
>> > > https://snapcraft.io/docs/core/install
>> > >
>> > >
>> > > The VM is the threaded heartbeat, dated 201705310241.
>> > >
>> > > The installation flags are:
>> > >
>> > > --candidate - The edge and beta channels are for development
>> versions.
>> > >   It progresses to candidate and then stable.
>> > > --classic - Snap packages are normally sandboxed for security
>> > >   reasons.  Since Pharo is a development environment
>> > >   in which we want to be able to run any executable,
>> > >   or load any library, it is installed with access to
>> > >   the entire system (as the running user).
>> > >
>> > > Why use snap packages?
>> > >
>> > > - They include all dependencies.  In particular, for the 32 bit
>> > >   versions, this means that it isn't necessary to install all the
>> 32 bit
>> > >   architecture and associated dependencies.
>> > > - Including dependencies means that there shouldn't be any
>> problems with
>> > >   incompatible library versions when upgrading.
>> > >
>> > > Why not use snap packages?
>> > >
>> > > - It's a relatively new technology, with a number of rough edges.
>> > > - There may still be issues with its sandboxing that I haven't
>> > >   discovered yet.
>> > > - Because the package uses classic confinement, it isn't
>> > >   cross-distribution in practice (unfortunately).
>> > >
>> > > Please let me know of any other advantages or disadvantages you
>> think
>> > > should be listed here.
>> > >
>> > > If you don't trust me to configure your system correctly (which
>> requires
>> > > sudo):
>> > >
>> > > - All the scripts that make up the sub-commands are visible, e.g.
>> > > pharo.config can be viewed at /snap/pharo/current/usr/bin/CONFIG
>> > >
>> > >
>> > > The packaging code is at: https://github.com/akgrant43/pharo-snap
>> > >
>> > >
>> > > Cheers,
>> > > Alistair
>>
>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-22 Thread H. Hirzel
On 8/22/18, H. Hirzel  wrote:
> Hello again, Jesús Marí
>
> On 8/18/18, Jesús Marí  wrote:
>> I have experience in other kernels and if  I am not wrong there aren't
>> any
>> kernel that installs Jupyter at all.
>
> Actually nteract  (https://nteract.io/desktop) contains everything in
> one 50MB package.
> Webclient and nodejs server. No Python needed if you are fine with
> JavaScript.
> So I thought maybe I could just add a Smalltalk kernel
>
>> In the case of IRKernel, R installs
>> the
>> needed packages and then you have to execute a command in order to make
>> the
>> kernel available for Jupyter, please, take a look at
>> https://irkernel.github.io/requirements/.
>
> OK
>
>> You always need Jupyter on your system, a kernel is just a part in the
>> complete Jupyter ecosystem, a kernel is totally unuseful by itself.
>
> I went for the full anaconda installation in a pristine Ubuntu 18.04.1
> https://www.anaconda.com/download/#linux
> It is a Python distribution hundreds of packages including the Jupyter
> notebook
>
>> Jupyter installs ZeroMQ because it uses this library to communicate with
>> kernels so you don't need to install ZeroMQ.
>
> OK
>
> Now
> jupyter notebook
> brings up what the screen shot shows.
>
> However there is no path
> /usr/local/share/jupyter/kernels/
>
> as the README.md on
>
>
> https://github.com/jmari/JupyterTalk
>
>
> says.
>
> How did you get it working?
>
> --Hannes
>


Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-22 Thread H. Hirzel
Hello again, Jesús Marí

On 8/18/18, Jesús Marí  wrote:
> I have experience in other kernels and if  I am not wrong there aren't any
> kernel that installs Jupyter at all.

Actually nteract  (https://nteract.io/desktop) contains everything in
one 50MB package.
Webclient and nodejs server. No Python needed if you are fine with JavaScript.
So I thought maybe I could just add a Smalltalk kernel

> In the case of IRKernel, R installs
> the
> needed packages and then you have to execute a command in order to make the
> kernel available for Jupyter, please, take a look at
> https://irkernel.github.io/requirements/.

OK

> You always need Jupyter on your system, a kernel is just a part in the
> complete Jupyter ecosystem, a kernel is totally unuseful by itself.

I went for the full anaconda installation in a pristine Ubuntu 18.04.1
https://www.anaconda.com/download/#linux
It is a Python distribution hundreds of packages including the Jupyter notebook

> Jupyter installs ZeroMQ because it uses this library to communicate with
> kernels so you don't need to install ZeroMQ.

OK

Now
jupyter notebook
brings up what the screen shot shows.

However there is no path
/usr/local/share/jupyter/kernels/

as the README.md on


https://github.com/jmari/JupyterTalk


says.

How did you get it working?

--Hannes



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-16 Thread H. Hirzel
Hello Jesús Marí


Your most recent note about the different groups for the Metacello
command clarifies the situation.

Thank you also for your two answers yesterday 15th.

You asked if I installed Jupyter and  and ZeroMQ in your system?

The answer is no: I was assuming Jupytertalk (your Pharo Smalltalk
implementation) will provide a standalone setup for a Jupyter kernel.

Look at how nteract works (https://nteract.io/) works. I download one
executable file and that contains the client (the electron packed web
browser) and a kernel (nodejs). No Python Jupyter installation
necessary.

If I want to add a R kernel I execute what is given in
https://nteract.io/kernels/r

Within R

install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon',
'pbdZMQ', 'devtools', 'uuid', 'digest'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()


So I thought it is similar with Pharo Smalltalk Jupytertalk. This does
not seem to be the case.

A full Jupyter installation is 600MB as I have seen so far. I could
go for that at the moment but actually I prefer a smaller solution.

So my follow up question is:

How do I install the ZeroMQ asynchronous messaging library for Pharo?

Is that sufficient?

I understand that the ZeroMQ installation is a prerequisite for the
Pharo Smalltalk Jupytertalk installation but that the Metacello script
does not load that (or only part of it)

--Hannes



On 8/16/18, Jesús Marí  wrote:
> Yes, you are right, indeed there are three groups in the baseline so you
> can
> install only JupyterTalk package doing
>
> Metacello new
>   baseline: 'JupyterTalk';
>   repository: 'github://jmari/JupyterTalk:master/repository';
>   load:'default'
>
> This is the right way.
>
> 
>   group: 'default' with: #('JupyterTalk');
>   group: 'roassalSupport' with: #('JupyterTalk-Roassal');
>   group: 'all' with: #('JupyterTalk-Roassal').
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-15 Thread H. Hirzel
To clarify my question:

I read the tutorial
http://htmlpreview.github.io/?https://github.com/jmari/JupyterTalk/blob/master/Tutorial1_BasicStatistics.html

My question is: How do I start JupyterTalk and how to I connect then
to the Pharo Smalltalk kernelt from an

nteract (https://nteract.io/desktop) client

HH

On 8/15/18, H. Hirzel  wrote:
> Attachement shows the result of a successful installation into Pharo 6.1
>
>
>
> On 8/15/18, H. Hirzel  wrote:
>> After loading Roassal2 through the Pharo 6.1 catalog and re-executing
>> the Metacello load script
>>
>>   Metacello new
>> baseline: 'JupyterTalk';
>> repository: 'github://jmari/JupyterTalk:master/repository';
>> load:'all'
>>
>> All loaded fine.
>>
>> I found 2 tests. (Result attached). One of them fails.
>>
>>
>> The question is now how to proceed.
>>
>> On
>> https://github.com/jmari/JupyterTalk/blob/master/README.md
>>
>> writing the installation procedure is noted on the 'ToDo' list.
>>
>> I suggest that we just develop the procedure in this mail thread.
>>
>> Most important question now is:
>>
>> How do I start the Pharo Smalltalk Jupyter kernel?
>>
>> HH.
>>
>> On 8/15/18, H. Hirzel  wrote:
>>> On 8/15/18, Stephan Eggermont  wrote:
>>>> H. Hirzel  wrote:
>>>>> P.S. I see that the Metacello script installs a lot in one go.
>>>>>
>>>>> I might be easier to identify the problem if the installation can be
>>>>> done in steps, i.e. several load scripts in sequence.
>>>>
>>>> You already have all the information you need. RT classes missing.
>>> Good point. I was assuming the script pulls in Roassal in case it is
>>> needed.
>>>
>>> HH
>>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-15 Thread H. Hirzel
Attachement shows the result of a successful installation into Pharo 6.1



On 8/15/18, H. Hirzel  wrote:
> After loading Roassal2 through the Pharo 6.1 catalog and re-executing
> the Metacello load script
>
>   Metacello new
> baseline: 'JupyterTalk';
> repository: 'github://jmari/JupyterTalk:master/repository';
> load:'all'
>
> All loaded fine.
>
> I found 2 tests. (Result attached). One of them fails.
>
>
> The question is now how to proceed.
>
> On
> https://github.com/jmari/JupyterTalk/blob/master/README.md
>
> writing the installation procedure is noted on the 'ToDo' list.
>
> I suggest that we just develop the procedure in this mail thread.
>
> Most important question now is:
>
> How do I start the Pharo Smalltalk Jupyter kernel?
>
> HH.
>
> On 8/15/18, H. Hirzel  wrote:
>> On 8/15/18, Stephan Eggermont  wrote:
>>> H. Hirzel  wrote:
>>>> P.S. I see that the Metacello script installs a lot in one go.
>>>>
>>>> I might be easier to identify the problem if the installation can be
>>>> done in steps, i.e. several load scripts in sequence.
>>>
>>> You already have all the information you need. RT classes missing.
>> Good point. I was assuming the script pulls in Roassal in case it is
>> needed.
>>
>> HH
>>
>


Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-15 Thread H. Hirzel
After loading Roassal2 through the Pharo 6.1 catalog and re-executing
the Metacello load script

  Metacello new
baseline: 'JupyterTalk';
repository: 'github://jmari/JupyterTalk:master/repository';
load:'all'

All loaded fine.

I found 2 tests. (Result attached). One of them fails.


The question is now how to proceed.

On
https://github.com/jmari/JupyterTalk/blob/master/README.md

writing the installation procedure is noted on the 'ToDo' list.

I suggest that we just develop the procedure in this mail thread.

Most important question now is:

How do I start the Pharo Smalltalk Jupyter kernel?

HH.

On 8/15/18, H. Hirzel  wrote:
> On 8/15/18, Stephan Eggermont  wrote:
>> H. Hirzel  wrote:
>>> P.S. I see that the Metacello script installs a lot in one go.
>>>
>>> I might be easier to identify the problem if the installation can be
>>> done in steps, i.e. several load scripts in sequence.
>>
>> You already have all the information you need. RT classes missing.
> Good point. I was assuming the script pulls in Roassal in case it is
> needed.
>
> HH
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-15 Thread H. Hirzel
On 8/15/18, Stephan Eggermont  wrote:
> H. Hirzel  wrote:
>> P.S. I see that the Metacello script installs a lot in one go.
>>
>> I might be easier to identify the problem if the installation can be
>> done in steps, i.e. several load scripts in sequence.
>
> You already have all the information you need. RT classes missing.
Good point. I was assuming the script pulls in Roassal in case it is needed.

HH



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-15 Thread H. Hirzel
Also useful would be a catalog entry.

On 8/15/18, H. Hirzel  wrote:
> P.S. I see that the Metacello script installs a lot in one go.
>
> I might be easier to identify the problem if the installation can be
> done in steps, i.e. several load scripts in sequence.
>
> On 8/15/18, H. Hirzel  wrote:
>> Hello Jesús Marí and others
>>
>> Thank you for the updated Metacello script. This brings some steps
>> forward.
>>
>>
>> The use case:
>>
>> 1. I started with http://pharo.org/web/download
>>
>> curl https://get.pharo.org/64/ | bash
>>
>>
>> 2. Open pharo with
>> ./pharo-ui
>>
>>
>> 3. JupyterTalk installation
>> I pasted
>>
>>
>>Metacello new
>> baseline: 'JupyterTalk';
>> repository: 'github://jmari/JupyterTalk:master/repository';
>> load:'all'
>>
>> 4. A problem came up, see screen shot JupyterTalk_Installation
>> I hit 'proceed'
>>
>>
>> 5. I wanted to save the image and did 'save and quit'. Then an
>> additional error popped up
>> See screen shot 'Error_after_choosing_save_and_quit'
>>
>> Help is appreciated.
>>
>> Regards
>> Hannes
>>
>>
>>
>>
>>
>> On 8/13/18, Jesús Marí  wrote:
>>> That worked for me
>>>
>>> Metacello new
>>> baseline: 'JupyterTalk';
>>> repository: 'github://jmari/JupyterTalk:master/repository';
>>> load:'all'
>>>
>>> I will correct the github readme page.
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>>
>>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-15 Thread H. Hirzel
P.S. I see that the Metacello script installs a lot in one go.

I might be easier to identify the problem if the installation can be
done in steps, i.e. several load scripts in sequence.

On 8/15/18, H. Hirzel  wrote:
> Hello Jesús Marí and others
>
> Thank you for the updated Metacello script. This brings some steps forward.
>
>
> The use case:
>
> 1. I started with http://pharo.org/web/download
>
> curl https://get.pharo.org/64/ | bash
>
>
> 2. Open pharo with
> ./pharo-ui
>
>
> 3. JupyterTalk installation
> I pasted
>
>
>Metacello new
> baseline: 'JupyterTalk';
> repository: 'github://jmari/JupyterTalk:master/repository';
> load:'all'
>
> 4. A problem came up, see screen shot JupyterTalk_Installation
> I hit 'proceed'
>
>
> 5. I wanted to save the image and did 'save and quit'. Then an
> additional error popped up
> See screen shot 'Error_after_choosing_save_and_quit'
>
> Help is appreciated.
>
> Regards
> Hannes
>
>
>
>
>
> On 8/13/18, Jesús Marí  wrote:
>> That worked for me
>>
>> Metacello new
>>  baseline: 'JupyterTalk';
>>  repository: 'github://jmari/JupyterTalk:master/repository';
>>  load:'all'
>>
>> I will correct the github readme page.
>>
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-08 Thread H. Hirzel
Jupyter notebooks are not limited to Python, there are more than 40
https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

Pharo Smalltalk is one of them
https://github.com/jmari/JupyterTalk

I'd like to get it up and running


On 8/7/18, Andrew Glynn  wrote:
> Grafoscopio exists due to various limitations of Jupyter, particularly the
> lack of real support for objects in its core language - Python.  JSON is not
> equivalent to STON even in terms of storing JavaScript, it's mainly a data
> format.
>
> On 8/7/18, 2:14 PM, "Pharo-users on behalf of Sean P. DeNigris"
> 
> wrote:
>
> Hannes Hirzel wrote
> > P.S. Some notes and links how Jupyter notebooks relate to the
> Dynabook
> > idea here
> > http://wiki.squeak.org/squeak/1318
>
> From the swiki: "A Jupyter Notebook is… similar to Active Essays kept in
> a
> Smalltalk based Dynabook."
>
> I've understood a key point of the Dynabook dream (and Smalltalk as
> prototype Dynabook software) is that as you drill down to something
> facing
> the end user, you keep the full power of the computer. For example,
> when
> Alan Kay presents, he doesn't use Powerpoint, but Squeak. Hence, the
> slides
> are each fully functioning World where one can e.g. bring up halos,
> inspectors, class browsers.
>
> Is that the case with Jupiter Notebooks? I assumed not since the
> notebooks
> seem to be saved as JSON, unless maybe it's used for object
> serialization
> like STON?
>
>
>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>
>
>
>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-07 Thread H. Hirzel
P.S. Some notes and links how Jupyter notebooks relate to the Dynabook idea here

http://wiki.squeak.org/squeak/1318

My aim is to use nteract as client (https://nteract.io/ ) together
with a Pharo based Smalltalk "kernel" (i.e. server acting as the
"scripting engine")

On 8/7/18, H. Hirzel  wrote:
> Thank you, Evan,  for an alternative load script.
>
> Unfortunately it gives the same error message.
>
> I use a recent, pristine Pharo 6.1 installation on a 64bit Ubuntu based
> Linux.
>
>
> On 8/4/18, Evan Donahue  wrote:
>> Try:
>>
>> Metacello new
>> githubUser: 'jmari' project: 'JupyterTalk' commitish: 'master'
>> path:
>> 'repository';
>> baseline: 'JupyterTalk';
>> load
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-07 Thread H. Hirzel
Thank you, Evan,  for an alternative load script.

Unfortunately it gives the same error message.

I use a recent, pristine Pharo 6.1 installation on a 64bit Ubuntu based Linux.


On 8/4/18, Evan Donahue  wrote:
> Try:
>
> Metacello new
> githubUser: 'jmari' project: 'JupyterTalk' commitish: 'master'
> path:
> 'repository';
> baseline: 'JupyterTalk';
> load
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk

2018-08-04 Thread H. Hirzel
Thank you Serge,

good to see that there is progress with Tensorflow and PolyMath.

I have problems installing Jupytertalk into a pristine 6.1 (I follow
the instructions)



Metacello new
baseline: 'JupyterTalk';
repository: 'github://jmari/JupyterTalk';
load:'all'

gives an error message

'Could not resolve: BaselineOfJupyterTalk'

Is there something else which needs to be installed first?

--Hannes



On 7/28/18, Serge Stinckwich  wrote:
> On Sat, Jul 28, 2018 at 11:21 AM H. Hirzel  wrote:
>
>> Hello
>>
>> What is the status of this project?
>>
>>
>>  https://github.com/jmari/JupyterTalk
>>
>>
> ​You can ask the author of the software, Jesus Mari Aguirre. He is quite
> active.
> W
> ​e talk together about be able to use Jupytalk with Tensorflow and
> PolyMath.
>
> He was able to reproduce part of my talk about Tensorflow:
> https://htmlpreview.github.io/?https://github.com/jmari/JupyterTalk/blob/master/tensorflow.html
>
>
> --
> Serge Stinckwich
> UMI UMMISCO 209 (SU/IRD/UY1)
> "Programs must be written for people to read, and only incidentally for
> machines to execute."http://www.doesnotunderstand.org/
>



Re: [Pharo-users] Interesting Pharo Launcher feedback

2018-06-26 Thread H. Hirzel
On 6/26/18, Tim Mackinnon  wrote:
> As I mentioned - the user in question was quite complimentary, just confused
> on first launch.
>
> Equally we don’t want to impact power users, and ultimately we want to
> encourage everyone to try newer images to help with improvements.
>
> I honestly think that some slightly improved terminology and a bit of
> guidance to get your first image (eg picking the correct one) is all it
> takes.

+1
Maybe just a note on the download website which 'new project' (image)
beginners should go for

--Hannes
>
> Once you’ve groked it - you are off. We just want that first experience to
> be pleasant.
>
> I personally like to see the list of images and understand how many builds
> have been made as it’s comforting to see the progress and be encouraged to
> join in.
>
> I as going to propose a simple change to the name on the lists like:
>
> “Templates” -> “Image Templates” or maybe even “Project Templates”
>
> “Images” -> “Downloaded Images” or maybe “Created Projects”
>
> (While we are familiar with the term image, maybe it’s an implementation
> detail - eclipse and IntelliJ create projects, and we aren’t so different)
>
> We could also as Cyril suggests, have a little welcome window with some text
> and a picture.
>
> Both really simple to do and probably enough to get people started. After
> all, our audience is reasonable technical so we shouldn’t need to dumb It
> down too much.
>
> I’m also conscious about here is a lot of Pharo 7 work to do as well.
>
> Tim
>
> Sent from my iPhone
>
>> On 26 Jun 2018, at 08:09, Christophe Demarey 
>> wrote:
>>
>> Hi Tim,
>>
>>> Le 26 juin 2018 à 03:00, Ben Coman  a écrit :
>>>
>>> On 26 June 2018 at 06:17, Tim Mackinnon  wrote:
 Hi everyone - at tonights month UK Smalltalk Meetup, we got some nice
 compliments on the state of Pharo (the participants - all ex small
 talkers - although ex in so much as they fondly remembered it and wanted
 to use it for something relevant now because they enjoyed it in the
 past).

 Anyway, one interesting comment stuck out - he had downloaded Pharo
 (having used Visual Age 15+ years ago) and was a bit overwhelmed with
 what laugher presented to him. He didn’t hate it - but was initially a
 bit lost as to what it all meant and how to start… he figured it out,
 but I thought the feedback was interesting and made me think that maybe
 we need some form of intro wizard to get people off to a quick start but
 leave them confident enough that they might come back and try a Pharo 7
 or Moose etc.

 I encouraged him to post something on here, but thoughtI would note it
 (as it seems quite easy to fix) as an idea while it was fresh in my
 mind.

>>>
>>> A welcome tutorial is a good idea.  And btw, the sort of idea that only
>>> comes from broader use of PharoLauncher.
>>
>> Thanks for the feedback.
>> We also got this feedback from students. We know we have to improve the UI
>> by simplifying it.
>> Our idea was to only provide a window with a toolbar and the list of
>> images as the main Pharo Launhcer window.
>> On this windows, clicking on the + button will open a « wizard » like the
>> one for creating repositories in Iceberg. There you could choose to create
>> an image from « featured images » or ci, etc.
>>
>> It would lower a lot the cognitive charge of the current window.
>> We just need time to implement it.
>>
>> Cheers,
>> Christophe
>>
>>
>



Re: [Pharo-users] [ANN] GNU Dr. Geo release 18.06

2018-06-25 Thread H. Hirzel
On 6/23/18, Hilaire  wrote:
> As a matter of accuracy, it is more active essays paradigm[1].
>
> Hilaire
>
> [1] http://www.vpri.org/pdf/tr2009002_active_essays.pdf

A good report by now 9 years old worth to be read again.

Maybe some discussion could be about this article and the way forward
 (small doable steps)


>
> Le 23/06/2018 à 08:17, Hilaire a écrit :
>> They call it Dynabook in the old time... Not yet there 40 years later,
>> we are damn slow.
>
> --
> Dr. Geo
> http://drgeo.eu
>
>
>
>



Re: [Pharo-users] [Dynabook][Morphic][TLM][Geometry] Re: [ANN] GNU Dr. Geo release 18.06

2018-06-25 Thread H. Hirzel
P.S. This message was meant to be off-list.

But as it went out to the list unintentionally there will be some
small discussion participation from my side in case there is one   :-)

On 6/26/18, H. Hirzel  wrote:
> Hi Hilaire
>
>
> This message is off-list as I do not have the capacity NOW  to
> maintain a conversation on this list.
>
> See my comments below
>
> On 6/23/18, Hilaire  wrote:
>> Hi Ben,
>>
>> They call it Dynabook in the old time... Not yet there 40 years later,
>> we are damn slow.
>
> Yes indeed.
> Actually on the hardware level and the software for reading (e-books)
> and learning (teaching apps) the dynabook goal has been reached for
> many years by now.
>
> Even the price goal has been under-cut. For 100USD you get a nice
> tablet which is considerably less than the 300400 USD people
> originally thought of.
>
> And with OTG connections you may add a mouse and keyboard.
> Raspberry Pi is also very affordable and has millions of users.
>
> But just using laptops and PCs is also very fine.
>
>> As an educator, I am all days frustrated with the computed tools we
>> have, and the lack of integration.
>
> This is the main point. Lack of integration. And "authoring
> environments" for this.
>
>> Anyones crazy enough to work on this challenge?
>
> I think I am working on this. For quite some time. At the moment I
> work with Squeak though.
>
> But as Dr. Geo is using Morphic what I am doing may be extended to be
> used there as well.
>
> What I am doing is not so much inventing new things but making old
> things work. The solutions are actually around. They need to be
> documented and used. Demos and interaction is needed. Curriculum
> integration is then also quite an effort.
>
> I understand that you are in or around Geneva. Is that correct?
>
> Kind regards
> Hannes
>
>> Hilaire
>>
>>
>> Le 23/06/2018 à 02:03, Ben Coman a écrit :
>>> So now we need a DrGeo inside a live document providing a curriculum
>>> for teachers... ;) ?
>>>
>>> cheers -ben
>>>
>>
>> --
>> Dr. Geo
>> http://drgeo.eu
>>
>>
>>
>>
>



[Pharo-users] [Dynabook][Morphic][TLM][Geometry] Re: [ANN] GNU Dr. Geo release 18.06

2018-06-25 Thread H. Hirzel
Hi Hilaire


This message is off-list as I do not have the capacity NOW  to
maintain a conversation on this list.

See my comments below

On 6/23/18, Hilaire  wrote:
> Hi Ben,
>
> They call it Dynabook in the old time... Not yet there 40 years later,
> we are damn slow.

Yes indeed.
Actually on the hardware level and the software for reading (e-books)
and learning (teaching apps) the dynabook goal has been reached for
many years by now.

Even the price goal has been under-cut. For 100USD you get a nice
tablet which is considerably less than the 300400 USD people
originally thought of.

And with OTG connections you may add a mouse and keyboard.
Raspberry Pi is also very affordable and has millions of users.

But just using laptops and PCs is also very fine.

> As an educator, I am all days frustrated with the computed tools we
> have, and the lack of integration.

This is the main point. Lack of integration. And "authoring
environments" for this.

> Anyones crazy enough to work on this challenge?

I think I am working on this. For quite some time. At the moment I
work with Squeak though.

But as Dr. Geo is using Morphic what I am doing may be extended to be
used there as well.

What I am doing is not so much inventing new things but making old
things work. The solutions are actually around. They need to be
documented and used. Demos and interaction is needed. Curriculum
integration is then also quite an effort.

I understand that you are in or around Geneva. Is that correct?

Kind regards
Hannes

> Hilaire
>
>
> Le 23/06/2018 à 02:03, Ben Coman a écrit :
>> So now we need a DrGeo inside a live document providing a curriculum
>> for teachers... ;) ?
>>
>> cheers -ben
>>
>
> --
> Dr. Geo
> http://drgeo.eu
>
>
>
>



Re: [Pharo-users] Personal Programming onPharo

2018-05-09 Thread H. Hirzel
On 5/9/18, Trygve Reenskaug  wrote:
> Of course not. But one of my goals is that future dynabooks will be
> backwards compatible. Recent discussions have shown me that this goal is
> a research project.
> --Trygve

Indeed [1]. And a very interesting one!

Found and read your overview
http://folk.uio.no/trygver/themes/Personal/PP-NIK.pdf

And also the more elaborate draft of a description (50 pages) [2]

http://folk.uio.no/trygver/themes/Personal/pp-index.html
links to
http://folk.uio.no/trygver/themes/Personal/PersonalProgramming.233.zip


For my personal programming needs in Squeak so far I realized that the
'data' part is the easiest one to tackle in terms of backward
compatibility.

And some success in converting data to code forth and back to ease
compatibility. It would be nicer of course to have a homoiconic
notation [3] but still very doable. In particular as the new VMs have
lifted the size constraint for the source code of in methods.

--Hannes


[1] An example is about the work involved to get a 17 year old
'Dynamic essay' from Squeak 3.2 to read in properly into a Squeak 6.0a
trunk image

http://forum.world.st/Dynamic-essay-project-MorphLayoutArticle-on-Bob-s-SuperSwiki-tc5075374.html

Quite some effort and not a full result yet...

Though Squeak has some mechanisms to update classes and objects.

In that thread Edgar de Cleene outlined  the idea of a recursive DNU
mechanism to check out earlier messages from the web

http://forum.world.st/Dynamic-essay-project-MorphLayoutArticle-on-Bob-s-SuperSwiki-tp5075374p5075625.html

Needs much more elaboration ...
---
[2]  Abstract

Computer programming celebrates its platinum jubilee on the 21st of
June, 2018. Exactly 70 years ago, the world's first programmer wrote
the world's first program and then stored and executed it in the
world's first stored program computer; affectionately known as Baby.
The solitary Baby has morphed into billions of computers that are
loosely connected into a single, global machine. Baby's control panel
has morphed into graphical user interfaces (GUI) that empower
everybody to augment their intellect. The consequences are deeply
radical for individuals and society alike. A significant side effect
of the GUI is that the computer has faded into the background and the
user focuses on the immediate needs.

We present DCI, a new programming paradigm that targets structures of
communicating computers. Its goal is readable code that is so
intuitive that everybody can grok it and so comprehensive that expert
programmers will enjoy using it. DCI programming has been tested on
real-life problems. A set of controlled experiments showed that DCI
code is more readable than Java code.

A new programming environment, BabyIDE, targets the single, global
machine. Different GUIs support programmers having different mental
models depending on their interests and proficiency. An MVC system
architecture makes the program fade into the background and lets the
user concentrate on satisfying his or her immediate needs. My approach
is experimental. Smalltalk's universe of objects imitates the single,
global machine and is my proving ground.We give two examples: one for
experts and another for novices. A video1 illustrates the novice IDE.

Our approach is experimental. The universe of objects found in
Smalltalk's image imitates a computer network and is our proving
ground. Squeak 3.10.2 is our laboratory where we experiment with
various versions of BabyIDE.

A great deal of work remains to make BabyIDE generally available and
we are searching for a trailblazer who will take charge of it and take
it out into the world.

Keywords:
Personal Programming,
Novice Programming,
Single Global Machine,
IOT,
Smart Home,
MVC,
DCI,
BabyIDE,
Smalltalk,
Object Orientation

[3]
http://goran.krampe.se/2016/07/19/spry-is-a-smalltalk/


> On 09.05.2018 12:19, Marcus Denker wrote:
>>>
>>>
 I go back to Alan Kay's vision of a Dynabook: A/personal/computer
 for children of all ages. It should contain all its owner's
 /personal/data, including  his or her/personal/programs, as they
 evolve through the years.  Continuity is a must; the owner shall
 never loose data.

>>>
>>
>> Do you really expect that the dynabook will be 100% backward
>> compatible to Smalltalk-80?
>>
>> Marcus
>
> --
>
> /The essence of object orientation is that objects collaborateto achieve
> a goal. /
> Trygve Reenskaug mailto: tryg...@ifi.uio.no 
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> N-0378 Oslo http://fullOO.info
> Norway Tel: (+47) 22 49 57 27
>
>



Re: [Pharo-users] customizing red screen of death

2018-05-08 Thread H. Hirzel
>From and end user perspective the icon is nicer. From a developer
perspective it is better to see the code.

--Hannes

On 5/8/18, Peter Uhnák  wrote:
> Hi,
>
> has anyone played around with customizing the red screen of death
> (=morphic/athens drawing error)?
>
>
>
>
> Perhaps to show something similar to what chrome shows on a tab crash
>
>
>
>
> Thanks,
> Peter
>



[Pharo-users] What is Reef? (was: Tide/Amber)

2018-03-15 Thread H. Hirzel
Hello Esteban

Which problem does Reef solve?

Regards
Hannes

On 3/15/18, Esteban Lorenzano  wrote:


> Other reason why no one is using it (Tide / Amber) is, probably, because 
> nobody knows is
> there: things that are not marketed/exposed/explained are ultimately lost
> (it happened also with Reef and a lot other projects I had that IMO could
> have had better luck).
>
> Esteban
>



Re: [Pharo-users] [system update problem]

2018-03-12 Thread H. Hirzel
On 3/12/18, Baveco, Hans  wrote:
> Hi,
> I consistently have problems doing the software update, under the System
> item in the World menu.
> Get stuck in "Fetching BaselineOfIceberg", when according to the debugger a
> ZnClient is trying to connect to url
> "https://github.com:443/pharo-vcs/iceberg/zipball/v0.6.8;
>
>
> It says this a Pharo 6.0 image, latest update: #60529 (though I am fairly
> sure it was actually a downloaded 6.1 image I started from)

As for the  Pharo 6.0 label for a Pharo 6.1 image. This is a known
issue. The Pharo 6.1 release did not update the version label



> Any suggestions how to solve this?
> Thanks!
> Hans
>
>
>



Re: [Pharo-users] How do I ask the FileSystem to resolve a relative path?

2018-03-11 Thread H. Hirzel
The first solution given by Sven works fine.

dir := FileSystem workingDirectory / '..' / 'public'.
dir ensureCreateDirectory.
(dir / 'myFile.txt') writeStreamDo: [ :out | out << 'Hello World!' ].


The second version

obj := (FileSystem workingDirectory / '..' / 'public' / 'testing'
/ 'test2.txt') ensureCreateFile.
obj writeStream

gives a #streamError in the class FileHandle. This is for Pharo 6.1



On 3/11/18, Sven Van Caekenberghe <s...@stfx.eu> wrote:
>
>
>> On 11 Mar 2018, at 10:39, john pfersich <jpfers...@gmail.com> wrote:
>>
>> or try
>>
>> dir := (FileSystem workingDirectory / '..' / 'public' / 'testing' /
>> 'test2.txt') ensureCreateFile.
>> dir writeStream.
>
> Indeed!
>
>> On Sun, Mar 11, 2018 at 1:16 AM, Sven Van Caekenberghe <s...@stfx.eu>
>> wrote:
>>
>>
>> > On 11 Mar 2018, at 09:42, H. Hirzel <hannes.hir...@gmail.com> wrote:
>> >
>> > Hello
>> >
>> > This is a follow up question to 'How do I make sure a directory
>> > exists?'
>> >
>> > The answer to that question was
>> >
>> >   dir := FileSystem workingDirectory / '..' / 'public'.
>> >   dir ensureCreateDirectory.
>> >
>> >
>> > Now I want to create a writeStream.
>> >
>> >   dir writeStream
>> >
>> > gives 'Unable to open file'
>>
>> You want to write to a directory ?
>>
>> You probably mean
>>
>> dir := FileSystem workingDirectory / '..' / 'public'.
>> dir ensureCreateDirectory.
>> (dir / 'foo.txt') writeStreamDo: [ :out | out << 'bar' ].
>>
>> You are probably also looking for
>>
>> dir canonicalize.
>> (dir / 'foo.txt') canonicalize.
>>
>> > It seems that I need to ask to resolve the relative path first.
>> > How does the proper code idiom look like?
>> >
>> >
>> > Regards
>> >
>> > Hannes
>> >
>>
>>
>>
>
>
>



[Pharo-users] How do I ask the FileSystem to resolve a relative path?

2018-03-11 Thread H. Hirzel
Hello

This is a follow up question to 'How do I make sure a directory exists?'

The answer to that question was

   dir := FileSystem workingDirectory / '..' / 'public'.
   dir ensureCreateDirectory.


Now I want to create a writeStream.

   dir writeStream

gives 'Unable to open file'


It seems that I need to ask to resolve the relative path first.
How does the proper code idiom look like?


Regards

Hannes



Re: [Pharo-users] How do I make sure a directory exists?

2018-03-10 Thread H. Hirzel
I note that 'workingDirectory' is the directory where Pharo is
launched from. In my case it happens to be the same where the image is
in but that cannot be assumed generally.

So

(FileSystem workingDirectory / '..' / 'public') ensureCreateDirectory


Worked fine.


Thanks to all!

--Hannes

On 3/10/18, Peter Uhnák <i.uh...@gmail.com> wrote:
> Operator priority :); unary messages `#ensureCreateDirectory have
> precedence over binary `#/`
>
> (FileSystem disk workingDirectory / '../public') ensureCreateDirectory.
>
> Also please note that the workingDirectory should be based on where Pharow
> as launched from, if you are looking for the image directory, then use the
> following
>
> FileLocator imageDirectory asFileReference
>
> Cheers,
> Peter
>
> On Sat, Mar 10, 2018 at 9:35 PM, H. Hirzel <hannes.hir...@gmail.com> wrote:
>
>> Yes, #ensureCreateDirectory is available.
>>
>> I'd like to make sure a directory 'public' is available as a sibling
>> directory of the working directory (the directory where the Pharo
>> image is in)
>>
>> However
>>
>> FileSystem disk workingDirectory / '../public'  ensureCreateDirectory
>>
>> does not work as
>>
>> FileSystem disk workingDirectory / '../public'
>>
>> is an instance of ByteStream. Seemingly there is no conversion to a
>> directory object.
>>
>> I wonder what is needed in addition?
>>
>>
>>
>>
>>
>>
>>
>> On 3/10/18, Cyril Ferlicot <cyril.ferli...@gmail.com> wrote:
>> > On sam. 10 mars 2018 at 21:02, H. Hirzel <hannes.hir...@gmail.com>
>> wrote:
>> >
>> >> Hello
>> >>
>> >> In Squeak and the dialect independent FileMan [1] there is
>> >>
>> >>
>> >> FileDirectory
>> >>assureExistence
>> >> "Make sure the current directory exists. If necessary,
>> create
>> >> all
>> >> parts in between"
>> >>
>> >>
>> >> What is the equivalent Pharo method? BTW is there a cheat sheet for
>> >> FileSystem operations in Pharo?
>> >>
>> >
>> > Hi,
>> >
>> > There is #ensureCreateDirectory in Pharo but I don't know if it will
>> check
>> > the parents exists. (And I don't have a Pharo image to check.
>> >
>> >
>> >> Thanks in advance
>> >> Hannes
>> >>
>> >>
>> >>
>> >> -
>> >> [1] http://wiki.squeak.org/squeak/6333
>> >>
>> >> https://github.com/mumez/FileMan
>> >>
>> >> FileMan provides an API to file and directory tasks.
>> >> FileMan is a thin wrapper for various Smalltalk file libraries. It
>> >> provides simple, portable interfaces for manipulating files and
>> >> directories.
>> >> ...
>> >> Since 2015 FileMan is the default file library in Cuis Smalltalk.
>> >>
>> >> --
>> > Cyril Ferlicot
>> > https://ferlicot.fr
>> >
>> > http://www.synectique.eu
>> > 2 rue Jacques Prévert 01,
>> > 59650 Villeneuve d'ascq France
>> >
>>
>>
>



Re: [Pharo-users] How do I make sure a directory exists?

2018-03-10 Thread H. Hirzel
Yes, #ensureCreateDirectory is available.

I'd like to make sure a directory 'public' is available as a sibling
directory of the working directory (the directory where the Pharo
image is in)

However

FileSystem disk workingDirectory / '../public'  ensureCreateDirectory

does not work as

FileSystem disk workingDirectory / '../public'

is an instance of ByteStream. Seemingly there is no conversion to a
directory object.

I wonder what is needed in addition?







On 3/10/18, Cyril Ferlicot <cyril.ferli...@gmail.com> wrote:
> On sam. 10 mars 2018 at 21:02, H. Hirzel <hannes.hir...@gmail.com> wrote:
>
>> Hello
>>
>> In Squeak and the dialect independent FileMan [1] there is
>>
>>
>> FileDirectory
>>assureExistence
>> "Make sure the current directory exists. If necessary, create
>> all
>> parts in between"
>>
>>
>> What is the equivalent Pharo method? BTW is there a cheat sheet for
>> FileSystem operations in Pharo?
>>
>
> Hi,
>
> There is #ensureCreateDirectory in Pharo but I don't know if it will check
> the parents exists. (And I don't have a Pharo image to check.
>
>
>> Thanks in advance
>> Hannes
>>
>>
>>
>> -
>> [1] http://wiki.squeak.org/squeak/6333
>>
>> https://github.com/mumez/FileMan
>>
>> FileMan provides an API to file and directory tasks.
>> FileMan is a thin wrapper for various Smalltalk file libraries. It
>> provides simple, portable interfaces for manipulating files and
>> directories.
>> ...
>> Since 2015 FileMan is the default file library in Cuis Smalltalk.
>>
>> --
> Cyril Ferlicot
> https://ferlicot.fr
>
> http://www.synectique.eu
> 2 rue Jacques Prévert 01,
> 59650 Villeneuve d'ascq France
>



[Pharo-users] How do I make sure a directory exists?

2018-03-10 Thread H. Hirzel
Hello

In Squeak and the dialect independent FileMan [1] there is


FileDirectory
   assureExistence
"Make sure the current directory exists. If necessary, create all
parts in between"


What is the equivalent Pharo method? BTW is there a cheat sheet for
FileSystem operations in Pharo?

Thanks in advance
Hannes



-
[1] http://wiki.squeak.org/squeak/6333

https://github.com/mumez/FileMan

FileMan provides an API to file and directory tasks.
FileMan is a thin wrapper for various Smalltalk file libraries. It
provides simple, portable interfaces for manipulating files and
directories.
...
Since 2015 FileMan is the default file library in Cuis Smalltalk.



Re: [Pharo-users] Simplest 'REPL'

2017-12-09 Thread H. Hirzel
I understand that you want to write a tool with an input field and an
output field and a button 'Evaluate'.  Is this correct?

If yes you need to learn a little bit of Spec to construct your own tool.

Have a look at the examples for Spec in the help system.

There is also a booklet about Spec.  http://books.pharo.org/spec-tutorial/

HTH
Hannes

On 12/9/17, cheshirecatalyst  wrote:
> I've recently picked up pharo, and am writing a small interpreter for a
> trivial language the details of which are unimportant. However I am looking
> for the simplest way to avoid having to use playground and Transcript to do
> something like
>
> | reader eval |
> reader := MyReader from: 'some stuff in my DSL'.
> eval := MyEvaluator from: reader.
> Transcript show: eval evaluate.
>
> I'm tired of having to change 'some stuff in my DSL' to a new expression
> and run it in playground.
>
> I don't really care which is easier, a Morphic with an input box at the
> bottom to put my expressions in with output up top, or a something like
> CommandShellTranscript (which i have looked at but is too complex for me to
> figure out how to get the desired result from).
>
> Basically I want to be able to use my DSL outside of playground, but still
> in image.
>



Re: [Pharo-users] Fuel transfer from Pharo 1.4 to Pharo 6.1

2017-11-28 Thread H. Hirzel
Hello Andreas

Unfortunately Fuel is not meant for this kind of use case of migrating
an object model.

So other options have to be considered.

Does your object model have cycles?

Regards
Hannes

On 11/28/17, Andreas Brodbeck  wrote:
> Hi all,
>
> I have a long running Seaside/Pharo application which still runs perfect
> on Pharo 1.4. I want to step into the future and migrate to the newest
> Pharo 6.1.
>
> The application's persistence is just in the image, so my plan is to use
> Fuel to transfer the objects from Pharo 1.4 to Pharo 6.1.
>
> My first attempt:
>
> --- Using Fuel version 1.9.4 on both VMs.
> --- Class TimeStamp was missing, so I created it.
> --- I use a Fuel-migration for the renaming of "MethodContext" into the
> new "Context" class.
>
>
> But now I am stuck with FLMethodChanged errors. My investigation shows
> that there are unequal values for the method Context>>bytecodesHash when
> comparing Pharo 1.4 with 6.1. (BTW: Pharo 5 gives same values like 6.1).
>
> So, basically Fuel can not materialize the instances because the
> bytecode hash of all methods have changed, comparing 1.4 to 6.1. My
> feeling says that this could be a major problem for my plans to migrate
> from Pharo 1.4 to 6.1.
>
> Is there a chance to still load those instances with Fuel into the new
> 6.1 Pharo?
>
> Thanks!
> Andreas
>
> --
> Andreas Brodbeck
> www.mindclue.ch
>
>
>



Re: [Pharo-users] Short report about Pharo experience

2017-11-23 Thread H. Hirzel
On 11/23/17, Hans  wrote:
> Hi Stef,
>
> my post is intended as feedback. Action is a different thing. Feedback may
> help to indentify useful actions. In this sense, I thought feed back is
> help, too. May be I'm wrong.
>
> If you thing feed back is useless and without value, and only "action"
> counts, then is this your opinion. Then I'll take my actions (which are
> there, I develop on TeaPot, as you could read)


Hello Hans

You write

"With Shiny in mind, I’m working with Teapot on Pharo"

This is interesting.

could you please elaborate on this, probably in a new thread?

--Hannes



 and be quiet. Full Stop.
>
> Hans
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



Re: [Pharo-users] I18n in pharo

2017-11-11 Thread H. Hirzel
On 11/11/17, stephan  wrote:
> On 10-11-17 12:23, Cédrick Béler wrote:
>> Plus I have the impression Morphic mess is about to be solved.
>
> There is still an awful lot of essential complexity in beautiful
> graphics and typography that is not going away. Microsoft Word still
> cannot layout a paragraph of text after 34 years of development

Can you point to an example of this?

--Hannes


> Stephan
>
>
>



Re: [Pharo-users] Unable to load SmaCC on pharo6 (or pharo5)

2017-11-10 Thread H. Hirzel
On 11/9/17, Federico.Balaguer  wrote:
> I would like to check if I need to use SmaCC for a project. I tried to
> install it on Pharo 6.1 32bits with iceberg but I was not able to do it.
>
> Then I tried to get SmaCC on an Pharo5


I just loaded SmaCC into a Pharo 5 - 32bit image. It worked fine.
Make sure that you have opened a Transcript window before loading
SmaCC through the catalog. This way you see if there are problems.

I loaded the 'stable' version and got on the Transcript what I copy in below.

--Hannes


ConfigurationOfSmaCC class>>updateSmalltalkhubSmaCC
(MCFileTreeGitRemoteRepository is Undeclared)

Loading 2.0.5.1 of ConfigurationOfSmaCC...
Fetched -> BaselineOfSmaCC-ThierryGoubier.8 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Loaded -> BaselineOfSmaCC-ThierryGoubier.8 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Project: SmaCC baseline
Fetched -> SmaCC-Source-Editing-ThierryGoubier.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Runtime-ThierryGoubier.10 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-GLR-Runtime-ThierryGoubier.4 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Development-ThierryGoubier.41 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Development-UI-ThierryGoubier.31 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Rewrite-Engine-ThierryGoubier.6 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Smalltalk-Parser-ThierryGoubier.6 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-C-Parser-ThierryGoubier.5 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-CSV-ThierryGoubier.3 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-CSharp-ThierryGoubier.8 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Cucumber-ThierryGoubier.9 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Javascript-ThierryGoubier.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Java-ThierryGoubier.9 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Fetched -> SmaCC-Python-ThierryGoubier.44 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1
Loaded -> SmaCC-Source-Editing-ThierryGoubier.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Runtime-ThierryGoubier.10 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-GLR-Runtime-ThierryGoubier.4 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Development-ThierryGoubier.41 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Development-UI-ThierryGoubier.31 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Rewrite-Engine-ThierryGoubier.6 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Smalltalk-Parser-ThierryGoubier.6 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-C-Parser-ThierryGoubier.5 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-CSV-ThierryGoubier.3 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-CSharp-ThierryGoubier.8 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Cucumber-ThierryGoubier.9 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Javascript-ThierryGoubier.1 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Java-ThierryGoubier.9 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
Loaded -> SmaCC-Python-ThierryGoubier.44 ---
github://ThierryGoubier/SmaCC:v2.0.5.1 --- cache
...finished 2.0.5.1



and Pharo6  images with "Catalog
> Browser" but I was not able to do it neither. The tool did pop up a message
> saying that Smacc was not tested for Pharo6 which was nice.
>
> Then I tried to clone the git repository to my local machine,  I pointed
> iceberg to that local repository and then I loaded each package by hand. I
> was able to load BaselineOfSmaccBrowser but SmaCC-Rewrite-Engine failed to
> load with a debugger with a list of classes and methods that are missing
> (they are listed at the end of this message).
>
> Could some give an idea how to fix this?
>
> Thanks. Federico
>
>
> This package depends on the following classes:
>   SmaCCStringInterval
>   SmaCCParseNodeVisitor
>   SmaCCScanner
>   SmaCCParseNode
>   SmaCCParser
>   SmaCCString
> You must resolve these dependencies before you 

Re: [Pharo-users] About implementing a "Mini Pillar" in-image renderer for Pharo ...

2017-11-10 Thread H. Hirzel
A note:

Tudor Girba wrote:
<tu...@tudorgirba.com>  Fri, Aug 25, 2017 at 1:31 PM
Reply-To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
To: Any question about pharo is welcome <pharo-users@lists.pharo.org>

Hi,

As mentioned in an announcement about 10 days ago, we are building a
Pillar editor with inline viewing abilities in Bloc. Here is how it
looked like. Please note the embedded picture. We continued working on
it since then and we will probably announce the next version this
weekend:


Maybe there is now enough progress to do simple presentations in Bloc?


On 11/10/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> Hello
>
> In the thread 'including Pillar in Pharo image by default' it was
> suggested by Stephane Ducasse to include a subset of Pillar in the
> Pharo image[1] .
>
> I'd like to extend that proposal a little bit it in order  to do very
> simple presentations. This should allow to describe at least part of
> the slides used in the MOOC course [3].
>
> This will be  _a possible_ solution to the question  brought up in the
> thread 'Writing "powerpoint" like presentations in Pharo?'.
>
> Another use is to write instructions with executable content within
> the image ("Assistants").
>
> So below is the a proposal for a Pillar syntax _subset_ for class
> comments and _simple_ presentations.
> The numbering scheme follows the 'Pillar syntax cheat sheet' [2]
>
>
>
>
> MINI PILLAR SYNTAX (a subset of Pillar)
>
> 1. Headers
>
> !Header 1
> !!Header 2
> !!!Header 3
>
>
> 2. Lists
>
> - Unordered List
> # Ordered list
>
>
>
> 5. Emphasis
>
> ""bold""
>
>
> 6. Code blocks
>
>  [[[
>  Transcript show: 'Hello World'.
>  \]]]
>
>
> 9. Annotation
>
> ${slide:title=About Pharo}$
>
>
>
>
> Next week I plan to implement the rendering of this 'Mini Pillar' in
> Morphic using the Morphic API subset that works in Pharo and Squeak.
>
> A renderer using Bloc would also be nice. [4]
>
> Comments, suggestions, code snippets and other help is welcome.
>
> Regards
> Hannes
>
>
>
>
> --
> [1] Pillar subset for class comments
>
> Stephane Ducasse
> <stepharo.s...@gmail.com> Fri, Aug 11, 2017 at 7:09 PM
> To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
>
> Tx cyril
>
> For class comment I image that we want
>
> !
>
> -
> -
> *url*
> and bold
> [[[
>
> ]]]
>
> Did I miss something.
>
> Stef
>
>
>
>
>
> --
> [2]
> http://pillarhub.pharocloud.com/hub/pillarhub/pillarcheatsheet
> --
>
>
> 1. Headers
>
> !Header 1
> !!Header 2
> !!!Header 3
> Header 4
> !Header 5
> !!Header 6
>
> 2. Lists
>
> - Unordered List
> # Ordered list
>
> 3. Table
>
> |! Left |! Right |! Centered
> |{Left |}Right| Centered
>
>
> 4. Description
> Note
> on a new line
>
> ;head
> :item
>
>
> 5. Emphasis
>
> ""bold""
> ''italic''
> --strikethrough--
> __underscore__
> ==inline code==
> @@subscript@@
> ^^sub-script^^
>
> 6. Code blocks
>
>  [[[lab­el=­hel­loS­cri­pt|­cap­tio­n=How to print Hello
> World|­lan­gua­ge=­Sma­lltalk
>  Transcript show: 'Hello World'.
>  \]]]
>
>
> 7. Raw
>
>
> {{{latex:
> this is how you inject raw \LaTeX in your output file
> }}}
>
> {{{mar­kdown:
> this is how you inject raw `markdown` in your output file
> }}}
>
> {{{html:
> this is how you inject raw ­htm­l in your output file
> }}}
>
>
> 8. Links
>
> Anchor @anchor (new line)
> Internal link *anchor*
> External link *Google>http://google.com*
> Image +Caption>file://image.png|width=50|label=label+
>
>
> 9. Annotation
> Note
> on a new line
>
> Annotation @@note this is a note
> Todo item @@todo this is to do
>
>
> 10. Comments
>
> % each line starting with % is commented
>
>
> 11. References
>
> This document is copied from
> http://www.cheatography.com/benjaminvanryseghem/cheat-sheets/pillar/
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Re: [Pharo-users] Writing "powerpoint" like presentations in Pharo?

2017-11-10 Thread H. Hirzel
On 11/3/17, Stephan Eggermont  wrote:
> On 03/11/17 12:33, Tim Mackinnon wrote:
>> Cool - great minds think alike ;)
>
> :)
>
>> In your photo - there is keynote, are you creating there and then
>> rendering in Pharo - or are you exporting to keynote to had out
>> afterwards?
>
> That was the first experiment. I took a slide from a keynote
> presentation I have made and tried reproducing it in Bloc. The quality
> of the graphics and typographical support is now good enough to do that.
> It is a page from
> https://medium.com/concerning-pharo/pharo-50c66685913c

Is the code available somewhere?

> I'm not yet sure how I'd want it integrated with gtInspector, how to
> have a slide-specific DSL and what kind of storage format to use.
>
> My Bloc experiments on vimeo are helping me test hypotheses on how I'd
> want to work with it.

Links to the videos?

Thanks in advance
Hannes

> Last week I was distracted by private reasons, the
> weeks before that with PharoLauncher, P3, Iceberg...
>
> Interaction between text areas and drag and drop was not yet working as
> I wanted it to.
>
> Earlier experiments I've done with a glamour based browser, including
> exercises where save would recompile a method and show the results
>
> Stephan
>
>
>



Re: [Pharo-users] I18n in pharo

2017-11-10 Thread H. Hirzel
Maybe in a different thread...

On 11/10/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> On 11/10/17, Hilaire <hila...@drgeo.eu> wrote:
>> A cleaner Pharo will help there.
>>
>> To be frank, I found later Pharo releases not inspiring. Bigger, bigger
>> and bigger with added code, protocol changes, and bugs at will. It is
>> becoming too complicated for a hobby use of it.
>>
>> I decided I will not finish porting DrGeo to P6 or P7, and it will
>> likely die with P3.
>
> What are the main show stoppers which make it difficult to port your
> application to P6?
>
>>
>> Pharo should have been clean up to the bones before adding. It was the
>> initial moto, no?
>>
>>
>> Le 10/11/2017 à 11:14, Marcus Denker a écrit :
>>> It would be nice if someone who uses it would take the lead
>>> so we can improve the default that is shipped with Pharo.
>>
>> --
>> Dr. Geo
>> http://drgeo.eu
>>
>>
>>
>>
>



Re: [Pharo-users] I18n in pharo

2017-11-10 Thread H. Hirzel
On 11/10/17, Hilaire  wrote:
> A cleaner Pharo will help there.
>
> To be frank, I found later Pharo releases not inspiring. Bigger, bigger
> and bigger with added code, protocol changes, and bugs at will. It is
> becoming too complicated for a hobby use of it.
>
> I decided I will not finish porting DrGeo to P6 or P7, and it will
> likely die with P3.

What are the main show stoppers which make it difficult to port your
application to P6?

>
> Pharo should have been clean up to the bones before adding. It was the
> initial moto, no?
>
>
> Le 10/11/2017 à 11:14, Marcus Denker a écrit :
>> It would be nice if someone who uses it would take the lead
>> so we can improve the default that is shipped with Pharo.
>
> --
> Dr. Geo
> http://drgeo.eu
>
>
>
>



[Pharo-users] About implementing a "Mini Pillar" in-image renderer for Pharo ...

2017-11-10 Thread H. Hirzel
Hello

In the thread 'including Pillar in Pharo image by default' it was
suggested by Stephane Ducasse to include a subset of Pillar in the
Pharo image[1] .

I'd like to extend that proposal a little bit it in order  to do very
simple presentations. This should allow to describe at least part of
the slides used in the MOOC course [3].

This will be  _a possible_ solution to the question  brought up in the
thread 'Writing "powerpoint" like presentations in Pharo?'.

Another use is to write instructions with executable content within
the image ("Assistants").

So below is the a proposal for a Pillar syntax _subset_ for class
comments and _simple_ presentations.
The numbering scheme follows the 'Pillar syntax cheat sheet' [2]




MINI PILLAR SYNTAX (a subset of Pillar)

1. Headers

!Header 1
!!Header 2
!!!Header 3


2. Lists

- Unordered List
# Ordered list



5. Emphasis

""bold""


6. Code blocks

 [[[
 Transcript show: 'Hello World'.
 \]]]


9. Annotation

${slide:title=About Pharo}$




Next week I plan to implement the rendering of this 'Mini Pillar' in
Morphic using the Morphic API subset that works in Pharo and Squeak.

A renderer using Bloc would also be nice. [4]

Comments, suggestions, code snippets and other help is welcome.

Regards
Hannes




--
[1] Pillar subset for class comments

Stephane Ducasse
   Fri, Aug 11, 2017 at 7:09 PM
To: Any question about pharo is welcome 

Tx cyril

For class comment I image that we want

!

-
-
*url*
and bold
[[[

]]]

Did I miss something.

Stef





--
[2]
http://pillarhub.pharocloud.com/hub/pillarhub/pillarcheatsheet
--


1. Headers

!Header 1
!!Header 2
!!!Header 3
Header 4
!Header 5
!!Header 6

2. Lists

- Unordered List
# Ordered list

3. Table

|! Left |! Right |! Centered
|{Left |}Right| Centered


4. Description
Note
on a new line

;head
:item


5. Emphasis

""bold""
''italic''
--strikethrough--
__underscore__
==inline code==
@@subscript@@
^^sub-script^^

6. Code blocks

 [[[lab­el=­hel­loS­cri­pt|­cap­tio­n=How to print Hello
World|­lan­gua­ge=­Sma­lltalk
 Transcript show: 'Hello World'.
 \]]]


7. Raw


{{{latex:
this is how you inject raw \LaTeX in your output file
}}}

{{{mar­kdown:
this is how you inject raw `markdown` in your output file
}}}

{{{html:
this is how you inject raw ­htm­l in your output file
}}}


8. Links

Anchor @anchor (new line)
Internal link *anchor*
External link *Google>http://google.com*
Image +Caption>file://image.png|width=50|label=label+


9. Annotation
Note
on a new line

Annotation @@note this is a note
Todo item @@todo this is to do


10. Comments

% each line starting with % is commented


11. References

This document is copied from
http://www.cheatography.com/benjaminvanryseghem/cheat-sheets/pillar/
















--
[3] Example pillar code for slides
--

https://github.com/SquareBracketAssociates/PharoMooc/blob/master/Slides/1-Templates/SlideExample.pillar

{
"title":"To the Roots of Objects",
"subtitle":"Learning from beauty",
"author":"Stephane Ducasse",
"complement":"http://stephane.ducasse.free.fr/  
stephane.duca...@inria.fr"
}


${toc:depthLevel=2|level=0|highlight=0}$

%Les sections ne sont pas des titres de slide mais définnissent la
structure du doucment. Il est possible de rajouter
"renderStructureAsSlide":false dans pillar.conf pour ne pas créer de
slide à partir d'un titre.


${slide:title=License}$

+>file://figures/CreativeCommons.png|width=50|label=figCreativeCommons+


! Introduction

%
${toc:depthLevel=1|level=0|highlight=1}$


${slide:title=Really?!|label=really}$

${columns}$

${column:width=50}$

%the width parameter take an Int between 1 and 100
%For now we have to pass a line before and after an annotation, I'll
correct that soon in Pillar.
- No primitive types
- No hardcoded constructs for conditional
- Only messages
- Only objects

${column:width=50}$

- and this works?
- I mean really?
- Not even slow?
- Can't be real!

${endColumns}$

${slide:title=Motto}$

- Let's open our eyes, look, understand, and deeply understand the
underlying design aspects of object-oriented programming.


*@really*

*TEST !>@really*

${slide:title=Booleans}$

[[[language=smalltalk
3 > 0
ifTrue: ['positive']
ifFalse: ['negative']
-> 'positive'
]]]

${slide:title=Yes ifTrue\:ifFalse\: is a 

Re: [Pharo-users] including Pillar in Pharo image by default

2017-11-10 Thread H. Hirzel
Hello

Peter Uhnak summarized this  thread about what what to include of
Pillar in the base image on Aug 17, 2017 ([1] original  question, [2]
summary).

The issue of having a "Mini pillar" in the image was brought up by
Stephan Ducasse and summarized by Cyril Ferlicot.

I will start a new thread with the subject 'Mini Pillar'.

Regards
Hannes



[1]

On 8/11/17, Peter Uhnak  wrote:
> Hi,
>
> I would like to propose including Pillar in the Pharo image by default.
>
> My reasoning:
>
> Since we are moving to git, and most people will use github, gitlab, and the
> likes, it is expected to include a README.md file (or possibly more
> extensive documentation) alongside the code.
>
> Which means that people will (and are) writing the README mostly by hand,
> which of course is problematic, as e.g. code snippets can get deprecated,
> screenshots become outdated, etc.
>
> As Pillar tries to address these problems, it would make sense to me to
> include Pillar in the image by default, as anyone using git (which
> eventually should be everyone) will most likely benefit from writing their
> documentation in Pillar.
> Similarly using Pillar would open an avenue to provide the documentation
> in-image, e.g. one exporter for html/markdown, and another one for Pharo's
> Help system.
>
> I could, of course, install Pillar every time, but considering thats extra
> effort and in the extra time I can fix the issues by hand, I don't have such
> an incentive to use Pillar for this.
>
> Questions & Problems:
>
> I don't know by how much would pillar increase the image size. Perhaps there
> could be (a) "lightweight Pillar" (that would include just pillar & markdown
> exporter), or (b) we would have different images for different uses.
>
> By different images I mean something along the lines of
> a) developer image - meant to be directly used by developers to create their
> software
> b) production image - as a foundation for running systems / users
>
> Does this make sense?
>
> Peter
>
>





---
[2]
Peter Uhnak
 Thu, Aug 17, 2017 at 10:26 AM
Reply-To: Pharo Development List 
To: Pharo Development List 

Even though I've initiated this discussion I kind of stopped reading
because everyone started discussing completely unrelated things...

The initial point was "we are using github/gitlab more and more,
lets leverage it more"

New, lets separate the concepts at play here...

"Pillar - document model" - the workhorse of pillar and (imho) the
most important part of it, and also the part I am interested in being
included. Because then I can generate the document directly without
using any syntax...

"Pillar - syntax" - we can have endless arguments whether the syntax
is good or bad, and imho that should be a separate discussion
unrelated to the Pillar inclusion

"Markdown for unrelated usecases" - whether you can or cannot write
your thesis in markdown is really irelevant here

"Markdown - export" - there will always be different variants and
extensions for Markdown, simply because the sites using markdown offer
different capabilities.

Therefore the first focus should be on the most impact/effort ratio,
which is CommonMark (basically the only meaningful Markdown
specification), and GFM (which is a CommonMark with added tables and
strikethrough).

Adding support for more extensive export support, whether code related
(e.g. GitLab), or code unrelated (writing a thesis) should be a future
discussion, it is not relevant or too effortful right now.

"Markdown - import" - I would love to be able to write markdown and
have it imported into the Pillar document model, however that is imho
moot point right now, as it can always be added later


To summarize:

* primary
* include pillar document model
* include pillar syntax (as an import format)
* add CommonMark+GFM export
* secondary
* discuss Pillar syntax if needed (in a _new_ thread)
* discuss Markdown parser / importing CommonMark into Pillar model
* any other discussion not pertinent here should go elsewhere

Peter

---


[3]
Cyril Ferlicot D.
  AttachmentFri, Aug 11, 2017 at 6:57 PM
Reply-To: Any question about pharo is welcome 
To: pharo-users@lists.pharo.org
Reply | Reply to all | Forward | Print | Delete | Show original
- Show quoted text -
Hi,

I know that Stephane want to includes a light version of Pillar in the
image.

Currently he is working on a way to remove Magritte dependency from
Pillar.

Another step would be to get a minimal parser not relying on
PetitParser.

This parser would parse only a subset of the Pillar syntax
that can be used for writing class comments. If this subset is defined
(I we have the list of all Document Items we want to understand), I can
give a try to 

Re: [Pharo-users] "Building-With versus Building-on"

2017-10-14 Thread H. Hirzel
Hello Serge

https://ummisco.github.io/kendrick/
https://github.com/UMMISCO/kendrick

:-)

Maybe you can refer to a report how it was used?

--Hannes

On 10/14/17, Serge Stinckwich <serge.stinckw...@gmail.com> wrote:
> On Sat, Oct 14, 2017 at 11:50 AM, H. Hirzel <hannes.hir...@gmail.com>
> wrote:
>
>> On 10/12/17, Andrew Glynn <aglyn...@gmail.com> wrote:
>> > https://medium.com/@dasein42/building-with-versus-building-on-c51aa3034
>> > c71
>> > This is an article not specifically about Pharo, rather on the state of
>> > the industry
>> > in general and how it got that way, but positing Pharo as a way to
>> > learn
>> > building-on rather than building-with, where in the latter case on
>> > every project you start at essentially the same place.
>> > As a result it does put in front of people a fair amount of info on
>> > Pharo, and challenges them to try it.
>> >
>> > cheersAndrew Glynn
>>
>>
>> Thank you for this comprehensive report.
>>
>> Do you have a reference for more info about the epidemiology project
>> which was completed in only a months time?  [1]
>>
>> -- Hannes
>>
>>
>>
>> [1] 
>> After Google spent millions failing to solve the epedemiology of the
>> Ebola outbreak, an application built with it, or rather on it, by one
>> developer in an extremely short timespan (under a month), successfully
>> predicted the path and allowed it to be stopped by vaccinating those
>> in the most likely path. Google themselves took notice, and their Dart
>> language, while using syntax similar to the JavaScript many of their
>> developers are familiar with, uses the object model from the OSS
>> Smalltalk. The problem is not simply a matter of how much engineers
>> enjoy their work, but it can be a life or death matter, as it was in
>> the case of the Toyota microcode.
>> 
>>
>> ​
> Yes I'm also interested by this.
> Never heard this before :-)
>
> --
> Serge Stinckwich
> UMI UMMISCO 209 (IRD/UPMC/UY1)
> "Programs must be written for people to read, and only incidentally for
> machines to execute."http://www.doesnotunderstand.org/
>



Re: [Pharo-users] "Building-With versus Building-on"

2017-10-14 Thread H. Hirzel
On 10/12/17, Andrew Glynn  wrote:
> https://medium.com/@dasein42/building-with-versus-building-on-c51aa3034
> c71
> This is an article not specifically about Pharo, rather on the state of
> the industry
> in general and how it got that way, but positing Pharo as a way to
> learn
> building-on rather than building-with, where in the latter case on
> every project you start at essentially the same place.
> As a result it does put in front of people a fair amount of info on
> Pharo, and challenges them to try it.
>
> cheersAndrew Glynn


Thank you for this comprehensive report.

Do you have a reference for more info about the epidemiology project
which was completed in only a months time?  [1]

-- Hannes



[1] 
After Google spent millions failing to solve the epedemiology of the
Ebola outbreak, an application built with it, or rather on it, by one
developer in an extremely short timespan (under a month), successfully
predicted the path and allowed it to be stopped by vaccinating those
in the most likely path. Google themselves took notice, and their Dart
language, while using syntax similar to the JavaScript many of their
developers are familiar with, uses the object model from the OSS
Smalltalk. The problem is not simply a matter of how much engineers
enjoy their work, but it can be a life or death matter, as it was in
the case of the Toyota microcode.




Re: [Pharo-users] Pillar (was Re: Behold Pharo: The Modern Smalltalk)

2017-10-13 Thread H. Hirzel
Interoperability with pandoc is desirable

Some people want MSWord documents and they provide input in the form
of MSWord documents.
Or LibreOffice ODT.

pandoc handles that well for a subset of MSWord options.

pandoc allows you as well to write a custom output format -- in this
case Pillar.

E.g. conversion from MSWord docx to Pillar is possible.

It would need somebody to look into the issue of doing some Lua scripting.
pandoc has Lua embedded for output generation.


--Hannes


P.S. I will have some time later for Pillar issues (not Lua), but the
document model and generation of slides. Still open issue on my list
is rendering Pillar on Morphic, in particular slide.


On 10/13/17, Dimitris Chloupis  wrote:
> Why exporting to latex, html and markdown is not enough for you ?
>
> On Fri, Oct 13, 2017 at 1:05 PM Gour  wrote:
>
>> On Wed, 11 Oct 2017 17:18:54 +
>> Dimitris Chloupis 
>> wrote:
>>
>> > Well there is a move towards Pillar for class and method commands so
>> > who knows maybe we will have that soon enough ;)
>>
>> Let me say that I'm very happy seeing that Pillar is moving forward (e.g.
>> addition of support for footnotes) as well as plan for the future (*.epub
>> support) since I'm considering whether it could serve as single-source
>> markup
>> for all of one's writings?
>>
>> After migrating from Python-powered static-site-generator (to Hugo) and
>> rst
>> markup I was considering to use AsciiDoc(tor) markup for all my content,
>> but,
>> so far, due to using Emacsm settled to use org-mode instead. Haven't
>> tried
>> with
>> slides (yet), but there is Pandoc support for it.
>>
>> Therefore, I'd rather see Pillar support in Pandoc which would buy us
>> even
>> more
>> import/export capabilities for free instead of focusing on single formats
>> like
>> *.odt, *.epub etc.
>>
>> Pillar with 1st class support in Pandoc would, imho, improve status of
>> Pharo
>> itself making it along with Pillar exceelent tool for development as well
>> as
>> for all writing needs - articles, books, documentation,
>> slide-presentations.
>>
>> But it would be nice to make it more transparent where/how can one submit
>> feature request for Pillar?
>>
>> Fogbugs issue trakcer is certainly not the ideal place these days...
>>
>>
>> Sincerely,
>> Gour
>>
>> --
>> Everyone is forced to act helplessly according to the qualities
>> he has acquired from the modes of material nature; therefore no
>> one can refrain from doing something, not even for a moment.
>>
>>
>>
>>
>



Re: [Pharo-users] Brea wiki software

2017-10-05 Thread H. Hirzel
Hello Offray

Thank you for making the Brea wiki code available. I have read it and
got some ideas out of it.

My conclusion was that I do not have the capacity at the moment to
continue working on it.

So I went for Seaside though the library is large. It has a simple
wiki as well. And with Pier are more elaborate version.

Seaside is well documented.

Regards
Hannes

On 9/6/17, Offray Vladimir Luna Cárdenas <offray.l...@mutabit.com> wrote:
> Hi,
>
>
> On 06/09/17 02:12, H. Hirzel wrote:
>> So at the moment I am fine to get it up and running using a FossilRepo.
>> Later on I will work on replacing it with a JSON data store.
>
> Please let me know if you need any permissions into the repository to
> make JSON data store available in Brea.
>
>>
>> On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
>>> I understand that it makes a lot of sense to reuse the functions
>>> implemented in  the FossilRepo.
>>>
>>> Installation of the Fossil version control system seems to be very
>>> simple, just put a single executable file into the pharo folder  for
>>> example
>>>
>>> https://fossil-scm.org/index.html/doc/trunk/www/index.wiki
>
> Yes. Fossil is simpler and self-contained. A lot of friendly and
> powerful user experience without importing the external complexities of
> other developer cultures, like the popular systems (*coff... Git). I use
> the one provided by my package manager, but we have installed Fossil and
> started to use in our workshops and is a lot easier to start being
> productive without the almost always gratuitous extra complexities,
> specially for non tekies. Fossil gives me and easy distributed wiki out
> of the box.
>
>>> On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
>>>> What I wanted to write is that the class FossilRepo is not included.
>>>>
>>>> And that the setup of the Teapot server should not be hidden in lazy
>>>> initialisation method but made explicit with some methods in a method
>>>> category called 'setup' or 'configuration'.
>
> Please update your ConfigurationOfBrea, which fixes this two issues.
>
>>>>> On 9/6/17, Offray Vladimir Luna Cárdenas <offray.l...@mutabit.com>
>>>>> wrote:
>>>>>> Hi, Hannes,
>>>>>>
>>>>>> Sorry it took so long.
>>>>> No problem. It was actually less than 14 days which is not long .
>>>>>
>>>>> :-)
>
> Despite of being just one week after I told you I would look at the
> issue, because the first one I have not access to my computer, is kind
> of a lot considering the good support times in this community (with rare
> exceptions, like when I feedback GT Tools and get no response :-/).
>
> Cheers,
>
> Offray
>



Re: [Pharo-users] why are Help topics in the meta-side

2017-10-03 Thread H. Hirzel
The information for a help topic on the class side is used to create a
help instance.

Even if I technically create several instances of a particular help
topic with information taken from the class side conceptually I have
only _one_ help topic. The instances all share exactly the same
content.

Maybe the idea of 'Uniclass' (Etoys / Squeak') though not exactly the
same may help.
"UniClasses are classes for the instance specific behavior of just one
instance."
http://wiki.squeak.org/squeak/2402

In Smalltalk I always have to deal with classes. A class is an object
as well. Good to keep information for cases where I do not care to
have different instances with different state.

HTH

Hannes

On 10/3/17, Peter Uhnák <i.uh...@gmail.com> wrote:
> On Tue, Oct 3, 2017 at 2:17 PM, H. Hirzel <hannes.hir...@gmail.com> wrote:
>
>> This is as if you would ask
>>
>> why are specs on the class side?
>>
>
> I can certainly ask that, and there's in fact no reason why it would have
> to be there (because when the layout is being retrieved, the instance is
> already available).
>
>
>> You may actually see Help information as 'meta information'. It is
>> information about 
>>
>
> If you put it on the class-side of the class that it is about then I would
> agree. But that is not the case here. The object is the content, not about
> the content.
>
>
>>
>> The content is only needed once per topic. No different instances of the
>> same topic.
>>
>
> This is not actually true; the topic is instantiated anew for every help
> browser opened (and every time browser is opened).
>
> And in fact the CustomHelp subclass is recasted to HelpTopic at runtime,
> which makes the entire class quite pointless; which is what I don't
> understand.
>
> Peter
>



Re: [Pharo-users] How to make pharo find sqlite?

2017-09-28 Thread H. Hirzel
Try it with

sqlite3-dev

installed in addition

--Hannes

On 9/28/17, Herby Vojčík  wrote:
> Hello!
>
> I try to deploy UDBCSQLite-using image in a 32bit ubuntu 16.04.3.
>
> I do have libsqlite3:
>
> root@32bit-agent:~# find / -name '*libsqlite*' -type f 2>>/dev/null
> /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
> /var/lib/dpkg/info/libsqlite0.list
> /var/lib/dpkg/info/libsqlite3-0:i386.postinst
> /var/lib/dpkg/info/libsqlite3-0:i386.md5sums
> /var/lib/dpkg/info/libsqlite3-0:i386.shlibs
> /var/lib/dpkg/info/libsqlite0.postrm
> /var/lib/dpkg/info/libsqlite3-0:i386.symbols
> /var/lib/dpkg/info/libsqlite3-0:i386.list
> /var/lib/dpkg/info/libsqlite3-0:i386.triggers
> /var/cache/apt/archives/libsqlite0_2.8.17-12fakesync1_i386.deb
>
> but I get this in the output of the CI:
>
> 17:16:54.233 + ../pharo/pharo ./filmtower.image conf/run-tests.st
> 17:16:54.508 pthread_setschedparam failed: Operation not permitted
> 17:16:54.509 This VM uses a separate heartbeat thread to update its
> internal clock
> 17:16:54.509 and handle events.  For best operation, this thread should
> run at a
> 17:16:54.509 higher priority, however the VM was unable to change the
> priority.  The
> 17:16:54.509 effect is that heavily loaded systems may experience some
> latency
> 17:16:54.509 issues.  If this occurs, please create the appropriate
> configuration
> 17:16:54.509 file in /etc/security/limits.d/ as shown below:
> 17:16:54.509
> 17:16:54.509 cat < 17:16:54.509 *  hardrtprio  2
> 17:16:54.509 *  softrtprio  2
> 17:16:54.509 END
> 17:16:54.509
> 17:16:54.509 and report to the pharo mailing list whether this improves
> behaviour.
> 17:16:54.512
> 17:16:54.512 You will need to log out and log back in for the limits to
> take effect.
> 17:16:54.512 For more information please see
> 17:16:54.512
> https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux
> 17:16:54.785
> 17:16:54.786 TowergameSyncTests
> 17:16:54.831 Error: External module not found
> 17:16:54.832 ExternalLibraryFunction(Object)>>error:
> 17:16:54.832 ExternalLibraryFunction(Object)>>externalCallFailed
> 17:16:54.833
> ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments:
> 17:16:54.833 UDBCSQLite3DatabaseExternalObject class>>finalizeResourceData:
> 17:16:54.834 FFICalloutAPI>>function:module:
> 17:16:54.834 UDBCSQLite3Library(Object)>>ffiCall:module:
> 17:16:54.835 UDBCSQLite3DatabaseExternalObject class>>finalizeResourceData:
> 17:16:54.836 FFIExternalResourceExecutor>>finalize
> 17:16:54.836 WeakFinalizerItem>>finalizeValues
> 17:16:54.845 [ each finalizeValues ] in [ :each | [ each finalizeValues
> ] on: Exception fork: [ :ex | ex pass ] ] in
> WeakRegistry>>finalizeValues in Block: [ each finalizeValues ]
> 17:16:54.846 BlockClosure>>on:do:
> 17:16:54.852 [ Processor terminateActive ] in [ :ex |
> 17:16:54.852 | copy onDoCtx process handler bottom thisCtx |
> 17:16:54.852 onDoCtx := thisContext.
> 17:16:54.852 thisCtx := onDoCtx home.
> 17:16:54.852
> 17:16:54.852 "find the context on stack for which this method's is sender"
> 17:16:54.852 [ onDoCtx sender == thisCtx ]
> 17:16:54.852  whileFalse: [ onDoCtx := onDoCtx sender.
> 17:16:54.852  onDoCtx
> 17:16:54.852  ifNil: [ "Can't find our home context. seems 
> like we're
> already forked
> 17:16:54.852  and handling another exception in new 
> thread. In this
> case, just pass it through handler." ^ handlerAction cull: ex ] ].
> 17:16:54.852 bottom := [ Processor terminateActive ] asContext.
> 17:16:54.853 onDoCtx privSender: bottom.
> 17:16:54.853 handler := [ handlerAction cull: ex ] asContext.
> 17:16:54.853 handler privSender: thisContext sender.
> 17:16:54.853 (Process forContext: handler priority: Processor
> activePriority)
> 17:16:54.853  resume.
> 17:16:54.853
> 17:16:54.853 "cut the stack of current process"
> 17:16:54.853 thisContext privSender: thisCtx.
> 17:16:54.853 nil ] in BlockClosure>>on:fork: in Block: [ Processor
> terminateActive ]
> 17:16:54.989
>
> Look like pharo was not able to find the sqlite3 lib.
>
> Any help?
>
> Thanks, Herby
>
>



Re: [Pharo-users] Web stack practices (Glorp / QCMagritte)

2017-09-22 Thread H. Hirzel
On 9/22/17, Diego Lont <diego.l...@delware.nl> wrote:
> There is actually a tutorial included in the framework itself.

Great!

>One you have
> it loaded, you can start the webpage to localhost:8080 and there you have
> your tutorial. But this tutorial should be on a external webpage … one of
> the things on my todo list.

No problem if the tutorial is included in the framework. I just need to know.

Where is the repository of QCMagritte?


>> On 22 Sep 2017, at 12:55, H. Hirzel <hannes.hir...@gmail.com> wrote:
>>
>> On 9/18/17, laurent <laurent.laff...@gmail.com
>> <mailto:laurent.laff...@gmail.com>> wrote:
>>> Hi all,
>>>
>>> it's been a long time :) At work we are currently comparing several
>>> technologies to start a business project that will hopefully be used by
>>> thousands of people for several years ;)
>>>
>>> We need a web stack and we put Pharo & co in the comparative process.
>>> My team have strong experience in  load-balanced php / mysql deployment
>>> that handles millions of records  but we are ready to build on
>>> something else though MySQL is still a requirement.
>>>
>>> Thanks for Garage + Glorp, I can prototype things. I wonder how to
>>> handle database schema migrations. With our PHP projects we have
>>> versionned PHP scripts that are automatically run given a database
>>> revision number ( see
>>> http://git.afi-sa.fr/afi/opacce/tree/master/cosmogramme/sql/patch ).
>>> What are the practices with Glorp ?
>>>
>>>
>>> We try QCMagritte and we enjoy what we see so far. What are the best
>>> practices to glue Magritte and Glorp together ? Especially when you
>>> load-balance requests on several images. Some examples ?
>>>
>>> ( FYI, I cannot load QCMagritte in a fresh Pharo 6 image ( for #stable
>>> version, MADescriptionBuilder missing. For #development versions of
>>> Magritte and QCMagritte, QCConfiguration missing ). So actually I use
>>> the one built on CI. )
>>>
>>>
>>> May be you have some other suggestions on a framework you love ?
>>
>> Maybe you have a look as well at
>> https://railsexpress.quora.com/Pharo-Seaside-Express
>> <https://railsexpress.quora.com/Pharo-Seaside-Express>
>> (referenced in another thread).
>>
>> Use Smalltalk as modeling  / design tool and generator. Then the run
>> time is done with another technology.
>>
>>>
>>> Best regards,
>>>
>>> Laurent Laffont
>
>



Re: [Pharo-users] Web stack practices (Glorp / QCMagritte)

2017-09-22 Thread H. Hirzel
On 9/18/17, laurent  wrote:
> Hi all,
>
> it's been a long time :) At work we are currently comparing several
> technologies to start a business project that will hopefully be used by
> thousands of people for several years ;)
>
> We need a web stack and we put Pharo & co in the comparative process.
> My team have strong experience in  load-balanced php / mysql deployment
> that handles millions of records  but we are ready to build on
> something else though MySQL is still a requirement.
>
> Thanks for Garage + Glorp, I can prototype things. I wonder how to
> handle database schema migrations. With our PHP projects we have
> versionned PHP scripts that are automatically run given a database
> revision number ( see
> http://git.afi-sa.fr/afi/opacce/tree/master/cosmogramme/sql/patch ).
> What are the practices with Glorp ?
>
>
> We try QCMagritte and we enjoy what we see so far. What are the best
> practices to glue Magritte and Glorp together ? Especially when you
> load-balance requests on several images. Some examples ?
>
> ( FYI, I cannot load QCMagritte in a fresh Pharo 6 image ( for #stable
> version, MADescriptionBuilder missing. For #development versions of
> Magritte and QCMagritte, QCConfiguration missing ). So actually I use
> the one built on CI. )
>
>
> May be you have some other suggestions on a framework you love ?

Maybe you have a look as well at
https://railsexpress.quora.com/Pharo-Seaside-Express
(referenced in another thread).

Use Smalltalk as modeling  / design tool and generator. Then the run
time is done with another technology.

>
> Best regards,
>
> Laurent Laffont
>
>
>
>
>
>
>



Re: [Pharo-users] Web stack practices (Glorp / QCMagritte)

2017-09-22 Thread H. Hirzel
Hello Diego


What does QC in QCMagritte stand for?

I understand that QCMagritte is an application framework on top of
Seaside and Magritte.

I found this presentation

https://www.slideshare.net/esug/getting-started-with-qcmagritte

Is there a home page with more information?

Regards
Hannes





On 9/22/17, Diego Lont  wrote:
> Hi Laurent,
>
> I am happy that you like QCMagritte. I wrote quite some parts of it, but it
> also has been a while since I last used it. I try to support it in my spare
> time, so I will look into the issue that prevents it from loading into pharo
> 6.
>
> Here some ideas that I think of,
>
> QCMagritte is a stack based on Seaside and Magritte. So you have a choice
> wether you connect Glorp to the session management of Seaside (like Gemstone
> does, I do not know exactly) or to the update mechanism of Magritte.
>
> This updating of the object is done in the memento. You can give your
> objects a custom memento class and override here the pull // push methods
> that update your model. It actually has a commit method that commits the
> changes into the object.
>
> Note the QCMagritte already has a custom memento class, for the AJAX
> liveness, so I suggest subclassing QCAjaxMemento.
>
> Of course, you need to do something in case of a changed object, since you
> plan on running multiple images, so perhaps on validating the object (also
> controlled by the memento), you want to give some error messages, forcing
> the user to reload before committing his changes.
>
> I do not know if implementing this into the memento’s gives you proper
> performance, as potentially multiple objects are updated by one user
> action.
>
> Regards,
> Diego
>
>> On 22 Sep 2017, at 10:28, laurent  wrote:
>>
>> Hi Stephan,
>>
>> actually the difficult part is how to manage correctly Glorp
>> sessions/connections and update of objects in database. My team is quite
>> sad because QCMagritte and Glorp looks nice but we lack experience glueing
>> both together and could not find any documentation on the subject.
>>
>> Laurent
>>
>> Le mer. 20 sept. 2017 à 11:53, stephan  a écrit :
>>> On 18-09-17 12:22, laurent wrote:
>>> We try QCMagritte and we enjoy what we see so far. What are the best
>>> practices to glue Magritte and Glorp together ? Especially when you
>>> load-balance requests on several images. Some examples ?
>>>
>>> ( FYI, I cannot load QCMagritte in a fresh Pharo 6 image ( for #stable
>>> version, MADescriptionBuilder missing. For #development versions of
>>> Magritte and QCMagritte, QCConfiguration missing ). So actually I use the
>>> one built on CI. )
>>>
>>> I really like describing domain objects with Magritte and using chains of
>>> visitors to add cross-cutting concerns like translations, styling and
>>> access control. The resulting domain code is very clean and DRY. To map
>>> to database/Glorp I would just add properties to the description wherever
>>> needed, and add a visitor creating the mappings. We didn't need that as
>>> we developed in Pharo and deployed on Gemstone.
>>>
>>> At the moment QC generates applications using jQuery, and the live
>>> updating needs a round-trip to the server. You might want to substitute
>>> that with something that does more client side. I haven't looked in
>>> detail at what Johan Brichau is doing.
>>>
>>> An open issue is live updates that update each other. That needs
>>> automatically calculating dependencies and update order.
>>>
>>> I've copied the latest configuration and added #'pharo6.x' but that is
>>> not enough.
>>>
>>> Stephan
>>>
>
>



Re: [Pharo-users] New chapter for coming book: Messages

2017-09-16 Thread H. Hirzel
Stephane

Thank you for the reminder in the chapter that classes are cheap!
If I have a class hierarchy with 300 classes  (for example builder
classes) but they all implement just one method (#build) then that is
not complex at all.

Another thing:

I assume you will have a chapter on visitors as well. Do you have an
outline / draft for that?

--Hannes

On 9/11/17, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
> tx for the feedback!
>
>
> On Mon, Sep 11, 2017 at 1:18 PM, H. Hirzel <hannes.hir...@gmail.com> wrote:
>> Hello Stephane
>>
>> I like the emphasis of the chapter that implementing same selector
>> several times at the proper place in a couple of classes is more
>> important than to rely on inheritance.
>>
>> In particular the conclusion
>>
>> 
>> What is important to realise is that classes are cheap. It is better
>> to write 5 little classes than a huge one. Some (even smart) people
>> got confused by measuring complexity of a system using number of
>> classes. Having many classes representing good abstractions with a
>> single responsibility is much much better than having a single class
>> exhibiting multiple responsibilities.
>> 
>>
>> Suggestion: put it into a 'Note' box.
>>
>>
>>
>>
>>
>> And replace
>>
>> 'got confused'
>>
>> with:
>>
>>'get confused'
>>
>>
>>
>>
>>
>>
>>
>> Replace:
>>
>> Now the choices can be made over multiple tenth of classes.
>>
>> 'multiple tenth' is an uncommon expression
>>
>> Suggestion:
>>  Now the choices can be made over dozens of classes.
>>
>>
>>
>>
>>
>>
>> However
>> 'Sending a message is making a choice!'
>> takes the view point of the mechanism which does the late binding.
>>
>> If I write
>>
>>  aNode emitHTML: aStream
>>
>> I do not make the choice. There are different types of nodes and they
>> all do the same in the sense that they produce HTML code.
>>
>> In any case to drive the point home more examples are needed.
>>
>> The Boolean example is the minimal example and as such is interesting.
>> But it is a borderline case which just illustrates that Smalltalk goes
>> a long way to implement the object and message pattern consistently.
>>
>> The Pillar example is fine but too terse.
>> For people who already understand the issue just a reference is fine.
>> But for people new to the concept of replacing a case statement with a
>> class hierarchy it is too short.
>>
>> Elaborate!
>>
>>
>> E.g. have a diagram for a subset of the hierarchy
>>
>> PRObject #(''properties'')
>> PRDocumentItem #(''counter'')
>> PRDocumentGroup #(''children'')
>> PRDocument #()
>> PRHeader #(''level'')
>> PRList #()
>> PROrderedList #()
>> PRUnorderedList #()
>> PRParagraph #()
>> PRReference #(''reference''
>> ''parameters'')
>> PRFigure #()
>> PRSlide #(''title'' ''label'')
>> PRText #(''text'')'
>>
>> And show all the emitHTML: messages.
>>
>>
>> And go for a third example, e.g. from Morphic or Bloc
>>
>>
>> position:
>> extent:
>> color:
>> owner:
>> submorphs:
>> drawOn: aCanvas
>>
>>
>> Meaning of last sentence is not clear.
>>
>> 
>> Remember that when we execute a method (and also write it), one key
>> information we get is that the receiver from this class or one of its
>> subclasses as we will later.
>> 
>>
>>
>> Regards
>>
>> Hannes
>>
>> On 9/11/17, Ricardo Pacheco <ricardo.pacheco.rol...@gmail.com> wrote:
>>> Looks Great, congratulations!! I just read it and has a couple of
>>> mistakes
>>> in the first figures. The return value of the false (2.3, 2.4).
>>>
>>> Regards
>>> Ricardo
>>>
>>> El sept. 11, 2017 12:12 AM, "Stephane Ducasse" <stepharo.s...@gmail.com>
>>> escribió:
>>>
>>> Hi
>>>
>>> after this crazy esug I took a long bus and I wrote one missing
>>> chapter for the forhtcoming bus.
>>> I plan to have a first full version for 1 of October :)
>>>
>>> I reorganised and massively clean the book contents.
>>>
>>> Comments are welcome in any form.
>>>
>>> Stef
>>>
>>> https://github.com/SquareBracketAssociates/LearningOOPWithPharo
>>>
>>
>
>



Re: [Pharo-users] Who is maintaining of Artefact?

2017-09-12 Thread H. Hirzel
Looks like a worthwhile exercise

PDFTalk https://wiki.pdftalk.de/doku.php

"The syntax is covered comprehensively, which means that any PDF file
can be read and any PDF object can be written in a conforming way.

Typical PDF objects are dictionaries of which many are specialized as
Smalltalk objects.

The library code is annotated with the original descriptions and
definitions from the specification, so that learning about PDF itself
is well supported. "

I wonder what the main issues would be  when porting this to Pharo.

--Hannes

On 9/12/17, Denis Kudriashov  wrote:
> There is also PDFTalk from Christian Haider
> https://wiki.pdftalk.de/doku.php.
> But it needs to be ported into Pharo.
>
> 2017-09-11 21:03 GMT+02:00 Alejandro Infante
> :
>
>> Hi!
>> I would like to explore having support for Unicode characters. I want to
>> help for it.
>>
>> Who is the right person to talk about it?
>>
>> Cheers!
>> Alejandro
>>
>



Re: [Pharo-users] Object>>#name deprecated in Pharo 6 -- what do I need to do?

2017-09-11 Thread H. Hirzel
Hello all

Thank you for the helpful answers.

What I updated was

PPCMNode>>#name
"protocol: accessing"
name
"hackity hack, this should not be used except for tests..."
^ self printString


This is the root object of the document model [1] generated by the
PetitMarkDown parser,
a common markdown parser by Jan Kurs  [2].

Now  488 out of 479 tests pass.

Regards
Hannes





[1]

PPCMNode is the base class of the document node hierarchy of a
document described by markdown

ProtoObject #()
Object #()
PPCMNode #()
PPCMDelegateNode #(#children)
PPCMBlockQuote #(#code #infoString)
PPCMContainer #()
PPCMDocument #()
PPCMEmphasize #()
PPCMFencedCode #(#infoString)
PPCMHeader #(#level #title)
PPCMHtmlBlock #()
PPCMIndentedCode #()
PPCMLine #()
PPCMList #(#type #start)
PPCMListItem #()
PPCMParagraph #()
PPCMStrong #()
PPCMHardBreak #()
PPCMHrule #(#rule)
PPCMHtml #(#text)
PPCMInlinedCode #(#code)
PPCMLink #(#label #destination #title)
PPCMLinkRef #(#label)
PPCMLinkRefDef #(#label #destination #title)
PPCMLinkRefDefPlaceholder #()
PPCMPlainLine #(#text)
PPCMPlainText #(#text)
PPCMSoftBreak #()
PPCMText #(#text)




[2]
Name: PetitMarkdown-JanKurs.7
Author: JanKurs
Time: 24 August 2016, 12:25:40.146088 pm
UUID: a2256c36-fc35-48ad-936d-9fd7567488e1

http://smalltalkhub.com/mc/JanKurs/PetitParser/main


On 8/26/17, PBKResearch <pe...@pbkresearch.co.uk> wrote:
> Hannes
>
>
>
> You are certainly not required to eliminate #name altogether; all you have
> to do is to ensure that any object that receives the message #name knows how
> to answer its own name in an appropriate way. To rephrase Ben’s second para
> in a more long-winded way:
>
>
>
> a.Run the code that generates the deprecation warning.
> b.In the warning pop-up, click on ‘Debug’.
> c.Examine the debug stack in the top pane. It is probable that the first
> two lines will read:
>
> HannesClass(Object)   deprecated:on:in
>
> HannesClass(Object)   name
>
>where HannesClass is the name of some class in your domain
> model.
>
> d.You now know that some code you have written is sending the message 
> #name
> to an instance of HannesClass, but the class does not have such a method.
> The solution is to decide how an instance of that class should answer its
> name, and implement that as a method on the instance side of that class. If
> nothing else is obvious, the usual default is ^self printString.
> e.If the top line of the debug stack does not refer to a class in your
> model, work your way down the stack until you find a class that is yours.
>
>
>
> Hope this helps
>
>
>
> Peter Kenny
>
>
>
>
>
>
>
> From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of
> Ben Coman
> Sent: 26 August 2017 13:08
> To: Any question about pharo is welcome <pharo-users@lists.pharo.org>
> Subject: Re: [Pharo-users] Object>>#name deprecated in Pharo 6 -- what do I
> need to do?
>
>
>
> Just checking my presumption... is  PPCMNode>>#gtTreeViewIn:
>
> you own application method?   So where it sends #name, instead send
> #printString (or #asString).
>
>
>
> Alternatively, #name is being sent to some domain object that doesn't
> implement #name, so it falls back to the super one from Object.  So
> implement YourDomainObject>>#name: so the one from Object is not executed.
>
>
>
> cheers -ben
>
>
>
>
>
> On Sat, Aug 26, 2017 at 4:38 PM, H. Hirzel <hannes.hir...@gmail.com
> <mailto:hannes.hir...@gmail.com> > wrote:
>
> OK, so #name should not be used at all [1]
>
> The error message I get is
>
> PPCommonMarkSpecTest class>>DoIt (blockVisitor is Undeclared)
> The method Object>>#name called from PPCMNode>>#gtTreeViewIn: has been
> deprecated.
> Implement your own domain representation of an object, or use
> #asString or #printString instead.
>
>
> I wonder how I can fix this without g

Re: [Pharo-users] Standalone HTML Model

2017-09-11 Thread H. Hirzel
Interestingly the Seaside team has realized this as well

https://github.com/SeasideSt/Seaside/issues/976 

On 9/11/17, Stephane Ducasse  wrote:
> Hi Pierce Ng
>
> How different is the API from Seaside?
> Because I would like to use it.
> I like to think modularly :)
>
> Stef
>
> On Mon, Sep 11, 2017 at 12:31 PM, Pierce Ng  wrote:
>> On Fri, Sep 08, 2017 at 03:15:56PM -0700, Sean P. DeNigris wrote:
>>> I'd like to create HTML via a DSL, like Seaside's canvas builder, but
>>> without
>>> loading a whole web framework. Any ideas?
>>
>> I wrote this but subsequently decided that loading the whole of Seaside
>> into my
>> image just for this functionality is ok and stopped.
>>
>>   http://smalltalkhub.com/#!/~PierceNg/WaterMint-HTML
>>
>> Pierce
>>
>>
>
>



Re: [Pharo-users] New chapter for coming book: Messages

2017-09-11 Thread H. Hirzel
Hello Stephane

I like the emphasis of the chapter that implementing same selector
several times at the proper place in a couple of classes is more
important than to rely on inheritance.

In particular the conclusion


What is important to realise is that classes are cheap. It is better
to write 5 little classes than a huge one. Some (even smart) people
got confused by measuring complexity of a system using number of
classes. Having many classes representing good abstractions with a
single responsibility is much much better than having a single class
exhibiting multiple responsibilities.


Suggestion: put it into a 'Note' box.





And replace

'got confused'

with:

   'get confused'







Replace:

Now the choices can be made over multiple tenth of classes.

'multiple tenth' is an uncommon expression

Suggestion:
 Now the choices can be made over dozens of classes.






However
'Sending a message is making a choice!'
takes the view point of the mechanism which does the late binding.

If I write

 aNode emitHTML: aStream

I do not make the choice. There are different types of nodes and they
all do the same in the sense that they produce HTML code.

In any case to drive the point home more examples are needed.

The Boolean example is the minimal example and as such is interesting.
But it is a borderline case which just illustrates that Smalltalk goes
a long way to implement the object and message pattern consistently.

The Pillar example is fine but too terse.
For people who already understand the issue just a reference is fine.
But for people new to the concept of replacing a case statement with a
class hierarchy it is too short.

Elaborate!


E.g. have a diagram for a subset of the hierarchy

PRObject #(''properties'')
PRDocumentItem #(''counter'')
PRDocumentGroup #(''children'')
PRDocument #()
PRHeader #(''level'')
PRList #()
PROrderedList #()
PRUnorderedList #()
PRParagraph #()
PRReference #(''reference'' ''parameters'')
PRFigure #()
PRSlide #(''title'' ''label'')
PRText #(''text'')'

And show all the emitHTML: messages.


And go for a third example, e.g. from Morphic or Bloc


position:
extent:
color:
owner:
submorphs:
drawOn: aCanvas


Meaning of last sentence is not clear.


Remember that when we execute a method (and also write it), one key
information we get is that the receiver from this class or one of its
subclasses as we will later.



Regards

Hannes

On 9/11/17, Ricardo Pacheco  wrote:
> Looks Great, congratulations!! I just read it and has a couple of mistakes
> in the first figures. The return value of the false (2.3, 2.4).
>
> Regards
> Ricardo
>
> El sept. 11, 2017 12:12 AM, "Stephane Ducasse" 
> escribió:
>
> Hi
>
> after this crazy esug I took a long bus and I wrote one missing
> chapter for the forhtcoming bus.
> I plan to have a first full version for 1 of October :)
>
> I reorganised and massively clean the book contents.
>
> Comments are welcome in any form.
>
> Stef
>
> https://github.com/SquareBracketAssociates/LearningOOPWithPharo
>



Re: [Pharo-users] PlotMorph on Pharo 6.1

2017-09-11 Thread H. Hirzel
The message after loading on the Transcript is

Loaded -> Magritte-GT-SeanDeNigris.6 ---
http://smalltalkhub.com/mc/Magritte/Magritte3/main/ --- cache
...finished 3.5.1
Fetched -> ConfigurationOfPlotMorph-StephaneDucasse.3 ---
http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main/ ---
http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main/
Loaded -> ConfigurationOfPlotMorph-StephaneDucasse.3 ---
http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main/ ---
http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo60/main/The version
'1.0' is not defined in ConfigurationOfPlotMorph for the current
platform, because an exception occurred while creating the version:.
MessageNotUnderstood: receiver of "package:with:constructor:" is nil.
Evaluate the following to see the error: '[ConfigurationOfPlotMorph
project ]
on: MetacelloErrorInProjectConstructionNotification
do: [:ex | ex resume: true ].'
Possible versions include: #(#bleedingEdge #development #stable '1.0-baseline')

On 9/11/17, Stephane Ducasse <stepharo.s...@gmail.com> wrote:
> Thanks for the report since I need PlotMorph too for a project.
> What you see is the consequence of lack of validation of published
> packages. This is years that I'm saying that I need someone to work on
> that.
> We got money from inria for Pavel to work on it but the bootstrap was
> more important :).
>
> Stef
>
> On Mon, Sep 11, 2017 at 5:05 AM, H. Hirzel <hannes.hir...@gmail.com> wrote:
>> Mark,
>>
>> Open a Transcript window before loading PlotMorph.
>> Which error message do you get there?
>>
>> --Hannes
>>
>> On 9/10/17, Mark Bestley <s...@bestley.co.uk> wrote:
>>>
>>> I downloaded 64bit Pharo from
>>> <http://files.pharo.org/platform/Pharo6.1-64-mac.zip>
>>>
>>> Started it and first thing opend Catalog Browser.
>>> I searched for plot
>>> Chose pLotMorph and chose Install Stable Version
>>>
>>> I got an Information window saying There was an error trying to install
>>> PlotMorph. Installation was cancelled.
>>>
>>> So
>>> 1) Does PlotMorph work as it is in the SystemCatalog I assume so. So how
>>> shoulkd I load it?
>>> 2) How can I see what the error actuially was
>>> 3) How can I actually capure the popup window to cut and paste the
>>> error.
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Mark
>>>
>>>
>>>
>>
>
>



Re: [Pharo-users] PlotMorph on Pharo 6.1

2017-09-10 Thread H. Hirzel
Mark,

Open a Transcript window before loading PlotMorph.
Which error message do you get there?

--Hannes

On 9/10/17, Mark Bestley  wrote:
>
> I downloaded 64bit Pharo from
> 
>
> Started it and first thing opend Catalog Browser.
> I searched for plot
> Chose pLotMorph and chose Install Stable Version
>
> I got an Information window saying There was an error trying to install
> PlotMorph. Installation was cancelled.
>
> So
> 1) Does PlotMorph work as it is in the SystemCatalog I assume so. So how
> shoulkd I load it?
> 2) How can I see what the error actuially was
> 3) How can I actually capure the popup window to cut and paste the
> error.
>
>
>
>
>
>
> --
> Mark
>
>
>



Re: [Pharo-users] Pharo 6.0 Generating Ruby-on-Rails Applications

2017-09-09 Thread H. Hirzel
Maybe I should note that a Magritte is surely useful for ideas.
But a solution not using the Magritte modeling approach might be
better for the task of actually generating applications for different
systems / language environments.

Magritte is foremost about modelling domain objects to be used
_within_ the image. It is about descriptions (declarative style)
enriching the definitions of domain models.

A DSL following an imperative style (issuing  "build" commands) is
very fine as well.
The DSL code within the methods might be queried and model information
extracted in case of need if it is not explicit.

HH.

On 9/8/17, p...@highoctane.be  wrote:
> Nice. I'll definitely have a look because I need to prototype something
> quite domain heavy and it may help a lot.
>
> Phil
>
> On Fri, Sep 8, 2017 at 5:09 PM, Peter Fisk  wrote:
>
>> Hi Phil,
>>
>> I already have PHP support for CodeIgniter and Laravel.
>>
>> Adding support for Zend Framework might take a day or so to implement.
>>
>> Any framework which supports MVC and AJAX should be fairly easy to
>> integrate
>> (eg Python/Django, NodeJS/Adonis, etc). The main difference amongst the
>> frameworks lies in the database object mappings.
>>
>> The specific language support is handled by streams.
>>
>> There are streams for HTML, CSS, JavaScript, PHP, Ruby, Python and
>> sub-streams for Ruby/Rails, JavaScript/Qooxdoo, and so on.
>>
>> So, the framework is not at all Ruby or Ruby-on-Rails specific.
>>
>> Cheers,
>>
>> -- Peter
>>
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>>
>



Re: [Pharo-users] Standalone HTML Model

2017-09-09 Thread H. Hirzel
Sean,

the question is of course - is it the HTML only model you are
interested in or is it rather a 'web document model' (i.e. something
which is displayed in a browser) thus including HTML and CSS.

--HH.

On 9/9/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> On 9/9/17, Sean P. DeNigris <s...@clipperadams.com> wrote:
>> I'd like to create HTML via a DSL, like Seaside's canvas builder, but
>> without
>> loading a whole web framework. Any ideas?
>>
>
> Hello Sean
>
>
> 1.
> One idea is _not_ to go for a HTML builder DSL but for a document
> model plus a generator.
> The generator is a visitor for the document object model.
>
> There is the Pillar document model and a visitor already in place.
>
> The current challenge  - actually it is not a challenge - but just
> needs some time -  is to extract the Pillar document model (easy) and
> the tests (needs more time)  so that it can be loaded as a stand-alone
> package.
>
> See a long discussion in a thread in August about including Pillar in the
> image.
>
> The same then applies for the HTML generator. That is just a file-out
> from an image which has the full Pillar loaded.
>
> So IMHO it is not so much about inventing a new HTML builder DSL but
> to "mold" exisiting infrastructure into shape.
>
> This has the advantage that you can generate other representations easily.
>
>
> 2.
> Another idea is to look at HttpView2 done 10 years ago and come up
> with a revised version.
> http://wiki.squeak.org/squeak/182
>
> "No Files. No HTML. Just Smalltalk code!"
>
> A builder: http://wiki.squeak.org/squeak/637
> The element hierarchy: http://wiki.squeak.org/squeak/840
>
>
> Discussion
> ---
>
> Comparison of 1 and 2
>
> In 1 you use a document model (DOM) which is independent from the
> representation in HTML code.
>
> Than you have a generator generating the HTML code. The DOM is
> actually quite close to the HTML DOM.
>
> The Pillar DOM is nicely supported in Pharo with the inspector.
>
> Neither 1 nor 2 actually take CSS into account. An issue which is
> important when you generate web pages.
>
> So from the Smalltalk data model point of view (web document modeling)
> you have a Smalltalk object which is then rendered on two output
> streams
>
> - HTML
> - CSS
>
> Things get interesting in particular if you want to generate
> responsive web sites.
> The you need to do more on the CSS side and with generating pictures as
> well.
>
> Regards
> Hannes
>
>>
>> -
>> Cheers,
>> Sean
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] Standalone HTML Model

2017-09-09 Thread H. Hirzel
On 9/9/17, Sean P. DeNigris  wrote:
> I'd like to create HTML via a DSL, like Seaside's canvas builder, but
> without
> loading a whole web framework. Any ideas?
>

Hello Sean


1.
One idea is _not_ to go for a HTML builder DSL but for a document
model plus a generator.
The generator is a visitor for the document object model.

There is the Pillar document model and a visitor already in place.

The current challenge  - actually it is not a challenge - but just
needs some time -  is to extract the Pillar document model (easy) and
the tests (needs more time)  so that it can be loaded as a stand-alone
package.

See a long discussion in a thread in August about including Pillar in the image.

The same then applies for the HTML generator. That is just a file-out
from an image which has the full Pillar loaded.

So IMHO it is not so much about inventing a new HTML builder DSL but
to "mold" exisiting infrastructure into shape.

This has the advantage that you can generate other representations easily.


2.
Another idea is to look at HttpView2 done 10 years ago and come up
with a revised version.
http://wiki.squeak.org/squeak/182

"No Files. No HTML. Just Smalltalk code!"

A builder: http://wiki.squeak.org/squeak/637
The element hierarchy: http://wiki.squeak.org/squeak/840


Discussion
---

Comparison of 1 and 2

In 1 you use a document model (DOM) which is independent from the
representation in HTML code.

Than you have a generator generating the HTML code. The DOM is
actually quite close to the HTML DOM.

The Pillar DOM is nicely supported in Pharo with the inspector.

Neither 1 nor 2 actually take CSS into account. An issue which is
important when you generate web pages.

So from the Smalltalk data model point of view (web document modeling)
you have a Smalltalk object which is then rendered on two output
streams

- HTML
- CSS

Things get interesting in particular if you want to generate
responsive web sites.
The you need to do more on the CSS side and with generating pictures as well.

Regards
Hannes

>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>
>



Re: [Pharo-users] Pharo 6.0 Generating Ruby-on-Rails Applications

2017-09-07 Thread H. Hirzel
OK, RailsExpress

Rails Express is Peter Fisk's  attempt to make web development both
easy and enjoyable. It feels like Smalltalk, but it is built 100% in
Ruby-on-Rails.

So it is NOT about the Pharo 6.0 Generator; did not find the source
code yet 

On 9/7/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> @Dimitris
>
> And actually probably the most interesting link
>
> http://railsexpress.com/
>
> On 9/7/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
>> Dimitris,
>>
>> more info for the wiki here
>>
>> https://railsexpress.quora.com/  and
>>
>> https://github.com/pdfisk/rails-express
>>
>> HH.
>>
>> On 9/7/17, Dimitris Chloupis <kilon.al...@gmail.com> wrote:
>>> Well done ! :)
>>>
>>> I added your answer to Pharo Wiki "How to" section
>>> https://github.com/pharo-project/pharo/blob/master/wiki/contents/howto.md
>>>
>>> On Sat, Sep 2, 2017 at 12:05 AM Peter Fisk <peter.f...@gmail.com> wrote:
>>>
>>>> Hi everyone, The latest version of my "Rails Express" rapid application
>>>> development environment is built in Pharo 6.0. Here is a blog post with
>>>> a
>>>> few screenshots and some explanation.
>>>> https://railsexpress.quora.com/Pharo-6-Generating-Ruby-on-Rails-Applications
>>>> I mostly programmed in Smalltalk from 1987 until 1997 using ParcPlace
>>>> VisualWorks and then IBM VisualAge. Pharo is now better than either of
>>>> those two frameworks. Congratulations to the Pharo team for all your
>>>> great
>>>> work! Regards, -- Peter Fisk
>>>> --
>>>> Sent from the Pharo Smalltalk Users mailing list archive
>>>> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html> at
>>>> Nabble.com.
>>>>
>>>
>>
>



Re: [Pharo-users] Pharo 6.0 Generating Ruby-on-Rails Applications

2017-09-07 Thread H. Hirzel
@Dimitris

And actually probably the most interesting link

http://railsexpress.com/

On 9/7/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> Dimitris,
>
> more info for the wiki here
>
> https://railsexpress.quora.com/  and
>
> https://github.com/pdfisk/rails-express
>
> HH.
>
> On 9/7/17, Dimitris Chloupis <kilon.al...@gmail.com> wrote:
>> Well done ! :)
>>
>> I added your answer to Pharo Wiki "How to" section
>> https://github.com/pharo-project/pharo/blob/master/wiki/contents/howto.md
>>
>> On Sat, Sep 2, 2017 at 12:05 AM Peter Fisk <peter.f...@gmail.com> wrote:
>>
>>> Hi everyone, The latest version of my "Rails Express" rapid application
>>> development environment is built in Pharo 6.0. Here is a blog post with
>>> a
>>> few screenshots and some explanation.
>>> https://railsexpress.quora.com/Pharo-6-Generating-Ruby-on-Rails-Applications
>>> I mostly programmed in Smalltalk from 1987 until 1997 using ParcPlace
>>> VisualWorks and then IBM VisualAge. Pharo is now better than either of
>>> those two frameworks. Congratulations to the Pharo team for all your
>>> great
>>> work! Regards, -- Peter Fisk
>>> --
>>> Sent from the Pharo Smalltalk Users mailing list archive
>>> <http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html> at
>>> Nabble.com.
>>>
>>
>



Re: [Pharo-users] Pharo 6.0 Generating Ruby-on-Rails Applications

2017-09-07 Thread H. Hirzel
Dimitris,

more info for the wiki here

https://railsexpress.quora.com/  and

https://github.com/pdfisk/rails-express

HH.

On 9/7/17, Dimitris Chloupis  wrote:
> Well done ! :)
>
> I added your answer to Pharo Wiki "How to" section
> https://github.com/pharo-project/pharo/blob/master/wiki/contents/howto.md
>
> On Sat, Sep 2, 2017 at 12:05 AM Peter Fisk  wrote:
>
>> Hi everyone, The latest version of my "Rails Express" rapid application
>> development environment is built in Pharo 6.0. Here is a blog post with a
>> few screenshots and some explanation.
>> https://railsexpress.quora.com/Pharo-6-Generating-Ruby-on-Rails-Applications
>> I mostly programmed in Smalltalk from 1987 until 1997 using ParcPlace
>> VisualWorks and then IBM VisualAge. Pharo is now better than either of
>> those two frameworks. Congratulations to the Pharo team for all your
>> great
>> work! Regards, -- Peter Fisk
>> --
>> Sent from the Pharo Smalltalk Users mailing list archive
>>  at
>> Nabble.com.
>>
>



Re: [Pharo-users] Pharo 6.0 Generating Ruby-on-Rails Applications

2017-09-07 Thread H. Hirzel
To follow up on this, maybe the easiest is to read

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

to have the domain model aspect covered. Magritte has a generator for
Morphic and Seaside.

It would be nice to have more open source generators

--Hannes

On 9/2/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> Hello Brad
>
> In this context it is probably useful to (re-)read the thesis by Lukas
> Rengli
>
> http://scg.unibe.ch/archive/masters/Reng06a.pdf
>
> 
> As a complete example of how we applied a meta-model to a Web application
> we present Pier, the second version of a fully object-oriented
> implementation
> of a content management system and Wiki engine. 
>
> We describe the lessons learned from using the Magritte meta-model to build
> applications.
> 
>
> It contains a lot of good insights - see 'Lessons learned'.
> The writing style might be terse and abstract but there is also a
> Pharo book about Magritte.
>
> In a pristine Pharo image, as soon as you start writing your own class
> definitions to model your domain you are actually creating a Domain
> Specific Language (DSL).
>
> This language describes your application domain. If we talk about web
> applications, you describe in an abstract way the domain objects and
> GUI elements.
>
> The challenge is that this DSL language is easy to write, understand,
> teach and maintain.
>
> From the model (part of it most often is a tree of objects) you have
> visitor walking through the object net and creating reports.
>
> It is easy to quickly come up with something which works but often it
> is idiosyncratic, thus difficult to understand for other people.
>
> Maybe Peter can share some insights about his experience writing a
> model to then generate a Ruby-on-Rails-app.
>
> Pillar is another example of such an approach. You create a document
> object model and then have various exporter objects to generate
> slides, web pages and very nice books. It is accessible code and you
> can learn from it. The emphasis is on static content but some dynamic
> content seems to be possible as well.
>
> Regards
> Hannes
>
>
> On 9/2/17, Brad Selfridge <bsselfri...@gmail.com> wrote:
>> Hi Peter,
>>
>> Really good work. I'm impressed. Pharo is really gaining some cutting
>> edge
>> options. I would like to know a lot more about your framework. Thanks for
>> the effort.
>>
>>
>>
>> -
>> Brad Selfridge
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>>
>



Re: [Pharo-users] Brea wiki software

2017-09-06 Thread H. Hirzel
So at the moment I am fine to get it up and running using a FossilRepo.
Later on I will work on replacing it with a JSON data store.

On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> I understand that it makes a lot of sense to reuse the functions
> implemented in  the FossilRepo.
>
> Installation of the Fossil version control system seems to be very
> simple, just put a single executable file into the pharo folder  for
> example
>
> https://fossil-scm.org/index.html/doc/trunk/www/index.wiki
>
> The global state of a fossil repository is an unordered set of artifacts.
>
> An artifact might be a source code file, the text of a wiki page, part
> of a trouble ticket, a description of a check-in including all the
> files in that check-in with the check-in comment and so forth.
>
> Artifacts are broadly grouped into two types:
> - content artifacts and
> - structural artifacts.
>
> Content artifacts are the raw project source-code files that are
> checked into the repository.
>
> Structural artifacts have special formatting rules and are used to
> show the relationships between other artifacts in the repository. It
> is possible for an artifact to be both a structure artifact and a
> content artifact, though this is rare. Artifacts can be text or
> binary.
>
> https://fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki
>
> On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
>> What I wanted to write is that the class FossilRepo is not included.
>>
>> And that the setup of the Teapot server should not be hidden in lazy
>> initialisation method but made explicit with some methods in a method
>> category called 'setup' or 'configuration'.
>>
>> HH
>>
>> On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
>>> Hi Offray
>>>
>>> Thank you for answering and the new release. I will look at it in
>>> detail. Here is a first feedback.
>>>
>>> On 9/6/17, Offray Vladimir Luna Cárdenas <offray.l...@mutabit.com>
>>> wrote:
>>>> Hi, Hannes,
>>>>
>>>> Sorry it took so long.
>>>
>>> No problem. It was actually less than 14 days which is not long .
>>>
>>> :-)
>>>
>>>> I'm now finishing my PhD and entering into a
>>>> focused writing mode, so is difficult to keep with mailing lists these
>>>> days.
>>>>
>>>> New version contains an example. Please load the ConfigurationOfBrea as
>>>> showed in http://ws.stfx.eu/9MQGFUQ909BW and after that run:
>>>>
>>>> BreaWebsite example
>>>>
>>>> and visit
>>>>
>>>> - http://localhost:8080/demo/
>>>> - http://localhost:8080/members/test
>>>> - http://localhost:8080/members/add
>>>>
>>>> There are still some issues with CSS and data persistence must be
>>>> implemented, but this should give you and overview of how to combine
>>>> Teapot + Mustache.
>>>
>>>
>>> I followed the instructions but encountered a problem that the class
>>> FossilRepo
>>>
>>> BreaWebsite
>>> fossilRepo
>>> ^ fossilRepo ifNil: [ fossilRepo := FossilRepo new ]
>>>
>>>
>>> This made that
>>>
>>> BreaWebsite example
>>>
>>> did not complete and thus there was no website.
>>> Another thing is that the port number which is currently in
>>>
>>> BreaWebsite>>server
>>>
>>> server
>>> ^ server ifNil: [ server := Teapot configure: { #port ->8500 .
>>> #debugMode -> true } ]
>>>
>>> should be at a more prominent place so that it is easier to find and
>>> thus configure.
>>>
>>>
>>> Kind regards
>>> Hannes
>>>
>>>> Cheers,
>>>>
>>>> Offray
>>>>
>>>> On 23/08/17 13:44, H. Hirzel wrote:
>>>>> On 8/23/17, Offray <offray.l...@mutabit.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On the Teapot + Mustache integration, Hannes, you may want to see my
>>>>>> early
>>>>>> prototype:
>>>>>>
>>>>>> http://smalltalkhub.com/#!/~Offray/Brea
>>>>>>
>>>>>> At some point, it will contain distributed  wiki, backed by Fossil,
>>>>>> now
>>>>>> that
>>>>>> we're thinking in empower community driven wiki like documentation.
>>>>>>
>>>>>> Offray
>>>>>
>>>>> Hi Offray
>>>>>
>>>>> I found Name: Brea-OffrayLuna.8
>>>>> Author: OffrayLuna
>>>>> Time: 1 June 2017, 4:18:20.860411 pm
>>>>>
>>>>> There is no test to show me how to use it and I none of the class
>>>>> comments of the 4 classes gives enough clues.
>>>>>
>>>>>
>>>>> Interesting method so far
>>>>>
>>>>> routes
>>>>>   "I define how the website behaves accordingly to particular routes."
>>>>>   self server
>>>>>   serveStatic: 'demo' from: '/opt/gig/';
>>>>>   GET: 'members/test' -> [ :req | BreaMember new 
>>>>> renderTestUserAsHtml
>>>>> ];
>>>>>   GET: 'members/add' -> [ :req | BreaMember new htmlInput ];
>>>>>   POST: 'members/summit' -> [ :req |  self processNewMember: req ]
>>>>>
>>>>>
>>>>> May I ask you to give a few hints how to start it?
>>>>> Is it possible to use it without Fossil, just with image persistence?
>>>>>
>>>>> Regards
>>>>> Hannes
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>



Re: [Pharo-users] Brea wiki software

2017-09-06 Thread H. Hirzel
I understand that it makes a lot of sense to reuse the functions
implemented in  the FossilRepo.

Installation of the Fossil version control system seems to be very
simple, just put a single executable file into the pharo folder  for
example

https://fossil-scm.org/index.html/doc/trunk/www/index.wiki

The global state of a fossil repository is an unordered set of artifacts.

An artifact might be a source code file, the text of a wiki page, part
of a trouble ticket, a description of a check-in including all the
files in that check-in with the check-in comment and so forth.

Artifacts are broadly grouped into two types:
- content artifacts and
- structural artifacts.

Content artifacts are the raw project source-code files that are
checked into the repository.

Structural artifacts have special formatting rules and are used to
show the relationships between other artifacts in the repository. It
is possible for an artifact to be both a structure artifact and a
content artifact, though this is rare. Artifacts can be text or
binary.

https://fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki

On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> What I wanted to write is that the class FossilRepo is not included.
>
> And that the setup of the Teapot server should not be hidden in lazy
> initialisation method but made explicit with some methods in a method
> category called 'setup' or 'configuration'.
>
> HH
>
> On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
>> Hi Offray
>>
>> Thank you for answering and the new release. I will look at it in
>> detail. Here is a first feedback.
>>
>> On 9/6/17, Offray Vladimir Luna Cárdenas <offray.l...@mutabit.com> wrote:
>>> Hi, Hannes,
>>>
>>> Sorry it took so long.
>>
>> No problem. It was actually less than 14 days which is not long .
>>
>> :-)
>>
>>> I'm now finishing my PhD and entering into a
>>> focused writing mode, so is difficult to keep with mailing lists these
>>> days.
>>>
>>> New version contains an example. Please load the ConfigurationOfBrea as
>>> showed in http://ws.stfx.eu/9MQGFUQ909BW and after that run:
>>>
>>> BreaWebsite example
>>>
>>> and visit
>>>
>>> - http://localhost:8080/demo/
>>> - http://localhost:8080/members/test
>>> - http://localhost:8080/members/add
>>>
>>> There are still some issues with CSS and data persistence must be
>>> implemented, but this should give you and overview of how to combine
>>> Teapot + Mustache.
>>
>>
>> I followed the instructions but encountered a problem that the class
>> FossilRepo
>>
>> BreaWebsite
>> fossilRepo
>>  ^ fossilRepo ifNil: [ fossilRepo := FossilRepo new ]
>>
>>
>> This made that
>>
>> BreaWebsite example
>>
>> did not complete and thus there was no website.
>> Another thing is that the port number which is currently in
>>
>> BreaWebsite>>server
>>
>> server
>>  ^ server ifNil: [ server := Teapot configure: { #port ->8500 .
>> #debugMode -> true } ]
>>
>> should be at a more prominent place so that it is easier to find and
>> thus configure.
>>
>>
>> Kind regards
>> Hannes
>>
>>> Cheers,
>>>
>>> Offray
>>>
>>> On 23/08/17 13:44, H. Hirzel wrote:
>>>> On 8/23/17, Offray <offray.l...@mutabit.com> wrote:
>>>>> Hi,
>>>>>
>>>>> On the Teapot + Mustache integration, Hannes, you may want to see my
>>>>> early
>>>>> prototype:
>>>>>
>>>>> http://smalltalkhub.com/#!/~Offray/Brea
>>>>>
>>>>> At some point, it will contain distributed  wiki, backed by Fossil,
>>>>> now
>>>>> that
>>>>> we're thinking in empower community driven wiki like documentation.
>>>>>
>>>>> Offray
>>>>
>>>> Hi Offray
>>>>
>>>> I found Name: Brea-OffrayLuna.8
>>>> Author: OffrayLuna
>>>> Time: 1 June 2017, 4:18:20.860411 pm
>>>>
>>>> There is no test to show me how to use it and I none of the class
>>>> comments of the 4 classes gives enough clues.
>>>>
>>>>
>>>> Interesting method so far
>>>>
>>>> routes
>>>>"I define how the website behaves accordingly to particular routes."
>>>>self server
>>>>serveStatic: 'demo' from: '/opt/gig/';
>>>>GET: 'members/test' -> [ :req | BreaMember new 
>>>> renderTestUserAsHtml
>>>> ];
>>>>GET: 'members/add' -> [ :req | BreaMember new htmlInput ];
>>>>POST: 'members/summit' -> [ :req |  self processNewMember: req ]
>>>>
>>>>
>>>> May I ask you to give a few hints how to start it?
>>>> Is it possible to use it without Fossil, just with image persistence?
>>>>
>>>> Regards
>>>> Hannes
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>



Re: [Pharo-users] Brea wiki software

2017-09-06 Thread H. Hirzel
What I wanted to write is that the class FossilRepo is not included.

And that the setup of the Teapot server should not be hidden in lazy
initialisation method but made explicit with some methods in a method
category called 'setup' or 'configuration'.

HH

On 9/6/17, H. Hirzel <hannes.hir...@gmail.com> wrote:
> Hi Offray
>
> Thank you for answering and the new release. I will look at it in
> detail. Here is a first feedback.
>
> On 9/6/17, Offray Vladimir Luna Cárdenas <offray.l...@mutabit.com> wrote:
>> Hi, Hannes,
>>
>> Sorry it took so long.
>
> No problem. It was actually less than 14 days which is not long .
>
> :-)
>
>> I'm now finishing my PhD and entering into a
>> focused writing mode, so is difficult to keep with mailing lists these
>> days.
>>
>> New version contains an example. Please load the ConfigurationOfBrea as
>> showed in http://ws.stfx.eu/9MQGFUQ909BW and after that run:
>>
>> BreaWebsite example
>>
>> and visit
>>
>> - http://localhost:8080/demo/
>> - http://localhost:8080/members/test
>> - http://localhost:8080/members/add
>>
>> There are still some issues with CSS and data persistence must be
>> implemented, but this should give you and overview of how to combine
>> Teapot + Mustache.
>
>
> I followed the instructions but encountered a problem that the class
> FossilRepo
>
> BreaWebsite
> fossilRepo
>   ^ fossilRepo ifNil: [ fossilRepo := FossilRepo new ]
>
>
> This made that
>
> BreaWebsite example
>
> did not complete and thus there was no website.
> Another thing is that the port number which is currently in
>
> BreaWebsite>>server
>
> server
>   ^ server ifNil: [ server := Teapot configure: { #port ->8500 .
> #debugMode -> true } ]
>
> should be at a more prominent place so that it is easier to find and
> thus configure.
>
>
> Kind regards
> Hannes
>
>> Cheers,
>>
>> Offray
>>
>> On 23/08/17 13:44, H. Hirzel wrote:
>>> On 8/23/17, Offray <offray.l...@mutabit.com> wrote:
>>>> Hi,
>>>>
>>>> On the Teapot + Mustache integration, Hannes, you may want to see my
>>>> early
>>>> prototype:
>>>>
>>>> http://smalltalkhub.com/#!/~Offray/Brea
>>>>
>>>> At some point, it will contain distributed  wiki, backed by Fossil, now
>>>> that
>>>> we're thinking in empower community driven wiki like documentation.
>>>>
>>>> Offray
>>>
>>> Hi Offray
>>>
>>> I found Name: Brea-OffrayLuna.8
>>> Author: OffrayLuna
>>> Time: 1 June 2017, 4:18:20.860411 pm
>>>
>>> There is no test to show me how to use it and I none of the class
>>> comments of the 4 classes gives enough clues.
>>>
>>>
>>> Interesting method so far
>>>
>>> routes
>>> "I define how the website behaves accordingly to particular routes."
>>> self server
>>> serveStatic: 'demo' from: '/opt/gig/';
>>> GET: 'members/test' -> [ :req | BreaMember new 
>>> renderTestUserAsHtml ];
>>> GET: 'members/add' -> [ :req | BreaMember new htmlInput ];
>>> POST: 'members/summit' -> [ :req |  self processNewMember: req ]
>>>
>>>
>>> May I ask you to give a few hints how to start it?
>>> Is it possible to use it without Fossil, just with image persistence?
>>>
>>> Regards
>>> Hannes
>>>
>>>
>>
>>
>>
>>
>



Re: [Pharo-users] Brea wiki software

2017-09-06 Thread H. Hirzel
Hi Offray

Thank you for answering and the new release. I will look at it in
detail. Here is a first feedback.

On 9/6/17, Offray Vladimir Luna Cárdenas <offray.l...@mutabit.com> wrote:
> Hi, Hannes,
>
> Sorry it took so long.

No problem. It was actually less than 14 days which is not long .

:-)

> I'm now finishing my PhD and entering into a
> focused writing mode, so is difficult to keep with mailing lists these
> days.
>
> New version contains an example. Please load the ConfigurationOfBrea as
> showed in http://ws.stfx.eu/9MQGFUQ909BW and after that run:
>
> BreaWebsite example
>
> and visit
>
> - http://localhost:8080/demo/
> - http://localhost:8080/members/test
> - http://localhost:8080/members/add
>
> There are still some issues with CSS and data persistence must be
> implemented, but this should give you and overview of how to combine
> Teapot + Mustache.


I followed the instructions but encountered a problem that the class FossilRepo

BreaWebsite
fossilRepo
^ fossilRepo ifNil: [ fossilRepo := FossilRepo new ]


This made that

BreaWebsite example

did not complete and thus there was no website.
Another thing is that the port number which is currently in

BreaWebsite>>server

server
^ server ifNil: [ server := Teapot configure: { #port ->8500 .
#debugMode -> true } ]

should be at a more prominent place so that it is easier to find and
thus configure.


Kind regards
Hannes

> Cheers,
>
> Offray
>
> On 23/08/17 13:44, H. Hirzel wrote:
>> On 8/23/17, Offray <offray.l...@mutabit.com> wrote:
>>> Hi,
>>>
>>> On the Teapot + Mustache integration, Hannes, you may want to see my
>>> early
>>> prototype:
>>>
>>> http://smalltalkhub.com/#!/~Offray/Brea
>>>
>>> At some point, it will contain distributed  wiki, backed by Fossil, now
>>> that
>>> we're thinking in empower community driven wiki like documentation.
>>>
>>> Offray
>>
>> Hi Offray
>>
>> I found Name: Brea-OffrayLuna.8
>> Author: OffrayLuna
>> Time: 1 June 2017, 4:18:20.860411 pm
>>
>> There is no test to show me how to use it and I none of the class
>> comments of the 4 classes gives enough clues.
>>
>>
>> Interesting method so far
>>
>> routes
>>  "I define how the website behaves accordingly to particular routes."
>>  self server
>>  serveStatic: 'demo' from: '/opt/gig/';
>>  GET: 'members/test' -> [ :req | BreaMember new 
>> renderTestUserAsHtml ];
>>  GET: 'members/add' -> [ :req | BreaMember new htmlInput ];
>>  POST: 'members/summit' -> [ :req |  self processNewMember: req ]
>>
>>
>> May I ask you to give a few hints how to start it?
>> Is it possible to use it without Fossil, just with image persistence?
>>
>> Regards
>> Hannes
>>
>>
>
>
>
>



Re: [Pharo-users] Write documentation with wiki like syntax -- how do I activate the rendering?

2017-09-05 Thread H. Hirzel
Hello Torsten

Thank you for the demo that it is actually possible to make it work!
Thus I managed to build help topics for my app.
It really very easy to add help topics!

The source of the error was that I had spaces before the ! marks which
mark a section title.

Reason is that I had just copied the wiki text example from the help
text to do the test.
So this is clearly a bug leading people to think that wiki style help
does not work.  See at the bottom for a wiki string which works (just
spaces removed in front of !) [1]

Good that this is compatible with the Pillar syntax which I am using
for other things.
It offers many options, for example the class side method #helpString
can pull out part or the whole of the class comment.


Regards
Hannes





[1]

Example of wiki style help text to be added on the class side
The help browser parses this text when being opened

Notes
- There are no spaced in front of the ! marks
- The class WikiStyleHelpBuilder does the job of parsing a subset of
   the Pillar/Pier syntax and building up the help nodes tree.



helpString

^ '
! Section 1

Some text for this section

!! Subsection 1.1
!!! Subsection 1.1.1
!! Subsection 1.2
! Section 2'


On 9/5/17, Torsten Bergmann  wrote:
> Hi Hannes,
>
> make sure
>  - it is a class side method
>  - you have no spaces before the ! marks
>  - you reopen the help browser
>
> then it works and creates subtopics. See screenshot attached.
>
> Bye
> T.



Re: [Pharo-users] [DesktopManager] Ctlr - D (do-it) is blocked after installation of desktop manager

2017-09-05 Thread H. Hirzel
On 9/5/17, Torsten Bergmann  wrote:
>>How can I de-activate the ctrl-D shortcut for the Desktop manager for
>>the time being?
>
> By not using DesktopManager.

Sure...

What I was asking for: How can I use it _without_ the ctrl-D short
cut. Or how can I replace the ctrl - D shortcut with another short
cut.

>The shortcut handlers are installed upon load
> initialize.


And how can I bypass or adapt this initialize method?

What is the initialization code in case I load the classes manually?

>

best wishes
--Hannes



  1   2   3   >