Saturday, February 07, 2009

Are Hotel room numbering conventions depracated?

I found this in the hallway as I was trying to find room 432 (the one I was staying in). I was not really sure what to make of it. I eventually found it and did not have to sleep in a semi-colon.

Whoever made this sign should have given it a bit more thought IMO. Either that or they laugh out loud knowing every day room 432 gets re-assigned to some helpless chap like myself.

Friday, February 06, 2009

I am starting to really, really love ColdFusion (again)

I was an Allaire CF user back in 1999 or thereabouts when it was first available. In fact, I remember Blue Mountain offering it using the "brand new" ASP model. The fact I could integrate data into dynamic HTML was really cool.

If you have been like me, a bit short of CF activity for a long time, it is time to look at CF again. CF rocks!! It is so easy to use and takes minutes to integrate with most technologies. Now I am not a professional programmer who uses it every day, but that is what stands out. Declarative programming languages are just easy to use. CF is the master.

On another note, someone once pointed out that CF developers are paranoid sometimes. I can see why. If you saw your favorite technology being bought and acquired a few times, you might be unsure what direction it may take. I really hope Adobe has been clear but CF developers have a strong evangelist in me and I am an Adobe employee. If I can be of any help to clarify the future of CF or you need an ally, call me. I'll go as far as it takes to ensure CF lives forever!!

I also thought I'd make fun of CF developers (making fun of ourselves used to be part of the CF culture back in the Allaire days) and my boss, Ben Forta, seems to embody this. I wrote an algorithm for how CF developers' internal thinking process works. It is just a joke so please do not take offense.

* yes - I consider myself a CF person now!

Import com.array.ColdFusionHaterList.*;
Private var developer = new Developer;

// create a new conversation and pass it the argument of the instance of developer.
Private var myConversation conv = new conversation(developer).startConversation();

