Skip to main content


Showing posts from 2008

Codex - a framework for Flex

Yes there are plenty of frameworks out there.
Here is a new one anyway -- a framework that is based on a very simple principle:  Hold stuff that I need to get to from different places.
Codex is a pretty simple framework -- if you can even call it a framework -- and I am designing this so that it doesn't make you change the way you build Flex apps.  It isn't meant to get in your way at all, it is meant to give you access to some common info that your app needs as well as some tools for recycling and reusing information quickly.<more/>For example, when your Flex app loads, you may want to load some XML data that describes the server-side configuration of the DB or remote objects you want to talk to.  Once you load that, stick it in your Codex -- and now any component, module, etc. in your app that needs configuration can grab it out of the Codex as needed.
This is the "concept" of global variable type storage, only you have to choose how to use it correctly.  Put…

Setting up a SFTP Server on Windows

I have been working with SFTP (FTP over Secure Shell, so is thus encrypted), and needed a free or low cost solution to setup an SFTP server on windows (not to be confused with FTPS, which is a bit different).  I came across this great blog entry from, so this information comes from them with a few minor updates from me.
This tutorial will help you turn your Windows based system into a SecureFTP (SFTP) server.
Secure Shell (SSH) is a program that lets you log into another computer over a network, to execute commands in a remote machine, and to move files from one machine to another. It provides strong authentication and secure communications over insecure channels. When using ssh, the entire login session, including transmission of password, is encrypted and therefore is very secure.<more/>You may have noticed that many webhosts allow ssh access. This means that you can login to their webserver and execute many UNIX…

CF United 2009 - Vote for the tracks you want to see!

From now until Dec 20th, you can vote for which topics you want to see at CF United.  I have two topics submitted for Flex development (google maps/craigslist mashup and google app engine) and one track for open source (TaskCFC). (hint! hint!)
Give it a go, and I look forward to seeing you there!
<a href=">

Now this is progress: Linux on the iPhone!

It is still quite young, but it is very exciting to see that linux has been ported to the iphone! This means that we may yet have some options for a friendly open-source way to use the excellent iphone hardware.

Read more here:

Adobe Flash on the iPhone... finally ?

According to several sources, during Flash on the Beach, Adobe announced that it is "actively developing" a port of the Flash runtime to work on the iPhone. It would be in Apple's best interest to help Adobe along with this process.

No dates or feature/compatibility information is available right now, but I certainly hope that Adobe takes into consideration that the Flash 9/10 support (as opposed to Flash "lite") would open the doors of iphone development to Flex developers.

Bringing Flash to the iphone will not only address a huge customer demand, but it might also put Apple in a better place to deal with Google android as it begins to grow and take on its own market strategy.

Sources quoted:…

Subversion on Windows + Eclipse Howto: Part 2

Ok, here in part 2 we are going to detail the installation process for Subversion on windows. If you follow these directions, it should go pretty smooth, and when you are done, you will have a working subversion server connected to your eclipse for remote development.

Step 1: Download the software you need:

Download Subversion binary installer

I used Setup-Subversion-1.5.1.en-us.msi at the time of writing this. I recommend you get the newest STABLE release.

Download Tortoise SVN installer

I used version 1.5.3 at the time of writing this. I recommend you get the newest STABLE release.

Optional: If you don't have eclipse yet, I highly recommend you get it here (if you don't know which version to get, get the java developers version), along with Aptana tools and either subclipse or subversive. Installation and config of eclipse won't be covered here, but there is plenty of documentation online that a google search will reveal.

Step 2: Install Subversion:
Install subversion usi…

Subversion on Windows + Eclipse Howto: Part 1

There are a lot of Subversion/windows tutorials out there, but many of them are also outdated. Subversion is quite mature now, and there are several ways to use it for software development lifecycle.

The two most common questions I get about subversion are:
Can I have subversion manage source on a remote server if I develop over FTP? and

Do I have to run subversion on my local machine if I want to develop locally.

The short answers to these questions are: Yes, you can have subversion manage code that lives remotely, you just have to know how to do it. And No, you do not need to install and run the subversion software on your local machine if you don't want to.

The ideal setup is that your server runs Subversion to manage code on your remote server, and you simply use a client to connect to your repository for remote development. If you are connecting remotely and actually doing your development on a remote machine, thats where it gets a bit tricky. You will need access to the …

