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.

Tuesday, December 18, 2012

Deprecation in the context of Smalltalk

There is a new paper and presentation online about "How Do Developers React to API Deprecation? The Case of a Smalltalk Ecosystem."

Wednesday, December 12, 2012

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

Monday, December 03, 2012

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.

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

Redline Smalltalk on Windows

Want to play with Redline Smalltalk on Windows. It's easy:  look here.

Redline Smalltalk on Heroku

Will Leinweber got Redline Smalltalk running on Heroku (a cloud platform):

 https://stout.herokuapp.com/

 You can read more here.

Another Storm example

Another example from Estebans Storm project: 500 objects/balls in a cube. Storm is a small game engine - primarily a binding to the Chipmunk physical library using Athens.

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.

Tuesday, November 20, 2012

Sunday, November 18, 2012

Amber and Google Charts

Want to use Google Charts with client side Amber Smalltalk. Then have a look here.

Thursday, November 15, 2012

Pharo Association

The website for the Pharo association is up and running:
http://association.pharo.org/

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.

Thursday, November 08, 2012

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.

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.

 

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.

Wednesday, September 19, 2012

Tuesday, September 18, 2012

Monday, September 17, 2012

Squeak Windows VM 4.10.2

Ian updated the standard Squeak VM (non-cog) also for Windows. Feel free to help testing.

Smalltalk Programming with Spoon

Craig organizes a Guru session on "Smalltalk Programming with Spoon" in Amsterdam.

"I love Smalltalk" ribbon

Want to add an "I love Smalltalk" ribbon to your webpage. Here it is.

Source Code Tour Guide

There is a small tool called "SourceCodeTourGuide" which may help you digging into Pharos code. Here is how to use it. Worked for me in Pharo 1.4. Here is a demo video.

Squeak Unix VM 4.10.2-2593

Ian released the Squeak Unix VM (non-Cog version) 4.10.2

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.

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

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).

Wednesday, August 15, 2012

Tanker package transporter

Marino explains the Tanker package transporter which is based on Fuel. Read about it here or try the image/watch a screencast here.

Web IDE's

Maybe next Web based IDE's are built using Dart language.

Thursday, August 09, 2012

Tuesday, August 07, 2012

Friday, August 03, 2012

Thursday, August 02, 2012

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 ;)

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.

Tuesday, July 10, 2012

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.

Sunday, July 08, 2012

Friday, July 06, 2012

Pharo 2.0 progress

If you grab the latest Pharo 2.0 version from the CI server you will see that it has some countless new features:

 - one is Spotlight search which can by accessed by hitting SHIFT + ENTER
 - another one is grouping of windows: just select "Create Windows Group" from the window menu
    (you can drag and drop for instance two browsers together to have them tab-styled in one single
     window)- this is an idea from TWM docking windows.
 - Nautilus the new code browser
 - code completion in all tools
 - some initial metacello configurations using Tools -> ConfigurationBrowser
 - Fuel is now part of Pharo
 - if you load ScriptManager from the config browser you will notice that it is
    using Fuel (since Fuel is now part of Pharo) and also allows for code completion
 - the new filesystem code is integrated
 - you can now also set the Monticello package cache directory in the settings browser to easily share
    the *.mcz package cache folder between images
 - the new Spec UI is integrated allow you to easily build tools

More things to come in the near future:
 - Zodiac (SSL support) is integrated and soon the SSL plugins will be part of the distribution
 - Freetype, Cairo Libs bundled
 - ....

There is also a new way how fixes got reviews:
 - you open a bug in the Pharo issue tracker
 - then submit a fix as a slice to the inbox
 - set the state to ReviewNeeded
 - now "Ulysse" the code monkey script checks your fix by running all tests automatically - so
   it is easy to see in advance if the fix is working or breaking the latest builds

This speeds up the integration process.

Expect more things to come ...

Join Smalltalk

Thats why I like the language: it easy, extendable and expressive:

';' join: #(1 2 3 4) returns '1;2;3;4'

