Thursday, April 20, 2006

Calendar API

Now there's a calendar API [code blog, [general blog]. Should I write my own outlook sync program that does what I want or wait for someone else? Have to balance having it act like I want to vs. the time investment.

One thing that is making it look like something worth bothering with is the emerging concept of GData. When I first heard of it, I thought it was going to be something like RDF (Resource Description Framework). It's more of a combination of REST and ATOM, with some query and update capabilities. [the API] The thing that Ray Ozzie is working on over at Microsoft is going in this same direction, with more focus on sync, which is something he has down cold. I think Google are making an effort to have the growing array of APIs be somewhat consistent. If all of the APIs move to this kind of model, it could have a simplifying effect on development.

In any case, the common kinds schema is pretty basic model of the world from the Google perspective. It has a couple of location specific concepts:

A place (such as an event location) associated with the containing entity. The type of the association is determined by the rel attribute; the details of the location are contained in an embedded or linked-to Contact entry.A element is more general than a element. The former identifies a place using a text description and/or a Contact entry, while the latter identifies a place using a specific geographic location.

gd:geoPt

A geographical location (latitude, longitude, elevation).
Examples



Schema
start = geoPt
geoPt =
element gd:geoPt {
attribute label { xs:string },
attribute lat { xs:float },
attribute lon { xs:float },
attribute elev { xs:float }?,
attribute time { xs:dateTime }?
}

Tuesday, April 18, 2006

Google Enterprise OneBox to Suck in Data From Cognos, Oracle, and Salesforce.com

business2blog: B2Day : Scoop: Google Enterprise Mashups to Suck in Data From Cognos, Oracle, and Salesforce.com: "Google is set to announce tomorrow a broad set of partnerships with enterprise software companies, including Cognos, Oracle, Salesforce.com, and SAS. The partnerships basically amount to Google and these enterprise software companies sharing APIs so that data from the various software systems can more easily be searched for through Google's OneBox corporate homepage."

This sounds like some good stuff- a lot of projects really need good integrated search- but is it really a mashup? The key is getting your system to have its results show up in the search results. Update: it's called Google OneBox. Couple of blog entries on it.

I have been a big user of the Lucene search engine embedded in an enterprise integration, but it's a little tricky on bigger data sets. I am surprised to see Oracle on the list, they think they have a perfectly capable search product. I am a bit worried about the resurfacing Novell rumors. They really don't need to buy an OS- but then again- it is one place to really gain performance when you are running the database on a dedicated box or cluster.

Our little company has been doing some consulting work with the search appliance, we are really happy with the way it works. The more stuff we can stuff into it...it only gets better.

Friday, April 14, 2006

Client-side Validation Web Services

Over on the The Daily WTF, they have a piece on The Long Road to Validation. I always liked having a little bit of client side validation to complement my server side validation, but this guy decided to call out to a web service, from JavaScript, to validate dates. And gets the results back in a tagged string. I see a future u.s. government enterprise architect in the making! That's a brilliant use of the enterprise date validation service. Service re-use at its finest.

Oh wait- he didn't use SOAP...still needs more brainwashing.

Collected links...

Continuing the series of posts on things geospatial (a promotional thing for their upcoming where 2.0 conference?), nat at O'Reilly Radar calls Mapdex a Google for Geodata. He does complain about the lack of metadata.

Has anyone out there looked at Thetus for metadata management? It seems like they promise to derive semantic metadata from things that don't have syntactic metadata- and I know that at least one organization with a massive amount of geodata is looking at it. The whole architecture seems wildly over-complicated though. It makes it hard to explain concretely what they do.

Another nice search thing is the Google desktop search plugin for Google Earth. It seems like that could have a few more location aware features...If I didn't already have 5 projects on my plate.

Speaking of all things Google, I would be remiss not to mention the stupidly hyped Calendar- which I have been testing for months now. It just doesn't work for me. I like the user interface, but I need this stuff on my Blackberry. Maybe they'll release this soon, like they did for Google Talk. A note- if you go to the RIM page to download this- it requires IE 5.0 or above. They could also really use Intellisync so I could get my client appointments out of outlook/exchange into something more portable. Maybe it will work with the RedBerry.

It will be interesting to see what 37signals pulls out for a calendar for backpack. It was the most widely requested feature by a ridiculous margin. The survey results for most desired feature are pretty consistent.

The intersection of time and space- calendars + maps. It usually takes the form of a map with time slider. It would be interesting to see a calendar with a map overview window that lets you select a spatial extent. Perhaps not useful, but interesting.

On the subject of the updated yahoo maps beta data- If I base it on the picture of my house test, it has the most up to data of any service out there: it's the first mapping service to display anything but trees where my house was completed in October of 2003. Most of the services have updated street data, but they are first with the picture of the house. Of course, in areas about 5 miles away the data is definitely much older. The source on the data for my house is Aerials Express, i-cubed. I wonder how much all of that 1m cost...

I am using their free geocoding service extensively, that's a real service to community. Plus- it's REST-ful. In general I am not a big fan of PHP/Flash (more of a Java/Ruby/HTML/CSS/AJAX guy), but we all can love RESTy verbing XML over HTTP. Here's a good intro to the REST topic- the fight goes on 3 years later, except now it's about WS-*. A lot of the stuff is well intentioned, but the output of some of these standards committees still seems to leave the value of simplicity completely off of the list of things they are trying to accomplish.

Wrapping Openly About the Google Search Appliance

