Friday, May 23, 2008

Monday Links

MS Server 2008 as an OS: Amusingly enough, for all the hatred generated for Windows Vista, a product with supposedly a virtually identical code base is whooping up on it as far as performance goes. Some folks in the comments have suggested this might be because Server 2008 doesn't have the more intrusive DRM that currently is the biggest reason I have no interest in upgrading ("Oh, so I get a performance hit, maybe two useful new features total, and one day you can just take over my computer to prevent me from copying stuff I bought legitimately? SIGN ME UP"). Server 2008 with some minor modifications can do just about everything that Vista can do (music, movies, games, file management) and still move faster. If this forces updates like Vista does and gets at all popular, I expect Microsoft will toss in the DRM stuff. They can't seem to help themselves, they really really want control over your computer and all the software on it. There is a lot of money in it, so I can see the motivation. Brain Rules: John Medina is entertaining in this authors@google video, explaining his new book on some of the things you can do to aid cognitive function, help in relationships, and live longer without dementia. Strange Maps: Exactly what it sounds like. Want a cheese map of Canada or a 1942 map of the "new world order" (a vision of a post war world from the very depths of the war)? This is the place to find it. Gas Prices relative to income: Who is getting hit hardest by gas prices (which is to say, what percentage of your income is being eaten up by it)? I am curious if this map takes into account the average (or median, as one might prefer) gasoline consumption of the areas. It doesn't appear to, but I will attempt to recreate it when I have time to see. Map of School Vaccinations: These are the areas to point fingers to when we see a resurgence of childhood diseases. Normally I would be live and let live about this kind of bottomless stupidity, but a population that will sustain a stable habitat for such diseases will allow said diseases to adapt and render the vaccines ineffective. Also, children should not be responsible to the mass idiocy of their parents. I believe one day I will make a density map of stupidity and this will certainly be one of the variables. Top Five Programming Languages to Learn: Just like learning a foreign language but probably worth far more money if you are really good at speaking it. C# tops the list and I would agree. You can use it to add on to anything having to do with Windows, use it for web applications, Silverlight (a .NET version of the ubiquitous Flash player) and understanding the libraries will come in handy even in an open source/Linux environment with Mono.

Monday, May 19, 2008

Geodata distribution, piracy, and the future business models.

The big talk in the GIS world is the presentation Jack Dangermond of ESRI and John Hanke of Google at a recent conference (Where2.0). In it, they effectively outline the plan to do as much as possible to encourage the greater GIS community to openly offer their data to be served up by their products, which are going to be integrated in a much closer fashion when 9.3 comes out in a few weeks. A lot of firms and even public agencies offer geographic data for money, and they are probably going though a variety of stages of "freaking out". Already a lot of data that they could formerly milk has been put up in some form or another in Google Earth, VE, or NASA's WorldWind. Anyone who has taken a passing interest in the internet for the last decade can probably tell you this model, selling data for profit, is not going to work forever in the same way it always has. The sustainable model in the digital age is in offering expert, specialized services rather than trying to produce artificial scarcity via DRM or hiding yourself entirely behind a firewall. Ask the entertainment industry how the latter two options are working out. For geographic digital data, this is already happening. Go on any given piracy website and prepare to find the latest TomTom or other proprietary maps/data. Undoubtedly there are more specialized and discrete sites out there just for geodata (or if there isn't then there will be when the demand exists). This kind of thing can be mitigated by making your product very accessible (easy to buy) and superior to the free alternatives. Working with Google or other distributors to set up a one-click purchase system for geodata together with free samples and an open format. Continue to improve by offering semantic and interest associations (people who bought this also bought this, etc). Young people - time rich and cash poor - will still pirate the heck out of it. But when they join the business world they will be pitching your data to their bosses/clients. And they'll be buying it themselves because they will eventually be relatively poor in time and rich in cash. Selling to businesses will still be perfectly viable though (they assess the risk of piracy a little differently than individual actors), but the mass market is a different animal.

Thursday, May 15, 2008

