[Pharo-users] [ANN] Pharo Sprint tomorrow, March 3

2017-03-01 Thread Marcus Denker
We will organize a Pharo sprint / Moose dojo March, 03, starting at

10:00am. (Local Time Paris).

Goals of this sprint:

• Clean issue tracker to prepare for release Pharo6
• remove Pharo6 tag from not-important cases
• Check Pharo5 Issues and pending back-ports

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

Known Local Sprint meetings:

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

Santiago/Chile:

At DCC (https://www.dcc.uchile.cl), Universidad de Chile. Avenida 
Beauchef 851, edificio poniente, tercer piso, oficina 307, Santiago, Chile.
Chile sprint will be 9:00 local time and finish at a lunch time (13:00).


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




[Pharo-users] Fwd: Welcome to GSoC 2017!

2017-03-01 Thread Serge Stinckwich
Dear all,

please find below more information about the GSOC 2017 program.

Among the changes for 2017 that we should pay attention, two are quite
important:

- Students can only be accepted into GSoC 2 times. Google Admins will do a
sanity check on all accepted students once you select your students in late
April so you do not need to be concerned about this.
- If you are a university, we expect you to select students outside of your
program. Selecting students from your university is okay but if *all* of
the students you select are from your university then you likely won’t be
accepted into GSoC again.

I will ask for the last item, because I dunno if they are talking about the
Pharo org or the mentors.

Regards,

-- Forwarded message --
From: Google Summer of Code 
Date: Thu, Mar 2, 2017 at 12:15 AM
Subject: Welcome to GSoC 2017!
To: sergestinckw...@gmail.com


[image: Google Summer of Code]

Hi Serge Stinckwich,

This year marks our biggest program ever! We have 201 open source
organizations participating in GSoC 2017 and we expect to accept more
students than ever before as well. And welcome
to 37 organizations participating in their first GSoC!

Right now you should be chatting with proactive, excited students. Remember
to keep your Ideas List updated and make it clear and simple to understand
so students can easily find your Ideas - if it requires multiple clicks to
get to the Ideas List that is not ideal.

We want to give you a quick overview of the next few months and address
some of the common questions you may have these first few weeks of the
program.

*New changes (and some reminders) for 2017*

   - There are 3 evaluation periods this year where mentors are required to
   complete an evaluation of their student. After the first 4 weeks of coding,
   after 8 weeks of coding and then at the end (after 12 weeks of coding). The
   evaluation forms are shorter than previous years so they should take less
   time to complete.
   - Students can only be accepted into GSoC 2 times. Google Admins will do
   a sanity check on all accepted students once you select your students in
   late April so you do not need to be concerned about this.
   - If you are a university, we expect you to select students outside of
   your program. Selecting students from your university is okay but if
   *all* of the students you select are from your university then you
   likely won’t be accepted into GSoC again.
   - New org payment system using Payoneer. We are no longer requiring OAs
   to register for a Google supplier account and instead orgs will do what
   students do and create an account with Payoneer. This will allow for orgs
   to receive payments *much* faster, with orgs receiving their stipend
   payments in September. (more details to come in May)
   - We are now allowing 13-17 year olds to be mentors for GSoC as long as
   they have parental consent to be a part of the program. An additional form
   is required.

*Inviting Mentors to your Organization*
Organization Administrators should be reaching out to mentors and sending
them invitations to be a part of their organization. The mentor will then
click the link in the email they receive to create their account.

PLEASE NOTE: Right now first time mentors should wait a few days to
register until we have announced that we have fixed a small validation
error on the site not allowing mentors to choose “0” as an option to the
question ‘How many times have you participated as a GSoC mentor
previously?’ They can’t edit that field once they put a number into it and
we are trying to get a good idea of how many new mentors we have each year.
Thank you for your patience.

*GSoC Mentor-invite Mailing List*
For those that have opted into the GSoC mentor mailing list (available on
your profile page) we will bulk add you to the list on March 6th. Then we
will add additional folks who opt in about once a week throughout the
program period. You can remove yourself through the groups interface at any
time. You can also update your settings to receive a daily digest of emails
and other options. This generally is not a very high traffic list but there
will be more questions over the next two months on this list than probably
later in the program.

The GSoC mentor mailing list is a great way to ask questions of other org
admins and mentors and to get their feedback and help.

*Important Upcoming Dates*
*Now - March* *20:* Proactive students will reach out to you and ask
questions about your ideas list and receive feedback from your org so they
can start crafting their project proposals.
*March 20 - April 3 16:00 UTC*: Students will submit their draft proposals
through the program website for you to give solid feedback on.
*April 3 - 16:* Review all submitted student proposals with your org and
consider how many you want to select and how many you can handle. Decide on
the minimum/maximum number of student slots to request.
*April 17, 16:00 UTC*: Deadline to sub

Re: [Pharo-users] Arduino

2017-03-01 Thread Ben Coman
On Thu, Mar 2, 2017 at 5:31 AM, olivier auverlot
 wrote:
>
> Hi,
>
> Since some weeks, I do some experimentations with an Arduino board. I search 
> now to use my Arduino with Pharo. I have found some informations on the web 
> but nothing seems usable or up to date for the latest versions of Pharo.
>
> Someone have worked on this domain ? I'm interested by a firmata client 
> protocol or why not a solution to program an Arduino directly from Pharo.
>

Hi Olivier, You probably have a few of these references, but since you
don't mention which you have,
I'll list what I found from a quick sweep...

I read [1] that the Firmata protocol "uses the MIDI message format."

Pharo seems to have removed the MIDI related code after it forked from Squeak.
Squeak still has it. Download 5.1 from http://squeak.org/downloads/
Then go World Menu > Open > Method finder
Type midi 
and browse the code. Pharo and Squeak share a VM, so this should be
compatible with Pharo.

You'll see a few of the primitives located in classes SimpleMIDIPort
and MidiPrimTester
in the System-SerialPort package.

Note, some of the primitives that show no references/implementors in
the right-side pane,
need to be right-clicked to choose Senders to see the implementation,
since the method name is different to the pragma name.

Then there is http://www.squeaksource.com/Arduino.html
which may or may not need to MIDI code from Squeak.
This code is circa 2013 so the (optional) FFI parts may need updating
for Pharo UFFI.

There is http://smalltalkhub.com/#!/~juanmanuelvallejos/gcodewithfirmata
"It is an implementation of the protocol firmata in smalltalk. And
also it contains a parsing to G code for cnc machines."

There is http://smalltalkhub.com/#!/~Citilab/Snap4Arduino/
circa 2014.

There is http://smalltalkhub.com/#!/~JohanBriglia/ArduinoIO
circa 2016, but probably not what you want being a "Simple program to
connect easily pharo and the arduino via serial port Uses a Python
program and terminal commands via CommandShell"

There is http://smalltalkhub.com/#!/~JLaval/Arduino
circa 2016, and the commits show PhratchArduino-janniklaval.9
Phratch is available here http://www.phratch.com/
Its based on Pharo 4, but seems the most current.

Reading here...
https://groups.google.com/forum/#!topic/phratch/C6IYZ-TDt50
perhaps the most efficient path would be buying Jannik an Arduino to test on
(if indeed Phratch uses the firmata protocol as you require).


cheers -ben








[1] https://github.com/firmata/protocol/blob/master/protocol.md



Re: [Pharo-users] [ANN] Regex Tester Tool for Pharo

2017-03-01 Thread monty
Very nice!

> Sent: Wednesday, March 01, 2017 at 3:32 PM
> From: "Torsten Bergmann" 
> To: "Pharo Development List" , "Any question about 
> pharo is welcome" 
> Subject: [Pharo-users] [ANN] Regex Tester Tool for Pharo
>is a good idea
> Hi,
> 
> I wrote a little tool to test regular expressions and verify that
> given samples match it. It also helps to divide an expression into
> subexpressions to retrieve parts of a matched string.
> 
> Screenshot is attached. Code, load instructions and full tutorial 
> on how to use it is on https://github.com/astares/Pharo-Regex-Tools
> 
> Hope it is useful for others too. Have fun!
> 
> Bye
> T.



Re: [Pharo-users] [ANN] XML Metadata Interchange (XMI) for Pharo

2017-03-01 Thread monty
Is this based on Peter's work? Also:

"anXMLElement name xmlPrefixBeforeLocalName" -> "anXMLElement prefix"
"anXMLElement elements collect:" -> "anXMLElement elementsCollect:"

"^self fromXMLElement: (XMLDOMParser parse: aStringOrStream usingNamespaces: 
false) root"...why are you disabling namespaces? If it's for performance, also 
look at #optimizeForLargeDocuments. In fact it would good to browse the entire 
"configuring" category of XMLDOMParser and its superclass to see what you need.