Wrapping Openly About the Google Search Appliance: "The team at Inxight has created a Java wrapper for the Google Search Appliance's XML API and posted it as a project on SourceForge."

Always nice when someone deploys an open source project of something you just did on your own. Thankfully it's something really simple, but now I have a community to help me keep the code up to date...

Bugginess

Too much attention is paid to the off the shelf software and technology selections that are made in enterprises. Being a developer, I have always tended to advise customers to buy the boring stuff and build the fun stuff. But how do they decide what to buy?

It's seldom the users or anyone closely involved that makes the big budget decisions. This quote from James McGovern (formerly respected- now entirely too vehemently anti-Ruby to be taken seriously) shows one form of the insanity: "For example, If I were to champion use of an open source Enterprise Service Bus such as ServiceMix and figured out a way to keep support internally while another colleague say championed purchase of a $5 million closed source Service Bus, which one do you think will get promoted quicker?" It's soo true. It applies to project staff size too. In Tom Demarco's "Slack" he talks about the manager that is bullied into accepting a larger staff and shorter timeline for a project. I like the Ruby on Rails thing David HH said this week (roughly): "[Rails is for] small teams doing big things." I am not really fond of his attitude though...yikes. I guess he's a magnet for criticism.

Back on topic though. Too often the comparison comes down to a feature list type thing, check or no check usually. Here are things that people don't consider enough when doing product evaluations- how hard is it to install/upgrade/maintain, how buggy is it, how is the usability, how well documented is the API/integration mechanism, how does it perform in the real world, and it is pretty enough to stare at day-in/day-out for a few years. I was in a meeting today where the consensus was that ESRI software is pretty buggy, but "so what"? Lots of people think Microsoft software is pretty buggy. I don't see the ESRI alternatives as being significantly less buggy, but maybe if that started to become a decision factor in enterprise software acquisition, it could become a point of competition. Not so much about how many map projections you support, but how well you do whatever it is that you do.

Those are some rather rambling thoughts- but I am really concerned by the poor choices I see made in enterprise software, and the bureaucracies that enshrine those choices as the only options for years to come.

More Complexity



The View from Hell: "The CruiseControl JSP starts by slurping up some XML stored elsewhere and feeding it to an XSL stylesheet. The XSL spits out an HTML page, but the HTML has no HTML in it; its just a big JavaScript block. The JavaScript uses DOM manipulation to write out a combination of HTML and CSS. And some more JavaScript. Really. I'm not making this up. "

I am a huge cruisecontrol advocate, but this is kinda funny. It is definitely aiming for a separation of concerns and the single responsibility principle, but I don't see it hitting the mark exactly...at the very least that first JSP should be written as a servlet!

Wednesday, April 05, 2006

dual boot (camp) apple

Well, when my laptop hits the 2-year-old mark in December, dual boot (with boot camp) may give me the freedom to upgrade to a MacBook Pro. They are quite sexy. I have always been a little sad about Apple's overly proprietary architecture, but the prices are comprable enough now that it doesn't seem to make much difference...

Will this sell more Macs? I think so. I think it's going to sell a ton. If Apple's stock wasn't already overpriced, it's a definite revenue++, even if they end up selling a few microsoft licenses. I'd prefer to run OS X in a VMware (or MS Virtual Server?) session, but you can't have it all (yet). I was planning on waiting for whatever laptop came out on Robson first, but you can't wait forever either.

Google Earth COM API

There's not much about this out there...I guess because it doesn't do much yet. The thing I want to do with it is to be able to make a click on the map in Google Earth have some special behavior. The current API seems primarily focused on letting external applications control the user interface. What I am trying to do is build an enterprise application that will allow sharing of created data- but on an intranet, not to the BBS. Anyway, this is just a summary of what I have dug up. I'll report on my own experiments once they produce something interesting...

The indomnitable TJ gives us the IDL here.

There's an Australian paper (PDF) that references a prototype application they did using the API with VBA in ArcGIS.

I found one (unanswered) post on the BBS:

i use the Google Earth API in vb for a few days
there are the question i can't find the anwser,could you help me?

KHFeature
the KHFeature.visibility can control the places's display
but what the meaning of KHFeature.hasview?

KHInterface
i can run in app as


Dim KH As Object
Dim View As Object
Set KH = CreateObject("Keyhole.KHInterface")
Set View = KH.currentView(0#)


And this guy seems to be doing some things with it. Some good ideas there- at least as starting points.

Still, my goal is to use Google Earth to control other things- and about the only information it is sending out is the bounding box on network links. If anyone has any ideas...send them this way!

Tuesday, April 04, 2006

Complexity Kills

From the NYT article, "Windows Is So Slow, but Why?".

In an internal memo last October, Ray Ozzie, chief technical officer, who joined Microsoft last year, wrote, "Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration."

I guess the problem is that getting simplicity right is often harder. When you define things in clear terms, it is often easier to see that one idea is winning out over another, rather than shading things in compromises. On the other hand, just being simple without solving the problem doesn't always help.

I think Microsoft could wave the magic wand and say- no more backwards compatibility testing. They could support old OS programs in virtual machines.

There are plenty of complex problems- conflicting requirements, ad hoc processes to automate, personalities, etc. There are a lot of strategies for dealing with this.

I look at agile development practices as one approach that can help- start small. Don't build the whole thing before you put it in front of someone. Test every little bit. Respond to change. On the other hand, it seems to be about creative problem solving. This is often giving people what they need, not what they ask for.

I really hate the saying "keep it simple, stupid". I think it should be "keep it simple, smart".