Wednesday, September 07, 2016

Next Pharo Sprint dates

There is already a planning going on for the next sprint meetings at INRIA in Lille (France).

Next dates are

  • 30 September 2016 
  • 04 November 2016 
  • 25 November 2016 
  • 16 December 2016

Pharo on Pi

Made some progress on my pet project on the Raspberry Pi. Now using the new Pi model which is running much faster. Nice!

 Hope to find some time to update my medium article with the latest specs soon.

ESUG 2016 material

Slides from this years ESUG meeting in Prague are now online.

Thursday, September 01, 2016

RProjectConnector 2.1

Binding between Pharo and R was updated to use UFFI.

Toolchains ... any progress

While playing with PhoneGap, Android, Node and friends I noticed that in 2016 in the IT industry we still fight with path settings, environment variables, correct dependencies and command lines when setting up our toolchains. Always time consuming...

I hate it when to much time is required to setup things correctly to be able to code. Time is better invested in coding itself.

We know there are quicker ways where one can just install/extract and go.

Monday, August 29, 2016

SDL2, Cairo & Headless for realtime native applications

An SDL2 based game in Pharo.

Smalltalkware

Hardware gets cheaper each day. It also gets faster and faster to run dynamic object oriented systems like Smalltalks even on tiny single board computers. In this tweet Chris Thorgrimsson runs VisualWorks and Pharo side by side on Lattepanda, a cheap palm sized Windows 10 computer which costs around 100$. Nice!

Monday, August 22, 2016

ESUG 2016, 13th Innovation Technology Awards - MacroRecorder

MacroRecorder is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Kit

Kit (Programming for the rest of us) is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Caffeine

Caffeine is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Educational Bureau

Educational Bureau (using Phratch based on Pharo) is one of the candidates for the ESUG Technology Awards. Video is here.

ESUG 2016, 13th Innovation Technology Awards - Let it Bee

Let it Bee is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - RemoteDebugger

RemoteDebugger is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - OpenPonk

OpenPonk is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Woden 2 Game System

Woden 2 Game System is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - PolyMath

PolyMath is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - MatchTool

MatchTool is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - smalltalkCI

smalltalkCI is one of the candidates for the ESUG Technology Awards

Friday, August 19, 2016

Tuesday, August 16, 2016

Tuesday, August 09, 2016

SmallPOS Status

SmallPOS is a POS and accounting system for small business written using Seaside web application framework for Smalltalk. Pharo is used as platform and the Code is on SqueakSource. The license of SmallPOS is MIT.

SmallPOS itself is a framework that can be used to build POS management applications.

Looks like there are some activity now to update the framework code and there are some screenshots of a russian SmallPOS-based management system that was built with the SmallPOS framework (click to enlarge):





Modtalk

In 2014 there was a presentation about Modtalk - an MIT licensed modular compiled Smalltalk.

There is a nice webpage on https://www.modtalk.org with a copyright of 2016. So there seems to be some activity behind the scenes. But the GitHub repo is still empty. I wonder about the status of the project...

Thursday, August 04, 2016

MatchToo for Pharo

A new tool that can help you to understand to the pattern code is working in match & rewrite rules

Wednesday, August 03, 2016

PunQLite now also moved to Pharo-NoSQL GitHub repo

Beside Voyage and MongoTalk now also the PunQLite project was moved to the "pharo-nosql" GitHub Repo as you can see in the worklog. This repo created by Esteban should host all NoSQL efforts in the Pharo community.

Amber demos

There is a mashup of several AmberSmalltalk demos on http://amber.confusedprogrammer.com

Monday, August 01, 2016

Does 1/7 + 6/7 = 1 ?

Short reminder from Benoit St-Jean.

ThingLab

Alan Borning's “ThingLab” (graphical constraint solver) running on the Smalltalk-78 VM by Bert Freudenberg and Dan Ingalls right in your webbrowser. Nice!

Thursday, July 28, 2016

Pharo Graphics work for Woden2

Ronie Salgado explains some of the graphics work that is in the pipe for his Woden2 project for Pharo

