|
Re: Software
|
You may not be aware, but there is intense competition between companies to create the world’s dumbest installer. I always thought Fog Creek deserved honorable mention for writing their own installer from scratch, but I have to admit it isn’t a bad installer, that was just a waste of their time. Sun’s Java upgrader is definitely in the running, for elevating what should be a silent little background thing into the foreground like some kind of major application that users care about. Real’s installer is a nightmare, with 400 options in seriously deeply nested menus, most of which have the wrong default settings (“Do you want to use Real for all C++ compiles? – default Yes”).
But I have to give the award to Microsoft for their IE update to v7; in this, as in so many other things, I subtract all benefit of a doubt since they are so big and mighty and ought to know better.
|
|
Don't you just hate it when new versions suck? You know what I'm talking about, I know you do... you have this software, and you use it every day, or weekly, or once in a while, and you like it, and you know it, and, well, it works for you. Maybe it has some bugs, maybe you wish it would be faster or better in some way, but it works for you. And then you find there is a new version. And you want to "stay current", and you're hoping if you upgrade maybe it will be faster or better in some way, and so you install the upgrade.
At this point, one of two things happens... The good outcome is that the new version is like the previous version that you knew and liked, and maybe it fixes some bugs, and maybe it is faster or better in some way, and still it works for you. The bad, horrible, sucky outcome is that the new version is different, you no longer like it or know it, and now it doesn't work for you anymore.
|
|
Word of the day: Heisenbug.
A bug which is affected by the process of observing it, usually in an effort to get rid of it. Examples include bugs which only show themselves in Release code, but not Debug, and timing bugs which go away when breakpoints are set or [more insidiously] when logging is activated. In another variation they occur in the field at customer sites but not in a lab under controlled conditions.
Their possible presence leads to the Heisenbug uncertainty principle: it is never possible to be sure there are no more bugs :)
I am fighting a tenacious Heisenbug just now and wishing I could pause the universe temporarily to examine the server when an error occurs on the client. I wonder if the developers of The Matrix began this way?
P.S. Yes of course there is a Wikipedia entry for Heisenbugs, as well as Bohrbugs, Mandelbugs, and Schroedinbugs. And my favorite, the Stotle, “the incorrect output of a computer program that contains no bug”.
|
|
Today I spent considerable time on a problem that confronts all software developers: how can you predict bugs? I ended up deriving the following equation...

