Sunday, December 29, 2013

Thursday, December 26, 2013

PNtalk 2.0

PNtalk 2.0 is a modelling and simulation framework for Petri nets based on Pharo. Read more.

Tuesday, December 24, 2013

PunQLite - a new NoSQL wrapper for Pharo

I already reported about PunQLite, a binding for the NoSQL database UnQLite - but now it has become a full-fledged wrapper. Read more.

Sunday, December 22, 2013

Saturday, December 21, 2013

Gravel Smalltalk for JVM

Yet another Smalltalk for the JVM I first thought - but this time a real surprise since it not only aims to be a fully ANSI compliant Smalltalk implementation but is also heading towards modern language enhancements like optional typing, namespaces and traits.

It is called "Gravel Smalltalk" and is announced as a modern Smalltalk implementation for the JVM. It is using the ability on JVM to do #invokedynamic based on the JSR 292, similar to RTalk from Mark Roos that I already reported about.

But while RTalk is not open source and available to the community the new Gravel Smalltalk is already available and licensed under the very liberal Apache-2.0 License. I also do not know how it compares to Readline Smalltalk which is also running on the JVM.

The feature list of Gravel Smalltalk sounds promising:

 - Traits
 - Optional typing
 - Patching compiler
 - Full block closures
 - Resumable exceptions
 - Namespaces
 - Mirror based reflection facilities

Since I have all Java tools installed (JDK7, Eclipse, Maven, ...) it looks like I should clone the github repo with the code, fire up maven commandline and give Gravel Smalltalk a try this weekend.

Wednesday, December 18, 2013

Lego MindStorms and Pharo

The new Ev3 series from LegoMindstorms allows to plug a Wifi key and connect via TCP.

So with this equipment and the new JetStorm project you can control your robot with Pharo.

Read more


Phratch 1.0beta

Phratch, the port of Scratch in Pharo has a new release.
Read more.


Monday, December 16, 2013

Objective-Smalltalk

Objective-Smalltalk is an programming language dervied from Objective-C. Website lives on

http://objective.st

It is an experimental project from Marcel Weiher. Code is on github - I havent found any info on the license.


Sunday, December 15, 2013

Private Methods in Pharo

The nice thing on Smalltalk is that it is extensible without having to ask a language vendor.
Using this Camille Teruel created a small proof-of concept for adding private methods to Pharo.

Load the project "PrivateMethods" into your Pharo image. I tried with  Pharo3.0 Latest update: #30639.

Now create a new class

Object subclass: #Bar
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Foo'


Then implement a method that you mark as private using the pragma <private>

foo
<private>

^42

If you try to evaluate 

  Bar new foo

you will get the usual "Message not understood" as it is private.

But nonetheless you can call it from other private or public methods. Just implement a Bar>>bar method:

     bar
        "Call the private method"
^self foo

and evaluate

     Bar new bar

to get the answer to life, universe and everything ...

To make sure it is really private (instead of protected) just implement a subclass and call it from a subclass method. You will see it works.

Tuesday, December 10, 2013

Sunday, December 08, 2013

Pharocloud

Former "rackincloud.com" is now Pharocloud with new icon and new design.
Look at:  http://pharocloud.com/

Friday, December 06, 2013

Petit parsers

With the Petit parser for Smalltalk it is very easy to build parsers. There is an SQL parser, a Java parser, PHP parser, ... and a Delphi parser, one for the GraphViz dot language, and many more.

Premade images are available on the Moose CI. Nice!

Wednesday, December 04, 2013

Roassal 3D

The Roassal visualization engine now officially has a new member: Roassal 3D. Roassal 3d is about creating and animating 3d scenes. It is meant to visualize data. Roassal 3d recently got textures, translucence, additional layouts and various light models. It should work on Pharo 3.0, under MacOSX, Linux and Windows. Read the offical announcement. There is also some initial documentation available.