Archive for the ‘Open Source Software’ Category

JSON is Faster than XML – This is No Surprise

Wednesday, November 11th, 2009

I was reading the wires today and came across another article talking about the speed advantage of JSON over XML in the serialization/transfer/de-serialization. Certainly, that's no surprise to anyone that's used both of these formats. XML, as it's defined is just not meant to move large amounts of data, and while it's possible to use it for config files, I think it's still a miss there as plists or SQLite is a far better solution.

But what got my interest this morning is the existence of a Google Groups project called touchcode. In this one project, there is a sub-project called TouchJSON that implements the JSON format in Obj-C code. This is cool stuff.

I've done plenty of JSON stuff in Java for the Google Visualization API, but this means that I don't have to mess around with writing an API for all the work on the Mac I might like to use JSON. Again, I can't see it as a valid tool for config files, but for serving up JSON data, this, along with a nice embedded HTTP server in Obj-C would be a great pairing. That way, I could stay in Obj-C and provide JSON data to AJAX clients. Neat.

Not sure why WebObjects got the can, but it did. Sure would be nice to see what (if anything) Apple is looking at for a possible replacement.

The Gimp 2.6.7 64-bit for Snow Leopard is Out

Wednesday, November 11th, 2009

Gimp.jpg

This morning I saw that The Gimp 2.6.7 was available for Snow Leopard with a 64-bit build. This is interesting - very interesting. I've always liked the Gimp, but I have to admit that since I've started using Acorn, I haven't used Gimp nearly as much. It's just a tool that's not as "Mac-like" as Acorn, and everything I needed to have done, was do-able within Acorn. But with the advent of a 64-bit build, that makes the Gimp a little more attractive as a tool. I'm not sure I'll use it more, but it's more attractive.

Still... with the bug fixes, it's a good thing to get. If you need logos and titles done, this is a great tool.

Examining the Limits of the Web 2.0 Paradigm

Tuesday, November 10th, 2009

AJAX.jpg

Today I needed to get a few interesting things done on my web app - primarily all GUI-related, but there were a few things I needed on the back-end for some new functionality I was adding to the administration page. It was very simple on the back-end and on the GUI, and it got me to thinking - Are there really limits to the Web 2.0 paradigm now? I'm not convinced there are that many.

Oh sure, if I was writing a Photoshop-clone, using a web browser is a mistake. But for the vast majority of the apps that I've written in my life, I'm not sure that they could not now be written in AJAX and be just as effective as the original apps.

This web app I'm working with is a great example. Lots of graph/graphics that needs lots of data, but it's working just fine. Sure, I might wish the Google Visualization widgets were a little more full-featured, but that's an implementation issue - not a limitation of the technology.

I have been talking to an old friend about some problems they are having with their patient management system - a successor to one I wrote for them many years ago. That could certainly be re-written in the AJAX framework and probably have a significantly better user-experience. At the time, it was forms-based, and while that was fine for patient management, it's not anything like what we're doing now.

I'm getting to like this idea more and more. In the past, applications like Paradox and Filemaker were the tools that I used to make these applications, but now I could use a Mac Mini Server with Tomcat, H2, and AJAX, and be done with it for next to nothing. This is really pretty impressive. I just need to keep thinking about things a little differently. Interesting what assumptions you challenge, and how your answers change as time passes. Neat.

Firefox 3.5.5 is Out with Security Fixes

Friday, November 6th, 2009

This morning I noticed that Firefox 3.5.5 was out with a list of several stability fixes - some of which were considered critical. OK, I'll upgrade, sounds reasonable.

Adium 1.4b14 is Out with Facebook Fixes

Thursday, November 5th, 2009

I got a tweet this morning from Adium saying that 1.4b14 is out fixing the Facebook problem that popped up yesterday. It's got a lot more in the release, and I'm constantly amazed by the work that's done on this guy, but it's still so useable. I use it every single day. Amazing app.

VLC 1.0.3 is Out

Tuesday, November 3rd, 2009

Saw this morning that VLC 1.0.3 is out. Since it's a core part of HandBrake and ripping DVDs, I had to upgrade. I'm a little surprised that the built-in auto-updating is not picking up these changes, but then, maybe they don't consider these to be significant updates.

Firefox 3.6 beta 1 is Out

Tuesday, November 3rd, 2009

This morning I saw that the Firefox team has released beta 1 of Firefox 3.6. Seems like quite a lot of little changes, but I'm not seeing the kind of speed jumps in JavaScript that would make it a big deal to me. However, it's nice to see the improvements. Maybe in a bit I'll give it a run, but for now, it's nice to know it's there, but I'll pass for today.

Interesting Behavior of the Google Visualization Table

Tuesday, October 27th, 2009

GoogleVisualization.jpg

I had to do some work today with the Google Visualization Table and no matter how I set it up, if I had more rows in the table than would fit in the vertical space allowed in the enclosing div, we'd have a vertical scrollbar and a horizontal one.

