Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

Stéphane Ducasse
Hi 

Normally each time a PR is integrated in a book, the CI is generating the PDF. 

So what you can do is to not bother and copy-edit and we fix the corresponding pillar 
if you break it. 

Stef

On 24 Sep 2019, at 10:34, Guillermo Polito <[hidden email]> wrote:

Hi Ted,

I split this in a separate thread to avoid noise :)

El 23 sept 2019, a las 23:14, Brainstorms <[hidden email]> escribió:

Guillermo,

I'm interested in helping, but at this point, I think I'd be most helpful
working at improving documentation (mainly editing) rather than working on
Pharo code itself.  (I'd like to work toward that, though.)  

I’ve been doing a pass on the structure, and I was thinking on a rough structure as follows:
 1) Intro to FFI (callouts, function and library lookup, intro to value marshalling)
 2) Marshalling (sending arguments, literal arguments, more on marshalling, basic C types: ints, floats, pointers and how they are transformed to pharo objects and vice-versa…)
 3) Complex types: strings, unions, arrays, opaque types
 4) Derived types on the Pharo side: How to design nice classes with all this
 5) Callbacks
 6) Memory management

I did already a pass on 1), and I got blocked in 2), though I want to release a version of it this week.

If you’re up for it, there are several things we can do:
 - review the english :)
 - give feedback on what is missing, what is not understandable, what can be explained better
 - testing the examples?


I'm still a newbie with Pharo, but I am a good writer/editor.  And I expect
that working with Pharo documentation would be another means of increasing
my knowledge of the Pharo ecosystem -- so that's additional incentive for
me.

Cool :)

I gather that the PDF books are written using Pillar, which I know nothing
about.  Are there resources & guides for this tool/format that would help me
learn how to make & edit these kinds of documents?

Pillar is a markup syntax (from Pier’s CMS, if you know it).

Pillar comes with a document model, parser and generators to html, pdf (through latex), and others…
In Pillar’s readme there are the installation instructions + usage.

If you check the travis file in the ffi booklet repository


You’ll see it is built with pillar 7.4.1. In other words

# install pillar
$ cd pillar && ./scripts/build.sh && cd ..

# go into the booklet repository and build the pdf
$ ./pillar/build/pillar build pdf

Although you’ll need a mostly up-to-date latex version (latexmk required, plus several other packages, check Pillar’s readme)

Also, I've never contributed to an open source project; Pharo seems to be a
good place to start doing so.  I see that most of the documentation, web
pages, booklets, etc. are in English so there's the advantage that English
is my first language (and I actually paid attention in school  :^).  I'm
also aware, from experience, that Documentation is rarely the first choice
for developers to apply their time & enthusiasm…

And it’s super important nevertheless ^^.

Guille

--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Julie Jonas 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

Ben Coman


On Wed, 25 Sep 2019 at 13:51, Stéphane Ducasse <[hidden email]> wrote:
Hi 

Normally each time a PR is integrated in a book, the CI is generating the PDF. 

So what you can do is to not bother and copy-edit and we fix the corresponding pillar 
if you break it. 

Hey Stef :)
I'm guessing you mean to encourage Ted to "not worry" rather than "not bother"

cheers -ben
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse


On 25 Sep 2019, at 15:22, Ben Coman <[hidden email]> wrote:



On Wed, 25 Sep 2019 at 13:51, Stéphane Ducasse <[hidden email]> wrote:
Hi 

Normally each time a PR is integrated in a book, the CI is generating the PDF. 

So what you can do is to not bother and copy-edit and we fix the corresponding pillar 
if you break it. 

Hey Stef :)
I'm guessing you mean to encourage Ted to "not worry" rather than "not bother"

Yes :)


cheers -ben

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
Hi Stef,

Okay, that's in line with what I expected.  No worries!

The devops part of me still wants to know how the process works, though.  I
like the format it produces, and I could see adopting it for a documentation
tool outside of Pharo (assuming everything is open source).

-Ted



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse


> On 25 Sep 2019, at 16:51, Brainstorms <[hidden email]> wrote:
>
> Hi Stef,
>
> Okay, that's in line with what I expected.  No worries!
>
> The devops part of me still wants to know how the process works, though.  I
> like the format it produces, and I could see adopting it for a documentation
> tool outside of Pharo (assuming everything is open source).

Yes it is fully open-source.
It has a way to plug different “book” templates.
I know some companies that used it to generate documentation.
Now with guillermo we spent some days there and there to improve (all my slides, books, ….)
are based on pillar.

Stef
>
> -Ted
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse
It has probably some rough edges so to not hesitate to come back to us.
I’m currently migrating all the books, booklets, to the latest tagged version.


>> On 25 Sep 2019, at 16:51, Brainstorms <[hidden email]> wrote:
>>
>> Hi Stef,
>>
>> Okay, that's in line with what I expected.  No worries!
>>
>> The devops part of me still wants to know how the process works, though.  I
>> like the format it produces, and I could see adopting it for a documentation
>> tool outside of Pharo (assuming everything is open source).
>
> Yes it is fully open-source.
> It has a way to plug different “book” templates.
> I know some companies that used it to generate documentation.
> Now with guillermo we spent some days there and there to improve (all my slides, books, ….)
> are based on pillar.
>
> Stef
>>
>> -Ted
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>>
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
I can offer my writing/editing/proofreading skills for this work, too.

