Hapao is an innovative test coverage tool, implemented in the Pharo Smalltalk programming language. It employs an effective and intuitive graphical representa- tion to visually assess the quality of the coverage.

You find a lot of quirks when you try to automate your Smalltalk builds. Some of them are related to your project, and others are in the system itself. With the way VisualWorks is built now, it's easy (in theory) to unload packages you don't need at runtime. For instance, here's the code I use to pull the entire Debugger bundle:

Seems easy enough, right? Do the same for the rest of the tools, including the UIPainter, and you get a smaller runtime where you know exactly what got pulled out and why (as opposed to the somewhat arcane process that the RTP uses). This is where I ran into some problems though - in package Debugger-UI, there's a postUnloadBlock:

[
Notifier beDevelopment]

I think that's an artifact from when VW had its own debugger, and the PDP was an add on - unload it, and it restored the base behavior. Now, when you try to unload the debugger, that fires and immediately blows up. It seems like something that could be easily fixed; I tossed this code into my build script:

And... no effect. I scratched my head over that one for a bit, then finally decided it was easier to just dynamically recompile the offending method (Notifier>>beDevelopment) than it was to keep pounding sand. That's a problem with the base system (VW 7.6). Then there are issues at the project level.

As part of the system here, there are two overrides to classes in UIPainter. Ideally, they would be in a development package instead of the master bundle, but right now, that's not my call. I'd still like to be able to unload UIPainter, so how do I get there? Simple - yank the overrides in the script, then remove the painter. I had to debug my way through the browser doing an override removal to find this code:

That restores the base behavior, removing the overrides from the master bundle (which are only needed during development) - and thus allowing UIPainter to be cleanly removed. That was almost all the interesting issues, but I ran across one more.

Yesterday, I did a test build with a colleague. The runtime looked good, but it threw an MNU - something that surprised me - the whole point of avoiding the RTP was to get more predictability, right? Well, it turns out that the RTP scan can cause you grief, but it's also smart enough to spot things you might miss. In this case, I missed this: we use HotDraw, which happens to live in the Refactory namespace. Where is that namespace defined? In the RB bundle. What's one of the things I'm removing? The RB. The fix is pretty simple here. Instead of yanking the entire RB bundle, I just yank all of the packages in the bundle except for the one that defines the needed namespace.

At least so far as I know now, that looks like all the issues - my little build tool produces a runtime, and it doesn't look like anything we need is missing. I'd be curious to know what similar issues other people have run into though - the ones I detailed above weren't always easy to spot, and who knows - I may well be missing something else :)

Welcome to episode 14 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. This week Michael and I talk about build systems for Smalltalk applications - something I've been working on in my new job.

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 14 of Independent Misinterpretations - a Smalltalk and dynamic language oriented podcast with James Robertson, Michael Lucas-Smith, and David Buck. This week Michael and I talk about build systems for Smalltalk applications - something I've been working on in my new job.

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 takes a first look at Morphic Halos - from the user's perspective (where the user is a developer).. 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.

This strikes me as peculiar. The idea seems to be that if you want to use the NYT iPad app at all, that’ll cost you a hefty $240 per year, over and above the cost of the iPad itself. But if you want to read the nytimes.com website on your iPad, that’s probably free — and even if you’re in the minority of power users, it’ll still be less than half the price of the app. Essentially, the NYT is doing everything it can to drive its iPad-owning readers away from the app and towards the built-in browser.

Exactly - what would possess me to try their iPad app under this deal? Why not just stick with the website? If they want to attract me to a pay model (where the website is free until I cross a threshold), then they need to make it more attractive, not less.

This looks like the result of an internal political battle that the iPad backers at the Times lost. They get their app, but in a "guaranteed to lose" fashion. The website side will then point and laugh, and not lose any of their budget.

The biggest problem with 3D, though, is the "convergence/focus" issue. A couple of the other issues -- darkness and "smallness" -- are at least theoretically solvable. But the deeper problem is that the audience must focus their eyes at the plane of the screen -- say it is 80 feet away. This is constant no matter what.

...

We can do this. 3D films would not work if we couldn't. But it is like tapping your head and rubbing your stomach at the same time, difficult. So the "CPU" of our perceptual brain has to work extra hard, which is why after 20 minutes or so many people get headaches. They are doing something that 600 million years of evolution never prepared them for. This is a deep problem, which no amount of technical tweaking can fix.

Read the whole thing, which has a lot of detail I left out. Bottom line - it sounds like 3D is an expensive gimmick that most people simply can't adapt to, through no fault of their own...

the last two days we worked hard with Marcus to incorporate this new stuff into image, and now we're done. All images past #13021 now have non interactive ui manager (NonInteractiveUIManager). We fixed almost all broken tests caused by introducing it (there are only few minor ones left).

The open source solutions are getting more and more reasonable - the commercial vendors are not going to be able to sit back and relax...

The AJP server adaptor for Seaside has been updated. The biggest difference is a new backend that should result in better performance when serving byte arrays from the image. Note that this is not an HTTP adaptor, you need an Apache frontend.

Since most people (myself included!) use Apache with their Smalltalk websites, this is welcome news.