pharo at google code-in

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

pharo at google code-in

Martin Bähr
hi,

i have been meaning to learn smalltalk for a while, but i always lacked a good
project that i could do with it, until recently. and figuring that teaching is
the best way to learn i put up my projects as tasks for google code-in as part
of FOSSASIA which is a code-in mentor organization.

since code-in targets middle and highschool students, it is quite unlikely that
any of them already know smalltalk, or have even heared about it. so in a way
this will introduce a few students to smalltalk.

i picked pharo because i feel it is going in the right direction trying to
improve and also adding things like commandline support.

for my tasks i have two major aims:


a desktop application that can search a given collection of text and browse the
search results.

a web application in form if a RESTful user management system that can be used
as authentication server for nginx. (nginx makes a request for a given resource
and asks if a user is allowed access)
it has a dynamic frontend (angular.js or other) without generating html in the
server.


both projects are split up into several tasks.

the desktop application project starts out exploring the basics of how to
display text in a frame, covering the full pharo window, and switch between
multiple texts:
http://www.google-melange.com/gci/task/view/google/gci2014/5902940472606720

once completed a second task will add search capabilities:
http://www.google-melange.com/gci/task/view/google/gci2014/5904045940146176


for the web-project first a set of tasks explores various web frameworks by
letting the students walk through a tutorial and report on the results:

aida:    
http://www.google-melange.com/gci/task/view/google/gci2014/5858171612561408
http://awblog.blog.com/2014/12/21/hello-world-creating-a-simple-webpage-with-the-aidaweb-framework-on-pharo-smalltalk/

iliad:  
http://www.google-melange.com/gci/task/view/google/gci2014/5888240192061440
http://awblog.blog.com/2014/12/22/hello-world-creating-a-simple-webpage-with-the-iliad-framework-on-pharo-smalltalk/

seaside: http://www.google-melange.com/gci/task/view/google/gci2014/5786620192096256
zinc:    http://www.google-melange.com/gci/task/view/google/gci2014/5906919541702656

i may add another task for teapot, but i could not find any tutorial for tide


the next step is to figure out how to serve static files from the image:
http://www.google-melange.com/gci/task/view/google/gci2014/5814729360539648

the reason for that is that, this being a small application, i prefer easy
deployability over performance, so i'd rather have all assets within the image.

then the REST api:
http://www.google-melange.com/gci/task/view/google/gci2014/5880541949722624

personally i am now leaning towards either just zinc or teapot to build the API
since i have no need for most of the features of the larger frameworks.

initially i was interested in aida because of its support for user management,
but i am not sure it is needed.

there is of course also a frontend:
http://www.google-melange.com/gci/task/view/google/gci2014/5905960371486720
demo: http://idarbek.com/angular

and a task to connect the two:
http://www.google-melange.com/gci/task/view/google/gci2014/5240815429353472

for good measure, one task is exploring amber:
http://www.google-melange.com/gci/task/view/google/gci2014/5825641580593152


what does all of that have to do with you?

well, aside from the outreach to introduce pharo to students i'd like to invite
your feedback on the tasks, and i am wondering if you have suggestions for
other tasks that students could work on.

essentially this is an opportunity for pharo (and other smalltalk projects) to
participate in google code-in. FOSSASIA is inviting Free Software and Open
Source projects to join as mentors. (well, primarily asian projects, but since
Free Software and Open Source are global that is hard to pin down. i am in
china, so...)

but even if you don't join as mentors, if you have tasks for one of your
projects that would be suitable, i can put them up, if i can mentor them.
(and if they are easy enough for beginners, then i probably can)

google code-in ends on the 20th of january, so there is still time for students
to pick up a few more smalltalk tasks.

greetings, martin.

--
eKita                   -   the online platform for your entire academic life
--
chief engineer                                                       eKita.co
pike programmer      pike.lysator.liu.se    caudium.net     societyserver.org
BLUG secretary                                                 beijinglug.org
foresight developer  foresightlinux.org                            realss.com
unix sysadmin
Martin Bähr          working in china        http://societyserver.org/mbaehr/

Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

stepharo
Hi martin


> hi,
>
> i have been meaning to learn smalltalk for a while, but i always lacked a good
> project that i could do with it, until recently. and figuring that teaching is
> the best way to learn i put up my projects as tasks for google code-in as part
> of FOSSASIA which is a code-in mentor organization.

