New Website!

We have a new website and a new logo for our community. Go Smalltalk!

Smalltalk was designed for Kids!

Yes! Alan Kay was trying to develop an environment to be used in the education of our kids.

Did you Know that Smalltalk was created in 70's at Xerox?

The use of the mouse, the "copy and paste", the bitblt and others technologies was firstly created in Smalltalk. Steve Jobs saw those ideas at Xerox and he developed a new language, Objective-C.

Mailing List in Spanish!

Please, go to http://groups.google.com/group/clubsmalltalk and join us!

August 29, 2008

SqueakNOS boots on OLPC

SqueakNOS now boots on OLPC

SqueakNOS means "Squeak No Operative System". Squeak is an open, highly-portable Smalltalk-80 implementation, it runs on almost every operating system, and in bare hardware. SqueakNOS gets rid of the OS under Squeak, and implement all the functionality in Smalltalk. It can be downloaded a VMWare appliance in the SqueakNOS site to test it.

New version of Chalten

It's a new version uploaded to SqueakSource (for Squeak) and to the Cincom Public Repository (for Visualworks) a new release of the project called Chalten 2.0 that is an implementation of the Time Domain (not only of the Gregorian Calendar now).

Here are some examples:

"Create some time entities"
August twentieth, 2008 --> Creates an instance of the gregorian Date for 20/08/2008
August twentieth --> Creates an instance of the gregorian DayOfMonth for 20/08
August, 2008 --> Creates an instance of the gregorian MonthOfYear for August of 2008

"But, not only gregorian entities"
Shaban seventeenth, 1429 --> Creates an instance of the islamic Date for 17/08/1429
Shaban seventeenth --> Creates an instance of the islamic DayOfMonth for 17/08
Shaban, 1429 --> Creates an instance of the islamic MonthOfYear for Shaban of 1429

JulianAugust seventh, 2008 --> Creates an instance of the julian Date for 07/08/2008
JulianAugust seventh --> Creates an instance of the julian DayOfMonth for 07/08
JulianAugust, 2008 --> Creates an instance of the julian MonthOfYear for August of 2008

Av nineteenth, 5768 --> Creates an instance of the hebrew Date for 19/05/2008
Av nineteenth --> Creates an instance of the hebrew DayOfMonth for 19/05
Av, 5768 --> Creates an instance of the hebrew MonthOfYear for Av of 5768

"Converting dates between diferents calendars"
(August twentieth, 2008) asIslamic --> Return Sha'ban 17, 1429
(August twentieth, 2008) asHebrew --> Return Av 19, 5768
(August twentieth, 2008) asJulian --> August 7, 2008 (julian)

(Shaban seventeenth, 1429) asHebrew --> Return Av 19, 5768
(JulianAugust seventh, 2008) asIslamic --> Return Sha'ban 17, 1429
(Av nineteenth, 5768) asGregorian --> August 20, 2008 (gregorian)

"Measuring distances"
August twentieth, 2008 distanceTo: December thirtieth, 2008 --> Return an instance of Measure <132 days>
Shaban seventeenth, 1429 distanceTo: Muharram second, 1430 --> Return an instance of Measure <132 days>
Av nineteenth, 5768 distanceTo: Tevet third, 5769 --> Return an instance of Measure <132 days>

"Also, measuring distance expressed in diferents way (calendars)"
August twentieth, 2008 distanceTo: Tevet third, 5769 --> Return an instance of Measure <132 days>
Shaban seventeenth, 1429 distanceTo: December thirtieth, 2008 --> Return an instance of Measure <132 days>
Av nineteenth, 5768 distanceTo: Muharram second, 1430 --> Return an instance of Measure <132 days>

"Collect some entities"
(ChaltenYear number: 2008 calendar: GregorianCalendar) months
collect: [:monthOfYear | monthOfYear lastDate] --> Returns all the last dates of the 2008 months.
(ChaltenYear number: 2008 calendar: GregorianCalendar) dates select:
[:date | date is: Monday] --> Returns all Mondays of 2008
(ChaltenYear number: 5768 calendar: HebrewCalendar) dates select:
[:date | date is: YomShabbat] --> Returns all yom shabbats of 5768

"Let's create a filter for all dates..."
nonWorkingDays := TimeLineFilter named: 'Non Working Days'

"Now, we want Saturdays to be on that filter"
nonWorkingDays addDayRule: Saturday

"Now we want Sundays from January 1st of year 1000 to the end of time..."
nonWorkingDays
addRule: (nonWorkingDays dayRule: Sunday)
from: (January first, 1000)
to: TheEndOfTime

"Now we want all July 9th since 1816 because is the Independence Day in Argentina".
nonWorkingDays
addRule: (nonWorkingDays dayOfMonthRule: July ninth)
from: (July ninth, 1816)
to: TheEndOfTime

