BottomFeeder

New Development Build up

September 14, 2005 23:19:04.945

I've got the new development builds up - visit the BottomFeeder download page, and grab the appropriate build. If you already have it installed, just get the appropriate baseapp-*.zip file, and decompress it in the install directory. Remember to scroll down to the "dev" links first.

This is a candidate 4.0 build - if it holds up (I'm running it now), I'll formally release it shortly.

 Share Tweet This

rss

More feedback on Google Blog search

September 14, 2005 16:49:45.608

ThreadWatch has a good explanation of what the new Google search is, and what it isn't:

What it is, is feed search. On the surface there's not a greatly noticeable difference for many, but the difference is there, and it's quite profound once you understand why.
Many feed items are truncated, or otherwise edited - just snippets of the complete "on site" post. This of course means that you're not getting the full picture. You're getting a pretty good slice of that picture, but it's not complete, not by a long shot.

So does that give full text feeds an advantage? I would think it does. Given Google's dominance in the search space, this fact all by itself may change the dynamics on full/partial feeds. There's going to be a cross current - people and companies want traffic to come to the site (not least for the ads), thus driving the decision toward partial feed content. On the other hand, here's Google, effectively cutting those sites off at the knees in terms of search rank.

This should make things interesting, to say the least.

 Share Tweet This

BottomFeeder

BottomFeeder 4.0 - nearly ready

September 14, 2005 16:44:13.902

I think BottomFeeder 4.0 is just about done. Rich has been an immense help in the areas of bugs and consistency - the release will be a lot better due to his help. The docs should be arriving in my email soon, and then I'll do a putative build. If that runs ok for a few days, I'll push it out the door.

 Share Tweet This

development

Types, Refactoring, and Metadata

September 14, 2005 12:11:43.428

After the long winded discussion of refactoring here, Alan added some light to the heat over here. Today, Peter William Lount adds some more:

Those that think that types are not used in Smalltalk are not entirely correct, "types" are used, or more correctly the objects class meta information is available for use at runtime to perform any necessary and all possible 'type' operations at run-time (which includes almost all the compile time "type" possibilities). The object meta data available through the base Smalltalk language while the program is running is a much more powerful facility and provides capabilities not possible in staticly compiled typed systems such as C, Java, C++, C#, ... . These and other statically compiled typed language and systems strip away most if not all of the "type meta data" so that your program is a barren husk devoid of the richness that runtime meta data provides.

Read the whole thing.

 Share Tweet This

development

Sometimes, building is better

September 14, 2005 8:53:49.511

InfoWorld has a fascinating story on a build vs. buy scenario at a railroad:

Around this time we sent a few IT troopers down to KS to see what was going on. It was the last point the project could have been killed or redirected, so I checked in with my friend Michael, a savvy project-management contractor. He did an analysis comparing the functionality and cost of reinventing the system in house with modifying the business processes involved in the KS model; KS's business processes were very different from ours. Michael calculated that if we continued with the collaboration as planned the price would not be $30 million or even $60 million. It would be closer to $70 million. The cost of developing a new system from scratch -- one that would perform the same functions as the KS system and be properly designed for our business groups -- would only run about $45 million.

Of course, management refused to budge from the existing project, even as costs escalated. Once the numbers get "too big", politics comes into play - no one wants to be identified with a failure on a large scale, so an "all is well" attitude takes over.

The basic problem is the premise - that "buy" is always better than "build".Often it is - especially with commodity software. The trouble is spotting which parts of your businesses can't easily be handled by commodity software, and dealing with those. Many companies have wasted millions on ERP installations over this. Why? Because a pre-built ERP system will impose a set of rules on how operations will run. Those rules may well be fine, in the abstract. What they don't account for is the peculiar culture of your company. Ask yourself - as hard as it is to change software, is it actually easier to change corporate culture?

 Share Tweet This

itNews

The most important Office 12 question, unanswered

September 14, 2005 8:04:12.054

Scoble has a video interview up on the new Office 12 - as has been reported elsewhere, the UI is very different. I started out very skeptical on the "no menu" approach, but - as the video progressed - it looked better.

Having said that - my main usability issue with Word remains unanswered - will a bullet point go where I want it, rather than where Word wants it? That's the one thing that makes me despise the entire product.

 Share Tweet This

blog

Google Blog Search

September 14, 2005 7:53:14.054

Google has launched a blog specific search site - but where are the results in RSS or Atom?

Update: Scoble is marginally more upbeat on this. He also noticed what I missed - there are results in RSS and Atom at the bottom of the page, ready for subscription.

 Share Tweet This

BottomFeeder

Updated Dev builds and updates

September 13, 2005 20:35:42.041

I've put the dev stream update and a new dev build out for BottomFeeder. Now, a caveat - I had trouble using the update, so I created the fresh build. If you grab the update and run into problems, try restarting the app. If that doesn't address the problem, then download:

And unzip the file in the BottomFeeder directory. Delete all the files in the "app" subdirectory, and then restart.

Update: Grab the update to the BottomFeeder parcel, and then restart. It will all work fine after that.

 Share Tweet This

management

How many will be left standing?

September 13, 2005 19:22:38.435

This story notes that Delta and Northwest are about to head into Bankruptcy protection - while United and USAirways are still there. This begs the question - of the old line "major" carriers - United, American, Northwest, Delta, USAirways, Continental, how many will actually survive? Deregulation and airlines like Southwest have changed the rules in the airline business, and the surviving majors have adapted badly. I suspect that we'll see a lot of consolidation over the next 3 years - I wouldn't be at all surprised to see only 2-3 of the six I mentioned left standing after the dust settles.

 Share Tweet This

BottomFeeder

More Tab updates for Bf

September 13, 2005 12:57:16.147

I've got another dev stream update out for BottomFeeder (I'm talking about the online updates, not the full builds) with more tab enhancements. Rich pointed out that internal searches should really open into a tab, which makes sense - so now they do. He also pointed out numerous small inconsistencies in the menus, which are now corrected. It's getting closer to 4.0

