Re: [Pharo-project] XPath issue ?

2013-05-15 Thread Stéphane Ducasse
herve did you try pastell?

Stef

On May 8, 2013, at 11:23 PM, Herve Verjus herve.ver...@univ-savoie.fr wrote:

 Dear All,
 
 I try a very simple example:
 
 mydoc.xml document:
 
 
 ?xml version=1.0 encoding=UTF-8 ?
 
 first
  second
item type=attvaluenodevalue/item
  /second
 /first
 
 
 And the Pharo code found in the book.pharo-project.org:
 
 | doc results |
 doc := XMLDOMParser parseFileNamed: 'mydoc.xml'.
 results := ( XPath for: 'first' ) in: doc.
 results explore
 
 
 As a result, I obtain an empty OrderedCollection...It should contain an 
 element. Then a make some changes using different XPath expressions (i.e. 
 '/first/second/item/@type, etc.) but no way.
 
 Then I discover the first element of the XPath expression must not be the 
 root of the XML doc. If I change the mydoc.xml, introducing a new root 
 element:
 
 
 ?xml version=1.0 encoding=UTF-8 ?
 
 foo
 first
  second
item type=attvaluenodevalue/item
  /second
 /first
 /foo
 
 Everything is ok (the same code as above). Here, XPath assumes that the first 
 tag we are looking for is not the root of the doc, otherwise it fails. I'm 
 not so sure but it seems that such implementation doesn't follow the XPath 
 specs. I tried another example from 
 http://www.w3schools.com/xpath/xpath_syntax.asp and same results: I obtain an 
 empty collection when using an XPath expression beginning with the 
 'bookstore' tag, the root element of the doc:
 
 | doc results |
 doc := XMLDOMParser parseFileNamed: 'books.xml'.
 results := ( XPath for: '/bookstore' ) in: doc.
 results explore
 
 Maybe, I missed something...
 
 Note: I have had to replace the isTag (deprecated) with isElement in some 
 piece of XPath code.
 
 Cheers,
 
 Herve
 




[Pharo-project] suggestions for Smart Suggestions

2013-05-14 Thread Stéphane Ducasse
- When selecting a literal we should be able to get extract method.



[Pharo-project] Fwd: suggestions for Smart Suggestions

2013-05-14 Thread Stéphane Ducasse
Hi gisela.

- When selecting a literal we should be able to get extract method.

- when I select an instance variable in the class definition I cannot apply 
refactoring…. yes I know this is because this is a STRING…
What a pain.

Stef




[Pharo-project] Fwd: [Esug-list] first MOOC about OOP with Smalltalk and Seaside?

2013-05-05 Thread Stéphane Ducasse


Begin forwarded message:

 From: Johannes Brauer bra...@nordakademie.de
 Subject: [Esug-list] first MOOC about OOP with Smalltalk and Seaside?
 Date: May 4, 2013 5:29:33 PM GMT+02:00
 To: ESUG Mailing list esug-l...@lists.esug.org, g...@gsug.org 
 g...@gsug.org, VWNC List v...@cs.uiuc.edu
 
 Dear Smalltalkers!
 
 There is an initiative for funding the development of massive open online 
 courses (moocs) by the Stifterverband für die deutsche Wissenschaft 
 (http://www.stifterverband.info/ueber_den_stifterverband/english/index.html).
 You can get information about a running competition (MOOC PRODUCTION 
 FELLOWSHIP) here: https://moocfellowship.org.
 Following the link 
 https://moocfellowship.org/submissions/objektorientierte-programmierung-von-web-anwendungen-von-anfang-an
 YOU CAN VOTE for the course offered by me resp. the NORDAKADEMIE 
 (www.nordakademie.de). For voting you have to register by Facebook or email 
 only.
 
 The MOOC we want to build will be based on a blended learning course we have 
 been pursuing as a first year programming course under the headline object 
 oriented development of web applications since a couple of years. During 
 this class the students learn object oriented programming from the beginning 
 using Smalltalk and Seaside.
 
 Since the material of our blended learning course is in German the first 
 version of the projected MOOC will be in German, too. Getting one of the 
 awards should offer the possibility to build an English version later on.
 
 I would be delighted if you could adjust our Smalltalk-MOOC project by voting 
 for the course
 
 https://moocfellowship.org/submissions/objektorientierte-programmierung-von-web-anwendungen-von-anfang-an
 
 Thank you very much
 
 Johannes Brauer
 
 Prof. Dr.-Ing. Johannes Brauer
 Dean of Computer Science Departement
 Tel.: 04121 409030
 Fax.: 04121 409040
 e-mail: bra...@nordakademie.de
 e-mal priv.: bra...@acm.org
 
 
 
 
 
 Staatlich anerkannte private Fachhochschule
 NORDAKADEMIE
 Gemeinnützige Aktiengesellschaft
 Köllner Chaussee 11
 25337 Elmshorn
 
 Vorstand:
 Prof. Dr. Georg Plate (Vorsitzender), Dipl.-Ing. Jörg Meier (stellv. Vorstand)
 
 Vorsitzender des Aufsichtsrats:
 Dr. h.c. Hans-Heinrich Bruns
 
 Sitz:
 Elmshorn, Amtsgericht Pinneberg, HRB 1682
 
 
 ___
 Esug-list mailing list
 esug-l...@lists.esug.org
 http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org



[Pharo-project] about logCr: vs. log: vs. trace:/traceCr:

2013-05-05 Thread Stéphane Ducasse
Hi guys

Stupidly I introduced log: a while ago to replace Transcript show:. Now is the 
current situation.

I still want to remove all the use of Transcript show:

Now since I thought I did a mistake with log: because it overload Integerlog: 
I introduced trace: and traceCr:

Now I do not like traceCr: because it is not a cool message.

So what do we do:

1) we use crLog:, logCr: 
and deprecated log: 


2) we use crTrace:, trace: and traceCr: 

I really prefer solution 1 but I would like to hear from you.

Stef


[Pharo-project] looks like move to class side forgets the class message on the instance side

2013-05-05 Thread Stéphane Ducasse
Hi 


I got 

SLLogObjecterror
To convey an error.

level := self errorLevelString

SLLogObjecterrorLevelString
^ 'error'

then I did  move to class side and ….

SLLogObjecterror
To convey an error.

level := self errorLevelString

stayed the same.

Does anybody encounter this problem?

Stef


[Pharo-project] the newlist breaks the changesorter.

2013-05-04 Thread Stéphane Ducasse
running out to do shopping.

Stef



[Pharo-project] Strange behvaior with protocols in nautilus

2013-05-04 Thread Stéphane Ducasse
I loaded some morphic games and I have a strange behavior with nautilus.
when I press all I see all the methods but when I look at the protocols I only 
get a couple
and I do not see all the methods.

Stef


Re: [Pharo-project] Playing with Opal AST-BC Translator

2013-05-02 Thread Stéphane Ducasse
Nicolas 
I'm convinced marcus and clement will be definitively interested! Open tickets 
:). 
Opal is not fully polished yet. It has a nice skeleton but requires more love 
to really shine. 
This is great that it was pushed in Pharo so that we can all have a look. 
For us this is the infrastructure for a new generation open-compiler so this is 
nice to hear that 
from you. :)


Stef


 Opal is fun.
 I have a few simplifications to propose for the AST-BC OCASTTranslator
 
 1) instead of testing isEffectTranslator or refining in subclass, most often 
 we could just let self visit the node. Indeed, self will already be either a 
 Translator ForEffect or ForValue.
 
 For example, this could apply to emitIfFalseIfTrue: emitIfNilIfNotNil: 
 visitCascadeNode: 
 
 This might also remove a few useless pushNil; pop BC sequences.
 
 
 2) I think we can simplify the #visitBlockNode: / #visitSequenceNode: pair.
 
 Indeed, visitSequenceNode: tests if its parent isBlock, and if so will 
 emitValue, else emitEffect.
 Inversely visitBlockNode: always ask to emitEffect, but since it contains a 
 SequenceNode, this is a big lie.
 
 I suggest to always let the valueTranslator emitValue visitBlockNode: and 
 simplify #visitSequenceNode: to just let (self visitNode: statements last).
 
 
 3) I suggest changing the BC generated for or: and and:
 
 instead of:
 
 valueTranslator visitNode: aMessageNode receiver.
 methodBuilder 
 jumpAheadTo: #else if: false;
 pushLiteral: true;
 jumpAheadTo: #end;
 jumpAheadTarget: #else. 
 valueTranslator visitInlinedBlockNode: aMessageNode arguments first.
 methodBuilder jumpAheadTarget: #end.
 
 We could just use dup and thus remove a jump:
 
 valueTranslator visitNode: aMessageNode receiver.
 methodBuilder 
 pushDup;
 jumpAheadTo: #end if: true;
 popTop.
 self visitInlinedBlockNode: aMessageNode arguments first.
 methodBuilder jumpAheadTarget: #end.
 
 ForEffect, this would just be
 
 self emitIfFalse: aMessageNode
 
 Of course, that last change might disturb the Decompiler a bit, but since we 
 care far less now...
 
 I can open 1 or more issues if there is an interest.
 
 Nicolas




[Pharo-project] about Pharo 3.0 :)

2013-04-30 Thread Stéphane Ducasse
Hi guys

I thought that Pharo 20 got a lot of improvements but when I see Pharo 30, it 
feels like Pharo 30 is already a big step 
forward. This is really positive energy. When fernando will arrive we will move 
some efforts to Morphic 
so thanks you all for this cool feeling.

Stef


[Pharo-project] Fwd: [vwnc] [ANN] DoubleAgents: A Test Double Library for Visualworks

2013-04-30 Thread Stéphane Ducasse


Begin forwarded message:

 From: Randy Coulman rcoul...@gmail.com
 Subject: [vwnc] [ANN] DoubleAgents: A Test Double Library for Visualworks
 Date: April 30, 2013 4:16:50 PM GMT+02:00
 To: VW NC v...@cs.uiuc.edu
 
 All,
 
 I have just released DoubleAgents, a library for creating test doubles in 
 Visualworks Smalltalk.
 
 DoubleAgents is available in the Cincom Public Store Repository. A snapshot 
 of the current version is also on GitHub. The Readme file on GitHub includes 
 high-level documentation if you'd like more information before diving in.
 
 The full release announcement is on my blog, Courageous Software.
 
 Thanks,
 Randy
 
 -- 
 Randy Coulman
 Email: rcoul...@gmail.com
 Home: http://randycoulman.com
 Twitter: @randycoulman  GitHub: randycoulman
 ___
 vwnc mailing list
 v...@cs.uiuc.edu
 http://lists.cs.uiuc.edu/mailman/listinfo/vwnc



[Pharo-project] Moment of fun

2013-04-30 Thread Stéphane Ducasse
Hi guys

I would like to build a small lectures based on all the small little crazy 
expressions that we use 
like 

StandardWindow allInstances do: #close.

or 

myObject pointersTo 

or 

anObject become: String new.

Do you have some cool expressions to share with me.

Stef


[Pharo-project] froze image just

2013-04-30 Thread Stéphane Ducasse
trying to publish a slice on my harddisc without network….
and I could not interrupt anything.
No cmd+. no interdiction sign did anything :(

So is it normal?
Not being able to interrupt something is a pain. 

stef


[Pharo-project] Athens news :)

2013-04-29 Thread Stéphane Ducasse
since I'm quite sure that you are happy to know that one guy is pushing Athens 
:)



 From: Igor Stasenko siguc...@gmail.com
 Subject: Re: [Lsehub-staff] [Mm10s] 2013-04-29
 Date: April 29, 2013 12:12:50 PM GMT+02:00
 To: RMoD private list lsehub-st...@lists.gforge.inria.fr
 Reply-To: RMoD private list lsehub-st...@lists.gforge.inria.fr
 
 On 29 April 2013 07:00,  seas...@rmod.lille.inria.fr wrote:
 Monday morning, time for the weekly mail meeting in 10 seconds!
 (just reply, inserting bullet points)
 
 ### Last week:
 
 - implementing scene viewer in Athens.
 - added bezier3 flattener
 
 
 ### This week (starting 2013-04-29):
 
 Athens:
 - debug/fine tune bezier3 flattener
 - add arc/elliptical arc tesseleration
 - implement non-zero fill rule
 Pharo:
 - look at DateAndTime again
 
 -- 
 Best regards,
 Igor Stasenko.
 