"Testing some dates..."
nonWorkingDays includes: (July ninth, 2008) --> Returns true
nonWorkingDays includes: (July eighth, 2008) --> Returns false
nonWorkingDays includes: (July twelfth, 2008) --> Returns true, it is Saturday

"But, how about to filter some like the hebrew new year day"
nonWorkingDays addDayOfMonthRule: Tishri first
nonWorkingDays includes: (Tishri first, 5769) --> Return true, it is the next hebrew new year
nonWorkingDays includes: (September thirtieth, 2008) --> Return true, it is the next hebrew new year (in gregorian)

"21/08/2008 is a Thursday"
timespan := TimeSpan from: (August twentyfirst, 2008) duration: (48 * TimeUnits hour)
settleDate := RelativeDate timespan: timespan using: nonWorkingDays negated

nonWorkingDays includes: (August twentyfifth, 2008) --> Returns false because 25/08/2008, a Monday, is a working day
settleDate absoluteDate --> Returns 25/08/2008

"Now a new non working day is added to the filter"
nonWorkingDays addDateRule: (August twentyfifth, 2008)
nonWorkingDays includes: (August twentyfifth, 2008) --> Return true.

"Now 25/08/2008, is a not working day"
settleDate absoluteDate --> Now it returns 26/08/2008 because the filter has changed

"Working with time zones"
buenosAiresDateTime := TimeZonedDateTime
dateTime: (DateTime
date: August twentieth, 2008
timeOfDay: (TimeOfDay hours: 19 minutes: 35))
zone: TimeZones buenosAires.

greenwichDateTime := TimeZonedDateTime
dateTime: (DateTime
date: August twentieth, 2008
timeOfDay: (TimeOfDay hours: 22 minutes: 35))
zone: TimeZones greenwich.

buenosAiresDateTime = greenwichDateTime --> Return true, it is the same instant but measure in diferent zone
buenosAiresDateTime distanceTo: greenwichDateTime --> Return a measure <0 days>, because it is the same instant

buenosAiresDateTime := buenosAiresDateTime next: (TimeUnits hour * 3)

buenosAiresDateTime = greenwichDateTime --> Return false, the hour is the same but the zone is different
(buenosAiresDateTime distanceTo: greenwichDateTime)
convertTo: TimeUnits hour --> Return a measure <-3 hours>, just the offset between zones

ESUG 2008 Innovation Technology Awards

The three winners of this fifth edition are:
  1. Dr Geo II by Hilaire Fernandes. Dr. Geo II is an interactive geometry framework, Morphic-based, which can be embedded and mixed with any existing Morph user interface element of the Squeak OLPC environment. It allows one to create geometric figure plus the interactive manipulation of such figure in respect with their geometric constraints. It is usable in teaching situation with students from primary or secondary level.
  2. SeaBreez by Georg Heeg eK. It's a graphical editor suite that enables to setup and maintain a complete Seaside application.
  3. iSqueak by John McIntosh, Grit Schuster and Michael Rueger. It's a clean re-implementation of the Mac OS VM for both Mac computers and iPhone/iTouch devices including a revised event handling. Based on the revised event system we introduce an extension to the morphic and tweak event handling that enables us to recognize gestures.
The full results are on-line here.

August 22, 2008

AIDA/Web 6.0 beta and AIDA/Scribo 1.0 beta released

AIDA/Web is a Smalltalk web application framework for building complex web applications with integrated Ajax support, rich collection of web components to build web pages programatically, MVC-like separation of presentation from domain, REST-like nice looking and bookmarkable url links, with integrated session and security management, a Swazoo web server and many more.

AIDA/Web is known by its simplicity but still allows building most demanding web applications of many sorts. It has everything you need for a real web app, together with Ajax (which is not additional but integral part of Aida).

It is also a mature one, running web apps in production since 1996. It is used in many intranet business apps from Gas billing system for all gas in Slovenia to logistics management system called e-logis and recently a CMS like system for Quality and Business process management.

Reference

SqueakDBX: beta release for OpenDBX plugin

A team of students from UTN (National Technological University in Argentina) co-ordinated by Estaban Lorenzano has just announced the first beta release of SqueakDBX, a package to allow Squeak to access OpenDBX functionality, so allowing users to perform relational database operations (DDL, DML and SQL) through a truly open source library. OpenDBX can interact with major database engines such as Oracle and MSSQL besides open source databases such as Postgresql and MySQL. SqueakDBX can also integrate with GLORP.
From the release notes, the key features for this release are:
  • Tested on 3.10 and Pharo.
  • Support for Linux and OSX.
  • Proved on windows (through MinGW), but some changes in OpenDBX are still needed (next version will have full compatibility).
  • Tested on PostgreSQL, MySQL and Oracle.
  • MS SQL Server, Firebird, Interbase, SQLite, SQLite3 and Sybase tests will be available as soon as possible.
  • Transactional management.
  • Automatic conversion of resultset columns (a String) into squeak types.
  • Large objects (clob, blob, arrays, and so on) are not yet supported.
  • Special OpenDBX options: multi-statments, compression, paged results.
  • Automated database connection release on garbage collection (although manual disconnection is recommended)
  • Error handling