Update: I pulled the update, due to some problems I noticed in the runtime with this update. Stay tuned.

 Share Tweet This

news

Where is this woman from?

September 13, 2005 10:20:24.891

This Salon article is about a college anthropology professor who felt so disconnected from her students that she went undercover to study them. She came to what I'd have to call "well, duh" conclusions:

There is an awful lot of conversation about nonacademic, nonpolitical, nonphilosophical things, but I saw something very interesting also. Anyone who said they did have a philosophical conversation might qualify it, like, "Yeah, we were really drunk that night, so we got into all this deep philosophical stuff," or "Yeah, sometimes I get into this dorky mood and then I talk about deep topics." When you hear that as an anthropologist, you think the students are responding to a criticism that isn't even being made, that is in their head.
What do you mean? What's the criticism?
Students don't like to sound like they're trying too hard. That's what I would see in the pre-class conversations. You know, "How'd you do?" "Pretty good. I got an A, but I barely studied." Or "I did well, but it's amazing, because I thought I totally bombed this." You have to seem like [success] is effortless, or like you haven't put a lot of work into it. And that becomes part of the culture. I think a lot of students want to have [more substantial conversations], but they don't feel comfortable doing so.

Where did she go to school in the first place, and what planet were she and her fellow students on at the time? The scenario she describes sounds an awful lot like my college years at SUNY Albany, 1980-1984. Politics came up rarely, no one wanted to look like they were working hard, there was a lot of partying - I rather suspect that schools have been like this for a long time (with varying levels of open-ness about it over time). Heck, even in the supposedly political 60's, I would bet good money that most students spent more time ogling girls (or boys) than they did protesting.

Maybe it's not so much that the students have changed - and more that the professor hung around with an out of the mainstream group in college - and thus defined that experience as the norm.

 Share Tweet This

management

Ebay and Skype

September 13, 2005 8:41:06.279

I haven't commented on the Ebay acquisition of Skype, because I haven't given it a lot of thought - I don't follow Ebay at all. And while I use Skype, it's not something I depend on. Here's my first thought on it though: Why?

Ebay does one thing - internet auctions. Exactly how is that related to a telecom offshoot like Skype? This smells like the all too common "money was burning a hole in management's pocket" problem. I saw a lot of that (on a much smaller scale) at ParcPlace-Digitalk - management went on a buying spree, mostly because they could. I see no synergy here - it's a buy into a business that's going to require focus and investment (there's going to be a lot of interaction with regulatory groups in the medium term - 911 service, etc, etc). Will Ebay want to invest that level of management focus? How exactly does it benefit them?

 Share Tweet This

itNews

Memeorandum aggregation

September 13, 2005 8:32:02.847

There's another automated aggregation service out there - memeorandum. Scoble was finally able to break the news as it launched - he was given early access, apparently. Right now it's doing aggregation in two areas:

I just subscribed to the tech news service in BottomFeeder, and I'll have to see how it works out. One thing that's going to limit my interest - the aggregated items are extracts, not full items. That makes sense, as ripping content from someone else's site via a robot is anti-social - but on the other hand, it means extra steps for me as an end user. I'll see what I think after a few weeks of usage.

 Share Tweet This

music

A new problem

September 13, 2005 8:08:59.076

Loose Wire spots a potential problem for the future in the (apparently botched) iTunes 5.0 update - the lack of music in a physical form. Many of us are buying songs online now, and - once the roipping of our existing collection is done - just not buying cd's anymore. Well, what about hard drive crashes, malware, and botched updates? Loose Wire comments:

This kind of thing scares me. It scares me because we don’t yet grasp how fragile our music collection has become. Before we had a pile of CDs we could always go back to if our tapes, MP3s or burned CDs gave up the ghost. Nowadays our music collection may be just in the form of MP3 files, and what happens to them if something goes wrong? What happens if MP3 software (or a system crash, a hard drive error, or a stray catheter) corrupts your files, your tags, or your authorisation and proof of purchase? At what point do we say, “forget this, I’m not going to pay for anything that doesn’t come in some physical form I can stash on a shelf”?

That's a good question. I doubt you'll see mass moves in that direction, but I do expect to start seeing curmudgeons.

 Share Tweet This

marketing

The Apple cool factor

September 13, 2005 7:59:45.748

Scoble reports on the coolness of the iPod nano - people at the MS PDC are buzzing about it. Apple's marketing is firing on all cylinders - the nano almost makes me wish I hadn't bought an iPod mini. Heck, I'm considering buying one anyway, and sliding the mini off to my daughter.

Back to Microsoft - there's nothing they make that inspires that kind of desire in the marketplace. I don't know if that's actually a problem - large market share and profits are kind of a reward all by themselves :)

 Share Tweet This

general

The horror

September 12, 2005 22:19:26.173

This is the sort of thinking that irritates me - in an article covering the increasing ability we have to customize what we watch and listen to, a researcher decries the personalization:

"I think that ends up creating a cultural divide among us, because we don't have as many common experiences. And when it comes to the news of the day, even the most important news, you can't assume that any of your friends or neighbors watched the newscast and know what it is," McCall said. "It means there's going to be less opportunity for generations to understand each other, and people to understand each other socioeconomically."

Translation: "It was a lot better when smarter people selected what you needed to see and hear". Yeah, that's what I want to go back to - a choice of three channels, whether I like them or not. Thanks, but no thanks.

 Share Tweet This

BottomFeeder

Lots of fixes

September 12, 2005 18:22:30.440

I've spent the day applying fixes and changes to a bunch of changes to various codebases. First, Rich continues to send me things that need fixing or enhancement - I've added a lot of stuff over the last few releases, and Rich has spotted various issues with the tools. That should make the release better.

I also added user settable styles to the blog pages today - you can click one of the available style links, and see which ones you like. Finally, there's apparently been a problem with the NC download app for a few days - I managed to not update a method at some point, and you couldn't progress from the login page to the downloads - very bad. That's fixed now - sorry about that.

But heck - I should look at the bright side - at least no one around here messed up the power connections, dropping 2 million people from the world of electricity (as happened in Los Angeles this afternoon).

 Share Tweet This

blog

User settable styles

September 12, 2005 13:38:49.567

The blogs have all been updated to support user settable styles - check the list of available ones on the link bar, and see which one you like!

 Share Tweet This

news

Too much transparency?

September 12, 2005 13:02:06.570

How to avoid tracks:

The Salt Lake Tribune publishes a tip for aspiring politicians from Utah Gov. Jon Huntsman (R): "I don't do e-mail because I think you can always be set up for an unfortunate incident if you spill your soul."
Instead of sending e-mail, Huntsman pens notecards. The article notes "the quaint practice of writing on notecards also apparently allows the governor to sidestep the state's open-records law. Requests to see some of his handwritten notes have been thwarted."

Now, translate that from the political to the business world via Sarbanes-Oxley - you think C level staff aren't looking for similar ways to thwart that? Sometimes, the desire to "see everything" actually results in seeing less. I'm not sure where the right balance point is, but I'm thinking that we may have drifted away from it.

 Share Tweet This

smalltalk

All closed off?

September 12, 2005 12:07:35.687

Well, this is certainly curious. Over on the Instantiations site, it looks like they've done away with the non-commercial download of VA. Have a look at the license agreement terms:

EVALUATION. Instantiations grants you a nonexclusive, nontransferable license to use the Software. You may 1) use the Software only for internal evaluation, testing or demonstration purposes, on a trial or "try-and-buy" basis and 2) make and install a reasonable number of copies of the Software in support of such use. The terms of this license apply to each copy you make. You will reproduce the copyright notice and any other legends of ownership on each copy, or partial copy, of the Software. You will 1) maintain a record of all copies of the Software and 2) ensure that anyone who uses the Software does so only for your authorized use and in compliance with the terms of this Agreement. This license begins with your first use of the Software and ends 1) as of the duration or date specified in the documentation accompanying the Software or 2) when the Software automatically disables itself. Unless Instantiations specifies in the documentation accompanying the Software that you may retain the Software (in which case, an additional charge may apply), you will destroy the Software and all copies made of it within ten days of when this license ends.