The developers of this program should be punished by being forced to use it frequently

Microsoft's SQL Server Business Intelligence Development Studio is something you may never have heard of. Consider yourself lucky if that is the case. The stupidly long name is just the first in a series of entirely avoidable errors. Pretend you need to make a report - basically a table - and it combines three related tables. Simple, right? Just join the tables together and select whatever columns you want. Now add a wrinkle - the user gets to filter these results. If they only want rows related to a certain area, that is what they get. Here are the very stupid things about Visual Studio that makes it the worst environment to do this in.
  1. SQL formatting options in this thing are utter trash. Have fun writing your queries when there is no color coding and no tab delimiting. Even better: whatever formatting you paste in is also going to be ruined. Intellisense, that super awesome thing that autocompletes common code and is one of the main draws of Visual Studio for other applications? Gone.
  2. The visual tools are similarly crap. The whole drag-and-drop type of scripting is stupid on principle and apparently MS is trying to prove that point by making really bad tools to do it. Try adding a parameter into a WHERE clause in their "handy" little designer under Filter. Even if you perfectly type one that already exists, it will make a new one (throwing a 1 at the end to differentiate it).
  3. Options, Preferences, Report Properties, Report Parameters, Customize, Settings, etc. Your UI team should be flogged for this kind of thing. The vast majority of these could be condensed into a single dialog with multiple tabs. Having 987,345 places to look to find some kind of preference or option makes users silently pray for your death. You can find this in a lot of Windows Apps and it is why people smarter than me are also telling you (more politely) to reexamine your UI decisions.

Tuesday, May 6, 2008

The benefits of being a late bloomer

This isn't a post about an embarrassing teenage angst. It is actually a story about natural resources, the industrial revolution, and programming for Windows. Ars Technica, one of the better tech sites on the internet, recently did a series on the lead up to the most recent malaise we've seen with Windows programming. As I read the piece, I kept noticing parallels between Microsoft's difficulties and the early innovators in the industrial revolution. Despite the fact that you probably know nothing about the 19th century about Britain besides the fact the nascent United States kicked its ass off the better parts of North America, it is actually pretty relevant. Rule Britannia Britain ran the 19th century. It controlled all of the sea lanes, dominated world trade/finance, and ran nations which were ten times its landmass and population by occasionally machinegunning down crazy-brave hordes of natives who were attacking them with spears. It got this way because it not only was the first to recognize and reap the massive benefits from new industrial machinery, but also because it ruthlessly closed itself off in terms of technology to retain their advantage. A lot of the first major industries that started in America were based on stealing the technology anyway - not completely unlike piracy in China at the moment. In the late 19th century this initial advantage actually started to hurt them in places. A "second" industrial revolution started when better techniques for creating stuff like steel were developed. Nations a little behind the times compared to Britain could buy better stuff fresh without the perceived cost of replacing older equipment. A newly united Germany bears mention here. Relevance to Windows development Programming in Windows is a bunch of old equipment that needs replacing according to the Ars series (they are not at all alone in this suggestion). Old 16bit windows stuff will still work in the new 64 bit systems, but the odd things you have to account for to maintain this backwards compatibility makes programming new stuff for it a tremendous pain. Relatively late comers (in terms of popularity) like Apple and the more user friendly Linux distributions like Ubuntu can and do start from scratch in order to build better tools and not incur the kind of fallout that would happen if MS did the same. Apple pulled this of by creating a virtual machine for their old apps. Desktop Linux distributions don't really have to worry about this because their user base really isn't so large as to cause mass customer loss at breaking compatibility. The apparently sexier place to do development is for the web, which is OS neutral and can increasingly do stuff that was once limited only to the desktop. That stuff that still needs to be done on a local machine - heavy audio/image/video processing - have a lot of good tools on alternatives to Windows. The only exception here seems to be in the gaming industry, which in general steadfastly refuses to develop for multiple operating systems because, from what I understand, the open tools for rendering graphics (OpenGL) are more difficult to use than Microsoft's DirectX.