> Sent: Wednesday, March 01, 2017 at 4:26 PM
> From: "Torsten Bergmann" 
> To: "Pharo Development List" , "Any question about 
> pharo is welcome" 
> Subject: [Pharo-users] [ANN] XML Metadata Interchange (XMI) for Pharo
>
> Hi,
> 
> if you work with UML, modeling tools or model data exchange often you might 
> know XMI - 
> the XML Metadata Interchange format. 
> 
> I wrote a little package that makes it easier to work and browse data based 
> on this 
> format within Pharo.
> 
> For instance you can open an XMI object either from a given stream 
> or URL:
> 
>   (XMIFile fromURL: 'http://www.omg.org/spec/UML/20131001/UML.xmi') inspect
> 
> You can also open a file
> 
>   XMIFile importFile
> 
> Code is available on https://github.com/astares/Pharo-XMI
> 
> The package includes a small GT extension allowing you to walk and dive 
> through the XMI
> structure (see attached screenshot) and as the XMI nodes are unified it is 
> easy to 
> code some code generators or transformers in Pharo afterwards.
> 
> For instance I used this package for a simple Pharo code generator based on 
> Eclipse EMF models/diagrams.
> 
> Within the code you will find some examples to browse through prominent XMI 
> models like:
> 
>  - UML Spec
>=> (XMIFile fromURL: 'http://www.omg.org/spec/UML/20131001/UML.xmi') 
> inspect
> 
>  - VISUAL PARADIGM
>=> (XMIFile fromURL: 
> 'https://raw.githubusercontent.com/staruml/XMI/master/unittest-files/VP_XMI21.xmi')
>  inspect
>  
>  - ENTERPRISE ARCHITECT
>=> (XMIFile fromURL: 
> 'https://raw.githubusercontent.com/staruml/XMI/master/unittest-files/EA_XMI21.xmi')
>  inspect
>  
>  - ARCHIMATE
>=> (XMIFile fromURL: 'https://www.reflektis.com/repos/archimate-3.0.xmi) 
> inspect
> 
> Once the inspector opens you have to select the "rootNode" and then the 
> "Hierarchy" tab.
> 
> In Pharo 6 you can load "XMI" right from catalog. Hope the package is useful 
> for others too.
> 
> Bye
> T.



Re: [Pharo-users] Arduino

2017-03-01 Thread olivier auverlot
For the moment, I just want to do a catalog of the existing solutions. The
next step will be to evaluate them.

My main target is a Firmata protocol implementation usable with Pharo 5 or
6.

Le 1 mars 2017 10:33 PM, "stepharong"  a écrit :

> Olivier
>
> What are the topcis you investigated?
>
> did you contact the authors?
>
> STef
>
> Hi,
>
> Since some weeks, I do some experimentations with an Arduino board. I
> search now to use my Arduino with Pharo. I have found some informations on
> the web but nothing seems usable or up to date for the latest versions of
> Pharo.
>
> Someone have worked on this domain ? I'm interested by a firmata client
> protocol or why not a solution to program an Arduino directly from Pharo.
>
> Best regards
> Olivier ;-)
>
>
>
>
> --
> Using Opera's mail client: http://www.opera.com/mail/
>


Re: [Pharo-users] [Pharo-dev] [ANN] Regex Tester Tool for Pharo

2017-03-01 Thread stepharong

Torsten

Olivier in our team that is perl freaks from time to time, told me that  
this is

sad that Pharo regexp are not compatible with the "standard" = rePlugin.

And I think that his remark makes sense. I was wondering if we should not  
ressurect
the RePlugin to make sure that users can use perlish regexp and do not  
feel that our world is strange.


Do you have experience with re in the past?
What do you think about this proposal?

Stef


Hi,

I wrote a little tool to test regular expressions and verify that
given samples match it. It also helps to divide an expression into
subexpressions to retrieve parts of a matched string.

Screenshot is attached. Code, load instructions and full tutorial
on how to use it is on https://github.com/astares/Pharo-Regex-Tools

Hope it is useful for others too. Have fun!

Bye
T.



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



Re: [Pharo-users] Arduino

2017-03-01 Thread stepharong

Olivier

What are the topcis you investigated?

did you contact the authors?

STef


Hi,

Since some weeks, I do some experimentations with an Arduino board. I  
search now to use my Arduino with Pharo. I have found some informations  
on the web but nothing >seems usable or up to date for the latest  
versions of Pharo.
Someone have worked on this domain ? I'm interested by a firmata client  
protocol or why not a solution to program an Arduino directly from Pharo.


Best regards
Olivier ;-)




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

[Pharo-users] Arduino

2017-03-01 Thread olivier auverlot
Hi,

Since some weeks, I do some experimentations with an Arduino board. I
search now to use my Arduino with Pharo. I have found some informations on
the web but nothing seems usable or up to date for the latest versions of
Pharo.

Someone have worked on this domain ? I'm interested by a firmata client
protocol or why not a solution to program an Arduino directly from Pharo.

Best regards
Olivier ;-)


Re: [Pharo-users] [Pharo-dev] [ANN] XML Metadata Interchange (XMI) for Pharo

2017-03-01 Thread stepharong

Hi torsten

do you know the work of peter to generate classes out of XMI and populate  
models?

Because it complements your approach.

stef


On Wed, 01 Mar 2017 22:26:05 +0100, Torsten Bergmann   
wrote:



Hi,
if you work with UML, modeling tools or model data exchange often you  
might know XMI -

the XML Metadata Interchange format.
I wrote a little package that makes it easier to work and browse data  
based on this

format within Pharo.
For instance you can open an XMI object either from a given stream
or URL:
 (XMIFile fromURL: 'http://www.omg.org/spec/UML/20131001/UML.xmi')  
inspect

You can also open a file
 XMIFile importFile
Code is available on https://github.com/astares/Pharo-XMI
The package includes a small GT extension allowing you to walk and dive  
through the XMI
structure (see attached screenshot) and as the XMI nodes are unified it  
is easy to

code some code generators or transformers in Pharo afterwards.
For instance I used this package for a simple Pharo code generator based  
on Eclipse EMF models/diagrams.
Within the code you will find some examples to browse through prominent  
XMI models like:

- UML Spec
   => (XMIFile fromURL: 'http://www.omg.org/spec/UML/20131001/UML.xmi')  
inspect

- VISUAL PARADIGM
   => (XMIFile fromURL:  
'https://raw.githubusercontent.com/staruml/XMI/master/unittest-files/VP_XMI21.xmi')  
inspect

- ENTERPRISE ARCHITECT
   => (XMIFile fromURL:  
'https://raw.githubusercontent.com/staruml/XMI/master/unittest-files/EA_XMI21.xmi')  
inspect