Time bombed evals, how very 1990's of them. I could be wrong about this; it's not completely clear to me whether the evals are time bombed or not (anyone there care to clarify?), or what the term is if they are. Time bombed evals are a really bad idea, which is why we don't use them. It takes time to evaluate something as large as a set of development and deployment tools - we've had more than one customer who's evaluation term lasted from the time of download until the point of deployment - at which time they bought an appropriate license from us.

If we had used time bombed evals, we would have lost those sales - there's no doubt about it. So, if you want to do a full evaluation of a professional Smalltalk environment, there's now only one place to go - here.

 Share Tweet This

gadgets

Small amounts of bliss

September 12, 2005 9:01:28.714

Ok, this will seem silly, but I was very pleased just now when I stumbled across a setting in iTunes and the iPod - the one that equalizes the output for all songs. The fact that songs from my older CD's were quieter than the ones from newer CD's and purchased music was driving me nuts :)

 Share Tweet This

examples

Customizing the tab widget

September 12, 2005 8:47:31.698

With the new tab support in BottomFeeder, I thought I should explain one of the customizations - the tab menus. As it happens, the tab widget in VisualWorks doesn't support menus out of the box. So how did I add them? Well, first off, I noticed that Typeless has tab menus (Typeless also ships as a BottomFeeder plugin, which is how I use it). So, I loaded TL from the Public Store and started having a look around. It turns out that Michael extended the widget in the most natural fashion, by creating a new controller subclass. Normally, the tab bar is managed by a class called TabControlBarController. So, first thing - he created this class:


Smalltalk.UI defineClass: #TabControlBarControllerWithMenu
	superclass: #{UI.TabControlBarController}
	indexedType: #none
	private: false
	instanceVariableNames: 'menuHolder performer owner mouseDownIndex '
	classInstanceVariableNames: ''
	imports: ''
	category: 'UIBasics-Controllers'

Then you have to modify the view class, so that it uses this controller (or, at the time you create the view, replace it. This code just replaces the default controller) - here's TabControlBarView>>defaultControllerClass:


defaultControllerClass
	^TabControlBarControllerWithMenu

That makes sure that we always get menu support when we create a tab widget - assuming that the new controller class is implemented properly. Here's what's going on there:

  • First, add some new instance variables to handle menus and the state required for them: menuHolder performer owner mouseDownIndex
  • implement #yellowButtonPressedEvent: so as to know when to pop the menu
  • implement all the other supporting methods

There's a small side story in the name of #yellowButtonPressedEvent: - back in the day, at Xerox PARC, the mouse actually had colored buttons - red, yellow, and blue. Those names still exist in the code for VW (and, I think, for Squeak). Anyway - the method:


