Skip to main content


Showing posts from September, 2009

Portland, Oregon, joins the ranks of the open cities « Silicon Florist

Portland, Oregon, is now an open city.
Following in the footsteps of open cities like San Francisco, Chicago, and Vancouver, BC, Portland’s Mayor Sam Adams and the City Council today unanimously approved a resolution that directs the City of Portland to open data to outside developers and encourages adoption of open source solutions in technology procurement.

Very, very cool. Now if only the federal government would do the same. It's definitely getting better but we have a LONG way to go, particularly on the adoption of open source solutions front.

Steve Jobs, As Demonized By His Nemesis - doubletwist - Gawker

Oh how the worm turns. Can't say I disagree. Apple started out as an "alternative" with their "Think Different" campaign (to contrast with IBM's "Think" motto), but between iTunes and the iPhone they want control over every aspect of people's digital lives. High time Apple went back to their roots--I think the backlash has been building for quite a while and the tighter Jobs clenches his fist the more customers will slip through his fingers. Or something. ;-)

Code Monkeyism: The dark side of NoSQL

The three problems no-one talks about – almost noone, I had a good talk with the Infinispan lead [1] – are:

ad hoc data fixing – either no query language available or no skills
ad hoc reporting – either no query language available or no in-house skills
data export – sometimes no API way to access all data

Much as I'm loving CouchDB these days, these are valid concerns if you're considering moving to a "no SQL" type database (and there are a few other concerns as well).
As always it comes down to using the right tool for the job. This is pointed out at the end of this article and in the comments, but depending on your needs you may wind up with a combination of a No SQL database for what they're great at, and a traditional RDBMS for the problems that No SQL databases don't solve.

Happy Start of Year 26 of the GNU Project

"I could have made money [by joining the proprietary software world], and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place." Richard Stallman, GNU ProjectTomorrow marks the end of the 25th anniversary year of the GNU Project and it's been quite a year! Here's some of the highlights sent out in today's Free Software Supporter newsletter:

Video from Stephen Fry
There are now 25,000 subscribers to the Free Software Supporter
The Free Software Foundation membership now numbers 3,200 (not enough--go join!)

As I said in a previous post, without the FSF the free software movement from which we all benefit today wouldn't exist. The FSF tirelessly fights software patents, DRM, and a number of other important issues because they believe free software is vital to a truly free society. I couldn't agree more.Here's to a…

Font Encoding and Searchable PDFs

I ran into a weird issue today I thought I'd share in case anyone else runs
into this. In one of my applications I'm populating PDF forms via CFPDFFORM in
ColdFusion. It works great but the PDFs generated aren't searchable, by
which I mean if you're in Acrobat Reader (or any PDF reader application
from what I tested), you can search the PDF but any data that was
programmatically inserted into the PDF form fields isn't searched. So for
example I can be looking at the name "Smith" in the PDF, but if I do a
search for "Smith" it will yield 0 results. It turns out that the reason for this is due to the encoding of the font
being used on the form fields. I chose Arial for the font (in Acrobat Pro
on the Mac if I remember correctly) when I was creating the empty form but
didn't realize that the version of Arial I chose used Identity-H encoding.
Identity-H is a double-byte encoding so I find it a bit odd that it's not
searchable, but the solu…

Time Machine Problems After Snow Leopard Upgrade

I finally got around to upgrading my Mac Pro desktop to Snow Leopard a
couple of weeks ago, but I didn't reconnect my Time Machine backup drive
until late last week. When Time Machine fired up it would endlessly hang
while starting the backup, or hang on a "clean up" operation, or in some
cases would crash the Finder entirely and force me to have to reboot the
machine. My backup drive was connected via firewire, so on a whim tonight I
reconnected it via USB. So far no problems. I searched around a bit and did
find several references to firewire problems after Snow Leopard upgrades,
so I'm hoping that was the culprit. Just thought I'd post this in case
anyone else was having similar problems.

Richard Stallman is Not the Bad Guy | Boycott Novell

“Value your freedom or you will lose it, teaches history. “Don’t bother us with politics,” respond those who don’t want to learn.”

–Richard Stallman

