. .

smalltalk

STIC 2011 Calls for Student Volunteers

November 10, 2011 7:25:43.535

Want a free ride in return for a bit of work?

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.

Technorati Tags:

posted by James Robertson

 Share Tweet This

js4u

JS 4U 106: JQuery detach()

November 10, 2011 8:40:52.792

Javascript 4 U

Today's Javascript 4 You looks at the detach() function in JQuery. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.

Join the Facebook Group to discuss the tutorials. You can view the archives here.

To watch now, click on the image below:

detach()

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:

Technorati Tags: , ,

Enclosures:
[js4u106-iPhone.m4v ( Size: 2631822 )]

posted by James Robertson

 Share Tweet This

smalltalk

Cincom Changes Release Strategies

November 10, 2011 15:31:42.628

Spotted in [|] Less is More

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.

Technorati Tags:

posted by James Robertson

 Share Tweet This

st4u

ST 4U 157: Loading GLorpDBX into Pharo

November 11, 2011 7:09:45.755

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:

Glorp

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:

Technorati Tags: , ,

Enclosures:
[st4u157-iPhone.m4v ( Size: 1825011 )]

posted by James Robertson

 Share Tweet This

skyrim

Thu'umcast Episode 1: Hand Me That Golden Claw

November 11, 2011 23:39:55.673

Thu'umcast

Welcome to episode 1 of "Thu'umcast" - a podcast where Michael Lucas-Smith, Scott Dirk, Austin healy, Makahlua and I document our trials and tribulations in Elder Scrolls V: Skyrim

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.

You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. We'll add the iTunes specific links as soon as they are available. In the meantime, join the Facebook Group and follow us on Twitter. If you play on Steam, join the Steam Group. Like the music? Pay Sbeast a visit, we thank him for letting us use it!

Links to all episodes and other information can be found on the Thu'umcast page

.

If you want to download the podcast directly, we've provided it in three formats:

Got feedback? Tweet us!. Enjoy the podcast, and we'll see you in Skyrim!

Technorati Tags: , ,

Enclosures:
[thuum1.mp3 ( Size: 13144074 )]

posted by James Robertson

 Share Tweet This

skyrimAAC

Thu'umcast Episode 1: Hand Me That Golden Claw

November 11, 2011 23:40:30.923

Thu'umcast

Welcome to episode 1 of "Thu'umcast" - a podcast where Michael Lucas-Smith, Scott Dirk, Austin healy, Makahlua and I document our trials and tribulations in Elder Scrolls V: Skyrim

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.

You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. We'll add the iTunes specific links as soon as they are available. In the meantime, join the Facebook Group and follow us on Twitter. If you play on Steam, join the Steam Group. Like the music? Pay Sbeast a visit, we thank him for letting us use it!

Links to all episodes and other information can be found on the Thu'umcast page

.

If you want to download the podcast directly, we've provided it in three formats:

Got feedback? Tweet us!. Enjoy the podcast, and we'll see you in Skyrim!

Technorati Tags: ,

Enclosures:
[thuum1.m4a ( Size: 18000455 )]

posted by James Robertson

 Share Tweet This

games

Thu'umcast Errata

November 12, 2011 14:12:00.425

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!

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

podcast

IM 54: DALI at ESUG 2011

November 13, 2011 19:21:41.513

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.

If you like the music we use, please visit Josh Woodward's site. We use the song Troublemaker for our intro/outro music. I'm sure he'd appreciate your support!

If you have feedback, send it to jarober@gmail.com - or visit us on Facebook - you can subscribe in iTunes using this iTunes enabled feed.. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!

Technorati Tags: ,

Enclosures:
[im54.mp3 ( Size: 11515013 )]

posted by James Robertson

 Share Tweet This

podcastAAC

IM 54: DALI at ESUG 2011 (AAC)

November 13, 2011 19:22:17.343

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.

If you like the music we use, please visit Josh Woodward's site. We use the song Troublemaker for our intro/outro music. I'm sure he'd appreciate your support!

If you have feedback, send it to jarober@gmail.com - or visit us on Facebook - you can subscribe in iTunes using this iTunes enabled feed.. If you enjoy the podcast, pass the word - we would love to have more people hear about Smalltalk!