Some benchmark testing has been carried out, and the performance of the drivers appears to be comparable with native drivers.
The team are very keen to get feedback, bug reports, experiences on different platforms etc, and welcome any contributions. Sources can be download from SqueakSource (it requires FFI installed). Full documentation, installation and getting started instructions can be found at the SqueakDBX wiki page.
This project has been selected as part of ESUG SummerTalk 2008

Information source: http://news.squeak.org.
More information in the track in the ClubSmalltalk Spanish Group

August 17, 2008

Why does computer-based teaching fail? by Alan Kay

Dr. Alan Kay, a pioneer of computer science and educational technology, provides insights into the importance of good educational design - no matter how powerful your technology might be.


Self, the movie

The Self Language Designed for expressive power and malleability, Self combines a pure, prototype-based object model with uniform access to state and behavior. Unlike other languages, Self allows objects to inherit state and to change their patterns of inheritance dynamically.

Content of the film

00:00 - Title
00:16 - Randy Smith's introduction: directness, liveness, no run/debug separation
02:00 - Demonstration of basic Self ideas
02:15 - objects and slots
02:54 - methods
03:40 - parent objects: inheritance
04:33 - flexibility of object inheritance (vs class inheritance)
06:08 - Morphic demonstration
07:48 - How to change a running program (bouncing atoms)
10:53 - Make it look like a "real" application
15:06 - Web browser in Self
15:37 - Mario's Smalltalk in Self (also shown is collaboration via Self)
16:46 - Dave talks to Randy about the implementation
19:30 - Randy's conclusions
20:45 - Credits


Reference

Squeak in Extremadura

This short film shows the work in Extremadura, a rural region in the southwest of Spain, using the computer in the classroom. They use GNU Linex as the OS and Squeak as the platform to develop the educational content. The students can have the opportunity of been responsible of construction their own knowledge. This educational program has been developed by IT researchers and educators. If you want to learn more about this concept of learning, please read the work of Seymour Papert.

August 16, 2008

Smalltalk 80 in an old TV show like "Beyond 2000"

Adele Goldberg presents Smalltalk in a TV show called "Beyond 2000" in the 80's. In this presentation you can see the capabilities at that time of Smalltalk. Many of the features are the same that you have today in the modern operative systems.

The Computer Revolution Hasn't Happened Yet by Alan Kay

OOPSLA'97 Keynote of Alan Kay, "The Computer Revolution Hasn't Happened Yet".

August 15, 2008

Interview with Luca Bruno, the creator of Smalltalk YX

Luca Bruno is the mind behind the Smalltalk YX, a new free environment in the Smalltalk's world. He born the 27th august of 1988 in Paola, Italy. After discovering his work, we want to know more about Luca and his motivations. He accepted to answer some questions.

CS: How did you know Smalltalk?
LB: Well, I like to see new technologies and perhaps new programming languages. So I first looked for the IO programming language. I liked very much the prototype paradigm. I then opened the about page and discovered that it was inspired by Smalltalk. It's been a couple of years ago.
CS: Which was your first Smalltalk?
LB: My first Smalltalk version I've used was Squeak.
CS: What was your first impression?
LB: My first impression was made by a few questions to myself: is this language useful? why has it its own graphical environment? Why isn't such elegant and powerful language is more known to programmers and used in the world?Well all these questions have been answered themselves with the time being.
When I've used Squeak the first time, I didn't reopen it for at least a couple of week because I didn't like it very much. After I reopened it and I've gone through reading the class library in the browser and writing some simple programs: it has impressed me then.
CS: Are you developing with Smalltalk?
LB: No I'm not developing with Smalltalk. There's no good environment yet to create my applications on. I've maintained SqueakGtk for a long time but I haven't created any application with it. There are several reason why I hadn't. The most important one for me is that there's no good GUI environment around, or the ones good don't have the expected VM/flexible image management.
I'm now developing Smalltalk YX to create the most open general purpose language and hopefully create my applications with it, it's my dream.
CS: Why did you decided to choose Smalltalk?
LB: I choose Smalltalk because I like it, it's coherent, powerful, elegant, innovative, easy, well-structured, easy to debug, hard to create bad OOP usage. You can make what you want with Smalltalk. It's awesome how with a few syntax rules you can write good-reading and well-structured programs.
CS: Why do you think Smalltalk is not popular?
LB: It's popular, but not for a general purpose view point. Lots of companies are using it, and many experiments are done with it. Its technology is more used for particular environments instead.
Another issue is the image. Developers are afraid of it, and that's normal. Using the filesystem is more secure than using a single file for everything. Starting from the compatibility ending up with the stability.
Another serious serious _serious_ problem is: lack of demonstrating applications. Do you see any widely used applications running on users' desktop? I don't, that's a problem. It's not the lack of libraries like many people say, if you create applications using non-internal libraries programmers will see that's possible to "create" with Smalltalk.
What I want to do with Syx is to invest creating desktop and web applications, that's much more than marketing, books, etc. IMHO.
CS: What do you think Smalltalk has and the other tools doesn't have?
LB: Smalltalk has the "ability" to let you write your applications the good OO way, other tools don't. Smalltalk has the "ability" to make your applications flexible and maintainable more than any other tools. It's not what Smalltalk offers, it's what Smalltalk is.
CS: What tools do you recommend to work?
LB: In Smalltalk? Actually only seaside.

