VA Smalltalk and Squeak/Pharo go social with CloudforkSSO

Most web applications today need to be integrated with other web applications, be it due to life-style compatibility with “Like” and “Tweet” buttons, or for integration with web calendars, mailers, geolocation / mapping services and the like.

Jan van de Sandt has just released CloudforkSSO, an open-source library that allows the integration of Seaside-based web applications with services that use the OpenID or OAuth protocol to share information with your application:

With the CloudforkSSO library you can let the users of your Seaside web application login using their Google or Yahoo accounts. This works using the OpenID2 protocol. CloudforkSSO also contains OAuth support. With this protocol you can ask users for permission to access their data on other websites.

This allows for very interesting services of your applications, where your Seaside application can access a user’s webmail account or calendar etc.

The best part follows:

I developed CloudforkSSO in Pharo Smalltalk. … There is also a VA Smalltalk port on VAStGoodies.com which does work on Windows and Linux.

Smalltalk inspect: a Smalltalk-Podcast from Germany (partly) in German

Marten, Sebastian and I just released episode 1 of our brand new Smalltalk-podcast named Smalltalk inspect. You can download it here, and we hope to soon be listed on iTunes.

Our idea behind the podcast is to collect information on what is going on in Europe and especially in and around Germany in the world of Smalltalk programming, be it in academia, industry or open source. So we want to try and help heat up the Smalltalk scene in our area, not that we think it really is too cold, but it can always use more interest and help. So you can help make it a success by listening, commenting and recommending ūüėČ

We will try a mix between German and English spoken episodes (if our French was a little better, we’d consider french as well… sorry!). When we discuss Smalltalk-related news or particular projects with German speaking people, we’ll speak German, but since there is a lot of interesting stuff going on in non-German speaking countries, there’ll also be English spoken episodes. We’re still trying to figure out how we could make it easy for you to see what language an episode is in..

Episode 1 is more of an introduction of ourselves and to what we plan to do. We plan to interview people who do interesting projects in Smalltalk and cover interesting Smalltalk-related events.

We’d like to get as much feedback as possible, look for ideas on what to talk about or who to talk to, and, of course also ideas on what we need to change for making Smalltalk Inspect a success. If you have any feedback, here’s how you can reach us. Feel free to add comments to our podcast-related blog or to Marten’s or my blog here.

One of our regular topics will be upcoming and past Smalltalk-related events, so that our listeners know what is and has been going on in the Smalltalk world.

If you plan a Smalltalk-related event or would like to report how it was and what happened, please send us a note or let us interview you.

Smalltalk inspect: der erste deutschsprachige Podcast zum Thema Smalltalk

So, nach einer etwas spannenden Zeit voller Geheimniskrämerei und geschäftigen Übens ist es so weit: die Erste Episode von Smalltalk Inspect ist online.

Was hat das zu bedeuten?

Marten, Sebastian und ich haben uns gedacht, es wäre an der Zeit, das Thema Smalltalk in Europa und vor allem im deutschsprachigen Raum aufzugreifen und einen monatlich erscheinenden Podcast zu veröffentlichen.

Unser Ziel ist es, aufzuzeigen, was so alles in der Smalltalk-Welt passiert, und uns dabei auf unser n√§heres Umfeld zu spezialisieren. Neben so genannten Stammtisch-Episoden, in denen wir drei uns gezielt Themen aus der Smalltalk-Welt vornehmen und diskutieren, sollen auch Interviews mit Vertretern von Bildungseinrichtungen, Open Source – Projekten und aus der Industrie gef√ľhrt werden.

Nat√ľrlich sind wir auf Feedback und Anregungen gespannt und angewiesen. Gerne nehmen wir auch mal jemanden in unseren Stammtisch auf, um zu diskutieren.

Nun aber die wichtigste Frage: wo findet man den Podcast?

Unsere Adresse ist smalltalkinspect.podspot.de, und wir werden hoffentlich bald auch auf iTunes erscheinen.

Wenn Euch / Ihnen die erste Episode gef√§llt, freuen wir uns √ľber Empfehlungen, Blog-posts, Tweets und so weiter. Wenn nicht, √ľber Feedback, was noch fehlt oder was wir besser machen k√∂nnen.

Managing non-Smalltalk artefacts in Envy

Most Smalltalk projects, just like any other, consist of much, much more than simply the source code you write. There are icons, images, sounds, ini-files, xml files and many more. Some of these are text based, some are binary.