yellowButtonPressedEvent: event 
	"we about to bring up a menu, unlock the event
	queue so that we can process expose events."
	| index |
	view numberOfElements = 0 ifTrue: [^self]. 
	index := self findElementFor: (self sensor cursorPointFor: event).
	(self owner respondsTo: #adjustTabbarMenuFor:) ifTrue:
		[self owner adjustTabbarMenuFor: index].

	self sensor windowSensor queueLocked: false.
	self processMenuAt: event globalPoint centered: true.
	^nil

The reference to #adjustTabbarMenuFor: is something I missed out of the gate. I had to implement that in my class, in order to ensure that the menus were set up correctly - it looks like this:

adjustTabbarMenuFor: anIndex 
	| tabModel sub tabbed menu |
	anIndex = 0 ifTrue: [^self].
	tabModel := self browserTabs at: anIndex.
	sub := self widgetAt: #feedID.
	tabbed := self getComponentFromSubcanvas: sub withID: #TwoflowerHTML1.
	menu := self class tabMenu.
	(tabbed widget tabBar component controller)
		menuHolder: (ValueHolder with: menu);
		performer: tabModel;
		owner: self.
	self checkTabMenuEnablement: menu

All of which does the following - make sure that a new tab has a menu, and that it's attached to that menu. As well, make sure that menu items are in the right enablement state. There's a few other setup methods, but you can see all of that by browsing the package RSSExtensions in the Public Store. The next important thing was setting the tabs up properly in my UI class. In my #postOpenWith: method (which fires after the UI opens, I added the following:


self presetTabs.
tab := self changedTab.
self setupTabMenu: tab

presetTabs
	| browserTab |
	browserTabs := OrderedCollection new.
	browserTab := RSSZoomItem new.
	browserTabs add: browserTab.
	self tabs list add: browserTab displayString.
	self tabs selectionIndex: 1.
	self setupEventHandlingForTab: browserTab

changedTab
	"changed to a new tab; adjust"

	| index  browserTab sub tabbed |
	index := self tabs selectionIndex max: 1.
	browserTab := self browserTabs at: index.
	sub := self widgetAt: #feedID.
	tabbed := self getComponentFromSubcanvas: sub withID: #TwoflowerHTML1.
	tabbed widget client: self htmlModel spec: #windowSpec builder: self builder.
	(browserTab feed isNil or: [browserTab feed isFake])
		ifFalse: [self focusOnItem: browserTab item].
	self tabs selectionIndex = 0
		ifTrue: [self tabs selectionIndex: 1].
	self setCurrentTabDetails.
	self setupHTMLPane.
	self setBrowserEvents.
	self restoreHistoryFrom: browserTab.
	^browserTab

setupTabMenu: aZoomItem
	| tabbed sub menu |
	sub := self widgetAt: #feedID.
	tabbed := self getComponentFromSubcanvas: sub withID: #TwoflowerHTML1.
	menu := self class tabMenu.
	(tabbed widget tabBar component controller)
		menuHolder: (ValueHolder with: menu);
		performer: aZoomItem;
		owner: self.
	self checkTabMenuEnablement: menu

Those three methods are the heart of the support. The first one sets the tabs up - with the proper domain model (in this case, an object that holds the selected feed, the selected item, and the history), and sets the current tab index. The second method, #changedTab, fires whenever a tab is selected. It ensures that the correct stuff gets displayed, and that state stays correct. The last one, #setupTabMenu: makes sure that menus are set up for selected tabs.

There's some infrastructure there - event handling, and some application specific stuff - but that's the gist of it. If you need help doing something like this, just send me an email.

 Share Tweet This

blog

Mucking with the style sheets

September 12, 2005 8:20:22.267

I think I like the "Fire" style best. I left the "Water" one up for a day, and just switched back to the "Fire" pattern now. Anyone have an opinion?

 Share Tweet This

development

Bad upgrade experiences

September 12, 2005 7:53:51.996

Believe it or not, Apple has them too. There is no silver bullet in the current platform choices out there.

 Share Tweet This

weather

Where in the world is Ophelia?

September 11, 2005 17:41:49.374

Every time I look at the storm track, it's different. Who the heck knows where this one is headed...

 Share Tweet This

usability

Spreading the abuse around

September 11, 2005 15:28:43.872

Just to be fair, minutes after my rant on the defects of Outlook, my Mac Mini locked up, hard. Victoria was playing SimCity 4, and then bam - screen blanked, the box disappeared from the list of attached devices at the router, and hitting the power button failed to get its attention. I had to pull the plug. Now, maybe it's a bad sign that in the registration list, OS X 10.4.2 wasn't listed (it stopped at 10.3.x). Still, a crash that hard is inexcusable - and something that I've seen pretty darn rarely on Windows XP (last time I got something that required the same level of restart was when I hand hacked the registry). Bah

Update: - looks like Aspyr is aware of the problems - there are downloadable patches available.

 Share Tweet This

BottomFeeder

New Development build for BottomFeeder up

September 11, 2005 15:13:36.103

If you go to the BottomFeeder download page, and then scroll down to the dev links, you'll have access to the latest build - pushed up just minutes ago. There's already an update available - it ties history to the tabs (as in Firefox). To get that, add 'dev' to the end of the update path in settings and then restart.

The 4.0 release is pretty close now - Rich has been good about finding inconsistencies and issues, and I've been fixing them as they come up. The doc is also progressing - the release should be soon.

 Share Tweet This

tv

BSG - What is the plan?

September 11, 2005 15:02:52.029

Panopticon expresses what's been in the back of my mind about BattleStar Galactica lately:

Since we’re just biding our time ‘til Serenity comes out in theaters, Andrea and I have continued to watch Battlestar Galactica even though we still think it’s only so-so. (Something that I’m sure YAG is going to bug me about when I get to the PDC.) Some episodes are pretty decent, but I still find myself annoyed by many of the characters (never a good sign) and bored in long stretches of some of the episodes. The core problem, to my mind, is that the writers are not particularly good at parcelling out the ongoing mystery very effectively. The X-Files did a superb job of this, in my mind, until about the sixth season when it became clear that Chris Carter was making up the mythology as he went along and had no clear idea where it was all going. I’m beginning to suspect this about BG as well — do the writers really know what the Cylon’s plans are, or are they throwing elements in as they go along? (Contrast this also with Harry Potter, where J.K. Rowling seems to have a very strong idea of how the whole story is going to play out. Much better.)

Well - the basic outlines of the Cylon ethos are out there, and it's clear to me that the series is being inspired by the current world situation - just as the original was. In the old series, the Cylons were stand-ins for the Soviets. Now, we have a religious conflict, where the Cylons are completely intolerant of any beliefs other than their own (shades of Stargate SG-1 and the Ori, which has also picked up this meme).

The question is, where do they want to go from here? In the old series, the humans were smarter and more agile than the Cylons. That's clearly not the case here - the Cylons seem to be faster, smarter, and far better organized. They also have more resources and larger numbers. Given all that, how the heck do Adama and company manage to survive? It's not at all clear to me.

Back to the Cylons - I suspect, like Panopticon, that the "plan" is like Chris Carter's plan - it's "out there", but pretty ill defined. I could be wrong - this could be like "Babylon 5", with a well defined path and endgame. That might work especially well for a series like this, since - if they ever found Earth - you pretty much have an endgame on your hands (or, at the very least, a very different series).

 Share Tweet This

usability

Lookout!

September 11, 2005 14:41:35.191

So my wife finally got all of her mail transferred from Outlook Express on the old machine, to Outlook on the new machine. Now, she's just trying to see if there's any way to make the UI not suck eggs. At the top of the Window (this is Outlook 2003), there's this large brown bar labelled "Inbox", and - for reasons that defy our understanding - a button kind of area that has something to do with drag/drop sorting of the columns (never mind that you can do this by clicking on a column header already, which is simpler).

There seems to be no way to get rid of that large area of wasted space at the top of the Outlook Window, and the toolbars (which you can dismiss) are just so much visual clutter. If I had any doubts about staying with Eudora, this vicarious experience with Outlook has removed them.

So why is this atrocity so widely used? Is an integrated calendar worth it? Whatever team in Redmond is responsible for the UI of this thing should hang their heads in shame. I'd relate my wife's comments on this, but I try to avoid that kind of language on this blog...

 Share Tweet This

history

Rememberence

September 11, 2005 11:44:20.286

Four years ago today was one of the darkest days I can remember - and today brings it back visually, as the sky outside my window is the same gorgeous, clear blue that we had that day. I'll remember 9/11 as long as I live - and the bravery of firemen like these will always come to mind:

NYC WTC Firemen Raise the Flag

 Share Tweet This

events

Smalltalk in Los Angeles

September 11, 2005 9:53:02.181

The LA Smalltalk User's Group is meeting tomorrow evening:

Speaker Simon Michael: Beginner's perspective on Smalltalk, 9/12/2005, 7:00 pm Los Angeles

Smalltalk User Group Meeting Monday, September 12, 2005

 Share Tweet This

management

On being a "Microsoft shop"

September 11, 2005 8:03:09.275

You'll sometimes go to an IT group and ask about support for Firefox, Safari (etc, etc) - and get the response that "we're a Microsoft shop". Typically infuriating, but you probably never thought of it as being dangerous - until now:

What is surprising, however, is the fact that the Federal Emergency Management Agency's (FEMA) online registration site for disaster help is Internet Explorer-only. While anyone can browse the site, users of non-IE browsers will find this message waiting for them when they attempt to register.
In order to use this site, you must have JavaScript Enabled and Internet Explorer version 6. Download it from Microsoft or call 1-800-621-FEMA (3362) to register.

With all of FEMA's other problems at the moment, I doubt that this one is high on the radar. On the other hand, would you want to be the IT manager who had to explain "we couldn't take donations from that large group there, because they insisted on using Macs" ?

Likewise, in a business situation, do you want to be the IT manager who has to explain the lost prospects - who were lost because your site turned them away with a message like the one above? I know I wouldn't.

Hat tip Jonathan Schwartz.

 Share Tweet This

events

Smalltalk in Omaha

September 10, 2005 22:38:17.784

Blaine has some cool news on the next user group meeting in his neck of the woods:

Hello everyone, This month we will be doing a two fisted meeting! First up, we will show the brilliant Avi Bryant Seaside demo from the Vancouver Lisp Meeting. Then, Sam Tesla has been kind enough to show us Ruby and Ruby On Rails. So, it's going to be a meeting not to be missed! Here's all of the details:

When: September 13, 2005, 7pm - 9pm

Where: Offices of Northern Natural Gas

1111 S 103rd Street

Omaha Nebraska 68154

Office is at 103rd & Pacific. Guests can park in the Northern visitors parking area back of building, or across the street at the mall. Enter in front door, we'll greet you at the door at 7:00pm. If you arrive a bit later, just tell the guard at the reception desk you're here for the Smalltalk user meeting in the 1st floor training room. -- Blaine Buxton, Mad Scientist In Training "You're as beautiful as your thoughts"-EW&F

Sounds like fun!

 Share Tweet This

customers

Pics from our Cargill meeting

September 10, 2005 18:17:11.015

Suzanne took some pictures while we were visiting Cargill last week - they have a great team there, and they've been a valued Cincom customer for 20 years now - so here are some shots of them and their facility. I should mention that the complex we visited (corporate center) is absolutely gorgeous. Suzanne said her first thought on seeing it was "I could live here" - until she remembered that it was Minnesota, and that meant snow in truckloads :) Anyway - here's the cake we presented at the meeting:

Cincom and Cargill Anniversary Cake

Next, here's a shot of us and some of the LYNX team at Cargill:

Cincom and Cargill Picture

Next, a shot of geese wandering the grounds. These geese had no fear of people or cars - they seem to have it made :)