Re: [Pharo-project] Why keymap modifiers change receiver instead of return new instance?

2013-04-28 Thread Stéphane Ducasse
Thanks for the explanation but I do not get it

 Because 
 
 shortcut1 := $a ctrl.
 shortcut2 := $a ctrl shift
 
 created different shortcuts. 

I thought you wanted the inverse:
You wrote:

 Why modifiers change receiver state instead of create new instance?


 And it is fully unexpected that I can not refactor it to:
 
 shotcut2 := shortcut1 shift

ahhh I got it.


 Because after that my shortcut1 become broken.
 
 It was happen in TxTextMorph where selection and movement shortcuts created 
 at same time
 
 TxTextMorphmoveEditorOn: aShortcut by: aSelector
 
 self on: aShortcut do: [
 self moveEditorBy: aSelector withSelection: false ].
 self on: selectionModeModifier + aShortcut  do: [
 self moveEditorBy: aSelector withSelection: true].
 
 To fix it I add deep copy of given shortcut before modifier operation.
 
 
  There is another example:
 
  shortcut := $a ctrl.
  self assert: shortcut == (KMModifier shift + shortcut)
 
  Yes. Such operation modified argument of message #+. What the crapp! Why it 
  not returns new instance?
 
  I hope you agree to change this behaviour
 
 
 
 
 



Re: [Pharo-project] [ANN] elasticsearch client

2013-04-25 Thread Stéphane Ducasse
Thanks for your contribution.
This is good to have a catalog of solutions :)
Stef

On Apr 24, 2013, at 8:08 PM, Paul DeBruicker pdebr...@gmail.com wrote:

 Hi -
 
 Elasticsearch (http://www.elasticsearch.org/) claims to be a: flexible
 and powerful open source, distributed real-time search and analytics
 engine for the cloud
 
 I put what I've made up here:
 
 MCHttpRepository
location: 'http://ss3.gemstone.com/ss/Elasticsearch'
user: ''
password: ''
 
 
 So far it allows you to create an index, add documents, get documents by
 id, search using the URI Request api, and then delete the index. I made
 it in Pharo 1.4.  I made an attempt to abstract out the HTTP client and
 URL stuff so it could be used with Zinc or Webclient.  But right now it
 only works with Zinc.  If someone wants it to run in Squeak sooner
 rather than later let me know and I can either fix it and the config or
 help you do it.
 
 
 
 basic usage is like this:
 
 index:= ESIndex createIndex: 'test-index'.
 
 docContent := Dictionary new.
 docContent at: 'message' put: 'this is the documents content'.
 docContent at: 'creator' put: 'Mr T'.
 
 document:=ESDocument withContent: docContent.
 document addToIndex:index.
 
 search:=ESURISearch index:index.
 search queryString:'documents'; search.
 search results explore.
   
 ESIndex deleteIndex:'test-index'
 
 
 I haven't begun implementing the QueryDSL but the ESSearch class does do
 the required GET with a JSON body and does work.  Seems like it'd be
 useful to have the QueryDSL but right now I don't need more than the URI
 Request searching provides.  It also doesn't do any of the cluster
 health/maintenance api yet
 
 




Re: [Pharo-project] rubric performace

2013-04-25 Thread Stéphane Ducasse

 Hi,
 
 I did a little experiment to check the performance of Rubric when dealing 
 with large content. And by large, I mean 45 MB  or about 15 million lines of 
 text.
 
 I opened the file in several other editors:
 - TextMate: 10s + the text is wrapped and can be browsed smoothly
 - Sublime Text 2: 10s + the text is wrapped and can be browsed smoothly
 - Eclipse: 5s + browsing is very slow (so it is basically useless)

thanks doru this is really interesting. 

 How did Rubric perform:
 - When opened with unwrapped lines: 33s + the text can be browsed smoothly
 - When opened with wrapped lines - Pharo crashed :(
 
 In any case, I think being 3 times slower (even if without wrapping) than 
 TextMate is highly exciting. Great job Alain. 

I think that with more ironing and optimisation it will only get better!
Thanks synectique http://www.synectique.eu  for sponsoring the work of Alain 
and releasing it MIT. 

 
 If you want to reproduce the experiment, here is the Smalltalk snippet I used:
 
 ---
 Gofer new 
   smalltalkhubUser: 'AlainPlantec' project: 'Rubric';
   package: 'Rubric-AlainPlantec.26';
   load.
 
 [
   contents := ((FileSystem disk workingDirectory / 'src' / 'ArgoUML-0-34' 
 / 'output.mse') readStreamDo: #contents).
(RubLipsumBasicExample 
   windowWithScrolledText: (
   RubLipsumBasicExample new
   string: contents; 
   newScrolledTextNotWrapped))
   openInWorld
] timeToRun 
 ---
 
 Cheers,
 Doru
 
 --
 www.tudorgirba.com
 
 What we can governs what we wish.
 
 
 
 




[Pharo-project] Call for ESUG 2013 presentations

2013-04-24 Thread Stéphane Ducasse
Please distribute as widely as possible :)


21st International Smalltalk Joint Conference - Call for Contributions

 Annecy, France
from 9 to 13 September 2013
http://www.esug.org/conferences/2013/

 This call includes:
 Developer Forum
 Smalltalk Technology Award
 International Workshop
   http://www.esug.org/Conferences/2013/InternationalWorkshop
 Student Volunteer
   http://www.esug.org/Conferences/2013/StudentVolunteers
 Camp Smalltalk 8 September 2013

 --
 For the past 21 years, the European Smalltalk User Group (ESUG) has
 organised the International Smalltalk Conference, a lively forum on
 cutting edge software technologies that attract people from both
 academia and industry for a whole week. The attendees are both
 engineers using Smalltalk in business and students and teachers
 using Smalltalk both for research and didactic purposes.

 As every year, this year's edition of the largest European Smalltalk
 event will include the regular Smalltalk developers conference with
 renowned invited speakers, a Smalltalk camp that proves fruitful for
 interactions and discussions. This year will be held the
 9th edition of the Innovation Technology Awards where prizes will be
 awarded to authors of best pieces of Smalltalk-related projects
 and an international workshop on Smalltalk and dynamic languages
 (http://www.esug.org/Conferences/2013/InternationalWorkshop)

 You can support the ESUG conference in many different ways:

 * Sponsor the conference. New sponsoring packages are described at
 http://www.esug.org/supportesug/becomeasponsor/
 * Submit a talk, a software or a paper to one of the events. See below.
 * Attend the conference. We'd like to beat the previous record of
 attendance (170 people at Amsterdam 2008)!
 * Students can get free registration and hosting if they enrol
into the the Student Volunteers program. See below.

 Developers Forum: International Smalltalk Developers Conference
 

 We are looking for YOUR experience on using Smalltalk. You will have
 30 min for presentations and 45 min for hand-ons tutorial.

 The list of topics for the normal talks and tutorials includes, but
 is not limited to the following:

 * XP practices,  Development tools,  Experience reports
 * Model driven development,  Web development, Team management
 * Meta-Modeling,  Security,  New libraries  frameworks
 * Educational material,  Embedded systems and robotics
 * SOA and Web services,  Interaction with other programming languages

   Teaching Pearls
   ---
   New this year!!!
We want two news types of sessions in addition to default talk 
and 
show us your projects sessions.

- Show your business 10 min session (Get prepared!!)
- Teaching pearls : we want some session on how to teach some 
design
 aspects. We want your tip and tricks to teach Smalltalk or OOP.

We expect to have several 10 to 15 min sessions aggregated.

   Open Forum: starting with Smalltalk
   

   New this year!!
   The event will be held at IAE Savoie Mont-Blanc - University of 
Savoie. 
   This is an opportunity for students and local professionals to 
discover Smalltalk. 
   A room will be freely accessible and we would like to propose some 
talks and workshop 
   for Smalltalk beginners.

The list of topics includes, but is not limited to the 
following:
- Why Smalltalk ?
- Panorama of Smalltalk solutions
- Getting started with Smalltalk
- Success stories


 How to submit?
 --

 Submissions due on 15st June 2013
 Notification of acceptance will be on done on the fly.
 More information at http://www.esug.org/conferences/2013


 Pay attention: the places are limited so do not wait till the last
 minute to apply. Prospective presenters should submit a request to
 stephane.duca...@inria.fr AND USE THE following header [ESUG 2013 Developers].

 Please follow the template below the email will be automatically processed!

 Subject: [ESUG 2013 Developers] + your name
 First Name:
 Last Name:
 Email where you can always be reached:
 Title:
 Type: Tutorial/Talk/Teaching Pearl/OpenForum
 Abstract:
 Bio:


Any presentation not respecting this form will be discarded automatically



 International Workshop on Smalltalk Technologies
 
 http://www.esug.org/Conferences/2013/InternationalWorkshop

 Smalltalk is  considered as a design pearl and as a beacon in the
 realm of programming languages and 

[Pharo-project] Rubric questions :)

2013-04-24 Thread Stéphane Ducasse
Hi alain

better talk not privately :)


MCHttpRepository
location: 'http://www.smalltalkhub.com/mc/AlainPlantec/Rubric/main'
user: ''
password: ''.



Why 
RubParagraphDecorator defines 

findRegex 
 ^ next findRegex

I'm trying to understand the interface of the decorator since all the 
decorator should have the same to be interchangeable.




On 
self blueTextOnGrayBacgroundNotWrapped

when I get the menu and change the font nothng changes.


I get a DNU when I execute

self withOnlyThePrimarySelection

When I type the name of a class in RubMethodEditingExample open
I get DNUs.

more to come 

Re: [Pharo-project] [squeak-dev] Xtreams's FileDirectory dependence

2013-04-17 Thread Stéphane Ducasse
We are really interested by Xtreams for replacing Pharo Streams.
Now we should evaluate again Xtreams. 
So any action that make them easier to load is welcome.
On Apr 17, 2013, at 4:57 PM, Frank Shearar frank.shea...@gmail.com wrote:

 Xtreams depends on FileDirectory in at least three places, all in the
 Xtreams-Terminals package. (Three messages on FileUrl, #appending,
 #reading, #writing; two tests in XTFileReadingWritingTest  #setUp
 and #tearDown)
 
 Pharo 2.0 has no FileDirectory. So it seems like the easiest (not
 necessarily simple, nor right) thing to is to break that out into
 Xtreams-Terminals-Squeak and Xtreams-Terminals-Pharo packages, and
 similarly for the tests.
 
 After that, we'd need to adjust the ConfigurationOfXtreams. I think I
 forgot to fulfil a promise to submit an updated version of this that
 loaded FFI correctly (sorry!).
 
 Thoughts? Do any Pharo folk load Xtreams?
 
 frank
 




[Pharo-project] Seabreeze users?

2013-04-14 Thread Stéphane Ducasse
Hi guys

I was watching again this video and I found the concepts and system really 
interesting.
http://www.youtube.com/watch?v=wI1UcwJrJLc

Does anybody use SeaBreeze?

Stef


[Pharo-project] we spent couple of hours: checking comments and cleaning Athens

2013-04-14 Thread Stéphane Ducasse
:)
It was cool to sit and learn stuff by watching igor :).

Stef



[Pharo-project] how to publish screen capture of a nice hands-on ?

2013-04-12 Thread Stéphane Ducasse
Hi guys

yesterday I coded a small DSL with the students here and I would like to 
publish it somewhere.
Any idea how to proceed?