Iphone firmware 2.0.2 is out! Yeah!! .... oh wait, I mean oh no!!!

Apple is beginning to worry me... I love the iPhone - it has a great combination of tools for checking email and web surfing that is surprisingly usable in a mobile package.

So version 2.0.2 was supposed to address "undisclosed bugs" - some of which were supposedly the bad 3G bugs.

I installed 2.0.2 on my phone, and immediately my reaction was positive (the "yeah!" part of the topic above) because everything was snappy and much more responsive than 2.0.1 -- and a world of difference over 2.0.

About as quickly as my excitement came, it turned south as I noticed a great number of things that no longer worked -- and they are critical issues too.Wifi now continually prompted me for the connection key instead of remembering it every time. Email for some unknown reason started failing with "bad password" errors.

Thinking that I may have screwed something up with my restore from iTunes, I did a clean flash again of 2.0.2, and then didn't restore my setti…

TaskCFC : Open Source Group Task Management is coming!

I have been working hard on a new project, to be released as open source called "TaskCFC." This is a group task management system that uses ColdFusion on the back end and Flex on the front end. I am writing this since it seems there are no real easy to use/easy to customize group task mgt systems out there. Ultimately this *WILL* be integrated with FusionDox, and may be integrated with Google apps and Google App Engine.Here is a partial list of features:

- Admin, project manager and user roles

- Projects are associated with a company

- Tasks are associated with a project

- Every task has multiple attachments with a beautiful and easy flex-based upload system

- Delegation of tasks

- E-mail notifications

- Time sheet/log integrated with tasks

- define your own work types and hourly rates

...and more...

Version 1 is nearly feature complete, and already being tested in a real work environment.

So if this interests you or you want to contribute, give me a shout.

Flex > CF > Craigslist > Google Maps Mashup

Here is one of several apps I have written recently that i've been meaning to put on the blog. This app shows how Flex can bridge data from multiple sources. Perform a keyword search, maybe search for an iphone, and this app will search craigslist, and show you the results displayed on a map of the city.

Dynamic RemoteObject defined by settings in an XML file

In my CF United 2008 presentation on Charting with Flex and ColdFusion, I demonstrated a nifty actionscript function to dynamically create a remoteObject without needing to use services-config.xml. (The code is nearly identical to code written by Mike Nimer, but lovingly frosted with glucose... rr tweaked for my needs) I also mentioned that using this, it would be possible to have an external settings file read at runtime that defined your remote object endpoint, without needing to use an annoying services-config.xml file and allowing run-time configuration of your remote data services.

Why would you want to do that? (you might ask...) Well, the short answer is that you can re-configure the server that your app talks to without re-compiling your flex app, which is really important if you do any type of QA testing.

So this post is all about how to do that thing i just described.To start, lets create a settings.xml file in the root of our source. Lets say it looks like this:


iPhone pwnage bandwagon