and

 String lf join: #('First line' 'Second line')  returns

 'First line
Second line'

Thursday, July 05, 2012

Scratch in Debian

Scratch (which is written in Squeak Smalltalk) is now in Debian.

Lively Kernel at JSConf

Dan gave a presentation about the Lively Kernel (a Squeak Morphic inspired Live kernel written in JavaScript) at JSConf 2012. The video is now available.

Wednesday, June 27, 2012

Android Bindings for GNU Smalltalk

Stefan now has an Android Binding ready so you can use GNU Smalltalk to easily run ST applications on your Android device.

Friday, June 22, 2012

NeoCSV for Pharo

Sven also released NeoCSV - a reader and writer for the CSV format in Pharo. Documentation is here.

NeoJSON for Pharo

Sven made his NeoJSON available which you can use to read and write JSON.

Wednesday, June 20, 2012

Alan Kay: Extracting energy from the Turing Tarpit

Webcasts from the ACM Turing event. One is a presentation from Alan Kay named "Extracting energy from the Turing Tarpet". Alan uses the Frank system (remember Frankenstein monster) which is based on Squeak Smalltalk. As ever a very interesting presentation. Hope to find the time to watch also the others.

If you want to find it on the page click into the playlist in the video and scroll down to Alans talk.

Thursday, June 14, 2012

Softwarenaut

Softwarenaut is an interactive visualization tool for understanding software systems. It was originally written in VisualWorks. Looks like it is also ported to Pharo.

Wednesday, June 13, 2012

GNU Smalltalk on Android

I already reported that Pharo/Squeak Smalltalk is able to run on Android using CogDroid project.
Hilaire used this to implement his DrGeo for Android which is available in the Google Market.

Now Stefan crosscompiled GNU Smalltalk to Android. A binding to Android APIs is still missing - but it basically runs. The source is on GitHub if you want to help.




Fuel Smalltalk Serializer

Want to know more internal details about Fuel - the new Smalltalk object serializer written in Pharo? Then read this PDF.

TDD using BabyMock

Nice video on TDD (Test Driven Development) using BabyMock with Smalltalk.

Monday, June 11, 2012

Draft Chapter on Petit Parser for PBE2

The new draft chapter from Lukas on PetitParser for the upcoming "Pharo by Example" book is available online.

Friday, June 08, 2012

Waterpool

Take care with the water on your desk. Otherwise this can happen to your Smalltalk browser. Code is here.

Wednesday, June 06, 2012

Deep into Smalltalk

The "deep into Smalltalk" school from ESUG is available online:

 - the page
 - the videos (youtube)
 - the videos (for download)
 - the slides

Tuesday, June 05, 2012

Aida Online Workshop

Smalltalk offers nice technologies for web development ranging from Seaside, Iliad up to Aida and other frameworks.

Between 18th and 22nd there will be an online workshop on how to create a website using Smalltalk with the Aida framework.  Janko Mivsek (creator of the framework) will answer questions.



Voyage - persisting objects

Voyage is another approach in the Smalltalk/Pharo world to persist object models. It was written by Esteban Lorenzano, I think mainly with the goal to persist data from Pier (the CMS system) images.

You will find his slides from the Pharo 2012 conference here. Francois Stephany is a beta tester and is already blogging how to use Voyage in conjunction with MongoDB.

The code can be found in the Voyage project at smalltalkhub.

Monday, June 04, 2012

Thursday, May 31, 2012

Amber in use at SmalltalkHub

http://smalltalkhub.com is not only a new website for Smalltalk. If you look at the bottom of the page you will notice that is based on Pharo, Seaside, MongoDB and also the client side Amber Smalltalk that helps running the nice looking pages.

If you have have Google Chrome just hit F12, go to the JavaScript console and evaluate:

"smalltalk.Browser._open()"

to open the Amber class browser. It is very nice to see the classes in Hub-Amber-... categories and I like how easy one can understand and encapsulate client side rendering.

Hope to find some time to dig deeper into Amber especially after Nicolas has some nice ideas to push Amber.

