. .

podcasting

Podcast Later

April 2, 2011 17:55:33.516

The podcast will be out on Monday instead of Sunday this week - I'm taking my daughter on college visits, and I just don't have time to get it edited this weekend.

posted by James Robertson

 Share Tweet This

travel

On the Road, Weekend Edition

April 1, 2011 23:57:35.347

Even though it's the weekend, I'm on the road - it's time for the kid to start visiting colleges. That means a road trip instead of a good night's sleep for me :)

posted by James Robertson

 Share Tweet This

management

Get Big, Get Stupid

April 1, 2011 12:21:16.000

You can always tell when company gets too big - it starts having internal wars that bleed out into public. Witness the internal enemies that the webspam team at Google seems to be making....

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

st4u

ST 4U 64: Starting a Seaside Server in Squeak

April 1, 2011 6:32:37.149

Today's Smalltalk 4 You looks at starting the Seaside server up in a Squeak 41 image after having loaded it from scratch. 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:

Seaside in Squeak

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:
[st4u64-iPhone.m4v ( Size: 2426343 )]

posted by James Robertson

 Share Tweet This

smalltalk

Mariano Martinez Peck Joins the Fray

April 1, 2011 6:14:44.539

Mariano has started blogging - with the large number of projects he's contributing to, I'm sure that he'll have a lot to say.

posted by James Robertson

 Share Tweet This

js4u

JS 4U 43: JQuery Syntax 2

March 31, 2011 8:23:57.434

Javascript 4 U

Today's Javascript 4 You. Today we continue looking at the basic API (syntax, if you will) of the JQuery library - with an example. 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:

JQuery Syntax

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:
[js4u43-iPhone.m4v ( Size: 1766241 )]

posted by James Robertson

 Share Tweet This

smalltalk

Highlight Your Smalltalk Posts

March 30, 2011 21:34:18.824

I'll have to look into using this: a Smalltalk syntax highlighter in Javascript, suitable for making nicer code posts.

Technorati Tags:

posted by James Robertson

 Share Tweet This

gadgets

Not Getting It

March 30, 2011 14:07:02.000

I think Dell's head of marketing doesn't really grasp the tablet space. While saying that the iPad "isn't ready for business", he explained:

“An iPad with a keyboard, a mouse and a case [means] you’ll be at $1500 or $1600; that’s double of what you’re paying," he claimed. "That’s not feasible.”

There are so many things wrong with that. First off, you don't need a mouse at all; that's the whole point of the touch interface. You navigate these devices differently. That's mostly true for keyboards as well, although, if you do decide on a keyboard, the rollup travel kind you would get is around $30. The case is also in that ballpark. Where he gets "double the cost" is beyond me; maybe he drank too much Australian beer.

What this tells me is that Dell sees tablets the same way that Microsoft does - as smaller PC's. That's not what they are at all, and seeing them that way is why Microsoft - which got into the tablet space very early - made no headway at all. If Dell looks at them that way, expect their entries to fail with a loud thud as well.

Technorati Tags: , ,

posted by James Robertson

 Share Tweet This

st4u

ST 4U 63: Load Seaside into a Base Squeak Image

March 30, 2011 8:12:03.106

Today's Smalltalk 4 You looks at loading Seaside into a base Squeak image using Metacello configurations. 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:

Seaside in Squeak

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:
[st4u63-iPhone.m4v ( Size: 5176822 )]

posted by James Robertson

 Share Tweet This

smalltalk

Automated Bundle Builds

March 29, 2011 15:00:00.000

I've been working on build automation tools for a bit, and this week I started taking a look at one of the more manually intensive parts of the process: putting together the master bundle that will be used for the build itself.

The way things work here, individual developers don't publish bundles - they push individual packages based on the work that needs to get done. We have a person who creates builds, and the first task he has is to create the latest master bundle (for a given branch of development) from the packages that have been published. That's a fair amount of manual labor at present, so I took a look at it.