// test to see if Coldfusion is mentioned once every twelve words.
if ((conv.getWordCountSpoken() >= 12) && (String(“ColdFusion”) = “false”))
} else {


I am now offline for the week to go to Whistler and read a CF book to learn more advanced topics. Cheers!

Thursday, February 05, 2009

Adobe AIR covered in Time Magazine

I got an internal email from a colleague today about this article in Time Magazine (note it is on page 2 of the article):

"A nice piece in Time Magazine (online today, in hard copy next issue) discusses new applications and products for e-reading, and the future of publishing. The writer references the concept of an “appgazine” — magazines acting “more like computer programs than Web or printed pages.” He interviewed Kevin L who demonstrated the International Herald Tribune Reader and (RED)WIRE applications.
"I saw my first real appgazine one day in downtown San Francisco, at Adobe, a company whose software dominates the production side of the publishing industry. Chief technology officer Kevin Lynch held in his hands a mobile Internet device made by a Chinese company called Aigo. This model, already on the market in Asia, has an easily readable touchscreen. But more interesting than how it looked was the software it was running — Adobe AIR."

Very cool that Time has recognized the immense value and shift!

Tuesday, February 03, 2009

Music 2.0: Why don't you pay for music? Read this!

Apparently independent music platform Indaba was on the Colbert Report this week. It can be viewed here. Stephen chats with Dan Zaccagnino, head of an online community of musicians known as Indaba Music. In his (NOTE: Update - these are Stephen's words, not Dan's from Indaba) own words - you should be able to legally remix anybody else's tracks on the Internet. Several sites such as are doing this today.

Does anyone think this is a good idea or should it be up to the artist? As a musician, I prefer to retain control over certain uses of my works (such as via Creative Commons licensing). Not that people in bulk are respecting licenses today, but in a perfect world.

Here is my argument. To get to where I am today, I took 8 years of piano lessons (cost: unknown), currently own about $25,000 worth of music equipment, have paid out well over $100,00 in my lifetime for various music related activities, pay out $135 per month towards rehearsal space, and my time goes on top of that. My band, 22nd Century's CD "The Twenty Second Century" cost about $17,000 for the first 1,000 CDs. To date, we have had no sales (primarily because we have not yet set up online sales) however we are now using CD Baby. Yes - as of this week, you can buy and even listen to my latest music at This works out to an artist cost of about $2.80 per track. Even if we sell this via iTunes and net $0.60 per track, we will have to sell close to 100,000 copies to break even on the recording costs (the scale slides the more CDs you make). As a musician, this sort of despair and helplessness is our everyday life. This really sucks people!!!!

Some of my music is free though. I do this to be a good musician and offer my stuff that I am not planning to record (and put on CD or iTunes) on or (subsidiary). I do this in hopes people might use it for something, so I am torn.

So here is the 22nd Century $1,000,000 question - who will be the first person to actually pay for a copy of our CD? What can I do as an artist to convince you, the listener, that my multi $100,000 investment into music is worth $0.99 a track for my songs? For those of you who do not like our songs, we're cool with that. Our style reflects who we are, not commercial interests. Obviously if it did, you would have to conclude we were dumb to enter into the music business as entrepreneurs.

What business model can work or MixMatchMusic? Would you pay a fee to download fresh "members only" mixes every day? Would you pay a small fee to buy CDs or get free trials of every new mix pushed to your desktop? Would you be willing to accept advertising on the site? The reason I ask is that sites such as CD Baby, Indaba, and MixMatchMusic cannot survive without business models that drive strong sales and if they dry up, your music choices dry up.

As a civilization, we have to support the arts or pay for fair use when the artist demands it. In return, artists may grant us more leverage to remix some of their content. For now, nobody is making money.

Think about this one hard please.

(Disclosures - I may have commercial interest in MixMatchMusic)

Duane's World 16 - jFall Java user Group, Netherlands!

It is now live. This episode covers probably the largest user group meeting I have ever attended. There is also a great section on LC ES Workbench and how the Eclipse IDE reflects the Java API Docs. There are several interviews.

Monday, February 02, 2009

iPod Touch update killed my iPod!

I tried to update to the new firmware version (recommended) by Apple today. The log file says:

Feb 2 00:00:00 duane-nickulls-mac-pro newsyslog[1427]: logfile turned over
Feb 2 08:54:57 duane-nickulls-mac-pro [0x0-0x27027][620]: Child: Can't read length for data
Feb 2 08:54:57 duane-nickulls-mac-pro [0x0-0x27027][620]: Child: NULL command dict read, exiting...
Feb 2 08:54:58 duane-nickulls-mac-pro [0x0-0x27027][620]: Could not receive size of message
Feb 2 08:54:58 duane-nickulls-mac-pro [0x0-0x27027][620]: MobileDevice: receive_message: Could not receive size of message: 0 Unknown error: 0
Feb 2 08:54:58 duane-nickulls-mac-pro [0x0-0x27027][620]: MobileDevice: _read_callback: Could not receive message
Feb 2 08:55:26 duane-nickulls-mac-pro [0x0-0xc00c][131]: DigiHub:sendChargingCommandToDevice RequestExtraPower(kUSBPowerDuringWake) returned 0
Feb 2 08:55:26 duane-nickulls-mac-pro [0x0-0xc00c][131]: DigiHub:sendChargingCommandToDevice sending command with sleep: 0, wake 0
Feb 2 08:55:26 duane-nickulls-mac-pro [0x0-0x27027][620]: MobileDevice: AMDeviceConnect: This is not the droid you're looking for. Move along, move along.
Feb 2 08:55:26 duane-nickulls-mac-pro [0x0-0x10010][148]: MobileDevice: AMDeviceConnect: This is not the droid you're looking for. Move along, move along.
Feb 2 08:59:32 duane-nickulls-mac-pro dashboardadvisoryd[2211]: fetch: unable to fetch data from read stream while fetch advisory list
Feb 2 09:01:33 duane-nickulls-mac-pro kernel[0]: iTunes[620] uses send/recv on a pipe
Feb 2 09:01:32 duane-nickulls-mac-pro [0x0-0x27027][620]: MobileDevice: send_message: Could not send message size: Bad file descriptor
Feb 2 09:01:32 duane-nickulls-mac-pro [0x0-0x27027][620]: Parent: Error or timeout on select
Feb 2 09:01:32 duane-nickulls-mac-pro [0x0-0x27027][620]: Parent: NULL message read
Feb 2 09:01:32 duane-nickulls-mac-pro [0x0-0x27027][620]: Crash report copy task disappeared while submitting a restore log
Feb 2 09:02:33 duane-nickulls-mac-pro MDCrashReportTool[2229]: CFReadStreamGetError() returned: 12/8
Feb 2 09:02:33 duane-nickulls-mac-pro /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/Current/[2229]: 2229:2693486368|CrashReportCopyX.m:-[CrashReportCopierPrivate _submitCrashReportFromPath:]| ERROR: Error 2 while attempting to submit /Users/dnickull/Library/Logs/iPod Updater Logs/iPodUpdater 1.log.plist
Feb 2 09:02:33 duane-nickulls-mac-pro [0x0-0x27027][620]: Child: Can't write length for data
Feb 2 09:02:33 duane-nickulls-mac-pro [0x0-0x27027][620]: Child: Couldn't write response, exiting...
Feb 2 09:02:33 duane-nickulls-mac-pro [0x0-0x27027][620]: Child: Can't write length for data

Unfortunately, now my iPod Touch (2G) does not work. It is not recognized nor is it responsive to any input. All it displays is an apple and some weird oval diagram.

Anyone have similar experiences? I have seen one other result but cannot find it.


The Case against Flex.

I saw an article written today trying to make the case against using Flex. The author seems to have mixed up coding and architecture practices with the actual Flex framework. While the article's headline seems to be promoting a campaign against Flex, I think there are some good points to note WRT coding and architectural practices. I wish to share the comment I left on the site. The original article is here.

In addition, I could have pointed out that Flex/Flash has strong accessibility on top of the points I made (Thanks to Ted Patrick for pointing this out to me).



Okay - glove thrown, challenge accepted. I will disagree. First I will voluntarily disclose to everyone that I am an Adobe employee. As a Technical Evangelist for Adobe, my job is often to work with large enterprise customers. While your arguments have some merit (bad coding styles can lead to nightmares in all programming and scripting languages), the Flex framework, combined with good coding discipline should be welcomed and not feared.


YOU: "They almost always violate web accessibility guidelines. Sure, many thin-client application interfaces are not compliant either, but at least you have the opportunity to make them compliant -- and many platforms (e.g., Plone) do so."

DN: This is an architectural decision that is in the hands of the developer. With Flex, as with any other technology, there are trade-offs. I could challenge you easily on your definition of "compliant" but will instead state that Flex has been developed in conjunction with what developers want. When you see large enterprises like SAP, Documentum and even our own LiveCycle Engineering team, moving to Flex, they have not made this decision lightly. They have fully evaluated and accepted the programming models of Flex as valid and have taken the time to lay out good architecture before coding. Can you provide specific examples of where the framework itself violates your definition of compliance rather than the coding or architectural styles? What specific "Web Accessibility Guidelines" are you referring to? Flex gives developers what they want and the power to choose their own paths.

YOU: "They create support nightmares. Things like automatic updates, license-checking, and incompatibilities with the underlying virtual machine lead to many a help-desk call. As my colleague Kas notes, with AIR instead of applets you are just replacing Sun's virtual machine with Adobe's. The potential for trouble remains."

DN: Why do you think automatic updates are "support nightmares"? They are used universally by most software vendors for convenience and ease of use. Same with automatic checking for incompatibilities. The Java platform uses the same mechanisms. I strongly challenge this statement.

YOU: "They are prone to performance problems. Flex applications are prone to the same memory leaks and CPU spikes that bedeviled applets for years. To be sure, I've seen some fat and ugly JavaScript-based interfaces too, but at least everyone can debug those openly. We've also had customers tell us that their Flex interfaces are unusually chatty on their networks."

DN: As with any technology, Flex's ease of use provides new developers an opportunity to get in over their heads. Poor coding practices notwithstanding, the Flex IDE (Flex Builder) has a Debugger, Profiler, the ability to set break points to see what is exactly happening with your code. At the risk of sounding antagonistic, I would invite you to take a few hours to do some actual coding or take a hands on course with Flex to see exactly what is possible with the IDE. CPU spikes and memory leaks are the bane of every language. If you know of any specific issues in the current Flex framework, please file a bug with via I am sure the millions of Flash and Flex Developers will vote for such a bug if you can prove a demonstrate able, repeatable issue.

YOU: "You can't easily modify them. The vendor sets a unified interface and all their customers have to live with it. That might work for a one-dimensional tool, like a Twitter client, but what about more heterogeneous, multidimensional environments?"

DN: Again, proper coding disciplines and styles will help anyone create a maintainable code base. We have multiple MVC frameworks developed (Cairngorm, Matte et al) and firmly believe this is a developer and architect choice to embrace the discipline as it is with any other language. I can create code in any programming or scripting language that is obfuscated and hard to maintain. By contrast, I can also separate concerns and keep related classes properly documented and laid out with a well defined architectural style to avoid maintenance nightmares.

To sum my arguments up, I firmly believe your arguments are valid against bad coding and bad architectural practices. My advice is that anyone building enterprise applications in Flex or even just starting out, take the time to properly document, plan and architect their applications.

Duane Nickull