A modern project needs a mix of tools to edit all these file types. And, of course, if you (and you do) have to keep track of versions and configurations of your deliverables, you need to store them and keep track of changes in them.

Envy is a really powerful and cool tool for managing Smalltak code (in fact, it has proven to also be the same for Java in IBM’s VisualAge for Java), but it also is a bit different from many other version control and configuration management systems, in that it is not file based, but uses a far finer-grained model of classes and methods.

So it is very good in keeping versions of Smalltalk (or Java, or theoratically any class bases language’s) source code, but it falls a bit short in managing other artefacts.

In my talk at the VA Smalltak Forum 2010 (“Get your project back in shape – how a few techniques can change your (project’s) life“) I’ve discussed two options for using the envy library manager to store non-smalltalk artefacts.

One is the possibility to

More

Here they go, good bye MeeGo!

For quite a while I’ve been fascinated by the idea of owning a Linux based smartphone, which I can log into using SSH and install software on it and such. And Maemo seemed to be the thing. Later the baby was joined with MobLin and renamed to MeeGo, and the fact that it was a joint effort of Intel and Nokia made it sound like a promising idea.

Today it is clear that Nokia is not going to invest in Meego any further. Nokia announced their strategic partnership with Microsoft, hammering the final nail into Meego’s coffin. The official version of my speculation, of course sounds better:

Under the new strategy, MeeGo becomes an open-source, mobile operating system project. MeeGo will place increased emphasis on longer-term market exploration of next-generation devices, platforms and user experiences. Nokia still plans to ship a MeeGo-related product later this year.

Which I translate to: “MeeGo is a playground for experiments and we will probably not completely stop working on this one first product in the pipeline that is almost done, but don’t expect much more.”

I (barely dare to) hope I am wrong.

So the smartphone market will be dominated by three dark forces: Apple, Google and Microsoft.

Not that the announcement is a surprise, it’s just a pity that there will be no open alternative, and I was hoping for one.

Zeichen…

…f√ľr den Untergang gibt es ja viele, und dass unsere Jugend auch nicht mehr das ist, was sie mal war, ist ja bekannt.

Aber dass jetzt die Senioren (oder zumindst einige davon) auch absolut durchgeknallt sind, k√∂nnte man angesichts der aktuellen “Debatte” (dazu wird ja alles, was mehr als ein Reporter aufschreibt, hochstilisiert) um Kinderl√§rm in Wohngebieten durchaus mutmassen:

Leonhard Kuckart hatte am Mittwoch erklärt, die Senioren-Union in der CDU spreche sich dagegen aus, den Bau von Kindertageseinrichtungen innerhalb von reinen Wohngebieten grundsätzlich zuzulassen.

Vielleicht m√ľssen wir die Republik wieder teilen in “alte” und “junge” Bundesl√§nder…

Angesichts solcher Diskussionen erscheint mir die Frage, ob wir mehr Kindertagesst√§tten, finanzielle Anreize f√ľr junge Eltern oder familienfreundlichere Arbeitszeitmodelle brauchen, hoffnungslos. Das Problem liegt in unserer Einstellung zum Thema Kinder.

Solange der dritt-Urlaub auf den Seychellen unverzichtbar und die kinderbelastete Familie nicht cabriotauglich ist, sieht es um die Finanzierung unserer Renten leider schlecht aus. An beidem können nämlich selbst 15 Euro Kindergeld monatlich mehr nicht viel ändern.

Bist du noch up-to-date in der IT?

Nur, wenn Du mit Sätzen wie diesem was anfangen kannst:

Daf√ľr propagiert Gamma die Open Services for Lifecycle Collaboration (OSLC), eine ma√ügeblich von IBM betriebene Spezifikation zur Interaktion von ALM-Werkzeugen (Application Lifecycle Management) mit Change-Management-Systemen. Daraus soll eine einfachere Werkzeugintegration unterschiedlicher Tool-Hersteller entstehen.

Eben. Und genau das habe ich mir schon immer gew√ľnscht ūüėČ

Das Zitat ist √ľbrigens ein Fundst√ľck aus einer Zusammenfassung der OOP-Konferenz auf heise developer.

A small but very helpful change in VAST 8.03: ScaledDecimal>>#printOn:

Looking into the Migration Guide of VA Smalltalk 8.0.3, I found one minor but very welcome change to the ScaledDecimal class:

ScaledDecimal>>#printOn: produced output that included the scale value (i.e., 23.1s3 printOn: aStream produced ’23.1s3’)

ScaledDecimal>>#printOn: was changed so that it no longer produces the scale value in its output (i.e., 23.1s3 printOn: aStream and 23.1s3 printString now both produce ’23.1’.

The old behaviour was very annoying, because you couldn’t use printString to just display a ScaledDecimal to your application’s users.

In the light of the fact that ScaledDecimal should always be the class to manage monetary amounts and percentages, this tiny change makes a big difference. No need to use #printOn:showDigits:pad: any more…

Use the Library Importer Tool to upgrade a VA Smalltalk Library

Now that VA Smalltalk 8.0.3 is out and ships with a few improvements and the first “production release 3.0.2” of the Web Framework Seaside, people may want to upgrade to this new version.

Installing the client is not really an issue, but what to do with your library? There are several options:

  • Perform a full install of the Library Manager along with a new library and import your existing code into the new Library.
    While this means you always have the latest emsrv version (which is not updated very often), it has some drawbacks, most important being that importing code from your old library into the new one means losing all open application and map editions, as well as method editions that never were part of a released class version. This last one is not so much an issue of risking important code, but sometimes having non-released editions of legacy code tells an important story.
  • Perform a full install of the Library Manager along with a new library and import the newer code from that back into your exiting library. This is the preferred option for many VAST pros, because you don’t lose any code, add the new code into the library and have the option of migrating your code whenever you want, even incrementally if needed. The problem with this is that the installation routine installs a new emsrv and accompanying executables. In a setting like we use it here in our offices, this doesn’t even work because the installation routine for the library manager is a GUI program, and our library server is a linux box without X windows.
  • Use the importer tool to import all new code from the new library into your existing library. This one is my favourite. You don’t have to (re)install¬† stuff you won’t need or reconfigure anything and you can update an existing library with a single command. The only installation needed is your VA Smalltalk client. Although the importer tool is covered in the Migration guide, the way I use it is not described in the documentation.

So how to use the importer tool without installing the VA ST Library Manager?

First of all, you need the importer tool called importer.exe. It is either on your machine if you ever had the VAST manager installed on your machine (¬†It’s not really important what version it is, anything starting with VisualAge 6.0 should be okay.), or you can find it in the manager installer directory after you’ve unzipped the va*_m*.zip.

Then you need a library manager with all the latest VAST release’s Smalltalk code in it. If you download and extract the manager, it is located in cd_m\manager\manager of the extracted .zip. You don’t even need to extract the whole archive, you can just extract this single file: cd_m\manager\manager\mgr80.dat. In order to save a lot of typing (and problems with entering dos paths with blanks in them), I usually extract the manager file into the vast\inst directory of the installed client.

All you need to do then is to start the importer:

.\importer.exe -z.target=192.xxx.xx.xxx::/path/to/existing/library -z.source=mgr80.dat

What the importer does is to import all newer Application Editions from the new library into your existing Library. It uses either file acces to the existing library or a running emsrv on the Library Server machine. So the importer doesn’t need access to the existing library at all.

If you don’t know where to find the target info, just look into the abt.ini of your development image. You’ll find the server name and path to the library in the EmLibraryInterface stanza:

[EmLibraryInterface]
; DefaultName: This is the full path (including the filename itself) of the
;              manager library. The path must be one reachable by the manager
;              server's file system.
; ServerAddress: This is the host name (or dotted address) of the server
;                machine that provides access to the manager library.
;                Leave this blank for FileI/O.
DefaultName=/raid.../mgr80.dat
ServerAddress=192.xxx.xx.xxx
OpenReadOnly=false

This will turn into the -z.target=192.xxx.xx.xxx::/raid.../mgr80.dat parameter

There is one weirdness of the importer tool on windows. For paths including blank spaces like “C:\Program Files”, you cannot quote the path, but you need to enter the path in this weird dos notation like “C:\Progra~1\…”. Just in case you have no idea how to convert a path into that notation (like it was the case for me): you simply use the first six letters of the directory name and append “~1”.

Luckily, since our library server is a Linux machine and the path on it doesn’t contain blanks, I didn’t have that problem,

Once you’ve done that, you can install the new development client from the vast803_cw (or _cl on Linux) zipfile and enjoy the new vast version.

You can find more information on the importer tool in the VA Smalltalk Migration Guide, Chapter “Migration Tools”, Section “Manager Import Tool”.