The Smalltalk Industry Council is currently seeking student volunteers to help keep the 2012 Smalltalk Industry Conference running smoothly. In return, these volunteers will receive free accommodations, no conference fees and time to enjoy the majority of the conference. For those interested, past duties have included handling registration as people arrive at the conference, staffing coffee machines, running the microphone during question and answer periods, assisting with collecting presentation slides for STIC right after the presentation is given, assisting with photos or audio when needed, directing attendees to social events or the next exciting session, being present at an information desk to answer questions and generally being helpful. Student volunteering makes the conference better, takes a fairly small amount of time and doesn’t significantly interfere with enjoying or learning from the conference.

We heard our customers: This fall you will see service-pack maintenance releases for our Cincom Smalltalk products. This release is a true maintenance update as requested by Cincom Smalltalk customers. In future release cycles we plan to have one major release annually along with service-pack online releases at regular intervals. The service-pack releases will have refinements, fixes and updates to the major releases.

I think that's a good idea - and it also fits in well with how most of the rest of the industry operates. If the service packs are easy to add updates, it'll make projects like the one I'm on now much easier to keep in synch with Cincom releases.

Today's Smalltalk 4 You looks at loading GlorpDBX into Pharo - along with a small proble you hit (as of the time I recorded this, anywaY) when doing so. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

Today we talk about our launch day impressions - what we've done, where we've gone, and some of the glitches we've run into. So far, we like it a lot - the world is wide open, there's a lot to do, and - ost importantly - there are a lot of ways to get things done. Everyone got at least as far as Riverwood, and most of the crew got a lot further along than that.

If you liked our work on That Podcast, you'll probably like this. We intend to stay with the same idea - a gameplay podcast. If you don't want spoilers, don't listen - we are going to be talking about how we play the game, and what we ran across as we played.

Today we talk about our launch day impressions - what we've done, where we've gone, and some of the glitches we've run into. So far, we like it a lot - the world is wide open, there's a lot to do, and - ost importantly - there are a lot of ways to get things done. Everyone got at least as far as Riverwood, and most of the crew got a lot further along than that.

If you liked our work on That Podcast, you'll probably like this. We intend to stay with the same idea - a gameplay podcast. If you don't want spoilers, don't listen - we are going to be talking about how we play the game, and what we ran across as we played.

The iTunes feed may show episode 1 as being absurdly long; it's not. The actual duration is just over 36 minutes; when I posted the show, I managed to paste the file size (in bytes) into the show length field in my tool, and iTunes took that as a seconds count. I've since repaired the feed, but there's no telling when iTunes will notice. Sorry about that!

Welcome to episode 54 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.

This week we have another ESUG 2011 session - Johan Brichnau's talk on a dynamic abstraction layer for web apps. From his abstract:

Multiuser web applications often need to manage concurrent (and potentially conflicting) operations on shared data. The parallel processing of web requests and the disconnected client-side view on that shared data raise ample opportunities for users to make conflicting changes. When such conflicts arise, we may or we may not need to inform the user of the conflict. To this end, database transaction mechanisms are a performant and proven technology for detecting and managing conflicting changes. When each user's web session maintains its isolated view on the database and operations are wrapped in transactions, we are able to prevent, detect and handle all such conflicts. At the same time, however, such applications easily become dependent on a particular database's technical abilities. Even when only considering the object-oriented databases GOODS, Magma and Gemstone, the differences in how database views and transactions work are vast. For example, Magma supports nested transactions while GOODS does not. An even more important difference is that when using Magma and GOODS, we can maintain a separate database view per web session and rely on the transaction mechanism to handle all conflicts. In Gemstone's GLASS integration of Seaside, however, incoming requests always share the same database view. This means only parallel execution conflicts are trapped by the transaction mechanism. With DALi, a database abstraction layer, we build Seaside-based web applications that are database independent and rely on database transactions to manage inter-user application-level conflicts as well as parallel execution conflicts directly. DALi is currently implemented for Pharo Smalltalk (with GOODS, Magma or image-based backends) and GemStone GLASS.

You can subscribe to the podcast in iTunes (or any other podcatching software) using this feed directly or in iTunes with this one.

To listen now, you can either download the mp3 edition, or the AAC edition. The AAC edition comes with chapter markers. You can subscribe to either edition of the podcast directly in iTunes; just search for Smalltalk and look in the Podcast results. You can subscribe to the mp3 edition directly using this feed, or the AAC edition using this feed using any podcatching software. You can also download the podcast in ogg format.

Welcome to episode 54 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson and David Buck.

This week we have another ESUG 2011 session - Johan Brichnau's talk on a dynamic abstraction layer for web apps. From his abstract:

Multiuser web applications often need to manage concurrent (and potentially conflicting) operations on shared data. The parallel processing of web requests and the disconnected client-side view on that shared data raise ample opportunities for users to make conflicting changes. When such conflicts arise, we may or we may not need to inform the user of the conflict. To this end, database transaction mechanisms are a performant and proven technology for detecting and managing conflicting changes. When each user's web session maintains its isolated view on the database and operations are wrapped in transactions, we are able to prevent, detect and handle all such conflicts. At the same time, however, such applications easily become dependent on a particular database's technical abilities. Even when only considering the object-oriented databases GOODS, Magma and Gemstone, the differences in how database views and transactions work are vast. For example, Magma supports nested transactions while GOODS does not. An even more important difference is that when using Magma and GOODS, we can maintain a separate database view per web session and rely on the transaction mechanism to handle all conflicts. In Gemstone's GLASS integration of Seaside, however, incoming requests always share the same database view. This means only parallel execution conflicts are trapped by the transaction mechanism. With DALi, a database abstraction layer, we build Seaside-based web applications that are database independent and rely on database transactions to manage inter-user application-level conflicts as well as parallel execution conflicts directly. DALi is currently implemented for Pharo Smalltalk (with GOODS, Magma or image-based backends) and GemStone GLASS.

You can subscribe to the podcast in iTunes (or any other podcatching software) using this feed directly or in iTunes with this one.

To listen now, you can either download the mp3 edition, or the AAC edition. The AAC edition comes with chapter markers. You can subscribe to either edition of the podcast directly in iTunes; just search for Smalltalk and look in the Podcast results. You can subscribe to the mp3 edition directly using this feed, or the AAC edition using this feed using any podcatching software. You can also download the podcast in ogg format.

Today's Smalltalk 4 You starts making use of Glorp against Oracle with a simple query - about as simple a query as you can make, as it happens. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:

If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.

You can also watch it on YouTube:

Today we'll get started with using Glorp in VA Smalltalk with Oracle. We've already set up basic connectivity; today we'll have a look at one of the classes (DatabaseAccessor) that you'll end up using in VA Smalltalk.

That uses basic Oracle facilities to do the simple math problem. The more important thing from our perspective is the API: #basicExecuteSQLString:. We'll be using this, and other facilities of DatabaseAccessor over the next few screencasts. Once you execute and inspect that, you should see this:

Finally, logout:

"logout"
accessor logout.

Next time we'll start taking a real look at creating database descriptors, so that we can start interacting with tables using GLORP.

Today we talk about some of the quests we've been doing - centered loosely around the mage college quests out of Winterhold. A lot of other things came up, including the number of dragons we've slain, the skill/perk system, and some of the weirder random encounters we've had.

If you liked our work on That Podcast, you'll probably like this. We intend to stay with the same idea - a gameplay podcast. If you don't want spoilers, don't listen - we are going to be talking about how we play the game, and what we ran across as we played.

Today we talk about some of the quests we've been doing - centered loosely around the mage college quests out of Winterhold. A lot of other things came up, including the number of dragons we've slain, the skill/perk system, and some of the weirder random encounters we've had.

If you liked our work on That Podcast, you'll probably like this. We intend to stay with the same idea - a gameplay podcast. If you don't want spoilers, don't listen - we are going to be talking about how we play the game, and what we ran across as we played.

GemStone/S 64 3.0.1 was released on Monday of this week.GemStone/S 64 Bit 3.0.1 is a new version of the GemStone/S 64 Bit object server. This release provides feature enhancements and fixes a number of serious 3.0 bugs.

Today's Smalltalk 4 You starts working with Glorp descriptors - which is how you define mappings between objects and tables in Glorp.. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:

DescriptorSystem defines the basics for interacting with a database using Glorp; the subclass we are setting up will define the table mappings we want to use. Today we are going to define a simple mapping to a table (Emp), and then we are going to use Glorp to create that table in the database. There are a few methods we need to define, all instance side. To start with, we need a #tableForTABLENAMEHERE: method - note the caps, which will be replaced by actual name of the table:

This is the pattern you'll use to map Smalltalk objects (instance variables) to columns. We'll explain how the column names get mapped to instance variables below. You'll also need a method to define all the tables being mapped by this descriptor; it should return an array:

That's how most descriptors you create will look (with the specifics for the tables/classes filled in, of course). Now we can make use of this code to create the Emp table in the database (Oracle in this case):

I'm playing Skyrim on both my XBox and my Mac (using Parallels), so my progress in both games is running about the same - I can't play on the XBox while I'm in Texas, and I mostly play the XBox when I'm home. On the PC game, I've been doing the mage college quest, looking for the Staff of Magnus - and I've gotten to this room in Labyrinthian:

I spent about 20 minutes (at an absurdly late hour last night) staring at that room and at the map, trying to figure out where to go. I guess the name has meaning :)