- ARCHIMATE
   => (XMIFile fromURL:  
'https://www.reflektis.com/repos/archimate-3.0.xmi) inspect
Once the inspector opens you have to select the "rootNode" and then the  
"Hierarchy" tab.
In Pharo 6 you can load "XMI" right from catalog. Hope the package is  
useful for others too.

Bye
T.



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



Re: [Pharo-users] Seaside : including a static stylesheet.

2017-03-01 Thread stepharong

Hi dominique


did you look on the seaside book, because your apache configuration should  
serve the static page and the stylesheet is one.


Stef
On Wed, 01 Mar 2017 22:13:12 +0100, Dominique Dartois   
wrote:




Thank you Sven.

I have tried successfully the FileLibrary but I want to be able to  
modify the stylesheet without using Pharo which will be running on a  
remote server. Using static documents seemed >the solution to me.





On 28 Feb 2017, at 18:53, Dominique Dartois  wrote:
In the Seaside book, chapter 17.2 I read I can include a stylesheet  
this way :

updateRoot: anHtmlRoot
super updateRoot: anHtmlRoot.
anHtmlRoot stylesheet url: 'http://seaside.st/styles/main.css'
On my development machine (macOS) I use http://localhost:8080/myApp as  
the server address and I don?t know the root directory of the Seaside  
integrated web server.

Can anyone help me to find this directory?


The easiest way is to use a Seaside FileLibrary subclass to serve your  
static CSS file. This is described in that same chapter 17.



Thanks.





---

Dominique Dartois




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

[Pharo-users] [ANN] XML Metadata Interchange (XMI) for Pharo

2017-03-01 Thread Torsten Bergmann
Hi,

if you work with UML, modeling tools or model data exchange often you might 
know XMI - 
the XML Metadata Interchange format. 

I wrote a little package that makes it easier to work and browse data based on 
this 
format within Pharo.

For instance you can open an XMI object either from a given stream 
or URL:

  (XMIFile fromURL: 'http://www.omg.org/spec/UML/20131001/UML.xmi') inspect

You can also open a file

  XMIFile importFile

Code is available on https://github.com/astares/Pharo-XMI

The package includes a small GT extension allowing you to walk and dive through 
the XMI
structure (see attached screenshot) and as the XMI nodes are unified it is easy 
to 
code some code generators or transformers in Pharo afterwards.

For instance I used this package for a simple Pharo code generator based on 
Eclipse EMF models/diagrams.

Within the code you will find some examples to browse through prominent XMI 
models like:

 - UML Spec
   => (XMIFile fromURL: 'http://www.omg.org/spec/UML/20131001/UML.xmi') inspect

 - VISUAL PARADIGM
   => (XMIFile fromURL: 
'https://raw.githubusercontent.com/staruml/XMI/master/unittest-files/VP_XMI21.xmi')
 inspect
 
 - ENTERPRISE ARCHITECT
   => (XMIFile fromURL: 
'https://raw.githubusercontent.com/staruml/XMI/master/unittest-files/EA_XMI21.xmi')
 inspect
 
 - ARCHIMATE
   => (XMIFile fromURL: 'https://www.reflektis.com/repos/archimate-3.0.xmi) 
inspect

Once the inspector opens you have to select the "rootNode" and then the 
"Hierarchy" tab.

In Pharo 6 you can load "XMI" right from catalog. Hope the package is useful 
for others too.

Bye
T.

Re: [Pharo-users] Seaside : including a static stylesheet.

2017-03-01 Thread Dominique Dartois
Thank you Sven.

I have tried successfully the FileLibrary but I want to be able to modify the 
stylesheet without using Pharo which will be running on a remote server. Using 
static documents seemed the solution to me.


> On 28 Feb 2017, at 18:53, Dominique Dartois  wrote:
>
> In the Seaside book, chapter 17.2 I read I can include a stylesheet this way :
>
> updateRoot: anHtmlRoot
> super updateRoot: anHtmlRoot.
> anHtmlRoot stylesheet url: 'http://seaside.st/styles/main.css'
>
> On my development machine (macOS) I use http://localhost:8080/myApp as the 
> server address and I don?t know the root directory of the Seaside integrated 
> web server.
>
> Can anyone help me to find this directory?

The easiest way is to use a Seaside FileLibrary subclass to serve your static 
CSS file. This is described in that same chapter 17.

> Thanks.



---

Dominique Dartois


Re: [Pharo-users] Voyage and Association

2017-03-01 Thread Hilaire
It will, thanks

Le 01/03/2017 à 20:42, Esteban Lorenzano a écrit :
> hope this helps, 

-- 
Dr. Geo
http://drgeo.eu




Re: [Pharo-users] Voyage and Association

2017-03-01 Thread Esteban Lorenzano
Hi Hilaire, 

the thing is mongo is JSON based and in JSON dictionaries are key-string, 
value-anything so we cannot persist them “as is”. 
To do that I use a trick which is convert them to collections before 
persisting, using a helper class that comes with Voyage-Mongo, VOMongoKeyPair. 

For example, you could describe your dictionary attribute as this: 

mongoValue 


^VOToManyDescription new
attributeName: 'value';
convertNullTo: [ Dictionary new ];
accessor: (MAPluggableAccessor 
read: [ :anObject | 
anObject value associations 
collect: [ :each | VOMongoKeyPair 
fromAssociation: each ] ]
write: [ :anObject :value | (value collect: 
#asAssociation) asDictionary ]);
yourself

hope this helps, 

cheers!
Esteban

> On 1 Mar 2017, at 19:11, Hilaire  wrote:
> 
> Hi,
> 
> I am having trouble to persist in a Voyage repository Association formed
> with a key being a non string object (let's say a Month) and value a non
> basic object, instance of a model object.
> 
> So far, I have an error bsonTypeCode not understood on my value object.
> I could implement bsonTypeCode, but I suspect I will have trouble too
> with the key, as I see from Voyage code it is persisted as a String.
> 
> An idea how to overcome this (without modifying my model)?
> 
> Fuel was persisting it fine.
> 
> Thanks
> 
> Hilaire
> 
> -- 
> Dr. Geo
> http://drgeo.eu
> 
> 




Re: [Pharo-users] spotting methods with TODO, FIXME, etc. comments?

2017-03-01 Thread p...@highoctane.be
One usually puts things like:

self flag: #TODO. "Need to fix this hack"

self flag: #FIXME. "Quick kludgy temp solution"

Some write:

self flag: 'Must add such or such feature'.

Then start Spotter and search for flag: senders with

flag: #se

There is already quite a list in the image.

Phil

On Wed, Mar 1, 2017 at 7:04 PM, Raffaello Giulietti <
raffaello.giulie...@lifeware.ch> wrote:

> Hi Hilaire,
>
> great!
>
> Is there a standard or conventional set of pragmas for such kind of
> annotations? I mean, pragmas are very flexible but I would like to adhere
> to well-established conventions, if possible.
>
>
>
> On 2017-03-01 18:59, Hilaire wrote:
>
>> Hi Raffaello,
>>
>> You can annotate your methods with a pragma, for example
>> , then from the Finder tool (WorldMenu>Tools>Finder),
>> you search for pragma:
>>
>> In the left text field, input workInProgress, then in the drop down list
>> at the right, select Pragmas.
>>
>> Hilaire
>>
>> Le 01/03/2017 à 18:53, Raffaello Giulietti a écrit :
>>
>>> Hi community,
>>>
>>> many IDEs for other language usually offer a way to annotate methods
>>> with special comments like "TODO ...", "FIXME ...". Such methods can
>>> then be later retrieved easily in task lists and selected by simple
>>> clicks.
>>>
>>> Is there something similar in Pharo?
>>>
>>> Thanks
>>>
>>>
>>
>
>
>


[Pharo-users] Google Summer of Code 2017: Call for students for Pharo Consortium

2017-03-01 Thread Serge Stinckwich
*** Please forward this message to students that might be interested ***

Heartiest Congratulations !
Pharo Consortium has been selected as a mentor organisation for Google
Summer of Code 2017.

Google Summer of Code is a global program focused on introducing
students to open source software development.
Students work on a 3 month programming project with an open source
organisation during their break from university.
Read more at https://summerofcode.withgoogle.com/

Pharo is a pure object-oriented programming language and a powerful
environment, focused on simplicity and immediate feedback (think IDE
and OS rolled into one).

Everything in Pharo is an object. The entire syntax of Pharo fits on a
postcard coding can be done directly in the debugger. Pharo has super
cool tools that empower you and make you super efficient. Pharo's goal
is to deliver a clean, innovative, free and open-source immersive
environment. By providing a stable and small core system, excellent
developing tools, and maintained releases, Pharo is an attractive
platform to build and deploy mission critical applications. Pharo
fosters a healthy ecosystem of both private and commercial
contributors who advance and maintain the core system and its external
packages.

More information about Pharo is available here: http://www.pharo.org/

We invite all the prospective eligible students to code their summer
away with Pharo Consortium.

Student Responsibilities
...to your Mentor
- Submit quality work
- Regularly communicate work completed, what you intend to do next, and blockers
- Ask for help when something is preventing you from achieving a goal
- Give indication that you are alive and working daily (GSoC)
- Re-evaluate work scope when significantly ahead of expectations (GSoC)
- Communicate with your mentor AND the broader community
- Inform when work capacity will be reduced, as early as possible
(e.g., family, health, other work) (GSoC)
- Listen and respond to feedback

...to the Org Admin

Let them know when there are

- Interaction issues with any mentor or community member
- Significant disagreements involving your work or changes to your work plan

Read more about responsibilities here:
https://developers.google.com/open-source/gsoc/help/responsibilities

Hence, we invite enthusiastic student developers contributors to work
with Pharo Consortium for GSoC 2017.

1. A first list of projects are available here :
http://gsoc.pharo.org/ but more can be found by interacting with
mentors from the Pharo community.

2. Join dedicated channels, #gsoc-students for general interactions
with students on Pharo slack. In order to get an invitation for
pharoproject.slack.com visit the URL here:
http://slackinvites.pharo.org/
Discuss with mentors about the complexity and skills required for the
different projects.

3. Please help fix bugs, open relevant issues, suggest changes,
additional features, help build a roadmap, and interact with mentors
on mailing list and/or slack to get a better insight into projects.
Better the contributions, Better are the chances of selection.

Before applying:
* Knowledge about OOP
* Basic idea about Pharo & Smalltalk syntax and ongoing projects
* Past experience with Pharo & Smalltalk
* Interaction with organisation
You can start with the Pharo MOOC : http://files.pharo.org/mooc/

Guidelines for Proposal:
* Introduction: Clearly defined problem. Current state of things.
Issues you wish to solve and why. Conclude with solution.
* Project goals: Format it like a list. Propose a clear list of
deliverables, explaining exactly what you promise to do and what you
do not plan to do. “Future developments” can be mentioned. It is
better to promise less and deliver more than to promise a lot and then
fall short.
* Implementation: Longer and more detailed. Provide technical details,
show that you understand the technology and illustrate key technical
elements of your proposed solution.
* Timeline: Make it weekly. Set goals for each week. Be upfront about
other commitments, including exams, classes, travel, internships,
jobs, etc.
* Benefits to Community: Make your case a benefit to the organization.
* Related Work: Research and write how the project fits into the
target organization. Explain related works, similarities &
differences.
* About me: Provide full contact information, email addresses,
websites, IRC nick, postal address and telephone. Write a few
sentences about yourself, previous experiences and why you think
you’re the best for this job.

Submit your proposal early. Keep it short. Include necessary
information. Get it reviewed in the mailing list or Slack channel
before submitting it.

The deadline for submitting your proposal is March 20th to April 3rd
on https://summerofcode.withgoogle.com/

Looking forward to great talent joining our organisation this summer.

Warm Regards
Pharo Organisation Admins
(Alexandre Bergel, Jigyasa Grover, Serge Stinckwich & Yuriy Tymchuk)



Re: [Pharo-users] spotting methods with TODO, FIXME, etc. comments?

2017-03-01 Thread Norbert Hartl
Yes, #flag: is the way to go. I often use something like

self flag: #needsWork

If you use symbols then you can just mark the needsWork and search for senders 
(cmd-n on Mac). That gives you all of the locations in the image where it is 
used.

Norbert

> Am 01.03.2017 um 19:06 schrieb Peter Uhnak :
> 
> On Wed, Mar 01, 2017 at 06:53:16PM +0100, Raffaello Giulietti wrote:
>> Hi community,
>> 
>> many IDEs for other language usually offer a way to annotate methods
>> with special comments like "TODO ...", "FIXME ...". Such methods can
>> then be later retrieved easily in task lists and selected by simple
>> clicks.
>> 
>> Is there something similar in Pharo?
>> 
>> Thanks
>> 
> 
> The most common is `self flag: 'text'`. This will give you an icon in 
> Nautilus browser.
> 
> But keep in mind that IDEs impose special syntax because they do not provide 
> you with option to retrieve it yourself.
> In Pharo there is no such restriction, so you can do whatever you find most 
> practical to you and then just collect the places yourself.
> 
> E.g. you can trivally retrieve all methods that have "todo" anywhere in 
> method comment:
> 
> ('My-Package' asPackage classes flatCollect: #methods)
>   select: [ :each | each comment isNotNil and: [ each comment 
> includesSubstring: 'todo' ] ]
> 
> Peter
> 




[Pharo-users] Voyage and Association

2017-03-01 Thread Hilaire
Hi,

I am having trouble to persist in a Voyage repository Association formed
with a key being a non string object (let's say a Month) and value a non
basic object, instance of a model object.

So far, I have an error bsonTypeCode not understood on my value object.
I could implement bsonTypeCode, but I suspect I will have trouble too
with the key, as I see from Voyage code it is persisted as a String.

An idea how to overcome this (without modifying my model)?

Fuel was persisting it fine.

Thanks

Hilaire

-- 
Dr. Geo
http://drgeo.eu




Re: [Pharo-users] spotting methods with TODO, FIXME, etc. comments?

2017-03-01 Thread Peter Uhnak
On Wed, Mar 01, 2017 at 06:53:16PM +0100, Raffaello Giulietti wrote:
> Hi community,
> 
> many IDEs for other language usually offer a way to annotate methods
> with special comments like "TODO ...", "FIXME ...". Such methods can
> then be later retrieved easily in task lists and selected by simple
> clicks.
> 
> Is there something similar in Pharo?
> 
> Thanks
> 

The most common is `self flag: 'text'`. This will give you an icon in Nautilus 
browser.

But keep in mind that IDEs impose special syntax because they do not provide 
you with option to retrieve it yourself.
In Pharo there is no such restriction, so you can do whatever you find most 
practical to you and then just collect the places yourself.

E.g. you can trivally retrieve all methods that have "todo" anywhere in method 
comment:

('My-Package' asPackage classes flatCollect: #methods)
select: [ :each | each comment isNotNil and: [ each comment 
includesSubstring: 'todo' ] ]

Peter



Re: [Pharo-users] spotting methods with TODO, FIXME, etc. comments?

2017-03-01 Thread Raffaello Giulietti

Hi Hilaire,

great!

Is there a standard or conventional set of pragmas for such kind of 
annotations? I mean, pragmas are very flexible but I would like to 
adhere to well-established conventions, if possible.




On 2017-03-01 18:59, Hilaire wrote:

Hi Raffaello,

You can annotate your methods with a pragma, for example
, then from the Finder tool (WorldMenu>Tools>Finder),
you search for pragma:

In the left text field, input workInProgress, then in the drop down list
at the right, select Pragmas.

Hilaire

Le 01/03/2017 à 18:53, Raffaello Giulietti a écrit :

Hi community,

many IDEs for other language usually offer a way to annotate methods
with special comments like "TODO ...", "FIXME ...". Such methods can
then be later retrieved easily in task lists and selected by simple clicks.

Is there something similar in Pharo?

Thanks








Re: [Pharo-users] spotting methods with TODO, FIXME, etc. comments?

2017-03-01 Thread Hilaire
Hi Raffaello,

You can annotate your methods with a pragma, for example
, then from the Finder tool (WorldMenu>Tools>Finder),
you search for pragma:

In the left text field, input workInProgress, then in the drop down list
at the right, select Pragmas.

Hilaire

Le 01/03/2017 à 18:53, Raffaello Giulietti a écrit :
> Hi community,
> 
> many IDEs for other language usually offer a way to annotate methods
> with special comments like "TODO ...", "FIXME ...". Such methods can
> then be later retrieved easily in task lists and selected by simple clicks.
> 
> Is there something similar in Pharo?
> 
> Thanks
> 

-- 
Dr. Geo
http://drgeo.eu




[Pharo-users] spotting methods with TODO, FIXME, etc. comments?

2017-03-01 Thread Raffaello Giulietti

Hi community,

many IDEs for other language usually offer a way to annotate methods 
with special comments like "TODO ...", "FIXME ...". Such methods can 
then be later retrieved easily in task lists and selected by simple clicks.


Is there something similar in Pharo?

Thanks



[Pharo-users] Pharo Association

2017-03-01 Thread Jimmie Houchin

Hello, I am looking into the Pharo Association.

I looked at the Contribute page, http://pharo.org/contribute  and saw 
the links to BountySource.


One of them had $9 monthly being a Gold Membership Pharo Association. I 
do not see this as an option if you do Join on the Pharo Association 
Join Us page, https://association.pharo.org/join-us .


I do not know which option is most favorable for or least expensive to 
the Pharo Association.


I also do not see what payment methods are available on the Pharo 
Association pages. BountySource I know my options.


From the BountySource page I do not know how this connects me to the 
PharoAssociation.


If all things are equal, I would assume do BountySource, I can start a 
monthly cash flow immediately.


It would also be nice to know if doing BountySource that is always an 
option to levels other than the set levels but you only get the benefits 
of the highest level you contribute at.


For example if I wanted to do $15 a month instead of $9, or even a 
simply $10 instead of $9. or 


I think this could be by instead of saying $9 a month, express it as 
minimum of $9 a month. Or what is appropriate for each level.


If BountySource is more expensive on the Association's end. I would 
prefer to do whatever payment options are on the Association site. But 
it would be nice to know what those are before I begin to complete the 
forms.


Thanks for any information on the process so that I can begin to 
contribute to Pharo.



Jimmie Houchin






Re: [Pharo-users] Problems with PipeableOSProcess

2017-03-01 Thread Silas Berger
Hi Dave

 

Okay, great, thanks for your pointers. I found the error stream. The error says 

 

/bin/sh: 
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/parsecit/bin/citeExtract.pl
 -m extract_all 
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDFsFromList/Ardi97aSchemeTeaching.pdf.txt:
 No such file or directory

 

I’ll have to investigate on why this happens for one .txt file, but not for the 
other one (Ache00aScriptingCoordStyles.pdf.txt) in the same folder, even though 
I can’t see any notable differences (like spaces, quotes, …) between the two 
filenames…

 

Thanks again for your help!

 

Silas

 

Hi Silas,

 

I am travelling and cannot help much right now, but to answer one of your

questions - yes, you can inspect errors in a PipeableOSProcess. It has an

"error pipeline stream" that will contain any output from the stderr

stream of the process.

 

It also has a process proxy for the actual external OS process, which will

show exit status for the process. In your case that probably will not help

much, because you will just see exit status for the /bin/shell that you

ran, not for the process that ran your perl script. Nevertheless it may be

interesting to check it.

 

One possible source of problems in a case like this is command line

parsing. The command line that you pass from Pharo may get parsed

differently than a normal bash terminal shell, especially with respect to

quoting strings. Also, you refer to an empty string, which certainly

sounds like it is related to the problem, although I cannot say why.

 

Dave

 

 

> Hi everyone,

> 

> 

> 

> I'm currently experiencing problems with PipeableOSProcess. I'm using a

> command to run a third party tool, which reads a txt file and returns an

> XML

> string. In my collection, this works fine for about 75 out of 100 txt

> files,

> but fails on the remaining 25 ones. However, the tool itself doesn't fail.

> It works fine, if I issue the commands directly from a Terminal.

> 

> 

> 

> Here's an example of a command string that works:

> 

> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/

> parsecit/bin/citeExtract.pl -m extract_all

> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDF

> sFromList/Ache00aScriptingCoordStyles.pdf.txt

> 

> 

> 

> And here's an example of one that doesn't work.

> 

> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/

> parsecit/bin/citeExtract.pl -m extract_all

> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDF

> sFromList/Ardi97aSchemeTeaching.pdf.txt

> 

> 

> 

> This is how I apply these commands through PipeableOSProcess:

> 

> 

> 

> xml := (PipeableOSProcess command: cmdString) output.

> 

> 

> 

> For the first command, xml is a large XML string, for the second command,

> it's just an empty string. As I've mentioned above, both commands work

> just

> fine in a Terminal. They both produce a correct XML string.

> 

> 

> 

> Does anyone have an idea why this could be the case? Is there a way to

> access errors in the PipeableOSProcess, if there are any? Is there a

> better

> way to issue terminal commands from Pharo?

> 

> 

> 

> Thanks for your help!

> 

> 

> 

> Cheers,

> 

> Silas

> 

> 

 



Re: [Pharo-users] Problems with PipeableOSProcess

2017-03-01 Thread David T. Lewis
Hi Silas,

I am travelling and cannot help much right now, but to answer one of your
questions - yes, you can inspect errors in a PipeableOSProcess. It has an
"error pipeline stream" that will contain any output from the stderr
stream of the process.

It also has a process proxy for the actual external OS process, which will
show exit status for the process. In your case that probably will not help
much, because you will just see exit status for the /bin/shell that you
ran, not for the process that ran your perl script. Nevertheless it may be
interesting to check it.

One possible source of problems in a case like this is command line
parsing. The command line that you pass from Pharo may get parsed
differently than a normal bash terminal shell, especially with respect to
quoting strings. Also, you refer to an empty string, which certainly
sounds like it is related to the problem, although I cannot say why.

Dave


> Hi everyone,
>
>
>
> I'm currently experiencing problems with PipeableOSProcess. I'm using a
> command to run a third party tool, which reads a txt file and returns an
> XML
> string. In my collection, this works fine for about 75 out of 100 txt
> files,
> but fails on the remaining 25 ones. However, the tool itself doesn't fail.
> It works fine, if I issue the commands directly from a Terminal.
>
>
>
> Here's an example of a command string that works:
>
> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/
> parsecit/bin/citeExtract.pl -m extract_all
> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDF
> sFromList/Ache00aScriptingCoordStyles.pdf.txt
>
>
>
> And here's an example of one that doesn't work.
>
> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/
> parsecit/bin/citeExtract.pl -m extract_all
> /Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDF
> sFromList/Ardi97aSchemeTeaching.pdf.txt
>
>
>
> This is how I apply these commands through PipeableOSProcess:
>
>
>
> xml := (PipeableOSProcess command: cmdString) output.
>
>
>
> For the first command, xml is a large XML string, for the second command,
> it's just an empty string. As I've mentioned above, both commands work
> just
> fine in a Terminal. They both produce a correct XML string.
>
>
>
> Does anyone have an idea why this could be the case? Is there a way to
> access errors in the PipeableOSProcess, if there are any? Is there a
> better
> way to issue terminal commands from Pharo?
>
>
>
> Thanks for your help!
>
>
>
> Cheers,
>
> Silas
>
>





[Pharo-users] Voyage and Scaled decimal

2017-03-01 Thread Hilaire
Hi,

It looks like Voyage, or Mongo,  had a hard time with scaled decimal.
I have an "Integer too large" error.

Error: Integer too large:
1463035760746279168444519882918332074180871992424069768653697095674502345263300751487851490491702061753873077385550224188721036945253521387

May be at some time I will use float for efficiency, but in the mean
time I would like to postpone optimisation and persist exact numeric
value when possible.

Hilaire

-- 
Dr. Geo
http://drgeo.eu




Re: [Pharo-users] Crash in Athens

2017-03-01 Thread Igor Stasenko
On 1 March 2017 at 05:42, Alexander Samoylovich 
wrote:

> Thanks everybody for the explanation.
>
> I tried to apply Igor's suggestion. I allocate an offscreen surface 1 row
> larger than needed
> and when converting discard one row.
>
> The code looks more stable now. The test was up for about 30 minutes
> before crashing instead of 1 minute before the fix.
> Is it the right code change or just a coincidence?
>
>
> AthensCairoSurface>>asForm
>
>
> "create a form and copy an image data there"
>
> self checkSession.
>
> self flush.
>
> ^ Form extent: (self width@self height) - (0@1) depth: 32 bits: id
>
>
no, it isn't . This is how it supposed to be there.
But the problem is when you using surfaces for bitmaps in Cairo itself,
you're screwed since AthensCairoSurface purposedly makes it 1 row taller,
while for texture you want it to contain exact height, else you'll
obviously have artifacts. :(

So, the point is: if you creating a surface that will be used by bitblt
(asForm), then you should allocate 1 extra row,
else you shouldn't.. And there's no workaround to match such behavior in
single class,
since it doesn't knows what it will be used for :(


>
> On Mon, Feb 27, 2017 at 2:39 PM, Stephane Ducasse  > wrote:
>
>> Tx igor I added
>>
>> https://pharo.fogbugz.com/f/cases/19764/Improve-comment-of-
>> AthensCairoSurfaceForm
>>
>> On Mon, Feb 27, 2017 at 7:35 PM, Igor Stasenko 
>> wrote:
>>
>>> and i was dealing with it by adding 1 extra line to cairo surface,
>>> but reporting 1 less to Form. Like so, bitblt still reads past the
>>> allowed size, but it is safe, because there are unused bit(s).
>>>
>>> On 27 February 2017 at 20:31, Igor Stasenko  wrote:
>>>


 On 27 February 2017 at 12:29, Esteban Lorenzano 
 wrote:

> Hi,
>
> the problem wit Ronie’s fix is that (as he says) you are copying
> another time the surface, before passing it to the VM (who makes
> yet-another-copy) so this is not optimal… and you can see it when running
> the Tiger demo: there are a lot of pauses.
> So I would prefer the other approach he suggests:
>
> Form subclass: #AthensCairoSurfaceForm
> instanceVariableNames: 'surface'
> classVariableNames: ''
> package: 'Athens-Cairo'
>
> AthensCairoSurfaceForm>>surface
> ^ surface
>
> AthensCairoSurfaceForm>>surface: anObject
> surface := anObject
>
> AthensCairoSurface>>asForm
> "create a form and copy an image data there"
> self checkSession.
> self flush.
> ^ (AthensCairoSurfaceForm extent: (self width@self height)
> depth: 32 bits: id)
> surface: self;
> yourself
>
> that seems to work. Can you try and see?
>
>
 Btw, remember the culprit there , that you must have extra word in
 trailing buffer space,
 this is because bit-blt using read-ahead . Which is OK for objects
 located in object memory,
 since there are always something past the last object (unallocated
 space),
 but not so ok for buffers allocated by malloc (such as cairo surface
 bitmap), and so,
 if you read even a single byte past it, you get protection fault.


> Esteban
>
> > On 24 Feb 2017, at 15:47, stepharong  wrote:
> >
> > Hi alex
> >
> > can you try the fix of ronie and let us know if it makes roassal
> more stable?
> >
> > Stef
> >
> >> Dear Alexander,
> >>
> >> Sine the new FFI of Pharo, using Athens has become unreliable. This
> is a pity, but fixing this is not trivial at all (we have been trying for
> years).
> >>
> >> What exactly are you doing with Athens?
> >>
> >> Alexandre
> >>
> >>
> >>> On Feb 22, 2017, at 12:55 AM, Alexander Samoylovich <
> samoylov...@gmail.com> wrote:
> >>>
> >>> Hello
> >>>
> >>> I am writing graphic demo programs using Athens on Mac Sierra.
> >>> Time by time Pharo VM crashes. Programs not using Athens work
> reliably.
> >>> I believe the behavior is reproducible.
> >>> How should I report a bug?
> >>>
> >>> Alex
> >>
> >
> >
> > --
> > Using Opera's mail client: http://www.opera.com/mail/
> >
>
>
>


 --
 Best regards,
 Igor Stasenko.

>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko.
>>>
>>
>>
>


-- 
Best regards,
Igor Stasenko.


Re: [Pharo-users] Problems with PipeableOSProcess

2017-03-01 Thread Ben Coman
On Wed, Mar 1, 2017 at 8:47 PM, Silas Berger 
wrote:
>
> Hi everyone,
>
>
>
> I’m currently experiencing problems with PipeableOSProcess. I’m using a
command to run a third party tool, which reads a txt file and returns an
XML string. In my collection, this works fine for about 75 out of 100 txt
files, but fails on the remaining 25 ones. However, the tool itself doesn’t
fail. It works fine, if I issue the commands directly from a Terminal.
>
>
>
> Here’s an example of a command string that works:
>
>
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/parsecit/bin/citeExtract.pl
-m extract_all
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDFsFromList/Ache00aScriptingCoordStyles.pdf.txt
>
>
>
> And here’s an example of one that doesn’t work.
>
>
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/parsecit/bin/citeExtract.pl
-m extract_all
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDFsFromList/Ardi97aSchemeTeaching.pdf.txt
>
>
>
> This is how I apply these commands through PipeableOSProcess:
>
>
>
> xml := (PipeableOSProcess command: cmdString) output.
>
>
>
> For the first command, xml is a large XML string, for the second command,
it’s just an empty string.


Sorry I don't know the answers your seek - but just to clarify something.
How significant is that empty string return?

cheers -ben


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-03-01 Thread Thierry Goubier
2017-03-01 13:15 GMT+01:00 Pierce Ng :

> On Tue, Feb 28, 2017 at 04:23:12PM +0100, Thierry Goubier wrote:
> > 2017-02-28 1:19 GMT+01:00 Pierce Ng :
> > > I have written a simple integration of FileTree with Fossil to avoid
> the
> > Congratulations! This was one of my objectives with GitFileTree: open up
> > the Pharo infrastructure to other DVCS such as Fossil.
>
> And indeed runOSSubprocessFossilCommand is basically
> runOSSubprocessGitCommand,
> so thank you for GitFileTree.
>
> I've only implemented #basicStoreVersion: and it is simply this:
>
>   basicStoreVersion: aVersion
> super basicStoreVersion: aVersion
> (MCFossil new repoDir: self directory fullName)
>   addRemove;
>   commit: aVersion info message
>
> The last 3 lines is of course just the Smalltalk way of saying
> "fossil addremove; fossil commit ..."
>
> Currently that's all it does.
>

Great!


>
>
> > How does Fossil handles merging the FileTree format?
>
> Just to be sure I get your question, do you mean whether FossilFileTree
> sees
> the changes if I edit the .st files using vi, say?
>

No, it is a bit more in depth. FileTree, by default, will save some
metadata with the packages (method timestamps, package version history) and
this, with git, creates conflicts when merging (and cherry picking and a
few other operations). GitFileTree introduced a variant of the format,
called metadata-less, to avoid that and recover the metadata from the git
history itself (and convert it to Monticello).


>
> Right now, after committing in Monticello Browser, when I click 'refresh'
> or
> 'changes' everything shows up as new again. That can't be right. Which
> part of
> GitFileTree deals that?
>

The all new again is the default FileTree approach.

In GitFileTree, it recovers all the versions with git log and rebuild them
for the repository browser. It is done starting with
MCFileTreeRepository>>#gitVersionsForPackage:, then
MCFileTreeGitRepository>>#getVersionsForPackageDirectoryName:, tied with a
specific class to register the data for all entries
(GitFileTreePackageEntry -> other repositories uses only strings to track
all the versions). In there you also see the bridge which converts from git
log metatadata to Monticello metadata (MCVersion and ancestry).

Side question then: is Iceberg factoring out some of that out of
GitFileTree, since it supports/supported the libgit and GitFileTree
backends? Factoring out could also be of benefit to Fossil.

Regards,

Thierry


>
> Pierce
>
>
>


[Pharo-users] Problems with PipeableOSProcess

2017-03-01 Thread Silas Berger
Hi everyone,

 

I'm currently experiencing problems with PipeableOSProcess. I'm using a
command to run a third party tool, which reads a txt file and returns an XML
string. In my collection, this works fine for about 75 out of 100 txt files,
but fails on the remaining 25 ones. However, the tool itself doesn't fail.
It works fine, if I issue the commands directly from a Terminal.

 

Here's an example of a command string that works:

/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/
parsecit/bin/citeExtract.pl -m extract_all
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDF
sFromList/Ache00aScriptingCoordStyles.pdf.txt

 

And here's an example of one that doesn't work.

/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/tools/mac/
parsecit/bin/citeExtract.pl -m extract_all
/Users/silas/Documents/ExtendedEggShell/Moose6.0/ExtendedEggShell/examplePDF
sFromList/Ardi97aSchemeTeaching.pdf.txt

 

This is how I apply these commands through PipeableOSProcess:

 

xml := (PipeableOSProcess command: cmdString) output.

 

For the first command, xml is a large XML string, for the second command,
it's just an empty string. As I've mentioned above, both commands work just
fine in a Terminal. They both produce a correct XML string.

 

Does anyone have an idea why this could be the case? Is there a way to
access errors in the PipeableOSProcess, if there are any? Is there a better
way to issue terminal commands from Pharo?

 

Thanks for your help!

 

Cheers,

Silas



[Pharo-users] Google Summer of Code 2017: Call for mentors for Pharo Consortium

2017-03-01 Thread Serge Stinckwich
Heartiest Congratulations !

Pharo Consortium has been selected as a mentor organisation for Google
Summer of Code 2017.

Google Summer of Code is a global program focused on introducing
students to open source software development.

Students work on a 3 month programming project with an open source
organisation during their break from university. Read more at
https://summerofcode.withgoogle.com/

How the program works ?

Organizations:
Open source projects apply to be mentor organizations. Once accepted,
organizations discuss possible ideas with students and then decide on
the proposals they wish to mentor for the summer. They provide mentors
to help guide each student through the program.

Mentors:
Existing contributors with the organizations can choose to mentor a
student project. Mentors and students work together to determine
appropriate milestones and requirements for the summer. Mentor
interaction is a vital part of the program. A mentor may propose or
endorse a project  and each project has to be about Pharo or its
ecosystem (e.g., a library). Projects will be mentored by one or more
mentors and executed by one student.

Students:
Students contact the mentor organizations they want to work with and
write up a project proposal for the summer. If accepted, students
spend a month integrating with their organizations prior to the start
of coding. Students then have three months to code, meeting the
deadlines agreed upon with their mentors. Student coding period: May
30 - Aug 29 (Entire timeline can be viewed at:
https://summerofcode.withgoogle.com/how-it-works/#timeline). Student
stipend: https://developers.google.com/open-source/gsoc/help/student-stipends

We are currently at the phase of identifying mentors and projects. The
next phases will be about students selecting projects, and the
community selecting the projects with their associated mentors and
students which will be sponsored by the GSOC program.

How to register ?
Simply by replying to this email and joining the Slack channel... to
have more discussion about what project the mentor will take up, what
she/he wants at the end of the coding period and then we can invite
them to the GSoC org dashboard).

Hence, we invite regular & enthusiastic Pharo contributors to be a
mentor with Pharo Consortium for GSoC 2017:

1. Kindly respond on this thread if you'd like to be a mentor, or wish
to propose a project.

An existing list of projects is already available here:
http://gsoc.pharo.org/ and we already have a handful of projects and
mentors chosen. Feel free to collaborate with existing mentors as
well.

2. Join dedicated channels, #gsoc-students for general interactions
with students & #gsoc-planning channel only for GSOC admins and
mentors on Pharo slack. In order to get an invitation for
pharoproject.slack.com visit the URL here:
http://slackinvites.pharo.org/

3. Please open relevant issues and make a roadmap of the projects
being mentored by you so that students can start contributing to them
already. If you want to mentor a project and there is no open-source
repository at the moment, please built one ASAP.

4. If you know any students that might be interested to work on Pharo
during the summer and be a part of GSoC as well, please ask him/her to
start contributing to the Pharo projects, discuss their proposal,
follow instructions that shall be posted soon in this mailing thread
and submit their application by April 3, 2017.
We don't know the number of slots attributed by Google to Pharo org,
but the more students proposal we will receive, the more slots will be
attributed to us.

We remind you about the mentor responsibilities:

... to your Org Admins

- Communicate availability and interaction expectations
- Inform when mentoring capacity will be reduced, as early as possible
(e.g., family, health, vacation)
- Inform when there is an issue with a student
   - Lacking communication, activity, visibility (MIA), or progress
   - Participant Agreement violations (e.g., plagiarism, harassment, fraud)
   - Bad fit or stepping down
- Formally evaluate student participation.
   - Communicate with admin and student before failing

... to your Students

- Help and/or teach the student
   - how to be a part of your community
   - communicate more effectively and in the open
   - work with your org’s preferred communication channel (IRC, Slack, etc)
   - use your org’s version control system
   - ask good questions and get answers to their questions
   - provide convincing technical argument and constructive discussion
   - be independently motivated and productive
   - solve difficult technical problems
- Keep track of their progress, keep student informed as to their status
- Communicate on a regular basis, once a week or better (for GSoC)
   - Give constructive feedback, be patient, and be respectful
   - Respond to questions within 24 hours (occasionally under 36 hours is ok)
- Establish realistic work objectives and timeline expectations
- Re-eval

Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-03-01 Thread Pierce Ng
On Tue, Feb 28, 2017 at 10:09:06AM -0500, Offray Vladimir Luna Cárdenas wrote:
> BTW, when installing Grafoscopio you get a FossilRepo object that is
> used to query Fossil repositories via the JSON API and update
> documentation. Still in early stages, but I will experiment how
> Pierce's Fossil support give a more cohesive user experience when
> working with publication and collaboration of interactive notebooks.

Currently FossilFileTree runs Fossil "at the command line". But certainly
talking JSON with a Fossil server is another avenue to explore, similar to
having gitfiletree:// and remote git repository.

Pierce



Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-03-01 Thread Pierce Ng
On Tue, Feb 28, 2017 at 04:23:12PM +0100, Thierry Goubier wrote:
> 2017-02-28 1:19 GMT+01:00 Pierce Ng :
> > I have written a simple integration of FileTree with Fossil to avoid the
> Congratulations! This was one of my objectives with GitFileTree: open up
> the Pharo infrastructure to other DVCS such as Fossil.

And indeed runOSSubprocessFossilCommand is basically runOSSubprocessGitCommand,
so thank you for GitFileTree.

I've only implemented #basicStoreVersion: and it is simply this:

  basicStoreVersion: aVersion
super basicStoreVersion: aVersion
(MCFossil new repoDir: self directory fullName)
  addRemove;
  commit: aVersion info message

The last 3 lines is of course just the Smalltalk way of saying 
"fossil addremove; fossil commit ..."

Currently that's all it does.


> How does Fossil handles merging the FileTree format?

Just to be sure I get your question, do you mean whether FossilFileTree sees
the changes if I edit the .st files using vi, say?

Right now, after committing in Monticello Browser, when I click 'refresh' or
'changes' everything shows up as new again. That can't be right. Which part of
GitFileTree deals that? 

Pierce




Re: [Pharo-users] Crash in Athens

2017-03-01 Thread Esteban Lorenzano

> On 1 Mar 2017, at 04:42, Alexander Samoylovich  wrote:
> 
> Thanks everybody for the explanation.
> 
> I tried to apply Igor's suggestion. I allocate an offscreen surface 1 row 
> larger than needed 
> and when converting discard one row.
> 
> The code looks more stable now. The test was up for about 30 minutes before 
> crashing instead of 1 minute before the fix.
> Is it the right code change or just a coincidence? 
>  
> 
> AthensCairoSurface>>asForm
> 
>   "create a form and copy an image data there"
>   self checkSession.
>   
>   self flush.
>   ^ Form extent: (self width@self height) - (0@1) depth: 32 bits: id

can you add that *in addition* to Ronie’s suggestion? (the one I posted?)

Esteban

> 
> 
> On Mon, Feb 27, 2017 at 2:39 PM, Stephane Ducasse  > wrote:
> Tx igor I added
> 
> https://pharo.fogbugz.com/f/cases/19764/Improve-comment-of-AthensCairoSurfaceForm
>  
> 
> 
> On Mon, Feb 27, 2017 at 7:35 PM, Igor Stasenko  > wrote:
> and i was dealing with it by adding 1 extra line to cairo surface, 
> but reporting 1 less to Form. Like so, bitblt still reads past the
> allowed size, but it is safe, because there are unused bit(s).
> 
> On 27 February 2017 at 20:31, Igor Stasenko  > wrote:
> 
> 
> On 27 February 2017 at 12:29, Esteban Lorenzano  > wrote:
> Hi,
> 
> the problem wit Ronie’s fix is that (as he says) you are copying another time 
> the surface, before passing it to the VM (who makes yet-another-copy) so this 
> is not optimal… and you can see it when running the Tiger demo: there are a 
> lot of pauses.
> So I would prefer the other approach he suggests:
> 
> Form subclass: #AthensCairoSurfaceForm
> instanceVariableNames: 'surface'
> classVariableNames: ''
> package: 'Athens-Cairo'
> 
> AthensCairoSurfaceForm>>surface
> ^ surface
> 
> AthensCairoSurfaceForm>>surface: anObject
> surface := anObject
> 
> AthensCairoSurface>>asForm
> "create a form and copy an image data there"
> self checkSession.
> self flush.
> ^ (AthensCairoSurfaceForm extent: (self width@self height) depth: 32 
> bits: id)
> surface: self;
> yourself
> 
> that seems to work. Can you try and see?
> 
> 
> Btw, remember the culprit there , that you must have extra word in trailing 
> buffer space,
> this is because bit-blt using read-ahead . Which is OK for objects located in 
> object memory,
> since there are always something past the last object (unallocated space),
> but not so ok for buffers allocated by malloc (such as cairo surface bitmap), 
> and so,
> if you read even a single byte past it, you get protection fault.
>  
> Esteban
> 
> > On 24 Feb 2017, at 15:47, stepharong  > > wrote:
> >
> > Hi alex
> >
> > can you try the fix of ronie and let us know if it makes roassal more 
> > stable?
> >
> > Stef
> >
> >> Dear Alexander,
> >>
> >> Sine the new FFI of Pharo, using Athens has become unreliable. This is a 
> >> pity, but fixing this is not trivial at all (we have been trying for 
> >> years).
> >>
> >> What exactly are you doing with Athens?
> >>
> >> Alexandre
> >>
> >>
> >>> On Feb 22, 2017, at 12:55 AM, Alexander Samoylovich 
> >>> mailto:samoylov...@gmail.com>> wrote:
> >>>
> >>> Hello
> >>>
> >>> I am writing graphic demo programs using Athens on Mac Sierra.
> >>> Time by time Pharo VM crashes. Programs not using Athens work reliably.
> >>> I believe the behavior is reproducible.
> >>> How should I report a bug?
> >>>
> >>> Alex
> >>
> >
> >
> > --
> > Using Opera's mail client: http://www.opera.com/mail/ 
> > 
> >
> 
> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.
> 
> 



Re: [Pharo-users] How to capture the execution of a playground?

2017-03-01 Thread p...@highoctane.be
You can see what's going on with this:

p := GTPlayground open.
pmodel := p model.
logger := GLMMemoryLogger new.
pmodel logger: logger.
pmodel

Then open the annoucements pane to see what is going on.

Be ready to use the interrupt combo as I have experienced strange effects
:-)

If you have a handle on the model, you can see a lot.

Somewhere one can find the bindings, which can then be persisted to disk,
STON comes to mind.

HTH

Phil

On Wed, Mar 1, 2017 at 5:45 AM, Ben Coman  wrote:

>
>
> On Wed, Mar 1, 2017 at 10:06 AM, Offray Vladimir Luna Cárdenas <
> offray.l...@mutabit.com> wrote:
>
>>
>> On 28/02/17 02:12, Ben Coman wrote:
>>
>>
>>
>> On Tue, Feb 28, 2017 at 11:28 AM, Offray Vladimir Luna Cárdenas <
>> offray.l...@mutabit.com> wrote:
>>
>>> Hi,
>>>
>>> I would like to store the object resulting from executing a playground.
>>> This would imply two steps:
>>>
>>> - Knowing that the playground content was executed (via the play button
>>> or its shortcuts Ctrl + Shift + g or Ctrl + g).
>>> - Getting the results of that execution. For example if the result at
>>> the end is a string or a dictionary, I would like to get that string or
>>> dictionary.
>>>
>>> Any pointers on how to make that will be welcomed.
>>>
>>> Cheers,
>>>
>>> Offray
>>>
>>> Ps: I still get lost when I search by myself trying to answer questions
>>> like the ones above. I imagine that in some way is related with
>>> evaluationAction and presentations, by looking for the source code of "do
>>> it and go", but still I can't get a functional code snippet to start
>>> prototyping.
>>>
>>>
>> In playground, if you evaluate "self halt. 42" at top of the debug stack
>> you'll see method...
>>Undefined>>DoIt
>>self halt.
>>^ 42
>>
>> where stepping
>> OVER returns 42 into "value" variable in OpalCompiler>>evaluate
>> OVER returns 42 into "result" variable in RubSmalltalkEditor>>evaluate:a
>> ndDo:
>> at the end of which stepping
>> INTO "^aBlock value: result"  takes you to 
>> RubSmalltalkEditor>>highlightEvaluateAndDo:,
>> where
>> INTO "[:result | aBlock value: result]"takes you to
>> GLMPharoScriptPResentation(GLMRubricSmalltalkCodePresentatio
>> n)>>executionSelectionActions
>>
>>
>> Wow that was pretty insightful! Thanks Ben. I still don't know when to
>> use Over or Into,
>>
> It helps to observe the three types of stepping behavior side by side.
> I've devised a little demo.
>
> First, to help keep track of the windows, hack this mod into
> RubSmalltalkEditor>>debug:receiver:in:
> debugSession := guineaPig newDebugSessionNamed: ('debug ' ,
> aCompiledMethod selector printString asUppercase)  startedAt: context.
>
> In playground evaluate...
>Object subclass: #DebugDemo
> instanceVariableNames: ''
> classVariableNames: ''
> package: 'DebugDemo'.
>
> In playground evaluate...
> #('over' 'through' 'into') do: [ :demoMethodName|
> DebugDemo compile: demoMethodName , '
> x := 0.
> #(1 2) do: [:n | x := x + 1].
> self inform: x printString.'.
> RubSmalltalkEditor new debug: (DebugDemo>>(demoMethodName
> asSymbol)) receiver: nil in: nil.
> ].
>
> Arrange the three debug windows side by side, left to right, OVER,
> THROUGH, INTO.
>
>
> 1. Moving left to right, click once on each window's related "step" button
> - OVER then THROUGH then INTO.
> While views remain the same, repeat 1.
>
> 2. When views diverge, keep clicking INTO until it matches THROUGH.
>
> 3. While THROUGH and INTO views remain the same, keep alternately clicking
> these.
> When they diverge return to 2.
> When all views are the same, return to 1.
>
> The key thing to observe with the INTO window, is that sending #value: to
> the array gets you to the same place as THROUGH got in one step. It skips
> through the block support infrastructure.
>
> i think maybe it would help to rearrange the "step" buttons in order of
> increasing detail. i.e. OVER, THROUGH, INTO.
> Also maybe the "through" icon could be a right arrow inside square
> brackets like this... [-->].
> That would probably look neater without the underline.
>
>
> To put the terminology into perspective, I've contrived a poor analogy
> of...
> A method being a path along the ground.
> http://www.instructables.com/id/How-to-lay-pathpatiowalkway-and-build-
> slabs/
> Each slab is a message send.  Under each slab is an offshoot tunnel with
> further slabs along it.
>
> The quickest way down the path is to step OVER each slab(message send)
> because you don't care what is happening beneath the slab.
>
> Sometimes you need to know everything that is going on underneath, so you
> lift up the slab and go INTO the tunnel and step on each of the slabs in
> the tunnel.
>
> Now to stretch the analogy, consider that a block is held at the end #do:
> tunnel.  You are interested in the individual steps of the block, but not
> in all the steps of the tunnel (which is the support infrastructure that
> iterates a collection send