If I said ... Would you answer
Sports?
I usually play billiards (8 ball), beach volley, tennis and table tennis. I don't follow sport on the TV so much.
Music?
Rock/metal old style music is needed while programming.
Food?
Everything made in Calabria the natural way.
Computer brand?
Compaq AMD64
Operative system?
I've several partitions on my HD, I currently use Microsoft Windows XP and Debian GNU/Linux lenny/sid.
Mobile Phone?
Nokia 3220
City?
I live in Longobardi, a very very small city with lots of green, mountains and a clean sea. Though there're no people in winter I like it.
Film?
I like war films, also japanese and chinese like "The last Samurai".
Magazine?
I don't read any magazine but my RSS feeds.
Open Source?
GNOME/GTK+/Glib

August 11, 2008

Argentinian Smalltalk Congress: Smalltalks 2008

Announcement

First invitation to participate in the second conference.

Place

This year, the site chosen was the Universidad Abierta Interamericana.

Dates

November 13 through November 15.

Costs

Once again, entry, coffee and pastries will be completely free.

Talks

The conference will be divided into two modules, Scientific Research and Software Industry.

Contest

A coding contest will be held this year.

Keynotes

Guest lectures by outstanding personalities.

Hands-on

Tutorial sessions.

Scope

This is an international conference; smalltalkers from everywhere will be attending.

Important Dates


Conference: November 13 through November 15.
Paper submission deadline (research): August 31.
Presentation submission deadline (software development): September 30.
Contest registration deadline: September 30.
Conference registration deadline: November 7.

NOTE: REGISTRATIONS CAN ONLY BE MADE THOUGH THE CONFERENCE WEB PAGE (NOT AVAILABLE YET)

Important Addresses


Universidad Abierta Interamericana: Av. Montes de Oca 745.
Conference site: http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008
Email contact: smalltalks2008 at gmail.com

August 10, 2008

Download the GLASS appliance

The plattaform GLASS (Gemstone, Linux, Apache, Smalltalk and Seaside) has a GLASS Virtual Appliance to download (It's a VWware image so you will need to install the VMWare Player). It's the best way to test it without any kind of instalation. Please, before downloading the appliance be sure that you have a 64bit processor. The Wmware is running with an Unbutu/64 OS.
Another tip: Read how to configure the network or your services will be unavailable.

ESUG 2008

August 25-29, 2008, Amsterdam

ESUG is getting a record number of registrations. The European Smalltalk User Group (ESUG) is a non-profit users organization that supports all kinds of Smalltalk initiatives, especially free-open source ones that benefit the whole Smalltalk community. For more information, please refer to: http://www.esug.org/

News from ESUG 2008

July 2008 - ESUG 2008 is breaking records
The number of registered attendees for the upcoming ESUG Conference in Amsterdam passed 90 already!
August 2008 - ESUG Conference 2008 Camp Smalltalk registration required
Access to Camp Smalltalk during the weekend before the ESUG Conference in Amsterdam requires registration! If you want to attend the Camp please send an email before Wednesday 20th with the following header: [Camp] your name and first name to denker at acm dot org
August 2008 - ESUG Conference 2008 is booked out!
ESUG announce that the conference is booked out! This year there will be 155 participants!

August 9, 2008

Google Talks: Lively Kernel

Lively Kernel is a web environment based on Javascript but the philosophy of Squeak. Here we present the presentation of Dan Ingalls at Google talks. For more information and even to test the environment please go here: http://research.sun.com/projects/lively/