Thursday, January 18, 2007

Manual Reverse Geocoding


So this guy's letter was delivered without an address- just a map. Reverse geocoding at work. Humans rock- it's dead hard to get a computer to do this. Actually, maybe I should just say the the UK Post rocks, I can't see our USA civil servants doing anything with this besides sending it to the DLO or trying to arrest the person that sent it for subversive activities.

One of the worst experiences in my life was spending three days geocoding a dataset of points for Wien (aka Vienna, Austria) with ArcView 2.1. (ArcView would try to suggest a point, and I would try to move it to the right place.) House numbers there don't follow a very organized pattern, and I hope the errors I inevitably must have made didn't get anyone killed. Or didn't get the wrong person killed, or anything like that.

link via: /usr/bin/girl , which incidentally is one of the first blogs I ever read.

Sunday, January 14, 2007

Beautiful Brochure...ugly product

I have been doing a light evaluation of some software products in anticipation of some upcoming requirements for a project I am working on. The product that the architect in my position before me had been ready to buy is a real piece of work. It commits three violations of trust that no company selling software should:

1. Where's the product?
I don't trust that there even is a product when you can't go to the website and have any clue about how to buy the product or even a wild guess as to it's cost. You can download a gloriously illustrated brochure of bullet points of software features, with teeny tiny pictures of UI. You can read about solutions and services, but you can't buy anything? It sounds like a services trap: call us, we'll figure out how much money you have to set our price, then buy/rent our software and we'll finish it for you at an hourly rate, but own the code we write for you.

I guarantee there isn't a "there is no three step" install process.

2. UI design = sorry, we spent all of the design money on our brochure.
What does it say when a company has an obviously professionally designed and frankly beautiful brochure, but their actual product looks completely undesigned and frankly is just plain hideous? They care about people's experience until they have their money?

3. No mention of an API anywhere.
Monolith sensors on full alert. This thing has to integrate with my enterprise, I don't need to buy an ERP system where everything is a module of your system, versus a distributed architecture. (no one does need to buy a "complete" ERP system...ever) Currently dealing with the seemingly vast, but still incomplete, APIs of Microsoft Dynamics Great "Pains" has me watching out for software that makes itself hard to fit into a distributed world. This software isn't even a web app, so there's no chance of URL hacking.

Sorry, no dice. I am specifically not naming the guilty party here so that they don't begin any legal actions against me for defamation of character, or in case I decide to apply for a job there someday to rewrite the thing. I'll post an offensive screenshot at some point in the future on an unrelated topic.

Saturday, January 13, 2007

Refactoring Ruby

Jay Fields and friends are rewriting/porting Martin Fowler and friends' Refactoring: Improving the Design of Existing Code book to Ruby. I guess since the IDEs aren't there yet, we might as well get going on the manual process! Good show to Jay et. al. They've made a dent in the first section, hope they keep it up.

I still keep a copy of Refactoring on my desk. It's one of about 20 books I still need to keep around on my desktop. The content is somewhat timeless, and (was) not readily available on the internet. Still, the Jav-oid nature of the text makes it a little less relevant to my current world of Ruby. It also serves as a badge of good programming knowledge.

I've been selling off a lot of my other books on Amazon. Someone bought the Sun Certified J2EE Architect guide from 2002 for $16. Someone else bought Rod Johnson's old Expert J2EE development, the early edition, before he finished Spring, for $15. No takers on Tapestry yet at $10. Many books have a used value below a $1. I am debating what to do with them as it's not worth my time to sell them. The chances I need a Turbo Assembler reference have dropped about as low as they can, no library would want it, still, it was a good book in it's day, and it is sad that it is no longer relevant to anyone's life. I also think "professional Java Web Services" is probably not worth the shelf space. Well, maybe it will be recycled into a better book someday.

Thursday, December 28, 2006

Zed Shaw


Zed is king of the internet...for now.

If anyone out there is using this newfangled Ruby on Rails framework, Zed's (open source) Mongrel product has become the de facto container for running your app. It's a tiny little c program, and dead fast and stable. He co-wrote a little PDF on it that I had printed on a pillowcase. It's so comforting to know that my apps are running on Mongrel that the pillowcase serves as a little reminder so that I can go to sleep- without a glass of wine and one of those little blue capsules.

For a more general interest look at why Zed is such an interesting character, check out his essay blasting Joel Spolsky and Don Norman's articles on simplicity vs. complexity. If you aren't following that "debate", good for you...I'll summarize though- some people think simplicity is good. Some people think complexity is good. The people that are right think that good design makes complex tasks as simpler as they can be, but no simpler.

Friday, November 10, 2006

Metrics

http://www.joelonsoftware.com/items/2006/11/10b.html
I love Joel's send up of management consulting applied to software development through the use of metrics.

My question is a real one though. The CEO of one of the places where I work as a "working" consultant (in terms of actually doing productive work, not just analyzing what other people do) just downsized a whole bunch of smart people. He wants to look at our metrics- including things like customer satisfaction. That's going to be tough to measure. How do you measure customer satisfaction in such a way as to rate people on it?

I think step one for me is figuring out who my customers are...I am taking over a project that one of the downsized guys was running, and I haven't even met some of the key stakeholders. When I do, I am going to be sure to remind them to send a monthly note to the CEO reminding him of how satisfied they are! If he gets 5 or 6 of those notes per month, that would be a good metric.