Please click here to read how this works (!) ...
|
|
Okay, I’m going to date myself here. I’m 49 years old, and I started programming in Junior High, when I was 13, so my story begins 36 years ago. The dawn of time, metaphorically speaking.
Please join me for a gentle rant about the lost art of desk checking...
|
|
This is another in my series of foaming rants whereby you the reader become convinced of my status as a coding dinosaur. So be it.
Today's subject is memory management, the old "bad" way, and the new "good" way using garbage collection in managed code. Please click to read more...
|
|
You all know I can't stand .NET’s virtual machine architecture, and you probably think I’m a hopeless dinosaur who just doesn’t get it. Everyone knows Microsoft is great, everyone knows .NET and Java are the future, etc. Someday Ole will retire from railing at progress. (And everyone will be spared Sunday morning rants :)
Let me give you a clean example of what I can't stand about .NET’s CLR: Visual Studio 2005.
Please click here to read more...
|
|
I've been spending a few days worrying about measuring stuff. Like productivity and predictabilty.
Way back in late December, 2006, I worried about this, too, and wrote a long rambly email to my team about it. I just reread it, and thought it might be worth sharing. So here it is.
|
|
This is a nerdy exposition, for those of you creating web apps and for me to be able to find it later :)
The subject is dynamically sizing web page elements based on the size of the browser window. Please click to read more...
|
|
In which I screw up a programming change, devise an almost famous design, and engage in stochastic debugging, and philosophize...
|
|
As a programmer you are constantly making design decisions. Some are small, some are big. Some have little effect, some have larger effect. And every once in a while you make some decisions which seem small, but have a huge effect. If these decisions are made badly, then it affects many other people for years to come.
Please click to read more...
|
|
Do you hate business jargon as much as I do? Blech.
A classic example of meaningless jargon is "Web 2.0". Nobody knows what it means, it doesn't mean anything.
And for an unbelievable example of jargon run amuck, consider Microsoft's recent "Live" announcement. Talk about meaningless blather.
Please click to read more...
|
|
Okay, I was wrong. Completely. So be it.
The "good call" award goes to Gary Lang, who emailed on Sunday:
BTW Apple's move is not about video or a WMC combatant, it’s about notebooks. Most PCs sold, including Macs, are notebooks. IBM has not made a competitive fast chip for notebooks. It’s as simple as that.
No doubt it isn't quite as simple as that, but Gary nailed it. You can watch the Stevenote here, or view Engadget's liveblogging here. Not Mr. Jobs best performance, IMHO, but he did a good job with a tough message. Left unsaid (but certainly not unanalyzed) is the extent to which Apple will be "Osborned" by this. The Economist published a good analysis (including the stock price graph at right, entitled "still juicy"), and you may enjoy this Slashdot thread. Scott Loftesness thinks new laptops will be out soon (this year?), and John Gruber tries to cover up his bad guesses :) Tom's Hardware drinks in the irony of an Apple - Intel alliance.
[ Later: my favorite take so far comes from Robert X. Cringley: Going for Broke, in which he suggests Apple and Intel are taking on Microsoft. Hmmm.... ]
Now, as someone working on porting Windows software to the Mac, I wonder, what does this mean? In the short term, not much. In the slightly longer term, use Xcode instead of CodeWarrior. And in the longer term, who knows? Stay tuned :)
|
|
I know you're probably sick of the Apple on Intel speculation and you don't care anymore or maybe you never did. Please skip the remainder of this post. Thank you.
Here's the bottom line: I have to believe the next big play at Apple is online video.
Click here to continue reading...
|
|
I have nothing brilliant to add to my musings yesterday about Apple on Intel. I still feel the key reason must have something to do with binary compatibility with Windows applications. All the other things Apple gets from this transition - efficiency, cost savings, branding - just don't see worth the trouble. Especially in games, Apple trails Windows dramatically in the availability of software titles; this factor is holding back the Mac platform more than any other.
Click here to continue reading...
|
|
Earlier today I posted about the rumors that Apple is planning to support Intel CPUs. I'd wrote "probably 'support' not 'switch to' but after one bike ride's worth of cogitation I think this is exactly wrong...
Maybe it will be possible to run Windows programs "as is" without any changes on top of some kind of runtime emulation inside OS X? Now that would be a reason to do this!
Please click to continue reading...
|
|
This is going to be a long post. I can tell. I have all these thoughts, jumbled together, and it is going to take a lot of words to get it all out. Sorry.
The subject is Windows... Microsoft has now spent four years building Longhorn, the "next" version of Windows, and it looks to be spending two more years at least. When Longhorn is released, it will have been at least six years since XP came out. That is a long time in computer years. What will we get? If it were up to me, Microsoft would stick to its knitting, and instead of trying for more and more functionality - which is properly the province of application software anyway - it would fix paging and fix networking. Do the things Windows should do well. I won't get my wish, but that's what I want.
Click here to continue reading...
|
|
Have you ever wanted to use a pointer to a class method? This might be basic C++ but I couldn’t remember how to do it, and spent some time Googling and messing around to figure it out. So here’s the way...
|
|
Okay, today we are going to get YOU to use RSS. Follow the simple steps, and you'll be using RSS, and loving it. I promise this is worth it. You will thank me. More...
|
|
If you write nph CGIs, be sure to exclude them from mod_gzip. That's the message of this post; feel free to skip the rest if this is geek to you.
|
|
I always have so much to do in December, don't you? So many social events, Christmas shopping, year-end deadlines. But somehow I love it. The cold crisp air, lights everywhere, a sense of excitement, music...
And since I have so much to do, naturally I'm procrastinating by working on something I don't have to do at all. Yep, I redesigned my blog. And you probably can't even tell!
|
|
So, for the past four days my [Windows] laptop was down, and I switched to using my iMac as my "main" computer for a few days. Overall the experience was pretty good. I thought you might find a brief review interesting. continue reading...
|
|
The other day I posted The Emperor's New Code, a heretical critique of "Longhorn" Microsoft's upcoming version of Windows. I expected to get a lot of links, and I did - thanks Dave, Tim, and Robert! - and I expected to get a lot of criticism, and I did. I am like the little boy who cried "the emperor's not wearing any clothes", and of course some noblemen cannot admit this; it would be too embarrassing. Or maybe the little boy just can't see the clothes :) So. Dialog is always healthy, right!
I'd like to take a moment to discuss the most prevalent reactions...
|
|
... In which the author proves himself a hopeless heretic by disparaging Longhorn ...
I attended the Microsoft Professional Developer's Conference in Los Angeles last week. Microsoft formally unveiled "Longhorn", the next version of Windows, along with a bunch of new underlying technology. My first day's reaction was PDC = Moo!; a positive impression of a lot of cool new stuff. But my takeaway is... there's a lot less here than it would at first appear...
|
|
I'm at the Microsoft Professional Developer's Conference (PDC) in Los Angeles. Today Microsoft formally unveiled "Longhorn", the next version of Windows.
I left for the PDC at 5AM, and got home at midnight. Cool.
Continue reading ...
|
|
Suppose you have an application which provides a "core" for other developers. Suppose you wan to provide functionality as classes, rather than APIs, but enable extension. Supporting third-party children is not easy...
|
|
In which we talk about writing specs, the subject near and dear to every programmer's heart...
|
|
I solved it! And it is great!! The infamous "two switches" puzzle does have a solution, and it isn't a trick; it is a pure logic puzzle. Read on for more...
|
|
In which we discuss emergent properties vs. explicit properties, take Marvin Minsky to task about artificial intelligence, diss RDF and the semantic web, and relate image processing to water. Read more...
|
|
I implemented "outbound trackbacks" today. Essentially a trackback is a way to tell someone: "hey, I linked to your site".
|
|
A week ago I posted a little article called The Tyranny of Email, giving some tips for improving personal productivity. It generated a terrific response, and I herewith post the most interesting observations and comments...
|
|
Today I made a couple of slight enhancements to the way this site uses frames, please click here if you're interested...
|
|
Wow, so Google has bought Pyra, the company behind Blogger. This really puts 'blogging on the map. It also creates some potentially interesting conflicts of interest (will Google searches preferentially find Blogger 'blogs?). At first glance, actually, it doesn't seem a great fit. Google did buy Deja News about a year ago, but that made more sense; Deja archived all the Usenet groups, wereas Blogger only has about ¼ of the blogosphere... Perhaps the synergy is at the link level. Google indexes links, Blogger makes links.
I've asked them if they'll support <A HREF= WEIGHT=>...
|
|
Every website needs a simple search facility, including this one...
|
|
If you're a programmer today, most likely you are writing in Java or C++. In which case you may be interested in How to Write C++ Classes...
|
|
Home
Archive
'09
'08
'07
'06
'05
'04
'03
All Articles
Re:Cycling
Re:The Book
Re:Software
Re:Philosophy
About Me
W=UH
Email
Search
RSS
OPML
Greatest Hits
Correlation vs. Causality
The Tyranny of Email
Unnatural Selection
Lying
Aperio's Mission = Automating Pathology
On Blame
Try, or Try Not
Books and Wine
Google and Blogs
Emergent Properties
God and Beauty
Moving Mount Fuji
The Nest
Rock 'n Roll
IQ and Populations
Are You a Bright?
Adding Value
Confidence
The Joy of Craftsmanship
The Emperor's New Code
Toy Story
The Return of the King
Religion vs IQ
Most Spectacular Photos of 2003
In the Wet
the big day
solving bongard problems
visiting Titan
unintelligent design
Shorthorn
the nuclear option
second gear
On the Persistence of Bad Design...
Texas chili cookoff
the inflection point
almost famous design and stochastic debugging
may I take your order?
paper art
triple double
China's olympic gardens
New Yorker covers
Death Rider! (da da dum)
how did I get here (Mt.Whitney)?
the Law of Significance
Holiday Inn
Daniel Jacoby's photographs
room with a view
weird disaster update
in praise of paddle shifting
the first bird
Gödel Escher Bach: Birthday Cantatatata
shining a light
Father's Day (in pictures)
Tour de France 2009
Π
|