Tuesday, January 01, 2013

Pharo Finder Tricks

Ben shares some tricks about the Pharo Finder tool.

Oak - distributed persistence using Smalltalk

Göran writes about Oak - a project for Smalltalk to make use of Riak for distributed and easy object persistence.

Fuel 1.8.1

There is a new Fuel release now ready for many image versions: Pharo 1.1.1, 1.1.2, 1.2, 1.3, 1.4, 2.0 Squeak 4.1, 4.2, 4.3, 4.4 Read more here.

Thursday, December 20, 2012

Squeak on RISC OS Pi

Tim Rowledge may be known to you. He ported Squeak to the Acorn RISC processor and wrote "A Tour of the Squeak Object Engine" when working at Interval Research. He is now working on the Raspberry Pi (RISC OS Pi) and as of today he has a running Squeak on it.

Wednesday, December 19, 2012

Need chocolate

The company Object profile is hiring: "Object Profile is hiring: Yes! We are ready to share our happyness! We are looking for fulltime and partime engineers to share fine chocolate." So if you want to work with Pharo and VW contact them.

Pharo Google Plus Community

There is now also a Google+ community for Pharo.

Thursday, December 06, 2012

Slides from Pharo workshop

Here are the new slides from Pharo workshop at fOSSa: - Talk 1: Pharo : a Dynamic Reflective System. Slides - Talk 2: Pharo: Syntax in a Nutshell. Slides - Talk 3: Pharo in the Real World. Slides

Pharo 2.0 enters Beta

Pharo 2.0 is now beta.

Friday, November 30, 2012

Redline Smalltalk article on jaxenter

