Monday, September 12, 2016
ST-76 on top of Alto Emulator on top of JS in a webbrowser
There is a JavaScript Emulator for the "XEROX Alto" and you can run use it to run Smalltalk 76 in a webbrowser.
Integrations in Pharo for next generation VMs: FullBlockClosure, SistaV1 bytecode set and Read-only objects
There are already multiple changes in the Pharo image to support the next generation VMs. Read more and give feedback to Clément if you see any issues coming up.
Lowcode: Extending Pharo with C Types to Improve Performance
Interesting approach to increase performance. Read more.
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
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.
Hope to find some time to update my medium article with the latest specs soon.
Tuesday, September 06, 2016
Monday, September 05, 2016
Thursday, September 01, 2016
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.
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
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!
Sunday, August 28, 2016
Toronto Smalltalk User Group meeting - Sept. 12
Next Toronto Smalltalk User Group meeting: Sept. 12 about COG VM, GNU Smalltalk, Redline Smalltalk, Amber/Pharo JS
Thursday, August 25, 2016
Wednesday, August 24, 2016
ESUG 2016 - First slides
First slides of ESUG 2016 are available on Slideshare.
Later all the slides, videos and all will be archived on http://www.esug.org/data/ESUG2016/
Later all the slides, videos and all will be archived on http://www.esug.org/data/ESUG2016/
ESUG 2016 - Show us your projects
Show us your projects session from ESUG2016 is available on Periscope
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 - 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
Cuis now runs on Spur!
Additionally to Squeak and Pharo now also Cuis Smalltalk runs on the faster Spur version of the virtual machine. Nice!
Wednesday, August 17, 2016
ESUG 2016, 13th Innovation Technology Awards
Have you written innovative Smalltalk? Then read more here.
Squeak 5.1. beta
Squeak 5.1 is in beta mode - you can already try it here: http://files.squeak.org/5.1beta/
Tuesday, August 16, 2016
Release of Agile Visualization
Agile Visualization is a book about the Roassal Visualization engine. Read more here or directly jump to http://agilevisualization.com
Wednesday, August 10, 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):


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...
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...
Monday, August 08, 2016
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
Amber demos
There is a mashup of several AmberSmalltalk demos on http://amber.confusedprogrammer.com
Tuesday, August 02, 2016
Monday, August 01, 2016
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!
Sunday, July 31, 2016
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
Tuesday, July 26, 2016
Monday, July 25, 2016
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.
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.
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 21, 2016
Remote Debugging Tools for Pharo
A first version of RemoteDebuggingTools project. It allows explore and debug remote images. Read more
Sunday, July 17, 2016
Magic with Pharo Reflectivity
Read this blog post from Denis Kudriashov on implementing an analogue of Dolphin Smalltalks ##() syntax
Saturday, July 16, 2016
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, July 05, 2016
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!!!
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.
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.
Friday, June 17, 2016
Thursday, June 16, 2016
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!
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!
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 15, 2016
Sunday, June 12, 2016
Thursday, June 09, 2016
Wednesday, June 08, 2016
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. "
Monday, June 06, 2016
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!
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.
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.
Thursday, June 02, 2016
Wednesday, June 01, 2016
Subscribe to:
Posts (Atom)