As Guillermo pointed out, the documentation is "super important".  And I can
be immediately productive there, as my English skills are way ahead of my
Pharo coding skills.

I'm also approaching this as a relative newbie, and as someone with
aspirations to start teaching Pharo (informally, at least at first) where I
work...

-t




--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse


> On 25 Sep 2019, at 17:56, Brainstorms <[hidden email]> wrote:
>
> I can offer my writing/editing/proofreading skills for this work, too.
>
> As Guillermo pointed out, the documentation is "super important".  And I can
> be immediately productive there, as my English skills are way ahead of my
> Pharo coding skills.

Read what you want.
I would like to produce a booklet out of the excellent libraries sven is developing over the years
so that we can update the documentation that he wrote in Entreprise Pharo.

> I'm also approaching this as a relative newbie, and as someone with
> aspirations to start teaching Pharo (informally, at least at first) where I
> work…

The mooc contains a lot of material that is under CC so feel free to use, ask for feedback
we can also help with a remote lecture if you see fit.
>
> -t
>
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
I'll likely start working with Guillermo on the UFFI booklet.  I also see the
'by example' booklets as being /very/ important, as they give critical first
impressions to those new to the whole concept of Smalltalk.  I want to
enroll others in Pharo, and that means I need good docs/web pages to direct
people to.

There are documents needed for reference; to answer questions & guide style,
usage, conventions, understanding.  But there are also documents needed to
enroll newcomers, get attention, provide that "hook"...  Both are important.
You're aware of Pharo's "marketing needs" as well as anyone, I'm sure.

So thanks for the generous offer.  I'm thinking about starting here with an
interest group, along with some tools and demonstration projects (based
closely on the work we do) to get attention & interest.  That should evolve
into training needs, and that's where I think the MOOC and remote lectures
would come into play.

We are (also) a national R&D institute where software, automation, etc.
figures prominently.  It's long past time that we have an awareness of Pharo
and tap into its advantages to improve the quality, reliability, &
productivity of our missions.  This has been on my mind for some months now.

-t



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse
Ok!
Let us know how we can help.

There is also the Pharo consortium: it is free for “academix” but is a nice way to
show that we are working in a sound robust eco-“system”.

There is enough space for everyone willing to contribute.
And I do not know if you saw some of our talks but Pharo is yours means that
this is not a product and that people can get an impact.

Stef


> On 25 Sep 2019, at 20:23, Brainstorms <[hidden email]> wrote:
>
> I'll likely start working with Guillermo on the UFFI booklet.  I also see the
> 'by example' booklets as being /very/ important, as they give critical first
> impressions to those new to the whole concept of Smalltalk.  I want to
> enroll others in Pharo, and that means I need good docs/web pages to direct
> people to.
>
> There are documents needed for reference; to answer questions & guide style,
> usage, conventions, understanding.  But there are also documents needed to
> enroll newcomers, get attention, provide that "hook"...  Both are important.
> You're aware of Pharo's "marketing needs" as well as anyone, I'm sure.
>
> So thanks for the generous offer.  I'm thinking about starting here with an
> interest group, along with some tools and demonstration projects (based
> closely on the work we do) to get attention & interest.  That should evolve
> into training needs, and that's where I think the MOOC and remote lectures
> would come into play.
>
> We are (also) a national R&D institute where software, automation, etc.
> figures prominently.  It's long past time that we have an awareness of Pharo
> and tap into its advantages to improve the quality, reliability, &
> productivity of our missions.  This has been on my mind for some months now.
>
> -t
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
Thank you, I will; community support will be important -- developers (and
their managers!) are very conscious of the "critical mass" issue.  They all
want to know that if they make an investment in learning and using a new
language, tools, development paradigm, etc. that there's a company/support
structure/resources behind it that will exist for a long time to come.  No
one wants to "get stuck" with an orphan product or technology -- even if it
is attractive at first.  (The culture here can be a bit risk-averse in
places.)

We also welcome open-source projects, and use them freely.  Adopting Pharo
would not be substantially different than our current widespread use of
Linux, C/C++, Python, Lua, Tcl, SVN, Git, etc.  There's definitely a place
for it here.  But very few know about it!

I've attended a Tech Talk (and plan to join tomorrow's talk).  And I'm aware
of the consortium; I joined the Pharo Association myself as an individual.
There's no reason why we wouldn't/couldn't do so as an academic
organization, at some point (assuming my plans succeed).  

We have an unusual situation: JPL may be part of NASA (they own the
buildings, the equipment, the property, fund the projects, etc.), but we are
not civil servants -- we don't work for the federal government as do other
NASA center staff.  We're actually staff members of Caltech, under
privileged long-term contract.  So I can either be "a government employee"
(via contract) or "an academic staff member", depending (usually on what
kind of discount some business may be offering. ;^)

So it may be easier as Caltech to have an academic association.  Something
also for the future...

-t





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse
Hi ted

> Thank you, I will; community support will be important -- developers (and
> their managers!) are very conscious of the "critical mass" issue.

What I can tell you is that we are growing :).
When a company with more than 30 millions lines of code wants to migrate to Pharo.
It means something :) and we are helping them and they actively support the consortium
with immediate impact. Pablo is working full time to improve pharo and we feel it.

>  They all want to know that if they make an investment in learning and using a new
> language, tools, development paradigm, etc. that there's a company/support
> structure/resources behind it that will exist for a long time to come.  No
> one wants to "get stuck" with an orphan product or technology -- even if it
> is attractive at first.  (The culture here can be a bit risk-averse in
> places.)

