Wednesday, October 22, 2008

What Do Search Engines Know that is NOT on the Internet?

When a company is as secretive as Apple, everyone loves to speculate about what they're going to do next. The latest rumor is that apple is about to jump into low-cost, ultra portable PCs (aka Netbooks). While this may or may not be true, something in one speculative article caught my eye.


That would seem to confirm findings that a search engine company shared with me on condition that I not reveal its name: The company spotted Web visits from an unannounced Apple product with a display somewhere between an iPhone and a MacBook. Is it the iPhone 3.0 or the NetMac 1.0?


Forget the stuff about the NetMac and the iPhone. What's interesting is the source: a "search engine company". They may be in the business of organizing the information ON the internet, but because of their position, they actually have MORE information than is on the internet. Given their vast search logs, what else do they know that none of us COULD know?

Tuesday, October 21, 2008

You Need to Know Marketing, Start with Seth Godin

I've been following Seth Godin for a while now. His book, Purple Cow, is a great read, and I just discovered that one of his earlier books, Unleashing the Ideavirus, is available online as a free eBook. You can download it here.

We geeks tend not to care much for marketing. I know I've my share of unpleasant run-ins, but instead of avoiding the business end, I've decided to learn more about it. Seth's books and his blog have turned out to be great resources.

VCBUILD : error Message: '9.00' violates enumeration constraint of '7.00 7,00 7.10 7,10 8.00 8,00'

I upgraded a Visual C++ project from Visual Studio 2005 to 2008 today, and my MSBuild script stopped working. It spat out the error message below and Google was no help.

VCBUILD : error Message:
'9.00' violates enumeration constraint of '7.00 7,00 7.10 7,10 8.00 8,00'

I made two changes that seemed to fix the problem:

1. Use the MSBuild.exe in \Windows\Microsoft.NET\Framework\v3.5\ instead of \Windows\Microsoft.NET\Framework\v3.xx.

2. Pass MSBuild the "/toolsversion:3.5" flag.

I hope someone out there finds this useful.

Check out this Good Video on Getting Real

Heard of Getting Real? Here's a video of Jason Fried (one of the authors) speaking at Business of Software. Check it out. If you have or haven't read the book its a good resource for familiarizing yourself with the concepts.



Thanks to Balsamiq for the pointer.

Also, I just found these videos over at Carsonified. I'll be checking them out this evening.

Sunday, August 24, 2008

Why should I bother with multicore?

The September 1 issue of Fortune has an article on multicore processors (I don't think there's a link yet). Basically, it's telling the business folks what we've known for a while: the free lunch provided by Moore's law is over, and no one really knows how to program for these systems.

None of this is news to us. So why am I wasting your time bringing it up again? Well, I want to know who this is really going to affect. If we assume that most software will eventually be delivered over the web, the heavy lifting is going to be done on the server by something like a LAMP stack, and you're going to use JavaScript for the blinky lights. This is going to change how to approach concurrency, and how you take advantage of multicore, if you can.

On the server, a multicore chip is simply going to mean more thread in Apache or more Mongrels. How much to you really win by spawning multiple threads to handle a request though? That's just one more thread waiting for the database query to come back over the network. Likewise on the client. What are multiple threads going to get you other than more resources allocated to waiting on an Ajax call? I guess you could argue that it'll allow the UI to be more responsive, but we already know how to do that.

Before I get flamed, I want to mention that I am in fact aware that there are some areas that really do benefit from the increased horsepower. In particular: games, audio/video, large scale data processing. We already know that each of those can benefit from parallelism. What can your average web application do with those kinds of features though? Or rather, where should I be looking for application domains that take advantage of this new technology rather than simply have technology for technologies sake?

Tuesday, August 19, 2008

Code Sucks

Most code sucks. Mine included... especially mine... but other people's too. Despite the best of intentions and planning and playing with paper sketches and squiggly lines, all code eventually turns into an impenetrable mess.

You can follow all the rules about writing code and organizing modules and whatnot, but you end up in the same place. The problem is that we don't know the rules to writing software yet. The rules we do have a contradictory. We work with people that don't know the rules and/or don't know about them.

It drives me insane.

Sometimes you can fix parts of the code. Line by line, class by class, you can refactor and test as you go. Or, at least, that's what I thought. Sometimes there's just too much inertia. Your best code doesn't work in the presence of the existing code. Sometimes the code, the project, and the team are just too far gone.

It's a sinking ship... and there's no honor in going down with her. Man the lifeboats and wait to get picked up by another ship.

Saturday, August 9, 2008

Its the Software, Stupid

I've had the opportunity to work with high end smartphones for almost my entire career. What I've learned is that the handset manufacturers like to sell based on hardware features while the carriers (ie Verizon and AT&T) like to run their own versions of the software. The result is a package that's never quite satisfying. In most cases you end with a hunk of plastic that, despite grand claims, can't do much more than make phone calls.

Last week, I dumped Verizon for AT&T so I could get an iPhone. Here in Columbus, Verizon has the best network, period. AT&T's coverage is rather spotty. I put up with it though because the iPhone is the first handset that get's the hardware/software package right (translation: the hardware is decent and the software actually works).

Verizon offered us a deal on the LG Voyager to try to get us to stay, but they completely miss the point. No one wants a phone because they look similar on a spec sheet. A smartphone is going to sink or swim based on the strength of its software. And until the rest of the market gets this and stops half-assing their software, the iPhone will win.