CogVM Object format

Guillermo explains the details of the CogVM object format in a blog post. I already mentioned Marianos blog that should also help you digging deeper in virtual machine building and related technology. Currently there is also a discussion about a new object format that Eliot want to introduce. If interested check out the vm-dev list.

Destroy all software (fun)

After watching this video I opened a Smalltalk image and tried things like "#() + #()" and the like.

Tuesday, May 29, 2012

Fuel Release Version 1.8 and graph visualizer

There is a new version 1.8 of Fuel available. The nice thing is that it now includes a visualizer based on Roassal.
This allows to easily debug Fuel.

Note that the repository is now moved to SqueakSource3


Friday, May 25, 2012

Squeak on top of JavaScript Linux in the web browser


Exotic but possible: Squeak virtual machine now also runs on JSLinux using the mini.image. 
JSLinux is a x86 PC emulator written in JavaScript and running in a web browser.

Here is the video and announcement from Pavel.

I expect more and more emulators running on top of JavaScript. Maybe one day it is fast enough to load and run Windows or Ubuntu on top of the JS engine right within your pc/tablet/phones web browser. Interesting times...


Thursday, May 24, 2012

CodeMirror - Styling Seasides WABrowser

I wrote a simple seaside wrapper today for the CodeMirror JavaScript Editor, the code lives in

    http://ss3.gemstone.com/ss/Seaside-CodeMirror

It was actually very easy to wrap due to the new WAFileMetadataLibrary facility allowing for nested folders in latest Seaside versions.

Since this editor includes also a "Smalltalk mode" you can also use the project in combination with a simple patch changeset for WABrowser to style your web served Seaside code browser/editor:
 

Wednesday, May 23, 2012

PDF4Smalltalk

Christians PDF4Smalltalk library has a new home and mailinglist.

Oniguruma

Oniguruma is a regular expression library which is standard with Ruby 1.9. Now there is a binding for VisualWorks Smalltalk too.

LivelyKernel updates

LivelyKernel - ideas from Squeaks Morphic brought to the webbrowser using JavaScript. Interesting demos:
Check out the webpage or even try the new Lively3D

Monday, May 21, 2012

IWST 2012

The International Workshop on Smalltalk Technologies for 2012 was announced.

Nagare logging library

Another new logging library or Smalltalk called Nagare is available.

Sunday, May 20, 2012

Roassal visualization engine


Roassal is a new agile visualization engine. With the project you can graphically render objects using short and expressive Smalltalk expressions. It is MIT licensed and free.

Tuesday, May 15, 2012

Cuis Smalltalk mailinglist

There is a new mailinglist to discuss the Cuis Smalltalk system.

Wednesday, May 09, 2012

DrGeo Android release

Hilaire Fernandes made DrGeo for Android available. DrGeo is built using Pharo Smalltalk.


Tuesday, May 08, 2012

Timeouts in Smalltalk

Thats why I like Smalltalk (and Blocks) - powerfull and easy to understand:


[ self doSomething ]
valueWithin: 1 day
onTimeout: [ self doSomethingElse ].

Monday, May 07, 2012

STON - Smalltalk Object Notation

You may know JSON format from JavaScript - now Smalltalk has something similar. It is called STON - Smalltalk Object Notation and infos about it can be found here.

Wednesday, April 25, 2012

Artefact - PDF framework for Pharo

Oliver created a PDF Framework for Pharo called "Artefact". Nice to have a new alternative.

In the past I used my LibHaru wrapper for Pharo - but that one requires a native library. Christians work generating PDF directly in Smalltalk is only available for VW and not yet ported to Pharo.

Monday, April 23, 2012

Squeak on a BeagleBone

Squeak running on BeagleBone (an embedded ARM V7 platform). Read more!

2nd favorite language

Just stumbled over this presentation from Eric Clayberg with an introduction to Dart for Smalltalkers. You can also watch the video here. As you may know Dart is an attempt from Google to provide a better language than JavaScript for structured web apps. Its interesting and in my spare time I follow new Dart development by looking at dartlang.org or Dart news on Google+.

