Wednesday, January 28, 2015

PharoDays2015 start

The Pharo Days 2015 conference starts today. You can follow some of the news with the Twitter hashtag: #pharodays2015

Object oriented implementation of numerical methods now OpenSource

Didier Besset offered his great book “Object-Oriented Implementation of Numerical Methods" to the community.

Read more here or directly grab the PDF.

GLORP Resources

Want to get used to GLORP, the ORM for Smalltalk to access a RDBMS from your favorite Smalltalk dialect. Then check out these resources:

Monday, January 26, 2015

MapReduce, Hadoop, and Cincom Smalltalk

Arden Thomas knows more.

Squeak for DiamondTouch

Sebastian pointed me to  today. Have not seen this page before.

The page includes a Squeak app for DiamondTouch (DiamondTouch table is a multi-touch, interactive PC interface). From the people page it looks like Jochen “Jeff” Rick helped shaping it, I know him from his Swiki implementation and Squeak and Pharo contributions like QRCode.

He wrote several apps in Smalltalk as you can see on his page. Nice!

Microkanren for Pharo

An implementation of ĀµKanren (an embedded Domain Specific Language for logic programming) for Pharo. The project is here (GitHub) and here (SmalltalkHub).

Pharo presentation in Mons

There is a Pharo presentation in Mons, 19.2.2015. Read more (french)

PharoCloud with PillarHub knowledge base

PharoCloud now uses own PillarHub to provide a knowledge base:

Also Pharo Launcher is part of their Pharocloud Image Store. Additionally the underlying cloud system provides support for Cairo graphics which makes it possible to run Pharo4 on it and access it via VNC.

Pharo Days 2015

will happen this week.

Friday, January 23, 2015

Dark Theme for Amber Helios IDE

The Amber Smalltalk Helios IDE also supports (similar to Pharo) a dark theme. Nice!

Smalltalk Research forum

Richard Eng (initiator of the Smalltalk Renaissance Program - SRP) will now use the Smalltalk-research forum!forum/smalltalk-research

to discuss all future SRP-related discussions. So if you want to participate in SRP go there.

Thursday, January 22, 2015

Wednesday, January 21, 2015


Grafoscopio is a mockup of a outliner interface made using Moose playgrounds. Is a learning exercise from a Smalltalk newbie but it aims to evolve to become a outliner interface for playgrounds that can be used for developing visual data narratives for open/garage/citizen science research.

A detailed description is here, video here and code here.

NBSQLite3 for Pharo, accessing RDBMS via Glorp and more Pharo persistence options

There is a new way/project to work with the SQLite3 embeddable database. While in the past there was already a SQLite wrapper project for Pharo based on FFI this new one is based on NativeBoost and also has some support for Glorp.

The project is called "NBSQLite3 for Pharo". Read more in my original announcement to get all the details.

Original binding for NativeBoost was written by Pierce Ng. After that I refactored the bits and pieces a little bit, repackages for better loading and added a ConfigurationOfNBSQLite3 to it (one can load the core independent from Glorp support, etc).
Additionally as the old version was hosted on SqueakSource3 it was also moved over to SmalltalkHub:!/~PharoExtras/NBSQLite3

The STHub project page includes some docu. Meanwhile I also fixed encoding issues between SQLite3 (UTF-8 storage format) and Pharo (Multibyte characters). The nice thing is that with SQLite as small embeddable database you just need a shared library (sqlite3.dll for Windows for example) and you can have a full relational database(s) in single files.

If you are already using Pharo 4 then you can directly install it right from the config browser. Guillermo Polito additionally now created a CI job for it on the DBXTalk CI Server.

You can use the NBSQLite3 package to directly access the relational database and send SQL commands to it. But this is very cumbersome. A better way is to use an object relational mapping framework and Smalltalk has the Glorp ORM framework for that.

If you want to use NBSQLite3 together with Glorp on Pharo4 then you should have a look at this short tutorial I wrote. Also have a look at Svens excellent article on how to use Glorp in Pharo with PostgreSQL and the various descriptions on the Glorp website.

As of today Debris (a company who also joined the Pharo consortium) made a project and code available to use different backends while still working with the Glorp interface. This project is called DebrisDB and is also hosted on SmalltalkHub. If you use it right, you can back your application by Fuel files, SIXX files, any serializer, Gemstone, or Glorp/SQL, without modifying your application code.

For sure database support for Pharo will move on in 2015 and open much more possibilities.

Side note: if you dislike relational databases you can even have a small embeddable NoSQL database with Pharo that also only requires a simple shared library to package with your app. It is called "UnQLite" and I already posted about the PUnQlite binding for Pharo. You can even use Mongo or others with Pharo. If this is an option for you do not forget to have a look at Voyage which makes persistency very easy. There is also SandstoneDB, Magma and SimplePersistence.

And not to forget that there is Gemstone allowing you to work with persistent object as if they were in the Smalltalk image.

Tuesday, January 20, 2015

invokedynamic.js and Smalltalk

Interesting talk from JSConf 2014 including Smalltalk.

RemoteAnnouncements in Pharo

There is an interesting project:!/~PharoExtras/RemoteAnnouncement to remote transfer Announcements in Pharo. Here is an extract from the docu:

RemoteAnnouncer makes it possible for RemoteAnnoucerProxy (in another image or on another machine across the network) to both publish and consume Announcements to and from the Announcer that I wrap. 

 I use the WebSocket protocol and STON serialization.

 I am remotely known by my port. I am either started as a publisher (#startPublisher) or as a consumer (#startReceiver)

Elegant Pharo code

Only a few examples how elegant Pharo code is. If you want to try yourself visit:

Smalltalk Reflections episode 8 is up - Garbage Collection

Episode 8 is on Garbage Collection.

Thursday, January 15, 2015

Roassal display on a super large screen

as the topic says. Read more (including a picture)

Pharo books built using CI

Writing books and writing software have a lot in common. One can write code or books in different languages and styles, let the story go different paths, a review is recommended before publishing, ...

I dont know if unit testing for books exist - but also a story in a novel has to follow some rules. For instance it would not make sense if the murder is the same victim or the detective in a crime story.

So if software can be assembled and built using a continuos integration server why not do the same for books and documentation.

The Pharo community addresses this as well: from today on all pharo books are now built in one place at the Pharo CI server.

Soon we will also have a page.

If you can wait for more have a look at:

Pharo bytecode debugger

With the Moldable Debugger framework it is possible to build specific debuggers in the Pharo universe. So beside the regular textual Smalltalk code debugger it is now possible to build other debuggers like for example
Exactly such a bytecode debugger was announced today allowing you to dig down to the level of bytecode instructions for the virtual machine. Read more.

Tuesday, January 13, 2015

Redline Smalltalk connects to the JVM world

Another infoworld article, this time about Redline Smalltalk.

New Memory Profiler for Pharo

Not only the memory monitor was updated as I wrote in my previous post. Also a new memory profiler is provided.

Read about this new Pharo tool here.

Pharo MemoryMonitor updated

Pharo memory was updated. Meanwhile the button issue is also fixed. You can get it right from the config browser within your Pharo image.

Work in progress: Roassal visualizations for the web

People from ObjectProfile work on moving Roassal visualizations to the web. Here is an example and another one.

If you dig depper and look behind the scenes of the page you will notice that they have a roassal.js JavaScript file with classes like TRMouseClick, RTDraggable, ...making this possible. Nice!

Smalltalk Reflections #007: Minimalism

New episode from SmalltalkReflections podcast on minimalism.

NLP for Pharo

A natural language processing toolkit for Pharo Smalltalk. I like the authors post on Twitter "I am having too much fun with Pharo Smalltalk hacking some natural language processing code".

Smalltalk: Yesterday, Today, and Tomorrow

Another essay from Smalltalk Renaissance

Monday, January 12, 2015

VALS semester of code using Pharo or Squeak

You want to participate in VALS semester of code (similar to Google summer of code, except that students work for class credit instead of money) using Pharo or Squeak. Then hurry up - deadline is 13.01.2015.

Saturday, January 10, 2015

Twitter #thingsPeopleBuiltWithSmalltalk

People tend to think that Smalltalk is not widely used as it is not in the (stupid) TIOBE index. But Smalltalk is not only a language but a fully dynamic object system (the language is just built in using objects and messages and fully adoptable which makes it hard to compare to regular programming languages). Compared to any other it is also the most pure object oriented systems.

Mostly other languages started to be "object oriented" for fashion reason without following good OO practice. There is also a very simple reason why Smalltalk is not highly ranked in TIOBE index. You do not need a webbrowser or compiler manual. You can concentrate on the problem solving and lively development in the Smalltalk system instead of googling for keywords, syntax and API's.

Nonetheless there are so many projects and applications that are built in Smalltalk - unfortunately they are not that visible in the first place even when some of them influence us daily like financial applications, container management, railway planning and ERP systems.

I was surprised today to see that someone started a #thingsPeopleBuiltWithSmalltalk campaign on Twitter. Nice initiative!

So if you know something built in Smalltalk then just twitter it:

 Lets make 2015 the "There is no excuse not to know about Smalltalk" year ;)

Jun4Pharo combined with Woden

The Woden 3D engine of Pharo and Jun4Pharo combined:

Friday, January 09, 2015

OS Project with initial support for Ubuntu and Unix

Beside the existing "OS-Windows" support for Windows operating system the "Pharo OS project" now also has new subprojects for "OS-Unix" and "OS-Linux-Ubuntu" with some initial support for these native platforms as well.

You can load it from the config browser in Pharo 4.0.

EventRecorder for Pharo 4 now based on Spec

I rewrote the Event Recorder for Pharo 4 to be based on Spec. You can load it from the config browser in a Pharo 4.0 image.

CORMAS - open sourced

The CORMAS modelling platform is now open-source and available under the MIT licence.

CORMAS (Common-pool Resources and Multiagent Systems; Bousquet et al., 1998) has originally been developed by CIRAD green team to provide a multi-agent framework that can be used to simulate the interactions between a group of agents and a shared environment holding natural resources. It is written in Smalltalk (originally in VW).

You can learn about it in the classroom and play with simulations like an fire agent model or Conways game of life. You can run models and check results in charts. The game of life is explained very nicely.

There is also already a port for Pharo which can be run in Moose images. There is a mailinglist for development. Read more.

Tuesday, January 06, 2015

Basic remote S8 workspace

S8 Smalltalk by Alejandro F. Reimondo is a Smalltalk which is based on Clamato and Jtalk (now AmberSmalltalk) ideas, so basically it is a Smalltalk on top of JavaScript.

If you want to try just checkout the remote S8 workspace project. A few node.js commands and some files to extract and you can run it locally.

TrySmalltalk in AmberSmalltalk

The ProfStef tutorial to learn Smalltalk is now also available in AmberSmalltalk:

You can also try it online.

Philippe Back Interviews Sebastian Sastre On Amber Smalltalk

Another podcast from Philippe about AmberSmalltalk.

Monday, January 05, 2015