Sunday, July 23, 2006

Flex2 is a zombie technology

And by zombie I mean- it's already dead, even if it looks like it's walking around, propelled by force of vivid marketing campaigns while feeding on the brains of gullible programmers. If people want to make use of Flash- this is the best way to be doing it- wrap it in JavaScript.
Ajaxian JSSoundKit: Super-Easy Sound API.
JSSoundKit wraps the Flash Sound object, making it easy to incorporate sound into your Ajax apps. Really easy, in fact:
var mysound = new Sound();
mysound.loadSound("http://www.archive.org/download/Behind/SyncFilmicoBehind.mp3", true);
mysound.setVolume(30);

The server side pieces of Flex are useless- there are a number of general purpose web application frameworks that do everything it does, and don't lock you in to Adobe server side technology. The ability to take advantage of the widely installed (although with a great variety in versions, if my web stats are to be believed) Flash plugin is best when it is an optional thing.

I have seen some very nice looking interfaces done with Flash- but in reality I see it as nothing more than a good widget provider. Their server side story just doesn't resonate for anyone doing .Net, J2EE, Python, PHP, Ruby etc. (with the possible exception of un-reformed ColdFusion developers and those doing COBOL on Rails). We've come such a long way to get nice URL addressable content (aka web services) in web applications- let's not give it up for some fancy widgets that come with the trojan horse of a clunky server side communication piece. I am making a pact with anyone that's willing to listen- don't learn Action Script: friends don't let friends do MXML.

I don't know where this rant leaves OpenLaszlo and such things, but I have a feeling these guys should start selling easily integrated widgets and stop building web application frameworks.

Saturday, July 15, 2006

Dealing with Meaninglessness

For all the coders out there, Coding Horror has picked up a great theme- Separating Programming Sheep from Non-Programming Goats. Some blokes from Middlesex U have devised a test (descibed in this paper [pdf]) that is strongly correlated with programming ability. Their interpretation is that the ability to create a mental model of basically meaningless rules is what allows people to grasp three primary "hurdles" of comp sci: "assignment and sequence, recursion and iteration, and concurrency".

Having a philosophical bent, I can see this extending beyond programming. It's not just an ability to deal with meaningless symbols and rules, it's also the willingness to deal with these things that makes people capable of making computers do things. I used to see this as a kind of patience, the kind of patience that lets you use early versions of products, or old ones, but looking at it in terms of the ability and inclination to focus on pure abstractions.

Having been a TA for introductory c++ courses at university- it was obvious that some people were going to take a long, long time to get the basics. But the problem is, programming is generally not one of those things where you learn something, and then do it. You have to keep figuring out things again and again, so if you aren't good at learning it, you probably won't be good at doing it. You can't study your way to the top...

Friday, July 14, 2006

Porting Google Earth to Linux

FLOSS Weekly with Chris DiBona | TWiT.TV

This podcast with Ryan Gordon has some pretty cool bits where he talks about his work with Google porting Earth to Linux., as well about being a game developer porting things to Linux. I think it is pretty amazing how they were able to do this, this guy's whole approach to porting to Linux is something special. It's amazing that he can deal with all of the oddities of the Win32 API...

Why don't all podcasts come with transcripts?

Making a Rails server, parsing KML in JS


If you are doing Rails, this is a pretty good way of doing it (Mongrel+Apache+Capistrano). Fast and stable...


I had to bail out on the Cartographer plugin because doing stuff like:

<%= gmap(:mapname=>"my_map", :width=>"50", :height=>"120") %>

<%= gmap(:width=>"500", :height=>"500", :type=>:satellite, :point=>[-122.14944, 37.441944]) %>

just isn't enough easier for me. I kept having to look at the generated JavaScript, since there was stuff I just had to tag in there. I did finally start parsing my own KML in there with the GXml parser, however, it's definitely faster to just generate JSON on the server side if you are doing anything with a lot of data. However, the capability to parse a fair subset of KML is worthwhile, so I am not throwing it away just yet.

GIS discussions....

Ogle Earth: A blog about Google Earth. « GIS: What's there to talk about? »

I think the fact that many of people's posts are just kind of newsy contributes to my lack of interest in commenting on their site. There's a certain amount odiscussionon that can happen around facts, but most discussion is about opinions and analysis.

I find discussions where people are just slamming other products/people/companies/technologies particularly tiresome, but there's a lot more respect in the GIS community. For example, while Stefan writes about Google Earth, he doesn't spend a lot time trying to talk down World Wind and Microsoft and ESRI. On the other hand, the most attention I tend to get is when I say something negative about something, like whining about the unnecessary complexities and oversights of GML..

Another aspect is the trackback concept.I wishsh it worked better in Blogger so that I could just add a post to the discussion on my own blog and have the link show up on theirs.Damnmn those spammers.

Monday, July 10, 2006

A couple of Ruby/Rails GIS notes

I am adding some simple GIS stuff into my Rails app today.

Cartographer: Google Maps Helpers for Ruby on Rails looks like a pretty good plugin to add a map into your codebase. I'll see how it goes...

The MetaCarta Geoparser API has also been wrapped by the robot co-op guys. I am really liking the approach taken by the new MetaCarta Labs stuff. In particular, I like the REST over SOAP approach. The number of lines of code required for SOAP is just ridiculous in proportion to the benefit gained. One of my guys was working with their SOAP interface this morning, and while SOAP4R's WSDL2RB script is the way to go (it's kind of like AXIS for Ruby)...it's just not necessary for what we're doing.

I am sorta disappointed that the KML support for Google Maps requires a public website to host the KML so that it can be parsed out on their server. I guess it's just too much to process in the JavaScript?