Of course, then the only way to show continuous improvement is to increase the number of messages, or the intensity of the satisfaction they convey. So, I guess I should only tell one person the first month, and then two people the next month. And, I'll need a satisfaction score in order to quantify the satisfaction level. It should probably be an integer, so that it can go negative to indicate dissatisfaction, not that I would tell any of the dissatisfied to send email, they would just do it on their own anyway, and could include a little number. Then he just sum the satisfaction level to get total satisfaction index. With multipliers added to gauge the relative importance of the people that are being satisfied, maybe the multiplier would be their salary divided by 100k.

Hmmm, I don't know how else to do it, but I am afraid if I pose this, I will look like a sarcastic jerk...even though it's just the best I can do sometimes.

Wednesday, October 04, 2006

Rails for Java Developers- beta book


I just started reading the early beta of Rails for Java Developers. It's a new book published by the Pragmatic Programmers and written by the Relevance guys- Stu and Justin. Perhaps the most shocking thing is that they have time to write a book. I have been lightly involved in the review process for O'Reilly's upcoming "Rails Cookbook", currently available as a Rough Cut. It's a lot of work to stay current with a moving target and make sure all of the code works.

As far as the book goes, I think it really is going to fill a gap in terms of being a reference for people that know how to do something in Java, and want to know what the equivalent thing is in Ruby on Rails. It's like those options in a new version of a product to see the menus for the prior version, so that you know where to find things. Of course, I haven't tried much in the book yet, so I can't speak to it's quality, but I like the tone and the approach so far. It appears to be just over half way to their 300 page target, so, there's a lot to do before Nov.

Tuesday, October 03, 2006

Google Enterprise Professional- on earth

Google's expanding their partner program to include "Google Earth Specialists" Spatial Energy. Noah D. wrote a brief note on the enterprise blog. Our company joined the partner program initially to do things with the search appliance, but maybe the earth appliance is around the corner.

Spatial Energy looks like they have an interesting angle. It's a good match for companies with a lot of experience in imagery and orthorectification to get involved with Google Earth Enterprise. If you want to make a good looking globe, you need some good looking data. Their focus is in the energy market, where perhaps the inability of Google Earth to look underground will be felt more acutely? If anyone in the energy community is in Houston on Oct. 18, they are doing a seminar that is going to cover a few topics, including SketchUp integration.

Tuesday, September 26, 2006

GE COM API...beta

Hey, it's finally a beta, and documented. Cool! Still really limited, but if you want to control GE with another program, here you go.

http://earth.google.com/comapi/

The announcement...
http://bbs.keyhole.com/ubb/showflat.php?Number=613531

Tuesday, September 19, 2006

Updates to Google Earth COM API

Well, they haven't documented it yet, so I am guessing it's still not stable, but there are additions to the API in the recent versions of Google Earth, and the library has been renamed to EARTHlib, versus KHlib. For starters, it looks like they are renaming the objects to have a GE suffix, versus a KH prefix (e.g., KHFeature to FeatureGE). By keeping the old ones around, they may be doing a quiet kind of deprecation. The new GE objects have more properties to access and support some more methods, but don't really add a massive amount of new capability at first glance.

The ApplicationGE class which is the primary class used to inspect and modify the current state of the running application adds a few features to the old KHInterface class. You can now access the lists of items in the layers controls, the current status of the streaming, login/logout and do a few things with popping up balloons.

FeatureGE adds the ability to highlight, get the feature's name, and get parents and children to the old KHFeature class. A FeatureCollectionGE class has also been added, it's just a strongly typed list.

CameraInfoGE adds the ability to grab the FocusPointAltitude and FocusPointAltitudeMode (absolute or ground relative) to KHViewInfo.

We've seen this interface get a lot of use from things like the cool SketchUp! integration and a lot of the remote control plugins. I am still waiting to be able to use Google Earth to control other applications. I understand their reluctance to open up their beautiful interface to the button overload that will surely result, but I really don't think your average user will be downloading all of the plugins...

Sunday, September 17, 2006

getting paid...

Just read this rather amusing Chicken McNuggets bit [link at end] from HBO's The Wire, and it resonated because I was just signing away part of my intellectual property rights to the work I do...or rather trying not to. Of course, it probably took more than one guy in the basement to come up with the mcnuggets, but it's highly unlikely any of them getting paid for it. It wouldn't take much of a percentage, per nugget, to be rather well off.

Of course, there may be some associated guilt with creating an unhealthy food, but they do save a lot of time. I mean, all of that time saved not having to pull all of the skin, bone and fat off of the chicken could approximately be equal to the time shaved off of your lifespan by consuming the partially hydrogenated blended version of the skin, bone, and fat. (There may be some meat in there as well, it's hard to know.)

Anyway, don't be the McNugget guy. If you don't care about getting paid for your ideas, you might want to at least MIT-license them, so it's harder for other people to get rich off of them without adding their own special sauce.

Warning: Link from NIVI Blog contains offensive language. I am pretty sure this isn't really family blog, although Google Analytics doesn't tell me how old you are, yet, but if your every click at work is analyzed and the stream is then fed into the old raise-o-meter at the end of the year, it's probably good to keep the premium cable content to minimum.