The biggest hurdle (at least in VW 7.6 - maybe later revs are better, I never delved into Store that deeply even when I was at Cincom) is the actual publishing. Normally, publishing a package or bundle requires a dialog (either PublishPackageDialog or PublishPundleDialog). You fill that in (or let it default) and off it goes. Once I gathered the things that needed publishing, I wanted to have that kick off without the UI. Let's back up a bit and take a look at the steps: first, finding newer versions of published packages within a bundle. To get there, I start with something like this:

 

bundleDef := BundleDef 
	bundleNamed: 'TestBundle'
	version: '1.2'
	versionMatchString: '1.*'
	baseComment: 'Testing build automation'
	

"get all the contained packages, all the way down"
bundleDef allContainedPackagesAndBundles.

 

What that does is find all the packages that make up a bundle (including sub-bundles) by recursively asking Store for that data -like so:

 

allContainedPackagesAndBundlesFor: aBundle
	"answer a collection of all the packages I have, regardless of bundles in the middle"

	| items  |
	items := aBundle containedItems.
	items do: [:each |
		each isBundle
			ifTrue: [self allContainedPackagesAndBundlesFor: each.
					containedBundles add: each]
			ifFalse: [containedPackages add: each]].

 

That gets kicked off by this API point in my code:

 

bundleDef allContainedPackagesAndBundles.

 

Then I update all the contained packages:

 

bundleDef updateAllPackages.

 

That requires some store internals work:

 

updateAllPackages
	"iterate over the packages and update them"

	containedPackages do: [:each |
		| all newerMatch |
		all := Store.Package allVersionsWithName: each name newerThan: each.
		newerMatch := all 
                   detect: [:each1 | versionFragment match: each1 version] 
                   ifNone: [nil].
		newerMatch 
			ifNotNil: [Transcript show: 'Updating: ', each name; cr.
						newerMatch loadSrc]].

 

That's the easy part. The harder part is publishing the dirty bundles, from bottom to top - you need to create an instance of PublishPundleDialog, stuff it with the right data, initialize aspects of it, and then tell it to publish. The outer method for that looks like this:

 

publish: aBundle
	"publish the bundle"
	
	| dlg |
	dlg := self createPublishDialogDataFor: aBundle.
	self setBundleCommentsFrom: dlg for: aBundle.
	dlg newGlobalState.
	 [ dlg publishFromUserData ] 
		on: Store.DbRegistry errorSignals 
		do: [ :exp | Transcript show: 'Publish of: ', aBundle name, ' FAILED'; cr.
					exp return ].

 

The excitement is in #createPublishDialogDataFor: - which involves all the initialization of the dialog without displaying it:

 

createPublishDialogDataFor: imageBundle
	"store expects a publish dialog; create one, stuff data in, return it"
	
	| comment dlg userData fileData storeBundle |
	dlg := Store.PublishPundleDialog new.
	dlg items.
	dlg files.
	dlg blessingLevel value: 20.
	storeBundle := containedBundles detect: [:each | each name = imageBundle name].
	comment := self getVersionStringForBundle: storeBundle.
	dlg blessingComment value: comment.
	userData := Store.PublishPundleDialog publishSpecsFrom: imageBundle.
	fileData := Store.PublishPundleDialog publishFileSpecsFrom: imageBundle.
	dlg items list: userData.
	dlg files list: fileData.
	^dlg

 

The interesting part here is the dichotomy between the store bundle and the image (unpublished) one. You need to line those up, and use both as appropriate. Once you fill all the data in though, it'spretty easy. I customized the outer level API for my object so as to allow for a base comment in addition to the automated one I toss in. That'sit though - a whole lot simpler than I feared it would be. I'll probably extract this code and publish it to the public store - I think it might be generally useful. What would be even more useful would be Cincom engineering creating some actual domain objects so as to make it easier to do this without screwing around with undisplayed UI classes.

