Thursday, December 29, 2016
Tuesday, December 27, 2016
Pharo happiness
Use Pharo and cognitive services from Microsoft to find out about the happiness of people on pictures. The article is in japanese - but the code example shows what to do.
Tuesday, December 20, 2016
Thursday, December 15, 2016
Iceberg Techtalk
Techtalk on Iceberg - the git integration for Pharo:
Scroll forward until presentation starts after initial 10 minutes.
Scroll forward until presentation starts after initial 10 minutes.
Tuesday, December 06, 2016
Monday, November 14, 2016
Scripting Unreal with Pharo
Kilon is working on bridging with CPP code (using shared memory approach). Still not finished - but he made some progress by remote driving Unreal engine. Read more.
Refactoring Example in Smalltalk
A nice example of the refactoring capabilities of Smalltalk (here Pharo). Refactor until you are satisfied with the code and make sure your tests run green.
Monday, November 07, 2016
Friday, November 04, 2016
Smalltalk Reflections episode 16: Unit testing
In this episode, Craig and Philippe discuss unit testing in Smalltalk, and how it influences the development process. We welcome special guest Jean-Christophe Mincke in our exploration of validation
The code behind Google Authenticator
A new article from Sven concerning Pharo. Code is on SmalltalkHub.
Smalltalk App streaming with Snowglobe
Read more on how to stream apps using Snowglobe. A Snowglobe demo is available here.
Happy 20th Birthday Squeak!
It was twenty years ago that Dan Ingalls and the rest of Alan Kay's team announced Squeak to the world.
SqPronterface - 3D printing with Squeak Smalltalk
SqPronterface - a Port of MacPronterface to Squeak (Smalltalk) to control a 3D Printers. Description is here.
Wednesday, October 26, 2016
Wednesday, October 05, 2016
Pharo on VISSOFT 2016
The fourth IEEE Working Conference on Software Visualization (VISSOFT 2016). If you are on Facebook then check out the page
to see how Pharo is used for Visualizations
Tuesday, October 04, 2016
Squeak works on OpenBSD
Squeak/Spur can now run on OpenBSD 6.0/amd64 as announced by Gerardo Santana
Monday, September 26, 2016
Another Pharo success story
is online on the webpage. This time Sorabito with ALLSTOCKER - Asia's largest online marketplace for industrial machinery.
Theming your Pharo
Pharo is YOURS - so you can adopt it in any way. Even creating an own UI theme in Pharo is easy - as Luke Gorrie from Snabb demonstrates with his simple theme.
Friday, September 23, 2016
MaterialDesignLite for Seaside
The project MaterialDesignLite to provide MDL for Seaside reached first milestone 1.0.0. A demo can be seen here.
Railway modeling in Smalltalk
Railway modeling in MetaEdit - a tool written in Smalltalk. Reminds me of RUT-K from german railway, a large Smalltalk project for train schedule planning that I helped shaping
Tuesday, September 20, 2016
PoliteSmalltalk to interact with EV3 Robots
A Polite Solution to Interact with EV3 Robots. Using Pharo, Phratch and JetStormForPhratch
Read the summary and the PDF.
Read the summary and the PDF.
Monday, September 19, 2016
Smalltalk is dead, long live Smalltalk
Robert C. Martin (from Object Mentor, Inc, also known as "Uncle Bob") once did a presentation in 2009 on RailsConf with the provocative topic
"What Killed Smalltalk Could Kill Ruby, Too".
The way this talk was presented was nice and funny - but by declaring Smalltalk dead he showed me that he never really followed this technology and all its offsprings close enough.
If Smalltalk would be dead how would I have been able to fill my blog with news about it over so many years? If it would be dead why do new things like Agile Visualizations. Software Analysis platforms or cloud platforms like www.pharocloud.com pop up? Why is it used to lively program robots or help solving scientific computations when it is dead? How could it help fighting Ebola or disaster and climate change when Uncle Bob says it is dead? How could a dead technology coordinate so many containers shipping around in this world, or how could it be used in one of the largest financial projects? How could it be given to so many people around the world as a visual programming tool? Looks like nobody cared that Mr. Martin declared it as dead already in 2009 ...
For sure Smalltalk is not as widespread as Java, C++ or C# and it will never be on top of the TIOBE index (since this is the most stupid metric to rank programming languages ever invented). But it is in use, a productive and efficient environment to solve daily problems that would be hard to solve in other technologies.
And all this in times where people (without having a deeper understanding) quickly decide for new technologies as the better ones "automagically" - because they think "newer means better". But often we see that new technologies just reinvent the wheel or provide an improvement only in a single aspect.
Smalltalk is around now since 1972, lifted and commercialized in 1980, stable and mature, used in big and small projects and processes. Because of this age it is not the first time it was declared legacy or dead. But due its virtual machine and its dynamic nature it was and still is adopted to new platforms, new requirements or new hardware. Some Smalltalks can even run 1:1 in the webbrowser or on the Pi.
So in the tradition of "The king is dead, long live the king!" Smalltalk is still alive and kicking. Primarily in the open source scene with Pharo, Squeak, Cuis, Amber there are many new success stories or books.
Now in 2016 even "Uncle Bob" - based on the old Type wars discussions (static vs. dynamic typing) - needs to admit in a blog post that:
"The Smalltalkers will, eventually, win. So says this old C++ programmer."
But there is no competition, so there is no need to have a winner.
Smalltalk is alive and still about new ideas - about new ways of computing and modeling our world to form something better.
The way this talk was presented was nice and funny - but by declaring Smalltalk dead he showed me that he never really followed this technology and all its offsprings close enough.
If Smalltalk would be dead how would I have been able to fill my blog with news about it over so many years? If it would be dead why do new things like Agile Visualizations. Software Analysis platforms or cloud platforms like www.pharocloud.com pop up? Why is it used to lively program robots or help solving scientific computations when it is dead? How could it help fighting Ebola or disaster and climate change when Uncle Bob says it is dead? How could a dead technology coordinate so many containers shipping around in this world, or how could it be used in one of the largest financial projects? How could it be given to so many people around the world as a visual programming tool? Looks like nobody cared that Mr. Martin declared it as dead already in 2009 ...
For sure Smalltalk is not as widespread as Java, C++ or C# and it will never be on top of the TIOBE index (since this is the most stupid metric to rank programming languages ever invented). But it is in use, a productive and efficient environment to solve daily problems that would be hard to solve in other technologies.
And all this in times where people (without having a deeper understanding) quickly decide for new technologies as the better ones "automagically" - because they think "newer means better". But often we see that new technologies just reinvent the wheel or provide an improvement only in a single aspect.
Smalltalk is around now since 1972, lifted and commercialized in 1980, stable and mature, used in big and small projects and processes. Because of this age it is not the first time it was declared legacy or dead. But due its virtual machine and its dynamic nature it was and still is adopted to new platforms, new requirements or new hardware. Some Smalltalks can even run 1:1 in the webbrowser or on the Pi.
So in the tradition of "The king is dead, long live the king!" Smalltalk is still alive and kicking. Primarily in the open source scene with Pharo, Squeak, Cuis, Amber there are many new success stories or books.
Now in 2016 even "Uncle Bob" - based on the old Type wars discussions (static vs. dynamic typing) - needs to admit in a blog post that:
"The Smalltalkers will, eventually, win. So says this old C++ programmer."
But there is no competition, so there is no need to have a winner.
Smalltalk is alive and still about new ideas - about new ways of computing and modeling our world to form something better.
Tuesday, September 13, 2016
ERP in Smalltalk
Bob Nemec writes about his experience with an ERP system written in Smalltalk using GemStone as database
Monday, September 12, 2016
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
Tuesday, May 31, 2016
Sunday, May 29, 2016
Friday, May 27, 2016
Who uses Smalltalk
A new article from Richard Eng on who uses Smalltalk.
There are many people and projects all over the world who use Smalltalk. And yes it is true that mostly new projects start in more "fashioned" languages like Java. So this is more a question about how well known Smalltalk is and about popularity. There is also this common misbelief that new technologies must be better out of the box. I have some doubts in that - because today many software technologies or languages are very specific, written in a hurry or lack a solid and stable engineering foundation.
My answer to the question on who uses Smalltalk would be much easier: anyone who is interested in clean OO solutions and knowledgable enough to value increased productivity and long term maintainability.
There are many people and projects all over the world who use Smalltalk. And yes it is true that mostly new projects start in more "fashioned" languages like Java. So this is more a question about how well known Smalltalk is and about popularity. There is also this common misbelief that new technologies must be better out of the box. I have some doubts in that - because today many software technologies or languages are very specific, written in a hurry or lack a solid and stable engineering foundation.
My answer to the question on who uses Smalltalk would be much easier: anyone who is interested in clean OO solutions and knowledgable enough to value increased productivity and long term maintainability.
Thursday, May 26, 2016
Pharo Newsletter
There is a low traffic “Pharo Newsletter” Mailinglist. If you want to join read here.
Wednesday, May 25, 2016
Tuesday, May 24, 2016
GitRepositoryScanner
A small tool to show local FileTree repositories in GTSpotter, as a way to add them into repositories list. Read more.
Panama Papers: a case for reproducible research, data activism and frictionless data
Want to step into the details of the Panama leak using Pharo? Then continue reading here.
Pharo 64 bit in preparation
Pharo 64 bits image on 64 bits VM running on Mac & Linux. Yay!!!
Read more.
Sunday, May 22, 2016
Saturday, May 21, 2016
Friday, May 20, 2016
OpenSmalltalk virtual machine repo
The virtual machine used for open source Smalltalks like Squeak and Pharo is now moved from Subversion to GitHub.
Read about the details.
Read about the details.
Wednesday, May 18, 2016
Pharo 6 development
As Pharo 5.0 is now available for download the work on Pharo 6.0 directly started. There are already nice things in the pipe like Immutability
Tuesday, May 17, 2016
Virtual Machines and Managed Runtimes
Want to learn about virtual machine programming? Then have a look here.
Sunday, May 15, 2016
Thursday, May 12, 2016
Pharo 5.0 - RELEASE
Lots of work in all the details for each member of our Pharo community - but now Pharo 5.0 is pushed out of the door. Great!!!
Wednesday, May 11, 2016
AstaresDistribution of Pharo
I assembled some of my free goodies for Pharo into a Pharo distribution called "AstaresDistribution".
If you use PharoLauncher you can easily load it. The image is available on the Pharo Contribution CI server.
If you use PharoLauncher you can easily load it. The image is available on the Pharo Contribution CI server.
Monday, May 09, 2016
IWST 2016 - Call for Papers
International Workshop on Smalltalk Technologies (IWST) 2016 Call for papers
Sunday, May 08, 2016
Monday, May 02, 2016
Friday, April 29, 2016
Aqueducts
Nice quote on Twitter:
"Every time I look at Smalltalk, I feel I know how Dark Age engineers must have felt looking at the Roman Aqueducts."
"Every time I look at Smalltalk, I feel I know how Dark Age engineers must have felt looking at the Roman Aqueducts."
FullBlockClosureInstaller
Smalltalk VM History
Did you notice that the commits from Eliot Miranda to the Squeak/Pharo/Cuis/Newspeak VMMaker packages follow a year pattern (1850, 1851, ...) and include not only a description of the changes but also what happened in the year corresponding to the commit number.
Wonder what happens when he reaches 2016 and following commits...
Wonder what happens when he reaches 2016 and following commits...
Wednesday, April 27, 2016
Genetic Algorithm for Pharo
A genetic algorithm implementation is available from the Pharo Catalog provided by Alexandre Bergel. I helped Alexandre in providing the config for this. I like the package. His genetic algorithm code is nice and interesting - it allows to play with Genetic algorithms in the regular Smalltalk tools (workspace, inspectors, ...) and the package also provides Roassal visualizations for them.
You definitely should check this package out. Code is on STHub.
Monday, April 25, 2016
Arff Generator in Pharo
Weka is a collection of machine learning algorithms for data mining tasks. Weka defines a format called "Arff" to be used for data importation. On GitHub you will now find an Arff generator written in Pharo.
Changing Pharo background picture
Want to style your Pharo image with a wallpaper image? Peter describes the possible options in detail.
Saturday, April 23, 2016
Scratch performance
Tim optimized Scratch for the Raspberry Pi ... now it runs much faster. Read more.
Wednesday, April 20, 2016
Minimal tODE API
PolyMath-Extensions
Newton's method for vector problems (experimental) is in #PolyMath Extensions. Read more
Monday, April 18, 2016
Algernon-Launcher for Squeak
Back from the days when I used Squeak there was a nice tool called "Algernon" which was a simple "type in search" tool. I used it very often.
Later in Pharo days such a tool was missing - but after a while the "Spotter" tool for Pharo was provided by the GT team based on the same idea.
The nice thing is that now also the Algernon code was updated for latest Squeak in a project called "Algernon-Launcher".
BTW: Spotter does not allow to evaluate the given text as expressions, but the tool is extendable and maybe should provide this Algernon feature by default as well.
Later in Pharo days such a tool was missing - but after a while the "Spotter" tool for Pharo was provided by the GT team based on the same idea.
The nice thing is that now also the Algernon code was updated for latest Squeak in a project called "Algernon-Launcher".
BTW: Spotter does not allow to evaluate the given text as expressions, but the tool is extendable and maybe should provide this Algernon feature by default as well.
Thursday, April 14, 2016
Wednesday, April 13, 2016
VM Learning: Call Stack Management
Want to learn about virtual machine construction. Then check out this one.
Open WebBrowser from Pharo
A simple package for unform and platform independent WebBrowser access for Pharo:
- for Pharo 4.0 onwards based on NativeBoost
- for Pharo 5.0 onwards based on UFFI
Read more here.
Tuesday, April 12, 2016
Wednesday, April 06, 2016
Pharo Pomodoro (updated) - version 1.6
Updated the code of Pomodoro timer for Pharo 5 once again:
- settings with custom start value and custom colors
- better resizing behavior of the morph
- pause/continue - start/restart possibility
- default colors aligned with Pharo scheme
- pause state in Pomodoro instead of Morph
- separate core and tests in own packages
MessageFlowBrowser updated for Pharo 5
I updated my MessageFlowBrowser for Pharo 5 and added a new video:
TDOOOP Slides from ETAPS 2016
Interesting Slides from Oscar Nierstrasz from an invited talk at European Joint Conferences on Theory and Practice of Software (ETAPS 2016)
with the provocative title "The Death of Object-Oriented Programming" (TDOOOP)
As meanwhile any technology claims to be object orientied (or object based) I would rather say
"OOP is dead long live REAL OOP (with Smalltalk and Pharo)"
As meanwhile any technology claims to be object orientied (or object based) I would rather say
"OOP is dead long live REAL OOP (with Smalltalk and Pharo)"
Tuesday, April 05, 2016
Friday, April 01, 2016
Thursday, March 31, 2016
Support for CDB in Pharo
CDB, which is short for "constant database" is a database where the DB contains an entire data set (e.g. a single associative array) in a single computer file.
Four students from a lecture released the Pharo implementation for CDB support as Stef wrote. The repo can be found on STHub.
Thursday, March 24, 2016
Simple FogBugz Search tool in Pharo
Played with the JSON API of Pharo FogBugz issue tracker with the outcome of
another little Pharo tool that lets you:
One can use the client also directly:
You can download the tool in latest Pharo 5 (50660 or later) from catalog or by opening the Spotter and entering "FogBugz", wait and hitting ENTER.
- login to FogBugz from Pharo
- enter a string and search for according issues
- open a browser on a selected issue in the result list (works on Linux and Win so far)
One can use the client also directly:
|client|
client := FogBugzClient loginUser: 'abc at def.com' password: 'secret'.
(client query: 'UFFI') inspect.
client logout
You can download the tool in latest Pharo 5 (50660 or later) from catalog or by opening the Spotter and entering "FogBugz", wait and hitting ENTER.
Tuesday, March 22, 2016
Surprise
After a renaming discussion on the pharo-dev list I suggested to rename "SciSmalltalk" into "PolyMath" and it looks like this proposal got accepted.
At least now there is a new repo on STHub: http://www.smalltalkhub.com/#!/~PolyMath/PolyMath/
Nice!
At least now there is a new repo on STHub: http://www.smalltalkhub.com/#!/~PolyMath/PolyMath/
Nice!
Friday, March 18, 2016
Thursday, March 10, 2016
Moose-FAMIX SAP-Extractor
Easy deploy of Pharo applications on the Web (Linux)
You can setup a full Seaside application behind Apache webserver. Or you could setup more lightweight behind NGINX.
Here is a short help on how to do that on Linux.
Here is a short help on how to do that on Linux.
Wednesday, March 09, 2016
Tiny, yet so beautiful
The smallest piece of great Pharo code described in another article from Sven.
PDF4Smalltalk 1.4 is released
New with support for bitmapped images. Any Smalltalk image can be added to a PDF and many images can be extracted from existing PDFs.
Tuesday, March 08, 2016
Wednesday, March 02, 2016
Tuesday, March 01, 2016
SqueakJS on ElectronJS (repackaging as desktop app again)
Web applications everywhere, but there are still desktop applications with full access to the underlying computer on the other side.
But meanwhile one can also create desktop applications using HTML, JS and Node.js, package them into an executable file and distribute it to all platforms (Windows, OS X, Linux, ...). There is a framework called Electron that allows to package an HTML/JS based application as a desktop application.
The portable Squeak Smalltalk which is usually running as a desktop application by using a native and fast Cog VM provides also a reimplementation of the Squeak VM in JavaScript. This project is from Bert and is called "SqueakJS". It allows to run Squeak Smalltalk on top of JavaScript within an HTML page. Because of the portability it runs 1:1.
And guess what: one can also use Electron to package SqueakJS then as a traditional desktop application again...
A nice twitter post from Fabio Niephaus who exactly did that can be found here: SqueakSmalltalk running on Cog VM vs. on SqueakJS on electronjs
Havent checked how fast this is ... but the lines between desktop and web based Smalltalk deployment become blurred once again.
But meanwhile one can also create desktop applications using HTML, JS and Node.js, package them into an executable file and distribute it to all platforms (Windows, OS X, Linux, ...). There is a framework called Electron that allows to package an HTML/JS based application as a desktop application.
The portable Squeak Smalltalk which is usually running as a desktop application by using a native and fast Cog VM provides also a reimplementation of the Squeak VM in JavaScript. This project is from Bert and is called "SqueakJS". It allows to run Squeak Smalltalk on top of JavaScript within an HTML page. Because of the portability it runs 1:1.
And guess what: one can also use Electron to package SqueakJS then as a traditional desktop application again...
A nice twitter post from Fabio Niephaus who exactly did that can be found here: SqueakSmalltalk running on Cog VM vs. on SqueakJS on electronjs
Havent checked how fast this is ... but the lines between desktop and web based Smalltalk deployment become blurred once again.
Free Access to Ephemeric Cloud
There is free access to Ephemeric Cloud to all Pharo association members. Try it out!
Thursday, February 25, 2016
GitHubcello
Paste your repo URI into GTSpotter. See *https://github.com/Uko/GitHubcello#githubcello-*
Thursday, February 18, 2016
Plimbole
Plimbole is a sequencer for Generative Music that you can treat it either as a standalone program or you can get the Dolphin Smalltalk source and hack away to add new features of your own.
Toying with Object Kernels
I like articles like that from Clément Béra, it shows the power that we have within Smalltalk systems.
Wednesday, February 17, 2016
The Pharo Unicode Project
Sven and Henrik cared about better Unicode support for Pharo. Read the announcement and have a look at a new article describing the details.
Saturday, February 13, 2016
Pharo survey - issue tracking systems
Are you a Pharo developer? Did you complete the survey on issue tracking systems?
Friday, February 12, 2016
Monday, February 08, 2016
Amber Smalltalk 0.15.1
Release 0.15.1 is out. Breaks IE8 compatibility, wraps Promise directly, has a few changes under hood & will be strictly semver from now on.
Sunday, February 07, 2016
Friday, February 05, 2016
Large file uploads in Seaside
Nice article on how to use Seaside and Nginx to handle large file uploads
Pharo MOOC available
The registration for Pharo Massive Open Online Course (Pharo MOOC) is available
Thursday, February 04, 2016
IPFS
SmallIPFS - Smalltalk Interplanetare Filesystem API. Read more and have a look at the project page
Tuesday, January 26, 2016
Numerical Methods Book (January 2016 snapshot)
The Numerical Methods Book was updated - have a look at the January 2016 snapshot
Friday, January 22, 2016
Thursday, January 21, 2016
Bounties for Pharo
A Bountysource Team for Pharo was setup by Marcus. This means that everyone can suggest bounties or contribute money to existing bounties.
Tuesday, January 19, 2016
Kendrick 0.29
Kendrick the platform for epidemiological modeling and analysis is out in version 0.29 beta
Pharo bootstrap
Currently in Pharo the image is maintained step by step by adjusting and changing it. It is like a database of objects that you maintain over time.
But since the beginning of Pharo there was this also the dream to be able to bootstrap the image cleanly right from the ground up. It is a lot of work to prepare such a bootstrapping process - but now the efforts bring the first fruits: there is a minimal Pharo kernel that is bootstrapped.
I can only say: amazing work!
But since the beginning of Pharo there was this also the dream to be able to bootstrap the image cleanly right from the ground up. It is a lot of work to prepare such a bootstrapping process - but now the efforts bring the first fruits: there is a minimal Pharo kernel that is bootstrapped.
I can only say: amazing work!
Spotting senders and references
Spotting senders and references using Spotter in Pharo is explained here. You can also use the MessageFlowBrowser.
Smooth scrolling with Smalltalk 78
"At one point (Steve) Jobs, watching some text scroll up the screen line by line in its normal fashion, remarked, 'It would be nice if it moved smoothly, pixel by pixel, like paper.' With (Dan) Ingalls at the keyboard, that was like asking a New Orleans jazz band to play 'Limehouse Blues.' He clicked the mouse on a window displaying several lines of Smalltalk code, made a minor edit, and returned to the text. Presto! The scrolling was now continuous." -- Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age by Michael A. Hiltzik
Thursday, January 14, 2016
OSSubprocess first milestone
So far there was an OSProcess project for executing OS commands from Pharo. Mariano is working on
a new project called "OSSubprocess" that works with the new unified FFI.
He reached a first milestone now - you can read about the details here.
The Pharo Consortium is the sponsor of this development.
He reached a first milestone now - you can read about the details here.
The Pharo Consortium is the sponsor of this development.
Snowglobe for SqueakJS
PharoLauncher with Spur and Non-Spur
Up to image build #50496 (where 50000 range means Pharo 5.0) the Pharo images were non-spur. In December the image was migrated to Spur to get more speed and profit from the new virtual machine architecture. So for any newer Pharo 5.0 image you need the new Pharo Spur VM.
PharoLauncher is now able to find out if an image reguires the new Spur VM or the old one. You can set the location of old non-spur VM and new spur VM in the PharoLauncher settings.
This way you can work with old images Pharo 3, Pharo 4, Pharo 5 up to build 50496 as well as with the newer ones.
Read this post for more details or grab PharoLauncher from CI server.
PharoLauncher is now able to find out if an image reguires the new Spur VM or the old one. You can set the location of old non-spur VM and new spur VM in the PharoLauncher settings.
This way you can work with old images Pharo 3, Pharo 4, Pharo 5 up to build 50496 as well as with the newer ones.
Read this post for more details or grab PharoLauncher from CI server.
WorkLog
There is a project from Esteban called WorkLog. It is written in Seaside.
If you would like to see it in action just visit: http://log.smallworks.eu/web/post/ and receive some infos how busy he is preparing Pharo for the future.
If you would like to see it in action just visit: http://log.smallworks.eu/web/post/ and receive some infos how busy he is preparing Pharo for the future.
Pharo Spur 32 VM on Debian Stable
Wednesday, January 13, 2016
Tracing the Dynabook
A PhD Dissertation from 2006 about Dynabook and Smalltalk. Interesting nonetheless.
Shortcut learnability in Pharo
A small tool was introduced in recent Pharo 5 images. It is called Shortcut Reminder and reminds you n times about shortcuts that one can use as an alternative to clicking around.
One can enable the tool via Settings. Anytime you use a menu item that has a keyboard shortcut the shortcut is displayed on the screen in large letters. This happens n-times. Depending on your learning curve you can set the number of repetitions in the settings.
One can enable the tool via Settings. Anytime you use a menu item that has a keyboard shortcut the shortcut is displayed on the screen in large letters. This happens n-times. Depending on your learning curve you can set the number of repetitions in the settings.
Pharo Mooc in preparation
The Pharo community is currently preparing a Pharo Mooc. It's not yet finished and therefore not yet officially announced - but some informations are already available and a lot is going on behind the scenes for it.
There is a GitHub Repo and a Roadmap for it if you already want to dig into the stuff.
The abbreviation Mooc means Massive Open Online Course. It will include tutorials and videos to learn about Smalltalk and Pharo in particular (70 lectures and videos).
The Mooc videos are currently in preparation. It is filmed with a professional setup as:
- Picture 1
- Picture 2
- Picture 3
- Picture 4
prove.
There is a GitHub Repo and a Roadmap for it if you already want to dig into the stuff.
The abbreviation Mooc means Massive Open Online Course. It will include tutorials and videos to learn about Smalltalk and Pharo in particular (70 lectures and videos).
The Mooc videos are currently in preparation. It is filmed with a professional setup as:
- Picture 1
- Picture 2
- Picture 3
- Picture 4
prove.
Science Smalltalk v0.39
The last stable version is Science Smalltalk: v0.39 (Pharo 4.0 and Pharo 5.0 with SpurVM) is out.
Monday, January 11, 2016
Thursday, January 07, 2016
PharoJS in Toronto
Toronto Smalltalk User group meeting on Monday, Jan. 11 will be on PharoJS, with both NodeJS and browser examples. An interesting topic. Anyone able to record this and publish it as a video?
Wednesday, January 06, 2016
The next Pharo Sprints
Dates for 2016 in Lille are here. You are free to organize own sprints as well.
Monday, January 04, 2016
Sunday, January 03, 2016
Saturday, January 02, 2016
Object Explorer for GemStone/S 64
A project still under development but already worth reading about: a (visual) Object Explorer for GemStone/S 64