Monthly Archives: December 2014

Incremental improvements is good with many and often :)

14664 CompiledMethod and Context API should support negative compiled method header

14661 Integrating new bytecode set (part 2) Make CompiledMethod, InstructionStream and Decompiler independent from bytecode set

14659 Integrating new bytecode set (part 1)

14660 one test failing after integrating 14659

14644 Make NewVersionBrowser using a RingDefinition instead of class/selector

14648 Include CubeHelix gradient definition

14653 removeing or renaming raises an exception

14646 Allow to execute class methods marked with pragma

14649 defaultEventDispatcher should be one class variable

14629 Morphic click event and modal windows get stuck

14647 Allow to mark a class method with pragma to make it executable from Nautilus by just clicking

14650 Integrate GTools version 2.0.6

14651 Integrate GTSpotter 1.0.2

14634 Package Filter in Nautilus should use the last used filter when a new window is opened

14620 Jump from history entry does not work

14630 Pipes method highlighting

14627 Taskbar > Close all > windows to right

14626 Fix is required in NBFFICallout>>resolveType: to pass NBSQLite3s tests

14604 Revert to previous version in method versions list doesnt work

1610 Font browser button “Update” does load fonts but font list is not updated

10287 Nil out deferredStartupActions before leaving executeDeferredStartupActions:

14190 Nautilus Refactoring 10: Code-Critics cleanup

14609 Cannot show bytecodes anymore in Nautilus

14538 deprecated #padded:to:with: has two senders

14612 deprecated #padded:to:with: is deprecated but send by AsmJit

14595 remove old Spotlight

14514 New OrderedDictionary version without default value

14589 Integrate Spotter

13500 Renaming a class with a references to itself on the class side ==> DNU

14585 WidgetExamples exampleBasicControls does not work anymore

14588 Integrate GTools version 2.0.3

14280 TxModel configuration for integration

14579 update Athens

12027 Merge is incredibly slow with Polymorph difference tools, and unusable without

14566 ShoreLine Reporter Integration

13256 Pharo3 Theme when rounded corners are chosen is not consistent

6859 Finder not refreshing for new packages/classes

10797 Nautilus should exclude abstract TestCases

14571 Add String class>>#loremIpsum constant and dynamically sized filler text feature

12854 TestRunner package pane key multi-select not working

14565 ManifestKernelTest superclass should be PackageManifest

12810 Examine TrueTest and FalseTest for the possibility of a common superclass

14558 Monticello icon tools should indicate newer available package versions

14557 Failign test: #testUnCategorizedMethods

14560 InterpreterTest isAbstract should return true as it is abstract (without tests)

14553 FreeType default fonts not correctly loaded when image initializes

14556 Error: Instances of UndefinedObject are not indexable

14505 Better integration of Package Manifest

10719 Problem removing methods with more than one implementor using suggestions

12594 #runOnce: of StartupAction not working

14553 FreeType default fonts not correctly loaded when image initializes

14550 testTraitExplicitRequirementMethodsMustBeImplementedInTheClassOrInASuperclass failing 200 times

14288 Show binary literal for Floats in inspectors

14551 Pharo 4.0: Fix “Search Code” refactoring menu item in Nautilus

14546 Failed inherited tests should show home class (in TestRunner, like the debugger)

14549 Clean Critics and RBRule related information

14544 tiny code critique cleanup of NautilusRefactoring

14543 Pharo4.0 settings do have Appearance and appearance (twice the entries that is)

Amazon Web Services Dynamo for Pharo

The AWS SDK for Pharo Smalltalk enables Smalltalk developers to easily work with Amazon Web Services with Amazon DynamoDB. You can get started in minutes using Metacello and FileTree.

Thanks Sho for sharing this with us.

Another Pharo company: (look at the caroussel :)).

A toast!

Hello Pharoers,

(sorry for the long post)

I’m on holidays so I’ve been silent this latests days, but I didn’t want to let the opportunity goes to propose a toast 🙂
This year has been a great year (yeah, but not like those annoying facebook cards), one year where we have worked itensively in the patient consolidation of several lines of work.
This has been possible thanks to the great improvement that we have made in the Pharo process itself, which required (and still requires) a massive amount of effort: Since I arrived here (but not necessarily *because* I arrived here: this is the work of everyone in Pharo community, I’m just pointing to what I’ve seen and collaborated :P), we have changed a lot of things:

– we have deployed a solid CI infrastructure that can handle our integration cycle without too much complications. Even if we still find problems time to time, this has been an incredible step forward.
– thanks to this we have been able to change our release cycle from “it happens when we believe is ready” to time-boxed releases, so we have created Pharo 1.4, 2.0 and this year what, for me, is one of the most complete and cool releases (up to now) that we have produced: Pharo 3.0.
– We have increased massively the amount of tests in the system (no sure what is the percentage, but is high), so we have been able to change core parts in the system without causing too much pain to developers (yeah, we know there have been some errors some times, but well… “errare humanum est”, and I think we have learned from the process and now we do not make same mistakes… in any case they are new mistakes :P).
– We have made huge steps in the “Pharo modularisation project”, thanks to the Pharo-minimal images and work we have started to move all into a repeatable configuration (thanks to metacello and tools developed for this).
– We have also incorporated the VM building to this process and testing cycle, so is a lot easier for everyone to build their own VM (if needed), and for us we can be sure (as sure as possible at least) VM is in good shape.
– We have improved documentation and release new books. People have working a lot in a lot of cool and instructive videos that have moved our “learning curve” several steps ahead.

And this is just one part of the “invisible, ant work of everyday”, in the visible part, I will not bore (more than needed :P) with details about previous releases, so I will just point some of the great things we have made for the upcoming release, Pharo 4:

– Thanks to GTools, we are slowly going to a better set of tools, with new ways of see/handle old things. This is the most visible change this year (and it has caused the most flamed wars, but well… we are a passionate community). This release we have a new inspector, playground and spotter (god, spotter is sooooo cool!), next release we hope to integrate a new debugger and if planets align, a new Coder.
– We introduced OSWindow as a preview, a tool which will allow us to do a lot of years waited features: start UI from image instead from VM (transmiting to the used the decision of having one or not), multi-windows, a vectorial UI instead the good-but-old bitblt we have now.
– We enhanced Athens and introduced the new TxModel. We still do now achieve our objective of migrate our morphic drawing mechanism to athens, but this is a lot of work and will take some time.
– We have improved a lot the development cycle with the introduction of smart suggestions, the upcoming smart breakpoins and reflectivity.
– And of course, we have worked a lot in the cleaning of the system (an invisible and ungrateful work, believe me)

And this is just a glimpse, what I wrote this morning before breakfast, wanting to thank all of you to let me be part of this super cool community, and wanting to have a toast with you:

For a 2015 with more stories, more adventures, more Pharo!


Pharo+Bloc: a first quick tour of View and Morph layers

Alain Plantec announced a first video of Bloc, a new graphical frameworks.

– A new morph implementation: Morph + View, View for rendering, Morph for event management
– Rendering with Athens: scaling, rotating …
– Local coordinate system: morph bounds top left is always 0@0
– New layout management (Box, Border, Anchor …)
– Pluggable event managements
– New Alarm framework

FTP and WebDAV plugins for Pharo’s FileSystem


I just finished FTP and WebDAV plugins for Pharo’s FileSystem. This means you can now access remote FTP and WebDAV loactions with the exact same FileSystem API you are using to access local disks.

The project lives on Smalltalk Hub:!/~UdoSchneider/FileSystemNetwork

Details in the project README or in a Blog entry:

Best Regards,


PS: Support for Netware & Rumpus FTP Servers as well as S3 support is next 🙂

New release of Dr Geo

Dear fellow pharoers,

I am please to announce release 14.12[1] of Dr. Geo is ready for

Main changes appeared in the script system:

– script becomes first class citizen, understand defined as a Smalltalk
class; script calculus/side effect is defined in the #compute method,
– when building a script, the user first dictates the expected argument
– when using a script, only objects matching these argument types are
– the argument sent to a script instance are of type Costume, those from
a script you can modify the visual property of the arguments (i.e.
objects in the sketch),
– a script menu is now present to quickly use a script (as for
– the script system is incompatible with the previous one, sketch using
script need to be rewritten.

Thanks to read




Need an easy way to convert HTML into PDF for printing? The project can help you here.

If you want to use it from Pharo just check out:!/~TorstenBergmann/WKHTML2PDF

This project allows you to easily use the library. First select the

HTML2PDFConverter useExecutable.


HTML2PDFConverter useLibrary.

and then convert:

convert: ‘’
toFile: ‘pharo.pdf’

to get a printable version of the Pharo homepage. As ever docu is on the
STHub project website.

It uses NativeBoost to call the library and OSProcess to call the


HTML5 output for Roassal


We have worked very hard on a Roassal exporter for the Web.

Milton has produced the class RTHTML5Exporter, which may be simply invoked as: RTHTML5Exporter new export: aRoassalView.

Check this out:

Try moving the mouse above the circle or dots in the curve.

The html file you see from your web browser is the result of do-iting the following expression:
| c b c2 |
c := RTComposer new.

b := RTGraphBuilder new.
b view: c view.
b edges
connectFrom: #superclass;

b edges
if: [ :fromClass :toClass | toClass name beginsWith: ‘TR’ ];
connectTo: #dependentClasses;
color: (Color blue alpha: 0.3).

b nodes
if: [ :cls | cls name beginsWith: ‘RT’ ];
color: Color blue.
b nodes
color: Color red.
b layout cluster.

b global
normalizeSize: #numberOfMethods min: 5 max: 40 using: #sqrt;
alphaColor: 0.4.

b addAll: TRShape withAllSubclasses, RTShape withAllSubclasses.

b build.
c group.

c2 := RTCharterBuilder new.
c2 view: c view.

c2 interaction popup.
c2 extent: 300 @ 200.
c2 points: (RTShape withAllSubclasses sortedAs: #numberOfMethods).
c2 connectDotColor: Color blue.

c2 points: (TRShape withAllSubclasses sortedAs: #numberOfMethods).
c2 stackX.
c2 allY: #numberOfMethods.
c2 connectDotColor: Color red.

c2 axisX.
c2 axisY.
c2 build.
c group.

c layout: RTVerticalLineLayout new.
c propagateHighlightToAll.

legend := RTLegendBuilder new.
legend view: c view.
legend addText: ‘This is a demonsration of a combination of builders’.
legend addText: ‘The above visualization shows the dependencies between Roassal and Trachel shapes.’.
legend addText: ‘Curves indicate the distribution of the number of methods’.
legend build.

RTHTML5Exporter new export: c view.
c view

Talking to R from Pharo

Hello everyone,

I am glad to announce the first version of the RProjectConnector, a binding between Pharo and R using NativeBoost.

You can now call directly your R methods from Pharo:

data := (1 to: 1000) collect: #yourself.

res := (#acf asRFunctionWith: {data}) eval

To use it, you should copy the R libraries near the Pharo VM (see the documentation on SmalltalkHub to see how to proceed) and

Gofer it

smalltalkhubUser: ‘VincentBlondeau’ project: ‘RProjectConnector’;



Don’t forget to relaunch Pharo after the installation to be able to use the connector.

The sources are available on Smalltalkhub:!/~VincentBlondeau/RProjectConnector

if you want to participate, just ask me!