Stef


[Pharo-project] draft of a videos :)

2013-04-12 Thread Stéphane Ducasse
Hi guys

I recorded a teaching session yesterday of how to code (2 D20 + 3 D10) roll
http://stephane.ducasse.free.fr/Videos/2013-04-10-DiceDraft.mov
I will redo it completely but here is a draft version.

Stef



[Pharo-project] call for a deprecate code transformation

2013-04-12 Thread Stéphane Ducasse
Hi guys

I would love to have a transformation that take a method and generate the body 
to deprecate it…ie

foo: aPoint

body


= 

foo: aPoint

self deprecated: 'use xxx' on: 'date' in: #Pharo2.0

body

so that we deprecate better method.

Any takers?

Stef


[Pharo-project] [update 3.0] #30034

2013-04-11 Thread Stéphane Ducasse
30034
-

10177 Deprecate accept* in visitor
https://pharo.fogbugz.com/f/cases/1017
Diff information:
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/FileSystem-Core-StephaneDucasse.74
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Announcements-Core-StephaneDucasse.38


Stef and Igor (from Lviv)


[Pharo-project] [update 3.0] #30035

2013-04-11 Thread Stéphane Ducasse

30035
-

Issue 5602: LinkedList at: index putLink: aLink
https://pharo.fogbugz.com/default.asp?5602

Issue 5188-Stage 2: Announcement handlesAnnouncement:
Now we use the new protocol that was introduced in previous stage.
https://pharo.fogbugz.com/default.asp?5188
Diff information:
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/CollectionsTests-StephaneDucasse.592
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Announcements-Core-StephaneDucasse.39
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Collections-Sequenceable-StephaneDucasse.134




[Pharo-project] [update 3.0] #30036

2013-04-11 Thread Stéphane Ducasse

30036
-

Issue 5188 Stage 3: Announcement handlesAnnouncement:
Cleaning after the changes.
https://pharo.fogbugz.com/default.asp?5188

Move ui code of SmallDictionary to Tools package. 
Diff information:
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Tools-StephaneDucasse.1073
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Collections-Unordered-StephaneDucasse.153
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Announcements-Core-StephaneDucasse.40
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Announcements-Tests-Core-StephaneDucasse.12
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Collections-Strings-StephaneDucasse.250




[Pharo-project] Syntax highlithing

2013-04-10 Thread Stéphane Ducasse
Hi guys

I think that we should really change the following behavior.
If I have an instance variable abc

when I type ab is should not be colored in red first then when I type c get 
black

It should tell me that ab is correct and only get red when I type abx

I got this behavior for the kid book.

Does anybody have an idea how we can fix that?


Stef


Re: [Pharo-project] Syntax highlithing

2013-04-10 Thread Stéphane Ducasse

 Hi guys
 
 I think that we should really change the following behavior.
 If I have an instance variable abc
 
 when I type ab is should not be colored in red first then when I type c get 
 black
 
 It should tell me that ab is correct and only get red when I type abx
 
 I got this behavior for the kid book.
 
 Does anybody have an idea how we can fix that?
 
 Well it mostly depends on the parser. But the behavior you describe is pretty
 common in other languages. To be precise, you actually have invalid code, but
 you are on the way to make it valid.

Yes but you have a difference between code that may be correct once you finish 
and one that is totally incorrect now.
For the botsinc book I did it and you were always sure that you are going in 
the right direction.

 For me a solution would be a timer/delay when the syntax coloring hits in.

No for me the solution is feedback that tells me 
continue you are on the way 
or stop you got it wrong now.

