Wednesday, September 09, 2009

Me, side-by-side with Douglas Adams

What happens if you search the iTunes store for Towel?

You find Douglas Adams, and you find me!

Monday, August 03, 2009

Use Outlook 2007 to make collaborating between organizations easier – share your free/busy times

Folks who use Outlook and Exchange together are used to being able to use Outlook's free/busy times to tell when other people in their organization are available to meet. But what happens when a vendor or business partner from outside your organization is trying to find a time to meet with you?

Typically for me, it used to be: find a bunch of available times; write them down and email them to the vendor; then the vendor checks on their end with the folks they need to bring and picks one, but by then, I've been scheduled for three more meetings and that free time isn't free any longer – so like they say on the shampoo bottle, "lather, rinse, repeat." What a waste of time!

With Outlook 2007* there's a better way!

Dear vendor, you can see my calendar at this link: Please schedule the meeting for a time I'm available.

[Go ahead and click that link – you'll see my actual availability!]

How did I do that?

Outlook 2007 makes it very easy to share your calendar online with people outside your company, using Outlook 2007.

Interested? Well good! Microsoft has written up just what you need to do to make it happen: Publish a calendar on Office Online

I strongly suggest you use the option to publish Availability only to minimize the risk of information disclosure.

You can also choose whether to share your calendar information only with specific people, or just publish it for the whole Internet to see. (I'm sure you can guess which is the more secure approach – but you will have to make the calculation about convenience vs. security of your schedule. Since I've blogged, twittered, etc. for quite a while, I'm obviously somewhat comfortable with the Internet knowing quite a bit about me. Your tolerance for that may differ.)

If you want to restrict access to your calendar to only invited people, you need to sign up for a Windows Live ID account.

I hope this tip will make collaborating across organizational boundaries a bit easier for you.

*Yes, you used to be able to do this with earlier versions of Outlook back when Microsoft ran a public free/busy server – but that was shut down years ago. But this one works 'out of the box' with Outlook just by following the instructions, no need to install any extra software.** Easy-peasy!

**And yes, there are a gazillion other ways to do this, and using Outlook and Exchange is SOOOOO 20th century, get with the web2.0 wave, blah blah blah. Ok, if you know that already, then this blog post is not for you! It's for folks who still need to use Outlook & Exchange but also need to collaborate outside their organizational boundaries.



Thursday, July 02, 2009

Now Firefox 3.5 compatible: Seattle Public Library LibX Edition

LibX is an open-source project that creates browser extensions that give you one-click access to the online card catalog from your own library.  See a book you're interested in on Amazon, or anywhere on the Internet for that matter? LibX makes checking to see whether it's available via your library - and if so, reserving it - as easy as pie!

But a LibX "edition" needs to be set up for each library. And the great folks behind LibX have made it easy to do that! So a while back, I made a Seattle Public Library LibX edition.

And now it's updated for Firefox 3.5 compatibility.

If you have already installed the Seattle Public Library edition of LibX, the next time you launch Firefox, it should automatically prompt you that an update is available to install.

Otherwise, go ahead and install Seattle Public Library LibX now! (There is a version for Internet Explorer, too. Sorry, there's no LibX for Chrome or Safari.)

And if you are reading this but don't get your books from SPL, check to see if there is a LibX edition for your library. If there isn't, you should make one with LibX Edition Builder! It's a great way for geeks to support their local library.

Thursday, June 04, 2009

Even with @comcastcares, Comcast Triple Play is not a basket you should put all your connectivity eggs in

@comcastcares For 3rd weekday in a row, cannot call toll free #'s "all circuits are busy". Getting ready to cancel. Pls help!

ComcastBonnie@doofusdan the all circuits busy thing is a regional issue they're trying to hash out :/
Comcast isn't delivering on the fundamentals of having the dial tone actually work, or having Internet access. And that's what I want from a telephone and Internet service provider: dial tone and Internet. And that is what Comcast hasn't been able to deliver to me lately.

Based on my experience, I recommend that if you are looking at Comcast Triple Play, don't. They aren't reliable enough to use for both ISP and telco. If you use Comcast for one, use another provider for the other. That way when Comcast's service is down you can at least use the other one.

I think it's great that Comcast has folks on twitter trying to help out. They've helped me before. But I'd prefer not to need to ask for help at all - I just want my phone & ISP to work. Is that too much to ask? For Comcast apparently it is.

Here's an email I'm sending to them. I hope this will help get my problem resolved now but I really do not want to stay as a pure Comcast customer any longer.  And I recommend you don't do so either.

Wednesday, May 20, 2009

Typo occurred, too

Typo occurred, too
Originally uploaded by fullerbecker
Can you be a little more specific?

Saturday, May 16, 2009

This Old Space Telescope

Watching the Hubble repairs live is at once fascinating, restful, and inspiring.  And boring. But great to be watching with a quiet house and a cuppa coffee to wake up gently on a beautiful Saturday before starting a day that promises to end in happy exhaustion.

(I'm watching on UW2.TV as I write this, it's one of my favorite TV stations and it carries lots of NASA.TV.  There are a gazillion places to see it - just search for STS-125 spacewalk - I'm watching the third one right now)

From the mission description:
...pieces of those instruments have failed in past years – not the entire instrument, but specific pieces inside of them. The crew will replace only the pieces that have failed.

But those instruments were never designed to be repaired in space. In fact, they were specifically designed not to come apart.

“When we first looked at it, we were going ‘well, maybe, maybe not,’” Ceccacci said.
Since then, the team has come up with a plan for the work that Ceccacci believes will be very successful. But it won’t be easy – the repair of the spectrograph, for instance, requires the spacewalkers to remove more than 100 screws to access a computer card they will pull out and replace.

The Hubble Space Telescope The Hubble Space Telescope is seen in March 2002 with its new solar arrays after the completion of STS-109, the third Hubble servicing mission. Image: NASA
Hubble is going to be replaced, and this is the last maintenance Hubble will receive. Scott Berkun perceptively describes the importance of giving up the old to make way for the new.
They know that in order to build whatever will replace the Hubble, they have to let go of Hubble, even if that means letting it die, so they can have the funds and resources to invest in the next thing (It’s called the Webb telescope and it’s made from Beryllium - sounds like Star Trek).
More on the Webb Telescope's mirror from Technology Review. NASA's James Webb Space Telescope site is authoritative.

Friday, May 15, 2009

Great software writing can be Mercurial

Cross-pollination works. For example, I think infrastructure groups can usefully adopt several developer tools and mindsets. (I've talked about this before.) One of these is automated build & test systems. Another one - and the necessary foundation for automated builds - is revision/version control.

And I'm usually interested in comparing different approaches to solving a problem I'm familiar with. I find seeing the differences in the approaches gives me a better understanding of the underlying problem; it helps to abstract what is perhaps an implementation artifact and what is inherent to the domain.

So when I spotted on TouchCode's Google Code wiki that Google Code is now supporting yet another version control system, Mercurial, I was intrigued enough to go learn more about Mercurial, how it differs from and tries to improve upon Subversion and Git.

Did I mention that I'm easily distracted by bright, shiny knowledge? There's a rule I follow strictly: when I am playing, I'm allowed to shoot off into completely random digressions if I want to!

Conveniently, Mercurial: The Definitive Guide is available online, Free. Thanks, Bryan O'Sullivan!

What a delightful surprise to see it looks like the makings of a good software book, too! From the Preface:

Technical storytelling

A few years ago, when I wanted to explain why I believed that distributed revision control is important, the field was then so new that there was almost no published literature to refer people to.

Although at that time I spent some time working on the internals of Mercurial itself, I switched to writing this book because that seemed like the most effective way to help the software to reach a wide audience, along with the idea that revision control ought to be distributed in nature. I publish the book online under a liberal license for the same reason: to get the word out.

There's a familiar rhythm to a good software book that closely resembles telling a story: What is this thing? Why does it matter? How will it help me? How do I use it? In this book, I try to answer those questions for distributed revision control in general, and for Mercurial in particular.
And right off the bat, a great explanation that I'm going to point lots of people to in the future:

Why use revision control?

There are a number of reasons why you or your team might want to use an automated revision control tool for a project.
  • It will track the history and evolution of your project, so you don't have to. For every change, you'll have a log of who made it; why they made it; when they made it; and what the change was.

  • When you're working with other people, revision control software makes it easier for you to collaborate. For example, when people more or less simultaneously make potentially incompatible changes, the software will help you to identify and resolve those conflicts.

  • It can help you to recover from mistakes. If you make a change that later turns out to be in error, you can revert to an earlier version of one or more files. In fact, a really good revision control tool will even help you to efficiently figure out exactly when a problem was introduced (see the section called “Finding the source of a bug” for details).
  • It will help you to work simultaneously on, and manage the drift between, multiple versions of your project.
Most of these reasons are equally valid—at least in theory—whether you're working on a project by yourself, or with a hundred other people. 
All cool so far, right? But check out what Bryan did  - this is so self-referential, I just love it to pieces:

About the Example Code

This book takes an unusual approach to code samples. Every example is “live”—each one is actually the result of a shell script that executes the Mercurial commands you see. Every time an image of the book is built from its sources, all the example scripts are automatically run, and their current results compared against their expected results.

The advantage of this approach is that the examples are always accurate; they describe exactly the behavior of the version of Mercurial that's mentioned at the front of the book. If I update the version of Mercurial that I'm documenting, and the output of some command changes, the build fails.
Anyway, I'm still reading, and I think I may well give Hg a shot for my next project.

Saturday, May 09, 2009

An actual reason to install iPhone OS 3 while it's in beta

Apple says "App Store submissions are now being reviewed on iPhone OS 3.0" so of course I'd really best test it myself before submitting, eh?

(No, I'm not anywhere near finished yet - I've only had about 1 hr to spend on it since the class.)

Warning kids - I would not be doing this if I didn't have alternate devices and full backup of my iTunes library available in case of beta FAIL.

Friday, May 08, 2009 a great way to find stuff to Watch Instantly on Netflix - Movies and TV to Watch Instantly on Netflix:

"Who is this website for?

It's for Netflix users who want to traverse and explore Netflix's catalog of streaming titles more efficiently and painlessly. All the information and cross-links on this website are limited to Watch Instantly titles so you don't have to waste time sifting through a bunch of DVD-only titles to find the ones that you can start watching right away.

You can also play or queue these titles directly from this website.

Can I use this website for free?

Yes. But you do have to have a Netflix membership to make full use of this website."

HP Mini 2140 is much better netbook with Windows 7 than with XP

"Windows 7 is the next version of the Windows client operating system. This version incorporates hundreds of improvements based on your feedback"

And it shows.

I recommend the Windows 7 Release Candidate, as long as you're cool with RTFM'ing. Go read the Windows 7 Release Candidate FAQ, then download & install.

Friday, May 01, 2009

XP to Windows 7 netbook upgrade? Windows Easy Transfer: Netbook Fail

So - MS hopes netbook users will upgrade from XP to Win7. But you can't do an in-place upgrade from XP to Win7; if you want to preserve your files & settings you need to use Easy Transfer. But Easy Transfer won't run on a resolution < 800x600. Many netbooks do not meet this - for example my HP Mini is 1024x576. Conclusion: Win7 Netbook fail. Suggestion: MS update EasyTransfer so it does not require 800x600 to function - it will not even execute. Let us netbook users live with a compromised interface but don't fail entirely.

Here's the bug report I'm going to file on Connect, but MS wants me to use the Feedback tool from the machine having the problem, so I'm going to write it up here until the Win7 upgrade finishes....


Repro: take a netbook running Windows XP. (In my case, a HP Mini 2140 with 1024x576 display.) Attempt to upgrade to Windows 7 RC1. Launch install. Attempt in-place upgrade.

Expected(but not the bug I'm reporting here): in-place upgrade from XP to Win7 works. (Yes, I know that's not a supported scenario. But it's still a big gap for Win7. Sure the folks who've upgraded to Vista will upgrade to Win7, but the folks who've stayed on XP will want to upgrade too.)

Actual (but not the bug i'm reporting here): Dialog appears ; in-place upgrade not supported for XP to Win7. Dialog explains that to preserve settings & files, need to run Windows Easy Transfer.

Repro (now we get to the bug I'm reporting) download, install and run Windows Easy Transfer for XP.

Expected: Easy Transfer launches, collects data and packages it up, then says "done" and I'm ready to upgrade to Win7 with my data ready to bring over to my future Win7 user profile.


1. Easy Transfer installs, but does not automatically launch or even offer to launch when installation is complete. Should at least offer to launch when installation is complete.

2. - (this is the key issue that this feedback item is about!) When Easy Transfer launches, it refuses to run on the Netbook display of 1024x576 because it does not meet minimum resolution requirement of 800x600. Easy Transfer should allow execution with part of the UI cut off, or adjust size so it fits on a typical Netbook display. Refusing to execute at all is not good - netbook users will follow all the instructions, and end up at a dead end. Better to have a compromised UX than none at all. Best to fix the UI constraints for XP Easy Transfer so it can be run on netbooks.

Can't Directly Upgrade XP to Windows 7; use Easy Transfer

There's no in-place upgrade for XP to Win7. You'll need to use Windows Easy Transfer for your files & settings, and get ready to reinstall all your apps.

Now, you can still install Win7 on a PC running XP; it's just going to be a clean install of Windows into a new directory so you have a fresh user profile with nothing preserved in it.

You can jump through the WIndows Easy Transfer hoops to bring your files & settings back. But get ready to reinstall all your apps.

And if you have a netbook, check out the next picture in this set for a very unpleasant surprise!

Friday, April 10, 2009

If you love your users, set them free: Blogger import/export

This is one reason I'm really happy to keep using Blogger as my blog platform: I'm free to leave any time and take my content with me.

Blogger in Draft: import export: "This summer, we launched Import / Export on Blogger in Draft. The feature lets you export all of your posts and comments into a single, Atom-formatted XML file for easy backup. You can then import the posts back into Blogger, either into an existing blog or into a new one."

Moldova, Twitter and Nothing Under the Sun is New

First off, and most important: hooray for citizens of Moldova defending their democracy and freedom. In all sincerity - good luck with that, folks!

Lots of coverage right now about how Twitter was used to route around attempts at government censorship:

Nation & World | Twitter heard as media ignore Moldova unrest | Seattle Times Newspaper: "Television stations around the world on Tuesday aired images of the violent protest, with the Parliament building and Voronin's offices on fire.

But in Moldova, where press freedoms are weak, state television chose to broadcast a soap opera and another station showed images of dance routines.

So the pro-European protesters turned to Twitter and the Internet to keep in touch.

'We sent messages on Twitter, but didn't expect 15,000 people to join in. At the most we expected 1,000,'"
So, there's two things going on here; nothing new under the sun.

First, there's a new communications technology that's used where other established ones failed, in newsworthy circumstances. In this case, Moldovans used Twitter to spread news and organize protests, and that gets some things accomplished.

Second it gets noticed by people who are interested in the new communications technology, and they say "look what great stuff people are doing with this tech we are fans of! this reinforces our belief that the tech is great!"

But that's OK. Good stuff is good stuff.

If you like this stuff, this is a great piece to go further with these ideas:

Moldova's Twitter revolution is NOT a myth | Net Effect: "As someone who started the 'Moldova's Twitter revolution' meme, I think I owe the world another essay. No, no, I am not going to renounce the meme -- quite the opposite, I'd like to step up the debate."

Wednesday, March 25, 2009

John Carmack on iPhone development: Wolfenstein 3D Classic

I always enjoy reading a good Carmack tale of software development. One of these should go in Joel Spolsky's next Best Software Writing collections.

[NB: By the way I'm talking about the Carmack who is a videogame developer (You've heard of Doom? Quake?) not Carnac the Magnificent or Cormac the author. Cormac is, like Carnac, also magnificent, but not with a capital M.]

Here, John talks about bringing Wolfenstein 3D to iPhone.

Wolfenstein 3D Classic:
Rather than having a big confrontation over the issue, I told them to just send the project to me and I would do it myself. Cass Everitt had been doing some personal work on the iPhone, so he helped me get everything set up for local iPhone development here, which is a lot more tortuous than you would expect from an Apple product. As usual, my off the cuff estimate of "Two days!" was optimistic, but I did get it done in four, and the game is definitely more pleasant at 8x the frame rate.
And I had fun doing it.
....this was the first time I had taken full responsibility for an entire product in a very long time.
This next bit is a realization that more app designers need to have. It's all about what the user wants to do. Don't make me sit for your program to load. Fer cryin' out loud, Sidekick taught us this lesson! (No, THIS SideKick, not THAT Sidekick.)
There is definitely something to be said for a game that loads in a few seconds, with automatic save of your position when you exit. I did a lot of testing by playing the game, exiting to take notes in the iPhone notepad, then restarting Wolf to resume playing. Not having to skip through animated logos at the start is nice. We got this pretty much by accident with the very small and simple nature of Wolf, but I think it is worth specifically optimizing for in future titles.
Apple's interface guidelines do practically beg developers to take this perspective, not just as a feature to implement, but as a design philosophy.

Perhaps the best quote of the article is the last line:
...I do expect Classic Doom to come fairly soon for the iPhone.

Sunday, March 15, 2009

Gnothi Seauton

The Oracle said Know Thyself.

Polonius said basically the same thing.

I really appreciate this take on it from Roger Ailes:
Another critical point: once you reach a comfortable, successful level of communications, you never have to change it, no matter what the situation or circumstances or the size of the audience. I define an audience as anyone other than yourself.

Whether there's one person or a thousand people listening to you, or if you're on television and there are millions watching [or if you're posting on the Internet and no one is watching - Dan] the essential principles hold true. The key element is that you not change or adapt your essential "self" to different audiences or different mediums. The thing that most confuses people trying to learn to be good communicators is the idea that somehow they have to act differently when giving an after-dinner speech than they would while being interviewed on television or for a job, or while conducting a staff meeting. They think they have to act all these different ways and nobody's given them the script to do this. Remember: You are the message, and once you can "play yourself" successfully, you'll never have to worry again.
Roger Ailes, in case that name is just vaguely ringing a bell, certainly has a track record of communicating effectively. These days he's blogging too, of course.

And I see Poor Richard muses (no, not that Poor Richard)
No need to reach for the stars, either, because when you know and are true to yourself, the stars are inside you. Love to cook and invent your own recipes, like Silence? So you’re not the next Emeril or Rachael Ray. Maybe you’ll end up giving the occasional lecture on garden-fresh cooking, as Silence does, to small but enthusiastic audiences. Maybe you’ll end up publishing a cookbook. Maybe you’ll just continue to delight family and friends with your creations. Whatever the end result, it’s the joy of cooking and creating the dishes that’s the real deal. Anything else is extra.
Bonus link: The Internet says The Oracle may have heard it (stolen it?) from Egyptians.

Monday, March 09, 2009

Maxim: The act of building forces one to clarify

From The Practice of Programming:
It's hard to design a program completely and then build it; constructing real programs involves iteration and experimentation. The act of building forces one to clarify decisions that had previously been glossed over....As much as possible, start with something simple and evolve it as experience dictates.

Sunday, March 08, 2009

I'd like to be in the beta of alpha

Now THIS is cool. It may not yet be flying cars and my own personal robot, but it's getting there - the future is getting closer every day.

Stephen Wolfram writes:
Some might say that Mathematica and A New Kind of Science are ambitious projects.
But in recent years I’ve been hard at work on a still more ambitious project—called Wolfram|Alpha.
And I’m excited to say that in just two months it’s going to be going live.
Mathematica has been a great success in very broadly handling all kinds of formal technical systems and knowledge.
But what about everything else? What about all other systematic knowledge? All the methods and models, and data, that exists?
Fifty years ago, when computers were young, people assumed that they’d quickly be able to handle all these kinds of things.
And that one would be able to ask a computer any factual question, and have it compute the answer.
But it didn’t work out that way. Computers have been able to do many remarkable and unexpected things. But not that.
I’d always thought, though, that eventually it should be possible. And a few years ago, I realized that I was finally in a position to try to do it.
Excited? Me? Yes!

So naturally I've signed up for the beta of alpha.

It'll go live in May 2009 at

Saturday, March 07, 2009

@kindlejunkie saved me via @twitter when @amazon's #Kindle #iPhone app didn't like me

Herein find the heartwarming tale of how the twitterverse saved me from the terrible fate of not being able to try out the Kindle iPhone app.

I cannot login - it says "no internet connection, please check your wifi or cellular data network and try again"

However I *do* have internet connectivity - and in fact if I change the PW to something wrong, the app correctly reports "Invalid email or password".

(I proved I had internet connectivity by uploading the screenshots on the spot with Pixelpipe app store link.)

What to do? Contacted amazon tech support with a detailed writeup & screenshots, but just got "can we talk to you live" and troubleshoot - great, not a known issue. I don't want to debug this, I want to play with it! :-(

But I was twittering about this, and out of the blue Julia Taylor aka @kindlejunkie started giving me suggestions:

@doofusdan Change your p/w. Make the first character a lower-case letter. The rest can be upper/lower, special or numbers.
from Tweetie in reply to doofusdan

Didn't do the trick though. I tried with another Amazon account (one I only use for things I'm going to expense for work, it doesn't get much use) but apparently Amazon decided that my iPhone was tied to the first Amazon account now. Drat. But @kindlejunkie was not giving up yet!

@doofusdan Read something somewhere about "&" in registered to name causing same error. Does that apply to you?
from Tweetie in reply to doofusdan

@kindlejunkie OMG! We DO have an & in our name! Holy cow is this just an escaped character bug? Those wacky amazon Perl hackers... :-)
from twhirl in reply to kindlejunkie

Our account name is in the form of His & Hers Lastname. I changed the name on our account by going to Your Account - Account settings - Change Name, E-mail Address, or Password. I changed it from "His & Hers" to "His and Hers" and:

@kindlejunkie the & in our registered to name WAS the cause of the @amazon #kindle #iPhone app login fail! changing the"&"to "and" fixed it!
from twhirl in reply to kindlejunkie

Poof! Instant Kindle iPhone app success!

So, my very sincere thanks to Julia the @kindlejunkie!

Behold the awesome power of the twitterverse!

(And note this is another case study that the aforementioned powers work even for people who don't have thousands of followers....)

Saturday, February 28, 2009

I realize this post is not fully baked. I've got some obvious flaws in my reasoning. But my boys are home and I want to play with them, so I'm done thinking about this for now.

If only there was a place where people would come and, for absolutely free, point out every flaw in your reasoning.

Oh, wait - I know a place like that! Good. Here you go, you million-monkey-strong critics - tell me what I'm missing!

Microsoft is getting closer in parts of Windows 7.
But there are other parts of Windows that are hopelessly crufty in both underlying tech and in UX. Often times I suspect the crap UX is built right into the functional code, and fixing the former would require completely rewriting the latter because they're co-mingled code.
(I haven't examined the source, I could be totally full of crap. But fer cryin' out loud look at the name of this blog. Do you think I take myself all that seriously?)
Now Microsoft has been, for several years, realizing that they have to fix the architecture of their code in order to deal with their UX.
Simon Guest has been big in this.
But I also think of the UW CSE Colloquia talk I saw a few years back, where an analysis of Windows' codebase was done, and the resulting spaghetti pile of circular dependencies was finally seen for what it was: hopeless. This led to a renewed effort at making Windows more modular, which ended up headinng towards MinWin and Server Core.
The Exchange team deserves big credit here; Exchange 2007 was really much more cleanly modular with its implementation of server roles. But Exchange didn't just go modular; they also went with PowerShell - AFAIK, they were the first major production use for PowerShell, and they really proved the case in the real world by making life easier on Exchange admins and providing a more powerful set of tools - and enabling people to make their own tooling much better & more easily. (Yes, yes, I KNOW *nix admins have that that for ages. Quiet. That's not the point here.)
So the importance of PowerShell is that if you architect the code so it's cleanly modular, with a regular API for other parts of the system to interact with it, you can ALSO have the UX layer with flexibility to change - and either iteratively evolve towards improvements, or even try something completely different, WITHOUT FEAR of breaking the whole thing.
Having the capability doesn't mean success is inevitable. But it sure means success is more possible than it was before the capability was there.
I was thinking about the UX (user experience) of Kindle 2. I love the form factor and the idea of it. I love the payment model - buy the thing, and it just comes with an Internet connection, no monthly payment.
And it's so close to xkcd's insight.
...I just couldn't use it for a net tablet. Because the UX isn't there.
A nettablet? Hmm, that'll get shortened to netablet. Are you net-able? net-table? Net table - that's Surface!
As I tweeted:
The more I see of the Kindle2 the more I want a tablet iPhone. C'mon future, get here already!
And when I say "future" I mean "when someone can make one of these things that has as good UX as an Apple v1.0 product"

Maxims: YAGNI: You Ain't Gonna Need It

It's true. You really ain't gonna need it. 
In software engineering, YAGNI, short for 'You Ain't Gonna Need It', suggests to programmers that they should not add functionality until it is necessary. Ron Jeffries writes, "Always implement things when you actually need them, never when you just foresee that you need them." According to those who advocate the YAGNI approach, the temptation to write code that is not necessary at the moment, but might be in the future, has the following disadvantages:
  • The time spent is taken from adding, testing or improving necessary functionality.
  • The new features must be debugged, documented, and supported.
  • Any new feature imposes constraints on what can be done in the future, so an unnecessary feature now may prevent implementing a necessary feature later.
  • Until the feature is actually needed, it is difficult to fully define what it should do and to test it. If the new feature is not properly defined and tested, it may not work right, even if it eventually is needed.
  • It leads to code bloat; the software becomes larger and more complicated.
  • Unless there are specifications and some kind of revision control, the feature may not be known to programmers who could make use of it.
  • Adding the new feature may suggest other new features. If these new features are implemented as well, this may result in a snowball effect towards creeping featurism.
And if it turns out you do need it after all, don't worry. You'll have plenty of time to do it since you saved so much time not doing that other stuff that isn't needed.

Calling Yagni on that stuff works much better than calling shenanigans!

Friday, February 27, 2009

xkcd: we won the DRM war

xkcd is right - we won the DRM war. And yet some people just won't be satisfied.

Wednesday, February 25, 2009

The Netbook Effect: How Cheap Little Laptops Hit the Big Time

I am SO looking forward to getting my plate clear enough to start bringing these in.

The Netbook Effect: How Cheap Little Laptops Hit the Big Time:
"All of which is, when you think about it, incredibly weird. Netbooks violate all the laws of the computer hardware business. Traditionally, development trickles down from the high end to the mass market. PC makers target early adopters with new, ultrapowerful features. Years later, those innovations spread to lower-end models.

But Jepsen's design trickled up. In the process of creating a laptop to satisfy the needs of poor people, she revealed something about traditional PC users. They didn't want more out of a laptop—they wanted less."

Tuesday, February 24, 2009

Maxims: 97 things every software architect should know

Other people's maxims! Or, as they call them, axioms. (They're synonyms.)
The following are the 97 axioms selected for the book, 97 Things Every Software Architect Should Know, which will be published by O'Reilly Media in early 2009. The contents are now being edited for publishing - you can see them here. All edits will be contributed back to the 97 Things web site on this page.
Here are a few random selections to tease you. I have't read all 97 of these yet - in fact i haven't even read all of these links yet - but the maxims themselves are enough for me to repost 'em. And I saw plenty more I like where these came from.

2. Simplify essential complexity; diminish accidental complexity by Neal Ford
3. Chances are your biggest problem isn't technical by Mark Ramm
4. Seek the value in requested capabilities by Einar Landre
9. You're negotiating more often than you think by Michael Nygard
10. Quantify by Keith Braithwaite
18. Simplicity before generality, use before reuse by Kevlin Henney
19. Architects must be hands on by John Davies

So - have YOU got more maxims, axioms, or pointers to other people's deeptechthoughts? Do share! I love this collected & shared wisdom idea. Might just be the basis of civilization....

Saturday, February 21, 2009

Maxim: The stuff you want to store will expand; size disks accordingly

The stuff you have to store will always expand to fill your available storage. You won't go wrong buying as much disk space in your computer as you can afford. There's ALWAYS going to be something more you'll want to have space for.

Related to Max Out Your RAM - eventaully, if the device is upgradeable/expandable, then you may want to consider an upgrade a year or so after purchase to maximize cost/benefit. But if it's sealed (I'm looking at you, iPhone/iPod!) then max out the storage from the get-go.

This posting was inspired by the tragic tale of Duane, who just realized he should've gotten a 64gb SSD in his netbook instead of the 32gb.

This is also related to Keep Your Original Source Files in the Highest Resolution Possible.

Tuesday, February 17, 2009

The Great Reset

Behavior Gap says in The Great Reset:

"A recent New York Times headline read:

“Consumers Increase Savings While Spending Less”

That sounds like a GOOD thing doesn’t it?

It used to be that savings and thrift were basic, core, American values. Check out Tom Brokaw’s the Greatest Generation if you can’t remember a time when Americans valued thrift and savings. The media is so focused on “reviving” the economy that it is now seen as a negative sign when saving increases and spending declines. I know the economy as we have known it over the last 10-20 years depended on consumer spending, but the problem was THAT WAS MONEY WE DID NOT HAVE!"

There's a few more paragraphs, I recommend reading it.

Via Seattle Bubble who further comment:
Over the last few decades, we have constructed a sham economy that was not sustainable.

When the pyramid scheme failed (as all such schemes are destined to do eventually), rather than the healthy response of “whoops that was stupid, now let’s rebuild a sustainable, sound economy,” we’re hearing nonsense like “we need to prop up housing prices” and “we need to spur more consumer spending.”

Let’s put a stop to the delusion that things can just magically go back to the way they were when everybody (individuals and corporations alike) was hopped up on leverage. It’s not going to happen, nor should it.

Falling home prices and consumer spending are the necessary medicine that must be taken to return to a fundamentally sound and sustainable economy.

Sunday, February 15, 2009

Feature Requests for the next iPhone

Dear Apple: For the next iPhone, please do the following:

1. Higher-quality camera. The target should be pictures comparable to those I can get from my Canon Powershot SD550. (That's a few years old, shouldn't be too high a bar.) I'm willing to live without zoom or flash, but the optics have to be able to pull in more light (so they can take better pictures in dimmer conditions).

2. A solution for video chat. I don't care if you have two cameras, or two lenses, or whatever - just make it work so I can see the screen and be seen by a video camera.

3. Support expansion storage. (I know that doesn't fit your business model, charging more for higher capacity devices is a HUGE profit center, just like addtional RAM in laptops are for all OEM's, and just like computer accessories like surge protectors and mouse pads are for retailers. I can still dream.)

4. More storage space - I'd like to have 64-128gb please - and faster CPU. (Well, I'll get this one no matter what.)

5. Don't treat your customers like criminals; don't ask for the law to make jailbreaking illegal.

Thursday, February 12, 2009

Guidance on Windows Deployments for Business Customers - Windows for your Business - The Windows Blog

Gavriella Schuster, who leads Product Management for Windows Client, including the Windows OS, the MDOP products, and the client virtualization strategy for Microsoft's commercial customers, provides Guidance on Windows Deployments for Business Customers
on the brand-new Windows for your Business Blog.

Gavriella, welcome to the party! As one of those you're focused on, I'm glad to have the chance to talk. (I should however point out that this blog doesn't represent my employer's yada yada; see disclaimer below.)

I'm glad to see this guidance coming out so clearly. It's really helpful to have Microsoft publicly recommending the same things I'm saying. :-)

For example:
"If you are running Windows 2000 in your environment: Migrate your Windows 2000 PCs to Windows Vista as soon as possible. Extended support for Windows 2000 ends Q2 2010, and as an commerical customer, you may soon find your business’s critical applications are unsupported."
This is exactly what we are doing. And it's precisely and explicitly because of this reason:
Testing and remediating applications on Windows Vista will ease your Windows 7 deployment due to the high degree of compatibility.
So - we'll have Vista for some deployments and upgrades that just have to happen. Gotta get off Win2k before July 2010. (Can't believe I have to say that...)

What I'd like, Gavriella, is to know that since I'm deploying Vista now, I'll be able to do an IN PLACE UPGRADE to Windows 7 on those Vista PC's, and it will be a comparable experience to deploying a service pack upgrade. (Sure, it'll be bigger and the install process will likely take longer - but I don't want it to have to be any more complex than that.) I don't want to have to put my users through another round of USMT, app reinstallation, etc. They have more important things to do!

We know Microsoft is working on an in-place upgrade program for OEM customers. I hope Microsoft is doing the same for Enterprise customers.

Windows 7 Enterprise Edition will have DVD playback (Vista EE doesn't)

You're saying "So what? Doesn't Vista have DVD playback?"

Yeah, it does - but not Enterprise Edition. When I learned this (back in about 2006) I was baffled.

I told Microsoft that enterprise customers really DO want DVD playback support in Enterprise edition of Windows. (It's not in Vista Enterprise, grr.

This is annoying because now we get to choose between paying an extra fee per user to get native DVD playback support, or having to install the stupid DVD software that comes from the OEM.

And the lovely OEM's have different versions of the packages, each of which will only consent to work on a few of their models - so we have to keep a whole library of DVD playback software and coordinate it with each model. And we can't include it in the core image, so it's a deploy-time addition, which means time waiting for the install to happen. What an annoying waste of time and effort! But not quite annoying enough to justify paying a few bucks per user times tens of thousands of users to those who pay the bills.

Happily, Microsoft listened! And Windows 7 Enterprise WILL include DVD playback. Thank goodness. And thanks for listening, Microsoft.

Windows 7 Enterprise Edition Customer Benefits - Windows for your Business - The Windows Blog: "Windows 7 Enterprise includes all end user features available in Windows 7 Professional, as well as the DVD Playback Codec"

To those of you who say "what do business users need to play DVD's for?" I say "have you ever traveled on business? what kind of jerks would your company be if they didn't even let you watch a friggin' movie on your laptop?"

But more seriously, there are business purposes for this, even without the employee perk of entertainment. Enterprise customers often have videos that are on DVD's that they want people to watch! Crazy, I know, that DVD's could hold stuff other than movies, and that some people in business could get some use from that.... but it happens!

Now, let's see if we can get MS to agree to let us use the DVD playback in Vista for free until they can ship Win7. :-)

Sunday, February 08, 2009

Maxims: reading material

Always bring something to read.

(Back in my day sonny, this was actually something that required conscious effort and planning! To get books, we had to walk 10 miles to the library, barefoot, in the snow, and it was uphill -- both ways!

Now you've got your shiny, always-connected, infinite-reading-supply devices you can bring in your pocket. You kids have it so easy! Hey! Get off my lawn!

Saturday, February 07, 2009

Staying secure while surfing - from CEO's video blog

I've been using since way before they started advertising on the super bowl - Jerry Pournelle has long vouched for them.

Similarly, I was a fan of Danica Patrick back when all she did in the public eye was drive race cars very quickly. I do snarkily note that even though her website is "enhanced" it doesn't even have her 2008 race results listed on the stat sheet! Little bit o' style over substance in that "enhancement"....then again probably < 1% of visitors to her website are looking for info on her racing career these days. :-)

This is my blog, so I can bury the lede if I darned well feel like it. I don't see any "editor" name listed here, do you? So here's the lede:

This video has a really good presentation of "how to stay safe on the internet" in just a few minutes, in a very engaging and memorable way.

I think it would have a lot more impact than a standard written list of tips or interactive eLearning. Let me know what you think!

Or if you know of other good, engaging, quick user 'safe surfing' and infosec awareness, let me know.

(This is a matter of professional interest for me at present. No, I wouldn't use this very video at work. I'm crazy, but not stupid.)

Of course it IS an internet video from the CEO of GoDaddy's blog - so if tanktops offend you, stay away!

Sunday, February 01, 2009

Dan's Maxims: Two of everything, Keep the Source, and Max out your RAM - Eventually

Always get two chargers.

It's usually easier to just accept the cost of duplication than to attempt synchronization and deduplication. The latter is really hard to get right and the costs of mistakes can be very high. The former is just a matter of storage capacity. I know which I'd rather pay the bill for.

Always keep the original source files in the highest resolution possible. You can always throw out unnecessary pixels as needed for a particular use, but you can never get them back again if you get rid of your originals. And what's unnecssary resolution/detail today will work great.

Max out your RAM - eventually. But don't do it when you buy the computer - wait a year and then buy 3rd party upgrade from a really good RAM manufacturer like Kingston or Crucial. The cost will be 25% of what it would've been to max out the RAM from the OEM. Plus you'll get a nice shiny "whole new computer" feeling just when that first blush is wearing out. (This strategy is optimized for budget-conscious geeks. Businesses and non-geeks should probably use different approaches to system capacity planning. Except businesses that are comprised of budget-conscious geeks.))

Saturday, January 31, 2009

high resolution displays, netbooks, iphones

These are notes that I was going to turn into a full blog post. They've been sitting as draft for a while. Then I just realized: hey, this is my blog. I can just publish notes. So, blah:

ibm 200dpi display prototypes

dpi of laser printers vs dot matrix

(selling inkjets vs dot matrix @ future shop)

solve the netbook tradeoff - small screen size now means not much information tradeoff. but what if you could get 1400x900 res on a 12" netbook?

compare that res to iPhone display and tell me people would have a hard time with that.

pixels = productivity

My Kindle 2.0 wish - "one more thing..."

Dear Amazon - I hope that at your super secret Feb 9 press conference, you tell us about the next version of the Kindle - and then I want Jeff Bezos to say:
"There's one more thing...

...a Kindle app for iPhone."
I'd love to see some competition with Stanza!

(Did you see that one million people have downloaded Stanza? Yikes!)

Netbook or notebook?

jkOnTheRun poses a poll question: netbook or notebook?:
"I grab a notebook and head out the door to work quite a bit and it seems that each time I do so I have to give pause and decide what gear to take with me. On the one hand I usually have a netbook to take, small and light and powerful enough to handle most of what I need to do. On the other hand I can grab a full notebook like the MacBook and take it instead."
As I commented there: I go with a netbook if I’m going to be moving around pretty much constantly, AND only need to do writing/note-taking/email/web.

But if I’m doing “heads-down” technical work - getting in the zone and grinding for a few hours straight - I really want a bigger window into my work. I need a powerful system that can run a bunch of specialized tools, maybe a VM or two in addition to the host OS, and let me view a bunch of information all together.

That spells bigger screen, higher resolution (at least 1440×900-ish), plenty of RAM (I prefer 4gb) and disk space to handle those VMs, and a relatively powerful multi-core CPU (Intel Core 2 Duo at least).

So - my perfect scenarios for netbook use are:

1. At a conference. You’re walking all day, moving from room to room, and taking notes, IM’ing or emailing the whole time. A super-light machine that fits in a small bag, has long battery life, super fast sleep/wake, and great mobile connectivity is perfect here. That's a netbook to a T.

2. A short business trip that is mostly f2f meetings and staying on top of email/IM/web communications.

3. Just running out to the coffeeshop, library or whatever for a change of scene.

4. A machine to take home to check email in the morning if I’m not rushing into the office. (This last scenario is pretty much competely unneeded now that I’ve got decent webmail from work.)

I’ve been using proto-netbook-like PC’s back since the PowerBook 100 got closed out at Costco for $900. I’m super excited that this looks like the year they breaks through into the mainstream.

Imagine, the Newton finally made it (iPhone), eBook readers (Kindle, Sony) and now netbooks too. What’s next?

I hope the answer will be Sandbenders.

I do expect we'll start seeing some super-cool tablets in a few years when OLED displays make the display part super-sleek. An HP 2730p tablet form factor but with a display only 3mm thick sure would rock....

Rhapsody can't count, doesn't realize that Firefox 3 *IS* "Firefox 1.5 or higher"

I used to be able use Rhapsody on my Mac in earlier v3.0x versions of Firefox, but now it whinges at me:

Still works fine on Safari. But I want my unlimited music in Firefox darn it! It's Saturday morning, the house is quiet, the bills are paid, and I've got a fresh pot of coffee. Let's get this done.

Hmm, let's see if I can repro this problem on another instance of Firefox.
Fire up VMware, boot my old XP VM - it still has Firefox 2 installed, so is a very good test case.
Rhapsody on FF2 works.
(FF2 nags me, as it should, to update to FF3 as FF2 is no longer being patched.) I update to FF3, and...
Rhapsody works.

Ok, so it's not a general problem. What's different about FF3 on my MacBook Pro?

Let me check the user-agent strings from both the XP and Mac instances of FF3. That's usually where apps check to see what browser version you're running check before coplaining about the browser version you're using.

Handily, there's a website for just this purpose.

Oh, Ubiquity threw an extra item into my user-agent string, that seems to have wigged out Rhapsody.

No problem, easy enough to fix that with the incredibly useful User-Agent-Switcher Firefox extension.

And voila Rhapsody works again on Firefox on my Mac.

(PS: did you notice I snuck a lesson on troubleshooting user-agent string problems into this blog post? Can't help it. I'm a bit of a pedant you see....)

Thursday, January 29, 2009

A Fail Whale for

This post was updated Feb 1 with additional information! See the bottom of the post.

We're upgrading from Live Communications Server 2005 to Office Communications Server 2007. This morning, our valiant OCS admin and the perimeter and network folks got the Edge Servers and the assorted firewalls, proxies and load balancers humming in perfect harmony. I can at long last run CoMo 2007 (Communicator Mobile) in my production environment!

Well, nifty – all I need to do is go download it onto my Windows Mobile phone. What's the URL? Happily I have my real computer with me at the time. Let's see, ah, yes that's right! They set up an easy-to-remember and easy-to-type URL that will take you right to the download. Very nice, especially for Windows Mobile users who have a very hard time of it typing in URLs (and a very difficult time navigating the rest of Microsoft's websites, for that matter). What was that URL again?

Aha, that's it – ! How simple! Great! I'm just minutes away from having enterprise IM in the palm of my hand! (And I just love my enterprise IM!)

Whip out my Moto Q9h, and… hmm, that's funny, the page is blank. No error message or anything, just a blank screen.

Try it from my iPhone. Ah, pocket Safari at least gives me an error message.

Eh? Server cannot be found? That can't be right. Try it from my laptop:

Ok, there's got to be some sort of temporary outage or something. I'll try again at lunch. And…nope.

Hmm, what's up with that?

That's no good! Well maybe we're just not asking the right DNS server. Easywhois, tell me, who does DNS for

Ok, NS[1-5].MSFT.NET, where should I find

Well there's your problem, ma'am:

So: to Microsoft and the team, this fail whale's for you!

Get well soon! Feel free to post a comment here when you get this fixed. :-)

Bonus link: the inspiring true story of the Fail Whale.

PS: I did open a case with Microsoft Premier Online. The case confirmation number is SRZ090130000453.

Updated Feb 1
: I received the following response from Premier:
"The web page says you can download the COMO version R2 from where R2 is not yet released. Its proposed release date is Feb 3rd but not sure until its released. In the same page on the right had side you have a link to Download the 2007 version of Communicator Mobile. Here is the link to download the COMO 2007. Please let me know if you have any questions. Have a nice day!"
Excellent! Now, I can just google for "getcomo". First result for "getcomo" is this page, so I can use the download link above! :-)

I guess it turns out that Microsoft was just a little premature posting the original page that says that you can download the R2 client from before that website is even available.

So this really shouldn't be a fail whale for but instead for whoever updated that web page out of sync with the actual product release. I'm very sympathetic - process problems are all too common. This wasn't a technical mistake or system problem with Microsoft's infrastructure. So by updating this post I hope it sets the record straight.

Sunday, January 25, 2009

LibX - Seattle Public Library Edition

So you're surfing the web, and you see mention of some cool book. You want to see if it's available at the Seattle Public Library. So, you:

  1. Select the title
  2. Copy it
  3. Open a new tab
  4. Go to
  5. Paste the title into the search box
  6. Click Go
Oh my goodness, that's WAY too much work! If only there was an easier way!

Fret no more, dear reader. LibX to the rescue! Install Libx Seattle Public Library Edition in your browser, and now your book-hunting life will be as easy as:

  1. Select the title
  2. Right-click and choose "Search Seattle Public Library"

If you use the Seattle Public Library, please try this out and let me know how it works for you!

I've only got title, keyword, and subject search going so far. That's plenty enough to right-click the name of a book in a book review and choose "search Seattle Public Library for [book title]."

In theory LibX editions are auto-updating so if you install now, when I do add ISBN support, you'll get it automagically.

Suggestion: I don't really care for the toolbar that gets added into the browser, and you don't need the toolbar to get the right-click goodness. To hide the browser toolbar:
In Firefox do View - Toolbars and uncheck SPL LibX. Or just hit F9.
In Internet Explorer right-click on the toolbars and uncheck LibXbar

Tip: start trying this before clicking "buy" at Amazon! The money you save could be your own....

Saturday, January 24, 2009

Windows 7 beta: 1. Windows Vista Service Pack 2 beta: 0.

I used VMware Fusion on my MacBook Pro to install Windows7 beta, and it worked great.

Tried the same with Vista Service Pack 2 beta: FAIL.

Related: TechArp says it looks like MS is delaying the release date for SP2 by a month and is planning to add an extra build and iteration to handle a last round of critical bug fixes. This is a good conservative move but I doubt they'd be doing it if SP2 was looking as good as Win7 looks right now.

The actual release candidate build has now been delayed till March. The RTM build of Service Pack 2, which was originally scheduled for April, has been delayed until sometime in Q2, 2009. That means a launch in either May or June, barring any further delays.

Sunday, January 18, 2009

Re: Instant Outlining

Dave Winer, talking about how the team that built Radio 8 was very productive because of their use of Instant Outlining says:

You also had to have a workgroup ready to use it, and that may have been the biggest reason it didn't gain traction. It wasn't hard for us to find individuals who were turned on by the idea, but when they in turn had to convince their co-workers to use the tool, that's when it fell down.

My comment was:
I hope everybody pays attention to this part of it, which Dave you are QUITE right to point out: "You also had to have a workgroup ready to use it".

I'm actually seeing, in the world of enterprise IT, a decent correlation between A+ "gets things done" types (that's a Joel Spolsky reference, not David Allen's GTD) and "eager to try new tools and -- for those that work -- willing and able to adopt and use new tools effectively".

I don't think it's a causal link, and I certainly don't think it is anywhere near a 100% correlation.

But if I was building a team today, I'd be looking for this, in addition to other requirements.
Originally posted as a comment by fullerbecker on Scripting News using Disqus.

Thursday, January 15, 2009

Beta 1 is not safe. But it is reasonable.

In the Windows 7 beta newsgroup, a certain Mike asked:
MikeXXXXXXX wrote:
> How long should people wait until we start testing say, internal house tools
> against Windows 7? Is it safe to assume that if we were to modify our
> applications to work with Beta 1, that they would work with the final
> bug-free?
My response:
It depends.

My experience is, the more of a straight ahead application it is, the
more it does stuff in standard ways and not in some weird legacy
freakish kludgey way, the less likely it's going to be to break.
Lower level stuff (vpn clients, antivirus, various sorts of drivers)
historically seems a more fragile from build to build.

If you're asking safe in terms of "my boss will frown mightily at me
if I waste dozens of people's time, and I'll be first on the list for
the layoffs that are surely coming next quarter" - then NO it isn't
safe to modify your apps for Beta 1.

But if you would get some huge benefit out of having those internal
house tools ready for use on Win7 ASAP, and it wouldn't cost you an
unreasonable amount if you did have to do it over, it's probably
reasonable to go for it.

It all depends on what sorts of risks you're willing to tolerate, and
what kinds of benefits you stand to gain.
And a follow-up:
Do your apps work with Vista? I'd say if an app works with Vista but doesn't work with Windows7, that's a little dicier than if the app doesn't work on either.

That was a little convoluted. If the app works on Vista, and is broken on Win7, then it was something that changed back in Vista that you need to fix for. That code is probably going to remain consistent through the Win7 beta. (I'm just speaking in terms of likelihood and rules of thumb -- this isn't a scientific fact.)

But if it was something that worked in Vista and is only breaking now in Win7, then you're definitely working with some code that's changing. It might be just done with changing, but it was recently in motion and probably hasn't settled down yet.

Tuesday, January 13, 2009

Schneier on Security: Biometrics

Schneier on Security: Biometrics
The biometric identification system at the gates of the CIA headquarters works because there's a guard with a large gun making sure no one is trying to fool the system.

Monday, January 12, 2009

Office Communicator 2007 install error: The file 'eulamsdnrtf' cannot be installed because the file cannot be found in cabinet file ''

I couldn't find a clean solution for this error message either via JFGI or by searching the fine MS KB, so for your Googling pleasure:

If you install Microsoft Office Communicator 2007 (MOC 2007) on a machine that already has MOC 2005 installed, when you launch MOC 2007, you may see Windows Installer run to configure MOC and then display this error message:
"The file 'eulamsdnrtf' cannot be installed because the file cannot be found in cabinet file ''. This could indicate a network error, an error reading from the CD-ROM or a problem with this package."

Restarting will allow MOC 2007 to launch successfully and log in, but when you try to initiate a text chat, you will get the same 'eulamsdnrtf' error.

To fix this:
  1. Quit all instances of Communicator.
  2. Use Add/Remove Programs on W2k/XP (Programs and Features on Vista/Win7) to remove all versions of Communicator.
  3. Then (re)install MOC 2007.

Saturday, January 10, 2009

Windows 7 works just great in VMware Fusion

Specifically, VMware Fusion 2 on a Santa Rosa MacBook Pro that has a 5400rpm 500gb HD and 4gb of RAM.

The VM has 1gb of RAM and 1 CPU allocated to it.

I'm not getting the 'glass' video effects but that doesn't really matter to me at this point.