Sunday, December 29, 2013
Unification - a unification library for Smalltalk.
Unification is in computer science and logic an algorithmic process of solving equations between symbolic expressions. Now there is an unification library for Smalltalk available.
Friday, December 27, 2013
Thursday, December 26, 2013
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
SqueakJS - SqueakVM on JavaScript
Bert announced SqueakJS, a new Squeak VM that runs on Javascript. Really cool!
Read more here.
It is able to run the mini.image already - try the demo. Thanks Santa!
Read more here.
It is able to run the mini.image already - try the demo. Thanks Santa!
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.
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
So with this equipment and the new JetStorm project you can control your robot with Pharo.
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.
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
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:
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.
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/
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!
Premade images are available on the Moose CI. Nice!
Thursday, December 05, 2013
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.