What the so-called "pragmatists" of the free software movement forget is that there wouldn't be a free software movement without Richard Stallman, or at best we'd have a weak, watered-down version of the free software ecosystem from which we all benefit.
Furthermore, the Free Software Foundation tirelessly fights the free software fight, and purists and pragmatists alike benefit from that. There is no equivalent organization on the pragmatist side of this argument, so the pragmatists are attempting to vilify Stallman when what they should be doing is thanking him.
People on the "open source" side of the fence need to put up or shut up. Once they have an organization that fights against proprietary software with the same passion and effectiveness as the FSF, maybe…

MongoDB: A Light in the Darkness! (Key Value Stores Part 5) | Engine Yard Blog

MongoDB can be thought of as the goodness that erupts when a traditional key-value store collides with a relational database management system, mixing their essences into something that’s not quite either, but rather something novel and fascinating.

I've been playing around with CouchDB quite a lot lately, and MongoDB seems quite similar. After writing a couple of small apps with CouchDB I'm finding it pretty darn painful to go back to RDBMS when I have to.

Verizon scraps Palm Pre plans

Poor sales at Sprint as well as interest in handsets from Research in Motion and Motorola reportedly contributed to Verizon's decision to ditch the Palm Pre

So utterly bummed. Guess I'll have to wait for Android phones now ... The Pre is awesome but I really don't want to switch to Sprint. Been way too happy with Verizon over the years.

More N00b Grails Errors - When a Domain Class Isn't a Domain Class

I figure as I make my travails with Grails I'll post stuff I run into so
others can benefit if/when they jump into Grails. Today I started a new Grails application and created a domain class and a
controller for User. These were in packages but that's irrelevant, so I'll
keep things simple for the purposes of the example.
grails create-domain-class User
grails create-controller User
I then edited my User class:

class User {

String email
String password
String firstName
String lastName

static constraints = {

And edited my controller to add the scaffolding:

class UserController {

def scaffold = true

def index = {}
When I fired up the app I got an error to the effect of "Can't scaffold
because User isn't a domain class." Weird. Since I hadn't spent much time
on anything yet, I nuked my domain class, controller, and test files and

Community Equity: Facebook for Enterprise

Community Equity goes beyond a simple structuring of people and their online content. Community Equity performs complex calculations to rate one's participation and contribution levels, the ultimate goal being to drive the adoption of content and ideas, which provides an ideal platform for corporate communities.

Interesting open source "Facebook for Enterprise" application by Sun. Could be just the ticket who want Facebook internally but also want something a bit more business oriented in addition to the social aspects.

Flex/ColdFusion Developer Position Available - Rockville, MD

Contact Jim Gray ( for more information. -------------- FLEX SOFTWARE DEVELOPER – Potomac-Rockville area – 85-100K for a
growing software company Seeking a Flex Software Developer. Will be coding software in Flex and
ColdFusion. Write technical requirements, work on designing the software
product and work with SQL Server in writing queries and stored procedures.
5 years of web development experience to include experience with Flex,
ColdFusion and SQL Server. Eclipse desired. Ability to analyze,
troubleshoot and contribute to the development process is required. Degree
preferred. Full benefits.

How Ravelry Scales to 10 Million Requests Using Rails | High Scalability

Ten years ago a site like Ravelry would have been a multi-million dollar operation. Today Casey is the sole engineer for Ravelry and to run it takes only a few people. He was able to code it in 4 months working nights and weekends. Take a look down below of all the technologies used to make Ravelry and you'll see how it is constructed almost completely from free of the shelf software that Casey has stitched together into a complete system. There's an amazing amount of leverage in today's ecosystem when you combine all the quality tools, languages, storage, bandwidth and hosting options.

Really interesting and quick read (link to a great interview at the top of the article as well) about building and scaling what started out as a small site (don't they all?). Excellent details about the technologies used and why, and nice lessons learned. "Keep it fun" is one I continually have to remind myself.

Enterprise Java Community: Programming is Also Teaching Your Team

Programming has two goals.
One goal is to do something, of course: calculate an amortization table, present a list of updated feeds, snipe someone on Ebay, or perhaps smash a human player's army. This goal is focused at a computing environment.
The other goal is - or should be - to transfer knowledge between programmers. This has a lot of benefits: it increases the number of people who understand a given piece of code, it frees a developer to do new things (since he's no longer the only person who can maintain a given program or process), and it often provides better performance - since showing Deanna your code gives her a chance to point out where your code can improve. Of course, this can be a two-edged sword, because Deanna may have biases that affect the code she writes (and therefore, what you might learn.)

Nice reminder of one of the big goals of programming in my mind. Developers often get so busy that we furiously code with an eye only to…

Note to self: Grails integration tests fail with static delcaration before constraints

Ran into this today and it was semi-tough to hunt down so I figured I'd post it since lord knows I'll forget this sometime in the near future. If you have a class as follows:

class User {
  String firstName
  String lastName

  static constraints = {
And an integration test like so:

import grails.test.*

class UserIntegrationTests extends GrailsUnitTestCase {
  void testSave() {
    def user = new User(firstName:'Matt', lastName:'Woodward')
You may find Grails throwing this error when you run your integration tests:

No signature of method is applicable for argument types:() values:[]
Bit of a weird error but from what I can tell, the integration tests don't like the way the scaffolding formats that constraints block. I reformatted without the line break at the tests pass, and now even when I put things back the way they were, the tests pass. Hope that helps someone else's head and the nearest wall…

Hot Air Balloon Ride - a set on Flickr

I took a ride in a hot air balloon with a couple of friends last week. Really amazing experience. Nothing quite like being out in the open that high up!

Last Call for Pre-cf.Objective() 2010 Training

If you're interested in providing any training before (or after) cf.Objective() 2010, you have until October 2 to make a final commitment. I've heard from several people but at this point we have as many rooms available as we need, so if you want to do some training speak now! I do have full details of costs associated with the rooms, meals, etc. now so if you've been hesitating because I couldn't let you know exactly what you were getting into ;-), hesitate no more. And as always if you have questions, please let me know. Also if you're interested in attending training but not offering training yourself, feel free to give me suggestions of topics and trainers and I'll do my best to make it happen. Please spread the word if you can. We got a late start on pre-conference training last year so we're making up for it this year. Thanks!

"The Open Internet: Preserving the Freedom to Innovate"

I believe we must choose to safeguard the openness that has made the Internet a stunning success. That is why today, I delivered a speech announcing that the FCC will be the smart cop on the beat when it comes to preserving a free and open Internet.
In particular, I proposed that the FCC adopt two new rules to help achieve this.
The first says broadband providers cannot discriminate against particular Internet content or applications. The second says broadband providers must be transparent about their network management practices.

Given how out of touch and backwards government usually is on the Internet, this is a very welcome shock.

Additional Thoughts on "Is Java Dead?"

Part of how I use posterous is as a web scrapbook of sorts, and it's a great way to keep the full version of something I come across on the web that I find interesting. Still find it odd you can't edit the excerpts posterous generates, but on the other hand if the original link goes away, then I still have it handy. Anyway, someone on Twitter asked if I had any thoughts on the "Is Java Dead?" article I found earlier today, and although I had a couple of comments at the bottom of that post, I have a lot more to say about the continual predictions of Java's demise. Living in the CFML world for so long I'm used to people proclaiming that one of my technologies of choice is dead. For those not in the know ComputerWorld put ColdFusion on their "Top 10 Dead or Dying Computer Skills" list in 2007/. In the top spot on their list was COBOL, but more on that in a moment. I won't rehash the whole ColdFusion is Dead trope here, but semi-related to my rece…

Is Java dead? (via CodeMonkeyism)

Written on September 21, 2009 by Stephan Schmidt

Is Java dead?

var dzone_url = '';


Is Java finally dead? There has been much discussion about the end of Java. As a developer, do you need to care? How do you need to change your decisions in the case that Java is dead? I have pounding this question for the last several years, beginning with my adventures into Ruby at the end of the 90s. I hope to give a thorough representation of my thoughts here.
In a very interesting thread on LtU Sean McDirmid wrote:
The Java death watch continues. Its future is tied up with Sun, which continues not to make money, and in this economy… JavaFX was late and didn’t make the splash it needed to make. Can Scala (or Clojure I guess) save the JVM? And who would take over the Java mantle if Sun imploded, IBM?
while Ross Smith is adding:
I think Sun will be widely recognised as doomed, if it isn’t already dead, by the end of 2009, and they’ll take Java (and the JVM) do…

ATI Eyefinity Technology - One card, multiple monitors, infinite possibilities

Is that McLovin playing Halo?

I'm Having a Crisis of Faith After a Weekend with Grails

I have a confession to make: I cheated on CFML this weekend. And I enjoyed every minute of it. Heresy, I realize, but if you stick with me through this brain dump I hope you'll see that despite the sharp criticism contained herein, I'm extremely optimistic about the future of CFML. We just have a helluva lot of work to do. To set the stage for things, I'm embarking on a side project with a friend of mine and as usual it's a big job with a tight deadline. None of this is anything new and previously I wouldn't have thought twice about which technology to use. CFML: Now More Than Ever. (Sorry, I just love that bumper sticker.) I've been taking several runs at Grails over the past year or so, and with a semi-free weekend I decided to re-read a few books and some issues of GroovyMag. Basic requirements for the aforementioned project in front of me on Protoshare, I figured I'd give myself an hour to get a couple of the domain classes up and running in Grails. I…

Enabling Java on Firefox on Ubuntu

Since I never remember how to do this, I figured I'd put it up here. This assumes you already have Java installed, and note this is for 32-bit. I'll be getting a shiny new 64-bit laptop very soon, and from what I understand things are a bit different on 64-bit.
In Firefox, go to Edit -> Preferences -> Content and check "Enable Java"Quit FirefoxIn a terminal, cd to /path/to/firefox/plugins. On my machine and for my current version of Firefox, this is in /usr/lib/firefox-3.0.14/plugins If in doubt, locate plugins | grep firefox should narrow it down.Create a symlink to the Java plugin. Your path to Java may differ, but on my machine I did:

ln -s /usr/share/java/jdk1.6.0_14/jre/plugin/i386/ns7/
Restart Firefox Apparently on 64-bit the i386 directory under jre/plugin doesn't exist, but there are some solutions. I'll have to verify when my 64-bit machine (complete with 8GB of RAM and a solid state drive!) arrives.

What's the New York Times Doing with Hadoop?

Interesting yet very brief interview on what the New York Times is doing with Hadoop. It's always fascinating to me to read about the tools and approaches people use with the level of scalability most of us don't have to worry about. Also interesting to me is the MapReduce functionality in Hadoop since it's the same idea used by CouchDB views, and I'm absolutely loving the bit of work I've been doing with CouchDB.

Nirvanix Support in Open BlueDragon

More exciting cloud support has just been added to the nightly build of Open BlueDragon! This time around it's full support for the Nirvanix Storage Delivery Network. Read more in the announcement on the OpenBD blog, and full usage notes are on the OpenBD wiki. Nirvanix is similar to Amazon S3, which OpenBD also supports, but Nirvanix offers the ability to create child accounts that can be limited by storage capacity and bandwidth. Nirvanix also has fantastic functionality form media files such as audio, video, and photos, allowing you to convert file formats, resize, crop, etc. all from Nirvanix. Cloud computing is seriously powerful stuff, and we're making all this power available across multiple cloud services right from within OpenBD.

OpenBD Google App Engine and cfc's - Paul Kukiel

In my previous OpenBD on Google App Engine post I mention there is no relational database ( yet ) for OpenBD on GAE. There is however the ability to write and save objects directly to Googles Data Store. This sort of feels like working with an ORM but it's even more abstracted as there is not actual database that we can see but we can put objects in this place and run simple queries against the data sets.

Here is a code snippet:

Persisting Data:
view plaincopy to clipboardprint? cfset v = createObject("component","Visitor").init() />cfset v.setFirstName("Paul") />      in a collection called Visitors --->cfset googleWrite(v,"Visitors") />      This will return an array of Obhjects ( cfc's ) that are      in the datastore in the Visitor collection    --->cfqueryname="dataStoreQuery">select  from Visitors  cfquery>

from Visitors

Notice I must use variable.VariableName rather then cfproperty name="varia…

Bypassing Windows Security Checks in Firefox 3

Firefox 3 now respects any Windows security settings, such as not allowing you to download MSI and EXE files. Better security if you don't know what you're doing, sure, but annyoing when you're trying to download a bunch of stuff to configure a new Windows server. Easy fix without changing the Windows security policies at the OS level is to open a new tab in Firefox, and in the location bar, type about:config and hit enter. This will bring up Firefox's configuration settings. Right-click anywhere and choose "New" then "boolean." For the name of the new config setting, type and set the value to true. Hit OK and you're done--no need to even restart Firefox. Lots more about the Firefox settings related to downloads and security can be found on the site.

Pigeon Turns Out to be Faster Than S. African Net


 writes "The results are in: it's faster to send your data via an airborne carrier than it is through the pipes. As discussed Tuesday, a company in South Africa called Unlimited IT, frustrated by terribly slow Internet speeds, decided to prove their point by sending an actual homing pigeon with a "data card" strapped to its leg from one of their offices to another while at the same time uploading the same amount of data to the same destination via their ISPs data lines. The media outlet reporting this triumph said that it took the pigeon just over 1 hour to make the 80km/50mile flight, whereas it took over 2 hours to transfer just 4% of that data."


Reminds me of the old "never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway" quote.

ColdFusion 8 on Snow Leopard

I did a clean install of Snow Leopard on my Mac Pro, and although I do 100% of my work on Linux these days, many of my colleagues use Macs so I thought I'd give installing ColdFusion 8 a shot. First problem is the CF 8 intsaller won't run without Rosetta, which is an emulation layer that allows Universal Binaries to run on Snow Leopard. (For those of you who aren't aware, Snow Leopard does not run on PowerPC-based Macs.) I decided not to install Rosetta, so that's a non-starter. From what I understand if you have Rosetta it does work, but the JRun web server connector doesn't. This is exactly the same as it was with CF 7, when you had to get the web server connector source code and compile it using Xcode. Not a big deal, but I don't use JRun anymore and since it's more or less a dead product at this point, I really encourage people to investigate other servlet containers like Tomcat. Short answer is it's not worth my time to even worry about the web s…

Startup Script for Tomcat on CentOS 5

The final step of my VPS migration was to move the Tomcat startup script I created in /etc/init.d over to the new VPS. Unfortunately my old script didn't work on CentOS 5. Fortunately, I found this one that does! So with that, I think I'm finally moved to the new VPS. Couple of lingering issues (MySQL storedprocs, some weird proxying stuff with my blog URL), but overall things went pretty smoothly.

Logitech Performance Mouse MX: Best. Mouse. Ever.

I won't get all gushy about the Darkfield Laser Tracking because I don't care about that feature. What I do care about is they finally have the form factor of the MX Revolution mouse that I love with the tiny little USB receiver of the VX Nano that I love. If you haven't tried the scroll wheels on the new Logitech mice you're seriously missing out--like buttah.

Flex Architect Position Available

Contact Doug Pajak ( for more information. This Role requires expertise in Flash/Flex Development. This position will work closely with Product Managers, Designers, User Experience and Creative Teams to deliver hot, cutting edge web and client based applications and affiliated presentation components. For this role we require the following: 1. Minimum of 3+ years of Flash/Flex Development working on Major Flash RIA
2. Strong command of ActionScript 3.0 and OOP
3. Experience working with Flash Apps that use XML and Server Side Technologies (including an understanding of XSD/DTD for validation.
4. Understanding of Flash Memory Management
5. Solid understanding of Web Browsers
6. Ability to mentor and coach others in Flash/Flex We would like to see a portfolio, or some other way to show us your work.
This role will be very visible and you can be assured that you will be working on projects that are substantial. Our client is extremely well-known and…

Steps for Migration to New VPS at Viviotech

I just completed the migration from my old VPS to a shiny new one at Viviotech and I figured I'd actually document things this time. I've done this a couple of times before with Viviotech, but since this is a bigger move it's a bit more manual this time around. Since I'm being moved from a FreeVPS server to a Xen server the VM image itself can't just be ported over, which means moving files, mail, configuration, databases, etc. all manually. Honestly this is probably a good thing since it gives me a chance to do some serious cleanup. Another big change with this move is there's a new Kloxo (formerly Lxadmin) administration console. Previously they were using CP+ but I still did all my configuration by hand. Kloxo is a bit more draconian about having control over config files for Apache, but I dig into that later in this post. Kloxo is a much nicer admin console than CP+ (and since there hasn't been a release of CP+ since 2007 I think it's probably dead…