I am generally NOT ok with hacking operating systems to remove software or hardware restrictions.  That being said, the Iphone Dev Team released their new pwnage 2.0 tool on sunday, after an incredible amount of hype.  I went ahead and used the tool and now my iphone is unlocked with the 2.0 firmware for use with any sim card.Note: Links to pages that explain how to unlock your iphone are at the bottom of this post.So, if I am against hacking hardware and software, why did I unlock my iphone?I am a technology industry professional.  Sure I like to have new technology gadgets, and that was the draw for getting an iphone in the first place.  Since I got one, it has become a very useful part of me.  Like my trusty old treo, it gives me my calendar and address book, which sync with my desktop.  Where the iphone really shines is with the built in WiFi.  This is, by the way, where the treo completely failed in the last few years (despite a huge number of users complaining and demanding wifi…

Open source routers for WAN load balancing

Get ready for acronym overload.

A while back, I write a blog entry about pfSense, and mentioned that it was a worthwhile project.  Now I want to mention Vyatta, which is another open source router project.  While pfSense is based on BSD and has a fancy web interface, Vyatta is based on Linux, and only has CLI (command line interface).

As a general rule the CLI is not really a huge problem for me, especially since Vyatta has a PDF reference manual outlining the different commands.

The whole reason I have been looking at open source routing solutions in the first place is because I want to reconfigure our network with a load balanced solution (over two or more broadband internet connections), and I didn't find much in the commercial sector that convinced me to buy.  We also have a VOIP phone system, so whatever gets implemented needs to support SIP connections and have QOS control.  Add DMZ and firewall rules support and now you need a pretty full-featured router.

When I initially s…

Dealing with Russian Spam in Google Mail aka Gmail

In a day where spam is an increasingly huge issue, I have been using Google's email which does great at spam filtering.  There is of course once major exception, and that is Russian or Cyrillic spam emails.  Google's filters don't seem to be able to block those emails, and if you have had an account as long as I have, the volume of spam is bad.  I was getting 50-100 Russian spam emails every day.

I have experimented and come up with a solution using Google's filter feature.  It has taken several tries to get the right settings to actually be effective.  Here is how to rid yourself of the bad Russian spam!

Log into your account in GmailIn the upper right part of your screen, click on "Settings"On the settings page, click on the "Filters" headingClick the "Create a new filter" linkIn the "Has the words" box, copy and past in the contents from this Microsoft Word document (I tried to paste the actual characters here, but they got all…

Dispatching custom events from a Flex Module

I have been working to make my Flex applications more and more modular.  Flex now supports modular development with the ModuleManager so you can dynamically load and unload modules at runtime.There is reasonably good documentation online for how to load and unload basic modules, and even how to set public vars and call public methods defined in modules after they are loaded.  There were not, however, any examples (that i could find anyway...) for having a module dispatch a custom event class, so that your application can catch and respond to the event.  Here is a basic outline of an app, a custom event class that stores some bits of information, and a module that demonstrates dispatching the custom event class:The main Flex app "SimpleModuleEvents.mxml" :
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx=""


 layout="absolute"> <mx:Script&…

DRM: Spiral Frog + AnalogWhole + Itunes = free music for ipod and iphone

There have been some nice new "advertiser sponsored" free music sites to pop up over the last few years.  One of the most promising is Spiral Frog (  The downside to pretty much all of them has been that songs downloaded from these sites are digital rights managed (DRM) which is used to ensure that only licensed users can listed to the files.  Basically once you download one of these songs, you can't email it to your friend and let them listen -- they will get a license error.

This technology for digital rights management is essential so that the already struggling music industry doesn't lose what little money it is making.  It used to make a killing on CD sales, but not anymore thanks to illegal music distribution online.

So, the upside to DRM is that you can't give illegal copies to your friends.  The downside is that if you use a service like Spiral Frog (which uses Microsoft Windows Media Player for DRM and playback), th…

CFUnited Europe 08 in London!

I am finally back in the office after CFUN Europe (and some travelling afterwards).My apologize to all those who have been asking about my presentation files.  They are posted below.cfun_europe_08_recursion.zipcfun_europe_08_xml.zipOverall I thought CFUN Europe was very successful.  There were a lot of presentations on CF+AJAX, and a lot of focus on integration between CF and Flex -- very valuable stuff for any CF coder.If you missed it, you should plan to come to CFUN in Washington DC on June 18-21. See for more info.

Flex Multiline Text / Code Editor with Line Numbers

I found myself needing a text editor that displayed line numbers for a Flex project, and despite searching online, couldn't find a Flex 2 component that did what I wanted.  So like a good programmer, I whipped one up. 
Here it is, in all its buggy glory.  I would love some feedback, and perhaps some of you Flex gurus would like to contribute.  If so, e-mail me.

<cfpresentation> error on multiserver coldfusion install

On a clean multiserver install of ColdFusion 8, I was surprised that <cfapplication> was throwing an error.

The error I was getting was:

An error occurred in creating the presentation. C:\JRun4\servers\SERVER_NAME\cfusion.ear\cfusion.war\WEB-INF\cfusion\lib\preso\viewer.swf

Upon investigating, it seems that the primary JRun server for ColdFusion (usually called "cfusion"  had the proper files in the expected places, however each of the additional servers that were created had several directories missing from the last "/lib" folder, including the "preso" folder mentioned above, which caused the issue.

The missing directories were:

presothirdpartytoolsDirectory stats also show that the cfusion server has 187 objects, while the new instances had only 179 objects.  Take the above two directories out, and you are left with 6 other files that are apparently missing.  I haven't spent the time to figure out which ones, bec…