Thursday, December 29, 2011
Scripy
Scripy - a way to share Workspace scripts with others right from within you Smalltalk image. Read more at http://www.scripy.org
Tuesday, December 27, 2011
Monday, December 26, 2011
Phoseydon Beta released
Phoseydon - a tool aimed to model and create applications easily in Smalltalk, as Ruby does with Rails or python with Django. You describe a model, and from that model a relational database plus an object model plus an ORM mapping are fed from that model.
Teleplace gone
The company Teleplace is gone, the software (written in Squeak Smalltalk) is still available and continues to live.
Wednesday, December 21, 2011
Renaming Projects: DBXTalk
Looks like it is not good to rename a project while it already got some attention on the web. The former SqueakDBX is now DBXTalk and you should follow this discussion if you are interested.
Monday, December 19, 2011
Sunday, December 11, 2011
Friday, December 09, 2011
Smalltalk Devroom at FOSDEM 2012
Dont know what to do on Sunday, February 5, 2012? You can visit the Smalltalk Devroom at FOSDEM 2012 if you like.
Monday, December 05, 2011
BDD Extensions for Pharo
GUI testing in Pharo made easy - if you are interested then read this and this or checkout the project on Squeaksource. It is an experiment from Sean P. DeNigris for Behavior Driven Development (BDD) in Pharo.
Wednesday, November 30, 2011
An interesting post
Interesting post if you are interested in dynamic languages. Thanks Michael for sharing.
Monday, November 28, 2011
Squeak Smalltalk from the start videos
Lawson English has some videos to share for Squeak beginners.
Fuel also for Squeak
Pier Admin
Nick shares an "Pier-admin" extension - an admin UI extension for the Pier CMS (which is based on Seaside).
Wednesday, November 23, 2011
Thursday, November 17, 2011
Seaside and SqueakSSL on Windows
Want to use Seaside SSL on Windows. Andreas shows you how to do it!
Cool - and thanks a lot (since I was the one asking about the state of this)
Cool - and thanks a lot (since I was the one asking about the state of this)
Tuesday, November 15, 2011
SmalltalkHub demo online
The demo for SmalltalkHub is online now. Take care - it is a preview currently.
Monday, November 14, 2011
RTalk - Smalltalk on the JVM
Found the presentation video from the JVM Language Summit about RTalk to run Smalltalk on the JVM.
Sunday, November 13, 2011
Seaside Form Validation with Mold
There is a nice framework from Ken Treis for form validation in Seaside. The project is called "Mold" and available on Squeaksource and the Cincom Public Repo. Read this blog post with a detailed description.
Wednesday, November 09, 2011
Sunday, November 06, 2011
JQuery Mobile for Seaside video
Interesting video from Nick on how to build an app with Seaside and the jQuery Mobile wrapper.
Friday, November 04, 2011
Thursday, October 27, 2011
IronSmalltalk
Todor Todorov has created a new project called "IronSmalltalk" on CodePlex to be able to run Smalltalk on the DLR (Dynamic Language runtime).
Hat tip to James.
Hat tip to James.
Malleable Tools
Martin Fowler talks about Aarhus 2011 conference and the Moose presentation (which is written in Pharo Smalltalk):
Moose is written in Smalltalk, and that same philosophy came through strongly in Tudor's talk - quickly allowing you to build first class features into the tool by implementing new functions in a matter of minutes.
Such malleable tools haven't caught on that much. They do require an eagerness from the user to learn how to make the tool truly sing, but this effort comes with the reward of a tool that can truly be tailored to an individual's needs.
Tuesday, October 25, 2011
Dart to JavaScript compiler
There is a new (experimental) self-hosting Dart to JavaScript compiler available.
Monday, October 24, 2011
Tools like Wireshark
I like tools - especially usefull ones like Wireshark.
Once Philippe recommended it on the seaside list:
"Use wireshark to inspect at what actually went over the wire"
and yes - it already helped me keep the control!
Once Philippe recommended it on the seaside list:
"Use wireshark to inspect at what actually went over the wire"
and yes - it already helped me keep the control!
Browser Building
There is a new video available showing you how easily you can build new browsers using Glamour.
Thursday, October 20, 2011
Wednesday, October 19, 2011
JDart - Dart on the JVM
Would you like to run the new Dart language on the JVM - then look at JDart.
Tuesday, October 18, 2011
Parallel Computing with Smalltalk
David Ungar gives a talk on Parallel Computing. He is doing research with
Smalltalk within the Renaissance project at IBM. They use a modified
Squeak Smalltalk system that runs on the 64-core Tilera chip.
Smalltalk within the Renaissance project at IBM. They use a modified
Squeak Smalltalk system that runs on the 64-core Tilera chip.
CogDroid Updates
Dimitry has some more infos on CogDroid - beside the ARM devices there is now also Android-x86 support available.
Language of Languages
Jamie Douglass, Ralph Johnson and Nick Chen work on an experimental language workbench called Language of Languages (LoLs) that focuses on unifying concepts (meta-models) across different notations.
Read the announcement here or visit the new website http://www.languageoflanguages.org.
Read the announcement here or visit the new website http://www.languageoflanguages.org.
Monday, October 17, 2011
Hydrodynamics Simulation Environment in Smalltalk
Smalltalk is a nice environment for creating simulations - especially since the results can interactively explored. There is a new project on Squeaksource implementing an Hydrodynamics Simulation Environment. Check out the class side of class HGSimulator for a few examples.
Friday, October 14, 2011
JQuery Mobile for Seaside
Nick provides a new framework for Seaside and JQueryMobile integration.
You can read more here and try it here.
You can read more here and try it here.
Tuesday, October 11, 2011
Kaliningrad: Developing with Amber, Seaside and Monticello
If you want to combine the client side Amber with the server side Seaside framework and Monticello then look at the new Kaliningrad project.
Monday, October 10, 2011
Dart Language
First infos on Dart appear on the radar: http://www.dartlang.org
You can also try it right in your browser: http://try-dart-lang.appspot.com
Also the language spec.
You can also try it right in your browser: http://try-dart-lang.appspot.com
Also the language spec.
Thursday, October 06, 2011
S8 - Smalltalk on Googles V8 JavaScript engine
Looks like Alejandro F. Reimondo implemented S8 - a Smalltalk platform written on top of Googles V8 JavaScript engine (which is written in C++).
Smalltalk Stammtisch Zürich
There is another Smalltalk Stammtisch Zürich on Tuesday, September 27, 2011. Read more.
Dart/Smalltalk and dynamic object environments
I'm very interested what Dart (the new Google programming language) is all about. Why? Let me explain:
We have seen many new languages in the last few years (from Java, C#, Ruby, Scala, Clojure, Go, ...) - most of them with old and known concepts mixed with different syntax. But nothing really new. I tried nearly all of them but nothing hit me like Smalltalk did back when I understood all of its concepts.
To me Smalltalk is still outstanding since it is not only a language - it's language is only mapped to "the dynamic object system" underneath that the Smalltalk runtime provides. And having such a dynamic object system is the key factor in programming.
Many people are "blind" and dont see this since they compare languages by syntax or features or check if a language is highly ranked in silly comparisions like the TIOBE index. IMHO one of the reasons why Smalltalk is so poorly ranked is that Smalltalk (if seen as a programming language) maps to objects and messages - thats not what people know from other languages and if they look at Smalltalk code this is not what the usual programmer would expect regarding syntax.
Smalltalk is too different here. In a "3 + 4" expression the plus is not an operator - its a message. 3 and 4 are not treated equally - 3 is the receiver and 4 is the argument. Its also different regarding control structures. You dont need a keyword for a "while" loop in Smalltalk - you just need a message. If you dont have a "repeat until" construct you can easily implement it just by adding a message #repeatUntil: to BlockClosure taking a block as argument, ...
But there is this expectation among programmers to learn new keywords and syntax rules with any new programming language. This is how most books teaching programming languages start: learn the keywords, then language control structures and then start coding.
There is also this expectation to use nice wizards to create new classes or writing source code in text files followed by a compiler step.
Smalltalk is different: here you only need six keywords or just send a message to a class to tell the system that you want to create a new subclass of it. So anything is an object and understands messages - even classes and block/closures. Anything is changeable, anytime - even at runtime.
So Smalltalk as "a dynamic object system" is superior - and will continue to be so - since a dynamic environment is easy to change (even the language built on top). If you want you can even cleanly blend in different other more mainstream languages into this dynamic system. You can even make a snapshot of this virtual object system (an image file) and continue with your program or debugging session the next day.
Our world is a dynamic system too - full of objects. Thats why Smalltalk is very close in bringing real world concepts to machines and computing.
But even Smalltalk systems have to be enhanced - there is so much power in the meta facilities of these dynamic environments and Smalltalk still doesn use all of its power here. Meta informations usually are used for IDE tools - but if extended they can allow you to build applications nearly automatically (maybe more on this in another post). This is the field where Smalltalkers have to learn and catch up.
And what about Dart? The people behind Dart know that Smalltalk is not only a language, they worked with the underlying dynamic object system and understand it down to the bare metal. If they have reused and transfer this know how and knowledge correctly into the design of Dart then this new programming language is a chance to again bring dynamic object systems into the focus and raise programmers attention.
So will Dart just be "yet another language" with new books teaching you yet another new syntax or will it be a real step towards more dynamic adoptable and flexible runtime systems?
We will see next week...
We have seen many new languages in the last few years (from Java, C#, Ruby, Scala, Clojure, Go, ...) - most of them with old and known concepts mixed with different syntax. But nothing really new. I tried nearly all of them but nothing hit me like Smalltalk did back when I understood all of its concepts.
To me Smalltalk is still outstanding since it is not only a language - it's language is only mapped to "the dynamic object system" underneath that the Smalltalk runtime provides. And having such a dynamic object system is the key factor in programming.
Many people are "blind" and dont see this since they compare languages by syntax or features or check if a language is highly ranked in silly comparisions like the TIOBE index. IMHO one of the reasons why Smalltalk is so poorly ranked is that Smalltalk (if seen as a programming language) maps to objects and messages - thats not what people know from other languages and if they look at Smalltalk code this is not what the usual programmer would expect regarding syntax.
Smalltalk is too different here. In a "3 + 4" expression the plus is not an operator - its a message. 3 and 4 are not treated equally - 3 is the receiver and 4 is the argument. Its also different regarding control structures. You dont need a keyword for a "while" loop in Smalltalk - you just need a message. If you dont have a "repeat until" construct you can easily implement it just by adding a message #repeatUntil: to BlockClosure taking a block as argument, ...
But there is this expectation among programmers to learn new keywords and syntax rules with any new programming language. This is how most books teaching programming languages start: learn the keywords, then language control structures and then start coding.
There is also this expectation to use nice wizards to create new classes or writing source code in text files followed by a compiler step.
Smalltalk is different: here you only need six keywords or just send a message to a class to tell the system that you want to create a new subclass of it. So anything is an object and understands messages - even classes and block/closures. Anything is changeable, anytime - even at runtime.
So Smalltalk as "a dynamic object system" is superior - and will continue to be so - since a dynamic environment is easy to change (even the language built on top). If you want you can even cleanly blend in different other more mainstream languages into this dynamic system. You can even make a snapshot of this virtual object system (an image file) and continue with your program or debugging session the next day.
Our world is a dynamic system too - full of objects. Thats why Smalltalk is very close in bringing real world concepts to machines and computing.
But even Smalltalk systems have to be enhanced - there is so much power in the meta facilities of these dynamic environments and Smalltalk still doesn use all of its power here. Meta informations usually are used for IDE tools - but if extended they can allow you to build applications nearly automatically (maybe more on this in another post). This is the field where Smalltalkers have to learn and catch up.
And what about Dart? The people behind Dart know that Smalltalk is not only a language, they worked with the underlying dynamic object system and understand it down to the bare metal. If they have reused and transfer this know how and knowledge correctly into the design of Dart then this new programming language is a chance to again bring dynamic object systems into the focus and raise programmers attention.
So will Dart just be "yet another language" with new books teaching you yet another new syntax or will it be a real step towards more dynamic adoptable and flexible runtime systems?
We will see next week...
Tuesday, October 04, 2011
Running Dolphin app on Mac
As I reported earlier there is some help if you want to run your windows application written in Dolphin Smalltalk also on Mac.
Now there is a new blog post that explains all this in detail.
Now there is a new blog post that explains all this in detail.
Friday, September 30, 2011
Thursday, September 29, 2011
Database conectivity API for Squeak and Pharo
A new database conectivity API and its MySQL implementation was announced by Anindya Haldar for Squeak and Pharo.
Monday, September 26, 2011
Friday, September 23, 2011
Fast package loading
Thursday, September 22, 2011
More Amber news
Amber already connects with Morphic.js written in JavaScript. See this picture and read more here.
There is also a Twitterwall implemented in Amber.
Really interesting!
There is also a Twitterwall implemented in Amber.
Really interesting!
Coolacious
Coolacious = Cool + Delicious
With this new screencast released one can get the impression that Andy from ObjectArts released a Mac OSX port of Dolphin Smalltalk into the wild. For those who dont know Dolphin - it is a very nice Smalltalk system - but with history and focus on Win32 platforms. Now natively ported to MaxOSX? Really?
The end of a second screencast here showed that its not a real native port - he uses Wineskin, a tool used to make ports of Windows software to Mac OS X. Wineskin is based on Wine.
Read more here.
I like all these virtual boxes, emulators and stuff. The platform question is nothing one really has to discuss first (in most cases). I can even run my old C64 stuff if I like.
With this new screencast released one can get the impression that Andy from ObjectArts released a Mac OSX port of Dolphin Smalltalk into the wild. For those who dont know Dolphin - it is a very nice Smalltalk system - but with history and focus on Win32 platforms. Now natively ported to MaxOSX? Really?
The end of a second screencast here showed that its not a real native port - he uses Wineskin, a tool used to make ports of Windows software to Mac OS X. Wineskin is based on Wine.
Read more here.
I like all these virtual boxes, emulators and stuff. The platform question is nothing one really has to discuss first (in most cases). I can even run my old C64 stuff if I like.
Wednesday, September 21, 2011
Seafox for Seaside update with canvas translater
There is an updated version of Seafox for Seaside, now with an HTML to canvas translator. It's helps you building real Seaside apps from existing HTML templates.
You can read more about it here or try it out here:
http://seafox.seasidehosting.st
You can read more about it here or try it out here:
http://seafox.seasidehosting.st
MethodWrappers ported to Squeak 4.2
Eliot ported Method wrappers to Squeak 4.2. If you know VisualWorks you may already know that Method Wrappers can add hidden behavior to a method without recompiling it. It is a very useful package for implementing coverage and tracing tools.
You can read more about them here.
You can read more about them here.
Klotz
The Klotz project implements an Agile 3D Visualization Engine. It is written in Pharo Smalltalk and is freely available on Squeaksource. There is also a paper for a short introduction.
Ludus - Game framework on top of Smalltalk on top of JavaScript
Ludus is a new html5 game framework on top of amber:
http://asmalltalkbytheseaside.com
http://asmalltalkbytheseaside.com
Monday, September 19, 2011
Sunday, September 18, 2011
MorphIDE for Amber
When you play with Amber (the Smalltalk on top of JavaScript) you typically need to set up a webdav with Apache. Wouldnt it be better to directly connect this with a server Smalltalk serving the files?
Now there is a new project on Squeaksource3 available that provides a static file HTTP server. It serves the Javascript files that make up the Amber IDE. MorphIDE accepts HTTP PUTs from the Amber IDE, whereupon it will (over)write the .js and .st files being PUT to filesystem. It will also regenerate the MorphIDE HTML file to load the new code that you've written in Amber.
Now there is a new project on Squeaksource3 available that provides a static file HTTP server. It serves the Javascript files that make up the Amber IDE. MorphIDE accepts HTTP PUTs from the Amber IDE, whereupon it will (over)write the .js and .st files being PUT to filesystem. It will also regenerate the MorphIDE HTML file to load the new code that you've written in Amber.
Friday, September 16, 2011
Thursday, September 15, 2011
5th Argentine Smalltalk Conference
You are invited to the 5th Argentine Smalltalk Conference - read more here.
Wednesday, September 14, 2011
Yesplan video
There is now a video online from Yesplan - a software written in Smalltalk using the Seaside webframework. It runs on Pharo with GLASS for persistence.
More rumors on Dart and Smalltalk
Here are some more rumors on a possible relationship between the new Dart programming language from Google and Smalltalk.
Mhhh ... and we also know that Eric Clayberg is now also working for Google. Is it possible that Dart is the next fast and modular Smalltalk implementation that is deployed via Web browsers like Chrome?
There are also some infos from back in 2010 available on the net.
Let's see what the keynote will reveal and if Google is able to suprise me here.
Mhhh ... and we also know that Eric Clayberg is now also working for Google. Is it possible that Dart is the next fast and modular Smalltalk implementation that is deployed via Web browsers like Chrome?
There are also some infos from back in 2010 available on the net.
Let's see what the keynote will reveal and if Google is able to suprise me here.
One month until Dart is released
AFAIK Google will publish more infos on it's new programming language called "Dart" on GOTO conference in Aarhus in October. Dart is according to various sources a new structured programming language designed for the web.
Why is that interesting to Smalltalkers? Since it is created by Lars Bak (known from V8 JavaScript Engine and Strongtalk/Animorphic) and Gilad Bracha (known from Newspeak).
Can we therefore expect it to be more Smalltalk like? Dont know ... but in a month we will see.
Why is that interesting to Smalltalkers? Since it is created by Lars Bak (known from V8 JavaScript Engine and Strongtalk/Animorphic) and Gilad Bracha (known from Newspeak).
Can we therefore expect it to be more Smalltalk like? Dont know ... but in a month we will see.
Windows developer preview
Want to get a free developer preview on the new windows. Then look at MSDN for the ISO files.
Tuesday, September 13, 2011
Monday, September 12, 2011
Tuesday, September 06, 2011
Online ProfStef on JTalk
ProfStef is a nice app to teach you Smalltalk. It is now ported from Pharo to JTalk (a Smalltalk running on JavaScript) too so it is available online now.
TextLint integration
TextLint is a tool to check scientific writing for common style errors written in Pharo Smalltalk. There is now an integration into Emacs and TextMate. There is also a web version available online.
Monday, September 05, 2011
VMMaker repo moved
Since squeaksource.com had several outages in the past the VMMaker package (the one you require to build the Squeak and Pharo virtual machine) has now moved to another squeaksource instance: http://source.squeak.org.
Read more.
Read more.
CogDroid
You want to Test Cog virtual machine to run Pharo on Android devices. Try with the initial relase of CogDroid.
Wednesday, August 31, 2011
Heretic Smalltalk selectors
Smalltalk is different - and even after years I get rembered by discusssions from time to time how different it really is!
Smalltalk is a real dynamic object system (with the language just built in) and unique in the world of computing.
While a function/method name in a class has to be unique so it could be called - it usually is a Symbol. You know all these #foo, #bar, #negated, ...
Smalltalk is a real dynamic object system (with the language just built in) and unique in the world of computing.
While a function/method name in a class has to be unique so it could be called - it usually is a Symbol. You know all these #foo, #bar, #negated, ...
In Java you may call it foo() or bar() or negated().
But in Smalltalk this selector could be ANY object. Yes, yes - this is not a typo.
It could be any object, just try it. For instance with the integer 1:
It could be any object, just try it. For instance with the integer 1:
|selectorThatCouldBeAnObject existingMethod|
selectorThatCouldBeAnObject := 1.
existingMethod := EllipseMorph methodDict at: #heading.
EllipseMorph methodDict at: selectorThatCouldBeAnObject put: existingMethod.
EllipseMorph new perform: selectorThatCouldBeAnObject
So the message could even be the object that is receiving the message/itself as message:
| existingMethod receiver|
existingMethod := EllipseMorph methodDict at: #heading.
receiver := EllipseMorph new.
EllipseMorph methodDict at: receiver put: existingMethod.
receiver perform: receiver
Cool !!!
Alan Kay once said that "Smalltalk is object-oriented, but it should have been message oriented."
And as we now know a message is an object and an object could be a message. Mhhh - have to think more on this...
Tuesday, August 30, 2011
Tuesday, August 16, 2011
Dynatree for Seaside
I've wrapped the MIT licensed dynatree widget as part of the JQueryWidgetBox project. So if you need a tree in your web app just try it.
TSUG meeting
If you want to know more why Bombardier is using Pharo and Seaside then visit the next TSUG meeting in Toronto on Sep. 12th.
Friday, August 12, 2011
Pharo/Seaside experience
Francois Stephany reports on his experience with using Pharo and Seaside to develop a web application.
Tuesday, August 09, 2011
Small seaside image
Pavel created a small seaside image based on the small Pharo kernel image. So you could have a running seaside app in 4.3MB.
Java and late file dialog instantiation
Interesting: Java provides a JFileChooser to provide a file dialog for the
Swing UI framework. Typically I create objects when I need them - so
it was clear to me that I instantiate the class in this example only when
a button is clicked (most other examples on the web instantiate the dialog with the main window):
When you run this simple application within Eclipse, click the "Open" button and
close the file dialog via "Cancel" you will notice that an
exception will appear on stdout as soon as you close the main window:
So the app is not closed correctly and error free.
And I found a workaround, the exception will not appear if you
create an instance of JFileDialog as early as possible in your app:
Since it is not referenced this instance becomes directly a victim of
the next GC - but anyway creating an instance of JFileChooser right at the beginning seem
to trigger an initialization that is required to prevent the above problem.
Thought I would share this if others run into the same problem. Another possibility is to use a better system.
Swing UI framework. Typically I create objects when I need them - so
it was clear to me that I instantiate the class in this example only when
a button is clicked (most other examples on the web instantiate the dialog with the main window):
package foo;
import java.awt.BorderLayout;
public class TestWindow extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TestWindow frame = new TestWindow();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TestWindow() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JButton btnOpenFileDialog = new JButton("Open file dialog");
btnOpenFileDialog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
onClickedButton();
}
});
contentPane.add(btnOpenFileDialog, BorderLayout.CENTER);
}
protected void onClickedButton() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.showOpenDialog(this); // open modal on main window
}
}
When you run this simple application within Eclipse, click the "Open" button and
close the file dialog via "Cancel" you will notice that an
exception will appear on stdout as soon as you close the main window:
Exception while removing reference: java.lang.InterruptedExceptionjava.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
So the app is not closed correctly and error free.
And I found a workaround, the exception will not appear if you
create an instance of JFileDialog as early as possible in your app:
public static void main(String[] args) {
new JFileChooser();
...
Since it is not referenced this instance becomes directly a victim of
the next GC - but anyway creating an instance of JFileChooser right at the beginning seem
to trigger an initialization that is required to prevent the above problem.
Thought I would share this if others run into the same problem. Another possibility is to use a better system.
Airflowing goes live
Airflowing, a new seaside application isn’t invite-only anymore - so anyone is able to use their commercial service. Read more or try it out.
Monday, August 08, 2011
Squeak in Jail
If you want to limit your seaside app (chrooted seaside instance) for security reason this may be
an old but interesting blog post to read.
Thursday, August 04, 2011
Smalltalk on JVM 2
An update: watch the video called "A Renaissance VM: One Platform, Many Languages" on this site from Oracle. Highly recommended if you are interested on Smalltalk and (J)VM's.
Smalltalk on JVM
Found Smalltalk mentioned in a Java 7 presentation from Oracle citing Mark Roos from Roos Instruments, Inc:
"“We were able to implement all of the Smalltalk constructs... using invokedynamic to execute Smalltalk code on the JVM. ...The ease of putting a true dynamic language on the JVM was a wonder in itself.”
Note that with JSR292 there is more support for dynamic languages on JVM.
Found a presentation about the "RTalk" project to run Smalltalk on JVM and there is work going on as this message from the open jdk mailinglist proves.
Even when it runs on JVM - I still expect it to be limited compared to a Smalltalk running on a Smalltalk VM. The future will show if I'm right.
Wednesday, August 03, 2011
OCR and Pharo
Gary Chambers (creator of the Polymorph UI framework for Pharo) is currently building an image capture, OCR and data processing system using Smalltalk and he provides a first screenshot.
His company Pinesoft is using Smalltalk a lot as you can read here. Nice!
Monday, August 01, 2011
Two new chapters for Pharo book
Stef shares two new chapters for the Pharo book. You can also find them here.
This time on floats and little numbers. Feel free to review and send comments to him.
Tuesday, July 19, 2011
PetitParser Tutorial
Tudor Girba published a tutorial on how to use the PetitParser as part of the moose book.
One ring to rule them all
Refactoring Browser, Packaging Software like Monticello and other Smalltalk tools mostly work on their own code/meta model. What about a unified model?
Veronica Uquillas is currently working on Ring - a unifying and foundational model
infrastructure for Pharo. The goals of the project are:
- Provide a common API at structural and runtime level
- Allow tools to interact and integrate directly with the host environment (Pharo)
- Support history analysis
You can find the code at squeaksource, there is also a continuos integration job
and the latest updates now try to integrate Ring. There is also a presentation available.
Monday, July 18, 2011
Binary Literals
Binary Literals - a new feature of Java 7.
So beside 0x... notation for hexadecimal you can now write 0b... for binary. What a step forward (for the Java community).
I still like Smalltalks base/radix notation since I can freely choose the base (binary, octal, decimal, ...)
2r10010010
16rA000
...
Tuesday, July 05, 2011
LDAP and Seaside
If you want to integrate LDAP authentication into your seaside app then read charlies blog entry.
Wednesday, June 29, 2011
Pharo Kernel reloaded
As you may know Pavel is working on Pharo Kernel - a small Smalltalk kernel that is stripped down from Pharo Core image. Meanwhile there is also a 3MB Pharo-Kernel-Gofer image available that has networking support and Gofer (a pharo installer to load packages) installed.
With this it is possible to reload back the various packages from Core image on top of the kernel image. By running the tests afterwards it is possible to check if anything is OK. So far the result is very promising and since all of this is automatically built using the continuous integration server it is possible to control changes and watch progress.
Really a great step in the modularization of Pharo Smalltalk images!
Monday, June 20, 2011
Humane assessment
Tudor has a new home for success stories of his humane assessment method based on Moose (which is based on Pharo). Read his announcement or visit the new page.
Sunday, June 19, 2011
Friday, June 17, 2011
Google vs. Oracle
Read about Oracle vs. Google. Maybe Google should have used Smalltalk instead of Java for Android. They were so close but blind.
Thursday, June 16, 2011
PDF Viewer in JavaScript
Interesting project to implement a PDF viewer in pure JavaScript and HTML. Cool!
Squeak Meeting in Germany
There is a meeting of Squeakers in germany in Potsdam on 23.07.2011. Two days before there is a presentation
from Alan Kay. Read more (in german)
Wednesday, June 08, 2011
Spoon mapped to WebDAV
In his Spoon project Craig maps Smalltalk to WebDAV, so he can use his favorite text editor to edit.
Google Analytics Tracker
If you build a seaside application like Nick did with getitmade.com then it may be usefull to get a quick overview of your page visits.
A small tool announced by Esteban can help you here. Just load it in a seaside image using the ConfigurationOfGoogleAnalyticsTracker.
Tuesday, June 07, 2011
TWM and multiple worlds
The tiling windows manager for Pharo (a usefull tool to control the many windows on your desk) now also supports multiple worlds. It's not the same as in Squeak where "World" means a separate storable/loadable project with own changesets - more in the sense of multiple desktops as you may know from usual operating systems.
There is a screenscast available to demo all the new features.
Monday, June 06, 2011
Glorp for Pharo
Guillermo Polito announced a new Glorp port for Pharo integrated with DBXTalk (the former SqueakDBX). So if you want to map you classes to a RDBMS schema and store your objects into database tables you should take a look. Note that Glorp is still LGPL but currently in the process to be MIT licensed.
Friday, June 03, 2011
More REST server
Need only a simple REST server on top of Pharo? Guillermo shows you an example with only KomHttpServer loaded and a custom service. No need for frameworks like Seaside.
However - as I noted back in march it is very easy to build a REST service if you use Seaside. So you can choose depending on your requirements...
ACM Student Research Competition and Smalltalk
Vanessa, a student at the University of Chile presented Hapao, a Pharo application at the ACM Student Research Competition (sponsored by Microsoft Research). Details here.
She arrived 2nd in the category undergraduate student. Congratulations!
Wednesday, June 01, 2011
Scratch port for Pharo
Looks like Scratch gets ported to Pharo: at least there is a project on Squeaksource. After loading and running "ScratchFrameMorph open" you get the basic UI of scratch. Nice.
Tuesday, May 31, 2011
SqueakSource3 Alpha Site online
Dale announced a new SqueakSource3 site. Note that this is for testing only and be aware that the repository will be refreshed at the end of the Alpha period.
Fuel in SandstoneDB
Ramon now included Fuel into SandstoneDB. Here is the comment from "SandstoneDb-RamonLeon.141.mcz":
Introduced a dependency on the Fuel serializer. You can load it first with...
Gofer new
squeaksource: 'Fuel';
package: 'ConfigurationOfFuel';
load.
((Smalltalk at: #ConfigurationOfFuel) project latestVersion) load: #(Core Tests Benchmarks).
It's smoking fast compared to SmartRefStreams. A 200 object commit with SmartRefStream on test machine takes around 2.2 seconds, .41 seconds with Fuel.
Passes all tests. SmartRefStream is still the default for now so loading this won't change anything or corrupt existing databases. To set fuel as the default serializer evaluate...
SDFileStore serializer: SDFuelSerializer new.
This will of course invalidate any existing db based on SmartRefStreams. To migrate, simply resave all of your objects. This would require grabbing all objects first into some temp arrays, changing the serializer, then calling save on all objects.
Gofer new
squeaksource: 'Fuel';
package: 'ConfigurationOfFuel';
load.
((Smalltalk at: #ConfigurationOfFuel) project latestVersion) load: #(Core Tests Benchmarks).
It's smoking fast compared to SmartRefStreams. A 200 object commit with SmartRefStream on test machine takes around 2.2 seconds, .41 seconds with Fuel.
Passes all tests. SmartRefStream is still the default for now so loading this won't change anything or corrupt existing databases. To set fuel as the default serializer evaluate...
SDFileStore serializer: SDFuelSerializer new.
This will of course invalidate any existing db based on SmartRefStreams. To migrate, simply resave all of your objects. This would require grabbing all objects first into some temp arrays, changing the serializer, then calling save on all objects.
So startup Pharo and try it out.
Modern UIs
Just read an article about the Language Workbench Competition 2011. There the MetaEdit+ tool was demonstrated and highly praised. According to this article by Cincom the tool is implemented using Cincom Smalltalk. Looks like the tool really rocks:
But yet again someone complained about the old-style UI:
So the next version will have a Windows7 UI. CST catches up with current trends - good.
But the question to me still is what is next step in UI development? Is it really worth to following UI design of the native platform.
Or should we focus on the nice things that can be done in browsers and other rich clients today? Or should we focus on 3D Smalltalk?
If I look at all these new devices and apps then I think an application that looks "modern" should at least support graphics and animation. Mhhh ... time to look at morphic again?
What is the (Smalltalk) application with the most "fashionable" UI?
Steven Kelly demonstrated the MetaEdit+ implementation of the assignment. In fact, he implemented most of the assignment from scratch during his demonstration! Very impressive and the only one who did it this way. For me, this shows the productivity and ease of use of MetaEdit+.
But yet again someone complained about the old-style UI:
The main comment on twitter about MetaEdit+ was that its UI looks a bit old-fashioned. That's of course a matter of taste, but their next version (5.0 - to be released soon) will have a new, Windows 7 looking UI.
So the next version will have a Windows7 UI. CST catches up with current trends - good.
But the question to me still is what is next step in UI development? Is it really worth to following UI design of the native platform.
Or should we focus on the nice things that can be done in browsers and other rich clients today? Or should we focus on 3D Smalltalk?
If I look at all these new devices and apps then I think an application that looks "modern" should at least support graphics and animation. Mhhh ... time to look at morphic again?
What is the (Smalltalk) application with the most "fashionable" UI?
Friday, May 27, 2011
More notes on JavaFX2.0
Oracle did a really good job on JavaFX 2.0 - there is now a webbrowser component included (based on WebKit). This is very usefull since you can implement a part of your application in HTML/JavaScript. This brings RichClient apps and WebApps closer together.
Think of a rich client app where you want to display a google map or use a jquery library to display charts, integrate sites like facebook, google, ...
You can decide if you implement/reuse a widget/webapp in HTML or implement it in Java(FX).
It is even possible to call JavaScript embedded in the displayed website or handle events from the website (get a callback from JavaScript). Note that WebKit already supports HTML5.
I remember an example in Smalltalk/MT where it was possible to get a callback into Smalltalk on events generated from the scripting engine in Internet Explorer. So a Smalltalk window was able to display a webpage by embedding IE and when you clicked in the webpage you could handle this in your Smalltalk app.
But it was only possible with deep knowledge of IE and its COM interfaces.
JavaFX also provides Swing Interoperability - so you can use existing Swing widgets or integrate a JavaFX stage/scene into your Swing app. You can also style your app using CSS similar to a webpage. You can run a JavaFX app easily as applet, webstart or local application. It is very deployment friendly and you can even develop apps that run on a TV. Let's see if it will also have a future on mobile devices/platforms. Yes - JavaFX is really nice and opens new opportunities.
But still ... with Java you have the compile-run-check cycle and you waste a lot of your development time compared to more productive languages like Smalltalk where you dynamically interact with objects and code. Maybe all these nice UI features like CSS skinning, embedded web browser, animation framework, visual effects ... should be added to platforms like Squeak or Pharo too ;)
Think of a rich client app where you want to display a google map or use a jquery library to display charts, integrate sites like facebook, google, ...
You can decide if you implement/reuse a widget/webapp in HTML or implement it in Java(FX).
It is even possible to call JavaScript embedded in the displayed website or handle events from the website (get a callback from JavaScript). Note that WebKit already supports HTML5.
I remember an example in Smalltalk/MT where it was possible to get a callback into Smalltalk on events generated from the scripting engine in Internet Explorer. So a Smalltalk window was able to display a webpage by embedding IE and when you clicked in the webpage you could handle this in your Smalltalk app.
But it was only possible with deep knowledge of IE and its COM interfaces.
JavaFX also provides Swing Interoperability - so you can use existing Swing widgets or integrate a JavaFX stage/scene into your Swing app. You can also style your app using CSS similar to a webpage. You can run a JavaFX app easily as applet, webstart or local application. It is very deployment friendly and you can even develop apps that run on a TV. Let's see if it will also have a future on mobile devices/platforms. Yes - JavaFX is really nice and opens new opportunities.
But still ... with Java you have the compile-run-check cycle and you waste a lot of your development time compared to more productive languages like Smalltalk where you dynamically interact with objects and code. Maybe all these nice UI features like CSS skinning, embedded web browser, animation framework, visual effects ... should be added to platforms like Squeak or Pharo too ;)
Thursday, May 26, 2011
JavaFX Beta
Tried the new JavaFX beta 2.0 ... looks good so far. Some small graphic errors on my machine ... but could be nice to build visually attractive rich client apps.
Lets see how easy it will be to use Java now instead of the former JavaFX scripting language...
Lets see how easy it will be to use Java now instead of the former JavaFX scripting language...
Learning EToys
Want to learn about the eToys system in Squeak. There are nice screencasts available on the Waveplace website.
Wednesday, May 25, 2011
On top of ...
As I said in my post on JTalk it is very easy to run the Rhino JavaScript Engine from Java and therefore should be easy to load JTalk to run this Smalltalk implementation on the JVM.
Stefan picked up the idea and tried it with the following snippet:
He did more experiments to make sure calling Java-Classes from JTalk-Smalltalk is possible too.
Today Stefan left a comment on my blog post on "JTalk and JSTalk". He announced that the execution of smalltalk-code on the server-side via Rhino is possible. Details on the remote runner and how you can save your Smalltalk Code to a DB can be found on his blog.
So given enough time (and money) it should be possible to build a Smalltalk IDE using Javas Swing UI library or a Seaside server running on top of Glassfish/JBoss/WebSphere/Weblogic/Geronimo/... app servers, ...
I still doubt that performance would be good. It would make more sense to run it on Googles new Native client.
However - JTalk on Rhino is a nice way to experiment with Smalltalk on top of JavaScript on top of JVM on top of...
Stefan picked up the idea and tried it with the following snippet:
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval("var CanvasRenderingContext2D = false;");
engine.eval(new java.io.FileReader("jtalk.js"));
engine.eval(new java.io.FileReader("init.js"));
engine.eval("println(smalltalk.Date._today())");
He did more experiments to make sure calling Java-Classes from JTalk-Smalltalk is possible too.
Today Stefan left a comment on my blog post on "JTalk and JSTalk". He announced that the execution of smalltalk-code on the server-side via Rhino is possible. Details on the remote runner and how you can save your Smalltalk Code to a DB can be found on his blog.
So given enough time (and money) it should be possible to build a Smalltalk IDE using Javas Swing UI library or a Seaside server running on top of Glassfish/JBoss/WebSphere/Weblogic/Geronimo/... app servers, ...
I still doubt that performance would be good. It would make more sense to run it on Googles new Native client.
However - JTalk on Rhino is a nice way to experiment with Smalltalk on top of JavaScript on top of JVM on top of...
Background Changer
Daniel Galdames G. created a background changer for Pharo. Just evaluate
World menu->System->Change Background
Now select a directory with images. Nice.
Gofer new
url: 'http://lemuus.homelinux.org/lemuus/BackgroundChanger';
package: 'BackgroundChanger';
load.
World menu->System->Change Background
Now select a directory with images. Nice.
Need Fuel
Fuel - a new project to implement binary object serialization for Pharo is part of the ESUG SummerTalk. It's work in progress but already usable, there is a ConfigurationOfFuel metacello config to easily load it.
Read about the details here or on the project website. The Source code can be found on squeaksource.com, there is also an issue tracker. According to the benchmarks its faster than SmartRefStream.
It is very easy to serialize and materialize (deserialize) an object, you can store blocks (that get evaluated when loaded again) and Fuel takes care to keep global instances like Transcript.
Read about the details here or on the project website. The Source code can be found on squeaksource.com, there is also an issue tracker. According to the benchmarks its faster than SmartRefStream.
It is very easy to serialize and materialize (deserialize) an object, you can store blocks (that get evaluated when loaded again) and Fuel takes care to keep global instances like Transcript.
| sourceArray loadedArray |
sourceArray := Array
with: 'HelloWorld'
with: Transcript
with: [ Transcript show: 'a string' ].
"Store to the file"
FLSerializer serialize: sourceArray toFileNamed: 'example.fl'.
"Load from the file"
loadedArray := FLMaterializer materializeFromFileNamed: 'example.fl'.
Monday, May 23, 2011
Bytecodes explained
You want to know more about how the virtual machine of Pharo works? Then go to Marianos blog - this time he gives an introduction on Smalltalk bytecodes.
Ephemerons for Cog
Igor implemented Ephemerons for Cog and Eliot explains why they are usefull. You can also read a paper on this topic.
Sunday, May 22, 2011
Friday, May 20, 2011
EyeSee
Need some easy visualizations in your application written in Pharo?
Then check out EyeSee:
It is easy to create diagrams with it. Check out the examples in class "ESExamples".
I tried it in Pharo 1.2 - some examples were broken since the class Circle was removed. This is currently discussed on pharo-list. However - it's easy to fix.
Next time I need some visualizations I use Pharo instead of Excel ;)
Then check out EyeSee:
Gofer it
squeaksource: 'EyeSee';
package: 'ConfigurationOfEyeSee';
load.
(Smalltalk at: #ConfigurationOfEyeSee) loadDefault
It is easy to create diagrams with it. Check out the examples in class "ESExamples".
I tried it in Pharo 1.2 - some examples were broken since the class Circle was removed. This is currently discussed on pharo-list. However - it's easy to fix.
Next time I need some visualizations I use Pharo instead of Excel ;)
News on JRockit
JRockit (a fast JavaVM similar to Hotspot) is now free and available on Oracles Tech net. Nice!
Thursday, May 19, 2011
Wednesday, May 18, 2011
Learn Smalltalk with ProfStef
Thanks to James Pharocasts now includes a screencast on using ProfStef to learn Smalltalk.
BSUG Meeting
The Belgian Smalltalk User Group (BSUG) is organising its next meeting on Tuesday May 31. Read more.
Tuesday, May 17, 2011
SmallHarbour project
With the support of ESUG there is a new ESUG SummerTalk 2011 project called SmallHarbour. It wants to provide a simple platform to host smalltalk web applications (similar to seasidehosting.st but also for commercial projects.
Read the announcement here and follow progress at www.smallharbour.org.
Read the announcement here and follow progress at www.smallharbour.org.
Tuesday, May 10, 2011
25 $ Computer
Remember the 100$ Laptop. Now there is a cheaper alternative: 25$/£15/17,5€ for a Computer.
Monday, May 09, 2011
Nautilus Preview
Nautilus is a new implementation of a Smalltalk browser for Pharo with support for groups, packages (using the new RPackage stuff from Pharo task force), declarative menus, ...
You try it in the latest update of Pharo core 1.3 image. Read here.
You try it in the latest update of Pharo core 1.3 image. Read here.
JQueryWidgetBox ported to VA
Looks like Sebastian Heidbrink ported the JQueryWidgetBox project for Seaside to VA Smalltalk and uploaded it to VASTGoodies.com.
I started the JQueryWidgetBox project in November 2009 and meanwhile various people contributed wrappers for seaside widgets to it.
Code is MIT, initially I thought about a different license model: everytime one uses the project in a production environment a new widget has to be contributed back to the project. ;)
There are so many good jquery plugins available that could be wrapped for seaside and make the web apps look much nicer. Feel free to help.
I hope that this new port will also help the project to grow...
I started the JQueryWidgetBox project in November 2009 and meanwhile various people contributed wrappers for seaside widgets to it.
Code is MIT, initially I thought about a different license model: everytime one uses the project in a production environment a new widget has to be contributed back to the project. ;)
There are so many good jquery plugins available that could be wrapped for seaside and make the web apps look much nicer. Feel free to help.
I hope that this new port will also help the project to grow...
Thursday, May 05, 2011
Squeak forks
Pharo once forked from Squeak ... some people were happy, others angry. And there were IMHO unnecessary posts like this. However - Squeak is still alive and growing. As well as any of its forks.
Pharo and Squeak play nicely next to each other and both communities not only share history and virtual machine but also members and code/fixes.
Pharo took away the pressure from Squeak to be more like other Smalltalk IDEs. Squeak could continue to be the media and etoy Smalltalk. It's still the best environment to experiment with computing ideas.
And we can now use Pharo to introduce business people to (open source) Smalltalk as these two new indendent posts again prove: read here and here.
So IMHO I think it was a good step, especially since other forks like Cuis started to explorer new areas too. There are also other nice forks like the Squeak NOS project or the Croquet/OpenCobalt story with Krestianstvo and the new OpenQwaq. Cool!
I started with Squeak in version 1.0, right after Andreas created a VM port for Windows and helped to move it forward with code and words. Currently I concentrate on Pharo, otherwise I would be lost in all these nice projects. But I follow all the Squeak forks very closely.
It is really exciting to see all these different faces of Squeak and Smalltalk in general.
Pharo and Squeak play nicely next to each other and both communities not only share history and virtual machine but also members and code/fixes.
Pharo took away the pressure from Squeak to be more like other Smalltalk IDEs. Squeak could continue to be the media and etoy Smalltalk. It's still the best environment to experiment with computing ideas.
And we can now use Pharo to introduce business people to (open source) Smalltalk as these two new indendent posts again prove: read here and here.
So IMHO I think it was a good step, especially since other forks like Cuis started to explorer new areas too. There are also other nice forks like the Squeak NOS project or the Croquet/OpenCobalt story with Krestianstvo and the new OpenQwaq. Cool!
I started with Squeak in version 1.0, right after Andreas created a VM port for Windows and helped to move it forward with code and words. Currently I concentrate on Pharo, otherwise I would be lost in all these nice projects. But I follow all the Squeak forks very closely.
It is really exciting to see all these different faces of Squeak and Smalltalk in general.
Wednesday, May 04, 2011
Squeak VM port to Google Native Client
Yoshiki Ohshima started a Squeak VM port to Google Native Client.
If you work with latest beta of Googles Chrome browser you can try it yourself.
Native client is a technology where native code (subset of Intel x86) could be run from a web browser within a sandbox.
If you work with latest beta of Googles Chrome browser you can try it yourself.
Native client is a technology where native code (subset of Intel x86) could be run from a web browser within a sandbox.
Tuesday, May 03, 2011
OpenQwaq available
Teleplace today announced OpenQwaq, a major open source initiative for collaboration based on Squeak Smalltalk. To quote:
OpenQwaq is released under the GPL v2 license and is available for download immediately at http://code.google.com/p/openqwaq
Some more infos here and here.
The OpenQwaq project is based on the commercial software that Teleplace has been delivering to the market over the past four years. It is a highly-secure, enterprise-class virtual collaboration platform that has been used by large commercial enterprises and federal agencies. The OpenQwaq project enables organizations - large and small, profit and not-for-profit - to implement virtual workspaces for their specific needs.
OpenQwaq is released under the GPL v2 license and is available for download immediately at http://code.google.com/p/openqwaq
Some more infos here and here.
Friday, April 29, 2011
Sacred ANSI standard
Follow Smalltalk ANSI standard ... or intuition. An interesting issue in the context of Pharo.
Thursday, April 28, 2011
Squeakfest 2011
The 8th Annual Squeakfest will be held from May, 26 - May, 28 2011 at Universidad Católica in Montevideo, Uruguay. See
http://squeakfest.org
The theme for this year's conference will be "How and why to use Etoys in the education".
http://squeakfest.org
The theme for this year's conference will be "How and why to use Etoys in the education".
Wednesday, April 27, 2011
ConfigurationOfMagma for Pharo
If you want to work with the Magma OO-database in Pharo you should check out the updated ConfigurationOfMagma.
Tuesday, April 26, 2011
Scratch Day worldwide
May 21st 2011 is Scratch Day worldwide, see http://day.scratch.mit.edu
Scratch is is very nice very visual language in order to do animation and control also embedded systems. It is written in Squeak Smalltalk.
Scratch is is very nice very visual language in order to do animation and control also embedded systems. It is written in Squeak Smalltalk.
No time ...
Just read a blog post from Joachim on Checking of Runtime Dependencies. This article points to an article by Sebastian Kübeck which has interesting definition of the "I Don't have Time for That Developer". To quote:
I think that is the reason why I like Smalltalk so much ... you can constantly improve your situation as a developer by improving anything within the system: starting from the language, the tools up to config management and deployment very easily.
I am sure you know those developers who respond to all suggestions for improving their situation with the same answer: "I don't have time for that". In the past, I called them hard-working developers and I even admired them a little for their patience with which they stumble over the same problems over and over again. In the meantime, I lost that admiration and I see those folks as what they really are: People that act like dogs who are busy chasing their own tails...
I think that is the reason why I like Smalltalk so much ... you can constantly improve your situation as a developer by improving anything within the system: starting from the language, the tools up to config management and deployment very easily.
SqueakSource3 Beta.1 "Easter Fire"
Tobias Pape announced SqueakSource3 Beta.1 called "Easter Fire" - a port of SqueakSource to Seaside 3 and Magritte 2. SqueakSource is a monticello code repository server which hosts your Smalltalk projects.
The SqueakSource3 code is based on the original SqueakSource source code which is used to run squeaksource.com
You can simply load it into Gemstone, Squeak or Pharo using the provided ConfigurationOfSqueakSource. You should load Seaside 3.0 first.
I tested it on latest Pharo 1.2.1:
Then start a new seaside adaptor (for instance comanche) using the seaside control panel (available from the world menu) and point your browser to http://localhost:8080/installSS
If you accept the default parameters there you should have a new instance running on http://localhost:8080/ss
The SqueakSource3 code is based on the original SqueakSource source code which is used to run squeaksource.com
You can simply load it into Gemstone, Squeak or Pharo using the provided ConfigurationOfSqueakSource. You should load Seaside 3.0 first.
I tested it on latest Pharo 1.2.1:
Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfSeaside30';
load.
((Smalltalk at: #ConfigurationOfSeaside30) project latestVersion) load.
Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfSqueakSource';
load.
((Smalltalk at: #ConfigurationOfSqueakSource) project version: #easterFire) load.
Then start a new seaside adaptor (for instance comanche) using the seaside control panel (available from the world menu) and point your browser to http://localhost:8080/installSS
If you accept the default parameters there you should have a new instance running on http://localhost:8080/ss
Pharo web documentation tool
Camillo Bruni worked a bit on a pharo web documentation tool using Seaside. It's a derivate of ruby's yardoc.
You can download a test image and try it yourself.
You can download a test image and try it yourself.
Glamour chapter updated
The chapter on "Glamour" was updated in the Moose book. So if you want to use this framework to easily build browsers then go and have a look.
Wednesday, April 20, 2011
Smalltalk Hub
A first public demo for Smalltalk Hub is now available online, only use it for testing purposes. In the future this could be a nice replacement for Squeaksource.
Read the announcement.
It was written by ObjectFusion using the Iliad web framework and still a work in progress. The project is sponsored by ESUG.
Some of the features:
- works with Monticello files similar to squeaksource
- cool code browser and syntax highlighting for code
- includes issue tracking out of the box
- ...
But many things are missing:
- security
- ssh
- client-side scripting features
- ...
So far it is an alpha demo - although a very promising one.
Read the announcement.
It was written by ObjectFusion using the Iliad web framework and still a work in progress. The project is sponsored by ESUG.
Some of the features:
- works with Monticello files similar to squeaksource
- cool code browser and syntax highlighting for code
- includes issue tracking out of the box
- ...
But many things are missing:
- security
- ssh
- client-side scripting features
- ...
So far it is an alpha demo - although a very promising one.
Squeak for Android news
Dimitry Golubovsky has reached another milestone on the Squeak Port for Android Tablets. Read more in his announcement or on the test drive page.
Tuesday, April 19, 2011
Magma 1.2
Chris announced a new version of his Magma database. Magma 1.2 is running on Squeak 4.2, Pharo 1.1 and Pharo 1.2.
Test coverage with Hapao
A new screencast on test coverage with Pharo and Hapao. Nice!
The hapao website is here: http://hapao.dcc.uchile.cl:8090/pier
The hapao website is here: http://hapao.dcc.uchile.cl:8090/pier
Thursday, April 14, 2011
Cuis 3.2. available
Juan released Cuis 3.2. with an enhanced Look and feel.
This integration should also make it easier for Squeak and
Pharo to integrate SimpleMorphic.
This integration should also make it easier for Squeak and
Pharo to integrate SimpleMorphic.
Wednesday, April 13, 2011
Smalltalk on Open JDK
Looks like there is a Smalltalk port running on Open JDK. Have to find out more.
Saturday, April 09, 2011
Yesplan
At ESUG 2010 there was a presentation about Next Generation Event Planning in Seaside.
The product Yesplan - the event planning software written in Seaside by Inceptive.be now has a website: http://www.yesplan.be
The product Yesplan - the event planning software written in Seaside by Inceptive.be now has a website: http://www.yesplan.be
Wednesday, April 06, 2011
Pharo 1.2.1. is out
We (the Pharo Project community) published another milestone - so Pharo 1.2.1. is out and available. The update number is #12345 (crazy number I know!)
You can get all the details about the release here. We have an impressive number of tests ( 7836 Unit-Tests for core, 10760 Tests for the Pharo 1.2 dev image), new tools and a new UI theme. And the system gets cleaner and cleaner!
If you want to try yourself:
- download the one click distribution (multiplatform, 26MB)
- download the image from the CI server
- or in case you are using Windows grab the installer that I just released (Win32, 13MB), including the fast CogVM
Short tip: you can easily load and run Seaside 3.0.31, the included developer workspace will tell you.
You can get all the details about the release here. We have an impressive number of tests ( 7836 Unit-Tests for core, 10760 Tests for the Pharo 1.2 dev image), new tools and a new UI theme. And the system gets cleaner and cleaner!
If you want to try yourself:
- download the one click distribution (multiplatform, 26MB)
- download the image from the CI server
- or in case you are using Windows grab the installer that I just released (Win32, 13MB), including the fast CogVM
Short tip: you can easily load and run Seaside 3.0.31, the included developer workspace will tell you.
SmalltalkHub
SmalltalkHub a new project hosting application for Smalltalk and Monticello projects is going beta in a week. The project is sponsered by ESUG.
Today Nicolas published an early preview screenshot. Read more.
Today Nicolas published an early preview screenshot. Read more.
Metacello chapter updated
Stéphane updated the chapter on how to use Metacello package configuration system for Pharo. Click here for the PDF.
Tuesday, April 05, 2011
Monday, April 04, 2011
Car tracking in Smalltalk
Sven Van Caekenberghe reports about a new application "T3 Easy" (a track & trace product). It's an HTML5 web app (using client side HTML + Javascript + CSS) on top of a REST server written in Pharo Smalltalk. It consists of 4 stateless Pharo Cog VM's running behind an Apache load balancer.
The server uses Zinc HTTP Components, both for its server part, as well as for clients talking to other systems behind the scenes. Even the Open Street Map tile serving, which is pushing out many megabytes, is currently going through this server.
There is a live demo and a few classes are available as open source (IP to country mapping, ...)
The server uses Zinc HTTP Components, both for its server part, as well as for clients talking to other systems behind the scenes. Even the Open Street Map tile serving, which is pushing out many megabytes, is currently going through this server.
There is a live demo and a few classes are available as open source (IP to country mapping, ...)
April Pharo Sprint in Brussels
Johan Brichau and Andy Kellens are organizing a Pharo sprint at Brussels Friday 15th of April. Get the details here.
Thursday, March 31, 2011
Mariano is blogging too
Mariano Martinez Peck now also has a blog and starts with a journey through the Virtual machine.
Wednesday, March 30, 2011
Syntax Highlighting for Smalltalk
Smalltalk environments like Pharo include syntax highlighting as any other modern IDE. And if you want to write something about Smalltalk on the web you can use Daan van Berkels work to style your Smalltalk code via JavaScript.
Seaside REST
The Seaside REST interface got an update for better matches.
Doing REST in Seaside is simple - just use pragmas.
Doing REST in Seaside is simple - just use pragmas.
Friday, March 25, 2011
PocketCube Solver in Pharo
HwaJong Oh implemented a PocketCube Solver in Pharo.
Read his announcement here or watch a video here. Code is available on this squeaksource project.
Read his announcement here or watch a video here. Code is available on this squeaksource project.
DesignBlocks - Scratch in the webbrowser
I already reported about Scratch (which is written in Squeak Smalltalk). In this app you can use building blocks to form small scripts and provide interaction on the screen. Looks like this concept is now also ported over to JavaScript - check out the DesignBlocks beta site.
Morphic in JavaScript
Jens Möning ported Morphic (the UI framework used in Squeak and Pharo) over to JavaScript. It also runs nicely on the iPad as this videos proves.
You can try morphic.js in your webbrowser or read the programmers guide.
So beside the LivelyKernel from Dan that is the second morphic like environment in the web browser...
Another nice example that dynamic languages are on the rise. Especially with the new "canvas" tag JavaScript can be used more and more to reimplement existing or create new rich client applications. Have a look at CanvasPaint (a clone of MSPaint in JavaScript) and you know what I'm talking about.
You can try morphic.js in your webbrowser or read the programmers guide.
So beside the LivelyKernel from Dan that is the second morphic like environment in the web browser...
Another nice example that dynamic languages are on the rise. Especially with the new "canvas" tag JavaScript can be used more and more to reimplement existing or create new rich client applications. Have a look at CanvasPaint (a clone of MSPaint in JavaScript) and you know what I'm talking about.
Wednesday, March 23, 2011
Progress on VM side ...
New Cog VM version from Eliot.
The Cog virtual machine for Pharo and Squeak now also has a project home at http://code.google.com/p/cog/.
And Igor is working on automated hudson builds for the VM (see docu and first results).
The Cog virtual machine for Pharo and Squeak now also has a project home at http://code.google.com/p/cog/.
And Igor is working on automated hudson builds for the VM (see docu and first results).
Monday, March 21, 2011
Friday, March 18, 2011
SqueakDBX 1.3 and DBXTalk
SqueakDBX 1.3 is released. This is the last release with this name.
In the future the project is called DBXTalk.
In the future the project is called DBXTalk.
Wednesday, March 16, 2011
Pharo at Universities
Esteban now started teaching Pharo at San Martin University Buenos Aires Province.
JTalk and JSTalk
When I first heard about JTalk (Smalltalk on JavaScript in a browser) I immediately thought about using it to run a Smalltalk not only on JavaScript but also on the java virtual machine (by using JavaScript as a vehicle and Rhino from Mozilla as the engine to run it).
I played with Rhino in the past ... it's a simple JAR you can use to integrate JavaScript into Java applications and since JTalk is only a few kB in size it should be easy to bootstrap a Smalltalk on top of JavaScript on top of Rhino on top of JVM ...
Performance would be bad ... but it would be fun.
Looks like Thiago Silva already had a similar idea - not really like a Smalltalk, but with similar tools like Smalltalk (like class browser) to ease JavaScript development. This one is called JSTalk (hence the additional name) and can be found here.
I played with Rhino in the past ... it's a simple JAR you can use to integrate JavaScript into Java applications and since JTalk is only a few kB in size it should be easy to bootstrap a Smalltalk on top of JavaScript on top of Rhino on top of JVM ...
Performance would be bad ... but it would be fun.
Looks like Thiago Silva already had a similar idea - not really like a Smalltalk, but with similar tools like Smalltalk (like class browser) to ease JavaScript development. This one is called JSTalk (hence the additional name) and can be found here.
Use Smalltalk for the next startup
Did I mention that Diego Lont and Stephan Eggermont participated in Startup Weekend Eindhoven. The combination of Seaside on Pharo made it possible they were honored by the jury with the innovation price (Most Innovative Business Case).
Read more here.
So you should really think about using Smalltalk for your next startup!
Read more here.
So you should really think about using Smalltalk for your next startup!
Tuesday, March 15, 2011
Riak Interface for Pharo Smalltalk
Runar Jordahl implemented a Riak Interface for Pharo Smalltalk. Why is this interesting, you may ask.
Riak is a scalable database (written in Erlang, C and a little bit of JavaScript) that is being used in production by companies like Mozilla and Comcast. It is based on Amazons Dynamo using key-value storage (bucket-keys to be exact). It has peer-to-peer replication without a specific master - this allows for a fault-tolerant system.
Runars Interface runs in Pharo 1.1., uses the ZincHTTP components and is currently in beta. Check out the included test case "EpigentRiakRestConnectionTest" to see how easy you can use it.
You have to set up a riak running at "http://riaktest:8098/riak" if you want to try.
I hope to find the time to play with this a little bit more.
Riak is a scalable database (written in Erlang, C and a little bit of JavaScript) that is being used in production by companies like Mozilla and Comcast. It is based on Amazons Dynamo using key-value storage (bucket-keys to be exact). It has peer-to-peer replication without a specific master - this allows for a fault-tolerant system.
Runars Interface runs in Pharo 1.1., uses the ZincHTTP components and is currently in beta. Check out the included test case "EpigentRiakRestConnectionTest" to see how easy you can use it.
You have to set up a riak running at "http://riaktest:8098/riak" if you want to try.
I hope to find the time to play with this a little bit more.
SandCastle Themes for Pharo 1.2
Patrick Barroca announced two additional themes for Pharo 1.2. You can download them from Squeaksource.
Monday, March 14, 2011
JTalk - Smalltalk on JavaScript
Jtalk is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. It was announced today by Nicolas Petton.
Some features:
- it is written in itself (including the parser/compiler)
- it is self-contained
- it compiles into efficient JS code
- it uses the Squeak chunk format
- Pharo is considered as the reference implementation
Some features:
- it is written in itself (including the parser/compiler)
- it is self-contained
- it compiles into efficient JS code
- it uses the Squeak chunk format
- Pharo is considered as the reference implementation
SqueakNOS updates
Looks like Squeak NOS (No operating system) will soon get an update. One of the coolest project I've seen ... booting a Smalltalk system without an operating system. Have to try out as soon as it is available.
Pharo Core 1.1.2 release and Pharo Core 1.2 in preparation
Friday, March 11, 2011
Monday, March 07, 2011
Java 7
With the introduction of a few "simplifications" in Java 7 I expected exactly this kind of discussion when I first heard about the new diamond operator. Java may end up as a degenerated C++ variant...
So why not switch to something much simpler right from the beginning and care about real world problems.
So why not switch to something much simpler right from the beginning and care about real world problems.
Tron inspired by Smalltalk?
Do you know Tron - the movie. Sure. But how is this related to Smalltalk?
The script was written by Bonnie MacBird and according to this page her script for Tron is loosely based on the work of her spouse Alan Kay (Dynabook, Smalltalk, Vivarium). Didnt know that until today...
The script was written by Bonnie MacBird and according to this page her script for Tron is loosely based on the work of her spouse Alan Kay (Dynabook, Smalltalk, Vivarium). Didnt know that until today...
Smalltalk on AVM2
Alchemy is a research project from Adobe that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2).
Interesting enough Alexandre Jasmin is working compiling the Squeak VM with Adobe Alchemy - this would allow Smalltalk to run on the Flash VM. Interesting ...
Here are some more notes on this.
Interesting enough Alexandre Jasmin is working compiling the Squeak VM with Adobe Alchemy - this would allow Smalltalk to run on the Flash VM. Interesting ...
Here are some more notes on this.
SqueakDBX news
SqueakDBX is a nice interface for accessing relation databases from Smalltalk. It is now once again supported by ESUG. Next steps will be an updated name (since it also works for other Squeak forks like Pharo) and an updated Glorp version (OO to RDBMS mapping layer).
Panu Suominen now also announced a project for simple object pooling that you can use to pool database connections for SqueakDBX.
Panu Suominen now also announced a project for simple object pooling that you can use to pool database connections for SqueakDBX.
Cuis 3.1 is available
Cuis 3.1. is available from Juan. It is faster regarding UI performance and has support for MCZ files (Monticello).
Juan also made a small 2MB image available that is based on Cuis 3.1.
Juan also made a small 2MB image available that is based on Cuis 3.1.
SIXX updated
SIXX (Smalltalk Instance eXchange in XML) was updated to work on Pharo 1.2 and Squeak 4.2. SIXX allows you to exchange nets of Smalltalk objects between various Smalltalks.
Sunday, March 06, 2011
Birth of a Smalltalk image
A Smalltalk image is a file where all the objects are persisted (similar to an OO-database). You can at any point in time save the state of your object world to continue later - for instance continue debugging a problem the next day. The image concept is often confusing for people who are used to building a program by compiling source files to a binary.
An image is typically maintained over years - and it is possible that some of the objects within a smalltalk image live there since Smalltalk-80.
An image can grow in size over time and sometimes one starts to load code/objects into a smaller one to create a new clean image file for daily work.
At Pharo-Project we currently have a PharoCore image that is cleaned up day by day and that is used to build the Pharo-dev ("Pharo") Smalltalk distribution. Pavel also worked on a much smaller kernel (Pharo Kernel project) by throwing out more classes. I already reported about his work.
However - all these were built by stripping an existing image.
Benjamin (with the help of Igor) now created a new Smalltalk kernel ("Hazel") based on Pharo. The new born weight 2.2Mb and includes 230 classes. It is just beeping to prove that the image is living. Read about it here. Congratulations to the new born ...
Combined with more VM support in the future this will allow for small kernel images that provide textual interactivity (replace your bash with Smalltalk scripts, ...) or small webserver images, etc.
Due to the reduced size these images have less tool support (no IDE as you will find in any typical Smalltalk image) - so it will become important to reactivate the InterpreterSimulator project. With this small tool you can run a Smalltalk image within a Smalltalk image and trace the processing. Pavel already started to work on this. Interesting ...
An image is typically maintained over years - and it is possible that some of the objects within a smalltalk image live there since Smalltalk-80.
An image can grow in size over time and sometimes one starts to load code/objects into a smaller one to create a new clean image file for daily work.
At Pharo-Project we currently have a PharoCore image that is cleaned up day by day and that is used to build the Pharo-dev ("Pharo") Smalltalk distribution. Pavel also worked on a much smaller kernel (Pharo Kernel project) by throwing out more classes. I already reported about his work.
However - all these were built by stripping an existing image.
Benjamin (with the help of Igor) now created a new Smalltalk kernel ("Hazel") based on Pharo. The new born weight 2.2Mb and includes 230 classes. It is just beeping to prove that the image is living. Read about it here. Congratulations to the new born ...
Combined with more VM support in the future this will allow for small kernel images that provide textual interactivity (replace your bash with Smalltalk scripts, ...) or small webserver images, etc.
Due to the reduced size these images have less tool support (no IDE as you will find in any typical Smalltalk image) - so it will become important to reactivate the InterpreterSimulator project. With this small tool you can run a Smalltalk image within a Smalltalk image and trace the processing. Pavel already started to work on this. Interesting ...
Thursday, February 17, 2011
Wednesday, February 16, 2011
German Smalltalk Podcast
There is a new german Smalltalk podcast online:
http://smalltalkinspect.podspot.de
Joachim, Marten and Sebastian talk about Smalltalk versions and events.
http://smalltalkinspect.podspot.de
Joachim, Marten and Sebastian talk about Smalltalk versions and events.
Best Creative Hack Of The Year
The Squeak VM had problems on Linux caused by using UUID's. It was not a Smalltalk or VM problem - but a bug that exists in some versions of libuuid on some Linux distributions. This bug was really annoying since from time to time someone complained about it (either on Squeak or Pharo lists).
This was now finally fixed by Levente Uzoni and he is now honored with the "Best Creative Hack Of The Year" award by the vm-developers. Thanks Levente!
This was now finally fixed by Levente Uzoni and he is now honored with the "Best Creative Hack Of The Year" award by the vm-developers. Thanks Levente!
Tuesday, February 15, 2011
CloudforkSSO – OpenID and OAuth support for Smalltalk With the Cloudfork
With the CloudforkSSO library you can let the users of your Seaside web application login using their Google or Yahoo accounts. Cool!
Monday, February 14, 2011
Saturday, February 12, 2011
IWST @ ESUG 2011
There is a call for papers on the IWST @ ESUG 2011 (International Workshop on Smalltalk Technologies in Edinburgh, Scotland). Read more.
Another Pharo success story
There is a new large Argentinian application based on Pharo. Read more here.
Friday, February 11, 2011
Saturday, February 05, 2011
JNIPort 2.0 for VisualWorks, Pharo and Squeak
JNIPort is a Smalltalk library which allows Java code to be invoked from
Smalltalk. It acts as a bridge between the world of Smalltalk objects and a
Java Virtual Machine (JVM) where Java code is executing.
Good news for the version 2.0: JNIPort can now be used in Pharo and Squeak.
Read more.
Smalltalk. It acts as a bridge between the world of Smalltalk objects and a
Java Virtual Machine (JVM) where Java code is executing.
Good news for the version 2.0: JNIPort can now be used in Pharo and Squeak.
Read more.
Thursday, February 03, 2011
Monday, January 31, 2011
More Pharo shortcuts
It's hard to remember long URL's. At least for me.
But with these new shortcuts remembering important pharo-project sites is now easy:
http://issues.pharo-project.org
http://ci.pharo-project.org
http://book.pharo-project.org
http://wiki.pharo-project.org
Thanks Adrian!
And thanks to Geert we now also have:
http://build.pharo.world.st
http://code.world.st
But with these new shortcuts remembering important pharo-project sites is now easy:
http://issues.pharo-project.org
http://ci.pharo-project.org
http://book.pharo-project.org
http://wiki.pharo-project.org
Thanks Adrian!
And thanks to Geert we now also have:
http://build.pharo.world.st
http://code.world.st
Thursday, January 27, 2011
Seaside at FOSSDEM
Stephan Eggermont and Willem van den Ende will demo Seaside at the FOSDEM meeting in Brussels, Belgium to free and Open Source developers. Read more here and the official site.
Seaside AJP Adaptor updated
Phillipe updated the AJP adaptor for Seaside. So if you already run Apache in front of your Seaside image feel free to update.
Wednesday, January 26, 2011
SSL for Seaside
I already reported about using SSL for Seaside with SqueakSSL. Now I found a nice HOWTO on Andreas blog. Will try out as soon as time permits.
Tuesday, January 25, 2011
Monday, January 24, 2011
Saturday, January 22, 2011
Coral - Scripting for Pharo
Small introduction to Coral - so you can use Pharo for scripting. Read more.
Friday, January 21, 2011
Smalltalk and table-based hand gesture tracker
Nikolay plays with objects in Croquet island by using a table-based hand gesture tracker. Done in Smalltalk (what else). Time to buy a Multi-touch table and throw the PC keyboard away ;)
Some more automated Seaside testing
Tony has posted some more infos on how he tests his Seaside app using
Soup and ZinkHTTPComponents.
Yes, Smalltalk makes this possible and the interesting part is that you can even do this in an XPStyle (write the test first and then create the #renderXX: methods for the seaside components).
Soup and ZinkHTTPComponents.
"I found that if I write the tests at the same time as I code the forms, this all goes pretty fast. The advantage is that instead of using the browser for minutes to manually test the few things that I think I might have affected, I can run a whole regression suite in a few seconds."
Yes, Smalltalk makes this possible and the interesting part is that you can even do this in an XPStyle (write the test first and then create the #renderXX: methods for the seaside components).
CampSmalltalk wiki
Instantiantions has set up a new CampSmalltalk wiki. Joachim knows more.
The old wiki is not available anymore (since around 2007), but fortunately there is a way back machine archive.
So one can even find the first CampSmalltalk pictures from 2000 in San Diego (my first US visit)
The old wiki is not available anymore (since around 2007), but fortunately there is a way back machine archive.
So one can even find the first CampSmalltalk pictures from 2000 in San Diego (my first US visit)
Thursday, January 20, 2011
JUnit removed from NetBeans?
Looks like Oracles lawyers check the license of NetBeans code. It may be possible that JUnit is removed from the standard Netbeans installation if it doesnt change its license.
Another crazy story of lawyers and software.
Kent Beck already responded and a former Sun employee suggested to keep the current license model to
Another crazy story of lawyers and software.
Kent Beck already responded and a former Sun employee suggested to keep the current license model to
"keep Oracle's aggressiveness in check". Interesting times ...
Wednesday, January 19, 2011
Kinect and EToys
Beside Scratch there is now also an interface to Kinect for Etoys in Squeak:
http://tecnodacta.com.ar/gira
Cool!
http://tecnodacta.com.ar/gira
Cool!
Pharo 1.3 started
Pharo 1.2 (on top of the already read 1.2 core) is nearly finished. Time to already start a 1.3 core.
Wednesday, January 12, 2011
Xtreams up to date
Martin provides an up to date port of Xtreams for Pharo/Squeak. It now matches the docs and VW version better.
Tuesday, January 11, 2011
Virtual environment creation for Gemstone/Seaside
Vagrant is a tool for building and distributing virtualized development environments. It helps you automate virtual machine creation using Oracle’s VirtualBox (which I use to manage my virtual computers)
There is now a new tutorial from John Thornton available that will setup a Vagrant VM and install GemStone and SeaSide 3.0 on it. Read more.
Nice!
There is now a new tutorial from John Thornton available that will setup a Vagrant VM and install GemStone and SeaSide 3.0 on it. Read more.
Nice!