Yes there is a strong support from the community and from the consortium.

This is why we create the consortium (since 2012). It is here to support
companies and pharo development and pharo and its community are growing steadily.
Esteban went to give special lectures or coaching to companies in the past.
Since a year the consortium is supporting Schmidt Pro and Lifeware based on contract
and so far this is working well. We will continue.

Also what is important is that Mooc is a key assets: why because it represents
15 years of teaching experience. There are OOP teachers that are learning things on OOP
when watching the mooc. So the mooc is not only about pharo.
Now a smart guy can learn Pharo in two days (Henrique Rocha did it and we hired him :),
and after 2 weeks to play with the ide you can start to get fluent.
BTW the Mooc value is around 150 Keuros and it is free because we did it and it was sponsored
by our institute and some other universities.

> We also welcome open-source projects, and use them freely.  Adopting Pharo
> would not be substantially different than our current widespread use of
> Linux, C/C++, Python, Lua, Tcl, SVN, Git, etc.  There's definitely a place
> for it here.  But very few know about it!

Yes this is why we can help to show how we do things.
We will tell you also where we are not so good and where we want to go.
Right now we are starting a real effort for the following years on the virtual machine.
One day we will revise the Pharo vision document (should be on internet somewhere)
but it shows that we have a vision/roadmap and that we built it.


> I've attended a Tech Talk (and plan to join tomorrow's talk).  And I'm aware
> of the consortium; I joined the Pharo Association myself as an individual.
> There's no reason why we wouldn't/couldn't do so as an academic
> organization, at some point (assuming my plans succeed).  
>
> We have an unusual situation: JPL may be part of NASA (they own the
> buildings, the equipment, the property, fund the projects, etc.), but we are
> not civil servants -- we don't work for the federal government as do other
> NASA center staff.  We're actually staff members of Caltech, under
> privileged long-term contract.  So I can either be "a government employee"
> (via contract) or "an academic staff member", depending (usually on what
> kind of discount some business may be offering. ;^)

:)
You see you can play it the way you want.
The first ticket for a company is 1000 euros and else you can play as
an official academic member of the consortium.

Now what is more important is that we listen to our users. So the consortium roadmap is validated by the consortium
members and we are helping as much as we can. Our goal is to make people succeed with their
Pharo projects. We want to create a vertuous ecosystem.
 
A super concrete example, feenk reported that the windows update 1903/4 changed something
and that their guys working on windows could not access git via libgit anymore.
Pablo and Guille put this on their highest priority just after ESUG and it was solved within
a couple of days.

Feenk got problems with a binding or headless VM and pablo pair programmed with one of their engineering
during ESUG.

> So it may be easier as Caltech to have an academic association.  Something
> also for the future…

Academic membership is simple and free. You have the same document than the industrial member.
And I think that Caltech fit there.
Now we also have some academics that pay to support Pharo. But this is the way people want to play it.



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
Hi Stef,

> What I can tell you is that we are growing :).
> When a company with more than 30 millions lines of code wants to migrate
> to Pharo.
> It means something :) and we are helping them and they actively support
> the consortium
> with immediate impact. Pablo is working full time to improve pharo and we
> feel it.