One interesting thing I noticed is that Eric's presentation is dated March 2012. Nothing special for you. But at least something that made me personally think. Exactly 12 years ago in March 2000 we both attended the first CampSmalltalk in San Diego where a bunch of Smalltalkers gathered to make the world a better place and have a great time. It was my first visit to the states and yes - we all had a great time.

At the Camp Eric had a few copies of the original Smalltalk issue of the BYTE magazine and I got the last one he had left. I was so happy about this historical trophy - it still has a special place in my library!
Eric is meanwhile working for Google as Engineering Manager for the new Dart Editor at Google. One of his slides in the Dart presentation is:

"Let us know if Dart is your new 2nd favorite language :)"

I have to admin I'm not sure what my 2nd favorite language is. There are many nice languages out there:
  • Is it JavaScript since it is widely present and IMHO the dynamic languages with the best adoption
  • Is it Dart since its new and better structured than JavaScript?
  • Is it Groovy which is a nice scripting language for the JVM with Java, Lisp and Smalltalk roots and Smalltalk syntax on the wish list.
  • Is it Amber since it allows me to run Smalltalk on JavaScript
  • Is it Java since I (have to) use it in daily work and is the most wide spread
  • Is it SQL since (relational) data often survives code/programs?
  • Is it C since stupid TIOBE ranking says it has now overtaken Java.
When I look back these 12 years many new languages have evolved and I like that now more and more people turn to dynamic languages since they now see the benefits to build dynamic systems. Unfortunately only a few walk in to metaprogramming. So it's not really clear to me what my 2nd favorite language is.

But I know what my first favorite language is and the programming future still has to be invented.

Pharo Launcher for Mac

Working with Pharo Smalltalk on Mac? Then have a look here for a nice launcher.

Pharo 2.0 development started

Pharo 1.4 is released - so the community starts Pharo 2.0 development. The webpage has the details.

Thursday, April 19, 2012

Nautilus - the reborn System Browser

When working with the new Pharo 1.4. Release please do not forget to try Nautilus - a new browser. Mariano has written a nice blog post about it.

Collabri - a new Web-App, written in Amber Smalltalk

This is a video on a new Web-App, written in Amber Smalltalk (which is running on top of JavaScript). The server uses node.js and socket.io with Amber.

Video on Athens for Pharo Smalltalk

There is a new video about Athens available - the new vector graphics framework for Pharo.

Monday, April 16, 2012

Pharo.org

The Pharo community now owns http://pharo.org domain.

Amber Smalltalk on PhoneGap

Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript.

The project now has become PhoneGap and if you like you can already use Amber (the Smalltalk on top of JavaScript) with it.

Read more.

Inside OOVM

Kasper V. Lund (who is now working on Google Dart Language) provides a link to his Master thesis which he wrote with Jakob R. Andersen called "Revolutionizing Embedded Software".

Both worked together with Lars Bak in the OOVM team. Lars should be known to you from his V8 JavaScript Engine implementation in Google Chrome, the Strongtalk project and others.

OOVM is a Smalltalk based virtual machine that allows programmers to hook in remotely and modify code on the fly without needing to reboot the environment.

This VM allowed you to connect to running embedded devices and directly manipulate every object, class, or method. Which is a very known concept for us Smalltalkers since the beginning it allowed interactive programming environments for embedded system developers as well.

However - interesting paper.

Thursday, April 12, 2012

GSoC Update

13 stipendiums got accepted by Google for Smalltalk! Great work and a good investment into the future.

Tuesday, April 10, 2012

Pharo: from Kernel to Core

As I already posted Pavel is working on a small Pharo Kernel. The idea is to have the Pharo core image, throw out packages to find a minimalistic kernel image and by loading the packages back prove that it is able to boostrap Core from Kernel again.

Pavel is now using Fuel to load the core packages back into the kernel image to recreate a Pharo Core image. As you can see and read here this really speeds up the process.