posted by James Robertson

 Share Tweet This

smalltalk

Tom Koschate Starts Blogging

March 29, 2011 13:57:44.000

Long time Smalltalker Tom Koschate has started a new blog up, and the first post looks at his Smalltalk work.

posted by James Robertson

 Share Tweet This

js4u

JS 4U 42: JQuery Syntax

March 29, 2011 7:51:04.187

Javascript 4 U

Today's Javascript 4 You. Today we start looking at the basic API (syntax, if you will) of the JQuery library. 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:

JQuery Syntax

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:
[js4u42-iPhone.m4v ( Size: 2354299 )]

posted by James Robertson

 Share Tweet This

management

The Times Needs a Clue

March 28, 2011 20:50:25.032

It's no wonder the NY Times has been having financial difficulties - what kind of idiots spend this kind of money on a paywall?

The New York-based company is spending $40 million to $50 million on the project and has said it plans to debut it by March.

That's just... weird.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This

smalltalk

Fun With Builds

March 28, 2011 13:00:00.000

Doing builds always yields a few surprises. THis weekend, I was asked to fill in and do a build, because the guy who normally does them wasn't available. No problem, I thought - I've built the tooling we use, after all.

Well - it's always something. Unbeknownst to me, there was a small configuration script that was still being used as part of the process that I didn't know about - so my build didn't account for that. I addressed that when I got into work this morning - no sense leaving a manual piece in the process that could easily be automated.

It's always something :)

posted by James Robertson

 Share Tweet This

st4u

ST 4U 62: Starting the Seaside Server in Pharo

March 28, 2011 8:25:16.055

Today's Smalltalk 4 You looks at running an image you saved after starting up a "one click" pharo image. Previously, we built a Seaside image for Pharo from scratch. Today we look at starting up the Seaside server in that image. 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:

Seaside in Pharo

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:
[st4u62-iPhone.m4v ( Size: 2437490 )]

posted by James Robertson

 Share Tweet This

Macintosh

Time Machine and OS X Upgrades

March 27, 2011 23:59:00.025

Funny thing happened when I let my Macbook update itself to 10.6.7 - I think Time Machine was running when that started - and when the machine rebooted, the backup drive was corrupted. The data was still readable, but it wouldn't mount with write capability. The archives (it was only a few weeks worth) didn't matter that much to me, so I just reformatted and started over.

Now, I don't know that it was Time Machine - it's not like I looked. But I can't think of any other reason that the drive would have gotten into a bad state, unless it had a huge problem - and the fact that it's still quiet and reformatted cleanly seems to indicate otherwise....

posted by James Robertson

 Share Tweet This

podcastAAC

IM 23: Smalltalk and Objective-C (AAC)

March 27, 2011 9:43:20.905

Welcome to episode 23 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. This week's podcast was recorded at Smalltalk Solutions 2011 with Michale Lucas-Smith and John McINtosh, after his keynote address. We spoke about the differences between Smalltalk development and Objective C (XCode) development). The podcast is a bit noisy - we recorded in a hallway while a lot was going on.

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:
[im23.m4a ( Size: 9796541 )]

posted by James Robertson

 Share Tweet This

podcast

IM 23: Smalltalk and Objective-C

March 27, 2011 9:43:05.755

Welcome to episode 23 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. This week's podcast was recorded at Smalltalk Solutions 2011 with Michale Lucas-Smith and John McINtosh, after his keynote address. We spoke about the differences between Smalltalk development and Objective C (XCode) development). The podcast is a bit noisy - we recorded in a hallway while a lot was going on.

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:
[im23.mp3 ( Size: 7104143 )]

posted by James Robertson

 Share Tweet This

news

Turn on the Lights

March 26, 2011 16:25:11.398

To celebrate Earth Hour, I intend to turn on my lights - because celebrating the emergence from darkness makes a lot more sense than the idea behind it does.

posted by James Robertson

 Share Tweet This