Darryl G. Wright reviews Fog Creek Copilot: “It does exactly what it says it does - with gusto!”
Coolest-Gadgets.com: “I’ve used remote support software before but it’s usually hassle getting it through your average NAT router. The copilot service just worked when I tried it, and you get a 2 minute free trial to check it out.”
I'll be giving a keynote address at EclipseCon 2006 next March in Santa Clara.
We're starting to do a lot more Ajax development here. The first Ajax book is out (in ebook form while the printers work on the dead-trees edition.) It's called Foundations of Ajax, by Ryan Asleson and Nathaniel T. Schutta. Ajax applications are “highly dynamic web applications that are nearly as feature-rich as their thick client brethren. Using Ajax techniques, we can provide our customers the rich user experience they have come to expect while still enjoying the ease of deployment that we’ve come to expect.” All those cool features in GMail, Google Maps, Flickr, and Oddpost that make them feel much more responsive than typical web applications are thanks to Ajax techniques.
“Custom development is that murky world where a customer tells you what to build, and you say, ‘are you sure?’ and they say yes, and you make an absolutely beautiful spec, and say, ‘is this what you want?’ and they say yes, and you make them sign the spec in indelible ink, nay, blood, and they do, and then you build that thing they signed off on, promptly, precisely and exactly, and they see it and they are horrified and shocked, and you spend the rest of the week reading up on whether your E&O insurance is going to cover the legal fees for the lawsuit you've gotten yourself into or merely the settlement cost. Or, if you're really lucky, the customer will smile wanly and put your code in a drawer and never use it again and never call you back.”
From the Good-Intentions Department
When you see an error in the Windows Event Log, there's always a handy URL that you can click for up-to-date, detailed information about why you got that error, especially since most of the errors you see in there are completely incomprehensible.
Does it work? For really common problems, it gets you an official explanation from the documentation, but it never seems to really have useful information about what caused the problem. Every time I've ever clicked it, I've gotten this:
Today I was thinking, what the dialog box really should say is, "For more information, type the text of this error message into Google," because that always gets you useful information as the first result.
Including, in this case, a couple of Microsoft knowledge base articles about this very problem that aren't linked up in Microsoft's own help system, which seems to require that someone hand-code a link between each numeric message ID and a particular knowledge base article, proving, once again, that Microsoft consistently underestimates the value of pervasive, free form, instantaneous search.
How the JetBlue Shuttle to Boston is Like Dell's Move Into Servers
JetBlue launching a shuttle between New York and Boston is a brilliant move, for subtle reasons. It's not really that they need a share of the NY-Boston market, although that would be nice. It's not that they want to strengthen their JFK hub by feeding in passengers from Boston, although that would be nice, too.
Here's my theory. They're launching this because Delta and USAir consistently make huge profits from the Boston shuttle ... profits which subsidize their other loss-making routes. By forcing down prices in the shuttle market, eliminating those excess profits for their competitors, they're going to make it harder for those airlines to accept losses on other routes elsewhere which compete with JetBlue.
Dell used the same strategy a few years ago. Originally Dell was only interested in desktop PCs and didn't really care much about servers. Unfortunately they discovered that companies like Hewlett Packard were making huge profits in their server business and using those profits to subsidize a money-losing desktop PC business, which made it hard for Dell to compete (I remember when HP desktops sold at J&R were a lot cheaper than the equivalent Dell desktops ordered direct over the Internet).
Dell's solution was to enter the server market and force those prices down, to force the other server manufacturers to stop subsidizing their PCs. They didn't originally care much about the server market, but over time, they actually improved their servers, and today the 8th generation PowerEdges are really excellent, well-thought-out servers and usually about 2/3rds the price of their competitors. HP and IBM have lost the ability to charge $10,000 for a basic 1 CPU server, and now Dell dominates both markets.
Paul Graham: “ The fact is, simplicity takes effort—genius, even. The average programmer seems to produce UI designs that are almost willfully bad. I was trying to use the stove at my mother's house a couple weeks ago. It was a new one, and instead of physical knobs it had buttons and an LED display. I tried pressing some buttons I thought would cause it to get hot, and you know what it said? "Err." Not even "Error." "Err." You can't just say "Err" to the user of a stove. You should design the UI so that errors are impossible. And the shocking thing is, the boneheads who designed this stove had an example of such a UI to work from: the old one. You turn one knob to set the temperature and another to set the timer. What was wrong with that? It just worked.”
Fax to FogBugz
I'm rather pleased with myself that for the first time in Fog Creek's history, purchase orders which arrive by fax will not actually be printed on paper and then moved from manila file folder to manila file folder to indicate their status. That's because I changed our fax system so that anything faxed to Fog Creek automatically becomes a bug in our FogBugz database. Here's how we did it.
First, we installed a fax modem in one of the servers in the closet. Remember fax modems? The top of the line models these days are about $16 and you probably have boxes of them in your attic.
Step two, we installed Snappy Fax Server on that server. Their network fax software costs $69 and does all kinds of handy things with faxes, but the only thing we needed it to do was receive incoming faxes and forward them to an email address.
Step three: set up a devoted email address to receive the faxes, and added a new Mailbox in FogBugz to check incoming email at that address and forward it to the normal customer service queue.
That's all it took! Now when a fax is received, if it's a purchase order, we just move it into a "Purchase Orders" project in FogBugz where we keep a complete history of invoices sent, payments received, etc. using FogBugz's usual history mechanism. This will make it especially easy to keep a record of overdue purchase orders, what's been done about them, etc., and now that they're not in a file in my office, anyone handling customer service can quickly check on the status of a purchase order that a customer sent in.
Visiting Cambridge (Massachusetts [USA]) for a party at Y-combinator made me jealous about how much more vibrant the hacker/startup scene is in the Boston area than it is in the New York area. Or maybe it just seems that way, because Paul Graham and his crew have done a remarkable job of attracting a first rate flock of smart young entrepreneurs by providing seed funding for a bunch of new startups. I probably talked to a couple of dozen people and they all seemed really, really smart and enthusiastic.
Is New York just lame compared to Boston? Or does it just seem that way? Why is that... is it because of MIT? or all the other high tech stuff going on there? Is it the high cost of living in New York? Or the fact that we have too many distractions, and it's not a good place to concentrate on making a startup? Or maybe it's because investment banks, hedge funds, advertising agencies, and media companies suck up all the oxygen? One bright young Harvard grad I met at the party has a job as the full-time, personal system administrator maintaining the PC of a famous hedge fund manager ... (Dude, come work for Fog Creek... we can waste your talent in a much more laid back environment.)
Multitasking in the Workplace
New York Times: Big screens are good, interruptions are bad, etc. The stuff about how long it takes to pick up a train of thought after being interrupted is really cool; I've been claiming this based on my own experience but I never had anything remotely scientific to prove it. You can read the original papers by Gloria Mark on her web site.
She also tries to pin down whether it's more productive to be "collocated" or not, by which, I think, she's comparing the number of interruptions suffered by people in private offices vs. open spaces. The bizarre thing she claims, which could be true, is that open-space-dwellers actually get voluntarily interrupted less because people can quickly see whether they're interruptible or not. She does mention that open-spacers do frequently decide to "interrupt themselves" to participate in another conversation that they overheard, something which is probably net beneficial for the team's productivity but which drives me crazy.
I keep claiming that private offices are more productive than open space plans or cubicles, but the one advantage of open space which people keep bringing up is all the accidental, serendipitous knowledge transfer that takes place when everyone overhears everyone else. I think it's not worth the productivity loss caused by an increased number of interruptions. This summer when we had four interns building a new product, we had to put them all in a single open space because we ran out of offices (oops). Watching the four of them work together, you could clearly see that ad-hoc, impromptu conversations were somewhat valuable, but you could also see that anything that interrupted one person (e.g. when I wandered over to discuss some tiny issue with one of the interns) it ended up interrupting everybody -- those tiny issues inevitably became conversations with everybody, thus interrupting 3 people who had no reason to be interrupted and who would take an average of 25 minutes to return to what they were doing.
Also, I think that private offices have remarkable benefits in terms of your ability to attract and retain talent and people's general happiness at work, which leads to increased productivity because you're hiring better people and they're happier. We're doubling the size of the Fog Creek offices as soon as we can, and our goal remains to put every developer in a private office.
We're accepting applications for summer internships (2006) at Fog Creek. The deadline is February 2006.
I'm glad Microsoft is upgrading the Jet engine once again. Even though they tried to tell application developers that we needed to move to MSDE/Sql Server Express, we know that our customers want their data in a single file and don't want to have to install and administer SQL Server just to get to that file.
In the minus column, Erik Rucker seems to be saying that the new Jet engine won't be redistributable. “Developers can still program against the Access engine, but since it isn’t part of the system any more, application users will need Access on their machines.” Great. That makes it nearly useless to typical ISVs developing Windows apps, so I guess we're stuck with the creaky old Jet 4.0.
I haven't heard the whole story yet, but Erik also says that the main big new Jet feature is this clever way of doing many-to-many relations between tables that was done solely to benefit SharePoint. That's nice, hon', but it doesn't seem like such a big deal. I'm hoping Erik has a Jobsian "just one more thing" up his sleeve.
What I'd much rather see is real, authentic, fast full-text search. Access (Jet) 4.0 just doesn't have full-text search at all, and it will be pretty darn disappointing if Access 12 doesn't have a good, instant full-text search feature that's native and built in to the engine at the deepest levels.
When we work on FogBugz, whether with Access (Jet), SQL Server, or MySQL as the backend, we spend way too much time trying to get full-text search to work even moderately well. SQL Server 2000, even though it technically has a full-text search feature, actually has a very-badly grafted-on full-text engine that is poorly integrated, slow, unreliable, and assumes that programmers have nothing better to do than think about when the indexes are built and where they are stored. In production, the full text engine grafted onto SQL Server 2000 falls down all the time. In particular, if you use a lot of databases and frequently detach and re-attach them (what we were told we have to do in order to use SQL Server as a "file oriented" database like Jet), the full text search indexes get all screwed up. They rely on insanely complex chunks of registry data to associate indices, stored in files, with databases. It is almost monumentally difficult to backup and restore full text indexes.
The fact that it's 2005 and I can't buy a relational database from Microsoft that has full text search integrated natively and completely, and that works just as well as "LIKE" clauses, is really kind of depressing.
A very senior Microsoft developer who moved to Google told me that Google works and thinks at a higher level of abstraction than Microsoft. "Google uses Bayesian filtering the way Microsoft uses the if statement," he said. That's true. Google also uses full-text-search-of-the-entire-Internet the way Microsoft uses little tables that list what error IDs correspond to which help text. Look at how Google does spell checking: it's not based on dictionaries; it's based on word usage statistics of the entire Internet, which is why Google knows how to correct my name, misspelled, and Microsoft Word doesn't.
If Microsoft doesn't shed this habit of "thinking in if statements" they're only going to fall further behind.
Now I'm really excited... I saw the preview of the upcoming Project Aardvark movie and it's simply amazing. You're going to really dig this movie.
VentureVoice ran an interesting (MP3) interview with VC Brad Feld, who built a consulting company and discovered that consulting doesn't scale as well as products. “We determined that the profit level we were generating at 20 people, well, if we grew to 40 people we’d obviously double the revenue, our profit would probably be exactly the same.” He also talks about why it's really hard to make the leap from consulting to products. Great interview.
While I'm on the subject, VentureVoice also ran an excellent piece about launching companies at the DEMO Conference.
Architecture Astronauts Are Back
I'm starting to see a new round of pure architecture astronautics: meaningless stringing-together of new economy buzzwords in an attempt to sound erudite.
When I wrote my original complaint about architecture astronauts more than four years ago, it was P2P this and messaging that.
"That's one sure tip-off to the fact that you're being assaulted by an Architecture Astronaut: the incredible amount of bombast; the heroic, utopian grandiloquence; the boastfulness; the complete lack of reality. And people buy it! The business press goes wild!"
Now it's tagging and folksonomies and syndication, and we're all supposed to fall in line with the theory that cool new stuff like Google Maps, Wikipedia, and Del.icio.us are somehow bigger than the sum of their parts. The Long Tail! Attention Economy! Creative Commons! Peer production! Web 2.0!
The term Web 2.0 particularly bugs me. It's not a real concept. It has no meaning. It's a big, vague, nebulous cloud of pure architectural nothingness. When people use the term Web 2.0, I always feel a little bit stupider for the rest of the day. To quote the line from Billy Madison:
Principal: Mr. Madison, what you've just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul.
Billy Madison: Okay, a simple no would've done just fine.
Not only that, the very 2.0 in Web 2.0 seems carefully crafted as a way to denegrate the clueless "Web 1.0" idiots, poor children, in the same way the first round of teenagers starting dotcoms in 1999 dissed their elders with the decade's mantra, "They just don't get it!"
I'll do my part. I hereby pledge never again to use the term "Web 2.0" on this blog, or to link to any article that mentions it. You're welcome.
And While I'm In A Bitchy Mood
Boy, am I glad I don't work at Microsoft any more. The joy is gone when adding an easter egg is "immediate grounds for termination," and a fun video they made for a conference doesn't have a soda can in it because "none of the soda companies would give permission for their product to appear in this video."
Still, it beats the hell out of listening to one of those podcasts about podcasting or reading one of those blogs about blogging. Unsub-frickin'-scribed.
And now, back to my normal sunshiny self.
Something Rotten in AdSense
Google AdSense is a system for web publishers of all sizes, from big newspapers to tiny bloggers. They sign up with Google to place a small box full of text ads on their site. You've probably seen it, but if you haven't, check out Michael's techInterview site for an example.
Advertisers pay Google to have their ads appear in little sidebars. Well, that's not technically correct. Advertisers actually pay Google if anyone clicks on those ads. In turn, Google gives a percentage of the money to the web site owner. As a web site owner, you can make some serious spending cash this way. Popular sites make hundreds or thousands of dollars a month.
The minute you put AdSense on your site, you might start thinking, hmm, gosh, what happens if I click on the ads on my own site? Will I make more money?
Probably not much. This problem, called clickfraud, is a tricky one, and Google claims to have algorithms to prevent it. They won't tell us what they are, justifiably, I think, because that would it easier to defeat the algorithms. Still, how would you explain complaints like this one from an advertiser:
When I activate my AdSense campaign, not much more than 5 minutes go by before they are all over it.. Multiple clicks from the same Internet IP's in Malaysia, Poland, Hongkong etc. (I tried to exclude certain countries in my AdSense account, but they seem to go through proxies, so its not much use)..
Tried just now and within 2 minutes I had around 20 clicks, which were clearly fraudulent (they seem to use some kind of tool - no pictures on the site were loaded according to my log). I guess that was around €20, which went up in smoke there. The super-duper top secret internal Google clickfraud prevention system, which is supposed to deduct the invalid clicks at the end of the month, only seems to catch an extremely small fraction of the clicks, but not nearly enough. I can't see which clicks I actually pay for in the invoice from Google, so it's a bit hard to say.
When you connect the dots, what seems to be happening is that scammers are doing four things.
There might be a technical solution to this, although I can't think of one offhand. The minute companies start cutting checks to "affiliates" at the end of the month that are based on nothing more than clicks, you're bound to get the AllAdvantage phenomenon. AllAdvantage was probably one of the most spectacularly stupid business ideas to come out of the first Dot Com bubble: a company that paid you to look at ads. That's because they fell victim to one of the better business ideas from the first Dot Com bubble: hiring armies of low-paid workers to look at AllAdvantage ads.
Eventually, it stops benefiting the advertiser, and the advertiser figures it out, and stops paying for the whole charade.
It is important to remember that AdSense is just one part of Google's revenue. A more significant part is AdWords, which covers the ads that appear on Google's own site. AdWords are still susceptible to some fraud, although you can't make money clicking on those ads, so it's much less of a problem. There is a minor problem where advertisers hire clickers to click on their competitors' ads, which cause their competitors to waste money, but that's penny-ante stuff, and rare enough that advertising through AdWords still works well.
Still, with Google rapidly approaching 50% of the global search market, they can double the number of searches they get on their home page, but not much more than that, unless they can get more page views somehow. Which is why they are frantically trying to sign up non-fraudulent web sites for AdSense (they call me every two months) and constantly seeking new sources of ad inventory, which sounds a heck of a lot like what the web portals of the 90s tried to do.
This is where Google is actually hurt by the long tail world of millions of small sites. It's easy to evaluate the top 100 or 1000 web sites to make sure they're reasonably legit. It's much harder to monitor 1,000,000 blogs to make sure that none of them were machine generated for the purpose of scamming AdSense revenue. Still, I don't think Google has a choice: I predict that you'll see a massive expulsion of smaller AdSense sites by Google, and it better happen soon, or AdSense will ruin Google's reputation among advertisers, something which could be deadly.
What caused me to fly off the handle about architecture astronauts was, indeed, this conference, organized by Union Square Ventures, a local VC. You can try to read the transcript online and see why I was so agitated, or just read the post-mortem, including my ungracious comment, on USV's blog-site.
eBay and Skype
Here's my highly irresponsible, off-the-cuff theory of why eBay bought Skype, because none of us believes that nonsense about how this would "allow people to talk to each other during auctions." (Hint: eBay didn't need to buy Skype just to allow people to talk to each other during auctions. Skype worked fine for that purpose without being owned by eBay. So that couldn't possibly be the reason).
My theory goes like this.
EBay generates a lot of profit, which gives them a lot of cash, which they have to reinvest somehow or else give it back to the shareholders. If they give it back to the shareholders, the executives at eBay won't be able to justify their ginormous salaries. So that leaves reinvestment.
A lot of big, profitable tech companies -- Amazon, Microsoft, and Google -- especially Google -- hired carefully and have very good software development organizations. Especially Google. When they have extra money, they try to build something new. Whether it's A9, .Net, or Gmail, it's designed and built in-house in hopes of getting into a new business.
But eBay somehow got taken over by a swarm of MBAs way too soon and became an organization that was basically incapable of developing software. The evidence for this is the whole BillPoint/PayPal fiasco, in which eBay tried to create their own payment system, BillPoint, but found themselves so constitutionally incompetent at creating software by themselves that a scrappy team of outsiders at PayPal made a system that eBay users preferred 2 to 1, despite the fact that eBay repeatedly tried to force auctioneers into using BillPoint instead. (Eric Jackson wrote a very good book about it, The PayPal Wars.)
Full credit to eBay for recognizing their weakness, though. Since eBay realized they couldn't build things, they have to use their cash to buy things instead. This is what MBAs like to do anyway. They don't completely understand how to make companies but they do enjoy buying and selling them.
Good for eBay. The only problem is that this kind of acquisition, especially combined with Google's blockbuster IPO, is leading people to think there's a new bubble underway somehow, which is causing investors to try and figure out if del.icio.us (say) might be the next Skype because they're both "Peer Production" or something. Hint: Skype has nothing to do with del.icio.us. Nothing. I don't care if you manage to come up some architectural abstraction with that seems to include both. It's not going to make del.icio.us worth $2.6b, because del.icio.us, architecturally, doesn't have that "free phone call" feature.
Until now, most of our hires have been programmers. That's a start, but we need to start hiring the next generation of management too. So today we're launching the Fog Creek Software Management Training Program, an intensive three year program designed to teach you everything we know about the software industry.
Here's what I'm trying to accomplish with the slightly redesigned homepage you see here.
Notice the new column of text over on the left? That's the first big change. What used to be there was a lot of links and little graphic blobs and other bits and pieces of the flotsam and jetsam that bloggers like to put in their marginalia that links to other stuff. Most people on the web today have learned to completely tune out the navigation column; it seems about as exciting as the credits at the end of a movie.
The trouble was that new users would land on my site, having followed a link from somewhere, and they would have absolutely no idea what was going on. They were on some kind of site, there was this guy, Joel, he was saying things, so what? The home page, like the home page of many blogs, wasn't really serving first-time visitors.
I was finally motivated to get off my butt and fix it by reading Jakob Nielsen's recent post about Weblog Usability.
The theory here is to divide the home page into two columns, one for first-time visitors and one for everybody else, and by using narrative and full sentences in the navigation/first time visitor column, I'll actually seduce some people into checking out what's over there.
There are two other small changes. My public calendar has moved up to the top right corner. And home page postings will now have titles, instead of dates, because the RSS people kept complaining about that.
Non goals: I made no attempt to be slick. A long time ago I paid a top web designer, Dave Shea, who created a stunningly beautiful design for me to use. It ended up looking a little bit too shiny, though, so I never used it. This is a site designed by me, badly, using my poor Corel PHOTO-PAINT skills and my crappy amateur photos and my affection for the font "Georgia" and my poor eyesight (thus the largish font). It's not some kind of corporate blog developed by the marcomm department at a company that desperately wants to get people to pay attention to their new brand of laundry detergent. The more it looks like it was designed by a geek, not a graphic designer, the happier I am, because I am a geek.
The changes haven't completely permeated the inner pages yet, but that's only a matter of time.
1111 posts over 13 years. Everything I’ve ever published is right here.
There’s a software company in New York City dedicated to doing things the right way and proving that it can be done profitably and successfully.