I already did that in the past.

 So while you are typing it stays black, but after some 200ms pause it will 
 give you feedback (also when you press any of: ' ,;:[]|(){}).




Re: [Pharo-project] Syntax highlithing

2013-04-10 Thread Stéphane Ducasse
thanks sean!
To me this is a quality change.

Today I was doing a demo in front of students and I was surprised that my 
instance variable was getting red while I was sure it was there.

Stef

On Apr 10, 2013, at 3:10 PM, Sean P. DeNigris s...@clipperadams.com wrote:

 Stéphane Ducasse wrote
 I think that we should really change the following behavior...
 
 I opened an issue:
 10264 Syntax Highlighting: Less red during editing
 https://pharo.fogbugz.com/f/cases/10264/Syntax-Highlighting-Less-red-during-editing
 
 
 
 -
 Cheers,
 Sean
 --
 View this message in context: 
 http://forum.world.st/Syntax-highlithing-tp4680534p4680627.html
 Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
 




[Pharo-project] settings: controlling the color of [ ( ….

2013-04-10 Thread Stéphane Ducasse

Hi guys 

on my screen I can nearly nt see [ ( 
because the second level of hilighting is green :(

In the past we could change the hilighting behavior via setting but I cannot 
find it anymore.
To me it looks like the styles introduction broke the rest :(




Screen Shot 2013-04-10 at 9.24.55 PM.pdf
Description: Adobe PDF document


while in the code I found: 

settingsOn: aBuilder 
systemsettings
(aBuilder setting: #'Shout: Syntax Highlighting') 
target: self;
dialog: [ self styleTableRow ];
parentName: #codeBrowsing;
description: 'Syntax Highlighting As You Type: Enable syntax 
highlighting in browsers, debuggers and workspaces and set patterns style.';
selector: #enabled;
icon: UITheme current smallConfigurationIcon;
with: [
(aBuilder setting: #selectorPatternsStyle) 
label: 'Selector Patterns' translated;
description: 'Selector patterns in method pane' 
translated.
(aBuilder setting: #errorStyle) 
label: 'Syntactic error' translated;
description: 'Invalid and undefined code' 
translated.
(aBuilder setting: #argsStyle) 
label: 'Parameters' translated;
description: 'Parameters in patterns, message 
sends, and blocks' translated.
(aBuilder setting: #commentStyle) 
label: 'Comments' translated;
description: 'Comments in code pane' translated.
(aBuilder setting: #defaultStyle) 
label: 'Default' translated;
description: 'Default style' translated.
(aBuilder setting: #globalVarStyle) 
label: 'Global variables' translated;
description: 'References to global variables, 
including classes' translated.
(aBuilder setting: #instanceVarStyle) 
label: 'Instance/class variables' translated;
description: 'References to instance and class 
variables' translated.
(aBuilder setting: #messageSendsStyle) 
label: 'Message sends' translated;
description: 'Message sends' translated.
(aBuilder setting: #primitiveOrModuleStyle) 
label: 'Primitive or module' translated;
description: 'Primitive or module' translated.
(aBuilder setting: #primitiveTypesStyle) 
label: 'Primitive types' translated;
description: 'Literal data' translated.
(aBuilder setting: #reservedWordsStyle) 
label: 'Reserved words' translated;
description: 'Reserved words of the Smalltalk 
language' translated.
(aBuilder setting: #syntaxStyle) 
label: 'Syntax' translated;
description: 'Any other syntactic element' 
translated.
(aBuilder setting: #variableStyle) 
label: 'Variable' translated;
description: 'Temporary variable' translated ]



[Pharo-project] Pharo resources page by J Robertson :)

2013-04-09 Thread Stéphane Ducasse
Hi guys

james organized his videos and this is cool to find its way:

http://www.jarober.com/blog/pharoResources.ssp

Stef

[Pharo-project] One SlideShare, One Youtube channel for Pharo?

2013-04-06 Thread Stéphane Ducasse
Hi guys

I would love to have one 
- slideshare for pharo presentations reachable from the web site.


http://www.slideshare.net/search/slideshow?searchfrom=headerq=pharo

- videos conference/presentation on Youtube

http://www.youtube.com/results?search_query=pharo+stoq=pharo+stgs_l=youtube.1.0.35i39j0i10l9.10476.10844.0.12212.3.3.0.0.0.0.294.431.2j0j1.3.0...0.0...1ac.1.tZ4dv4ReBZc


- lectures 

http://www.jarober.com/blog/blogView?content=st4u_pharo is wonderful :)
http://www.jarober.com/blog/blogView?content=st4u_tools 
http://www.jarober.com/blog/blogView?content=st4u_pharo_net 

http://www.pharocasts.com

What do you think?
Does anybody want to take the lead for that?




Re: [Pharo-project] Global Apology

2013-04-06 Thread Stéphane Ducasse
Thanks camillo
Your email is great! And I found mysefl in similar situation so I can tell you 
that tu en sors grandi :)

 
 
 I would like to apologize for the rather unfriendly and loud mail I sent in
 response to a bugfix proposal by Igor on the mailing list.
 
 Luckily I listened to Esteban to prevent further damage.
 However my intervention was rude and inappropriate.
 
 You experienced an unnecessary presentation of an internal discussion that is 
 not solved yet.
 Discussing and presenting it in public is counter productive and insulting.
 
 I wish to get my ongoing disagreement with Igor settled the following week to 
 get us 
 back into a productive and friendly environment.

I'm sure you will but you have to discuss and communicate you two :)
I'm convinced you have great things to achieve and I understand your 
frustration :) Just close the door and discuss :)
 
 
 camillo bruni




[Pharo-project] Big thanks for the organization of the Pharo Conf and MooseDay

2013-04-05 Thread Stéphane Ducasse
Thanks again to Doru and SCG
because the pharo conf was really nice and the moose day too.

Stef



[Pharo-project] cleaning the PharoCollaboractive book

2013-04-04 Thread Stéphane Ducasse
Hi guys

I'm doing a pass on the collaborative book and in particular in the tools part.
I think that we should really use this place to describe the cool library we 
have.
Probably in the future we should generate gutenberg information from the 
package metadata 
of the published package so like that we would have an up to date description 
of our 
stack.

Stef


[Pharo-project] news about the association and the consortium

2013-03-31 Thread Stéphane Ducasse
Hi guys

We were checking a bit the situation and this is promising :)

- Consortium: 9 Members, 1 Sponsor == 20500 EUR/Year
- Association: 47 Members == 4040 EUR/Year

We really think that we can reach the first goal of enough money for 1 full 
time engineer
within the next year

Stef and Marcus


[Pharo-project] Thanks Sensus!! New member of the consortium

2013-03-29 Thread Stéphane Ducasse
Hi guys

we want to thank Sensus to be a new member of the consortium.
Thanks for your trust.

Stef



[Pharo-project] [update 3.0] #30016

2013-03-29 Thread Stéphane Ducasse

30016
-

10168 Spec new layout management
https://pharo.fogbugz.com/f/cases/10168


Diff information:
http://smalltalkhub.com/#!/~Pharo/Pharo30/diff/Spec-Layout-StephaneDucasse.33


Stef ;)



[Pharo-project] Looking for a Seaside 3.1 Configuration for Pharo 2.0

2013-03-27 Thread Stéphane Ducasse
Hi guys

we would like to use seaside to validate the VM and also make sure that 
Seaside31. works perfectly in Pharo2.0.
I saw that some of you have a working configuration. Where can we find it 
because we would like to publish it in the 
MetaRepoForPharo20.

Stef


Re: [Pharo-project] Some issues with UDP sockets in Pharo 1.4/Pharo 2.0

2013-03-26 Thread Stéphane Ducasse
I passed your mail to noury and luc because they got a lot of trouble with the 
socket code.


On Mar 26, 2013, at 12:12 PM, Holger Hans Peter Freyther hol...@freyther.de 
wrote:

 Hi,
 
 I am porting a tooling class that I wrote on GST for my SIP and MGCP code
 to Pharo. This class will create a socket and then fork a RX and TX process.
 I have some issues with 'stopping' the socket. I have created an example
 that shows the issue in Pharo 2.0 and Pharo 1.4 with the pharovm (and to
 have more debug output with a re-compiled one).
 
 
   | s rx |
   s := Socket newUDP.
   rx := [
   [s waitForData. s halt]
   on: ConnectionClosed do: [ s halt]
   ] fork.
   Wait for the process to hit the readSemaphore
   (Delay forSeconds: 3) wait.
   s close.
 
 
 My expectation is that I will get the ConnectionClosed signal or at least
 that #waitForData will return once the socket is closed. This is based
 on reading the comment of #waitForData.
 
 
 The Socket#waitForData documentation reads like this:
   Wait for data to arrive.  This method will block until
   data is available or the socket is closed.  If the socket is closed
   a ConnectionClosed exception will be signaled.
 
 
 I had a look at the socket plugin and the following is happening. First
 aio is disabled, the state set to ThisEndClosed, then ::close is called
 and in the above case the result is '0' and the following code will be
 executed:
 
 else if (0 == result)
 {
   /* close completed synchronously */
   SOCKETSTATE(s)= Unconnected;
   FPRINTF((stderr, closeConnection: disconnected\n));
   SOCKET(s)= -1;
 }
 
 
 this means that my 'rx' process will happily wait on the readSemaphore
 of the Socket and will never be woken up.
 
 
 My question are probably:
 
 1.) Is this the intended behavior for Socket#close and Socket#waitForData?
 2.) How should I terminate my RX process?
 
 kind regards
   holger
 
 PS: The issue is probably socket specific and not related to UDP.
 




Re: [Pharo-project] [3.0] 9 issues need reviews

2013-03-26 Thread Stéphane Ducasse

On Mar 26, 2013, at 8:38 AM, Marcus Denker marcus.den...@inria.fr wrote:

 
 On Mar 25, 2013, at 8:29 PM, Marcus Denker marcus.den...@inria.fr wrote:
 
 
 On Mar 24, 2013, at 7:23 PM, Marcus Denker marcus.den...@inria.fr wrote:
 
 Hi,
 
 Even with the integrations of saturday, there was a lot done that need
 attention:
 
 
 https://pharo.fogbugz.com/f/filters/22/3-0-Integration
 
 6 are ready to be integrated,
 9 need a code review.
 
 now 15 issues need a review.
 
 
 now 18 issues need a review.

How do I see them? Because right now I do not see anything just a long list of 
issues tagged with if time permits.


Re: [Pharo-project] [3.0] 9 issues need reviews

2013-03-26 Thread Stéphane Ducasse
marcus we should change the first list of bugs because 
- there are far too many options in the filter
- we should propose a categorisation 
It took me 10 min to find how I can et the list of issue that have been 
resolved. 

Stef

 
 Hi,
 
 Even with the integrations of saturday, there was a lot done that need
 attention:
 
 
 https://pharo.fogbugz.com/f/filters/22/3-0-Integration
 
 6 are ready to be integrated,
 9 need a code review.
 
 now 15 issues need a review.
 
 
 now 18 issues need a review.
 
   Marcus
 
 




[Pharo-project] how can I move an issue from resolved to work needed?

2013-03-26 Thread Stéphane Ducasse
for example


10071

[Pharo-project] Fwd: Some question and request for Athens

2013-03-25 Thread Stéphane Ducasse


Begin forwarded message:

 From: Tristan Bourgois tristan.bourg...@gmail.com
 Subject: Some question and request for Athens
 Date: March 25, 2013 11:45:31 AM GMT+01:00
 To: Igor Stasenko siguc...@gmail.com
 Cc: Stéphane Ducasse stephane.duca...@inria.fr, LE PORS Eric 
 eric.lep...@fr.thalesgroup.com
 
 Hi Igor!
 
 I have some questions and request for Athens :)
 
 1 Do exist a possibility in Athens to draw a Surface on a Surface?
 For example :
 aSurf drawSurface: anOtherSurface at: aPosition
 (I need it for draw image on a surface)
 
 2 About my first question, I try to draw a png image on a Surface and
 I get some strange behavior. When nothing is applied on my first
 surface and draw the image in a rectangle path I crash the VM!
 This an example I tried and crash my VM:
 
 |surf pharoLogo ref path patternPaint|
 surf := AthensCairoSurface extent: 600@600.
 
 ref := 'pharo.png' asFileReference.
 pharoLogo := AthensCairoSurface createFromFile: ref fullName ifFailed:[nil].
 
 surf drawDuring: [:can|
   surf clear.
   patternPaint := can setPaint: pharoLogo.
   patternPaint setExtend: #None.
   can drawShape: (0@0 extent: pharoLogo extent).
 ].
 Display getCanvas drawImage: surf asForm at: 0@0.
 
 If you need more information about the crash and my environment ask it :)
 
 3. Do exist something in Athens to create some text and get the extent
 of the text? I tried to draw text but I only succeed to draw a text
 without font (only width) and I don't found how to get the extent of
 this text :( This is really important for the next of the porting
 because I'm blocking on that and the textModel is not necessary for
 the next of my work because they already have a layoutManager for the
 text.
 
 Thanks Igor :)
 
 Tristan
 
 PS: The porting advance as well :) I have animation and that's really amazing 
 :)



[Pharo-project] Fwd: Some question and request for Athens

2013-03-25 Thread Stéphane Ducasse


Begin forwarded message:

 From: Igor Stasenko siguc...@gmail.com
 Subject: Re: Some question and request for Athens
 Date: March 25, 2013 2:57:33 PM GMT+01:00
 To: Tristan Bourgois tristan.bourg...@gmail.com
 Cc: Stéphane Ducasse stephane.duca...@inria.fr, LE PORS Eric 
 eric.lep...@fr.thalesgroup.com
 
 On 25 March 2013 11:45, Tristan Bourgois tristan.bourg...@gmail.com wrote:
 Hi Igor!
 
 I have some questions and request for Athens :)
 
 1 Do exist a possibility in Athens to draw a Surface on a Surface?
 For example :
 aSurf drawSurface: anOtherSurface at: aPosition
 (I need it for draw image on a surface)
 
 yes. You can use Forms or surfaces as paints so they act like 2D textures:
 
 canvas setPaint: someSurface.
 canvas drawShape: myRect.
 
 
 2 About my first question, I try to draw a png image on a Surface and
 I get some strange behavior. When nothing is applied on my first
 surface and draw the image in a rectangle path I crash the VM!
 This an example I tried and crash my VM:
 
 |surf pharoLogo ref path patternPaint|
 surf := AthensCairoSurface extent: 600@600.
 
 ref := 'pharo.png' asFileReference.
 pharoLogo := AthensCairoSurface createFromFile: ref fullName ifFailed:[nil].
 
 surf drawDuring: [:can|
surf clear.
patternPaint := can setPaint: pharoLogo.
patternPaint setExtend: #None.
can drawShape: (0@0 extent: pharoLogo extent).
 ].
 Display getCanvas drawImage: surf asForm at: 0@0.
 
 If you need more information about the crash and my environment ask it :)
 
 weird... it should be working fine.
 
 3. Do exist something in Athens to create some text and get the extent
 of the text? I tried to draw text but I only succeed to draw a text
 without font (only width) and I don't found how to get the extent of
 this text :( This is really important for the next of the porting
 because I'm blocking on that and the textModel is not necessary for
 the next of my work because they already have a layoutManager for the
 text.
 
 You can use freetype to measure text extent. Please look how i doing it with
 AthensTextScanner.
 Because the default methods of freetype using rounding for font size(s),
 which is not really nice.
 I added more precise methods, which do not do any rounding and using
 them for measuring
 text extent.
 
 Try this:
 
 text := 'asdsdgs' asText.
 lines := (AthensTextComposer scan: text for: AthensTextScanner new) lines.
 
 lines first width.
 
 will give you the width.
 
 (but for that to work, your default font should be TTF font)
 
 Thanks Igor :)
 
 Tristan
 
 PS: The porting advance as well :) I have animation and that's really 
 amazing :)
 
 
 
 -- 
 Best regards,
 Igor Stasenko.



[Pharo-project] looking for media to illustrate one important idea :)

2013-03-25 Thread Stéphane Ducasse
Hi guys

I'm looking for a video, slides… to convey one key point:
 making pharo requires thousands of tiny, annoying, tedious tasks (like 
tagging a bug, checking a bug in the vm, …).

I would like to be able to explain that these steps are not happening 
magically, but that some guys
are doing them and that we all benefit from them. So if you have an idea of 
media that I could use.
I was thinking for example to all the steps that you should do to verify your 
equipment before a long trip in 
moutain but this is not really good enough.

Stef






Re: [Pharo-project] one-click is dead, now we have platform specific builds

2013-03-24 Thread Stéphane Ducasse

On Mar 24, 2013, at 10:43 AM, Marcus Denker marcus.den...@inria.fr wrote:

 
 On Mar 24, 2013, at 10:40 AM, Sean P. DeNigris s...@clipperadams.com 
 wrote:
 
 Mark Bestley wrote
 For OSX what should probably happen is that the image is saved to 
 ~/Library/Application Support
 
 That doesn't sound right to me. How about the use case where I have a
 portable image on a USB stick? I don't want to make a local copy of the
 image, just run it. I get putting the VM in a shared predictable location,
 but why the image? How does one then keep multiple Pharo 2.0's on the same
 computer?
 
 We will not do it like this.
 
 What is planned is that the Pharo installation contains a template (read 
 only).
 When you open the template, it will ask you to save the image to your home 
 directory.
 
 Images are like documents, it should be very easy to have a lot of them.


why should we decide where people should put them.
I put the images where I want them to be. 


 I should write down what is the plan… sadly I have too much else to do, so 
 this
 will take a while.
 
   Marcus




Re: [Pharo-project] [Pharo-users] [ANN] Phratch: Scratch on Pharo2.0

2013-03-24 Thread Stéphane Ducasse

On Mar 24, 2013, at 8:56 PM, jannik.laval jannik.la...@gmail.com wrote:

 Hi Pharoers,
 
 I am porting Scratch and BYOB on Pharo 2.0. The name of the project is 
 Phratch.
 To begin, I took Scat (a port of Scratch on Pharo1.3) and modify it to make 
 it work on Pharo 2.0. For that I integrated FileSystem.
 Then, I took BYOB and port it in the project.

Excellent!

 I have some bugs, but the main features are working.
 The main issue is that it is slow. I will investigate that too.
 
 The goal for me is to use it for teaching software engineering and robotics.
 I hope to use Phratch and Pharo 2.0 to create new features.
 
 The project is on SmalltalkHub, and a google code page is available, mainly 
 for reporting issues: https://code.google.com/p/phratch/
 
 To download Phratch, just run this code:
 
 Gofer it
url: 'http://smalltalkhub.com/mc/JLaval/Phratch/main';
package: 'ConfigurationOfPhratch';
load.
 (Smalltalk at: #ConfigurationOfPhratch) loadBleedingEdge.

I loaded it using the pharo20 one click. 
But it does not work. Apparently got blocked in WeakSet something. 
Loading NScratch….

I reloaded. And it seems ok.

How do we open Scratch?

Stef

Esteban it got blocked in this method.

initialize: aString
We fill RPackageSet with a collection of matching RPackage. 
 Since this is accessed a lot of times, we optimized the code for speed 
on resolution, and now 
we have what you see.  
This code should be something like this: 

packageName := aString.
packages := RPackageOrganizer default packages 
select: [ :each | each name = packageName or: [ each name 
beginsWith: packageName, '-' ] ]

sadly, that's incredible slow, so, we changed. 
BEWARE: Don't change this code without paying attention to speed. 

| size separatorIndex first |

self initialize.

packageName := aString asSymbol.
size := packageName size.
first := packageName at: 1.
separatorIndex := size + 1.
packages := RPackage organizer packages 
select: [ :each | | eachSize |
eachSize := each name size.
(size == eachSize and: [ packageName == each name ]) 
or: [ 
eachSize  size 
and: [ 
(((each name at: 
separatorIndex) == $-)
and: [ (each name at: 
1) == first ])
and: [ (each name 
beginsWith: packageName) ] ] ] ]




[Pharo-project] New consortium member: Thanks a lot High Octane!

2013-03-22 Thread Stéphane Ducasse
We are really happy to announce that High Octane is a new member of the 
consortium.
Thanks a lot for your trust, Philippe!

http://www.highoctane.be/sections/vision.html

Stef for the Pharo community!


[Pharo-project] where is the inbox for 3.0?

2013-03-21 Thread Stéphane Ducasse




Re: [Pharo-project] Running tests on 2.0 and first impression

2013-03-20 Thread Stéphane Ducasse
 Publishing diffs to the mailing list certainly works great for Squeak.
 Squeak's commit rate is rather less than Pharo's, so it might be too
 much... but the easiest way to find that out is just switching the
 diff publishing on and seeing how people feel.

Yes I thought about that too. especially since 3.0 will be again a strong 
release.

Stef


[Pharo-project] Log of the retrospective analysis from Pharo 2.0

2013-03-15 Thread Stéphane Ducasse
Hello happy pharoers

Since Pharo2.0 will be released pretty soon, we led a retrospective analysis to 
learn and improve our process.
Here are the notes taken by clement from the meeting led by esteban with all 
the team here. 

Pharo 2.0 Retrospective meeting by Esteban Lorenzo

The Good
BugTracker as Backlog
Sprint / mini - sprint / pair programming
Locking changes before release 
Community getting involved
Web doc
jenkins : the monkey, zeroconf script
Smalltalkhub
The Bad
Trello 
We need a place to backlog what to do. We should use the FogBugz bug tracker
Long development cycle (1 year), Focus problem : most things works but are not 
finished
We should have a 1 to 2 months cycle with a part where we introduce new things 
and a part where we only fix bugs. At the end of each cycle, Pharo should be 
stable. Each cycle should have a retrospective meeting. We should pair program 
every friday afternoons on Pharo improvements.
New failing test in Jenkins, Red builds on jenkins stayed forever
We need a clear separation between pharo and pharo contribution both on 
smalltalk hub and Jenkins to have a clean green front end to show to end users
In case of a red build, we need a quick meeting to pick someone to fix it.
We need to fix the red builds on the friday' mandatory mini sprint
Integrator bottleneck
More intelligent monkey
better tools (spec tool idea from Esteban where you just click accept and the 
slce is integrated)
New features accepted only with tests and comments
Only slices accepted no more change sets
Pointless discussions on the mailing list
Documentation : class comments, ...
do not integrate undocumented features
add code critics features in the monkey
change the template of the class comment
The Ugly
2 weeks lost : broken image during ESUG
2 weeks lost : beginning of the year : no VM working, jenkins couldn’t test 
things.
- we will staged development.
Communication failed : team and community
For new features, send more mails to the Pharo or RMOD mailing list and less to 
the RMOD mailing list or private mails between few people
Infrastructure
VM : stability
Stability : 1 VM release per Pharo release. 1 official Vm which is not just 
some VM from a build.
Stability : VM not release if an acceptance list does not work with the VM. The 
acceptance list is for now all the Pharo core, seaside and Moose



[Pharo-project] the PharoTeam right now

2013-03-12 Thread Stéphane Ducasse

http://www.pbase.com/giancarlob/image/91276919
or kind of :)

Meteo France called the 25 cm of snow falling on us a remarkable event.

the last bite of winter is bitting us hard :)
Stef




[Pharo-project] some little aif files

2013-03-12 Thread Stéphane Ducasse
Hi guys

the sound system requires to have some sounds loaded in the sound library.
Befre it was croak, swirl….
Now since the files used to create the objects are probably gone from age, I 
would like to find some little
aif files that we can load in the system.
does anybody have an idea of where I can find such aif free files?

I could serialize the objects from the squeak image but I do not know if this 
is a good idea.

Stef


[Pharo-project] about communication and collaboration

2013-03-12 Thread Stéphane Ducasse
Dear Pharoers

last january I visited another lab and I realised that the Pharo Team was not 
good at systematically telling what we were doing.
I got quite frustrated by that situation, especially because we are working 
hard to build a better system.
So we brainstormed when I came back and we want to apply the same ideas that 
what we do for our research team.

For our research team every monday we get a simple mail that tell us to say to 
the others what we did and what we
plan to do. Simple, easy. 
Then after people of the rmod team can discuss if they want more. 

We want to do the same with pharo.
Often this is not that we are not doing things. Often we are doing boring, 
tedious stupid but $^%*^ important tasks and we want that you know it.
In addition we want to share on what we are weekly working. So that you can be 
more engaged to 
join and collaborate with us.

So we will launch an experience and see. For now we will send a notification 
every two weeks.

the Pharo Team


Re: [Pharo-project] Getting SoundRecorder to work: how?

2013-03-12 Thread Stéphane Ducasse
did you try with the new Sound configuration I just published on SmalltalkHub?

On Mar 12, 2013, at 5:11 PM, p...@highoctane.be wrote:

 sr := SoundRecorder new.
 sr startRecording.
 sr stopRecording.
 sr playback.
 
 doesn't seem to do anything properly and gives me a DNU inside the playback...
 
 Clues?
 Phil
 




Re: [Pharo-project] access to pharoextras repository

2013-03-12 Thread Stéphane Ducasse
Hi doru

I addressed your point in 
XMLParser
XMLWriter
OPAX
Pastell
Soup

and I will pay attention that default always load the tests too.

Stef



Re: [Pharo-project] access to pharoextras repository

2013-03-12 Thread Stéphane Ducasse
I added a section with this discussion to the Metacello chapter :)

Stef 

On Mar 10, 2013, at 1:33 AM, Ben Coman b...@openinworld.com wrote:

 stephane ducasse wrote:
 That is why, either we explicitly put the 'Tests' group in the 'default' 
 group,

 
 - I would go for this behavior because I do not like implicit behavior when 
 this is about configuration
 and I will start to write comments in all the configurations 
  default is used when nothing is specified by default it will load 
 everything but better specify what everything is
 
 
 So once we agree I will start editing configurations like a mad.
 
 Stef
 
  
 In you book chapter about Configurations you might hint why it is preferred 
 to include Tests in default.  For me...
 * people fresh to the package get some examples.
 * encourages new tests to be added.  Having to find  load a 'Tests' group at 
 a later time would be an impediment to this.
 
 You might also consider a convention for an 'Examples' group.
 
 
 




Re: [Pharo-project] WhatsUp from: 2013-03-11 until: 2013-03-24

2013-03-12 Thread Stéphane Ducasse

On Mar 12, 2013, at 9:04 PM, Tudor Girba tu...@tudorgirba.com wrote:

 Hi,
 
 First of all, I think this is a very cool initiative.


thanks
I really hope that it will improve our sharing and community building :)

Stef


 
 ### Here's what I've been up to since the last WhatsUp:
 
 - Working on getting Moose to work on Pharo 2.0
 - Extended (and documented) the CommandLineHandler to run multiple tests 
 based on context specific requirements
 - Attracted sponsors for PharoConf + MooseDay to make the event free to attend
 - Annoyed people with requests for giving talks and tutorial at PharoConf + 
 MooseDay
 - Brainstormed and reviewed with Andrei around a very cool (really :)) and 
 modular debugger model
 
 ### What's next, until 2013-03-24 (*):
 
 - $NEXT_STEPS_TOWARDS_WORLD_DOMINATION
 
 (*) we'll be expecting results by then ;)
 
 - Find a solution for running Moose on a Pharo 2.0-compatible VM
 - Organize the PharoConf + MooseDay
 
 Cheers,
 Doru
 
 
 --
 www.tudorgirba.com
 
 Things happen when they happen,
 not when you talk about them happening.
 
 




