There's been some instability in recent BottomFeeder builds - it looks like most of that has been related to thread safety issues in the LibTidy interface and the SpellChecker interface. The latter wouldn't affect you unless you use TypeLess or the blog tool; the former could burn you, since we interface tp LibTidy on Windows and Linux to clean up inbound HTML for display. Updates are now up on the site, for both dev and non-dev paths - it should help. Tip of the hat to Michael for the fixes. Next up in dev - I'll be taking a look at the RegEx thing that Bob worked on
Pick all three - Patrick Logan explains
Our initial intuition is that reliable systems must be specified up front, and since static type information is easy to specify up front, then this must be the foundation of reliable systems. Almost the opposite is the case. We do need up front specifications, but they should be simple expressions of small parts of the ultimate system. Those specifications should be in the form of tests and dynamic (and concurrent) models, and simple solutions that fail fast.
If you want to get some idea of the reaction to that mega quake the other day, then Sriram Krishnan is the guy to read. He's in Chennai, one of India's harder hit cities. This snippet tells you a lot:
If you want a sense of the scale of the disaster, you just have to look at this comment I saw from a BBC reporter this morning from some resort in Thailand - "This region has been relatively fortunate in that it has seen only around a thousand deaths". When people start saying that they're lucky 'coz only a 1000 people died, you know that things are bad.
I'm glad to hear that Sriram's family is ok.
It's a bad sign when your dishwasher starts to smoke. We had just finished running through the enormous pile of post-Christmas dishes, and I was out getting carry-out... my wife called to let me know that the dishwasher had taken up a smoking habit. We had noticed a burning plastic smell a couple of days ago, but had not been able to figure out what it was - at the time, we thought maybe we just had too many things plugged into to that circuit. Now it's clear - an expensive appliance was demanding more money. Sigh...
So if you play your new Gamecube non-stop, this User Friendly cartoon definitely applies. I'm going to acquire either a blister or a callous on my thumb, that's for sure...
My sister seems to be adamant about getting me back to my older reading habits - first she got me interested in fantasy again by getting me started on the Wheel of Time books by Robert Jordan. Now, she's kick starting my old interest in sci-fi with the Well of Souls series. I haven't read a decent sci-fi yarn in years; I've been on an alternate history kick (and recently, a WWI history kick). The Chalker books remind me of the old (pre-bloat) Heinlein books - fast paced, light, but interesting. The first one is a quick read, and I've just gotten some of the follow ons for Christmas, so it looks like my reading schedule is pretty full. That's not even counting the Stephenson books from last Christmas that I haven't dug into yet, or all the new history books people got me this year. All that and a gamecube...
d2r wonders when Hollywood decided that physics were just so passé:
I guess what I'm wondering is: when did breaking the laws of physics became fun? The Matrix is one of the earliest of its kind, accounting for the little detail that, you know, it happened in a simulated reality (and they are responsible for bullet-time, at least in live-action, Anime is really were it comes from). Mission: Impossible pushed things a bit, but hey, it's Mission: Impossible. M:I2, though, was way over the top, and then things started to come off their tracks. Why is it that blockbusters seem to be resort to CG when the script ain't working, even if they aren't dealing with aliens or twisters or whatever?
I think you really do have to consider a lot of these flicks to be live action cartoons.
I swear, I read a near future thriller recently that had robots like this being used by the super-spy heros. It's getting to the point where you can't turn around before some sci-fi aspect of fiction has popped up in the news...
Aircraft the size of bees that get the energy they need by feeding themselves a diet of dead flies could be buzzing around the battlefields and motorways of the future, thanks to research in southwest England.
The aircraft, up to 15cm long and equipped with sensors and cameras, could have a number of uses in civilian life and modern warfare, including reconnaissance missions, traffic monitoring or fire and rescue operations.
By "digesting" its own fuel, the aircraft could become autonomous and operate without the need for refuelling, changing batteries or recharging from the mains.
I can see the consumer angle on this one already - combine that with the Roomba, and you'll have something.
Proving that the Atom folks aren't the only ones willing to discuss how many angels can dance on the head of a pin, there's an argument on the RSS Aggregators mailing list over enclosures. Supposedly, the spec states that there can be only one enclosure per item. Interestingly enough, the spec is silent on this matter (although it implies that you can have multiple title/description elements - go figure). In the wild, people are already using multiple enclosures in single items - which means that the horse has already left the barn. As per usual, the argument is now devolving into a "but you should follow the spec" hand waving exercise.
I didn't expect a lot of intelligent analysis of this airline computer glitch, and I haven't been disappointed:
The cancellation of 1,100 Christmas Day flights by Comair because of computer troubles is prompting calls for more investments in backup systems and other technologies to prevent further groundings and damage to an already struggling industry.
The foul-up was hardly the first: A computer glitch grounded 40 Delta flights in May. A power failure created a computer problem that forced Northwest to cancel more than 120 flights in July. A worker keystroke error grounded or delayed some American and US Airways flights for several hours in August.
"Obviously, the airlines have become way too dependent on computers," said Terry Trippler, an airline industry expert in Minneapolis. "Imagine a computer glitch and all the Wal-Mart stores across the country shut down, (founder) Sam (Walton) would come out of his grave."
Too dependent on computers? What does she expect, huge binders with reservations and crew allocations as a backup? Good gosh, the issue isn't the dependency on software - it's almost certainly a lack of decent testing. The very first question that should be asked of the people who provide ComAir with software should be "Where's your testbed setup?" Anyone want to take bets on the variety of puzzled looks that would come of that question?
I found this in the esug mailing list:
There is now a local newsgroup hosted on news.totallyobjects.com especially for Ambrai Smalltalk.
It is comp.lang.smalltalk.ambrai. Point a newsreader at news.totallyobjects.com or for surrent users - refresh your list of groups. Please note that as this is a local list to our server it will not be available through google groups.
The Smalltalk Resource
Look at all the links to Continuation based web apps gathered on Planet Lisp. Looks like a trend.
The Smalltalk Industry Council has made available presentations from past Smalltalk Solutions] that can be found at http://www.stic.org/Smalltalk_Solutions/index.htm Only presentations from 2004 are currently available, but other years will soon follow.
Don't forget that you can still show your support for Smalltalk and join STIC at the low cost of $39.00. Take advantage of the many benefits your membership in STIC entitles you too.
- Receive a $75 discount for the next Smalltalk Solutions Conference
- Receive a discount to the ESUG Conference (price to be determined)
- Have your name listed on the STIC Web site.
- Post a link to your personal, non-commercial homepage on the individual membership list
- Be kept involved with STIC efforts to promote Smalltalk.
- Interact with the others in the Smalltalk Community
- Receive reports of STIC activities
- Opportunities to become involved in STIC planning.
Join STIC today by visiting http://www.stic.org/member/memberships.htm
Any questions or comments can be emailed to me at email@example.com
Mark Bernstein has been counting the number of posts he's made over the course of the year; I figured those numbers ought to be interesting for me as well. I was able to grab the answers easily with a small script ran on the server:
| all date02 date03 date04 all02 all03 all04| all := (BlogSaver named: 'blog') allBlogs. date02 := Timestamp readFrom: '1/1/02' readStream. date03 := Timestamp readFrom: '1/1/03' readStream. date04 := Timestamp readFrom: '1/1/04' readStream. all02 := all select: [:each | each timestamp >= date02 and: [each timestamp < date03]]. all03 := all select: [:each | each timestamp >= date03 and: [each timestamp < date04]]. all04 := all select: [:each | each timestamp >= date04]. Transcript show: '2002: ', all02 size printString; cr. Transcript show: '2003: ', all03 size printString; cr. Transcript show: '2004: ', all04 size printString; cr.
The answers I got surprised me a bit. It was 502 for 2002 (I started the blog mid-year that year). Then I hit 2248 for 2003 - and thus far, 1908 for this year. I have doubts about my ability to make 340 posts between now and the end of the year :)
If you've sent me (or any other Cincomer, for that matter) email over the last two days, be aware that we haven't received it yet. Cincom takes the week between Christmas and New Year's off, and our IS guys are taking advantage of the downtime to upgrade the mail server. It went offline yesterday, and should be back up this evening at some point.
Slashdot is ready to give you something to fret over:
"It's not news at all that scientists predict an eventual "mega-tsunami" that will sweep across the Atlantic that will still be anything from 60 to 150 ft high when it hits the U.S. Eastern seaboard. This Old News, however, suddenly seems fresh. Like an asteroid hit, it could be millenia away, or tomorrow, that a volcano in the Canary Islands just off Africa drops half a trillion tons of rock into the Atlantic. A short description of the problem from BBC News and some more graphic descriptions (of up to 100 million dead) and shrewd commentary on the politics of warning from journalist Gwynne Dyer."
Daniel Brookshier has an interesting article on the many impediments to open source projects - for example:
If you look at the change logs of most successful open source projects, you will only see a few names and in many cases, just one name. The reason is that a small group or just an individual does all the work. The key reason is that volunteers are just plain hard to motivate. Motivation is hard! Back to herding cats, there is little that really motivates a cat that can be used to train it. People are really very similar to cats. Look at what open source participation offers: no cash, little recognition, and hard work. Not much more than a sense of accomplishment and many can get that from watching the 10th season of survivor. Where do volunteers come from? A lot of volunteers come to projects because they need something. They have a scratch that needs itching. Some are willing to contribute to make the changes they need. But this is a mixed blessing
There's a simple issue with most open source projects - money (or, the lack of it). Think about the really successful open source projects - one way or another, they have funding. Without funding, it's hard to find the time and motivation to pull a project through. It's one thing to "slap some code out" and quite another to keep after a project day in, day out. There's also a problem related to the above (and Daniel brings this up later in the article) - developers will tend to work only on things that bother them (personally). If you have a funded project (with bug reports coming in, etc) - there's some motivation to fix things that "aren't interesting" - like, say, the UI. Without funding, many things tend to get to - at best - about 80% done. At that point, all the interesting problems have been solved, and what's left is just boring detail. With funding, there's a way to get that boring stuff done. Without funding, it's really quite hard.
The more I hear about that tsunami, the worse it sounds. Whole villages swept away, many of the missing will never be accounted for. In the meantime, we can try and help the survivors - here's a link to the relevant Red Cross fund. My daughter wanted me to include a donation from her; she gave me the money she just got from the tooth fairy.
Tom Carter, a computer consultant with Clover Link Systems of Los Angeles, said the application has a hard limit of 32,000 changes in a single month.
"This probably seemed like plenty to the designers, but when the storms hit last week, they caused many, many crew reassignments, and the value of 32,000 was exceeded," he said.
That piece of state had to have some kind of type assigned to it by the developer, who went ahead and assigned a supposedly safe one. Safe until it overflowed, that is. Now, at this point I'll get all the usual suspects who will point out that they should have use BigInts. And sure, that would have solved the problem - if they had thought of it. It's clear to me that they weren't going to think of it until they got slapped by it. Now, in some of your more modern software development systems, you are protected from this kind of problem - you simply can't get an overflow. Then there are the newer, less modern ones - like this and this, for example - where you can.
I'm getting closer to the 3.8 release of BottomFeeder. I just made a fix to a new thing I added in the dev stream. Some people on Linux were having problems with spawning an external browser, so I had added a setting to specify which shell to use (sh, csh, etc) - instead of defaulting to csh. I had neglected to specify the correct arguments for using sh - which meant that it didn't work (it wasn't reading one line and quitting). That's been addressed. I've been making modifications to the "search in BottomFeeder" feature as well - if you have text selected, the search tool will prompt with that text - otherwise it will use the current item title. I also added an option in that tool to search by feed title - if you have as many feeds as I do (293), sometimes it's easier to just do a search :)
I like the way Danny Ayers captioned the link to the CNet story on WinFS:
The Cincom mail servers are still offline - so if you have been trying to reach anyone here, you should use the relevant personal email address. There's some impact on the NC downloads; the download server sends you verification email with your username and password (which you can use when we push out future releases - no need to re-register). You'll get those emails eventually, but in the meantime, you can install the NC
Update: Our IT guys tell me that mail services should be back up by 8 pm EST tonight
I'd give predictions for the new year, but I tend to stink at those. I do have one iron clad prediction though - George Steinbrenner will bring more hitters (which the Yankees don't need) and grab over the hill pitchers (like Randy Johnson) rather than develop the farm system. Sigh. With that out of the way, let me grab my favorite posts from the last year:
- January: on computers and education
- February: dynamically updating a server
- March: Software and Profits
- April: When to optimize
- May: Niall Ross' StS 2004 Notes
- June: The tough get tools
- July: Outsourcing and clock time
- August: Is it Hacking?
- September: DRM and social cues
- October: Implement and Continue
- November: A summary of my tech posts
- December: Aggregating the Commentary
On that last post, I am using PubSub feeds now, and they tend to be very good. I especially like the fact that they highlight the search term in the feed that comes back.
There are times that I just sit back and try to figure out how and why some things get huge wads of media attention, and other things just disappear. For instance - I was curious about the Fannie Mae scandal, so I did a BottomFeeder search (internal). Turns out that out of the 293 feeds I track (including a bunch of news and political sites), there were 2 items. Just for comparison purposes, I checked for the Enron Scandal (a much older story) - there were 9 items. Curious. A google search for the two turns up 1330 for Fannie Mae and a whopping 82,500 for Enron.
Now, I'm not trying to make a political point here - I'm honestly curious about the process whereby some things get to be news, and some things don't. For instance - the Lori Hacking murder got played all over - it was hardly the only murder story around. What elevated it and made it "big"? Or gosh, how did that horrid Laci Peterson story get to be this year's OJ trial?.
It's a curious thing. Some stories pop up and become huge, sucking up all the media oxygen, while others just fade away.
Rich Demers and Mark Roberts would like some feedback on SmalltalkDoc, which is in early beta for VW 7.3. Let us know what you think.
Ok, get ready for two bad jokes I ran across:
"A dyslexic man walks into a bra..."
"Did you hear about the dyslexic, agnostic insomniac? He stayed awake all night, wondering if there really is a dog. "
You can groan now :)
Comcast decided that there wouldn't be internet service today. Which is mostly not a problem, because we are having a party this afternoon. In the meantime, my wife wanted to print out a grocery list. But nooo - just in case I thought Word was extra stupid, WordPerfect is here to show me a deeper level of insanity - the printserver that is part of WP fails if there's no network connection - even though all I want to do is print to the local printer. Gah!
Ok, so we save the file in RTF to a shared drive - the idea being that I'll pick it up and print from my notebook using Word. Sounds simple, right? All I want to do is grab a file from the local LAN - I have no need to see the internet. Windows networking seems to think differently. Even though I'm only browsing a shared drive on a local PC, each directory navigation is taking something like 60 seconds to navigate - apparently, some deeply stupid part of Windows networking is trying to do a WAN lookup as a navigate the local LAN. It's not just a simple socket timeout thing either - it's taking way too long for that.
I think the problem is that Windows thinks there's a WAN connection, because it was there when Windows booted. I see this in BottomFeeder on Windows - if I bring it up without there having been a network connection, any socket connections time out instantly - whereas they take 20 seconds each if the connection was there and dropped. This is far, far worse though - Windows networking is taking minutes to navigate from directory to directory on the local LAN, when it shouldn't even care about a WAN connection.
The befuddling part is that LAN access from my wife's machine was normal speed - so I was finally able to grab the document by pushing it from her end. Utterly baffling - I have no idea why that should be....
Here's an interesting thing - JetBlue pulled out of Sabre last month:
JetBlue Airways Corp. said this week it plans to drop out of the Sabre electronic ticketing system by Jan. 1, a move that could cause other airlines to follow suit.
Bookings on Sabre, the software system operated by Sabre Holdings Corp., account for just 2% of JetBlue's sales, says sales and distribution director Noreen Courtney-Wilds. But sales through Sabre have been the airline's most expensive, while it's keeping costs down by funneling business and leisure travelers through its Web sites, she says. Revenue from ticket sales through Jetblue.com and a corporate travel Web site launched in June accounted for 75% of JetBlue's third-quarter sales.
Hmm. Later in the same article I found out that Southwest was part of Sabre - I had thought they weren't. Apparently, Sabre (and the competing Galileo) charge something like $5 per segment booked - so a round trip to Europe from where I live might end up throwing $20 at Sabre when the Cincom travel agency books it. That's a significant cost. The article notes that Sabre and Galileo intend to go ahead with their annual price hikes.
I guess the question is, is JetBlue a harbinger of things to come, or a one-off? On the one hand, pulling out of a system like Sabre early means that corporate travel services are less likely to find your flights; it's unlikely that an agent is going to bother juggling 3 or 4 (or more) different travel systems. on the other hand, being able to drop your prices by doing so could give you an edge. It'll be interesting to see how this goes - will more airlines jump, and will Sabre realize that they might be facing immediate disintermediation?
But the smoke generated by the offshoring debate obscured the big picture, which has to do with an increasingly global economy and the changing nature of technology work. And short-sighted executives, bent on offshore outsourcing for bottom-line reasons only, may risk trading innovation and competitive advantage for short-term gains. Wal-Mart Stores Inc., the world's biggest retailer--and arguably the most tech-savvy company in any industry--does all software development in-house. "We'd be nuts to outsource," says CIO Linda Dillman (see "Wal-Mart's Way," Sept. 27, 2004). Outsourcing in general, including offshoring, is a valuable business-technology strategy. But it needs to be employed for the right reasons.
Another interesting one on Open Source, another topic I've commented on from time to time:
Compare Red Hat Inc.'s midtier standard price for Linux with tech support ($799) to a roughly comparable Windows Server 2003 license from Microsoft ($999), and you begin to see how the numbers really crunch. And those are just list prices. Among the revelations to surface in the Justice Department's failed attempt to block Oracle's proposed takeover of PeopleSoft Inc. was eye-opening evidence of deep discounting. Penny-pinching CIOs can play Red Hat against Microsoft, Microsoft against Oracle, and Oracle against SAP.
In addition, there are costs associated with open-source software that aren't always obvious. Yankee Group analyst Laura DiDio reports that in-demand Linux system admins can command salaries 20% to 30% higher than Windows staffers. In addition, third-party tools and intellectual-property insurance can jack up the overall cost of open-source environments even more. So, here's how to do the math. Add up all the costs to run an open-source stack. Subtract thousands of dollars in concessions from proprietary-software vendors anxious to negotiate. The difference might be less than you think.
There's also a slap at bloggers in there, and a few other things of interest. Have a look.
Chaos is a party where 10 kids (all 11 or younger) arrive, and there are only 4 positions available in the GameCube. Add chocolate and soda for fuel, stir until the headache arrives :)
It's not always easy for a software company to deal with open source issues. Cincom, for instance, makes the vast majority of its money via software licensing and sales, so it's a very controversial issue internally - which explains why you don't hear us talking about it much. If you haven't figured out a story line yet, it's probably best not to have the inconsistencies dissected in public - witness Cafe au Lait Java taking Sun to task, for instance.
This is interesting news. Sounds like Delta is going to break ranks and stop punishing business travelers who don't want to sacrifice their weekends:
The biggest present for airline passengers, though, may be from Delta. Next week the nation's second largest carrier is expected to become the first of the so-called Big Six (American, Continental, Delta, Northwest, United and US Airways) to radically change its pricing policy nationwide, removing irritating ticketing rules like required Saturday-night stays, halving ticket-change fees to $50 from $100 and slashing fares on everything from first class to last-minute tickets.
If that is the case, then the other major airlines will have no choice but to respond - and that response will trickle through the entire travel industry. Hotel and rental car pricing is built around the saturday stay assumption - look at all the "weekend get away" marketing you see from hotels. It's not that the concept of a quick holiday will be destroyed - but a lot of the underlying price support for it will dry up. You know what the slowest thing to change in light of this will end up being? Corporate travel policies....
I made a small change in the BottomFeeder development stream last night that eases the memory consumption of the application. The HTTP client library we use, Net Resources, has two levels of cache - disk and in-memory. Up until now, the application has been keeping that cache in memory as it ran. What I've done is added a setting - if it's false (the default), then the cache is not held in memory (except during the update loop) - it's only on disk. For my running copy, that dropped the appetite of the app by nearly 20 MB.
Michael has started looking at making the content for cached items demand loaded (instead of the current all in memory model). I doubt I'll get that into the soon to be released 3.8 - it's too radical a change. Once we get that in, it should lower the runtime footprint of Bf dramatically.
Another comment I've gotten has been on the cpu load during the update loop - grabbing the RSS feeds and processing them in a threaded update loop is fast, but it can be expensive in memory and cpu terms. I added an option awhile back that lets you slow that down - if you look under Settings>>Network, check the Slower Update Cycle option and turn threaded updates off. What that will do is sequence the updates across the update interval you've chosen. So, say you subscribe to 60 feeds, and you have set the cycle to 60 minutes. If you toggle the settings as listed above, each http query will be separated by a minute - and when they are all done, there will be an hour's delay before the next update. This was in response to numerous requests, and setting it up that way should make the application less resource intensive as well.
I ran across Joel on Software's latest post this evening. Mostly, it's full of good advice for college students considering a career in software development - learn to write well, for instance. I'll heartily second and third that one. I can barely believe how much barely literate email I get on a daily basis. Spelling mistakes, poor grammar - it doesn't matter how good your arguments are, if you can't express yourself clearly, no one will ever hear them.
The only thing I questioned was his advice on learning C. Now, I don't dispute the value of knowing C - the simple fact is, the low level API's of Windows, Unix, and Linux are all in C. if you ever intend to drop down from a high level language (Smalltalk, Java, what have you) - it's going to be to C. Having said that, here's what Joel says:
Part two: C. Notice I didn't say C++. Although C is becoming increasingly rare, it is still the lingua franca of working programmers. It is the language they use to communicate with one another, and, more importantly, it is much closer to the machine than "modern" languages that you'll be taught in college like ML, Java, Python, whatever trendy junk they teach these days. You need to spend at least a semester getting close to the machine or you'll never be able to create efficient code in higher level languages. You'll never be able to work on compilers and operating systems, which are some of the best programming jobs around. You'll never be trusted to create architectures for large scale projects. I don't care how much you know about continuations and closures and exception handling: if you can't explain why while (*s++ = *t++); copies a string, or if that isn't the most natural thing in the world to you, well, you're programming based on superstition, as far as I'm concerned: a medical doctor that doesn't know basic anatomy, passing out prescriptions based on what the pharma sales babe said would work.
Here's the first thing - most developers simply aren't going to be writing compilers or JITS - they are going to be writing stock business applications. As such, I'd argue that knowing about exceptions is going to be a lot more relevant than being intimate with low level C details. Still, this isn't the reason I linked to this - it's the linked article that concerned me:
That opens another whole can of worms: memory allocators. Do you know how malloc works? The nature of malloc is that it has a long linked list of available blocks of memory called the free chain. When you call malloc, it walks the linked list looking for a block of memory that is big enough for your request. Then it cuts that block into two blocks -- one the size you asked for, the other with the extra bytes, and gives you the block you asked for, and puts the leftover block (if any) back into the linked list. When you call free, it adds the block you freed onto the free chain. Eventually, the free chain gets chopped up into little pieces and you ask for a big piece and there are no big pieces available the size you want. So malloc calls a timeout and starts rummaging around the free chain, sorting things out, and merging adjacent small free blocks into larger blocks. This takes 3 1/2 days. The end result of all this mess is that the performance characteristic of malloc is that it's never very fast (it always walks the free chain), and sometimes, unpredictably, it's shockingly slow while it cleans up. (This is, incidentally, the same performance characteristic of garbage collected systems, surprise surprise, so all the claims people make about how garbage collection imposes a performance penalty are not entirely true, since typical malloc implementations had the same kind of performance penalty, albeit milder.)
Hmm - now I'm no expert on garbage collection, but I spent plenty of time working in C a decade or so ago, and I've spent all the time since in Smalltalk. Modern gc systems do not have the problems that malloc has - and moreover, they remove memory management from the error ridden hands of the application developer, and put it instead in the hands of a framework with global knowledge of the application. It's a huge win for all concerned - better performance for all but the smallest proportion of applications (such as those living in embedded systems with constrained resources). Joel is spreading bad knowledge here - not unlike his complete lack of cluefulness on exception handling.
I think Joel is getting to the point where he just doesn't know what he doesn't know...