Monday, July 25, 2016

How to use git and GitHub with Pharo

Explained in a blog post here.

Pharo Kiosk system

Pharo 1.1 was used to build ATM-kind software in Russian Bank. Such devices could be found in Moscow streets. Here is a sample video:


 

Sunday, July 24, 2016

Towards 64 Bit VMs

Nicolas has finally compiled a 64bits VM for windows - and now the OpenSmalltalk VM has makefiles for 64 bits windows. Cool!

A taste of bootstrap

With Smalltalks image approach you save the whole state of your "object oriented world" to disk and continue later at the same point of execution where you left. Some objects are part of the standard image since the 1970s which makes Smalltalk images software artefacts that are maintained since a long time.

Other Smalltalks (like Amber) work without images and bootstrap right from the beginning (like Amber which is a Smalltalk running on top of JavaScript).

Nonetheless it also makes sense to bootstrap new images right from the start and (as I already reported) the Pharo community is working on that. Now there is yet another step done for this as you can read and now also try here.

Note that the boostrapped image is already in Spur format.

Pillar 4.0.0

New update on Pillar for Pharo. Now also with an ePub exporter. Nice!

Seamless (0.8.2)

A new update for Seamless is available.

ObjectTravel

A tool to traverse object references for Pharo. Read more.

JSONWebToken for Pharo

JWT (JSONWebToken) is a token format suitable for authentication and authorization. Read about the Pharo implementation.

Freewill - GA framework for Pharo

Freewill is the name of the genetic algorithm framework for Pharo. Read more here or see it in action here.

Thursday, July 07, 2016

DSL in Pharo

Building an external Domain specific language (DSL) with the help of an internal DSL. Using PetitParser in Pharo is easy as this picture proves.

Squeak on Slack

Didnt know that Squeak also has a slack team - but found out now from a post about an easier way to join the channel. Nice!

Tuesday, June 28, 2016

FullBlockClosures

From Blocks to BlockClosures now to FullBlockClosures. It is nice that ClĂ©ment BĂ©ra summarizes current activities for Sista on his blog.

Friday, June 24, 2016

Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies

A video demonstration of a 3D approach (in Pharo) from the paper with the same title.

Functional callbacks on all Cog platforms

Pharo as well as Squeak are based on a common virtual machine implementation (Squeak VM, later Cog). This virtual machine source code recently was moved over to GitHub as OpenSmalltalk VM to better maintain the (small but existing) differences in the virtual machines for Squeak, Pharo, Newspeak and Cuis Smalltalk.

Within all open source Smalltalks derived from Squeak (Squeak, Pharo, Newspeak) historically and initially there was a mechanisms to call external code outside the Smalltalk environment. This mechanism was called FFI - which is the abbreviation for foreign function interface. So you could call external libraries to perform an action.

Later there was another mechanism called Alien FFI that also allowed to pass a callback function to the ouside world. Alien was provided in 2007 by Eliot Miranda and old docu could be found here and here.

In Pharo later there was another mechanism called "NativeBoost" (provided by Igor Stasenko) to call external functions. NB allowed to be using native code directly and really fast as the native code was attached to a compiled method and lived within the image. Relying on assembler (provided by a package called ASMJit) the NativeBoost solution is very fast - but also hard to maintain because NB was not as portable as the initial FFI solutions.

Later Pharo decided to resynch all these efforts into what is now known as UFFI (Unified Foreign Function Interface) provided by Esteban Lorenzano. UFFI unifies and also borrows from FFI, Alien and even NativeBoost.

Also with the more aligned OpenSmalltalk VM the different open source Smalltalks come closer together. Current work in progress on the virtual machine side is to allow for 64 bit Smalltalk systems and to better support ARM architecture beside x86 one.

Eliot now announced that Alien now has functional callbacks on all x86 platforms, ARM32 platforms and x86_64 platforms. This is another major step in having a portable interface to the outside world as we can use callbacks on all these platforms. Great stuff!!!


Thursday, June 23, 2016

CuboidMatrix: Exploring Dynamic Structural Connections in Software Components using Space-Time Cube