Cargill Geese

And finally, a picture of a building that would have been nice to meet in. This was a residence for someone back in the 20's, and it's gorgeous. It's now part of the complex - apparently, they have retreats and such there:

Cargill Residence Facility

I appreciate all the folks at Cargill taking the time to meet with us - they're a great bunch!

 Share Tweet This

BottomFeeder

BottomFeeder with tabs

September 10, 2005 17:46:51.680

I thought it might be a good idea to show you what's coming in BottomFeeder 4.0 - here's a screenshot of the app with tabs open - you can click through for a bigger view:

BottomFeeder with Tabs

The smaller image is probably hard to see, but there are three tabs there, all with different content. I'm down to squashing UI layout issues and tab inconsistencies now - as soon as that's done, and doc's ready, it'll be a go. In the meantime, all this is available via the dev update stream for BottomFeeder.

 Share Tweet This

general

Whew!

September 10, 2005 17:04:12.411

I managed to survive being surrounded by a sea of girl scouts and moms this afternoon - maybe it was the lunch break :) Actually, it was a fun day, and Victoria had a great time - which is really all that matters.

 Share Tweet This

general

Surrounded by (small) girls

September 10, 2005 9:32:59.377

I'm heading off to chaperone a girl scout event - the Central Maryland cookie kickoff at the Howard County fairgrounds. What that means is that I'll be surrounded by a sea of girls aged 5-12 for the next few hours. If I survive that, I'll be back in the afternoon :)

 Share Tweet This

