Swallow Update
The image rendering issues on Linux/Mac were fairly simple - I should have a build for those platforms uploaded this evening, or tomorrow morning at the latest. If you're interested in other platforms, just take the Linux download (when I push it up), and use the appropriate VM from the NC download. Since that's a fairly large download, let me know if that's onerous - I can supply others on the site if demand warrants it.
Technorati Tags: smalltalk
Twitter a Buy?
Steve Rubel thinks that Twitter will be sold soon - and he thinks Facebook may be one of the suitors.
Mac Wonkiness
It's not just Windows that has wonkiness - my Mac has less, but it can be very strange. For instance: I have a USB iMic which provides a line in/out. I use that to record podcasts on the Mac, and I also use it on Windows when I record audio for "Smalltalk Daily". Here's the weird part: sometimes, when I unplug the iMic from the USB hub on the Mac, the Mac decides "whoops, not only is there no iMic, there's no external Maxtor drive". Since that's where all the iTunes stuff lives, it's very annoying. The solution is to unhook the USB cable to the drive (generating an error message), and then hooking it back up.
Smalltalk Daily 4/6/07: Threaded API Calls
On today's Smalltalk Daily, we take a look at making threaded API calls using DLLCC - i.e., making a C level call that will not block the VM.
Signs of clues in the music industry
Looks like the chinks in the DRM armor are opening up: EMI did a deal with Apple for non-DRM'd music, and it looks like the same deal will go to MS:
Microsoft has hinted that it may be close to reaching a deal with EMI to sell songs without anti-piracy protection via its Zune platform.
We've had unprotected digital music for eons now - the CD. All this does is move the industry away from the unreality zone they desperately wanted to live in.
Slothful and Dumb
Like many large companies living off past glories, MS is starting to lose track of their customer base - consider Walter Mossberg's observations about his new Vista machine:
I also was shocked at how long this machine took to restart and to do a cold start after being completely shut down. Restarting took over three minutes, and a cold start took more than two minutes. That suggests the computer is loading a bunch of stuff I neither know about nor want. By contrast, a brand new Apple MacBook laptop, under the same test conditions, restarted in 34 seconds and did a cold start in 29 seconds.
Over time, this has always happened to a Windows machine - but now it seems that MS is allowing the "bit rot" to set in before you even get the machine. My Mac Mini, a 2 year old G4, boots almost instantly. The XP notebook I'm working on right now? It takes minutes to shut down, never mind restart - and even once the desktop shows up, there are scads of things firing off in the background.
I suspect that MS is closer than anyone thinks to the same brick wall that IBM slammed into back in the early 90's. It won't kill MS, anymore than the wall killed IBM - but it's going to hurt a lot, and cost them a lot of influence.
Update: Scoble notes that this is an unintended side effect of the various governmental attempts to "help" consumers with the MS "monopoly".
Build Out 2.0
Nick Carr spots where the real money is going for Web 2.0 - infrastructure:
The 470,000-square-foot data center is the first of an expected six centers that Microsoft will build on the Quincy site, a former bean field. The facility will ultimately encompass 1.5 million square feet of server-packed space. Nearby, Yahoo, Intuit, and Ask.com are also building big computing centers to power their online services. The attraction of the area is cheap power:
High-tech companies come here for the nation's cheapest hydroelectric power rates, thanks to Grant County's two enormous dams, which pump out power as cheap as 1.5 cents per kilowatt-hour, said Tim Snead, the city's administrator. That compares with a national industrial rate of 9 cents. The data centers gobble up 40-plus megawatts of electricity each.
That power consumption represents real money being spent.
Technorati Tags: infrastructure
Squeak at StS 2007
The Squeakers are hosting a booth at StS 2007:
Toronto, Canada - 2 April, 2007. Continuing the tradition started in Karlsruhe, the Squeak community will host another trade show booth at the Smalltalk Solutions Conference 30, April through 2, May in Toronto, Ontario. The booth will demonstrate Squeak and a variety of Squeak products such as Seaside, eToys, and Morphic. We encourage all to visit (Booth #627) and experience the power of Squeak today.
StS 2007 Daily: The Coding Contest
There's a coding contest again this year, run by Andres Valloud (the newest member of our VM team here at Cincom). Here's the summary:
Phase 2 of the Smalltalk Solutions Coding Competition will take place onsite at IT360 - Smalltalk Solutions 2007.RM 201F Prizes include: 1st prize: iPod Video 2nd prize: iPod Nano 3rd prize: iPod Shuffle Each of the finalists will also receive an individual membership to the STIC (Smalltalk Industry Council)
Show up to see how they do - I'll be blogging this again, and possibly podcasting from the room!
Technorati Tags: smalltalk
Getting Announcements
Back when Vassili first started talking about Announcements, I really didn't see the point - I had just switched BottomFeeder over from change/update to Trigger Events, and those seemed sufficient. Now that I've been working with Widgetry (Swallow), I see what the advantage is. Consider a trigger event that notifies you of a keyboard event:
Subscribing:
someObject when: #keyboardEvent send: keyboardEvent: to: self
This depends on the triggering object sending an argument along:
kbdHandler triggerEvent: #keyboardEvent with: keyboardEventObject
Which is fine, except for one thing - the object being sent is sent more or less simply by convention, and the triggering object has to send it along. Now consider the way an Announcement works:
Subscribing:
(self paneAt: #input) inputField when: KeystrokeAboutToBeProcessed send: #possibleCREvent: to: self.
What do I expect to see as the argument? An instance of the KeystrokeAboutToBeProcessed class - so instead of pushing symbols around, we push full objects around. This particular one is sent like this:
targetPane announce: (KeystrokeAboutToBeProcessed keyboardEvent: aKeyboardEvent)
The nice thing is, we've moved "up" a level from symbols to objects. None of that was clear to me back when I read about it - it's like an "aha moment" all over again.
Technorati Tags: smalltalk
Swallow
We've got our first cut of Swallow up now - check out the website. There's a zip file to download (it's just a one file installation right now). We expect Mac and Linux support to follow soon.
Smalltalk Daily 4/5/07: Authenticated HTTP
On today's Smalltalk Daily, we take a look at dealing with HTTP servers that require authentication - whether that means Basic or Digest. We also look at Proxy server support.
Technorati Tags: smalltalk
You say Tomato...
Basically Web pages will no longer be just pages, or posts. They’ll all be split up into little objects, stored in a database (a massive, scalable one at that) and then your words can be displayed in different ways. Imagine a really awesome search engine that could bring back much much more granular stuff than Google can today. Or, heck, imagine you could view my blog by posts with most inbound links.
This is in reference to Radar Networks, which is apparently in stealth mode (yawn). Here's the thing though: unless I misunderstand the above, I see two problems:
- All kinds of possible copyright questions, depending on what (and how much) gets cached
- The "meta-search" objection that Jason Calacanis brings up
I'd be curious to know how those things will get resolved, or why they aren't actually problems.
Technorati Tags: semantic-web
StS 2007 Daily: Scrum Methodology
After the Ruby for Smalltalkers tutorial, Joseph Pelrine keeps things moving with "The Scrum Methodology":
Agile software development methodologies, XP being the most known one, are becoming more and more accepted. They take the different nature of software seriously and help in delivering usable software to the needs of the customer on time and on budget. At the same time minimizing risks. Scrum is an iterative, incremental process for developing any product or managing any work, a proven and successful project management methodology that fits nicely with agile processes - especially XP. We will show and explain the underlying principles. report from real life projects, and answer your questions about Scrum.
See you in Toronto!
Technorati Tags: smalltalk
Smalltalk Central Relaunch
Smalltalk Central has re-launched - and the feed technology behind it comes out of BottomFeeder :)
Jackbooted Thugs of Freedom
Chris Petrilli coins a great phrase (see the title) in his post about online behavior:
Take, for example, “freedom of speech,” which has been a hallmark of the American experience for many years. There are some who, mistakenly, believe that it is an absolute right, without limit, and without restriction. It is not. One is not allowed to say things that specifically endanger other people’s lives, such as yelling “fire” in a crowded room. Additionally, one can not conflate the right to say something with the right to be heard. I might wish to say irrational and crazy things -- and often do -- but that does not require anyone around me to provide support, whether in the form of monetary commitments, or even a forum.
That's the point I've been trying to get across, with a few prominent people - like Scoble - just not getting it (see his update, near the bottom of the post). With freedom comes responsibility - and ceding the latter will not lead to more of the former. Quite the opposite, actually.
Technorati Tags: accountability, speech
Smalltalk Daily 4/4/07: Customizing Object Display
On today's Smalltalk Daily, we look at customizing the way an object shows itself in a GUI widget, such as a listbox or dataset (grid).
Technorati Tags: smalltalk
StS 2007 Daily: Ruby For Smalltalkers
Monday at StS 2007 opens up with a three hour tutorial from Chad Fowler: Ruby for Smalltalkers:
Since its introduction in 2004, Ruby on Rails continues to make waves in the web development world. Released in a storm of hype, the Rails framework has drawn acclaim and criticism---from hero worship to FUD-laden negativity. Claims of Rails' 10x productivity increase were met with both skepticism and seemingly religious fanaticism. Love it or hate it, Rails has cast an industry-visible light on the dynamic language world Not surprisingly, Ruby on Rails is written in Ruby. Ruby borrows heavily from Smalltalk. Therefore, Smalltalkers have a serious advantage when approaching Ruby on Rails for the first time. This tutorial will exploit that advantage, presenting an overview of the Ruby on Rails framework from the perspective of someone who already understands the power of a real Object Oriented language and the many idioms which Ruby has borrowed from Smalltalk. You'll leave this fast-paced tutorial with the tools and understanding to use and explore Rails on your own.
See you in Toronto!
Register for Smalltalk Solutions 2007
In case you missed it, registration for Smalltalk Solutions 2007 is now live - head on over here to register for the conference. Note: If you go to the STIC site and sign up as a STIC site and sign up as a member, you'll get a 25% discount. There's a lot of great content - check out the schedule of talks and tutorials.
Technorati Tags: smalltalk
Getting Smalltalk
Ramon Leon makes a good point about learning Smalltalk:
Edward was lucky, he had a Smalltalker handy to show him the ropes, few have that opportunity. I’m still amazed by how many people think they can grok Smalltalk by seeing syntax examples. Smalltalk isn’t its syntax, it’s its environment. Smalltalk is a living world of running objects, there are no files, no applications, just what’s running. To understand Smalltalk, you have to either actually use it for a while, or have a seasoned Smalltalker demonstrate it to you. Reading sample code just won’t cut it.
While I can't guarantee a person at your shoulder, I can point out our free download, and the Smalltalk Daily screencasts to help you get started.
Keeps those votes coming :)
Hey, this is cool - as I write this, the "Industry Misinterpretations" podcast ranks 33rd in the Technology section of Podcast Alley. That's really cool:

If you like the podcast, head on over and throw a vote or review our way.
Technorati Tags: smalltalk
Weekly Log Analysis: 3/31/07
Travel has thrown my schedule off again - I forgot the logs report. BottomFeeder downloads went at a respectable clip last week: 268/day:
| Platform | BottomFeeder Downloads |
| Windows | 543 |
| Update | 256 |
| Mac X | 164 |
| Linux x86 | 150 |
| Solaris | 112 |
| CE ARM | 100 |
| Mac 8/9 | 86 |
| Windows98/ME | 74 |
| HPUX | 72 |
| Linux Sparc | 63 |
| Sources | 63 |
| AIX | 62 |
| SGI | 52 |
| Linux PPC | 51 |
| ADUX | 23 |
| CE x86 | 4 |
Up next: The HTML page accesses:
| Tool | Percentage of Accesses |
| Mozilla | 47.7% |
| Internet Explorer | 41.2% |
| Other | 2.3% |
| MSN Bot | 3.9% |
| MSRBOT | 2.6% |
| Opera | 2.3% |
Opera keeps sneaking up - let's have a look at the Syndication Numbers:
| Tool | Percentage of Accesses |
| Internet Explorer | 34.9% |
| Mozilla | 17.1% |
| BottomFeeder | 12.6% |
| Other | 4.5% |
| BlogLines | 5.3% |
| Net News Wire | 4.4% |
| Google Feed Fetcher | 4.1% |
| Safari RSS | 2.7% |
| Vienna | 2.6% |
| NewsGator | 1.8% |
| Feeds on Feeds | 1.6% |
| Akregator | 1.4% |
| RSS Bandit | 1% |
| Python | 1% |
| News Fire | 1% |
| MSN Bot | 1% |
| JetBrains | 1% |
| Jakarta | 1% |
| SharpReader | 1% |
The Technorati View of the web
David Sifry has more details than you'll need :)
Technorati Tags: blogosphere
Building a Widgetry Based Runtime
In building a Widgetry based runtime (the Twitter client that Michael and I have been working on), I've learned a couple of things that you'll run into. Mind you, these are transient issues that will go away as engineering deals with them (they'll be addressed as Widgetry moves into production) - but if you're out on the leading edge, here they are:
- When using the RTP to prepare your GUI app, for "Action on last window close", don't set "Shutdown image" - instead, set "Continue Processing". Then set up your own quit behavior
- Specify a custom NoWindowBlock - otherwise, when you open Widgetry based dialog boxes, you'll be in for a nasty surprise
The problem in both cases is that RTP currently makes assumptions about the kinds of Windows you have open, and doesn't "see" Widgetry based Windows. So in case (1) above, your image will quit as you start it. Very annoying :)
In case (2), dialogs prompt the NoWindowBlock as they close, which again, sees "no windows" and offers to open the launcher or quit - not what you want. I used this in my build script:
WindowManager noWindowBlock: [:mgr | true].
Not sophisticated, but it gets the job done for my little application.
Smalltalk Daily 4/3/07: Customizing Inspected Objects
On today's Smalltalk Daily, we take a look at customizing the "print" behavior of objects - meaning, how they display themselves in an Inspector.
Technorati Tags: smalltalk
Cincom Smalltalk Release: Imminent
We are just about ready for the next release of Cincom Smalltalk: VisualWorks 7.5, ObjectStudio 7.1.2, and a beta of ObjectStudio 8 - ObjectStudio 8 will be going out in the summer. The release has been delayed, mostly due to some issues with the Mac VM. Good news on that front though: due to some hard work by our VM team: John Sarkela, Andres Valloud, Sean Glazier, and Peter Hatch, it looks like the major issues have been solved. You can expect to see the release shipping before Smalltalk Solutions (which starts on April 30).
Technorati Tags: Cincom, smalltalk, VisualWorks, ObjectStudio
The Twitter Fix is in!
I've posted the update - new posts hitting the Silt server will now also add an update to my Twitter stream (my screen name there is "jarober" if you want to add me). We are fairly close to releasing an 0.1 of the Swallow client for Twitter - Michael is constructing a website. It's all coming together :)
Unimpressive Security Response
Chris Petrilli is unimpressed with Microsoft's ability to issue security updates in a timely fashion
Technorati Tags: Windows
Twitter and Blog
I have the patches ready to roll in, but don't have time to do that right now. Later tonight though: every time I push a new post up, a Twitter update will roll. Anyone on the server with a Twitter account will be able to do the same thing, if they want to go to settings and add the Twitter account info.
Technorati Tags: Twitter
Progress, along with exasperation
Scoble notes the joint statement from Kathy Sierra and Chris Locke - which is a very positive thing to my way of thinking. While they disagree about some things (who doesn't?), it looks like they understand each other now. That's all to the good, but this (below) from Scoble just drives me nuts:
One thing, though, that I won’t support: more rules or laws or, even, more “guidelines.” I value my freedom of speech. This is not a “theory” for me. My mom grew up in Nazi Germany where free speech wasn’t allowed. My wife grew up in Iran, where free speech still isn’t allowed. You’re definitely not allowed to attack the government in Iran, even today
Asking people to treat each other with dignity is not a call for governmental censorship. Being judgmental about bad acts and bad actors is not an attempt to shut down free speech, any more than indicting someone for a stampede following a false cry of "fire" in a theater is. I wish more people understood that, instead of having the utterly bizarre belief that we must have tolerance for everything and anything. We don't. Guidelines are a good thing - manners are nothing more than guidelines, for instance. Shall we rid ourselves of those, too, in the name of "more freedom"?
Technorati Tags: speech
Smalltalk Daily Delay
There will be a delay in getting Smalltalk Daily out today - I have a bunch of house cleaning to get done - we have a bunch of guests coming in soon. So, peruse the backlog :)
Technorati Tags: smalltalk
DRM Down?
This story from ArsTechnica - if it holds up - is very encouraging:
EMI will announce on Monday that it will be freeing much of its catalog from the shackles of DRM. The Wall Street Journal, citing "people familiar with the matter," reports (sub. required) that Apple CEO Steve Jobs will be present at the announcement in London and that the music will be sold through the iTunes Store and possibly other online outlets.
If that happens, it'll be the first big nail in the coffin of DRM. I fully expect a lot of wailing and gnashing of teeth before we get to the end, but this is a good sign.
Technorati Tags: music
Being Responsible
Tim Bray gives an excellent rundown on responsibility as it relates to website content - some people would do well to read it. Possibly over and over again, until they actually understand it.
Along those lines, I read Tim O'Reilly's outline of a blogger's code of conduct - I'm utterly baffled as to how anyone could object to it. It really boils down to the rules most of us learned in kindergarten.
Technorati Tags: behavior
Strings of broken-ness
Here's a question Jason Calacanis could have asked Evan: "Blogger is about 75% splogs, and Odeo has major problems with keeping track of valid feeds. Should we expect Twitter to be any different, and if so, why?"
Evan discusses the details of the Web's latest love affair with Twitter , and also shares many interesting insights into his former projects - Blogger and Odeo .
1491: Just how many Indians were there?
The section on Amazonia is particularly interesting - the "Stone Age" tribes that we thought had been living in a "state of nature" since time immemorial may instead have been remnant populations - cast "back in time" via catastrophic population loss in the wake of the various European diseases - diseases they had no resistance to.
Anyway, it's a great book - I highly recommend it.
Technorati Tags: history, Pre-Columbian
The Smalltalk Desktop
Well, this is cool - many of my desktop applications are now Cincom Smalltalk Apps:

BottomFeeder for syndication, TypeLess for IRC, and Swallow for Twitter. It's all good :)
Technorati Tags: desktop
April Fool's Day
A few years ago, some of the April Fool's day posts were inventive enough to be funny. Now? It just all seems so forced.
Swallow Approaches a Release
I might be able to do a test build of Swallow today - it's looking pretty nice now that Michael has pushed the new multi-line edit control out to all the tabs. Here's a look:
A real release is at least 1-2 weeks away. We are building this in VW 7.5, which will be released before the end of this month.
Free Speech vs. Incitement to Riot
Scoble - and I have to admit, many other people - are utterly, utterly confused about freedom of speech:
I was going to not blog until Monday, but I saw something today that just has to be blogged about. Seriously, on Monday I’ll be on CNN with Kathy Sierra and Chris Locke talking about this week’s events. I spoke against more rules or other infringments on our freedom of speech. No matter how vile or disgusting that speech is. That said, I reserve my right to take a week off to point out the rotten strawberries sitting on our meme shelf.
There is no requirement to defend vile speech, nor is there a problem with individuals condemning vile speech. The only thing to worry about is when government tries to restrict your speech - and mind you, incitement to violence isn't protected as free speech, either. It's not a restriction on your freedom when your ideas get attacked by other people - and it most certainly is not a restriction on your freedom when you get condemned for out of bounds behavior.
Look at it like this: if the crap aimed at Kathy Sierra had been done in person, would you be defending it? If not, why are you defending the same thing done online behind a mask of anonymity?
Learning Widgetry as we go
One of the nice things about the Swallow (Twitter client) project that Michael and I have been working on is the fact that we decided to make it a Widgetry (Pollock) project. I hadn't really worked in Widgetry before, so it's been a learning experience - especially the lack of a GUI builder :)
Still, it's gone pretty well. Here's one of the things that nicer in Widgetry than it was in Wrapper: keyboard handling. Say you have an input field, and you want to look for a specific character. In Wrapper, you had to install a keyboardHook block on the controller, and then write all the handling code in the block (or in methods called from the block. In Widgetry, we register to get an Announcement:
(self paneAt: #input) inputField when: KeystrokeAboutToBeProcessed send: #possibleCREvent: to: self.
The pane in question is a combo-box, so I first grabbed the input field and then waited for the Announcement (which is an actual object). Here's the handler:
possibleCREvent: announcement "if the key pressed is a CR, then send the message" | key | key := announcement keystroke key. key = Character cr ifTrue: [self sendStatusNow].
Which seems more straightforward to me than the old keyboard handler setup - for one thing, I don't need to remember whether to return the keyboard event or nil :). Anyhow, it's a nice little project, and a nice experiment.
Justifying the Unjustifiable
Dave Winer continues to demonstrate that he lacks a moral core. Here's a tip: Defending indefensible behavior is not a profile in courage.
The April Fool's Rush
April Fool's is starting early this year: go check out the early silliness from TechCrunch.
Industry Misinterpretations Episode 29: Feedback and Futures
I spoke to Dave Buck last week while I was at SPA 2007 - since I posted the separate conversation with Michael last week, I held this one until now. We discussed two things in the main:
- Some email feedback from our listeners
- What's coming up at Smalltalk Solutions - in particular, what Dave is presenting there
Next week, we'll be back with a show focusing on Smalltalk Solutions 2007, which we are all attending. We'll likely do a first ever "all in the same room" podcast from there.
Enclosures:
[http://www.cincomsmalltalk.com/audio/2007/industry_misinterpretations-03-31-07.mp3 ( Size: 12439709 )]
Inventing Problems
Vorlath is inventing "problems" with closures that I haven't seen. We've had closures in Smalltalk for a long while now, and the issues he's afraid of just don't seem to come up. Perhaps it's those curly brace languages, and not the closures.
What do you think?
I'm interested in some feedback from people - specifically, people who have dealt with Cincom (whether it was the Smalltalk group or not). I'd like you to tell me two things:
- What have you liked most about your interactions with Cincom?
- What have you liked least about your interactions with Cincom?
Those are wide open questions - the answers could be on any aspect of Cincom you've dealt with. Feel free to post comments here, or send me email. I won't post email comments unless you specifically ask me to.
Spring Is Really Here
Well, my plants seem to think so, anyway - I sure hope we don't get a late snow storm to prove me wrong :) My daughter took some close-ups of the bulbs flowering:



Smalltalk Daily 3/30/07: Ad-Hoc Polymorphism
On today's Smalltalk Daily, we take a look at one of the powerful features of Smalltalk's dynamic typing system: ad-hoc polymorphism.
Technorati Tags: smalltalk, polymorphism
Network Management in Smalltalk
IBM is looking for a Smalltalker (VisualWorks) to help build Proviso:
Join the team developing Proviso. Proviso is a highly distributed and scalable stream processing platform for collecting, processing and persisting large volumes of network performance data. Our largest customers manage many terabytes of network performance data. Proviso was recently acquired by IBM Tivoli as part of an initiative to expand its presence in the telecommunications industry and become the leading provider of network management software.
Looks like the slot in in Lowell, MA.
Technorati Tags: smalltalk
Smalltalk Tutorial Outputs
I should mention the "outputs" of the Smalltalk tutorial that I did last Sunday. The SPA conference (and Ot before it) has always been big on session outputs - the idea being that other people should be able to benefit even if they didn't/couldn't attend the session.
With that in mind, the tutorial page on the Wiki is here.
To summarize the summary :)
- Download Cincom Smalltalk non-commercial here
- Access the Smalltalk Daily screencasts in order
- Access the Smalltalk Daily screencasts by topic
- Subscribe to Smalltalk Daily in your news aggregator
Retro RSS
Engadget reports on a fascinating hardware mashup: a way to dump your RSS feed out as morse code - using a telegraph machine :)
WOOR 2007 Call for Papers
The 2007 WOOR event will be held in Berlin this summer, and they are calling for papers. Head on over here for information.