A demonstration video of the VISSOFT paper by Teseo Schneider, Yuriy Tymchuk, Ronie Salgado and Alexandre Bergel. Done in Pharo.


Tuesday, June 21, 2016

Monday, June 20, 2016

Talking Small

Another newbee is discovering Smalltalk. Looks like he tries to learn a language each month and also stumbled over Pharo.

If he really wants to learn Smalltalk and find out more he for sure will need more time than just a simple month. Initial steps in Smalltalk are easy, also syntax is easy to learn - but learning what power it contains requires more time and a deeper understanding. Also it takes a while to understand why things are the way they are. Often learning to deal with pure OO also means to unlearn (bad) things from the mainstream programming languages...

Nonetheless nice summary of his early steps.

LRP - Live Robot Programming in Pharo

How does a PR2 move through a door opening? By using LRP of course! Live Robot Programming (LRP) is a live programming language designed for the creation of the behavior layer of robots. It is implemented in Pharo.


Thursday, June 16, 2016

Iceberg - better Git for Pharo

Iceberg, the future git integration for Pharo 6.0. Read more

Pharo and 3D

The nice work of Ronie Salgado with Pharo and 3 summarized on his page. Nice!

Voyage with Unqlite support

For relational databases there is the tiny SQLite database solution that just requires a simple linked library (DLL/SO file) including the full database engine.

There is a similar tiny database called Unqlite in the NoSQL world. Pharo already had a Unqlite binding in the past. Before Pharo 5 this "PUnqlite" project was based on Native Boost. It was provided by Masashi Umezawa and I extended the project with a spec based UI to provide a database browser for Unqlite.

During the Pharo 5 development I discussed with Esteban many issues on #Slack about porting several of my projects to UFFI. We also discusssed about Unqlite and Esteban quickly ported the PUnqlite binding over from NB to UFFI. This was done on GitHub. Additionally I remigrated the changes back to the original repo of PUnqlite on STHub and made it loadable from Catalog in Pharo 5 again. So with Pharo 5 you again have a package "PUnqlite" that you can load from Catalog. Just open Spotter and type in the name.

During these #Slack sessions we also discussed about Estebans Voyage framework. Voyage is a layer that allows for very simple persistence in Pharo. It is explained here and here.

So far Voyage only worked with MongoDB as backend. Often Mongo requires some setup which might be overkill for simple deployable applications that you want to build with Pharo. So we also discussed about using UnQlite as a backend for Voyage.

Esteban wanted to work on this for a project and now first results are available: Voyage is now restructured with a second backend to support also UnQlite beside MongoDB.

Cool - thanks Esteban!

VM support switching from SVN to Git

The Cog subversion repository is moved over to GitHub

More than 15 arguments

support is on its way. But I guess if you have need more than 15 arguments in a method you should think about your design. Possibly an argument object would be applicable.

Wednesday, June 08, 2016

MPDClient in Pharo

Client side interface to the Linux Music Player Daemon written in Pharo. Project is here.

Smalltalkers seriously not kidding

Like this ycombinator thread: "When they say that in Smalltalk, everything's an object, they're seriously not kidding. Everything is an object, including compiled code, stack frames, execution contexts, threads, etc. "

Friday, June 03, 2016

inline if in Smalltalk

No! No! No! Dont extend Smalltalk with things like that.

Just because you can extend Smalltalk does not mean you should do on all ends. So unlearn your traditional syntax thinking before starting with it. Code should tell a story to be maintenable and not end up in deciphering cryptic syntax sugar.

Lets think in objects and stay readable with: #ifTrue;ifFalse: please!

64Bit support progresses

64Bit virtual machine for Pharo, Squeak, ... are in the pipe - VM developers move forward on this frontier. There is now also 64bits image generation for Pharo.

While in the last century it was hard to run dynamic systems like Smalltalk times have changed a lot.
But now Hardware and software become faster and even smaller each day. This leads to suprising results.

Ubuntu Ambiance Theme for Pharo

A theme for Pharo to look like Ubuntu. Looks nice. Code is here.