[Pharo-project] Help with MenuMorph

2013-03-11 Thread Stéphane Ducasse
HI guys

I'm trying to fix all the sound interface for 2.0 and I got trapped into 
MenuMorph. How do I schedule a menu and get its selected value?
I have to convert code like the following one.



| aMenu sz on |
aMenu := MenuMorph new title: ('FFT size (currently {1})' translated 
format:{fft n}).
((7 to: 10) collect: [:n | 2 raisedTo: n]) do: [:r | aMenu add: r 
printString action: r].

sz := aMenu popUpInWorld.
^
how can I get the selected value?


sz ifNil: [^ self].
on := soundInput isRecording.
self stop.
fft := FFT new: sz.
self resetDisplay.
on ifTrue: [self start].




[Pharo-project] Menu :)

2013-03-11 Thread Stéphane Ducasse
I'm sure that we can do better...


popUpAt: aPoint forHand: hand in: aWorld allowKeyboard: aBoolean 
Present this menu at the given point under control of the given  
hand.
| evt |
aWorld submorphs
select: [ :each | (each isKindOf: MenuMorph)
and: [each stayUp not]]
thenCollect: [ :menu | menu delete].

self items isEmpty
ifTrue: [^ self].

(self submorphs
select: [:m | m isKindOf: UpdatingMenuItemMorph])
do: [:m | m updateContents].
self layoutItems.
precompute width
self
positionAt: aPoint
relativeTo: (selectedItem
ifNil: [self items first])
inWorld: aWorld.
aWorld addMorphFront: self.
Acquire focus for valid pop up behavior
hand newMouseFocus: self.
aBoolean
ifTrue: [hand newKeyboardFocus: self].
evt := hand lastEvent.
(evt isKeyboard
or: [evt isMouse
and: [evt anyButtonPressed not]])
ifTrue: [Select first item if button not down
self moveSelectionDown: 1 event: evt].
self updateColor.
self changed



[Pharo-project] completion blocking ;)

2013-03-10 Thread Stéphane Ducasse
I typed on: then tab and I get on:send:to:  now I want on:send:to:value: so I 
move down but tab does not let me pick it.

Stef




Screen Shot 2013-03-10 at 9.52.06 AM.pdf
Description: Adobe PDF document


[Pharo-project] MorphicEventHandler behavior.

2013-03-10 Thread Stéphane Ducasse
Hi fernando

May be you know more than me on MorphicEventHandler.

Gofer new
 squeaksource: 'PharoNonCorePackages';
package: 'Sound';
package: 'SoundMorphicUserInterface';
load.



While trying to make 
PianoKeyboardMorph new openInWorld
(which works in 1.4 and does not in 20).

It breaks here:

-
mouseUpPitch: pitch event: event noteMorph: noteMorph