Monday, April 02, 2012

Smallsource

Smallsource is a project from Dale to allow you to store Monticello packages
within the file tree. This allows you to use traditional versioning
systems like Subversion or Git from Pharo Smalltalk.

Check out the README of the project.

Dale gave a presentation on this called "Practical Git for Smalltalk"

Vancouver Smalltalk Developer Meetup

And a new Vancouver Smalltalk Developer Meetup group. More infos here.

Ha Noi Smalltalk Developers Meetup

Regular meetings for developers interested in Smalltalk in Ha Noi with focus on Pharo.

Sunday, April 01, 2012

New version of MuO

A new version of MuO (Musical objects for Squeak) is available.

Seaside 3.0.7 in preparation

Nick, Dale, Phillip, Lukas and others are working hard on preparing Seaside 3.0.7.
Here is the change log.

You can help testing it.

Squeakfest 2012

Two Squeakfest conferences in 2012 in Uruguay and another in Argentina. Read more.

Saturday, March 31, 2012

Made with Amber

Amber - the smalltalk on JavaScript is already used in customer products.
Laurent knows more - you can watch the video too.

Snap!

In the tradition of Squeaks Morphic and the Scratch platform there
is a nice library for JavaScript with a morphic implementation to BYOB
(build you own blocks)
. Version 4.0 is still in pre-alpha status, but here's a preview available.

The current result looks really good. Details can be found on Jens Mönig's blog.

Monday, March 26, 2012

Pharo Build Pipeline

The Pharo image is used a base image for various software builds - details can be
found on the Jenkins Continuous Integration tool

http://ci.pharo-project.org

Also check out the visualization of the Pharo build pipeline.

Old Hardware

Dont know what to do with old hardware? Use Pharo Smalltalk to play with it again.

TicTacToe

You start learning Smalltalk - then look at the simple TicTacToe example game you can implement in Pharo.

Testing Webapps with Pharo

Selenium is a nice web app testing system. And there is Selenium Remote Control which can be used with Pharo web tester to test your web interfaces. There is also a video showing how to do that.

IWST 2011 papers

The International Workshop on Smalltalk Technologies (IWST) 2011 proceedings are currently on-line.

Pharo and (Oracle) databases

Want to work with Pharo and Oracle using DBXTalk. Here is some help.

Looks like the DBXTalk project makes good progress - there is Neptuno the database browser and Phoseydon Beta2 allowing you to define entities using a simple DSL.

Pharo Conference in May

Want to visit the Pharo conference in May?

Then check out this page: http://pharoconference.eventbrite.com/

Wednesday, March 21, 2012

Extended File Library for Seaside and Twitter Bootstrap

Subclasses of "WAFileLibrary" allow you to serve static files directly from Seaside without the need for a stand-alone server like Apache.

This is nice - but unfortunately they were all served in the same resource folder/url. If you look at most JavaScript components then often separate folders for CSS or images are used which can be very tricky if you want to wrap them in Seaside.

But there is help: Nick Ager works on an improved WAFileLibrary.

He also used this to wrap the Twitter Bootstrap library, check it out at:

http://twitterbootstrap.seasidehosting.st/

Object profiling

Looks like there is now a new small company founded to help profiling software. They use VisualWorks and Pharo and they use their own MIT licensed "Kai" and "Hapao" projects. I already reported on "Hapao" earlier.

VAST Videos

Nice - a new page for videos from Instantiations about VAST (Visual Age Smalltalk) and Smalltalk in general.

Thursday, March 15, 2012

CSS Frameworks for Seaside

Paul made some code available that should easily allow you
to use some of the new CSS Frameworks within your Seaside
application. Nice!

BioSmalltalk

BioSmalltalk is an open source library for doing bioinformatics with Smalltalk. You can read a little bit about it on the following blog: http://biosmalltalk.blogspot.com/

‎3 Smalltalkers presenting at DYNCON 2012

Gäran Krampe, Jason Ayers and Nicolas Petton - 3 Smalltalkers presenting at the dynamic languages conference.