That */is/* an impressive show of confidence in Pharo and its community!
The risk + expense of that is just mind-boggling...

I think it also shows that "Pharo is a big-league language".

> Yes there is a strong support from the community and from the consortium.
> This is why we create the consortium (since 2012). It is here to support
> companies and pharo development and pharo and its community are growing
> steadily.

This will certainly help at larger scales of Pharo use, at the point where a
mission realizes they have a dependency on Pharo, similar to how they depend
on other vendors for "product support" when there are issues that might
impact delivery schedules, etc.

I'm thinking of starting out small: introduce Pharo as a means of producing
support tools, performing analysis & presentation, and so forth -- places
where there is not much concern what languages are used to build a needed
app, or where the output is the focus rather than the means.  By
demonstrating speed, ease of use, easy maintenance, features, etc. this can
lead to requests for more Pharo work.  Then it grows from there.  (Pharo
improves, too, as this is occurring.)

> Esteban went to give special lectures or coaching to companies in the
> past.
> Since a year the consortium is supporting Schmidt Pro and Lifeware based
> on contract
> and so far this is working well. We will continue.

Schmidt Pro looks like a U.S. firm.  There are multiple Lifewares, but I
think you may be referring to the INRIA associate?

> Also what is important is that Mooc is a key assets: why because it
> represents
> 15 years of teaching experience. There are OOP teachers that are learning
> things on OOP
> when watching the mooc. So the mooc is not only about pharo.

This is understandable; many universities use Smalltalk to teach the
principles of OOP.  Seems logical that this would lead to using ST
afterwards to follow through.  (But I know this doesn't often happen.)  I've
gotten through all but the last two weeks of the MOOC so far, and it is
quite good.  I will be suggesting it to people here.

> Now a smart guy can learn Pharo in two days (Henrique Rocha did it and we
> hired him :),
> and after 2 weeks to play with the ide you can start to get fluent.

Pharo has a different sort of learning curve: The language is simple, and
only requires different thinking to grasp some of the concepts.  Most of the
learning involves how to make use of the IDE and what are the base classes
needed to make useful things.  My frustrations have all involved things like
"How do I build a deployable application, start to finish?"  

Most of the teaching materials seem focused on how to write Pharo code, but
that's really the easy part (if you've programmed with anything else
before).  I will need to make tools in Pharo, but then I have to give
something to another engineer to run on his own.  There are levels, of
course: Run from the CLI, run from a native (Spec) GUI, run from a web
browser (by building a web app in Pharo) -- in increasing order of
complexity and experience/skills needed.  I /want/ to be able to do all of
these, of course.  

The challenge of enrolling other developers into the Pharo ecosystem (with
all its advantages, many hidden at first) will revolve around how quickly
they can make something, even if CLI-based.  They will want to see early
results, then they get hooked and want to invest to learn how to do more.
Still, the early results will involve "How do I make a simple application
with this, like the way I can script something?"  I would really love to see
a booklet that covers this subject (and I'm sure others would, too).

> BTW the Mooc value is around 150 Keuros and it is free because we did it
> and it was sponsored
> by our institute and some other universities.

Good training materials are very, very important.  (And should be free, as
the MOOC is.)  One of the things I've mentioned to others about the MOOC is
that it shows you how easy it is to build a professional-looking web
application using Pharo and its web libraries.  (Of course all trainings
teach you the syntax and semantics of any language; the MOOC is also showing
you /how to build things/, and how many of us have built web apps before?  I
never did.)

> Yes this is why we can help to show how we do things.
> We will tell you also where we are not so good and where we want to go.

I see this as a "mutually beneficial" possibility.  I'm not looking to see
"What can Pharo do for me to make my job easier?"  I'm interested in "How
can I help JPL benefit from what Pharo offers, while at the same time
contributing back to Pharo & its community to make a better ecosystem?"
Because when powerful, productive tools such as Pharo improve, everyone
benefits, directly and indirectly.  JPL is an FFRDC (Federally-Funded
Research & Development Center), and our mission includes advancing
technology and assisting industry in ways that they cannot do themselves, or
cannot afford to do.  We don't just "send spacecraft to the planets".  Many
don't realize this.  I prefer this "business model", so I've worked here my
entire career.

> Right now we are starting a real effort for the following years on the
> virtual machine.
> One day we will revise the Pharo vision document (should be on internet
> somewhere)
> but it shows that we have a vision/roadmap and that we built it.

The virtual machine intrigues me, so starting my contributions on the UFFI
docs (and maybe code, too) is a good place for me.

> You see you can play it the way you want.
> The first ticket for a company is 1000 euros and else you can play as
> an official academic member of the consortium.

We would be academic, I'm sure.  But that's on the horizon, at this point.

> Now what is more important is that we listen to our users. So the
> consortium roadmap is
> validated by the consortium
> members and we are helping as much as we can. Our goal is to make people
> succeed with their
> Pharo projects. We want to create a vertuous ecosystem.

Excellent -- You don't just "write Pharo and throw it over the wall".
Here's what I would like to see happen: I start a "interest group" here,
find like-minded engineers & developers who want to learn "this new thing"
(which isn't new, of course), and encourage the use of Pharo.  Almost
everything we do here is custom-built one way or another, so there are
tools, scripts, web apps, etc. that we built as a matter of course.  Many
languages are used for this; Pharo can easily be one of them.  There will be
both a "newness" hurdle, but also a "strangeness" hurdle to deal with.  The
strengths and "cool tools" of Pharo (along with the ease of making GUIs and
web apps, and cool graphics from Roassal, etc.) will pull strongly to
overcome these hurdles and motivate interest -- IF this is presented,
marketed, supported properly AND if some early successes come out of it.

"Nothing sells like success."

We have some very creative, very smart people here, who love "cool
technology" and "toys to play with", but they are also very busy people...
and there's always that need to be successful, so invest wisely.  There is a
joke that goes like this: "JPL has only two products: Photographs and press
releases."  Another one is "JPL's successes end up on the front page of all
the world's newspapers.  JPL's failures end up on the front page of all the
world's newspapers."  

It it works, super.  Good for you.  If does something I can't do (and need
to), you've got my attention.  If it's fast & easy to learn, I'll try it
out.  If it's complicated, you're losing me.  If it doesn't work.. See ya
later!

And this has to be addressed at the level of developers and then at the
level of managers...

Building on that is where the issues of reliability, the Pharo Association &
its support, community, and so forth come into play.  As an analogy, we have
processes we must go through with vendor or custom hardware to establish
electrical safety, fail-safe, and so forth before such hardware can be
connected to spacecraft to do its job.  Software has similar risk-mitigating
requirements, and if Pharo were to play a prominent role, that kind of
trustworthiness must be established as well.  Financial organizations are
concerned with "We don't want a flaw to cause us to lose our money"; we're
concerned with "We don't want a flaw to cause us to lose a mission".  That
sort of thing...

So the kinds of support you're mentioning are good to hear.
 
> A super concrete example, feenk reported that the windows update 1903/4
> changed something
> and that their guys working on windows could not access git via libgit
> anymore.
> Pablo and Guille put this on their highest priority just after ESUG and it
> was solved within
> a couple of days.

I did follow that thread.  (I've been reading almost all the Dev & Users
mailing list postings for this past year.)

> Feenk got problems with a binding or headless VM and pablo pair programmed
> with one of
> their engineering during ESUG.

That's also strong evidence of significant support.  We're used to having
"field engineers" show up on-site to help work out some of our tougher
problems with vendor's products.

Thanks again for your responses.  (And for the support from other community
members I've talked to.)  I see nothing so far that doesn't continue to
encourage me.  I've looked at the community, the tools, the documents, the
code, the MOOC and other trainings & examples, and played with it myself --
all good (even if some areas are still evolving).  

What's turning over in my mind is how to best present this, how to market it
and get developers here "hooked" enough to spend time getting over that
initial hill of understanding.  At first, Pharo is just /weird/, if
intriguing.  There is *definitely* an ROI for those who will make the
effort, carve out the time, and try it.  

-t



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse

>
> Schmidt Pro looks like a U.S. firm.  

no this is a german one.

> There are multiple Lifewares, but I
> think you may be referring to the INRIA associate?

Lifeware.ch


>
>> Also what is important is that Mooc is a key assets: why because it
>> represents
>> 15 years of teaching experience. There are OOP teachers that are learning
>> things on OOP
>> when watching the mooc. So the mooc is not only about pharo.
>
> This is understandable; many universities use Smalltalk to teach the
> principles of OOP.  Seems logical that this would lead to using ST
> afterwards to follow through.  (But I know this doesn't often happen.)  I've
> gotten through all but the last two weeks of the MOOC so far, and it is
> quite good.  I will be suggesting it to people here.
>
>> Now a smart guy can learn Pharo in two days (Henrique Rocha did it and we
>> hired him :),
>> and after 2 weeks to play with the ide you can start to get fluent.
>
> Pharo has a different sort of learning curve: The language is simple, and
> only requires different thinking to grasp some of the concepts.  Most of the
> learning involves how to make use of the IDE and what are the base classes
> needed to make useful things.  My frustrations have all involved things like
> "How do I build a deployable application, start to finish?”  

Yes we should improve on this.

> Most of the teaching materials seem focused on how to write Pharo code, but
> that's really the easy part (if you've programmed with anything else
> before).  I will need to make tools in Pharo, but then I have to give
> something to another engineer to run on his own.  There are levels, of
> course: Run from the CLI, run from a native (Spec) GUI, run from a web
> browser (by building a web app in Pharo) -- in increasing order of
> complexity and experience/skills needed.  I /want/ to be able to do all of
> these, of course.  

Thanks. We will have to do something there.

>
> The challenge of enrolling other developers into the Pharo ecosystem (with
> all its advantages, many hidden at first) will revolve around how quickly
> they can make something, even if CLI-based.  

I should add a CLI to one of my project and I will use it to write a small tutorial.


> They will want to see early
> results, then they get hooked and want to invest to learn how to do more.
> Still, the early results will involve "How do I make a simple application
> with this, like the way I can script something?"  I would really love to see
> a booklet that covers this subject (and I'm sure others would, too).
>
>> BTW the Mooc value is around 150 Keuros and it is free because we did it
>> and it was sponsored
>> by our institute and some other universities.
>
> Good training materials are very, very important.  (And should be free, as
> the MOOC is.)  One of the things I've mentioned to others about the MOOC is
> that it shows you how easy it is to build a professional-looking web
> application using Pharo and its web libraries.  (Of course all trainings
> teach you the syntax and semantics of any language; the MOOC is also showing
> you /how to build things/, and how many of us have built web apps before?  I
> never did.)
>
>> Yes this is why we can help to show how we do things.
>> We will tell you also where we are not so good and where we want to go.
>
> I see this as a "mutually beneficial" possibility.  I'm not looking to see
> "What can Pharo do for me to make my job easier?"  I'm interested in "How
> can I help JPL benefit from what Pharo offers, while at the same time
> contributing back to Pharo & its community to make a better ecosystem?"

Let us know :)

> Because when powerful, productive tools such as Pharo improve, everyone
> benefits, directly and indirectly.  JPL is an FFRDC (Federally-Funded
> Research & Development Center), and our mission includes advancing
> technology and assisting industry in ways that they cannot do themselves, or
> cannot afford to do.  We don't just "send spacecraft to the planets".  Many
> don't realize this.  I prefer this "business model", so I've worked here my
> entire career.
>
>> Right now we are starting a real effort for the following years on the
>> virtual machine.
>> One day we will revise the Pharo vision document (should be on internet
>> somewhere)
>> but it shows that we have a vision/roadmap and that we built it.
>
> The virtual machine intrigues me, so starting my contributions on the UFFI
> docs (and maybe code, too) is a good place for me.
>
>> You see you can play it the way you want.
>> The first ticket for a company is 1000 euros and else you can play as
>> an official academic member of the consortium.
>
> We would be academic, I'm sure.  But that's on the horizon, at this point.
>
>> Now what is more important is that we listen to our users. So the
>> consortium roadmap is
>> validated by the consortium
>> members and we are helping as much as we can. Our goal is to make people
>> succeed with their
>> Pharo projects. We want to create a vertuous ecosystem.
>
> Excellent -- You don't just "write Pharo and throw it over the wall".
> Here's what I would like to see happen: I start a "interest group" here,
> find like-minded engineers & developers who want to learn "this new thing"
> (which isn't new, of course), and encourage the use of Pharo.  Almost
> everything we do here is custom-built one way or another, so there are
> tools, scripts, web apps, etc. that we built as a matter of course.  Many
> languages are used for this; Pharo can easily be one of them.  There will be
> both a "newness" hurdle, but also a "strangeness" hurdle to deal with.  The
> strengths and "cool tools" of Pharo (along with the ease of making GUIs and
> web apps, and cool graphics from Roassal, etc.) will pull strongly to
> overcome these hurdles and motivate interest -- IF this is presented,
> marketed, supported properly AND if some early successes come out of it.
>
> "Nothing sells like success."
>
> We have some very creative, very smart people here, who love "cool
> technology" and "toys to play with", but they are also very busy people...
> and there's always that need to be successful, so invest wisely.  There is a
> joke that goes like this: "JPL has only two products: Photographs and press
> releases."  Another one is "JPL's successes end up on the front page of all
> the world's newspapers.  JPL's failures end up on the front page of all the
> world's newspapers.”  

:)

>
> It it works, super.  Good for you.  If does something I can't do (and need
> to), you've got my attention.  If it's fast & easy to learn, I'll try it
> out.  If it's complicated, you're losing me.  If it doesn't work.. See ya
> later!
>
> And this has to be addressed at the level of developers and then at the
> level of managers...
>
> Building on that is where the issues of reliability, the Pharo Association &
> its support, community, and so forth come into play.  As an analogy, we have
> processes we must go through with vendor or custom hardware to establish
> electrical safety, fail-safe, and so forth before such hardware can be
> connected to spacecraft to do its job.  Software has similar risk-mitigating
> requirements, and if Pharo were to play a prominent role, that kind of
> trustworthiness must be established as well.  Financial organizations are
> concerned with "We don't want a flaw to cause us to lose our money"; we're
> concerned with "We don't want a flaw to cause us to lose a mission".  That
> sort of thing...
>
> So the kinds of support you're mentioning are good to hear.
>
>> A super concrete example, feenk reported that the windows update 1903/4
>> changed something
>> and that their guys working on windows could not access git via libgit
>> anymore.
>> Pablo and Guille put this on their highest priority just after ESUG and it
>> was solved within
>> a couple of days.
>
> I did follow that thread.  (I've been reading almost all the Dev & Users
> mailing list postings for this past year.)
>
>> Feenk got problems with a binding or headless VM and pablo pair programmed
>> with one of
>> their engineering during ESUG.
>
> That's also strong evidence of significant support.  We're used to having
> "field engineers" show up on-site to help work out some of our tougher
> problems with vendor's products.
>
> Thanks again for your responses.  (And for the support from other community
> members I've talked to.)  I see nothing so far that doesn't continue to
> encourage me.  I've looked at the community, the tools, the documents, the
> code, the MOOC and other trainings & examples, and played with it myself --
> all good (even if some areas are still evolving).  
>
> What's turning over in my mind is how to best present this, how to market it
> and get developers here "hooked" enough to spend time getting over that
> initial hill of understanding.  At first, Pharo is just /weird/, if
> intriguing.  There is *definitely* an ROI for those who will make the
> effort, carve out the time, and try it.  

Pick up something that help you and build it.
Be your first success story like that you will have something to show
and we can help too :)

>
> -t
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
I have found a project that I think is a good fit in size & complexity, one
that can operate at that "CLI level" (i.e., doesn't need a GUI or a web
front end).

We ("we" being my group and a number of projects around the Laboratory we've
been associated with) are migrating code from a Subversion server to a
central "Enterprise" GitHub (not publicly accessible).  I'm the admin for
this particular SVN server, so I'm doing the migrations.  Having assumed
most all of the group's devops functions over the years, I frequently have
to write code to automate tasks like these.  That puts me in an good
position to write these tools in Pharo instead of Bash or Lua or Python,
etc. as I normally have been doing.

Some of the SVN repos convert nicely, using available migration tools (such
as 'svn2git' or 'git svn').  However, many developers are insufficiently
trained on VCS, and over the years many of the SVN repos have been choked
with inappropriate files and have had their history threads tangled up -- so
they will not covert.  I've studied the internal structure of SVN repo dump
files, and I have algorithms (and some code in Bash & Python) that allow me
to edit these files to make them convertible.  Still, it's a lot of
hand-work; a more comprehensive solution is needed.

I'm going to make a tool, in Pharo, for general editing of SVN dump files:
to remove junk that doesn't belong, extract single projects from mixed-use
repos, simplify history for tangled moves, etc.  The output will be clean
dump files containing the extracted project-specific commits that will then
roll into GitHub without issues and show up with branches, tags, etc. as
expected.

While researching how to do this, I've converted 3 of >80 repositories
(which resulted in 15 project repos grouped in 3 GitHub Organizations).  My
methods work; I just need to fully automate the process so that I can
complete the remainder.

Ironically, I'm not actually being funded to do this as one of my "normal"
job tasks -- certainly not the automation part.  As a result, this has
become a "nights and weekends" effort.  But that means I will own the code
-- so I plan to put it on the *public* GitHub, with an MIT/Apache
open-source license.  Of course, everyone else who's been frustrated trying
to convert complicated SVN repos into GitHub will have my Pharo tool to use.
(That could result in a lot of exposure to Pharo..??)  And it allows the
Pharo community to potentially help, since they'll have access to the source
code as well.

This kind of project does not require a GUI (it will be run by Linux admin
types) and it does not benefit from a web interface.  It's mostly file I/O,
with some parameters that need to be negotiated with the user once the SVN
dump file has been scanned.  Challenging, but not too challenging.

From there I can advertise its use around the Lab.  We're not the only group
that's been using SVN.  Some other sysadmins are likely to want
modifications...  A start?

-t



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

ducasse


> On 26 Sep 2019, at 20:14, Brainstorms <[hidden email]> wrote:
>
> I have found a project that I think is a good fit in size & complexity, one
> that can operate at that "CLI level" (i.e., doesn't need a GUI or a web
> front end).
>
> We ("we" being my group and a number of projects around the Laboratory we've
> been associated with) are migrating code from a Subversion server to a
> central "Enterprise" GitHub (not publicly accessible).  I'm the admin for
> this particular SVN server, so I'm doing the migrations.  Having assumed
> most all of the group's devops functions over the years, I frequently have
> to write code to automate tasks like these.  That puts me in an good
> position to write these tools in Pharo instead of Bash or Lua or Python,
> etc. as I normally have been doing.

Pay attention because Pharo could be better for supplanting bash.


> Some of the SVN repos convert nicely, using available migration tools (such
> as 'svn2git' or 'git svn').  However, many developers are insufficiently
> trained on VCS, and over the years many of the SVN repos have been choked
> with inappropriate files and have had their history threads tangled up -- so
> they will not covert.  I've studied the internal structure of SVN repo dump
> files, and I have algorithms (and some code in Bash & Python) that allow me
> to edit these files to make them convertible.  Still, it's a lot of
> hand-work; a more comprehensive solution is needed.
>
> I'm going to make a tool, in Pharo, for general editing of SVN dump files:
> to remove junk that doesn't belong, extract single projects from mixed-use
> repos, simplify history for tangled moves, etc.  The output will be clean
> dump files containing the extracted project-specific commits that will then
> roll into GitHub without issues and show up with branches, tags, etc. as
> expected.


> While researching how to do this, I've converted 3 of >80 repositories
> (which resulted in 15 project repos grouped in 3 GitHub Organizations).  My
> methods work; I just need to fully automate the process so that I can
> complete the remainder.
>
> Ironically, I'm not actually being funded to do this as one of my "normal"
> job tasks -- certainly not the automation part.  As a result, this has
> become a "nights and weekends" effort.  But that means I will own the code
> -- so I plan to put it on the *public* GitHub, with an MIT/Apache
> open-source license.  Of course, everyone else who's been frustrated trying
> to convert complicated SVN repos into GitHub will have my Pharo tool to use.
> (That could result in a lot of exposure to Pharo..??)  And it allows the
> Pharo community to potentially help, since they'll have access to the source
> code as well.
>
> This kind of project does not require a GUI (it will be run by Linux admin
> types) and it does not benefit from a web interface.  It's mostly file I/O,
> with some parameters that need to be negotiated with the user once the SVN
> dump file has been scanned.  Challenging, but not too challenging.


To help you, you can extend the inspector to provide specific view on data.

>
> From there I can advertise its use around the Lab.  We're not the only group
> that's been using SVN.  Some other sysadmins are likely to want
> modifications...  A start?

To me Pharo is not really at the level I would like to. But this is my view.
Now we have nice binding to invoke shell and other like subOSProcess.
We should also progress on that front.

To me Pharo is super good at manipulating complex data and object
and building nice abstraction.

So I hope that you will not be disappointed.
>
> -t
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Pumping FFI documentation [WAS] FFI beginner question

tbrunz
> Pay attention because Pharo could be better for supplanting bash.

That was one of the first things I was evaluating Pharo on, to see its
potential for replacing Bash (and therefore Lua, which I was also
considering for this, initially; I'm one of those holdouts who hasn't
learned Python -- I want "the real OOP" instead).  But I have many years of
programming Bash; I automate things.  I really want Pharo to become my
"handy tool" for this.  And more.

Now, there's this wrinkle: Pharo doesn't run in the same realm (e.g., Linux
Userland) as the OS and associated tools I need to work with; it runs in its
own container, akin to running in Docker or LXC.  We call them "image
files", but they're really like Docker or LXC containers -- only Pharo
containers are plugged into a VM instead of a Linux kernel (so it's much
better!).  Also, the realm of Pharo is "Objectland", not an isolated
filesystem such as LXC provides.  But the principles are the same, and.. do
I really want to learn Docker?

The consequence of this is, "How do you cross the container boundary, as
needed, to interact with 'the real world'?" And do so with ease?  This is
distinctly different from, say, file I/O, where you're almost doing the
opposite in Pharo: Bringing (a representation of) the file system into the
image in order to interact with it.  I can't bring 'grep' into Pharo; I need
to reach outside and launch 'grep', and interact with it, all from code
executing in my image.

Pharo shares this issue with Docker, but goes one further: Marshalling
in/out of objects, because that's all there is "on the inside".  These are
interesting CS/IT issues, for sure...  We depend on skillful IDE developers
in the Pharo community to make it all work smoothly, almost invisibly.

> To me Pharo is not really at the level I would like to.

I have already gotten the feel for this.  I started with an impression of
"Pharo is Smalltalk that's modernized and mature, finally!" (having shifted
from Squeak), to a more subtle feeling of "Wow, it's evolving (quickly!),
there are many areas being improved, and still some things that are "in the
rough".  

And that's okay; Rome wasn't built in a day and this is a major project.
We're "rebuilding a 1970's sedan into a 21st Century electric autonomous
car" sort of thing, and doing it while it's being driven.  And successfully,
too.  So I will still recommend that engineers and developers spend time
evaluating it.  What language/IDE stands still anyway?  They all evolve.

> But this is my view.
> Now we have nice binding to invoke shell and other like subOSProcess.
> We should also progress on that front.

I was frustrated a bit at first, but then I found Christopher Fuhrman's page
on using 'LibC':
https://fuhrmanator.github.io/2019/03/16/LibC-Pharo-experiments.html
which shows how to "get a shell" on the host to run commands & access the
environment variables (including returning stdout, stderr, and the $? result
-- excellent).

That seems to cover most needs, but I'm not sure if this is the "standard
way to do it".  It does seem pretty powerful, though.

Then I found the "clap" project, https://github.com/cdlm/clap-st
and then "Scale", https://github.com/guillep/Scale

So I conclude that the ability is there, with more potential to be realized
as things evolve.

> To me Pharo is super good at manipulating complex data and object
> and building nice abstraction.

I get that!  Bash is terrible at this, but it's super good at blending
scripts with the OS evironment to make Userland tools work so seemlessly as
part of your custom code they seem to be elements of the language.  Now flip
that around: How does Pharo fare at OS/environment interaction?  We can't
operate in a vacuum (unless we build, what? Single-player games?)

> So I hope that you will not be disappointed.

So far, I'm not; I'm inspired, if anything.  Here's the list of what I
consider to be the ideal capabilities of any language/programming
environment, in increasing challenges.  (And keep in mind that I don't come
from a corporate IT background, shuttling & transforming data from cloud to
cloud; I build code to automate machines, devices, instruments, operating
systems, applications, processes, tools.. and every now & then processing
the data. :^)

1.) I want to have full host file system capabilities.  Not just read/write
files, but manipulating the file system.  Pharo seems to have this covered.

2.) I want to have good TCP/UDP capabilities.  I want to act as a server to
provide TCP sockets to connect to, act as a client and connect to servers
using TCP, and be able to read and write UDP packets easily.  Again, Pharo
seems to provide this nicely.

3.) I want to be able to interact with the OS, the host environment, and
tools and applications in the host.  This includes being able to launch,
monitor, and control processes -- and pass I/O in & out dynamically.  In
Bash, if I need complex pattern matching, I just "ask grep"; if I need
programmatic editing of a file, I just "tell sed to do it".  There's no
hoops to jump through, and nothing to set up.  Just "use the tool" and keep
coding...  I see ability here with Pharo.

4.) I want to be able to connect to compiled libraries of code and call them
easily -- so that I can interact with devices as well as export behavior to
pre-existing code.  This is the Pharo uFFI.  And I'll mention USB/serial use
here; device control is Pharo IOT I'm told.  I have yet to look at Pharo
IOT, but I will be doing so soon, just as I will be immersed with the uFFI
as I help with the docs and later the code.  So I know Pharo can do this,
too, yet it seems an area that's evolving.

5.) I want to be able to write applications that I can interact with from my
host's command line.  I want to write REPL apps, Linux filters, and the
like.  For example, I ought to be able to recreate 'grep' in Pharo (if I
wanted to go to the trouble. Not really, but I should be able to do it).
Most of my Bash and Lua scripts work at this level.  With Pharo..?  I'm not
sure how well this can work.

6.) I want to create apps that have a nice, professional-looking
mouse-driven GUI interface -- without the tedious nature of, say, Tk to
build them.  I know now that SpecUI answers that, to some degree of ease;
but I'm not sure yet how well, as I need to run a tutorial & play with it.
Pharo Launcher proves that these apps can be built.  So I wonder, "How hard
would it be to recreate Pharo Launcher?"  Because of course, I want to
deliver apps to my colleagues that work like running Pharo Launcher.  So
here it's a matter of "It can do it well, but how hard is it?"

7.) I want to create web apps, where my Pharo code, running in its
container, is reached by a web browser or another app's code, over sockets
(like accessing Docker microservices), whether it runs on the same host or a
remote host.  This is the ultimate -- it makes deployment, maintenance,
access, and so forth much easier, enables scaling, redundancy,
platform-independence, etc.  My customers want this, but I can't give it to
them currently.  I know that Pharo can do this, and do it well.  I like that
the cognitive burden of learning web programming is significantly reduced
with Pharo.  (Here's a suggestion for Pharo: Make Pharo easily capable of
plug-and-play in a Docker cluster.  I want to make/deploy microservices
built with Pharo, not Docker.  The IT world seems to be swinging towards
this, and if Pharo pursues this, perhaps it would be that breakout feature
it needs.)

8.) Finally, I want to be able to create the client-side
view/behavior/experience that my user sees and interacts with in a
browser-as-my-GUI.  I think this is Amber or PharoJS, and I know that this
the summit of the mountain and most likely a separate skill area.  I have
never wanted to learn JavaScript, CSS, etc. but one can never get far from
that, so I would leave this to the specialists.  But being able to give them
a Pharo environment to build these would be nice.  I have no idea how ideal
Amber/PharoJS is for making web pages...

Where I am now, I have at least one language/IDE that gives me all but the
last two capabilities on this list (and doesn't do #5 very well).  But my
primary IDE is closed-source and *expensive*.  (I can pay several thousand
more to a third-party vendor for an add-on that gives web control, but no
one here wants to pay for that, even though many ask for the capability.)  I
want an open-source, platform-independent IDE instead.

I started to think that Lua (with MANY add-on libraries) would cover enough
of these "desirements", but I've always wanted to work in that pure OOP
environment of Smalltalk.  So I'm encouraged at all I've seen, because Pharo
touches on all these capabilities.  Not all perfectly, of course, but many
very well.  

I don't think I'll be disappointed.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html