logs

Weekly logs, 9/10/05

September 10, 2005 1:56:46.686

It's the end of another week, and time for another glance at the logs. It looks like the time is ripe for BottomFeeder 4.0 to be released - there were over 1500 downloads per day last week. That's kind of amazing. Here are the details:

PlatformBottomFeeder Downloads
Windows8490
Mac 8/9494
HPUX437
Linux x86410
Sources311
Mac X299
Update100
CE ARM96
Windows98/ME34
Solaris23
Linux Sparc17
AIX14
SGI10
ADUX5
Linux PPC5
Source Script3
CE x861

That's a big wow - I had no idea that so many downloads were happening. The daily access numbers for the blog have been up, but those download numbers are way up. I better get that next release out. Here are the numbers for the html blog accesses:

ToolPercentage of Accesses
Mozilla50.1%
Internet Explorer32%
MSN Bot7.3%
Other4.6%
Google Bot4%
Opera1%
BottomFeeder1%

Seems MS got their bot settled down - it's still high, but not absurdly so. Mozilla's gone back over 50% as well. Opera's appeared on the list too - something I haven't seen much of. last, the accesses to the RSS feeds:

ToolPercentage of Accesses
Mozilla22%
BottomFeeder16%
Net News Wire12.3%
Other11%
Safari RSS5.4%
BlogSearch4.1%
Planet Smalltalk3.9%
NewsGator3.2%
BlogLines3.1%
Internet Explorer3%
SharpReader2.6%
Feed Demon2.3%
Magpie2.2%
RSS Bandit1.5%
Feed Reader1.4%
Feed Tagger1%
JetBrains1%
Liferea1%
Google Bot1%
News Fire1%
RSSReader1%

That's still a pretty diverse range of readers - although - again - it's noteworthy how well represented the Mac is in that list.

 Share Tweet This

smalltalk

Irony

September 9, 2005 22:50:46.215

There's some unintentional irony in the slide deck that Sam Ruby posted from his FOSSSL talk. The slides are interesting - it's clear to me that dynamic languages are finally getting noticed by the mainstream. The irony? The fact that, just as one part of IBM (where Sam works) is noticing that dynamic languages are the wave of the future, the part that actually had one on hand is dropping it.

 Share Tweet This

marketing

I'm doing marketing now?

September 9, 2005 21:05:19.165

Well, this is interesting - according to Technorati, this blog is number 62 on the list for information about marketing. I hadn't really thought of this blog in those terms, but I guess I bring the topic up often enough.

Now, before I get all puffed up, I need to remind myself of something important about search engine results: very few people even scroll down on the first page, much less bother going to the second (or later) page of results.

 Share Tweet This

security

The pool's not big enough

September 9, 2005 20:47:35.978

This slashdot story does indicate an overly broad sense of security in the Mac community, but it's not time to panic.

"The IT security manager of the University of Otago, New Zealand, has been educating his OS X users in security best-practices. According to Mark Borrie, many Mac users believe they were immune to security problems -- a trap many Mac fans seem to have fallen into. He said around 40 percent of the computers at the uni are Macs. "On the security side of things I reckon the Mac community has yet to wake up to security. They think they are immune and typically have this idea that they can do whatever they want on their Macintosh and run what they like," said Borrie. "If I can get our Mac users up to speed and say 'you are not immune' -- so when [the malware] hits, hopefully we will be pretty safe," he said. "We want to be ready for the first big Macintosh virus -- because it will come. Some day, somebody will say 'I am going to create a headline and write a virus for Mac'," said Borrie."

Well, say someone wrote a Mac virus. It's going to try and spread like Windows viruses do. Now, when a Windows virus hits, and tries to infect another system, the odds of hitting a Windows system are pretty good (simply given the large market penetration). Look at Macs, by comparison. Say my Mac gets infected, and immediately tries to infect the other machines on my LAN.

