CFEclipse 1.3.4 released

I just got wind of a new CFEclipse release, via the CFEclipse mailing list. It's been a while since we've seen a new release, so this is very exciting news! :) They fixed a boat load of bugs, and added some new features. Here are the highlights that were posted to the mailing list by Randy:

  • An updated CF8 Dictionary
  • Some mild updates to the parser
  • Mark occurrences of selected words (tag/variable/method/etc)
  • Integration with Eclipse's DocShare (optional)
  • Preference for modifying the browse url on unit tests to run unit tests

Also, they have tested this new release with Eclipse 3.4, as well as 3.5 which was also just released today!

So fire up your Eclipse Updater and give this new release a spin. :)

Linux installations = recursive masochism

I have to get this off of my chest. Firstly, yes I am a big Linux fan because it's the only operating system I've used that offers configuration down to the anal retentive levels I prefer. But sometimes Linux makes me want to scream. Installing from source is one of those times.

So I like to use Ubuntu desktop because it is a LOT easier to use than any other Linux distro I've tried (and I've tried a number of them). In general, installations are a breeze because I can open up Synaptic Package Manager and search for the program I want (and 9 times out of 10 it's in the repositories). But on occasion the software I want is not in Ubuntu's repositories (nor any of the "universe", "please don't go here", "you will die if you use this" repositories I've enabled). So I am forced to use the old fashioned methods. This is where recursive masochism begins. I'm sure many of you Linux fanboys have suffered this scenario:

  1. Download source files.
  2. Attempt compilation...discover you need some additional library first.
  3. Find dependency on the Internets, attempt compilation...discover you need some additional library first.
  4. Find second dependency on the Internets, attempt compilation...discover you need some additional library first.
  5. Find third dependency on the Internets, attempt compilation...discover you need some additional library first.
  6. Find fourth dependency on the Internets, attempt compilation...it works.
  7. Attempt compilation of third dependency...discover you need some additional library first.
  8. Find fifth dependency on the Internets, attempt compilation...it works.
  9. Attempt compilation of..."Where the &$#% was I??"...
  10. Attempt compilation of originally desired software...discover that their *&%# compile script has an error in it.
  11. Realize that you just wasted the last 6 hours of your life (as well as about 500 MB of hard drive space).
  12. Pray to the Linux gods that some pioneering soul has written a tutorial for installing your desired software in Ubuntu, and that said tutorial will work for your machine.

Com'on, Linux developers! You can't honestly make fun of Windows developers when they figured out user friendly software installation years ago, but in 2009 you guys are still swimming in dependency hell.

And for those wondering about all the bleeped out 4 letter words in this post...it takes a lot to make me swear. Linux's dependency hell can bring that out in me.

Ok, I feel better now. :)

Dynamically Find Java Path

Yesterday I needed to execute a jar file from within ColdFusion, so I was planning to use cfexecute to execute the java executable and then pass in the jar file as an argument. This worked fine, but the trouble occured when I had to run this same code on a different server where the java path was different. So I started researching to find a way to dynamically insert the java path that ColdFusion uses and then the code would run on any CF server without having to modify the java path. I came up with this code:

<cfset javaSystem = createObject("java", "java.lang.System") />
<cfset javaPath = javaSystem.getProperty("java.home") & "/bin/java.exe" />

So that code will dynamically discover the java path on any server. I should note (even though it's obvious) that the second line appends ".exe" to the end of the path, and that will only work on Windows servers. I just tried the code on my Linux VPS server and it would still work as long as you remove the ".exe". I'm assuming the same is true for a Mac, but I don't have one to test with.

For those that are looking to see how to use this in a cfexecute, here's the code:

<cfexecute
   name="#pathToJavaExe#"
   arguments="-jar #expandPath('.')#/myJarFile.jar"
   timeout="20" />

Tip for Learning OO

Over the last few years I have talked a lot about wanting to better learn Object Oriented software development, but I have yet to seriously buckle down and get working on it. So I have been thinking a lot lately about strategies to learn OO. I want to highlight one thing that seems to hold people back, hopefully as a tip for others getting started with OO. To sum it up in a few words, don't worry if you are "doing OO right". Just do it. Read on to see why I say that.

[More]

7 year blogger

My first blog entry was 7 years ago today. I am very proud of that fact, but I am not proud of the frequency of my posts over the years. I just did the math, and I have averaged 5 posts a month. Not horrible, but not as many as I would have liked. Oh well.

When I first started blogging I had grandiose ideals that I was starting what would eventually become a very popular news site. I mostly blogged about current tech news stories. I was not a ColdFusion programmer back then, so I was not blogging about that yet (while that is my most prolific topic today, however).

As I do every blog anniversary post, here are some stats for the curious:

  • I have been blogging for 2554 days.
  • I have had 1130 comments (actually more than that because I lost a lot when I converted from Blogger a few years ago).
  • I have had 663790 blog views.
  • I have averaged 1596 views per entry.

That last statistic is very surprising. I think it is because I have a few entries that have received a lot of google traffic over the years. For example, these two entries have had about 28,000 views each since they were posted: JavaScript isNumeric function, JavaScript URL variables. So it's not that I have very popular entries, but rather that those few popular entries throw off the average.

Twitter has ruined ColdFusion conferences (if you can't go)

That title is very provocative, but hear me out.

In the old days (last year), if you couldn't go to a ColdFusion conference like CFUnited or cf.Objective(), you could watch the blogs during the opening keynote and see all of the new news about the upcoming ColdFusion. It was awesome! Well, this year's cf.Objective() was probably the first big ColdFusion conference where most of the bloggers are now using twitter (and not blogging as much). So I decided to watch twitter instead of the blogs. But guess what? Twitter does NOT support "live blogging" very well, especially if it's a technical conference. Why? 140 characters. You cannot type lots of demo code, or bullet points, or anything like that when you are limited by twitter's posting rules.

Now, there may be ways around this, but if there are none of the cf.Objective twitterers were using them. I learned very little of use from watching #cfobjective that morning. Just today, I finally found that Andy Matthews live blogged the event (I couldn't find this the day of cf.Objective, for some reason). Thanks Andy, that's awesome!

If you can't make it to CFUnited, don't worry. At least I'll be doing a real live blog from the keynote. :)

CFUnited Q&A

The CFUnited staff sent out some questions for speakers to answer, so here are my answers.

Have you spoken at CFUnited in the past? What would you tell someone who hasn't been to CFUnited before?

Yes, I spoke at CFUnited Last year. This will be my 5th CFUnited though, and every year I really enjoy it. My biggest advice would be to take advantage of the networking opportunities. There are always a lot of top notch community memebers around, both "celebrity" types as well as lesser known (but equally important) people you can network with.

Why should people attend your session?

If you ever put user fillable forms on your sites, you should attend my session. Spammers attack all online forms these days (even when it doesn't make sense), so preventing spam is very important for us developers. If you think Spam prevention just means slapping a CAPTCHA on the form, then you have a lot to learn. I hope to see you at my session.

Besides your topic, what other sessions are you looking forward to?

Where can people find you at CFUnited?

At my session, of course! :) I am planning on attending as many sessions as possible (I always do), but outside of that I will be at all of the breakfasts/lunches, and hanging out in the common areas between sessions. In the evening I will attend the planned events, but besides that I might be hanging out in my room. I'm thinking about bringing some games with me and inviting some friends to play games one night (board games, card games, etc.)

When you are not working what do you like to do in your free time?

I am a computer geek at heart, so in my free time I spend a lot of time on computers. I read a LOT of news/blogs. I also play some online games. When not on the computer, I like to spend time with my wife, and I like watching the Cubs as well as the Discovery Channel. I am also very religious and spend a lot of time doing church related stuff.

Apple's new Netbook

So the Apple rumor mill is in full swing about an upcoming Apple Netbook. I thought I'd join the fun with my predictions.

[More]

Ubuntu Jaunty with ATI Azailia (Intel HDA) Audio

This is a somewhat obscure post, but it's for my future reference and anybody else that had audio problems after upgrading to Ubuntu Jaunty.

Firstly, let me say that my audio worked fine "out of the box" with Ubunto 8.10 (Intrepid). I have an AMD mobo with an onboard sound card built by AMD/ATI (or Intel), I'm not sure which. Here are some descriptions for my sound card I saw in various hardware lists in my system:
ATI Technologies Inc SBx00 Azalia (Intel HDA)
RS780 Azalia Controller
ALC1200 Analog
snd-hda-intel (the driver)

To make a long story short, I ended up following this excellent Ubuntu sound troubleshooting guide in the Ubuntu Help section. The part that seemed to do the trick was when I "purged" all of my audio config/setup and set it back to "factory defaults". This was accomplished with a single (long) command in the terminal. After that, I was able to hear sounds in the "Sound" panel under System->Preferences. However, I had to try all of the different devices under the dropdown before I found one that worked. In my case it was "HDA ATI SB ALC1200 Analog (OSS)".

I'm not sure I like that I had to settle with the Analog device instead of digital, but oh well. At least I finally have sound working again. On second thought, I've heard that Analog is better than Digital when it comes to music (sound waves are analog not digital). So I guess I'll survive. :)

CFUnited: Comment on topics

Stellr has just updated the CFUnited Website with a new feature. You can now add comments to the session topics, similar to commenting on a blog. So if you want a speaker to cover a question in his topic, or maybe you are wanting more details to see if you should attend a session, you can drop in a comment. My topic is called Spam, Bacon, Sausage and Spam, so drop by and leave me a comment if you wish. :)

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9. Contact Blog Owner