Wednesday, March 14, 2012

Optimizing Seaside: Cacheable

Sebastian Sastre shares a project usefull for optimizing Seaside apps.
It is called Cacheable.

"Cacheable will make you able to use the same code in the app but making your web applications able to cache resources forever but preserving your ability of updating them whenever you need to."

Spelling Services for Pharo and Squeak

In the past John M. McIntosh created a spellchecker plugin for the
MacVM for Squeak. Now Tim announced that there are also bindings
for Linux and Windows available.

You will find it as "ConfigurationOfSpellingServices" in the MetacelloRepository on
Squeaksource.

The development repo is at the Squeaksource 3 instance at HPI Institute.
Its open for read write - so if you want to contribute...

Smalltalk and CI

Pharo already provides a CI server for daily builds:

http://ci.pharo-project.org

I personally use it to get the latest versions and you should do as
well if you are interested in up to date images.

Now some work is going on in the Squeak community to reuse the build
scripts from Lukas
as well and I think we can soon expect

http://www.squeakci.org

to fill up with Squeak CI built images. Cool and a big thanks to the people providing that!

Tuesday, March 13, 2012

Pharo Smalltalk in use ...

Nice video from Pinesoft. The application is implemented in Pharo Smalltalk.

Wednesday, March 07, 2012

SmallCharts website

Hey, Christian announced that his company website has a new design. The company is offering a tool (built in VW Smalltalk) to easily build financial charts for newspapers. Nice!

Friday, March 02, 2012

S8/U8 Social Smalltalk development

There is a new social platform for Smalltalk development called "U8".

It is based on development with S8 - a Smalltalk running over javascript execution engines on all major browser flavors.

You can find some details here or visit the NYC Smalltalk user group on 6th of March (details on the meeting here).

Wednesday, February 29, 2012

Styling your (VisualWorks) Smalltalk app

There are Smalltalks with native UIs (native widgets painted by the underlying OS) and other Smalltalks who paint the windows and widgets themselves.

With the last ones you can even built an own "Cross-Platform UI Look" like this UI example from a VisualWorks based product from http://www.cognitone.com shows.

Wednesday, February 22, 2012

Play with Arduino and Pharo

In case you want to play with Arduino and Pharo Smalltalk then check out this blog post.

Also note that since the VM packaged with the 1.3 one click image from the pharo-project.org download has a bug when using FFI package you should use the latest Cog VM as it is also described here.

Tuesday, February 07, 2012

FOSDEM Report

There are photos, a short report and a presentation from the FOSDEM Smalltalk meeting available.

Kiwi for Smalltalk

Kiwi is a Behaviour-Driven development tool inspired by Cucumber based on Pharo. Read more.

Monday, January 30, 2012

Smalltalk and Git

Want to use Git versioning system with Smalltalk code? Then read more here.

Friday, January 27, 2012

Pharo sprint in Brussels

There is a Pharo sprint in Brussels on Feb 4th. Read more.

Monday, January 16, 2012

SqueakSource down

SqueakSource is often down, this time due to a network error.
But there is help by using a mirror.

DrGeo running on Pharo running on iPad

And DrGeo is running on Pharo - and Pharo is running on iPad. The result is shown here.

Scratch running on Pharo running on Android

So Scratch is running on Pharo - and Pharo is running on Android. The result is shown here.

Significance of 1.1.1753

When working in IT you often have "magic" numbers or dates. Remember the year 2000 bug (Y2K)?

One interesting date is is 1.1.1753 - which is a limit in SQL-Server. Interesting to know.

Tuesday, January 10, 2012

Smalltalk/X tour

There is now a "Guided tour on Smalltalk/X (Part 2) video available.

Sunday, January 08, 2012

Who needs the JVM - Tomcat on Smalltalk/X

The software engineering group from the czech university in Prague is running Tomcat on Smalltalk/X. So who needs the JVM? ;)

Wednesday, January 04, 2012

Impress.js

Somehow I like small JavaScripts for effects like these. code is here.