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.

Friday, September 15, 2006

GE timeline...

Yes, this update is very cool. Three lines of code added to my little Ruby application with XML builder to support it:

xml.TimeStamp do
  xml.when(event_date.strftime('%Y-%m-%d'))
end


gets added to every xml.Placemark do

makes:

<TimeStamp>
  <when>2006-08-28</when>
</TimeStamp>

Which gives you a pretty floating toolbar...
that animates your map view. This was in the old enterprise client, but a little buggy and nowhere near as pretty. In a word...wow!

Wednesday, September 13, 2006

Piling on old Joel

Joel Spolsky, famous for the Joel on Software blog, is a funny old man. He's been doing a lot of hating on Ruby and Java for a while now. His latest complaint about Ruby is idiotic...it comes down to the fact that it's not fast enough for big calculations. I guess we are all missing something- but what big calculations is his bug tracking software doing? Does it fix the bugz in your code?

Most Rubyist use c extensions in those cases. I used to drop out of Avenue to call signal propagation algorithms written in c++ rather frequently. Even in Java, we used JNI calls in various places for image processing code. And then the c and c++ programmers drop into assembly for the truly ludicrous optimization requirements. And then we buy an FPGA and do it in hardware. Has anyone tried orthorectification with this stuff from Cardio Logic?

In his quest to have a flexible high performance language, Joel is actually using a custom language based on VBScript (that compiles to...VBScript) for his little web app. To ease deployment. And it's called Wasabi.

Dion's satire is amusing but I have to point all to Jeff Atwood's excellent deconstruction over on Coding Horror. A snippet:

"For instance, two weeks ago we found out that Joel's company wrote their flagship product, FogBugz, in a proprietary language they created themselves.

FogBugz is written in Wasabi, a very advanced, functional-programming dialect of Basic with closures and lambdas and Rails-like active records that can be compiled down to VBScript, JavaScript, PHP4 or PHP5. Wasabi is a private, in-house language written by one of our best developers that is optimized specifically for developing FogBugz; the Wasabi compiler itself is written in C#.

You couldn't possibly have heard it, but that was the sound of fifty thousand programmers' heads simultaneously exploding.

Writing your own language is absolutely beyond the pale. It's a toxic decision that is so completely at odds with Joel's previous excellent and sane advice on software development that people literally thought he was joking. He had to write an entire follow-up post to explain that, no, he wasn't kidding.
"

So, should we all continue to pile on poor old Joel? I have been looking at his stuff with a much more sceptical eye this year, but I am thinking about not looking at all anymore...sigh.

Monday, September 11, 2006

Use migrations outside of Rails

If you haven't read Scott Ambler's Agile Database Techniques, I recommend it. I didn't realize how spoiled I was to work on projects where the database could be create by scripts, until I worked on projects where an evil DBA controlled all access to everything. It was some small comfort to see "all access to database through stored procedures" as one of the problems to be handled with legacy systems in the book. I haven't read Refactoring Databases yet, but it's somewhere on my todo list....

The next step, once you have the database scripted is scripting the changes to the database. The Rails ActiveRecord migrations approach is really cool for this, and there is no reason it should be applied outside of Rails, as Dion points out... Basically it gives a way to step back from any change, in addition to scripting each changeset to the database. Beyond all of that, it gives you a database neutral method for describing the database itself, making migration to another database platform more of a possibility.

Is the biggest danger of having a DBA on an Enterprise Application that they are going to write code that locks you into a technology? No- I think the bigger danger is that they are non agile and that they won't know how to deal with changes to the database that occur at the rate agile projects demand.

Spam 2.0

Spammers are apparently now creating spam tickets in open online bug tracking systems, and then linking to those spam tickets other places. Justin's bug tracking system is being hit by this...it really sucks. Everything Web 2.0 style, with users adding content to your site, is going to need a Captcha system, in addition to all of the cross site scripting and other security measures.

The whole Captcha thing, it is an inverse Turing Test- one where people are trying to prove they are people to programs (versus programs trying to prove they are people to people). It's getting pretty hard to do- machines are getting better at reading those fuzzy images. I don't know when they'll be able to solve the hot or not one though. I have trouble with those... Even crazier is that people are solving Captcha for spammers to get access to porn...crowd sourcing. I wonder if people are using Amazon's Mechanical Turk for this?

I am saddened to be getting more traditional spam slipping through my GMail filter. First it was complete nonsense, now it's idiotic pump and dump stock schemes and the usual prescription drug and sex stuff. It's making email far less relevant to youngsters that prefer chat- it's harder to spam, for now. Pervasive advertising...bleeaaurrgh.