Technorati Tags: , ,

Enclosures:
[im54.m4a ( Size: 15925677 )]

posted by James Robertson

 Share Tweet This

st4u

ST 4U 158: Getting Started with GLORP in VA

November 13, 2011 22:24:53.619

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:

First Glorp Use.

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.

To start doing queries, you need to login and get things set up:


"login"
login := Login new.
	database: OracleODBCPlatform new;
	username: username;
	password: password;
	connectString: 'orcl11g';
	yourself.

"login and logout"
accessor := DatabaseAccessor forLogin: login.


Next, use the basic API, #basicExecuteSQLString:


"simple query using basic database facilities"
result := accessor basicExecuteSQLString: 'select 1 + 1 from dual'.
result next first.

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:

Basic Query

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.

Need more help? There's a screencast for other topics like this which you may want to watch. Questions? Try the "Chat with James" Google gadget over in the sidebar.

Technorati Tags: , ,

Enclosures:
[st4u158-iPhone.m4v ( Size: 3459116 )]

posted by James Robertson

 Share Tweet This

smalltalk

Pharo 1.3 Ships

November 14, 2011 20:52:27.601

Spotted in Planet Squeak

We are proud to announce the release of 1.3 of Pharo. This new release is the result of active development from the community and it is composed of:
  • Cleaning architectural dependencies
  • More cleanups directed by applying code critics on the system
  • Support for server and headless images. Pharo niw has a support for stdin, stdout and stderr.
  • More robust and better startup/shutdown
  • Improved look and feel
  • Better widgets
  • Improved tools
  • Weak Announcements
  • Stratified Proxy
  • More class comments
  • Network improvements based on Zinc

Follow the link for more details.

Technorati Tags:

posted by James Robertson

 Share Tweet This

skyrim

Thu'umcast Episode 2: Don't Kill Your Follower

November 14, 2011 23:43:38.836

Thu'umcast

Welcome to episode 2 of "Thu'umcast" - a podcast where Michael Lucas-Smith, Scott Dirk, Austin healy, Makahlua and I document our trials and tribulations in Elder Scrolls V: Skyrim

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.

You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. We'll add the iTunes specific links as soon as they are available. In the meantime, join the Facebook Group and follow us on Twitter. If you play on Steam, join the Steam Group. Like the music? Pay Sbeast a visit, we thank him for letting us use it!

Links to all episodes and other information can be found on the Thu'umcast page

.

If you want to download the podcast directly, we've provided it in three formats:

Got feedback? Tweet us!. Enjoy the podcast, and we'll see you in Skyrim!

Technorati Tags: , ,

Enclosures:
[thuum2.mp3 ( Size: 11958579 )]

posted by James Robertson

 Share Tweet This

skyrimAAC

Thu'umcast Episode 2: Don't Kill Your Follower (AAC)

November 14, 2011 23:44:21.346

Thu'umcast

Welcome to episode 2 of "Thu'umcast" - a podcast where Michael Lucas-Smith, Scott Dirk, Austin healy, Makahlua and I document our trials and tribulations in Elder Scrolls V: Skyrim

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.

You can subscribe in iTunes (or any podcatcher) using this feed, or this one for the AAC edition. We'll add the iTunes specific links as soon as they are available. In the meantime, join the Facebook Group and follow us on Twitter. If you play on Steam, join the Steam Group. Like the music? Pay Sbeast a visit, we thank him for letting us use it!

Links to all episodes and other information can be found on the Thu'umcast page

.

If you want to download the podcast directly, we've provided it in three formats:

Got feedback? Tweet us!. Enjoy the podcast, and we'll see you in Skyrim!

Technorati Tags: , ,

Enclosures:
[thuum2.m4a ( Size: 16378789 )]

posted by James Robertson

 Share Tweet This

js4u

JS 4U 107: The delay() function in JQuery

November 15, 2011 8:26:39.737

Javascript 4 U

Today's Javascript 4 You looks at the delay() function in JQuery. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.

Join the Facebook Group to discuss the tutorials. You can view the archives here.

To watch now, click on the image below:

delay()

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:

Technorati Tags: , ,

Enclosures:
[js4u107-iPhone.m4v ( Size: 2038162 )]

posted by James Robertson

 Share Tweet This

smalltalk

GemStone/S 64 3.0.1 is Shipping

November 15, 2011 19:55:06.197

Spotted in (gem)Stone Soup

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.

Follow the links for lots more details

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

st4u

ST 4U 159: Setting up a GLORP Descriptor

November 16, 2011 8:28:51.650

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:

Glorp Descriptors.

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 set up the basics for using Glorp to interact with tables in a database. To start with, we'll need to set up a descriptor class:


DescriptorSystem subclass: #EmpSystem
    instanceVariableNames: ''
    classVariableNames: ''
    poolDictionaries: ''

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:


tableForEMP: aTable 
	aTable createFieldNamed: 'first_name' type: (platform varChar: 50).
	aTable createFieldNamed: 'last_name' type: (platform varChar: 50).

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:


allTableNames
	^#('EMP')

Next, we need to give the mappings a bit more fleshing out:


descriptorForEmp: aDescriptor
	| table |
	table := self tableNamed: 'EMP'.
	aDescriptor table: table.
	(aDescriptor newMapping: DirectMapping) 
		from: #firstName
		to: (table fieldNamed: 'first_name').
	(aDescriptor newMapping: DirectMapping) 
		from: #lastName
		to: (table fieldNamed: 'last_name')

That's how we map column names to variable names; here we are using direct mapping. There are other mapping methods, but we'll leave that for another day. For now, we need two more methods:


constructAllClasses
	^(super constructAllClasses)
	add: Emp;
	yourself


classModelForEMP: aClassModel
	aClassModel newAttributeNamed: #firstName.
	aClassModel newAttributeNamed: #lastName.


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


"login"
accessor := DatabaseAccessor forLogin: login.
accessor login.

"create a session"
session := GlorpSession new.
session system: (EmpSystem forPlatform: login database).
session accessor: accessor.

"see the SQL in Transcript"
session accessor logging: true.

"now create the table"
session inTransactionDo:
[session system allTables do: 
	[:each | 
		accessor 
		createTable: each 
	ifError: [:error |Transcript show: error messageText]]].
	
	
accessor logout

How do we know that worked? We'll pop up SQLPlus (an Oracle tool) and have a look:

sqlplus"

That wraps it up for today - we'll get to inserts, updates, queries, and deletes soon.

Need more help? There's a screencast for other topics like this which you may want to watch. Questions? Try the "Chat with James" Google gadget over in the sidebar.

Technorati Tags: , ,

Enclosures:
[st4u159-iPhone.m4v ( Size: 6030894 )]

posted by James Robertson

 Share Tweet This

games

Stuck in the Labyrinth

November 16, 2011 14:39:40.000

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

Most engaging game ever, by the way - listen to our podcast, and go buy it!

Technorati Tags:

posted by James Robertson

 Share Tweet This

smalltalk

MagLev 1.0 Ships

November 16, 2011 17:00:00.000

Gemstone (VMWare) has shipped MagLev 1.0 - as reported by InfoQ:

MagLev 1.0 has been released: MagLev is a Ruby VM built on GemStone/S, a 64 bit Smalltalk VM. But MagLev is much more than a Ruby VM, it comes with a mature NoSQL data store, from the website:

MagLev VM takes full advantage of GemStone/S JIT to native code performance, distributed shared cache, fully ACID transactions, and enterprise class NoSQL data management capabilities to provide a robust and durable programming platform. It can transparently manage a much larger amount (terabytes) of data and code than will fit in memory.

posted by James Robertson

 Share Tweet This

js4u

JS 4U 108: The stop() function in JQuery

November 17, 2011 8:25:05.772

Javascript 4 U

Today's Javascript 4 You looks at the stop() function in JQuery. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube.

Join the Facebook Group to discuss the tutorials. You can view the archives here.

To watch now, click on the image below:

stop()

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:

Technorati Tags: , ,

Enclosures:
[js4u108-iPhone.m4v ( Size: 1689862 )]

posted by James Robertson

 Share Tweet This