There is a new online article on jaxenter (online page from Java's JAX magazine) about Redline Smalltalk.

Thursday, November 29, 2012

Redline Smalltalk in Maven (Maven plugin)

Not only is Redline available in a Maven repo (the JAR's, I reported about it). Now there is also a Maven plugin for Redline. Haven tried yet - but the plugin's mojo has one simple goal: stic So adding it to maven pom.xml should be easy. Here is a sample.

Pharo Help additional features

I added some new features to my Pharo Online Help project. Read more.

Smalltalk 30th Anniversary Reunion

There is a new page on Smalltalk-80 history: http://www.smalltalk-80.com/ and a "Smalltalk 30th Anniversary Reunion" in preparation. Read more on James' blog.

Growing Object-Oriented Software Guided by Tests

There is a book called "Growing Object-Oriented Software Guided by Tests" - the examples code is now ported to Pharo Smalltalk. See code at SmalltalkHub.

NativeBoost 1.7 for Pharo 2.0

A new NativeBoost version 1.7 for Pharo 2.0 (which is still alpha as of today) is now available.

Just fire up an updated fresh Pharo 2.0 image and select "Tools" and "Configuration Browser". Then select Native Boost and select "Install configuration (Stable version)".

- Igor changed the API of NativeBoost a little bit (avoid globals, etc.)
- Ciprian contributed special syntax for array arguments
- I contributed some more examples for Win32 by wrapping some common Win32 API functions

So if you are on Windows you can play with:

    NBWin32Shell shellBrowse: 'http://world.st' 
    NBWin32Shell getComputerName
NBWin32Shell showODBCSettings
NBWin32Shell lockWorkstation
...

A more complete list can be found here.

Using the shell you can also query infos about your system:

   NBWin32Shell getEnvironmentVariable: 'JAVA_HOME'
   NBWin32Shell getDriveType: (NBWin32Shell getHomeDrive)
   NBWin32Shell getPathEntries
   ...

You can also open the control panel and control panel applets:

   NBWin32Shell showControlPanel
   NBWin32Shell showDisplaySettingsBackground
   ...

See class NBWin32Shell for more examples.

Now there is also support for the "DebugOutputString" API - which allows you to write

    NBWin32Shell outputDebugString: 'Trace me'

These outputs can be viewed with tools like dbmon.exe (from WinSDK) or DebugView.
Very usefull if you run Pharo headless on Windows.

I also played with the MessageBox API allowing you to open native message boxes. Not yet complete but you can test with

  NBWin32MessageBox test

Additionally I started wrapping some Windows GDI functions - so if you need faster native drawing you can write:

   NBWin32Window getFocus getDC rectangleLeft: 10 top: 10 right: 100 bottom: 100


Note that NativeBoost will soon be integrated into Pharo 2.0 by default (before it goes beta).

Monday, November 26, 2012

Test coverage in Java and Smalltalk

When working with Java I usually have several plugins that I preconfigure in Maven. One is the the very usefull Cobertura plugin - it calculates the percentage of code assessed by tests.

That way you usually write a component/classes and try to cover it with as many tests as possible. Or you write the tests first (XP-Style) and then implement code until they are green. Often you want to know if you need more tests and how good they test your code.

When running maven with the Cobertura plugin (in combination with the site plugin) you get a site report that shows the coverage ratio. You can then dive into the report down into the Java packages and classes and see which lines are covered (green) and which not (red). For instance for an if/else you will see if both decision ways are covered by tests, etc.

Here is a sample report from the Java world.

Now Pavel created something similar for the Smalltalk and Pharo world. Here is the report from the Pharo kernel - scroll down to see the colored results. The Java report is still a little bit better structured - but I like that quality tools are available in both worlds.






Sunday, November 25, 2012

Thursday, November 22, 2012

Athens Animation and Chipmunk physics library in Pharo

Esteban had a little bit of time to dig deeper into Igors work:
  - NativeBoost (a new mechanism to call external libs and a replacement for the former FFI)
  - and Athens (a vector graphics framework)

On top of these Esteban created a new playground for animations based on Athens for Pharo and wrapped the chipmunks physic engine as this and this video proves. Nice!

New ChangesBrowser for Pharo 2.0

Nearly all Smalltalks I know come with a changes file and are able to easily track changes. Any change on a method - even a doIt is logged.

In Pharo 2.0 it is time to rethink some of the old tools (and change management) and add new features (like tracking semantic changes, undo/redo ...). A first preview is now available.

Just open Pharo 2.0 and evaluate:


Gofer new
 smalltalkhubUser: 'EzequielLamonica' project: 'NewChangeSystem'; 
 package: 'Changes'; 
 load 


Then open the "Changes Browser" from the tools menu. Leave the browser open and change a method in a system browser. I like that I can instantly see the change and diffs. I can also change the grouping or undo a method change, etc.

If you create a class then two changes are logged: that a class is created and that an expression is evaluated.
This is not a surprise for a Smalltalker - since a class is typically not created by a wizard or by creating a file (like in Java, C++, ...). It is created by sending a message to the superclass to create a new subclass and follows the "objects and messages" idea that makes Smalltalk. ;)

The UI of the browser needs some work - but it is already based on the new UI Specs in Pharo 2.0. The menu is also a little bit inconsistent (since the "undo" on evaluated expressions is enabled).

But nonetheless a nice and useful tool ...


Wednesday, November 21, 2012

Rossal and Calder

The Roassal visualization engine can also be used for simulation as this new video from the Calder project proves.

Redline Smalltalk for JVM funding

Getting Smalltalk to run on the JVM is not an easy task. There are currently two main projects trying to achieve that. One is RTalk from Mark Roos (that soon will see the open source light) and the other one is an already opens source project driven by James Ladd called Redline Smalltalk.

James now asks for support to fund the development. If you are interested in the campaign you can click here to become a Redliner.

Sunday, November 18, 2012

Thursday, November 15, 2012

Saturday, November 10, 2012

Redline in Maven

When I do Java work I always use Apache Maven. It's a clear step forward in Java world compared old Apache Ant - which is as terrible as old makefiles from C/C++ if the project grows. Although project descriptions (POM) in Maven are also static due to XML (and one has to code a Mojo with Java for non-common tasks) I like the unified way to treat projects and builds and the amount of plugins that are available (ranging from checkstyle, site plugins, project reports, ...).

Nice to hear that Redline Smalltalk JAR is now accessible in a Maven repo too - at least a snapshot (https://oss.sonatype.org/content/repositories/snapshots/st/redline/redline/0.2-SNAPSHOT/). Will make it easier to use it and follow Redlines development if new versions will show up as maven artefacts.

If time permits I will play with Redline a little bit in the next evenings since according to the latest commits one can now use a Java class like a Smalltalk class within Redline. This is done by dynamically generated Smalltalk to adopt a Java class. Here is an example for java.util.ArrayList.

Tuesday, November 06, 2012

Pharo Online Help (Preview)

Some time ago I wrote a little help system for Pharo. You can see some infos about it here.

I now implemented a hopefully better one and today published a preview of a possible "Pharo Online Help". Documentation and QuickStart tutorials are crucial in my opinion for better adoption of Pharo and Smalltalk. Lets see if the community accepts my proposal and helps moving it forward...

Click the image below for a preview or read about it here.

Smalltalk and multicore programming

Found a new presentation from a talk from Stefan Marr on Multicore programming in Smalltalk

How old are your objects

Nice discussion and info about the age of objects:

"Also, since our GC does not change the order of objects when compacting, you can tell if an object is older than another by enumerating all objects. The oldest ones are of course nil, false, and true (more than 30 years old now)"

Monday, November 05, 2012

Pharo downloads

If you want to grab the latest Pharo development you can regulary use the Pharo CI Server (http://ci.pharo-project.org). Unfortunaletely it is down today - but there is a page with all the latest things for download.

Friday, November 02, 2012

Pharo Server backend

UN Number is a new application for the iPad/Android. What you cant see is that it uses Pharo Smalltalk for the server backend.

Smalltalk is cool

A popular german computer magazine (ct') has a special issue on programming. On the title it states: "Cool Languages: Haskell, Smalltalk and D". Yes - and we plan to make Smalltalk even better.

 

Interactive Snap! using Seaside

A video about connecting Snap! and Scratch Sensor Board via Seaside - nice.

Yesplan video

This is a new video (in dutch) about Yesplan - a planning software made with Pharo and the Smalltalk Seaside web framework.

Byte Magazine on Smalltalk

The famous BYTE magazine issue about Smalltalk from 1981 is available online.

Aida with Websockets

The Aida web framework is now the first one with full Websocket support. So a new Aida 6.5 Interim release is published for Squeak, Pharo and VisualWorks. Download it from the website.


Monday, October 29, 2012

Amber and script tag

Amber allows you to write client side scripts for the webbrowser in Smalltalk.
Nicolas now added support for the script tag so you can write the code directly in the HTML page:

 

Pharo localization and translation with ICU

A really good package for everything related to Locales, translation and I18N is ICU. There is an interface for Pharo written by Jan van de Sandt (using the NativeBoost callout mechanism).

Thursday, October 25, 2012

Pharo VM Update

There is an updated set of Pharo VMs available (built by Jenkins), including Cairo, FFI, FreeType and SSL support.

Friday, October 19, 2012

Morphic BPM

There is a "Morphic Business Process Modeler" running right in your webbrowser. Based on JSMorphic which is a port of Smalltalks Morphic to JavaScript.

Watch the video or try yourself.

Lars Bak on language virtual machines

Lars Bak presents several language virtual machines (Self, Strongtalk, Hotspot), why they matter and how they influenced V8 and Dart.

I find it is a really interesting talk, especially since I follow his VM developments over the years (StrongTalk, OOVM, ... as you know from previous posts). And I agree with Lars who states: "I like Smalltalk"

Try to imagine if the software industry would have continued on the dynamic path in the 90's without getting the detour on static language ideas and VMs. Yes - Java and C# have momentum - but more because of marketing and commercial pressure, market pressure and since people believe in stupid TIOBE index. Better tools and IDEs makes them nowadays less painfull - but that just hides the fact that we need easily changeable and maintainable systems with meta facilities and true reflection that are easily scriptable and extendable.

We know we can do better in the software industry with dynamic languages and dynamic system. Dart is a move forward - but for me still not comparable to the most dynamic object system.
And it still comes with curly braces ;)



Wednesday, October 17, 2012

Talk about RTalk

James interviews Mark Roos about RTalk (a Smalltalk on top of JVM).

 RTalk is a Smalltalk 'Live' Environment built on the JVM. You can also get the slides from the JVM lang Summit (slides and workshop slides) or watch the video about it at Dr. Dobbs..

Pharo Workshop at fOSSa Open Source conference

There is a Pharo Workshop at fOSSa Open Source conference. Read more.

JSON with Pharo

Want to parse JSON with Smalltalk? You can use Petit parse to do it. Here is a short guide.

Wednesday, October 10, 2012

Phobos

Pavel announced Phobos - the XULRunner based Smalltalk framework for development of native GUI with standard look&feel for Linux, Mac OS X and Windows. Read more here and here.

Friday, August 31, 2012

New World

The World of Smalltalk (www.world.st) website has been changed. Nice - it includes more infos now.

Thursday, August 30, 2012

Aida 6.5 Summer release

Janko has Aida 6.5 ready. The webframework now also includes support for OpenID authentication and OAuth authorization. By default it includes support for JQuery, Twitter bootstrap and Amber.

Run Seaside 3.1 on Pharo 2.0

You want to run Seaside 3.1 already on Pharo 2.0 (both not yet released) to work on the bleeding edge versions. Here is how.

Gesture Recognizer

Need a $1 Unistroke Recognizer? There is an implementation in JavaScript that is ported to Smalltalk as well.

Thursday, August 23, 2012

JITting on ARM

Lars has some news on his GSoC project on JITting on ARM. With his VM Plugin for the Cog VM it should be possible to enable debugging and simulation of the ARM-JIT.

WebSockets for Pharo (Zinc)

The "Zinc HTTP Components" framework for Pharo will support WebSockets in the near future. An initial implementation is already available as Sven (the author of Zinc) announced today.

Thanks to a financial incentive (from Andy Bernett from Knowinnovation) Sven is now sponsored to implement it in an open source way and release the code with MIT license.


Wednesday, August 22, 2012

Bootstrap 2.1

Ahh ... Bootstrap 2.1. is out! Nice!

SourceCity for Pharo

There is CodeCity written in VisualWorks. Looks like there were some issues with licensing for commercial use.

Now there is a similar tool called "SourceCity" for Pharo.

Have a look at the demo video. Unfortunately it will not be open source - according to Stef:

 "Now we are developing since more than six months a replacement from scratch but it will not be open-source. Interested people will be able to contact us and we will license them the software."

Sad - it would have been a nice example for using NativeBoost. But meanwhile Igor wrote some documentation for NativeBoost using the HelpSystem.

Monday, August 20, 2012

Roassal video

There is a new video about the Roassal visualization engine available. It also includes a preview of the port to Amber (to run client side in the browser).

Thursday, August 02, 2012

dailyVM

The Pharo/Squeak VM Maintainers now have an own blog related to VM building an stuff.

R.I.P. FileDirectory

Pharo now finished switching from old "FileDirectory" to the new "FileSystem" for the not yet released Pharo 2.0. Expect a  much cleaner API covered with many tests.

I'm sure people may lament that Pharo is too radical and not backward compatible - but Pharo's vision can only be accomplished if the platform moves forward quickly, throws away ugly code and gets cleaner and cleaner.

I switched some of my packages to the new Filesystem, others from ReferenceStream (which is also removed in 2.0) to its replacement "Fuel" very easily. The quality and maintainability is much better and I'm sure we are on the right track.

So whats next? Morphic ;)

Altitude webframework presentation

The "Altitude" webframework is presented by Colin Putney at the next Vancouver Smalltalk Developer Group meeting.

Smalltalk in the cloud

Old video (1 year ago) but nonetheless interesting.

Wednesday, August 01, 2012

Roassal News

Alexandre announced that Roassal now supports Cairo in VisualWorks. See this picture (click to enlarge):

They also work on an Amber version to be able to run in the webbrowser. Nice!

Sunday, July 29, 2012

OpenQwaq in use

3D ICC is using OpenQwaq (which is based on Squeak Smalltalk) for a collaborative platform. Here is a new showcase video how Smalltalk helps to work as a team in 3D.

Monday, July 23, 2012

RTalk on JVM Language Summit 2012

Mark Roos will present RTalk (a Smalltalk on the JVM) at the JVM Language Summit (July 30 to August 1, 2012). Mark Roos has two talks - one about RTalk and one about "invokedynamic" (a new bytecode for dynamic method invocation).


You can also watch the presentation about RTalk from last year.

Wednesday, July 18, 2012

MessagePack for Smalltalk

MessagePack is an efficient binary serialization format. Now there is also Smalltalk support for it.

Pharo 1.4 "Summer" released


The summer release of Pharo 1.4 is announced! 
While the community is hard working on getting 2.0 into shape this is a maintenance release for all users of Pharo 1.4 with fixes and backports.

Go and download it!  

Jejak Trace Framework

The Jejak Trace Framework - a new framework for injecting probes into (Pharo) Smalltalk methods, and record their execution. Read more.

WaveFront file importer for Pharo

Jean Baptiste Arnaud published code for a Wavefront importer (3D Object Models with *.obj extension)

Tuesday, July 17, 2012

Altitude - a new Smalltalk web framework

Colin Putney announced his "Altitude" web framework for Squeak Smalltalk as open source under MIT license. It's a brand-new, from-scratch HTTP server and application framework written on top of Xtreams.


One needs an up to-date 4.4. image. Code is here and Colin provided a load script.


Colin also explains the difference between Altitude and the more well known Seaside web frameowork for Smalltalk.

BOSS - robots simulation in Smalltalk

BOSS is the "binary object storage service" in VisualWorks Smalltalk. But now BOSS also depicts a project on robots simulation written in Smalltalk done at the Ecole des Mines de Douai.

They also have an own SqueakSource server.

Monday, July 16, 2012

Ludus for Amber Smalltalk

Ludus is a game framework for Amber Smalltalk (the Smalltalk on top of JavaScript). Today I checked out the Sokoban game example which is written in it.

 Again if you hit F12 in your (chrome) browser on the page go to the JavaScript console and evaluate:

 smalltalk.Browser._open()

 you can open the Smalltalk browser and dig into the code. Amber makes client side programming really easy!

Wednesday, July 11, 2012

Memcached

Memcached is a free & open source, high-performance, distributed memory object caching system. If you want to use it with Pharo just use the ConfigurationOfMemcached.

Monday, July 09, 2012

Easy setup a Pharo Smalltalk HTTP Server

Sven shows you how to download, install and run a Pharo Smalltalk HTTP Server for Linux using a single command. Read more here.