I kept fiddling with the width of the div and the width in the table's parameters, and nothing seemed to make any difference. Then I started to see a pattern: the horizontal scroll bar was there only when the vertical scrollbar was - and it was always scrolling only the width of the vertical scrollbar.

It was as if the vertical scrollbar's width was not being taken into account in the sizing of the table, and therefore, a horizontal scrollbar was needed to display it all.

So how to fix it?

Not so easy, it seems.

It's a known bug by Google, but they have not yet released a fix. Nice.

I started playing around with the width parameter in the table's params:

  var tableParams = { showRowNumber: false,
                      allowHtml: true,
                      width: '100%',
                      cssClassName: tableStyles };

and when I used the percentage width parameter I started to see that the calculations of the width of the table were done properly. So, by setting it to '100%', I was able to get the maximum width while also getting the vertical scrollbar when I needed it, and not getting the horizontal scrollbar when I didn't.

Wild, that I needed to set the width in that way.

Amazon RDS – MySQL in the Cloud

Tuesday, October 27th, 2009

MySQL.jpgThis is an interesting development. The Amazon S3 system has been online for quite a while, and clients like Transmit and Cyberduck already talk to S3. But it's an object-database. Nice in many regards, but not exactly what someone building an application might be looking for. There are just way too many applications that need a general, reliable, relational database - like MySQL.

While I haven't used MySQL a lot, it's pretty much on par with the other open source databases - DB2, PostgreSQL, etc. It's a filesystem database where it's easy to backup the database by simply copying a few files. Nice, compact, and pretty good performance from what I've heard. I've used it in WordPress installs in the past, and it has always worked very well for me.

What is interesting is that Amazon seems to have broken down the costs so that you really are only paying for what you use. Be it CPU cycles to do the queries, or I/O to get the data to/from you machines. It's a pretty wild idea. If you couple this with the EC2 machines where you can bring up a linux box with your software on it, run whatever it is you need hitting this MySQL database with all the data your app(s) need. They even have a reduced I/O rate for transferring between their servers so that if you really can run the application on their end and have a minimal interaction with it, you're liable to be able to get away with a very inexpensive I/O cost.

Of course, this means that you're paying for the CPU cycles on their end... there is no free lunch. So it's an interesting option. If you need to have a cloud MySQL database, this is the only one I've seen. But the question becomes, do you need it? That's tougher to answer.

Odd Bug in the Google Chrome Frame for IE

Monday, October 26th, 2009

I've been working with the Google Chrome Frame for IE this afternoon, and I noticed that it wasn't updating properly. In fact, it's not working well at all with the processing of the DataTable data sets. It used to work, but it seems not to be working now.

It could be my box, or my IE 8 install, but I've re-installed the Google Chrome Frame and that's not it. I've also re-installed Adobe Flash 10 as well - as that was coming up as an issue. I'm not sure about all the issues, but it seems that it might be related to the clicking on a URL from a link external to the web browser.

If I set FireFox 3.5 as my default browser, it works fine. Same for Google Chrome (the browser). But if I try to use the Chrome Frame in IE, I get some of the page rendered, and a few requests sent and returned, but there appears to be a bug in the Chrome script(s):

  Uncaught TypeError: undefined is not a function    native runtime.js:389

I tried to Google this error and see what might be at issue. I'm not sure if it's the Chrome install or the Chrome Frame or IE or the box. But it seems that the error only occurs on the Chrome Frame in IE. Very odd.

I'll keep an eye on it and see what I can see, but I'm guessing that it's just my box for some reason, and I'll give it a reboot one of these days and set everything back up.

[10/27] UPDATE: I posted something to the (moderated) Google group for the Chrome Frame. I'm not sure if I'll hear anything back - it's very new, and could be classified as experimental, and not supported. But it's worth a try. I found another box that had the problem that used to run, but no longer. So it's got to be something with the visualization widgets or the frame, or an incompatibility between the two. So maybe I'll get lucky.

[10/28] UPDATE: The responses I got were very nice. One needed an example, which isn't surprising, but the other pointed to a version of Chrome (the Browser) that's in the Chrome Frame install directory. He suggested that if it's in there, then it's not the Frame itself, but that version of Chrome. Indeed, it was. So I posted that to the group. I also put together a simple test HTML file and put it up on my site so that they can hit it and test their stuff. It'll be interesting to see what comes of all this because now it's clearly in their court.

[10/29] UPDATE: the latest news was that it was in the line:

  google.load('visualization', '1.1', {'packages': ['annotatedtimeline', 'table']});

but I have to put in both packages or the page isn't going to render properly, and I've tried using the '1' version of the package to no avail. So I wrote all this back and we'll see what they say. It's clearly all in their court as they have the browser, the frame, and the visualization stuff. It's just a matter of them getting things together and fixing what needs fixed.