Oops - three Windows boxes, two ReplayTVs, and a Linux box. It's going to find similarly slim pickings (probably slimmer) as it looks outside my LAN. It's not that any given Mac couldn't get infected by malware - it could. It's that the liklihood of an outbreak are very slim.

 Share Tweet This

smalltalk

Why not Smalltalk?

September 9, 2005 20:38:12.063

Why not Smalltalk? Follow the link and find out why this guy picked Smalltalk, and stay tuned for his experiences with it over the next little while.

 Share Tweet This

events

Smalltalk in France

September 9, 2005 20:34:37.843

Bernard Notarianni points to a Smalltalk party in France, being organized by Serge Stinkwich. There's a lot of lead time - it's December 3rd of this year. Make your plans to attend now!

 Share Tweet This

BottomFeeder

BottomFeeder 4.0 delivery

September 9, 2005 19:58:51.566

I'm down to a few things for BottomFeeder 4.0. Rich has a number of good suggestions for the tabs, and I intend to follow those up. That will impact his ability to get the updated documentation done, so we'll have some lag there as well. Things are moving well though - I expect to have this all wrapped up within 2 weeks. Fingers crossed :)

Here's what's coming up in the new release:

  • More search feed engines supported. I've added a few search engines - DayPop and IceRocket. Additionally, I've simplified the feed builder dialog to one UI, where you select the engine to build a feed for.
  • Search feed wizard - say you find a new search engine that supports RSS/Atom, but Bf doesn't support it yet. No problem - define the feed building query in the wizard and go
  • Tabs - you can keep items around in tabs instead of relying on memory or history. Tabs can be "torn off" into their own windows as well. Check the pop up menu on the tabs for what you can do
  • Font resizing fixed - thanks to Steve Kelly, the font sizing (up and down) works properly now
  • del.icio.us support fixed - there had been a bug in sending links to del.icio.us - that's fixed now
  • Enhancements to the XHTML display pane, thanks to the ongoing work by the Software with Style guys
  • Streamlined toolbar - some of the less frequently used items have been moved off to menus

That's the major stuff - a whole raft of bugs were fixed, and the blog posting tool saw some fixes as well. All in all, this should be a great release.

 Share Tweet This

travel

A quiet two days

September 9, 2005 19:55:04.211

It's been a quiet couple of days on the blog, as I've been at a customer site (Cargill). We had a good day and a half of meetings, and I wish I could say more about what they are doing with Smalltalk - it's very cool stuff. Suffice to say, a lot of the foodstuffs you get daily went through the supply chain with the help of Cincom Smalltalk .

Anyway, I'll be back in the saddle again tomorrow, and expect to be back at my normal blogging pace.

 Share Tweet This

development

What a great title

September 9, 2005 19:54:51.603

Lesscode looks at Sam Ruby's FOSSSL keynote slides, and titles the post: "Reinventing Smalltalk, one decade at a time". Heh.

 Share Tweet This

itNews

The waiting

September 9, 2005 19:54:43.604

Scoble is hyping the upcoming PDC, telling us that something really big is coming. Color me skeptical - the last really big thing I recall MS talking about was list extensions to RSS (yawn). I'll believe it when I see it.

 Share Tweet This

customers

Awash in commodities

September 8, 2005 23:46:31.930

I'm in Minneapolis, MN today and part of tomorrow, visiting Cargill - a large customer of the Cincom Smalltalk group. They've spent the last decade+ building a large suite of applications they call LYNX - to summarize a lot, it's a system that deals with the grain origination business, through the supply chain from the farmer to the end purchaser. I can't go into a lot of details - like Cincom, Cargill is privately held, and they have a lot of proprietary value locked up in this system. They've evaluated it against various COTS systems over the years, and have always made the determination that LYNX served their needs better.

We got a lot of background on the business and application architecture from them. The application work started around 1992, when they decided to get rid of the various legacy stovepipe systems they had. Later on, Y2K compliance came into play. Just from a Smalltalk perspective, they have an interesting architecture - they have a multi-tier system with VSE clients and VW servers. The VSE clients use CORBA to communicate with VW.

That actually gets into something that not a lot of people know about - there's a VSE CORBA client (not suitable for running servers - it's incomplete) that shipped way back in the day. Cargill has been cheerfully using that code for years. They also wrote their own VSE/VW code compatibility layer - the entirety of their domain model is portable between VSE and VW. The GUI stuff, obviously, is not portable - and they are very interested in Pollock development and our roadmap.

Like I said above, I can't go into many details on the applications themselves - but I can say that Cargill is very happy with Cincom Smalltalk, and is looking to hook the LYNX system up to other systems that are being developed and deployed throughout Cargill. They are getting ready to kick off a fairly large effort soon, and that's what this meeting was all about. The last time they scheduled a large effort (back in 2000/2001), we came in and had extensive conversations with them. Those conversations bore fruit in the work they deployed out in 2003, which saved them a ton of money and streamlined their operations.

It's always fun to talk to a customer doing cool things with the product!

 Share Tweet This

general

Laptop issues

September 8, 2005 7:38:22.799