noteMorph color: ((#(0 1 3 5 6 8 10) includes: pitch \\12)
ifTrue: [whiteKeyColor]
ifFalse: [blackKeyColor]).
soundPlaying ifNotNil: [soundPlaying stopGracefully].

pitch is nil because notify:from: uses valueParameter which is nil.
-

mouseUpPitch is invoked by notify: anEvent from: sourceMorph which is invoked 
by notifyMorphsOfEvent: anEvent ofType: eventType from: sourceMorph

notify: anEvent from: sourceMorph
| arity |
recipient ifNil: [^ self].
arity := selector numArgs.
arity = 0 ifTrue:
[^ recipient perform: selector].
arity = 1 ifTrue:
[^ recipient perform: selector with: anEvent].
arity = 2 ifTrue:
[^ recipient perform: selector with: anEvent with: sourceMorph].
arity = 3 ifTrue:
[^ recipient perform: selector with: valueParameter with: 
anEvent with: sourceMorph].

^^^
self error: 'Event handling selectors must be Symbols and take 0-3 
arguments'

notifyMorphsOfEvent: anEvent ofType: eventType from: sourceMorph
| result |
result := false.
((subscriptions includesKey: eventType) not or: [ (subscriptions at: 
eventType) isEmpty ])
ifTrue: [ ^false ].
(subscriptions at: eventType) do: [ :s | result := result | ((s notify: 
anEvent from: sourceMorph) == true) ].

^

^result


The idea is that morphs get notified when a certain event occurs so when we 
look at the morph creation and event registry we get:


The buildKeyboard create morph and define event with a given value that will be 
used
on: #mouseDown send: #mouseDownPitch:event:noteMorph: to: self 
withValue: i-1*12 + (#(2 4 7 9 11) at: j)
below:


buildKeyboard
| wtWid bkWid keyRect octavePt nWhite nBlack |
self removeAllMorphs.
wtWid := 8. bkWid := 5.
self extent: 10@10.
1 to: nOctaves+1 do:
[:i | i = nOctaves ifTrue: [nWhite := 7.  nBlack := 5]
ifFalse: [nWhite := 1.  nBlack 
:= 0 High C].
octavePt := self innerBounds topLeft + ((7*wtWid*(i-1)-1) @ -1).
1 to: nWhite do:
[:j | keyRect := octavePt + (j-1*wtWid@0) extent: 
(wtWid+1)@36.
self addMorph: ((RectangleMorph newBounds: keyRect 
color: whiteKeyColor)
borderWidth: 1;
on: #mouseDown send: 
#mouseDownPitch:event:noteMorph: to: self
withValue: 
i-1*12 + (#(1 3 5 6 8 10 12) at: j))].
1 to: nBlack do:
[:j | keyRect := octavePt + ((#(6 15 29 38 47) at: 
j)@1) extent: bkWid@21.
self addMorph: ((Morph newBounds: keyRect color: 
blackKeyColor)
on: #mouseDown send: 
#mouseDownPitch:event:noteMorph: to: self
withValue: 
i-1*12 + (#(2 4 7 9 11) at: j))]].
self submorphsDo:
[:m | m on: #mouseMove send: #mouseMovePitch:event:noteMorph: 
to: self;
on: #mouseUp send: 
#mouseUpPitch:event:noteMorph: to: self;
on: #mouseEnterDragging send: 
#mouseDownPitch:event:noteMorph: to: self;
on: #mouseLeaveDragging send: 
#mouseUpPitch:event:noteMorph: to: self].
self extent: (self fullBounds extent + borderWidth - 1)



Now I can understand that 
#mouseDownPitch:event:noteMorph: get notified with a value because this 
is what is written.
But I do not get why this would be the case with #mouseUpPitch:event:noteMorph:
since we simply get 
on: #mouseUp send: #mouseUpPitch:event:noteMorph: to: self;


And I do not get why this was working in 1.4










[Pharo-project] what do we do with SoundService?

2013-03-10 Thread Stéphane Ducasse
Hi guy

Sound has an AbstractSoundSystem and a Base and Dummy. Then in addition there 
is SounService.

SoundService is not doing much 

soundEnabled
^ self defaultSoundEnabled

defaultSoundEnabled
^DefaultSoundEnabled ifNil: [false]

toggleSoundEnabling
 self soundEnabled: self soundEnabled not



So we could just keep AbstractSoundSystem and deprecate SoundService.

Stef


Re: [Pharo-project] [Pharo-users] [squeak-dev] GSoC13: Google Summer of Code started, your ideas please!

2013-03-09 Thread Stéphane Ducasse
===

UIPainter

===

 Level: advanced

 Possible mentor: Stéphane Ducasse

 Possible second mentor: Esteban Lorenzano

 Description: The purpose is to offer a way to easily describe and create UI 
using a point and click interface.
This interface should be extendable, as well as the widget proposed. The 
Painter should also propose a simple way
to link widgets together, and to locally redefine behaviours.

 Technical Details: using Spec, the UIPainter should be able to generate the 
needed methods (and Layouts).
The UI corresponding class could also be generated.

 Benefits to the Student: A deep understanding of UI creation. A good set of 
knowledges about widgets interactions.
The students will also benefits of an understanding of Spec at all the levels.

 Benefits to the Community: The community will benefit of a new tool for 
generating UIs easily using the new platform independent UI framework.
A UIPainter will help developers by improving the widgets reuse and simply the 
process of UI creation.

===

Spec platform/framework Independence

===

 Level: intermediate

 Possible mentor: Stéphane Ducasse

 Possible second mentor: Nicolas Petton

 Description: The goal is to improve and ensure the platform independence of 
Spec. 
Indeed, one of Spec goals is to generate widgets on multiple UI rendering 
framework (Morphic, Seaside, etc).
The student could improve Spec by providing a set of widgets for multiple 
framework, and ensure the usability of Spec in different Smalltalk dialect.

 Technical Details: Currently running only in Pharo, Spec should be able to be 
used easily on Squeak.
One interesting target is to be able to use it in Amber by example.

 Benefits to the Student: the student will acquire knowledge and experience 
about different Smalltalk implementation.
He will also experience different UI framework, and trough Spec how widgets 
interact with each others.

 Benefits to the Community: The community will benefit of the coolness of Spec, 
and will also have a single way to define UIs
regardless of the framework used to render them.

===

Nautilus In Spec

===

 Level: intermediate

 Possible mentor: Stéphane Ducasse

 Possible second mentor: Benjamin Van Ryseghem

 Description: Nautilus is the new default browser for Pharo3.0. But because the 
UI is fully platform dependent, it can not be used in other dialects (contrary 
to OB by example).
The goal is to migrate the entire Nautilus UI to a Spec based version, ti be 
able to export Nautilus.

 Technical Details: Currently Nautilus is fully written using Morphic (and even 
have its own morphic widgets). The idea is to redefine the existing UI using 
Spec, rethink the way interaction between sub widget is done,
and provide a way to statically describe Nautilus UI.

 Benefits to the Student: the student will acquire knowledge about Morphic. He 
will also learn how Spec is working and its mechanisms for event propagation as 
well as widget static description.
He will also learn how to define new Spec widgets and how to link them to 
already existing Morphic widgets.

 Benefits to the Community: The community will benefit of a more modular UI for 
Nautilus (since every one can then specify its one Nautilus UI), as well as a 
browser which may be
used in different dialects.

===


Re: [Pharo-project] [Pharo-users] [squeak-dev] GSoC13: Google Summer of Code started, your ideas please!

2013-03-09 Thread Stéphane Ducasse
Janko

I sent some topics now I think that it would be better to edit directly the web 
site because else somebody will have to do it again.
So if you need I can edit directly a form. 

Stef


 Hi Stef,
 
 Post on the mailing list for each project idea by following this template:
 
  Level: (beginner, intermediate, advanced)
 
  Possible mentor:
 
  Possible second mentor:
 
  Description
 
  Technical Details
 
  Benefits to the Student
 
  Benefits to the Community
 
 Best regards
 Janko
 
 Dne 09. 03. 2013 13:46, piše stephane ducasse:
 Hi janko
 
 How do you want to proceed for the topics?
 I have a list of topics now where do we write them.
 
  - tool support rewrite rules
  - new generation debugger 
  - new change model and session manager (with martin dias)
  - improving roassal (with alexandre bergel et vanessa pena)
  - improving eyesee (with alexandre bergel et vanessa pena)
  - support touch event
  - UIPainter (with esteban lorenzano)
  - New widgets
  
 
 Stef
 
 
 Dear Smalltalkers,
 
 Time for your cool project ideas on this year Smalltalk GSoC!
 
 For now just express any idea you have here on the mailing list. Later
 we will together develop it to be in complete format together with two
 mentors needed. Deadline is end of Mart, so we have three weeks of time.
 To see how fully developed ideas look like please look at 2012 ones at:
 http://gsoc2012.esug.org/ideas.
 
 Note also that students yourselves can propose a GSoC project. So if you
 like to be a student on this year GSoC and have a nice idea, don't be
 shy and propose it here! The community will listen you and guide to the
 really nicely proposed project. Last year 6 student proposed projects
 were accepted and finished successfully!
 
 For the community, start looking around for students. Think about how to
 approach the universities near by you, do you know who to contact
 there, etc.
 
 We are namely preparing an application to this year Smalltalk Google
 Summer of Code under ESUG umbrella, as last year. If accepted, Google
 will pay few stipendiums to students on our Smalltalk projects.
 
 More on our special Smalltalk GSoC 2013 website:
 
 http://gsoc2013.esug.org
 
 I'm specially inviting mentors of all past GSoCs to rejoin the mentors
 mailing list, where we discuss all details about this year GSoC:
 
 http://groups.google.com/group/smalltalk-gsoc-mentors
 
 While students interested on GSoC please join a special Smalltalk GSoC
 mailing list for you:
 
 http://groups.google.com/group/smalltalk-gsoc-students
 
 Best regards
 Janko
 
 
 -- 
 Janko Mivšek
 Aida/Web
 Smalltalk Web Application Server
 http://www.aidaweb.si
 
 
 
 
 
 -- 
 Janko Mivšek
 Aida/Web
 Smalltalk Web Application Server
 http://www.aidaweb.si
 




[Pharo-project] Deprecating MetaRepoForPharo13

2013-03-09 Thread Stéphane Ducasse
Hello Pharoers

I suggest that we deprecate MetaRepoForPharo13 on squeaksource. We can either 
turn it as private or at least readonly.
What do you think?
I like cleaning….

Stef


[Pharo-project] is the latest Pharo VM beep enabled?

2013-03-09 Thread Stéphane Ducasse
Hi 

Beeper primitiveBeep but I do not get any sounds.

primitiveBeep
Make a primitive beep. Not to be called directly.
It is much better to use Beeper classbeep
or Beeper classbeepPrimitive
since this method bypasses the current
registered playable entity and does not
check SoundSettings classsoundEnabled.

primitive: 140
self primitiveFailed

Stef




[Pharo-project] Pharo consultants

2013-03-08 Thread Stéphane Ducasse
Hi guys

I just got a nice chat with a cool Pharo expert (Mariano) that is doing 
consulting and development around Pharo and this is a cool feeling to know that 
smart guys in our community can find nice jobs that keeps them busy in Pharo. 
I think that we should market the community much more, because I think that 
this is important for other companies
to know that they can find help with really talented people in our community. 
May be we should make more noise around:
Pharo: a community with smart developers for cool business

Stef







[Pharo-project] We should send the call for presentation for ESUG

2013-03-07 Thread Stéphane Ducasse
so what is the status for the registration server?

Stef



Re: [Pharo-project] [update 2.0] #20578

2013-03-05 Thread Stéphane Ducasse

On Mar 5, 2013, at 9:53 AM, Pavel Krivanek pavel.kriva...@gmail.com wrote:

 Hi,
 
 the problem is that you have added the new dependency on RPackage to
 the Kernel, namely to
 ClassDescriptionaddAndClassifySelector:withMethod:inProtocol:notifying:.

I think that RPackage should be in the core and we should remove categories. 

And UsersManager should not be in the image.

 
 I solved it with a next little hack in the loading script but we
 should rethink the role in RPackage in the kernel. And I think we
 should make our beta policy stricter to avoid serious changes like
 this and UsersManager integration in the beta stage.
 
 Cheers,
 -- Pavel
 
 On Sat, Mar 2, 2013 at 11:26 AM, Pavel Krivanek
 pavel.kriva...@gmail.com wrote:
 This update broke some Pharo Kernel jobs. I will look at it later.
 
 -- Pavel
 
 On Fri, Mar 1, 2013 at 3:16 PM, Esteban Lorenzano esteba...@gmail.com 
 wrote:
 20578
 -
 
 Issue 7617: make NBExternalEnumeration a subclass of SharedPool again
https://code.google.com/p/pharo/issues/detail?id=7617
 
 Issue 7605: moving a method into an extension does not notify the 
 monticello package
https://code.google.com/p/pharo/issues/detail?id=7605
 
 Issue 7590: Kill MC History Data (8MB of the image...)
https://code.google.com/p/pharo/issues/detail?id=7590
 
 Issue 7553: tons [delaySemaphore wait] process alive in image
https://code.google.com/p/pharo/issues/detail?id=7553
(this one for check if it is fixed)
 
 Diff information:
 http://ss3.gemstone.com/ss/Pharo20/NativeBoost-Core-EstebanLorenzano.116.diff
 http://ss3.gemstone.com/ss/Pharo20/Kernel-EstebanLorenzano.1324.diff
 
 
 




Re: [Pharo-project] XML-Support red tests

2013-03-03 Thread Stéphane Ducasse
Apparently in 1.2.1 the following method works for 1 5 #(1 2 3 4 5) 1

replaceFrom: start to: stop with: replacement startingAt: repStart
An ordered collection is growable, so a call to this can make the 
collection grow.
self makeRoomFor: (stop - self capacity).
array
replaceFrom: start + firstIndex - 1
to: stop + firstIndex - 1
with: replacement 
startingAt: repStart.
lastIndex := lastIndex max: stop + firstIndex - 1.


but not in 1.4, 2.0

where the code is 

replaceFrom: start to: stop with: replacement startingAt: repStart 
This destructively replaces elements from start to stop in the 
receiver 
starting at index, repStart, in the sequenceable collection, 
replacementCollection. Answer the receiver. No range checks are 
performed.

| index repOff |
repOff := repStart - start.
index := start - 1.
[(index := index + 1) = stop]
whileTrue: [self at: index put: (replacement at: repOff + 
index)]


at: anInteger put: anObject 
Put anObject at element index anInteger. at:put: cannot be used to
append, front or back, to an ordered collection; it is used by a
knowledgeable client to replace an element.
self ensureBoundsFrom: anInteger to: anInteger.
^array at: anInteger + firstIndex - 1 put: anObject



ensureBoundsFrom: fromIndex to: toIndex
(fromIndex  1)
ifTrue: [^self errorSubscriptBounds: fromIndex].
(toIndex + firstIndex - 1  lastIndex)
ifTrue: [^self errorSubscriptBounds: toIndex].


On Mar 3, 2013, at 9:10 AM, stephane ducasse stephane.duca...@free.fr wrote:

 Apparently they were green in in 1.2.1.
 This clearly shows why we need automated tools for that.
 
 Stef
 
 On Mar 2, 2013, at 10:16 PM, Stéphane Ducasse stephane.duca...@inria.fr 
 wrote:
 
 Hi 
 
 XML-support has two red tests in Pharo 1.4 and Pharo2.0.
 Does anybody know if they were one day green?
 
 I do not want to put on the CI server something red.
 I will check on 1.3 to see if worked. 
 
 Stef
 
 
 




[Pharo-project] about OrderedCollection new replaceFrom: 1 to: 5 with: #(6 7 8 9 10) startingAt: 1

2013-03-03 Thread Stéphane Ducasse
Hi guys

in 1.2.1 

OrderedCollection new replaceFrom: 1 to: 5 with: #(6 7 8 9 10) 
startingAt: 1
gave
an OrderedCollection(6 7 8 9 10)


while in 1.4 and 2.0 
OrderedCollection new  replaceFrom: 1 to: 5 with: #(6 7 8 9 10) 
startingAt: 1 
raised an error

Do you have an idea how I can handle that? Because XMLObservableList and 
XMLOrderedList implements 
replaceFrom: to: with: startingAt:

because there is no self makeRoomFor: (stop - self capacity) invocation.


in 1.4 
replaceFrom: start to: stop with: replacement startingAt: repStart 
This destructively replaces elements from start to stop in the 
receiver 
starting at index, repStart, in the sequenceable collection, 
replacementCollection. Answer the receiver. No range checks are 
performed.

| index repOff |
repOff := repStart - start.
index := start - 1.
[(index := index + 1) = stop]
whileTrue: [self at: index put: (replacement at: repOff + 
index)]

at: anInteger put: anObject 
Put anObject at element index anInteger. at:put: cannot be used to
append, front or back, to an ordered collection; it is used by a
knowledgeable client to replace an element.
self ensureBoundsFrom: anInteger to: anInteger.
^array at: anInteger + firstIndex - 1 put: anObject


in 1.2.1

replaceFrom: start to: stop with: replacement startingAt: repStart
An ordered collection is growable, so a call to this can make the 
collection grow.
self makeRoomFor: (stop - self capacity).
array
replaceFrom: start + firstIndex - 1
to: stop + firstIndex - 1
with: replacement 
startingAt: repStart.
lastIndex := lastIndex max: stop + firstIndex - 1.


[Pharo-project] why cmd-M on a class is not equal to cmd-B

2013-03-03 Thread Stéphane Ducasse
Hi guys

this is at least two times that I reimplement this behavior

why cmd-b on a symbol is not equal to cmd-m
why cmd-m on a class name is not equal to cmd-b

so boring…. this idea that there is a difference between implementor and browse 
is plain bad.

Stef





[Pharo-project] about run tests from nautilus

2013-03-03 Thread Stéphane Ducasse
Hi ben

I do not know if you saw this behavior but when I press the button on the class 
of a test methods that are not tests 
are also executed and reported as failures.
For example I got

XMLNodeTestshould: aBlock enumerate: aCollection
| enumerated |

enumerated := OrderedCollection new.
aBlock value: [:each | enumerated add: each].
self assert: enumerated = aCollection asOrderedCollection.

executed while it is an helper.
With the testrunner I get a class with 100% green tests now.
but not with nautilus.

Stef


[Pharo-project] About XMLParser

2013-03-03 Thread Stéphane Ducasse
Hi 

I saw that some change in the XML parser were commited on the gemstone 
repository.
Does it means that this is only for gemstone?
Should I take take of them in the new ConfigurationOfXMLParser I'm building?
I cannot test gemstone so I'm dealing with it right now.
still I was wondering if some of the changes should be push in the main branch 
or not.

Stef


[Pharo-project] About development on symbolic versions

2013-03-03 Thread Stéphane Ducasse
Hi dale

for pharo 3.0 alpha I want the following setup.

I want to monitor all the pharo-contribution using jenkins. So is there a 
pattern to make sure that at the same 
time I can load the stable version of the project on 2.0 but the development 
baseline for the 3.0 (which may match the 20 if no change are made)?

for example for XMLParser I have 

stable: spec
symbolicVersion: #'stable'

spec for: #'common' version: '1.1'.


now what should I write for development?

development: spec
symbolicVersion: #'development'

spec for: #'common' version: 

Thanks  


[Pharo-project] XMLParser green bar on ci.inria.fr/pharo-contribution

2013-03-03 Thread Stéphane Ducasse
Hi guys

so we have a first version of XMLParser migrated to SmalltalkHub and with tests 
running on 
our cool integration server.

http://ci.inria.fr/pharo-contribution
I will continue with OPAX/Pastell

and migrate SOUP to use this new version of XMLParser.

Stef


[Pharo-project] Pastell is now migrated to SmalltalkHub and has a nice CI job

2013-03-03 Thread Stéphane Ducasse
Hi guys

Pastell is now migrated to SmalltalkHub and has a nice CI job

https://ci.inria.fr/pharo-contribution/

Did I said that I love continuous integration :).

So col





[Pharo-project] about method lookup

2013-03-03 Thread Stéphane Ducasse
Hi

I'm rethinking about my objvlisp lecture. In this lecture I'm talking about 
building the objVlisp kernel in Smalltalk.
Now everything is working well except the error handling when a method is not 
found with different arguments 
than the original. Methods are represented with blocks having different number 
of arguments. 

I have several send messages (I should simplify this in the future) 
--
binarySend: selector with: argument 
send the message whose selector is selector to the receiver. The 
arguments of the messages
are an  argument. The method is lookep up in the class of the 
receiver. 
self is an objObject or a objClass.

| ans |
ans := (self objClass lookup: selector for: self) value: self value: 
argument.
^ ans

send: selector withArguments: arguments 
send the message whose selector is selector to the receiver. The 
arguments of the messages
are an array arguments. The method is lookep up in the class of the 
receiver. 
self is an objObject or a objClass.

| ans |
ans := (self objClass lookup: selector for: self)
valueWithArguments: (Array with: self) , 
arguments.
^ ans

lookup is as simple as 
--

lookup: selector for: anObjObject 
look for the method named selector starting in the receiver. 
The lookup is done for a message sent to anObjObject. self is an 
objClass

^(self doesUnderstand: selector)
ifTrue:  [ self bodyOfMethod: selector]
ifFalse:  [self objName = #ObjObject
ifFalse:  [ (Obj giveClassNamed: self 
objSuperclassId) lookup: selector for: anObjObject.]
ifTrue: [ anObjObject objClass lookup: #error 
for: anObjObject]]

Now the problem is that error redefinition only works if the same number of 
arguments are used and this is not nice. 

For example error redefinition works:
---
testErrorRedefinition
(self  run: #testErrorRedefinition)

self should: [aPoint unarySend: #zork] raise: Error.

(pointClass at: pointClass offsetForMethodDict) at: #error
put: ([ :superClassOfClassDefiningTheMethod | [:objself  | 33]] 
value: objectClass).

self assert: (aPoint unarySend: #zork) = 33.


I could use cull: or something like that to be able to execute the block 
representing the error message
But I have the impression that I need a way to say that the lookup failed and 
that the arguments should be packed in a message object. 

I looked in the StackVM to see how the arguments were handled: how do we go 
some 


lookupMethodInClass: class
| currentClass dictionary found |
...
currentClass := class.
[currentClass ~= objectMemory nilObject]
whileTrue:
[dictionary := objectMemory fetchPointer: MethodDictionaryIndex 
ofObject: currentClass.
...
found := self lookupMethodInDictionary: dictionary.
found ifTrue: [^currentClass].
currentClass := self superclassOf: currentClass].
...

Cound not find a normal message -- raise exception #doesNotUnderstand:
self createActualMessageTo: class.
messageSelector := objectMemory splObj: SelectorDoesNotUnderstand.
^self lookupMethodInClass: class



Am I correct to believe that createActualMessageTo: eats up the call args and 
does basically what I would like to do

Stef


[Pharo-project] added bitmapCharacterSet to STHUB and CI :)

2013-03-02 Thread Stéphane Ducasse
Hi 

in my slow but steady effort to migrate important project to SmalltalkHub and 
add CI to cover them, I migrated 
BitmapCharacterSet (adding configuration of …)

I updated the XMLWriter ci configruation to point to PharoExtras. 
I added one CI job for OrderPreservingDictionary

I love https://ci.inria.fr/pharo-contribution/

So next step is XMLParser and Pastell.

Stef


[Pharo-project] XML-Support red tests

2013-03-02 Thread Stéphane Ducasse
Hi 

XML-support has two red tests in Pharo 1.4 and Pharo2.0.
Does anybody know if they were one day green?

I do not want to put on the CI server something red.
I will check on 1.3 to see if worked. 

Stef



[Pharo-project] Release of the Pharo consortium web site

2013-03-01 Thread Stéphane Ducasse
Hi guys

After some efforts, we are proud to announce the consortium around Pharo. 

http://consortium.pharo.org  

With such consortium, companies and academic partners will be able to 
collaborate and sustain the development of the Pharo environment and ecosystem. 
Today we announce the release of the beta version of the official consortium 
website.

Invest in your future, participate to the consortium!

Our goal is to be able to pay a couple of full-time engineers to build a bright 
future for everyone.

Thanks 
Esteban for the effort, 
lusy for the design, and 
our first members: 
Inria, VMWare, yesplan, 2denker, madEnvironment, BetaNine, 
Versus for their trust

We wish you a lot of business and success!

The Pharo Team


[Pharo-project] Stressing SmalltalkHub :)

2013-02-26 Thread Stéphane Ducasse
Hi guys

I started to migrate Pharo 1.4 to SmalltalkHub to stress it a bit :)
Nicolas was curious to see and he loves to see all the packages getting 
published there.
So I could not resist (my upload bandwidth suffered :).

It means also that SmalltalkHub will have to be load balanced in the future 
because I got some 
problems (reported to nico).

Stef





[Pharo-project] Green CI for Soup :)

2013-02-22 Thread Stéphane Ducasse
Hi guys

Yet another ci script running green 

https://ci.inria.fr/pharo-contribution/job/Soup/

Stef



[Pharo-project] Fwd: CouchDB and Pharo

2013-02-21 Thread Stéphane Ducasse


Begin forwarded message:

 From: Stéphane Ducasse stephane.duca...@inria.fr
 Subject: Re: [Pharo-project] CouchDB and Pharo
 Date: February 21, 2013 12:41:12 PM GMT+01:00
 To: Jesus Mari Aguirre jmariagui...@gmail.com
 
 
 On Feb 21, 2013, at 10:58 AM, Jesus Mari Aguirre jmariagui...@gmail.com 
 wrote:
 
 Hi Stef!
 I have been working a lot in the CouchDB Jquery plugin and a 
 ConfigurationOfSCouchDB and now I'm working on Smalltalkize Mustache 
 templates. My idea is to have the new version for next week and start 
 writing the doc just the day after.
 
 excellent
 You should post that to the list
 
 I developed a new Albums application with a nice approach. All its code is 
 written in Smalltalk although the whole application runs in client side, 
 it's made using jquery couchdb driver and jquery mobile and covers 
 authentication, open/update/create/delete documents , uploading file 
 attachments and its renderization. It could be nice to guide the text.
 
 Sweet :)
 
 ConfigurationOfSCouchDB has several groups that will allow us to install 
 only what we need, for instance we have:
 default viewserver mustache jquerycouchdbplugin... I will detail it 
 in the document we are plaining to write.
 I've learn on ConfigurationOf... with the Metachello Paro 2.0 draft chapter, 
 very good job! Ah! the project is available in smalltalkhub, I pushed an 
 hour ago…
 
 Superbe
 Let me know when I can read something.
 
 
 Thanks for your suggestions 
 keep contact  
 
 
 2013/2/1 Stéphane Ducasse stephane.duca...@inria.fr
 
 On Jan 30, 2013, at 6:55 AM, Jesus Mari Aguirre wrote:
 
  Hi Stef!
   There are many kind of scenarios between Seaside and CouchDB, Although 
  I'm not a professional developer (This is not my job and it has never 
  been) CouchDBServer was my first serious incursion in Smalltalk since one 
  year ago).
 
 Cool :)
 
  First of all I would write some clarifications.
  -CouchDB is not only a NoSQL database, it is also an application server 
  and there are several API for this purpose (evently,mustache…).
  -SCouchDBViewServer project has just few thinks in common with 
  Seaside(templates integration and jquery experimental plugin),
 
 When I meant seaside, I wanted to refer to something less javascript or 
 plain html.
 
  -SCouchDBViewServer cooperates with CouchDB to create Views, Shows and 
  Lists with your data stored in CouchDB. Views are read by any client that 
  has a CouchDB Driver.
  -Shows and Lists are pure and STATIC HTML and Js rendered by the 
  function(BlockClosure) List using data(determined by the view in its url) 
  passed by couchDB. All of three are cached and won't be refreshed until 
  there were a modification in the related data and a client asked for this 
  data again.
  -Main goal of the SCouchDDB.application category is creating a “CouchApp” 
  ‘like environment.
  -Mustache templates are useful in show and lists and this was the main 
  goal when I ported from javascript.
  -Mustache.seaside contains the WAMustacheTag class allowing Mustache and 
  Seaside interaction.
   -SCouchDB.jquery is an attempt to integrate the js jquery couchdb driver 
  in seaside-jquery. But I have had no time enough to depurate and learn how 
  seaside tags and jquery work on seaside.
 
 
 Probably that we should explain that in the chapter
 
  After all of this very long clarification list….I would suggest some 
  scenarios:
 
  Deployment scenario
  -SEASIDE DEPLOYMENT WITH COUCHDB.
  - CouchDB Installation
  - CouchDB configuration to redirect calls to Seaside. The most difficult 
  is seaside configuration side (paths to access libs,CCS…)
  - Serving Files with CouchDB.(That could be the hardest work…we can use an 
  app with all files attached…could be interesting )
  -loading SCouchDBViewServer project
  Persistence scenario
  -SEASIDE PERSISTENCE WITH COUCHDB
  -Create a new database.(easy…it’s in my tutorial)
  - Store/load a data model in CouchDB.  (easy…it’s in my tutorial)
 
  -SEASIDE USING JQUERY-MOBILE and COUCHDB
  -If we have the application model in seaside….it will be a jquery mobile 
  tutorial.
  -
  -USING MUSTACHE TEMPLATES ON SEASIDE
  Very polemical…There are a lot of discussions about/against this topic.
  -Loading Mustache project
  -Using Templates (easy, I have examples)
  -passing data to the templates.
 
 
   “ jesus I think that it would be good to have some configurationOf for 
  Mustache and SCouch”
  Yes,it’s true, Stéphane, but first of all I have to lean how a 
  configurationOf it’s done… I will try to do it
 
 I can help if you want.
 I wrote also a (too) long chapter on it and we are working on tools to help 
 peoplem
 
  What scenario do you think is more important for you? To me all of them 
  are interesting!
 
 The text does not have to be long but show some key points and kind of 
 hand-ons
 I would say one where we do not have the tutorial of the other

[Pharo-project] Pharo brainstorming workshop to produce Request For Improvements

2013-02-21 Thread Stéphane Ducasse
Hi guys

we often meet to hack together and I would really like to take the time that 
as a group we think about the improvements we want for the system.
For example luc and noury told me that the finalization for socket was brittle 
or combersome to use
and I imagine many other cases.

I would like that we collect them so that we can address such points.
So it would be good if we could organize a workshop where we do not code but 
produce 
Documented Requests for Improvement.

Name

Description: one line description

Problem: 

Solution: 

What do you think?

Stef






[Pharo-project] About Pharo extras

2013-02-21 Thread Stéphane Ducasse
Hi Pharoers

We got a discussion in the team to see how we will handle packages that are not 
in the Pharo image but that 
some of us maintain or participate to maintain. For example Soup and XMLWriter, 
XMLSupport….
ProfStef,….


We decided to create a separate team on SmalltalkHub named PharoExtras to host 
such projects.
http://smalltalkhub.com/#!/~PharoExtras/

Everybody is welcome to be member and to help us. We want that each of these 
projects get also associated with 
a jenkins job that runs automatically the tests of the projects. Like that we 
can immediately see if a change get an impact on 
the close ecosystem. 

I started with camillo to do it for XMLWriter and I will do it some the 
projects I'm using. 
https://ci.inria.fr/pharo-contribution/job/XMLWriter/
http://smalltalkhub.com/#!/~PharoExtras/XMLWriter


Stef





[Pharo-project] Migrating ProfStef from Squeaksource to PharoExtras

2013-02-21 Thread Stéphane Ducasse
Hi guys

I'm migrating ProfStef to SmalltalkHub/PharoExtras.
I'm also copying the configurationOf from MetacelloRepository and I will produce
a new configuration for 2.0 and for SmalltalkHub.

Stef


Re: [Pharo-project] Metacello issues on Pharo 2.0

2013-02-20 Thread Stéphane Ducasse
Dale

We are investing massively on metacello so now this is important for us to know 
if you will continue 
to maintain it or not.
Because if this is not the case then we will have to rethink our strategy.

Stef



 Christophe,
 
 I'm not exactly sure what your problem is ... 
 
 I have to admit that I haven't kept up with Pharo2.0 since last summer when I 
 couldn't use Pharo2.0 for development because of OsProcess issues. I know 
 that recently those issues have been cleared up, but I haven't had the time 
 to return to Pharo2.0 and check things out (I'm facing more issues with 
 getting PHaro2.0 to work with travis-ci, etc. so it will be a big undertaking 
 for me to fully support Pharo2.0). 
 
 I've got a fairly recent Pharo2.0 image and it looks like there are 
 pharo-specific versions for each of the packages loaded into Pharo2.0. I 
 assume that the tests are all passing with those versions, although I can't 
 say whether or not the tests had to be modified to pass in Pharo2.0 as well 
 ... which is likely to be a source of one of the problems you are looking at 
 ...
 
 I don't know where the configuration exists that is being used to manage the 
 changes for Pharo2.0 and the tests, but that is probably a good starting 
 point ... if you are not using the proper Pharo2.0 configuration, you won't 
 be getting the proper packages loaded ...
 
 Dale
 - Original Message -
 | From: Christophe Demarey christophe.dema...@inria.fr
 | To: metace...@googlegroups.com
 | Cc: Pharo-project@lists.gforge.inria.fr
 | Sent: Friday, February 15, 2013 6:09:27 AM
 | Subject: [Pharo-project] Metacello issues on Pharo 2.0
 | 
 | Hi all,
 | 
 | I have issues with Metacello on Pharo 2.0
 | 
 | If I load and run tests for the version used in Pharo1.4, it gives:
 | (ConfigurationOfMetacello project version: '1.0-beta.31.1.4') load: 'Tests'
 | 
 | 
 | 
 | Metacello packages shipped with Pharo 2.0 are all packages derived from the
 | latest stable Metacello baseline (1.0-beta.31.1.5) except the
 | MetacelloToolBox.
 | If I load and run tests packages with version described in the latest stable
 | Metacello baseline (1.0-beta.31.1.5), i.e. :
 | Metacello-TestsCore-DaleHenrichs.14 and
 | Metacello-TestsMC-dkh.351,
 | it gives (Pharo 2.0 #20547):
 | 
 | 
 | So, it seems there are some problems. Do we use the rigth versions of
 | Metacello packages?
 | 
 | Regards,
 | Christophe.
 | 
 | 
 | 
 Chr
 




[Pharo-project] SmalltalkHub

2013-02-17 Thread Stéphane Ducasse
Is there a way to remove a file from the repository?

Stef



[Pharo-project] Migrated XMLWriter to SmalltalkHub

2013-02-17 Thread Stéphane Ducasse
Hi guys

I migrated XMLWriter from Squeaksource to Smalltalkhub. I added a little test 
package and removed the fact that some 
old Collections-Support package!!! was loaded on top of new ones! Argh.


Stef


[Pharo-project] About migrating Pharo 1.0, 1.1 and 1.2 and 1.3 from ss to Smalltalkhub

2013-02-17 Thread Stéphane Ducasse
Hi 

I would like to migrate the complete history of Pharo to SmalltalkHub.

So I imagine that I will create a new project named Pharo1.0 under the Pharo 
team
We should do the same for Pharo2.0 at some point


When we will be start Pharo3.0 we should do the same so like that we will have

Pharo/Pharo1.0
Pharo/Pharo1.4
Pharo/Pharo2.0
Pharo/Pharo3.0

is is ok?

Stef


[Pharo-project] Citezen - SmalltalkHub/RMoD/Citezen

2013-02-17 Thread Stéphane Ducasse
Just a notification that I migrated Citezen to SmalltalkHub.

Stef



[Pharo-project] Migrated SS/Growl to Pharo/Archive

2013-02-17 Thread Stéphane Ducasse
Hi guys

since growl has been integrated to Pharo I migrated the SS project to the 
Pharo/Archive one.

Stef


[Pharo-project] RoelTyper - SmalltalkHub

2013-02-17 Thread Stéphane Ducasse
Just a notification that I migrated RoelTyper to SmalltalkHub. I added a 
configuration.

Stef


[Pharo-project] Aout community organization under SHub?

2013-02-17 Thread Stéphane Ducasse
Hi guys

I would like that under the PharoTeam we only get projects that are used for 
Pharo core more or less.
Then I think that it would be good to have a place to have Pharo projects such 
as XMLWriter, XMLParser, SOUP and other.
What do you think?

Do we create a new team called PharoEcosystem?

Stef






[Pharo-project] Publishing OrderPreservingDictionary to SmalltalkHub

2013-02-16 Thread Stéphane Ducasse
Hi guys

just to let you know that I'm migrating OrderPreservingDictionary from SS to 
SmalltalkHub.
I will also add a ConfigurationOf
So that we can base other configruations on this one.


Stef


  1   2   3   4   5   6   7   8   9   10   >