ColdFusion Developer Week 2012

Adobe's second ColdFusion Developer Week kicks off today, June 4, and continues through Friday, June 8, 2012. Whether you're a new or experienced CFML developer, there's probably more than one session you'll find very interesting and useful. From basics to advanced language features, as well as frameworks and a focus on the new ColdFusion 10 release, there's just loads of good stuff, all provided via free online Webinars.

Check out the sessions and schedule, and sign up.

Like last year, I'll be presenting Improve Your Apps Through Unit Testing, tomorrow.

I also hope to revive this sleepy blog with some more interesting tid-bits soon, so stay tuned! It's been a busy year, but I've queued a number of topics for blog posts, so hopefully I can catch up a little in the near future.

Bash Script to Set Sensible Directory/File Permissions

Every once in a while a directory structure's permissions just get messy (or an archive I download and extract has stupid permissions, like making every single file executable). So I'll occasionally want to chmod 755 all directories and chmod 644 all files. If you're new to file system permissions in Linux, let me translate that goal. For every directory I want the owner to be able to read/write/execute (execute allows to cd into directory) and both group and all others to have read/execute permissions. For every file I want the owner to have read/write permissions and both the group and all others to have read-only permission. The Ubuntu Community Documentation has a good File Permissions page that covers this in more detail.

That same documentation has a Recursive chmod using find, pipemill, and sudo section that details precisely the two commands I need, but I hate to waste time finding this link and carefully remembering what I want to do. So, I've whipped up a simple Bash script that simply accepts a directory path as its only parameter and prompts me to confirm before making the permission changes. Here it is.

#!/bin/bash

# exit this bash script if any statement returns a non-true return value (same as: set -e)
set -o errexit

if [ -z "$1" ]; then
    echo
    echo "ERROR: Must pass parameter of path to directory (which will have permissions set accordingly; 755 directories and 644 files)."
    echo "USAGE: $0 /path/to/directory"
    echo
    exit 1
fi

echo
echo "Working recursively with directory $1 this script will chmod 755 all directories and chmod 644 all files."

read -p "Okay to continue (y/n)? "
if [ "$REPLY" != "y" ]; then
    echo
    echo "EXITING -- NO ACTION TAKEN."
    echo
    exit 1
fi

echo
echo "Starting..."
echo

find "$1" -type d -print0 | xargs -0 chmod 755
find "$1" -type f -print0 | xargs -0 chmod 644

echo "Done."
echo

exit 0

Since I'll often need to run this script as root, I've taken a few extra steps to protect it by making it owned and executable only by root:

sudo chown root:root setperms.sh
sudo chmod 744 setperms.sh

So, from the directory containing this script (as you can see I've named mine setperms.sh), here's an example usage:

sudo ./setperms.sh ~/directory-to-clean-up-permissions

If your directory has strange owners and/or groups set, you can quickly clean that up recursively as well. For example:

sudo chown -R jkrug:jkrug ~/directory-to-clean-up-permissions

Support Flex/Flash Builder for Linux

It was reported that Flex Builder for Linux is on hold.

Rather than go into a lengthy discourse here on why I feel Flex/Flash Builder should be available to Linux desktop developers, I'll direct those interested to this Adobe issue/bug report, which contains plenty of great comments and lots of votes in support.

If you agree, please be sure to vote for this issue.

I would also like to draw attention to a recent survey by the Eclipse Foundation.

So...

The number of developers using Eclipse on Linux workstations has grown from 20% in 2007 to 27% in 2009...
+
Eclipse is likely the most popular open source IDE (certainly for Java/CFML developers)...
+
Adobe has open-sourced the Flex SDK...
+
Linux likely has the most vibrant open source software community of developers...
+
Adobe has a Flex Builder Eclipse plug-in...
+
Adobe provides no means for a developer using Eclipse on Linux to become a Flex developer???
=
I will be happy to spend $249 on IntelliJ IDEA, which appears to provide great Flex support out of the box.

BlogCFC was created by Raymond Camden.