Excellent!

>
> since code-in targets middle and highschool students, it is quite unlikely that
> any of them already know smalltalk, or have even heared about it. so in a way
> this will introduce a few students to smalltalk.
>
> i picked pharo because i feel it is going in the right direction trying to
> improve and also adding things like commandline support.
>
> for my tasks i have two major aims:
>
>
> a desktop application that can search a given collection of text and browse the
> search results.
     Ok students should follow spec tutorial.
     there is also (no idea of the status a fast search system developed
by benjmain areski

>
> a web application in form if a RESTful user management system that can be used
> as authentication server for nginx. (nginx makes a request for a given resource
> and asks if a user is allowed access)
> it has a dynamic frontend (angular.js or other) without generating html in the
> server.
>
>
> both projects are split up into several tasks.
>
> the desktop application project starts out exploring the basics of how to
> display text in a frame, covering the full pharo window, and switch between
> multiple texts:
> http://www.google-melange.com/gci/task/view/google/gci2014/5902940472606720
>
> once completed a second task will add search capabilities:
> http://www.google-melange.com/gci/task/view/google/gci2014/5904045940146176
>
>
> for the web-project first a set of tasks explores various web frameworks by
> letting the students walk through a tutorial and report on the results:
I would only list the one that are maintained. Because it is not fun to
work with dead projects.

>
> aida:
> http://www.google-melange.com/gci/task/view/google/gci2014/5858171612561408
> http://awblog.blog.com/2014/12/21/hello-world-creating-a-simple-webpage-with-the-aidaweb-framework-on-pharo-smalltalk/
>
> iliad:
> http://www.google-melange.com/gci/task/view/google/gci2014/5888240192061440
> http://awblog.blog.com/2014/12/22/hello-world-creating-a-simple-webpage-with-the-iliad-framework-on-pharo-smalltalk/
>
> seaside: http://www.google-melange.com/gci/task/view/google/gci2014/5786620192096256
> zinc:    http://www.google-melange.com/gci/task/view/google/gci2014/5906919541702656
>
> i may add another task for teapot, but i could not find any tutorial for tide
>
>
> the next step is to figure out how to serve static files from the image:
> http://www.google-melange.com/gci/task/view/google/gci2014/5814729360539648
>
> the reason for that is that, this being a small application, i prefer easy
> deployability over performance, so i'd rather have all assets within the image.
>
> then the REST api:
> http://www.google-melange.com/gci/task/view/google/gci2014/5880541949722624
>
> personally i am now leaning towards either just zinc or teapot to build the API
> since i have no need for most of the features of the larger frameworks.
Yes keep it simple.


>
> initially i was interested in aida because of its support for user management,
> but i am not sure it is needed.
>
> there is of course also a frontend:
> http://www.google-melange.com/gci/task/view/google/gci2014/5905960371486720
> demo: http://idarbek.com/angular
>
> and a task to connect the two:
> http://www.google-melange.com/gci/task/view/google/gci2014/5240815429353472
>
> for good measure, one task is exploring amber:
> http://www.google-melange.com/gci/task/view/google/gci2014/5825641580593152

Yet another environment.
>
> what does all of that have to do with you?
>
> well, aside from the outreach to introduce pharo to students i'd like to invite
> your feedback on the tasks, and i am wondering if you have suggestions for
> other tasks that students could work on.
I would keep the list of tasks and frameworks to master to a nice limit.



>
> essentially this is an opportunity for pharo (and other smalltalk projects) to
> participate in google code-in. FOSSASIA is inviting Free Software and Open
> Source projects to join as mentors. (well, primarily asian projects, but since
> Free Software and Open Source are global that is hard to pin down. i am in
> china, so...)
>
> but even if you don't join as mentors, if you have tasks for one of your
> projects that would be suitable, i can put them up, if i can mentor them.
> (and if they are easy enough for beginners, then i probably can)
I would love to see tests and improvements on
     Athens-svg
so that we can import svg files.

>
> google code-in ends on the 20th of january, so there is still time for students
> to pick up a few more smalltalk tasks.

Excellent
>
> greetings, martin.
>


Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

Martin Bähr
Excerpts from stepharo's message of 2014-12-25 11:56:29 +0100:
> > a desktop application that can search a given collection of text and browse the
> > search results.
>      Ok students should follow spec tutorial.
>      there is also (no idea of the status) a fast search system developed
> by benjmain areski

thank you, that's helpful. i'll look into those.

i found:
http://spec.st/docs/
http://www.bahmanm.com/blogs/spec-part-1-basics
http://pharorwrules.wordpress.com/2013/06/26/a-look-into-spec/

and
http://smalltalkhub.com/#!/~BenjA/FullTextSearch
but no docs on it...

> > a web application in form if a RESTful user management system that can be used
> > as authentication server for nginx. (nginx makes a request for a given resource
> > and asks if a user is allowed access)
> > it has a dynamic frontend (angular.js or other) without generating html in the
> > server.

> > for the web-project first a set of tasks explores various web frameworks by
> > letting the students walk through a tutorial and report on the results:
> I would only list the one that are maintained. Because it is not fun to
> work with dead projects.

agreed, however iliad happened to have a very good tutorial which included
serving static files, which is one of the features needed for the website.

> > personally i am now leaning towards either just zinc or teapot to build the API
> > since i have no need for most of the features of the larger frameworks.
> Yes keep it simple.

so in that light the tutorials will be used to let students get familiar with
working on pharo, and then i hope at least one of them will stick with me to
continue working on the website.

> > for good measure, one task is exploring amber:
> Yet another environment.

yes, this is more out of curiosity. i want to see what amber can do.
i read claims that it has data-binding so in theory it could replace js
frameworks like angular.js, though i'd also be happy to just use it to drive
angular.js. we are currently using coffeescript, which is nice, but i like to
explore the options.

> > well, aside from the outreach to introduce pharo to students i'd like to invite
> > your feedback on the tasks, and i am wondering if you have suggestions for
> > other tasks that students could work on.
> I would keep the list of tasks and frameworks to master to a nice limit.

from the framework tutorials students were not expected to do more than one
each, it just so happened that one student was eager to pick up two. i have a
second student learning seaside now.

hopefully one of the two will be interested in continuing and then i'll lead
them to just build the website with zinc (or teapot) while both of them have
the option to fall back on the framework they learned for their own projects if
they are interested.

the desktop app is done by yet another student.

> > but even if you don't join as mentors, if you have tasks for one of your
> > projects that would be suitable, i can put them up, if i can mentor them.
> > (and if they are easy enough for beginners, then i probably can)
> I would love to see tests and improvements on
>      Athens-svg
> so that we can import svg files.

can you give some more pointers on what would be to be done here?
try to use Athens-svg and report bugs?
i doubt students are at the level that they could fix bugs, but getting them to
run tests on as many svg files they can find, that they can probably do.

would that require pharo 4, or is it enough to load the dev version into pharo 3?

i found these resouces:
http://smalltalkhub.com/#!/~Pharo/Athens
http://stackoverflow.com/questions/14584299/interacting-with-a-svg-in-pharo
http://forum.world.st/Athens-SVG-Import-td4734685.html
http://stackoverflow.com/questions/22612240/what-exactly-is-athens

greetings, martin.

--
eKita                   -   the online platform for your entire academic life
--
chief engineer                                                       eKita.co
pike programmer      pike.lysator.liu.se    caudium.net     societyserver.org
BLUG secretary                                                 beijinglug.org
foresight developer  foresightlinux.org                            realss.com
unix sysadmin
Martin Bähr          working in china        http://societyserver.org/mbaehr/

Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

hernanmd
Hi Martin,

2014-12-25 9:09 GMT-03:00 Martin Bähr <[hidden email]>:
Excerpts from stepharo's message of 2014-12-25 11:56:29 +0100:
> > a desktop application that can search a given collection of text and browse the
> > search results.

Do you have a prototype screenshot for the UI? A mockup?
It could be interesting to see what do you expect to see.
 
>      Ok students should follow spec tutorial.
>      there is also (no idea of the status) a fast search system developed
> by benjmain areski

thank you, that's helpful. i'll look into those.

i found:
http://spec.st/docs/
http://www.bahmanm.com/blogs/spec-part-1-basics
http://pharorwrules.wordpress.com/2013/06/26/a-look-into-spec/

and
http://smalltalkhub.com/#!/~BenjA/FullTextSearch
but no docs on it...

> > a web application in form if a RESTful user management system that can be used
> > as authentication server for nginx. (nginx makes a request for a given resource
> > and asks if a user is allowed access)
> > it has a dynamic frontend (angular.js or other) without generating html in the
> > server.

> > for the web-project first a set of tasks explores various web frameworks by
> > letting the students walk through a tutorial and report on the results:
> I would only list the one that are maintained. Because it is not fun to
> work with dead projects.

agreed, however iliad happened to have a very good tutorial which included
serving static files, which is one of the features needed for the website.


Iliad is not unmaintained and is not a dead project. Please subscribe to the Iliad mailing-list to keep updated of latest changes. We are exploring options to migrate the old web-site to a new server. I am integrating changes for working with modern (responsive) CSS frameworks.

 
> > personally i am now leaning towards either just zinc or teapot to build the API
> > since i have no need for most of the features of the larger frameworks.
> Yes keep it simple.

so in that light the tutorials will be used to let students get familiar with
working on pharo, and then i hope at least one of them will stick with me to
continue working on the website.

> > for good measure, one task is exploring amber:
> Yet another environment.

yes, this is more out of curiosity. i want to see what amber can do.
i read claims that it has data-binding so in theory it could replace js
frameworks like angular.js, though i'd also be happy to just use it to drive
angular.js. we are currently using coffeescript, which is nice, but i like to
explore the options.


Amber is a new Smalltalk dialect so you could ask questions in the Amber mailing-list. I know there are people working with JS frameworks which surely can help you with specific questions.

 
> > well, aside from the outreach to introduce pharo to students i'd like to invite
> > your feedback on the tasks, and i am wondering if you have suggestions for
> > other tasks that students could work on.
> I would keep the list of tasks and frameworks to master to a nice limit.

from the framework tutorials students were not expected to do more than one
each, it just so happened that one student was eager to pick up two. i have a
second student learning seaside now.

hopefully one of the two will be interested in continuing and then i'll lead
them to just build the website with zinc (or teapot) while both of them have
the option to fall back on the framework they learned for their own projects if
they are interested.

the desktop app is done by yet another student.

> > but even if you don't join as mentors, if you have tasks for one of your
> > projects that would be suitable, i can put them up, if i can mentor them.
> > (and if they are easy enough for beginners, then i probably can)
> I would love to see tests and improvements on
>      Athens-svg
> so that we can import svg files.

can you give some more pointers on what would be to be done here?
try to use Athens-svg and report bugs?
i doubt students are at the level that they could fix bugs, but getting them to
run tests on as many svg files they can find, that they can probably do.

would that require pharo 4, or is it enough to load the dev version into pharo 3?

i found these resouces:
http://smalltalkhub.com/#!/~Pharo/Athens
http://stackoverflow.com/questions/14584299/interacting-with-a-svg-in-pharo
http://forum.world.st/Athens-SVG-Import-td4734685.html
http://stackoverflow.com/questions/22612240/what-exactly-is-athens

greetings, martin.

--
eKita                   -   the online platform for your entire academic life
--
chief engineer                                                       eKita.co
pike programmer      pike.lysator.liu.se    caudium.net     societyserver.org
BLUG secretary                                                 beijinglug.org
foresight developer  foresightlinux.org                            realss.com
unix sysadmin
Martin Bähr          working in china        http://societyserver.org/mbaehr/


Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

Martin Bähr
Excerpts from Hernán Morales Durand's message of 2014-12-25 17:24:18 +0100:
> > > > a desktop application that can search a given collection of text and
> > > > browse the search results.
> Do you have a prototype screenshot for the UI? A mockup?
> It could be interesting to see what do you expect to see.

i don't have any mockups. the UI is very simple.

in the final version i expect the following:

some intro text about the application,
a search-box and a selection of categories,
a directory to browse the contained documents without searching.


when pharo starts, this should come up automatically, and any development tools
should be invisible. in part that means, the world menu should be hidden and
only accessible through a keyboard shortcut, or ideally only available when
pharo is started with an extra commandline argument (eg --devmode)

the user can then browse the documents or search.

search results should be a long scroll-list and clicking on a result should
expand the document at the location where the term was found, allowing to
scroll back and forth from that point.

the initial version will only support plain text, but future versions may
support html text to allow for cross-links in documents.

a generic use-case would be something like an encyclopedia. it has lots of
articles in various categories, and it makes sense to deliver it as a complete
application with all assets contained in the image.

there is also a mobile component which is essentially the same idea but
designed for a mobile phone. this is currently being worked on using
javascript/phonegap to be cross-platform.

i don't know if pharo can run on a mobile phone. i'll explore that when the
desktop app is functional.
 
> > > I would only list the one that are maintained. Because it is not fun to
> > > work with dead projects.
> > agreed, however iliad happened to have a very good tutorial which included
> > serving static files, which is one of the features needed for the website.
> Iliad is not unmaintained and is not a dead project. Please subscribe to
> the Iliad mailing-list to keep updated of latest changes. We are exploring
> options to migrate the old web-site to a new server. I am integrating
> changes for working with modern (responsive) CSS frameworks.

that is good to know. it is an interesting project. i didn't see much traffic
in the google group, and with the website down and no updates to the code on
github for years or visible release announcements it is difficult to get a good
impression.

what is missing to get the website back up? just a host?

greetings, martin.

--
eKita                   -   the online platform for your entire academic life
--
chief engineer                                                       eKita.co
pike programmer      pike.lysator.liu.se    caudium.net     societyserver.org
BLUG secretary                                                 beijinglug.org
foresight developer  foresightlinux.org                            realss.com
unix sysadmin
Martin Bähr          working in china        http://societyserver.org/mbaehr/

Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

Martin Bähr
In reply to this post by Martin Bähr
Excerpts from Martin Bähr's message of 2014-12-24 19:48:47 +0100:
> i have been meaning to learn smalltalk for a while, but i always lacked a good
> project that i could do with it, until recently. and figuring that teaching is
> the best way to learn i put up my projects as tasks for google code-in as part
> of FOSSASIA which is a code-in mentor organization.

i posted a write-up of the smalltalk projects and tasks here:
http://societyserver.org/mbaehr/learning-smalltalk-with-Google-Code-In

i'll be updating that as students work progresses and if i add new tasks.

i am also still looking for tutorials that can be used to start learning pharo.
in particular for spec and desktop apps in general, but i don't mind having
more options for webframeworks too.

so far i have 4 students started on smalltalk, one of them didn't continue
after the tutorial (so i reopened the task for others), and one who is learning
amber.  we'll see if any of them pick up the actual project tasks.

greetings, martin.

--
eKita                   -   the online platform for your entire academic life
--
chief engineer                                                       eKita.co
pike programmer      pike.lysator.liu.se    caudium.net     societyserver.org
BLUG secretary                                                 beijinglug.org
foresight developer  foresightlinux.org                            realss.com
unix sysadmin
Martin Bähr          working in china        http://societyserver.org/mbaehr/

Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

stepharo

Le 31/12/14 08:03, Martin Bähr a écrit :

> Excerpts from Martin Bähr's message of 2014-12-24 19:48:47 +0100:
>> i have been meaning to learn smalltalk for a while, but i always lacked a good
>> project that i could do with it, until recently. and figuring that teaching is
>> the best way to learn i put up my projects as tasks for google code-in as part
>> of FOSSASIA which is a code-in mentor organization.
> i posted a write-up of the smalltalk projects and tasks here:
> http://societyserver.org/mbaehr/learning-smalltalk-with-Google-Code-In
>
> i'll be updating that as students work progresses and if i add new tasks.
>
> i am also still looking for tutorials that can be used to start learning pharo.
> in particular for spec and desktop apps in general, but i don't mind having
> more options for webframeworks too.

I will make sure that the Spec chapter compile and I will let you know.
There are hosted at
     https://github.com/SquareBracketAssociates/PharoInProgress
I will create a jenkins job

>
> so far i have 4 students started on smalltalk, one of them didn't continue
> after the tutorial (so i reopened the task for others), and one who is learning
> amber.  we'll see if any of them pick up the actual project tasks.

I strongly suggest them to register to the mailing-lists and ask questions.
Tell them that we are all happy to help them.

Stef
>
> greetings, martin.
>


Reply | Threaded
Open this post in threaded view
|

Re: pharo at google code-in

stepharo
Created jenkins job to produce the PDFs
I just realized that I lost some of my edits in the Spec chapter.

https://ci.inria.fr/pharo-contribution/job/PharoBookWorkInProgress/ws/

https://ci.inria.fr/pharo-contribution/job/PharoBookWorkInProgress/1/artifact/Spec/

Stef