Sunday, December 29, 2013
Unification - a unification library for Smalltalk.
Unification is in computer science and logic an algorithmic process of solving equations between symbolic expressions. Now there is an unification library for Smalltalk available.
Friday, December 27, 2013
Thursday, December 26, 2013
Tuesday, December 24, 2013
PunQLite - a new NoSQL wrapper for Pharo
I already reported about PunQLite, a binding for the NoSQL database UnQLite - but now it has become a full-fledged wrapper. Read more.
Sunday, December 22, 2013
SqueakJS - SqueakVM on JavaScript
Bert announced SqueakJS, a new Squeak VM that runs on Javascript. Really cool!
Read more here.
It is able to run the mini.image already - try the demo. Thanks Santa!
Read more here.
It is able to run the mini.image already - try the demo. Thanks Santa!
Saturday, December 21, 2013
Gravel Smalltalk for JVM
Yet another Smalltalk for the JVM I first thought - but this time a real surprise since it not only aims to be a fully ANSI compliant Smalltalk implementation but is also heading towards modern language enhancements like optional typing, namespaces and traits.
It is called "Gravel Smalltalk" and is announced as a modern Smalltalk implementation for the JVM. It is using the ability on JVM to do #invokedynamic based on the JSR 292, similar to RTalk from Mark Roos that I already reported about.
But while RTalk is not open source and available to the community the new Gravel Smalltalk is already available and licensed under the very liberal Apache-2.0 License. I also do not know how it compares to Readline Smalltalk which is also running on the JVM.
The feature list of Gravel Smalltalk sounds promising:
- Traits
- Optional typing
- Patching compiler
- Full block closures
- Resumable exceptions
- Namespaces
- Mirror based reflection facilities
Since I have all Java tools installed (JDK7, Eclipse, Maven, ...) it looks like I should clone the github repo with the code, fire up maven commandline and give Gravel Smalltalk a try this weekend.
It is called "Gravel Smalltalk" and is announced as a modern Smalltalk implementation for the JVM. It is using the ability on JVM to do #invokedynamic based on the JSR 292, similar to RTalk from Mark Roos that I already reported about.
But while RTalk is not open source and available to the community the new Gravel Smalltalk is already available and licensed under the very liberal Apache-2.0 License. I also do not know how it compares to Readline Smalltalk which is also running on the JVM.
The feature list of Gravel Smalltalk sounds promising:
- Traits
- Optional typing
- Patching compiler
- Full block closures
- Resumable exceptions
- Namespaces
- Mirror based reflection facilities
Since I have all Java tools installed (JDK7, Eclipse, Maven, ...) it looks like I should clone the github repo with the code, fire up maven commandline and give Gravel Smalltalk a try this weekend.
Wednesday, December 18, 2013
Lego MindStorms and Pharo
The new Ev3 series from LegoMindstorms allows to plug a Wifi key and connect via TCP.
So with this equipment and the new JetStorm project you can control your robot with Pharo.
Read more
So with this equipment and the new JetStorm project you can control your robot with Pharo.
Read more
Monday, December 16, 2013
Objective-Smalltalk
Objective-Smalltalk is an programming language dervied from Objective-C. Website lives on
http://objective.st
It is an experimental project from Marcel Weiher. Code is on github - I havent found any info on the license.
http://objective.st
It is an experimental project from Marcel Weiher. Code is on github - I havent found any info on the license.
Sunday, December 15, 2013
Private Methods in Pharo
The nice thing on Smalltalk is that it is extensible without having to ask a language vendor.
Using this Camille Teruel created a small proof-of concept for adding private methods to Pharo.
Load the project "PrivateMethods" into your Pharo image. I tried with Pharo3.0 Latest update: #30639.
Now create a new class
Object subclass: #Bar
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Foo'
Then implement a method that you mark as private using the pragma <private>
foo
<private>
^42
Using this Camille Teruel created a small proof-of concept for adding private methods to Pharo.
Load the project "PrivateMethods" into your Pharo image. I tried with Pharo3.0 Latest update: #30639.
Now create a new class
Object subclass: #Bar
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Foo'
Then implement a method that you mark as private using the pragma <private>
foo
<private>
^42
If you try to evaluate
Bar new foo
you will get the usual "Message not understood" as it is private.
But nonetheless you can call it from other private or public methods. Just implement a Bar>>bar method:
But nonetheless you can call it from other private or public methods. Just implement a Bar>>bar method:
bar
"Call the private method"
^self foo
and evaluate
Bar new bar
to get the answer to life, universe and everything ...
To make sure it is really private (instead of protected) just implement a subclass and call it from a subclass method. You will see it works.
Bar new bar
to get the answer to life, universe and everything ...
To make sure it is really private (instead of protected) just implement a subclass and call it from a subclass method. You will see it works.
Tuesday, December 10, 2013
Sunday, December 08, 2013
Pharocloud
Former "rackincloud.com" is now Pharocloud with new icon and new design.
Look at: http://pharocloud.com/
Look at: http://pharocloud.com/
Friday, December 06, 2013
Petit parsers
With the Petit parser for Smalltalk it is very easy to build parsers. There is an SQL parser, a Java parser, PHP parser, ... and a Delphi parser, one for the GraphViz dot language, and many more.
Premade images are available on the Moose CI. Nice!
Premade images are available on the Moose CI. Nice!
Thursday, December 05, 2013
Wednesday, December 04, 2013
Roassal 3D
The Roassal visualization engine now officially has a new member: Roassal 3D.
Roassal 3d is about creating and animating 3d scenes. It is meant to visualize data. Roassal 3d recently got textures, translucence, additional layouts and various light models. It should work on Pharo 3.0, under MacOSX, Linux and Windows.
Read the offical announcement.
There is also some initial documentation available.
Tuesday, November 26, 2013
Roassal visualisation engine on top of Amber
The Roassal visualisation engine (which is developed in Pharo) is also ported to Amber (the Smalltalk on top of JavaScript running in a webbrowser).
You can already test Roassal on top of Amber in your browser:
http://pestefo.github.io/roamber
Just edit the examples in the workspace, execute (select all and click on do-it) it and see how the visualisation changes.
Friday, November 22, 2013
A Conversation with Kent Beck and Eric Ries
Interesting interview with Kent Beck - you shouldnt miss it.
Wednesday, November 20, 2013
IronSmalltalk
Didnt notice that the sourcode for IronSmalltalk (a Smalltalk for .NET) is available on CodePlex.
So if you want to implement an own Smalltalk go and have a look.
MooseDay in December
On the 19th and the 20th December 2013 there is a MooseDay combined with a Pharo sprint in France.
Tuesday, November 19, 2013
Monday, November 18, 2013
Useful (hidden) features in Pharo 3.0
Nice to know these nice features - get your Pharo 3.0 installation and try them out.
Deploy Smalltalk Applications with Seaside
Nice guide on Seaside with Apache - I should check if it is still valid with the latest releases.
Saturday, November 16, 2013
I18N with QCMagritte in Seaside
One possibility to internationalize a seaside application is shown here.
Thursday, November 14, 2013
PUnQLite for Pharo - using the UnQLite embeddable NoSQL database engine
You may know SQLite - a small RDBMS that one can easily use since it requires only adding a simple DLL fitting into a few kilobytes. Due to its small size it is often embedded into products.
One can also use it in Smalltalk - for instance for Pharo using a simple wrapper project.
Today also the so called "NoSQL" databases like Mongo, CouchDB and others are getting attention. Often they work with documents, key value pairs, ...
There is also a "small sized" database engine for NoSQL - it is called "UnQLite". It is an Embeddable NoSQL Database Engine and therefore requires no separate server process. The sources have no dependency - it is easy to build a DLL from the provided C File.
Now there is already a Pharo binding in progress called "PUnQLite" from from Masashi Umezawa. The binding uses NativeBoost to call the UnQLite engine.
Really nice! So if you need a small embeddable Database for your application you should check it out.
One can also use it in Smalltalk - for instance for Pharo using a simple wrapper project.
Today also the so called "NoSQL" databases like Mongo, CouchDB and others are getting attention. Often they work with documents, key value pairs, ...
There is also a "small sized" database engine for NoSQL - it is called "UnQLite". It is an Embeddable NoSQL Database Engine and therefore requires no separate server process. The sources have no dependency - it is easy to build a DLL from the provided C File.
Now there is already a Pharo binding in progress called "PUnQLite" from from Masashi Umezawa. The binding uses NativeBoost to call the UnQLite engine.
Really nice! So if you need a small embeddable Database for your application you should check it out.
Wednesday, November 13, 2013
Kontolino technology stack
Joachim talks about the technology stack behind Kontolino which is using VASmalltalk, Seaside, GLORP, Apache, DB2.
Monday, November 11, 2013
Wednesday, November 06, 2013
Pharo UI building with Spec
There is a nice post on how to get started with Spec UI building in Pharo.
So long and thanks for all the fish...
When I do JEE stuff with Java I typically use Glassfish - easy to install and use. Now there is an
interesting move from Oracle regarding the commercial support for GF.
The commercial offering is just dropped - that news is already commented people from the community.
That does not mean Glassfish will soon be dead, but it may change from a professional appserver to just a developer tool (same story as "Geronimo"?). Interesting...
That does not mean Glassfish will soon be dead, but it may change from a professional appserver to just a developer tool (same story as "Geronimo"?). Interesting...
Friday, November 01, 2013
Thursday, October 31, 2013
Pharo: Objects at your fingertips
A new presentation for those who know OOP but not Pharo is available.
Wednesday, October 30, 2013
Tuesday, October 29, 2013
Kontolino Seaside App
Another online application based on Seaside web framework goes live: Kontolino.
Joachim can tell you more.
Smalltalk Devroom at FOSDEM2014
Again this year there is a Smalltalk Devroom at FOSDEM2014. Read the Call for Participation
Advanced Reflection in Pharo
Slides of the "Advanced Reflection in Pharo" lecture from Marcus Denker
Friday, October 25, 2013
Wednesday, October 23, 2013
Thursday, October 17, 2013
Saturday, October 12, 2013
Friday, October 11, 2013
Pharo and RaspberryPi
Running Pharo on RaspberryPi is slowly progressing ... there is now also a CI job to build the Stack VM (non JIT/non Cog version). Lets see when it is ready ...
Thursday, October 03, 2013
Mustache templates for Pharo
Mustache is a popular templating engine that is supported in many programming languages.
Now there is also a Pharo port from Norbert.
Wednesday, October 02, 2013
Bootstrap for Seaside3 project (Release 0.1.0)
I published the "Bootstrap for Seaside" project and announced it on the Pharo and Seaside lists.
Features are:
Features are:
- nearly feature complete regarding components (Nav, Navbar, Jumbotron, Buttons, Alarms, Layouts, ...)
- uses the latest Bootstrap libraries (http://getbootstrap.com)
- covered by more than 160 tests
- completed with an example browser that shows Bootstrap components and according Smalltalk code
- available at STHub (http://smalltalkhub.com/#!/~TorstenBergmann/Bootstrap)
- documented (see mentioned project website on STHub) with docu support for PharoOnlineHelp and catalog
- controlled by CI (https://ci.inria.fr/pharo-contribution/job/Bootstrap/)
- easily loadable using config browser in Pharo 2.0
You can easily load it in a fresh Pharo 2.0 as "Bootstrap" from the config browser. It loads Seaside3
as a dependency. After loading evaluate
ZnZincServerAdaptor startOn: 8080
to start the webserver and go to http://localhost:8080/bootstrap to browse the samples. Here are some screenshots, click to enlarge:
Feel free to use it for your next Pharo/Seaside/Bootstrap based web project
Feel free to use it for your next Pharo/Seaside/Bootstrap based web project
Monday, September 30, 2013
Athens on Amber Smalltalk demo
Matthias Springer is showing a demo of his "Athens on Amber Smalltalk" work from the GSoC 2013.
Monday, September 23, 2013
New Mars examples - MarsPackageBrowser and MarsTestRunner
Carla shows some more progress on the Mars project. Watch the screencast here.
Launching Pharo on Ubuntu
Launching Pharo on Ubuntu is now much easier again.
Thanks Damien, I also like the overview page.
AOP for Pharo
You like AOP (Aspect oriented programming) in Pharo. Then have a look at PHANtom (PHaro Aspect laNguage). Also check out it's reimplementation.
Redline Smalltalk on JavaOne
If your are at JavaOne conference and see a guy with a Smalltalk T-Shirt. Then this is James Ladd promoting Smalltalk in a Redline Smalltalk show.
LightningMDB
The Lightning Memory-Mapped Database (LMDB) is a new database library written by Symas Corp. for the OpenLDAP Project.
You can read about it's nice feature set here.
It looks like Jan van de Sandt is working already on a Smalltalk driver. Nice!
You can read about it's nice feature set here.
It looks like Jan van de Sandt is working already on a Smalltalk driver. Nice!
Pharo Bugfixing Process
There is a new video that helps explaining how you can submit fixes and enhancements for Pharo.
Wednesday, September 18, 2013
"OS" and "OS-Windows" project for Pharo on STHub
I just announced "OS" and "OS-Windows" project for Pharo. Hope it is useful for others too and community will help to move better external support in Pharo forward. Project and code lives on:
http://smalltalkhub.com/#!/~OS/OS-Windows
If you have Pharo 3.0 installed just open "Tools" -> "ConfigBrowser" and install "OSWindows".
You should follow the examples given in the documentation that you can find on the project page. Just scroll down there.
http://smalltalkhub.com/#!/~OS/OS-Windows
If you have Pharo 3.0 installed just open "Tools" -> "ConfigBrowser" and install "OSWindows".
You should follow the examples given in the documentation that you can find on the project page. Just scroll down there.
Pharo3.0 now with Metacello2
Starting from today Pharo 3.0 includes Metacello2.
Beside many improvements you can now also make your project configuration class (which usually is named after your project "ConfigurationOfProjectName") a subclass of the predefined class ConfigurationOf.
ConfigurationOf subclass: #ConfigurationOfExample
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ConfigurationOfExample'
So no need to include metacello bootstrap methods on each configuration.
Did I mention that you can now also work with FileTree and GitHub? ;)
Beside many improvements you can now also make your project configuration class (which usually is named after your project "ConfigurationOfProjectName") a subclass of the predefined class ConfigurationOf.
ConfigurationOf subclass: #ConfigurationOfExample
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ConfigurationOfExample'
So no need to include metacello bootstrap methods on each configuration.
Did I mention that you can now also work with FileTree and GitHub? ;)
Dr. Geo with Athens
The Dr. Geo Canvas now also uses the Athens renderer or Pharo and looks much better. Here is a screenshot.
Monday, September 16, 2013
QDBlog
QDBlog is "a Quick&Dirty Blog written on Seaside. Made to be as simple as possible.". Code is on STHub:
http://smalltalkhub.com/#!/~mikefilonov/QDBlog
You can also see it in action here.
Sunday, September 15, 2013
Autotest for Pharo
Autotest is a live testing tool (similar to Ruby Autotest, but the Smalltalk way, more dynamic). Autotest automatically runs tests related to the method you edit. Code and video are here.
inBug - Visual Analytics of Bug Repositories
inBug is a nice project to work with issue tracking software from within Smalltalk. Watch the page or have a look at a presentation about it (also here).
Friday, September 13, 2013
Moose 4.8 released
Moose 4.8 is released with impressive enhancements:
- Rendering is possible on Morphic canvas or the new Athens canvas (which is driven by NativeBoost)
- Visualizations are now based on Roassal
- the new chart engine Graph-ET is integrated
- ...
Read the details here. Note that Moose 4.8 is based on Pharo 2.0 - so you can either download from the web or easily from the Pharo config browser.
- Rendering is possible on Morphic canvas or the new Athens canvas (which is driven by NativeBoost)
- Visualizations are now based on Roassal
- the new chart engine Graph-ET is integrated
- ...
Read the details here. Note that Moose 4.8 is based on Pharo 2.0 - so you can either download from the web or easily from the Pharo config browser.
Thursday, September 12, 2013
SecretOffice++
SecretOffice++ is a secure personal information management software enabling you to conceal your secret appointments, tasks, notes, contacts, journals and files. It was presented at ESUG2013 and is written in Smalltalk. Requires Outlook - so I was not able to try it out. But there are some screenshots on the website.
Wednesday, September 11, 2013
NativeBoost version of the OpenDBXDriver
There is now an NativeBoost version of the OpenDBXDriver for database access from Pharo Smalltalk. This helps in moving from old Squeak FFI to new NativeBoost. Rocio Amaya explains how it was created.
Shopping with Pharo robots
Pharo is used for orchestration of Robots working as helpers in a shopping mall. Read more.
Tuesday, September 10, 2013
ST-72
You want to play with Smalltalk-72? Then read this blog post to play with Dans system running in Squeak.
Also the manual can be found on the net.
Pharo CI infrastructure
If you contribute a project to Pharo you can use the CI infrastructure to test.
This page explains how to do that.
Please use Pharo Online help
I can only repeat myself: please use my new "Pharo online help" to document your packages instead of the old "in-image" Pharo help.
How to write benchmarks in Pharo
Natalia writes about "How to write benchmarks in Pharo". Nice summary!
Monday, September 09, 2013
ESUG 2013 - Boris Shingarov on "Towards a Smalltalk VM for the 21st Century"
"Towards a Smalltalk VM for the 21st Century" from Boris Shingarov is presented at ESUG-2013. The presentation is online.
DicThesaurusRex
DicThesaurusRex - a spelling correction and thesaurus for Squeak Smalltalk. Read more.
FileTree in Pharo 3.0
FileTree is now part of Pharo 3.0 image. It allows to store Smalltalk code in the usual file system structure. So beside the usual Smalltalk versioning systems you can also use Git, Mercurial or Subversion. You can read more about FileTree in this presentation from Dale.
Sunday, September 08, 2013
Trapped in Amber
"Trapped" is a new library for Amber Smalltalk to create bidirectional data-binding UI for Amber.
Maybe you heard about data binding in AngularJS (a library in the JavaScript space) - the "trapped" project is a little bit similar. There is also a demo available.
Maybe you heard about data binding in AngularJS (a library in the JavaScript space) - the "trapped" project is a little bit similar. There is also a demo available.
Deep into Pharo
The deep into Pharo book is out.
Check it out here: http://rmod.lille.inria.fr/pbe2/
Smalltalk beer
Nothing more to add: https://twitter.com/marcusdenker/status/375694229873643520/photo/1
Oz - Object spaces
Oz - Object spaces for Pharo Smalltalk will be presented at ESUG 2013. Here is a nice summary about it together with a video.
Friday, September 06, 2013
A Spur gear for Cog
Eliot writes about new memory management for Cog virtual machine. Read more here
Wednesday, September 04, 2013
Graph-ET - charts for Pharo
Graph-ET is a project to draw charts with Pharo. It is a library at the top of Roassal to draw curves, histograms and graphs. It will be demonstrated at ESUG this year.
Watch this video to see more.
or look at the code at
Watch this video to see more.
or look at the code at
MCHttpRepository
location: 'http://smalltalkhub.com/mc/DanielAvivNotario/Graph-ET/main'
user: ''
password: ''
Tuesday, September 03, 2013
DrGeo user guide in english
The Dr. Geo user guide is available in english. If you want to learn geometry with Smalltalk then check it out.
NesTalk or Mario Bros running on Pharo Smalltalk
NesTalk is a NES (Nintendo Entertainment System) emulator running on Pharo Smalltalk. It is a pure smalltalk implementation written from scratch allowing you to run MarioBros on Pharo Smalltalk as this video demonstrates.
Code is on http://smalltalkhub.com/#!/~zeroflag/NesTalk
You can follow updates on the authors twitter account.
Code is on http://smalltalkhub.com/#!/~zeroflag/NesTalk
You can follow updates on the authors twitter account.
Monday, September 02, 2013
Phratch
Phratch is more than a port of Scratch to Pharo, read more why. Also have a look at this video.
Sunday, September 01, 2013
Java within Smalltalk/X
Running Java within Smalltalk - no Problem with Smalltalk/X. See this video from Jan Vrany.
Saturday, August 31, 2013
Aida 6.6 Web Framework Released
The Aida 6.6 Web Framework is released. Read more here or just load it using the Config browser in Pharo 2.0 and point your browser to http://localhost:8888 when loading is finished
Friday, August 30, 2013
Pharo ECOOP Slides
Slides from Pharo tutorial at ECOOP 2013: The slides used at the Pharo Tutorial at ECOOP are available online
Thursday, August 29, 2013
HTML5 ServerSideEvents with Zinc and Smalltalk
Server-Sent Events is a new HTML5 technology that is used to send data from a server to a client, over HTTP, on the initiative of the server. You can work with them now also in Zinc for Pharo. Read more in Svens post.
Did you know ...
that Squeak for RaspberryPi now has actual official support for the faster ARM optimised BitBLt code. Amongst other things it will help speed up Scratch a little.
Aconcagua - Units for Smalltalk
Aconcagua is a units package for Pharo. You can load it using the config browser in Pharo 2.0 and here is a paper explaining it. Also have a look at this video.
Friday, August 23, 2013
Wednesday, August 21, 2013
Rackincloud - Seaside and PostgreSQL support
rackincloud.com offers Seaside hosting - it now also supports the PostgreSQL database for Pharo. Watch this video to see how easy it is to setup.
Monday, August 19, 2013
Travels with Smalltalk (by Dave Thomas)
Surely outdated and part of Smalltalk history - but nonetheless I never stumbled upon this until today and still find it interesting to read.
Using NativeBoost in Pharo
While I spend some time wrapping more and more Windows API's for NativeBoost Laurent has done
something similar for X11.
He has also written a nice chapter on NativeBoost for the Pharo for the Enterprise book and wants to create a Pharo window manager for X11 next.
something similar for X11.
He has also written a nice chapter on NativeBoost for the Pharo for the Enterprise book and wants to create a Pharo window manager for X11 next.
Friday, August 16, 2013
Punycode in Pharo
When working with internationalized domain names you may know the "Punycode" encoding (RFC 3492). There is a new project dealing with this on SmalltalkHub.
You can read more about this on Wikipedia and try the example from the article (using the german word "Bücher" which means books):
You can read more about this on Wikipedia and try the example from the article (using the german word "Bücher" which means books):
PunycodeConverter new encode: 'Bücher' results in 'xn--Bcher-kva' PunycodeConverter new decode: 'xn--Bcher-kva' results in 'Bücher' again
Thursday, August 15, 2013
Wednesday, August 14, 2013
Pharo 2.0 speedup on loading MC packages
After Pharo 2.0 came out the community started with Pharo 3.0 which is still being worked on.
Independent from that many bug fixes for 3.0 were also backported to 2.0 and released as Pharo 2.0 Summer release.
If you grabbed the initial Pharo 2.0 or the Pharo 2.0 Summer release you may have noticed that code loading is not as fast as it was in Pharo 1.4. The main reason for this noticable slowdown was the introduction of the Ring package and proper packages (RPackage).
This has changed since yesterday with yet another update #20619. By using a cache the speedup on loading MC packages is now 3x or more. So either update your image or just get a fresh copy of Pharo 2.0 from the file server. You will notice that loading Seaside or other packages from the Configuration browser is now much faster!
Independent from that many bug fixes for 3.0 were also backported to 2.0 and released as Pharo 2.0 Summer release.
If you grabbed the initial Pharo 2.0 or the Pharo 2.0 Summer release you may have noticed that code loading is not as fast as it was in Pharo 1.4. The main reason for this noticable slowdown was the introduction of the Ring package and proper packages (RPackage).
This has changed since yesterday with yet another update #20619. By using a cache the speedup on loading MC packages is now 3x or more. So either update your image or just get a fresh copy of Pharo 2.0 from the file server. You will notice that loading Seaside or other packages from the Configuration browser is now much faster!
Tuesday, August 13, 2013
Sunburst visualization
A nice video on the Sunburst visualization implemented in Pharo by ObjectProfile.
Thursday, August 08, 2013
Monday, August 05, 2013
UI Painter progressing
The UI Painter for Spec in Pharo is progressing. It is now possible to generate a spec.
Sunday, August 04, 2013
Wednesday, July 31, 2013
Monday, July 29, 2013
Sunday, July 28, 2013
Saturday, July 27, 2013
Mars on Pharo
marsonpharo.wordpress.com is showing results of the GSOC project on Mars - platform independent UI bindings for Pharo
Thursday, July 25, 2013
Wednesday, July 24, 2013
Why Smalltalk is better than Excel
Georg Heeg demonstrates The Analyst (one of the early, important projects done in Smalltalk-80) at STIC 2013. If you want to know more watch the short video.
Tuesday, July 23, 2013
Snapshotcello
Installing Pharo in many flavors
Guillermo Polito wrote a blog post on the various ways you can install Pharo onto your system. Read more.
Thursday, July 18, 2013
Tuesday, July 16, 2013
BioSmalltalk published in Bioinformatics Journal
The BioSmalltalk project (a new environment system for pure object-oriented bioinformatics programming) is now published in the Bioinformatics Journal. Read more or directly read the PDF article. The project lives here.
Monday, July 15, 2013
Building and deploying your first web app with Pharo
Sven wrote a nice tutorial on how to build and deploy your first Pharo webapplication. It does not use any of the known Smalltalk webframeworks (like Seaside, Aida, Iliad, ...) - it requires only the Zinc HTTP components that are already part of the Pharo image.
He also explains how to deploy the final result to the cloud.
He also explains how to deploy the final result to the cloud.
Chapter on Blocks
The "Deep into Pharo" book now also contains a chapter about Blocks. Download is here.
Sunday, July 14, 2013
Redline Smalltalk Eclipse plugin
The Eclipse plugin for Redline Smalltalk moves forward as this screenshot proves.
Athens on Amber
Athens - the Smalltalk graphic framework that is now also part of upcoming Pharo 3.0
is also available for Amber Smalltalk.
So you can write your graphics code in Pharo first and run it later in Amber directly within a webbrowser.
A demo is here. You have to move the splitter in the middle of the helios IDE to see the "do it" button.
Nice!
Hopefully Amber and Pharo will continue to stay as much as possible compatible - then you can freely choose the appropriate platform for writing server side (Pharo or Amber on node.js), rich client (Pharo) or webbrowser (Amber) code in Smalltalk.
So you can write your graphics code in Pharo first and run it later in Amber directly within a webbrowser.
A demo is here. You have to move the splitter in the middle of the helios IDE to see the "do it" button.
Nice!
Hopefully Amber and Pharo will continue to stay as much as possible compatible - then you can freely choose the appropriate platform for writing server side (Pharo or Amber on node.js), rich client (Pharo) or webbrowser (Amber) code in Smalltalk.
Tuesday, July 09, 2013
Playing with Helios in new Amber
Now that the new Amber 0.11.0 is released I'm sure you want to play with Smalltalk and the new Helios IDE of Amber in your webbrowser. For those who need some instruction:
- open the Amber homepage: http://amber-lang.net
- press F12 in your Google chrome browser to get the debgging tools, now click on the Javascript console
- evaluate "amber.loadHelios()" and press enter - now Helios is being loaded
- when loading is finished press CTRL + Space to open the Helios IDE
You can open Browser, TestRunner, Workspace and play with it.
- open the Amber homepage: http://amber-lang.net
- press F12 in your Google chrome browser to get the debgging tools, now click on the Javascript console
- evaluate "amber.loadHelios()" and press enter - now Helios is being loaded
- when loading is finished press CTRL + Space to open the Helios IDE
You can open Browser, TestRunner, Workspace and play with it.
Gradualtalk
Gradualtalk is a gradually-typed Smalltalk, which is fully compatible with existing Smalltalk code. Image is based on Pharo Smalltalk and the type system is deactivated by default.
Amber 0.11.0 released
Amber Smalltalk 0.11.0 released with more fixes, more commiters, more tests, ....
This release includes also the Helios IDE (which is not yet the default but can be opened via JavaScript).
You can either download it or install it via NPM (the node.js package manager).
This release includes also the Helios IDE (which is not yet the default but can be opened via JavaScript).
You can either download it or install it via NPM (the node.js package manager).
Monday, July 08, 2013
Object swapping fun
Impress your OO friends from other languages and run this in a Pharo environment:
Color black become:Color white
Hat tip to HwaJong Oh for the idea
Color black become:Color white
Hat tip to HwaJong Oh for the idea
Thursday, July 04, 2013
SourceCity for Pharo with CI job
SourceCity is a 3D visualization tool for analyse object-oriented systems. There is a new Jenkins CI job to build a "SourceCity" image right from the metacello config.
So you just need to download the image and run with the usual Pharo VM. To create a visualization just evaluate:
SourceCity exampleRpackage
Note that SourceCity is meanwhile open source with MIT license. Code can be found on SmalltalkHub.
Read more about the project here (page is a little bit slow) or here.
So you just need to download the image and run with the usual Pharo VM. To create a visualization just evaluate:
SourceCity exampleRpackage
Note that SourceCity is meanwhile open source with MIT license. Code can be found on SmalltalkHub.
Read more about the project here (page is a little bit slow) or here.
Roassal with Sunburst visualization
There is also some progress on a Sunburst visualization for Roassal. Click the image to zoom the screenshot:
Roassal with 3D support
The Roassal visualization engine for Pharo now also supports 3D. Here is a screenshot, click to zoom.
You can also view an older video to get more infos on how to use Roassal.
You can also view an older video to get more infos on how to use Roassal.
Jun for Smalltalk - new release 795
There is a new release of Jun for Smalltak - release 795 as of 2013/07/03
Wednesday, July 03, 2013
New class builder in Pharo 3.0
The latest updates of Pharo 3.0 contain a new class builder. Check out
PharoClassInstaller example
for an example.
This will end up in the support of "slots" - a slot is a meta-object for accessing a field in an Object. This makes class building also more explicit - for instance you can define the layout when building a class (PointerLayout, ByteLayout, ...)
So instead of having an instanceVariables array you can now have real layout objects. The implementation also includes field modifications which can track changes required to migrated instances (adding/removing fields, shifting position, ...).
Read more about Slots here.
PharoClassInstaller example
for an example.
This will end up in the support of "slots" - a slot is a meta-object for accessing a field in an Object. This makes class building also more explicit - for instance you can define the layout when building a class (PointerLayout, ByteLayout, ...)
So instead of having an instanceVariables array you can now have real layout objects. The implementation also includes field modifications which can track changes required to migrated instances (adding/removing fields, shifting position, ...).
Read more about Slots here.
Tuesday, July 02, 2013
Friday, June 28, 2013
Playing with Cairo and Athens in upcoming Pharo 3.0
The next Pharo version (Pharo 3.) which is in preparation now has Athens and Cairo integrated for better graphics. If you want to play with it just read this.
Thursday, June 27, 2013
Innovation Technology Awards - ESUG 2013
Have you written innovative stuff in Smalltalk? Then continue reading here.
Wednesday, June 26, 2013
Slides on Pharo
There is a new slideshare account with slides about Pharo:
http://www.slideshare.net/pharoproject
Read more.
Tuesday, June 25, 2013
Tekka for Squeak and Pharo
Tekka is a simple and mode-less Japanese input method in Squeak/Pharo environment. Just scroll down on this page and have a look at the videos.
Monday, June 24, 2013
Redline Smalltalk on JavaOne
RedlineSmalltalk will be presented at JavaOne JVM Languages track - CON7805 in SanFrancisco (September 22–26, 2013).
Sunday, June 23, 2013
Friday, June 21, 2013
Custom icon themes for Pharo / Eclipse icons
As you may know you can change the UI theme in Pharo.
Just click "System" - "Settings" to open the settings browser and select the user interface in the appearance section. Beside the "Pharo" theme there are also themes called "Vistary" (if you like Windows) or "Watery"/"Watery2" (if you are used to Mac).
You can even implement own themes (as Doru demonstrates with his "White theme").
In the upcoming Pharo 3.0 you can even provide an own custom icon theme.Esteban demonstrates this with this goodie that allows Pharo to look like Eclipse since it uses the same icons as the Eclipse Java IDE.
Click on the screenshot images to zoom. Very useful if you want to show someone fluent in Java the wonderful world of Smalltalk.
Just click "System" - "Settings" to open the settings browser and select the user interface in the appearance section. Beside the "Pharo" theme there are also themes called "Vistary" (if you like Windows) or "Watery"/"Watery2" (if you are used to Mac).
You can even implement own themes (as Doru demonstrates with his "White theme").
In the upcoming Pharo 3.0 you can even provide an own custom icon theme.Esteban demonstrates this with this goodie that allows Pharo to look like Eclipse since it uses the same icons as the Eclipse Java IDE.
Click on the screenshot images to zoom. Very useful if you want to show someone fluent in Java the wonderful world of Smalltalk.
Thursday, June 20, 2013
Better rewriting rule tool
There is a GSoC Project to provide a better rewriting rule tool. If you are interested you can follow its progress on this blog or find the code here.
Tuesday, June 18, 2013
Cade - graphics framework for Pharo
There is Cade - a graphics framework for Pharo using Athens. Here is the link including a demo video.
Monday, June 17, 2013
Presenty
Presenty is a user interface framework for Pharo based on MVP (Model view presenter). Read more about it on Denis blog.
Code is on SmalltalkHub.
Friday, June 14, 2013
STIC 13 - VA Smalltalk Roadmap
First video recorded by James from this months "STIC 13" conference, Wigwam resort, Phoenix Arizona (June 9-12). Expect more to come in the next days ...
Barcodes in Smalltalk
Didnt know Barcodes are so easy to implement in Smalltalk. So I started with EAN13 barcode together with unit tests.
Project lives on: http://smalltalkhub.com/#!/~TorstenBergmann/Barcode
You can also load it using the config browser in Pharo 2.0 now. It is already usable - thanks to the power of Pharo.
Short Guide:
To instantiate: BarcodeEAN13 value: '2109876543210'
You can get the binarySequence of a barcode:
(BarcodeEAN13 value: '2109876543210') binarySequence
calcuate the checksum (last digit):
(BarcodeEAN13 value: '2109876543210') computeChecksum
or visualize the barcode:
BarcodeEAN13 example asForm asMorph openInWorld
or to write to a file:
PNGReadWriter putForm: BarcodeEAN13 example asForm onFileNamed: 'sample.png'
Now includes EAN8 as well
Project lives on: http://smalltalkhub.com/#!/~TorstenBergmann/Barcode
You can also load it using the config browser in Pharo 2.0 now. It is already usable - thanks to the power of Pharo.
Short Guide:
To instantiate: BarcodeEAN13 value: '2109876543210'
You can get the binarySequence of a barcode:
(BarcodeEAN13 value: '2109876543210') binarySequence
calcuate the checksum (last digit):
(BarcodeEAN13 value: '2109876543210') computeChecksum
or visualize the barcode:
BarcodeEAN13 example asForm asMorph openInWorld
or to write to a file:
PNGReadWriter putForm: BarcodeEAN13 example asForm onFileNamed: 'sample.png'
Now includes EAN8 as well
Units in Smalltalk
I uploaded a "ConfigurationOfUnits" to the MetaRepoForPharo20. With this the "Units" framework is easily loadable from the Pharo 2.0 config browser.
Here are some examples from the Unit framework:
(10km + 10km) gives you 20km
You can also convert easily
(10km + 24m) as: 1m
gives you 10024 metres.
It is also simple to compare:
1hour < 10 seconds
which gives you false.
Here are some examples from the Unit framework:
(10km + 10km) gives you 20km
You can also convert easily
(10km + 24m) as: 1m
gives you 10024 metres.
It is also simple to compare:
1hour < 10 seconds
which gives you false.
Thursday, June 13, 2013
Wednesday, June 12, 2013
Log4s for Pharo
Log4s - a logging framework for Smalltalk was open sourced with MIT license by Instantiations. It runs on Pharo 2.0.
Some details about it can be found in this presentation.
Some details about it can be found in this presentation.
libsodium Binding for Pharo and Squeak
Magritte for Morphic
Magritte is a framework allowing you to easily build seaside apps by adding meta informations to domain classes that can be used to easily build the UI.
Now there is also support for Morphic available. Just watch the video.
Now there is also support for Morphic available. Just watch the video.
Sunday, June 09, 2013
Tab widget
Benjamin implemented a better Tab widet for Pharo. Code is on SmalltalkHub and it was today integrated into Pharo 3.0.
Nice!
Nice!
Circular Menues
Pharo will soon support circular menues. Here is a video demonstrating this feature.
Friday, June 07, 2013
Web with Pharo Conference 6 June 2013 @ Lille
The program from yesterdays Pharo web conference is already on twitter:
Lets see when the first videos appear on the web.
Lets see when the first videos appear on the web.
Thursday, June 06, 2013
Tektronix Smalltalk Document Archive
This page contains annotated links to primary documents related to the development of Smalltalk products at Tektronix in the 1980′s.
Amber Smalltalk on the iPhone
Sebastian Sastre is playing with Amber - so here is Amber Smalltalk running on the iPhone. Click the image to enlarge.
Wednesday, June 05, 2013
The Power of Clean Code
Pharo gets better and better - Sean DeNigris demonstrates this with a short video.
STIC 2013
The Smalltalk Industry Council STIC'13 Conference will be held next Sunday thru Wednesday, June 9-12 at the Wigwam Resort near Phoenix.
Tuesday, June 04, 2013
Sunday, June 02, 2013
SourceCity is OpenSource now
SourceCity is a 3D visualization tool for analyse object-oriented systems.
It is now OpenSource with MIT License! Read more.
Friday, May 31, 2013
Rubric demo for Pharo
Alain Plantec gives a first demo of Rubric (a deep refactoring of TextEditor) for Pharo in a new video:
http://vimeo.com/67400546
Code lives on SmalltalkHub.
http://vimeo.com/67400546
Code lives on SmalltalkHub.
Device prototype with Smalltalk from 1991
This device was a prototype for a pen computer called the "ActiveBook". Software part was done with Smalltalk.
Artefact 1.0 - PDF framework for Smalltalk
Artefact 1.0 is released - a project implementing a PDF framework for Smalltalk.
Project and code live at on SmalltalkHub. Read more about the features in the announcement.
To easily try out download Pharo 2.0, open the config browser and load the "Artefact" project.
Then check the class PDFDemos. If you evaluate "PDFDemos runAllDemos" you will find a "pdf" directory with all the PDF samples generated.
Project and code live at on SmalltalkHub. Read more about the features in the announcement.
To easily try out download Pharo 2.0, open the config browser and load the "Artefact" project.
Then check the class PDFDemos. If you evaluate "PDFDemos runAllDemos" you will find a "pdf" directory with all the PDF samples generated.
Smalltalk Debugging facilities for web development
A debugger is not only something a developer uses to hunt for bugs. It is also a tool that makes a developer more productive.
In Smalltalk the debugging experience is really impressive. As someone once said:
"I love Smalltalk. I love coding in the debugger, being able to archive processes and restore them exactly later if they encounter exceptions, the amazing reliability. The economy of expression and the brilliant class library."
Soon Amber Smalltalk will bring this debugging experience also to web development. Have a look at this demo video.
In Smalltalk the debugging experience is really impressive. As someone once said:
"I love Smalltalk. I love coding in the debugger, being able to archive processes and restore them exactly later if they encounter exceptions, the amazing reliability. The economy of expression and the brilliant class library."
Soon Amber Smalltalk will bring this debugging experience also to web development. Have a look at this demo video.
Some Smalltalk history
A picture provided by Allan Wirfs-Brock with the following comment:
"And this was how you coded a fast Smalltalk virtual machine in 1985"
"And this was how you coded a fast Smalltalk virtual machine in 1985"
Thursday, May 30, 2013
Reflectivtity for Pharo
Reflectivity for Pharo is out - this tool allows you to annotate
AST nodes with "metalinks". Read more.
Friday, May 24, 2013
HPI Seaside Tutorial updated
The Seaside tutorial from HPI Potsdam is updated and there are two new chapters about testing and web feeds.
Thursday, May 23, 2013
Experimental White Space theme for Pharo
Pharo supports UI theming and there is now a new experimental "White space theme" from Tudor.
Web with Pharo
peer.js and Amber Smalltalk
There is a new binding to peer.js for Amber. You can find the project here.
Tuesday, May 21, 2013
To trap a better mouse
Ian Piumarta (Squeak Unix VM maintainer, long time Squeaker and Smalltalker) who is working for Viewpoints Research Institute will speak Wednesday May 29, 2013, 3:30 pm at Room W1008, West Building 8W, Ookayama campus, Tokyo Institute of Technology about "To trap a better mouse".
Monday, May 13, 2013
Suggestions in Pharo 3.0
The upcoming Pharo 3.0 provides "suggestions" in the code editor. Here is a demo video.
High-Level Musical Concepts in µO
There is a new paper available about Musical concepts represented in Smalltalk code.
Monday, May 06, 2013
Sunday, May 05, 2013
Kinematic Templates in Smalltalk
The Kinematic Templates interaction technique suggests adjusting the user's
mouse input to it tends to match a drawing template. That allows the user
to draw in free-hand mode and obtain a "beautified" version of it's hand
drawing.
There is an implementation for Pharo. Read more or watch the video or read the paper.
There is an implementation for Pharo. Read more or watch the video or read the paper.
Redline ST IntelliJ plugin
There is now a preview video for the IntelliJ IDEA Redline Smalltalk plugin available.
Saturday, May 04, 2013
Your own SmalltalkHub
If you want to implement a feature in SmalltalkHub then just use your own private SmalltalkHub instance to implement.
Friday, May 03, 2013
Gemstone
Leaving VMWare Gemstone is now independent again moving Smalltalk products forward:
http://gemtalksystems.com
http://gemtalksystems.com
BabyMock 1.0
BabyMock is a visual mock object library for Pharo Smalltalk. Read more here or read the docu on SmalltalkHub.
Thursday, May 02, 2013
Thursday, April 25, 2013
Elasticsearch with Smalltalk
Elasticsearch claims to be a "flexible and powerful open source, distributed real-time search and analytics engine for the cloud". There is now a Pharo binding available for it from Paul.
Sqnappy - a Squeak/Pharo binding of the snappy compressor library
Snappy is a compression/decompression library. Its does not provide best compression - but is very fast. Now there is a Squeak/Pharo binding to the compressor library available. Read more here.
ESUG 2013 Call for Participation
You can find more infos about this years ESUG on James blog or from Stefs initial post.
Wednesday, April 24, 2013
Smart Suggestions for Pharo
The idea of "Smart Suggestions for Pharo" is to have suggestions based in the text selected or the cursor position in the code editor.
Read more about and see some screenshots here.
Read more about and see some screenshots here.
Monday, April 22, 2013
Saturday, April 20, 2013
Processing MJPEG streams with Pharo Smalltalk
Nice samples of how to view and capture MJPEG streams with Pharo Smalltalk.
Wednesday, April 17, 2013
ObjC bridge for Pharo
Esteban is working on an ObjC bridge for Pharo. Here is a first demo video comparing graphics within the world canvas and outside of the usual Morphic World using the bridge.
Tuesday, April 16, 2013
Pharo 3.0 and Opal compiler
After Pharo 2.0 came out the development on 3.0 immediately started.
Pharo 3.0 already has many new updates and today it also integrates Opal (a new compiler).
If you want to know more about Opal then read here or look at this presentation from the Deep into Smalltalk summer school.
Still Opal is not the default compiler - but step by step...
Pharo 3.0 already has many new updates and today it also integrates Opal (a new compiler).
If you want to know more about Opal then read here or look at this presentation from the Deep into Smalltalk summer school.
Still Opal is not the default compiler - but step by step...
Monday, April 15, 2013
The rationale behind Spec
the new way to define composable UI's in Pharo is summarized here and there is a tech report also available.
Sunday, April 14, 2013
PharoConf Videos
Three videos from PharoConf
- Building UIs with Spec: https://www.youtube.com/watch?v=P98-qpLUvQQ
- Data Migration with Moose: https://www.youtube.com/watch?v=8SGHV1lCry0
- Pharo Roadmap: https://www.youtube.com/watch?v=9xRVzzjgPu8
- FileSystem-Git: https://www.youtube.com/watch?v=4qld2mDIbg4
Friday, April 12, 2013
Athens Tutorial
Want to use the new Athens graphics package? There is a new tutorial that you can run from within the image.
This video from James shows how to use it.
Thursday, April 11, 2013
Profiling using Spy framework
Alexandre Bergel is demonstrating some profiling and visualization of the Spy framework. He uses package "HelpSystem" - stuff that I wrote back in 2010. Interesting point of view on things I did myself in the past. Looks like I should apply these visualizations to the new Online Help system as well to get even better results.
Thanks!
Wednesday, April 10, 2013
Interactive Smalltalk
A really nice video from Esteban that demonstrates the interactive nature of Smalltalk development and scripting facilities - here with Pharo. The demo is using Storm (a small game engine).
Monday, April 08, 2013
Pharo Resource page
James Robertson is offering a "Pharo Resource page" with links to his videos about Pharo. Nice!
Sunday, April 07, 2013
First 13 minutes of PharoConf
First 13 minutes of Pharo conference are available as video. Others are in preparation.
Pharo package for Ubuntu
There is now also a special Pharo package for Ubuntu, so you can easily install it. Read more.
Friday, April 05, 2013
Amber Smalltalk Game
A nice demo of an in-browser game developed in Amber Smalltalk is available
since today. Click here to try or read here.
If the demo runs in your browser click on "class browser" to see the code.
since today. Click here to try or read here.
If the demo runs in your browser click on "class browser" to see the code.
Thursday, April 04, 2013
Quicksilver
Quicksilver is a tool for the interactive exploration of hierarchical graphs. Code is on SmalltalkHub.
Gofer new
Gofer new
smalltalkhubUser: 'Quicksilver' project: 'Quicksilver';
package: 'Quicksilver';
load
It requires Moose and can be used to create Roassal visualizations like this from a filesystem.
Wednesday, April 03, 2013
Athens Vector graphics tutorial for Pharo
Athens is a new vector graphics API for Pharo. There is now an in-image tutorial
from Igor you can use to get used to it. Really nice!
Trying Parasol with Selenium in Pharo Smalltalk
Johan Brichau answered my question from my last post: about the difference between the "Parasol" and "Webtester":
Now in Pharo 1.4 image I installed Parasol using:
Took a while since it loads Seaside. After anything is set up I can easily script the webdriver/Firefox from a Smalltalk workspace. Here is an example:
So it is easy to write SUnit tests or automate some tasks you do on the web using Pharo. With the help of F12 in the webbrowser it is easy to find out about element ids, ... in HTML, so one can easily navigate through pages.
I worked with Selenium in Java and other languages already in the past. Parasol is not as comfortable as with the Selenium IDE recorder - but it works and using Smalltalk usually makes one more productive.
It is nice to see that I can now also control the Firefox browser to automate things and write webtests directly from within Pharo Smalltalk.
- WebTester was written for Selenium RC (aka Selenium 1) using an old protocol
- Beach-Parasol is written for Selenium Webdriver (aka Selenium 2) using the JSONWire Protocol and can be seen as a replacement for WebTester
- a fresh Mozilla Firefox was already installed on my machine
- Parasol still requires old Pharo 1.4, so even when I prefer Pharo 2.0 I downloaded it again
- I installed the current version selenium-server-standalone-2.31.0.jar of Selenium which can be found here
java -jar C:\selenium\selenium-server-standalone-2.31.0.jar -Dwebdriver.firefox.bin="C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
pause
Now in Pharo 1.4 image I installed Parasol using:
Gofer new
url: 'http://ss3.gemstone.com/ss/Parasol';
package: 'ConfigurationOfParasol';
load.
((Smalltalk at: #ConfigurationOfParasol) project version: #development) load: 'dev'.
WAKomEncoded startOn: 8080.
Deprecation raiseWarning: false; showWarning: false.
Took a while since it loads Seaside. After anything is set up I can easily script the webdriver/Firefox from a Smalltalk workspace. Here is an example:
"Start the driver and open wikipedia"
driver := BPRemoteWebDriver new.
driver get: 'http://en.wikipedia.org/'.
"click on search"
(driver findElementByID: 'searchInput') click.
"enter some text"
driver getKeyboard sendKeys: ('Pharo' , (String with: BPKeys return)).
"query some text from the webpage"
Transcript show: ((driver findElementByID: 'mw-content-text') findElementByTagName: 'p') getText.
driver quit
So it is easy to write SUnit tests or automate some tasks you do on the web using Pharo. With the help of F12 in the webbrowser it is easy to find out about element ids, ... in HTML, so one can easily navigate through pages.
I worked with Selenium in Java and other languages already in the past. Parasol is not as comfortable as with the Selenium IDE recorder - but it works and using Smalltalk usually makes one more productive.
It is nice to see that I can now also control the Firefox browser to automate things and write webtests directly from within Pharo Smalltalk.
Parasol - web testing using Smalltalk
There is a project called "Parasol" allowing you to do web testing using Smalltalk. It uses Selenium.
Still dont know what the difference to "WebTester" is - which is another project for webtesting I already blogged about.
Tuesday, April 02, 2013
Pharo and GitFS
There is a GitFS available for Pharo. It is a work in progress and there is already some docu.
Fuel and Tanker demo session
First videos from PharoConf 2013 appear on the net. One video is about Tanker - an experimental package loader. It uses Fuel to do serialization and deserialization and will allow for faster loading.
Didnt know about the debugger menu item to serialize the stack to a .fuel file. Allows to serialize an error stack in case of problem and materialize the stack in another image to reproduce.
Nice - try that with other technologies out there ;)
Code for Fuel is already in Pharo 2.0. The Tanker project is on SmalltalkHub.
Didnt know about the debugger menu item to serialize the stack to a .fuel file. Allows to serialize an error stack in case of problem and materialize the stack in another image to reproduce.
Nice - try that with other technologies out there ;)
Code for Fuel is already in Pharo 2.0. The Tanker project is on SmalltalkHub.
Back to the command line with Pharo Smalltalk
Pharo 2.0 allows you to easily deal with the command line. This is very useful if you want to script some daily tasks or your CI builds.
You can pass arguments to the image and also register own command line commands. Just check out the class comment in class "CommandLineHandler" and check its subclasses.
Creating an own handler is easy: just subclass CommandLineHandler with a custom class:
Implement a class side method to return the command name:
and implement an instance side #activate method:
Now call it from the command line
$PATH_TO_VM myImage.image time
and it will print the current time on stdout. Note that the #activateHelp will activate the --help option which displays the class comment of your custom handler class.
Also note that it is now possible to write in colors in a terminal from Pharo as this photo shows (click to enlarge):
You can pass arguments to the image and also register own command line commands. Just check out the class comment in class "CommandLineHandler" and check its subclasses.
Creating an own handler is easy: just subclass CommandLineHandler with a custom class:
CommandLineHandler subclass: #TimeCommandLineHandler
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Custom-CommandLine'
Implement a class side method to return the command name:
commandName
^ 'time'
and implement an instance side #activate method:
activate
self activateHelp.
FileStream stdout
nextPutAll: '[time] ';
nextPutAll: Time now asString
Now call it from the command line
$PATH_TO_VM myImage.image time
and it will print the current time on stdout. Note that the #activateHelp will activate the --help option which displays the class comment of your custom handler class.
Also note that it is now possible to write in colors in a terminal from Pharo as this photo shows (click to enlarge):
Get Pharo easily
If you want to install Pharo on your platform you can go to:
http://files.pharo.org
and download the specific distribution for your platform from the platforms directory. For instance "Pharo2.0-win.zip" for Windows, "Pharo2.0-mac.zip" for Mac and "Pharo2.0-linux.zip" for Linux.
There is also a "Pharo2.0-portable.zip" if you change platforms often (just put it on a USB stick). Also note that Pharo 3.0 is already available there as well - so if you want to help with fixes and changes feel free to do so.
If you visit
http://get.pharo.org
there is another way to install it. This page includes the Zero conf script allowing you to easily
install Pharo using the command line. For Pharo 2.0 this is:
And you can use:
for the current stable release of Pharo and the PharoVM.
http://files.pharo.org
and download the specific distribution for your platform from the platforms directory. For instance "Pharo2.0-win.zip" for Windows, "Pharo2.0-mac.zip" for Mac and "Pharo2.0-linux.zip" for Linux.
There is also a "Pharo2.0-portable.zip" if you change platforms often (just put it on a USB stick). Also note that Pharo 3.0 is already available there as well - so if you want to help with fixes and changes feel free to do so.
If you visit
http://get.pharo.org
there is another way to install it. This page includes the Zero conf script allowing you to easily
install Pharo using the command line. For Pharo 2.0 this is:
wget -O - http://get.pharo.org/20+vm | bash
And you can use:
wget --quiet -O - get.pharo.org | bash
for the current stable release of Pharo and the PharoVM.
Tuesday, March 26, 2013
Pomodoro for Pharo 2.0
The Pomodoro Technique is a time management method. There is now also a simple timer implementation for Pharo 2.0 available.
You can load the tool right from the config browser and it allows easy scripting from Smalltalk:
Read more about the details here.
You can load the tool right from the config browser and it allows easy scripting from Smalltalk:
"Provide an action when pomodoro is finished"
Pomodoro timerFor: 20 minutes
whenFinishedDo: [ self inform: 'Pomodoro finished']
Read more about the details here.
Thursday, March 21, 2013
IRC Pharo
The old IRC channel #pharo-project about Pharo is now closed. So if you want to chat
about the Pharo environment use the new #pharo channel on freenode.
Moose 4.8 on Pharo 2.0
Moose moved to Pharo 2.0. All tests are green and the team recommends to use Pharo 2.0 in the future.
Wednesday, March 20, 2013
One-click is dead
Even when then new Pharo 2.0 is delivered as a one-click on the homepage, in the future
we will see OS specific packages for Win, Linux, Mac, ...
The platform specific builds are already in place.
The platform specific builds are already in place.
Monday, March 18, 2013
Wednesday, March 13, 2013
Sunday, March 10, 2013
VertiMeta
VeriMeta tests all the package of one metacello version in a semi-auto fashion. Read more here or watch this video.
Saturday, March 09, 2013
Wednesday, March 06, 2013
Cross dialect Smalltalk CI
Do you want to use cross dialect Smalltalk (Pharo, Squeak and GemStone) continuous integration service?
Then have a look at "builderCI" from Dale which is using GitHub and TravisCI.
Sunday, March 03, 2013
Friday, March 01, 2013
Thursday, February 28, 2013
Wednesday, February 27, 2013
OOP - a critical approach
Some years ago I had email exchange with Huw Collingbourne about
programming and Smalltalk and Smallscript/S# in particular. At this time I helped my friend David Simmons a little bit with some early
Smallscript releases.
Huw runs the http://www.bitwisemag.com and he had a tutorial on Smalltalk with Squeak and one about Dolphin Smalltalk.
Huw also published an interview with David as the creator of Smallscript. Smallscript (as some of you may know) is still closed and not released into the wild for various reasons. It is still one of the most fascinating software technologies and dynamic scripting environment/language I was able to get my hands on.
But I dont want to write about Smallscript here.
Huw Collingbourne is instructor on programming languages, he wrote books about Ruby and is director of technology at SapphireSteel Software (known for their Ruby IDE).
I found an interesting post about Smalltalk and other programming languages in the context of object oriented programming from Dec 2012 written by Huw:
https://www.udemy.com/blog/object-oriented-programming-a-critical-approach/
Read it. It should make you think and again remind you that the IT world made no real progress with recent languages and software technologies regarding objects.
Day by day I see so many people write code or writing about OO code (in blogs, papers, ...).
Not all really understood about OOP and its key concepts.
People learn languages like Groovy, CoffeScript or Scala today, the next day they learn Dart or the next language. Sometimes only the syntax changed. But they never looked at OOP, they never looked at its origins in Smalltalk or Lisp because these technologies are "too old" and not mainstream. But they should - it will help fighting complexity and help when the code grows.
Only a few of them ever took the time to look at Smalltalk. And a few of the few people really continued to look and understand that Smalltalk is not really a language. It is a dynamic object system with the language just built in. Even a class is an object and therefore has a class. It can dynamically changed, created or removed and garbage collected like any other object. If you need new control structures just add them as new methods. It's turtles all the way down and the power is in the simplicity: Objects and Messages.
Worked with several languages and environments I learned to know about both worlds. On one side the text file based, often static compiled world (mostly combined with a horrible grammar) that constraints writing good OOP and on the other side a dynamic live environment where you can lively interact with all the objects around either by using code or direct manipulation.
Smalltalk is still the mother of OO languages - you can not get any closer to OOP than within its environment. And it is also opens the door to metaprogramming - something I will write about later here.
I can only recommend it - grab a free copy and learn about it. You will not regret it even if you continue to work with more mainstream technologies.
Huw runs the http://www.bitwisemag.com and he had a tutorial on Smalltalk with Squeak and one about Dolphin Smalltalk.
Huw also published an interview with David as the creator of Smallscript. Smallscript (as some of you may know) is still closed and not released into the wild for various reasons. It is still one of the most fascinating software technologies and dynamic scripting environment/language I was able to get my hands on.
But I dont want to write about Smallscript here.
Huw Collingbourne is instructor on programming languages, he wrote books about Ruby and is director of technology at SapphireSteel Software (known for their Ruby IDE).
I found an interesting post about Smalltalk and other programming languages in the context of object oriented programming from Dec 2012 written by Huw:
https://www.udemy.com/blog/object-oriented-programming-a-critical-approach/
Read it. It should make you think and again remind you that the IT world made no real progress with recent languages and software technologies regarding objects.
Day by day I see so many people write code or writing about OO code (in blogs, papers, ...).
Not all really understood about OOP and its key concepts.
People learn languages like Groovy, CoffeScript or Scala today, the next day they learn Dart or the next language. Sometimes only the syntax changed. But they never looked at OOP, they never looked at its origins in Smalltalk or Lisp because these technologies are "too old" and not mainstream. But they should - it will help fighting complexity and help when the code grows.
Only a few of them ever took the time to look at Smalltalk. And a few of the few people really continued to look and understand that Smalltalk is not really a language. It is a dynamic object system with the language just built in. Even a class is an object and therefore has a class. It can dynamically changed, created or removed and garbage collected like any other object. If you need new control structures just add them as new methods. It's turtles all the way down and the power is in the simplicity: Objects and Messages.
Worked with several languages and environments I learned to know about both worlds. On one side the text file based, often static compiled world (mostly combined with a horrible grammar) that constraints writing good OOP and on the other side a dynamic live environment where you can lively interact with all the objects around either by using code or direct manipulation.
Smalltalk is still the mother of OO languages - you can not get any closer to OOP than within its environment. And it is also opens the door to metaprogramming - something I will write about later here.
I can only recommend it - grab a free copy and learn about it. You will not regret it even if you continue to work with more mainstream technologies.
Tuesday, February 26, 2013
Network Time Protocol in Pharo
Want to sync server times? You can check your local clock agains other servers using the NTP protocol.
Sven provides some sample code in his Neo repository.
Since the network time protocol (RFC2030) is based on the
UDP protocol you now also have a nice example on how to use UDP datagrams.
Sunday, February 24, 2013
BioSmalltalk screenshots and integrated help
BioSmalltalk provides some screenshots of their Pharo based application.
Way cool: it uses my HelpSystem which (as the site states) they could integrate in less than an hour work. Nice!
But nonetheless I now provide an online version
Pharo Online Help with Markdown support
The Pharo Online Help now has support for the markdown format. I also made a tutorial available on how to use it. Code is on SqueakSource3, but will soon move to SmalltalkHub.
You can try in a clean Pharo 2.0 image, load it using the configuration browser.
You can try in a clean Pharo 2.0 image, load it using the configuration browser.
Tuesday, February 19, 2013
PBE 2 as PDF
Want to read "Pharo by Example 2" book as a PDF. Here you go.
Update: Now the book PDF is built by the CI Server and you can find the chapters here.
Tuesday, January 29, 2013
Marea: Swapping Objects
A new paper was published on Marea, an object graph swapper for Smalltalk. Read more here or directly go to the PDF.
Monday, January 28, 2013
pdx.st meeting
There is a Portland Smalltalk User Group meeting happening on Tuesday, January 29, 2013 from 7–9pm
Sunday, January 27, 2013
Thursday, January 24, 2013
Smalltalk and CouchDB
If you want to develop an application with Smalltalk (Pharo) and CouchDB, then
continue reading this paper.
It includes a port of the Mustache web template library which is easy to use if you work with JSON. Look here for a syntax example.
Code lives on SS3 and will soon move over to SmalltalkHub (at least the project is there already, still empty).
It includes a port of the Mustache web template library which is easy to use if you work with JSON. Look here for a syntax example.
Code lives on SS3 and will soon move over to SmalltalkHub (at least the project is there already, still empty).
Wednesday, January 23, 2013
Loom
There is another new tool from ObjectProfile called "Loom - Threads Monitor Tool"
which is available for Pharo and VisualWorks.
Sunday, January 13, 2013
ZincSSO update
There is an update for Zinc SSO for Pharo together with two new demos:
- http://sso.stfx.eu
- http://sso.doit.st
See details here.
FluidSynth and Khoros for Pharo
FluidSynth is a real-time software synthesizer and there is a project called "Khoros" that is based on Pharo to use it.
Here is a screenshot and another one.
Some details are here.
Friday, January 11, 2013
InternalReprogrammability
Martin Fowler writes about "Internal Reprogrammability" in the context of Smalltalk and Emacs.
Monday, January 07, 2013
AsmJIT
Want to work with assembler even in high level languages? Then have a look at "asmjit" - a complete x86/x64 JIT Assembler for C++ Language.
There is a port to Smalltalk at http://www.squeaksource.com/AsmJit.html
It is already used in Pharos NativeBoost project.