Friday, August 04, 2006

Information Week on Flex...

Charles Babcock in Information Week wrote a horrible article on Flex2 last month that I just got around to reading...I love the use of the word "cranky" in relation to JavaScript. I have heard about cranky developers- but the language has always seemed rather good natured to me, although I can't say the same of the IE engine it runs in. The bit about the proprietary version of the international standard is also nice- reminds me of J++.

....Flex 2 implements a new version of the Flash scripting language, ActionScript 3.0, a proprietary version of the international standard EcmaScript. ActionScript competes with Ajax' notoriously cranky JavaScript and surpasses it when it comes object-oriented behavior...

And then they drag Mr. Raad into the debate- where he bluntly displays his view on the whole static vs. dynamic typing debate. I like Pragmatic Dave Thomas' thought on the matter- "once code hits the network, all typing is dynamic."

"ActionScript is a much more powerful language," said Mansour Raad, chief architect for a unit of ESRI, the supplier of geographic system services and software. ActionScript in its third version traps programming errors and enforces variable typing, which lead to clearer runtime results and avoids some tampering exposures. JavaScript, in comparison, "is kind of strange and loose. It let's you do anything you want and continues on its merry way."

Mr. Babcock didn't interview the pragmatic one, of course. But then, he's got think of the advertising dollars.

Don't get me wrong- I think the Flash player is very cool, and a good thing overall- see AFLAX, the various JS wrappers, using it to do XML parsing, etc. I think adding ActionScript and Adobe's XML variant into the development mix makes it not something I would want to do. I wouldn't touch the server side stuff.

I also like seeing Flash inside of an html container, interacting with the page. Having your whole app be a .swf seems silly. I think we should see more widgets like Adobe's cool charting widget- and less of the rest of it.

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?

Saturday, June 24, 2006

France unveils national rival to Google Maps

Not being able to log in, it's difficult to get many real details, but it seems like lazy journalism to call www.geoportail.fr a rival to Google Earth. The Reuters piece even implies that Google Earth is a website. (Although, one could be forgiven for confusing the ever expanding, slightly disorganized product offerings of the Googleplex, it seems more likely that they accepted the assertion of the press release without the faintest concept of fact check.)

Perhaps, rather than making more portals, it would be more useful for countries to provide data services, as Stefan over at Ogle Earth suggests. Of course, you could then start data format wars, but at least you can adapt and convert your way around many of those. Given the web site launch difficulties, it would seem unlikely that these folks are going to be able to throw a 3D version out there in the autumn.

ESRI ArcGIS Explorer beta shots have been looking quite nice. I wonder how much data they are going to provide in their initial release? It seemed like the product was already in decent shape at last year's user conference, so we can hope that the intervening year has been spent acquiring and combining data...

I am really looking forward to seeing how you can customize the client. That's one of the bits of Google Earth that is quite obscure, even in the enterprise version. I can understand the reluctance to let people clutter up the toolbar with 1000 buttons, which would interfere with the simplicity, but I have one button I'd like to add....

Wednesday, June 14, 2006

An Outlook to GCal solution

So, you get your work invites sent to your exchange account and you want your outlook calendar to update your Google Calendar....what's the simplest thing that could possibly work?

Well, you can take advantage of the new ability for items received in gmail to be automagically entered onto your google calendar- just make a rule to forward all invites to your gmail account, and invite your gmail account to all things that you schedule. I was already adding myself as an invitee to all of the things I put on my Outlook calendar so they would pass on to my Blackberry, now GMail is another invitee. It has been working out swimmingly so far...updates to follow.

Thursday, June 01, 2006

Gapminder

This thing is pretty interesting- a timeline view of the changes in income and life expectancy over time. It's a little bit Flash-y, but it's very cool to watch countries like China and Korea shoot forward in prosperity. Question- is it better to have a short and prosperous life or a long impoverished one?

Found it on MoMB...