Dave has been having laptop troubles with standby/hibernation. It seems to be a prickly area. I always put mine into standby (and let it lapse down to hibernate, and it seems to work fine. The Thinkpad has been marvelous that way. The old Dell, on the other hand - I had to completely disable hibernation, because it never came out of it well. Likewise, some of my co-workers report the same problems with their Thinkpads. There's been progress by the vendors in this area, but it still seems way more fussy than it ought to be.

Meanwhile, I had a strange issue - I thought my battery wasn't charging. It ran down to 5%, and plugging in was doing nothing. Fortunately, the old "slide it out, slide it back in" trick worked - it wasn't connecting fully, I guess. Laptops are still fussy beasts...

 Share Tweet This

gadgets

Now that's what I call marketing

September 7, 2005 17:56:45.885

Rob Fahrni spots a really cool combination:

HPANA: "Additionally, a special edition 'Harry Potter iPod' will be made available featuring the Hogwarts school crest, designed by the author." - I never thought I'd purchase an iPod because they're just too darned expensive for what they provide, now I may have to change my mind.
 Share Tweet This

development

Sour Systems, or Simple Systems?

September 7, 2005 12:33:10.842

James Governor links to a great post on the need for simplicity:

Adrian then hits on a great point:
Why does Sainsbury have an "elaborate system" where surely a simple system would suffice?
I love that. The argument (or recieved wisdom) that elaborate means better is nonsense.
In IT we hear it about things like PHP all the time. Oh no - what you really want is a more scalable system (in enterprise software that invariably means a more elaborate one). Sometimes however there is an argument for lesscode, less software.
Elaboration tend to mask and degare responsibility because you can blame the system if something goes wrong. [We'll see a lot of that in the next couple of months].

Exactly. This goes straight to the point I made yesterday as well - do you want the complex (and supposedly scalable) system a long time from now, or the simple one that works right away? Too many IT people always gravitate toward the former, regardless of what the use case is.

 Share Tweet This

development

Limitations defined

September 7, 2005 12:25:35.994

This pretty much defines what I mean by "limited power" when I discuss Java and C# - I'm fairly surprised by this:

Unlike Java, C# contains the goto statement which can be used to jump directly from a point in the code to a label. Although much derided, gotos can be used in certain situations to reduce code duplication while enhancing readability. A secondary usage of the goto statement is the ability to mimic resumeable exceptions like those in Smalltalk, as long as the exception thrown does not cross method boundaries.

Back to the future, complete with goto statements. Amazing...

 Share Tweet This

smalltalk

Generating some XML

September 7, 2005 9:05:02.751

This post documents one way to generate an RSS feed - by iteratively building up an XML document, using the basic XML framework in VisualWorks. That's pretty much where I started 3 years ago, when I first started creating a feed for this blog. I pretty much left that code alone, since it works, and I felt no compelling reason to revisit it.

Later on, I wanted to create local (i.e., file urls) RSS feeds scraped from websites that don't support syndication. This time around, I looked into using a SAX driver. The basic class I created is RSSSaxWriter:


Smalltalk.RSSSax defineClass: #RSS_SAXWriter
	superclass: #{XML.SAXWriter}
	indexedType: #none
	private: false
	instanceVariableNames: ''
	classInstanceVariableNames: ''
	imports: ''
	category: 'StoreRSS'

I created specific subclasses for the various RSS versions I wanted to support (although in practice I really only use RSS 2.0). The easiest way to see how I use this is to look at a script I wrote to scrape a cartoon I read.


|   contentBlock out writer rest str content |

contentBlock := [:builder :chunk |
	| lnk |
	lnk := 'http://www.comics.com', chunk.
	builder link: lnk.
	builder title: 'Monty: ', Core.Date today printString.
	builder description: '<img src="', lnk, '">'.
	builder pubDate: Core.Timestamp now].

out := 'monty.xml' asFilename writeStream.
[writer := RSS20_SAXWriter new output: out.
writer prolog.
writer startRSS.
writer startChannel.
writer title: 'Monty'.
writer link: 'http://www.comics.com/comics/monty/index.html'.
writer description: 'Monty'.
writer pubDate: Core.Timestamp now.
writer startItem.
writer title: 'Monty: ', Core.Date today printString.
content := 'http://www.comics.com/comics/monty/index.html' asURI valueStream contents.
str := content readStream.
str throughAll: '<IMG SRC="/comics/monty'.
str upToAll: '<IMG SRC="/comics/monty'.
str throughAll: 'IMG SRC="'.
rest := str upToAll: '"'.
contentBlock value: writer value: rest.
writer endItem.
writer endChannel.
writer endRSS]
	ensure: [out close].


Fairly simple to follow - and a whole lot easier than building up an XML doc from scratch. Ignoring the scraping bits, you just tell the writer what the values are for various tags, making sure to start/end various sections (like 'channel'). To get an idea what's behind some parts of that, let's look at a couple of the SAX driver methods. Here's the #startRSS method:

.

startRSS

	self 
		startElement: 'rss'
		attributes: (Array with: (XML.Attribute name: 'version' value: self version)).
	self cr.

All that is, is a convenience method around the general #startElement:attributes method (there's a simpler #startElement: for cases where you don't have any attributes to worry about):


startElement: localName attributes: someAttributes

	self 
		startElement: '' 
		localName: ''
		qName: localName
		attributes: someAttributes.

The rest looks a lot like that - to see the implementation, load package RSSScriptRunner from the Public Store - it has all the code for this. The upshot is, you can use a SAX driver to easily create an XML document, and creating a new SAX driver isn't hard - you simply start with the framework class SAXWriter and customize.

 Share Tweet This

sports

Headshaking time

September 7, 2005 9:04:39.001

Amazing - apparently, just about the only team that the Devil Rays can beat is the Yankees. This is what happens when your management thinks that a staff of pitchers my age is a good idea. Bah.

 Share Tweet This

development

Where's the passion?

September 7, 2005 9:04:03.726

Spotted in a ruby on rails delicious tag set:

when you get to technologies that survive much more (or purely) due to its technical merits than promotion efforts, such as Python, Ruby or Smalltalk, you start to realize that the people that compose the communities around those platforms have something

There's actual passion behind these languages. As opposed to Java and C#, where there's bland conformity...

 Share Tweet This
-->