Entries Tagged as CFBuilder

How my dev stack has changed in recent weeks

While I'm always pushing myself to try new things and find ways to be more productive, over time I've developed a sort of "home base" for the tools that I use to get my work done. I thought I would start by describing what that home base is:

  • ColdFusion Builder 2
  • Chrome & FireFox (latest stable builds) and their respective developer tools
  • Samsung Galaxy Tab 10.1"
  • Android Smartphone (currently a Motorola DroidX)
  • LESS CSS
  • jQuery
  • Bootstrap (most especially for the responsive css grids)

And yes, while the last three are technically "frameworks", I consider them an indispensable part of my tool belt. It is the exception, not the rule, when I find myself starting a green-field project and NOT using one of them.

For months now I've been a true believer in at least "always mobile" if not "mobile first". The percentage of consumption being done on phones and tablets is already astonishing and still on an upward trend, so if your websites aren't optimized for mobile screens you're already at a disadvantage. So I test everything that I work on with both my tablet and my phone.

If you don't have a tablet I would recommend you get one, if only for this purpose. They can be pricey, so if you're on a limited budget my advice would be to keep your eye on Woot -- they seem to have tablets on sale at least 2-3 times a month. Subscribe to the daily email and watch for a deal on the tablet you want. I got mine at a really nice discount, and it's been worth every penny, even if just for testing purposes. The fact that my kids and I then have it to play with in leisure time is all bonus.

And of course whatever toolkit I'm using has to have good support for ColdFusion. Not just syntax highlighting, but real productivity features.

I spent some time trying to use TextMate as my primary IDE (during my time also learning Ruby on Rails for a few projects at Wharton), but constantly found myself hitting Alt+/Alt+ to move lines up/down, or hitting the CFB keyboard shortcuts and then frustratingly typing out things like <!--- ---> and <cfdump var="##" />... As tiny and insignificant as these types of shortcuts are, if you use them 100 times in a day, you're going to miss them when they're gone. And this doesn't even account for things like code insight and CFB Extensions. Neither of these is a constant fixture in my process, but when they do pop up, I'm incredibly thankful for them.

So what's inspired me to write this post? Three new (to me) things:

Less.app

I've been using LESS ever since I saw Nathan Strutz demo it at MAX 2011. That does not make me an early adopter. I consider myself late to this party. Lucky for me, the party is still raging on at 3am. And it's a damn fine party.

But, because I'm lazy, I was taking the lazy route. I would directly include my .less files in-page, and the less JavaScript library, and it would be converted on the fly. This way I didn't have to add any steps to my development process to compile LESS to CSS for testing. Granted, it seemed fast as hell, but even fast as hell is greater than zero milliseconds, and in this game every millisecond counts.

This week I stumbled on Less.app, which is an OSX application (There's a Cross-platform port using AIR, but the native one's better looking on OSX) that you leave running in the background, and it auto-compiles your .less files into css, optionally minifying in the process, instantly when you save a change to a .less file. Practically, this means that I write LESS code, and by the time I Cmd+Tab over to Chrome and refresh the page, the css file has been updated with my changes.

And even better? On the off chance that I make a syntax error, like forgetting a closing } brace, Less.app immediately alerts me to that fact. (The messaging could be clearer, but once I figured out what was going on, it started being easy to spot my mistakes.)

Sublime Text 2

I totally get why some people don't dig Sublime. It's definitely not for everyone, and to be honest I'm still not 100% sold on it. But it definitely has some features that I'm growing used to and will be adding as feature requests for CFBuilder. I've been using it off and on for a month or two, and then last week I decided to try and use it as my only IDE. I survived, but I think ultimately I'll end up with CFBuilder keeping the top spot in my tool belt. If I just need to edit 1 or 2 files, and I know I won't need the more advanced features of builder, then I'll use Sublime for its lightning fast startup and file-loading times.

In particular, my favorite sublime feature is Cmd+D. Highlight a variable and press this key combo. Each time you press it, Sublime highlights the next occurrence of the same word... but the trick is that it doesn't un-highlight any as it goes. It uses multiple-selection, so after you've selected each of these occurrences, just start typing and you'll replace them all at once. I don't know exactly why I like this better than a search/replace. Maybe it's that I get to see each instance as I add it to the collection. But it just feels so much more natural.

Adobe Shadow

Shadow is a great little tool that was just released last Wednesday. It's actually not entirely new technology. It's based on an existing project that accomplishes the same thing, but the difference is that Shadow is easy to setup and use, where the original project (Weinre, which stands for Web Inspector Remote, and is pronounced "winery" (or "wiener"? who knows...)) was complicated and difficult to get running, or so I'm told. Right now it's what's called an "MVP", or Minimum Viable Product. This means that Adobe has lots of ideas and plans for where they could take this, but right now its features are limited to just enough to get the point across and make an impression. The limitation is that currently it only watches for URL changes and follows them. You can't submit forms/etc. But it has made an impression on me!

There are 3 components to Shadow: A desktop app, a Chrome extension, and a native app that you install on your (iOS and Android) phones and tablets. You turn them all on and enter a couple of numeric passcodes to connect the devices to the desktop, and from then on, the devices open whatever web address you have open in Chrome. They... shadow... you. Get it? Not only that, but you can do what's called Remote Debugging. If you're familiar with Chrome Dev Tools, which allow you to tweak the HTML, CSS, and JavaScript of a live page and see the effect -- that's what remote debugging is. Except you're doing it directly on the selected device, from your computer. I can pretty much say, this is the best thing to happen to front-end web development since CSS.

If you're a visual person and don't really get what Shadow does for you, you can see it in action in this video on Adobe TV.

It's interesting to note that for the most part my tool belt isn't changing, I'm just adding to it. Sublime isn't really replacing my CFBuilder usage, but rather complementing it in a few cases where I would have previously used Notepad++ or something along that line.

in CFBuilder | ColdFusion | 1 Response Posted 2012-03-12 08:18

What's free in CF Builder 2? (Why so negative?!)

There were a bunch of posts this week announcing that ColdFusion Builder 2 is now available, and that there is now a free ("Express") edition -- but all of the posts I saw listed the things that are not in the Express edition. What about what is in the Express edition? It's not peanuts.

The CFBuilder team did put up a feature matrix on their blog, but uh, it's not very friendly at the moment. (It's an image that's too small to make out in the thumbnail and the full size is too big -- not to mention they should both be cropped.)

So here's a look at the things that Adobe is giving away for free.

  • Code Assist: It knows CFML and provides suggestions for available tags, their properties, and so on. (Code Insight, which looks at the code you're writing and offers query variables when you need them, and so on, is not in Express Edition.)
  • Extensions: Caveat: They can't use callbacks or provide Code Assist suggestions
  • Debugging
  • File Preview
  • ORM Support
  • Tag Editor
  • Server Manager: Caveat: For localhost only
  • Snippets
  • Keyboard Shortcuts: These are customizable and you can add your own, too.
  • Tasks: By using comments containing "todo:" or "fixme:" (also customizable)
  • Project Start Page
  • 64 bit support
  • Native File Launcher
  • RDS File View
  • RDS Database Browsing
  • Services Browser: Shows information on all of the CFCs that your local server knows about

Some of these things are expected -- like Snippets and Keyboard shortcuts -- but there are some nice additions in there. Extensions is a big one -- there are already 54 CFB Extensions on RIAForge, and you can use them all. Some may make use of callbacks or be specifically for the purpose of adding Code Assist suggestions, such as for a framework, and that functionality won't work.

I think it's great that Adobe was able to provide a free edition, and I think even the free edition beats the competition in features. Not too shabby.

in CFBuilder | 3 Responses Posted 2011-05-04 08:45

ColdFusion Builder 2 Beta crashes at startup citing Error 6 (and how to fix it)

First of all, many thanks to Adobe Engineer Krishna Reddy for helping me through this issue. I was only able to work through it with his help.

Now, you've been getting this error when you install CFBuilder 2 and start it up, right? As far as I know it only happens on Mac OSX, and for me, it only happened after I reformatted my machine. It had installed fine prior to reformatting. I've also heard reports from people who tried to install on a recently purchased Mac computer.

Configuration Error - Please Uninstall and Reinstall the product - If this problem still occurs, please contact Adobe technical support for help, and mention the error code shown at the bottom of this screen. - Error: 6 - http://www.adobe.com/support/

As it turns out, this is a permissions issue. I'll walk through the steps one at a time for those that need it, but for the advanced users, here's a synopsis: do a chmod 755 on this (randomly generated) location and then re-run the installer.

/private/var/folders/zz/zzzivhrRnAmviuee+++++++++++/Cleanup\ At\ Startup

Obviously, since it's randomly generated, that directory is not likely to exist for you. The part of the path that's constant is: /private/var/folders/{random-2-letters}/{random-longer}/Cleanup At Startup

Step by step

Open Terminal and enter these commands:

  1. sudo find /private/var/folders/ -name Cleanup\ At\ Startup -- This command will search all subfolders of /private/var/folders for a folder/file named "Cleanup At Startup" and tell you where it found it.
  2. Then go into the location that contains the Cleanup At Startup folder. In my case: cd /private/var/folders/zz/zzzivhrRnAmviuee+++++++++++
  3. You can optionally verify the problem by running: ls -al. You'll see this line:
    drwx------@  2 adam  staff   68 Mar  8 08:59 Cleanup At Startup
    The important bit is the first section. The listing drwx------ indicates that it is a directory (d) and that it is readable (r), writable (w), and executable (x) by the owning account ("adam" in this example). The next 3 characters are the read/write/execute permissions for members of the assigned group ("staff" in this example), and the last 3 are for everyone else. Since the group and others blocks are both "---", then nobody but the owner account can do anything with the directory. This is the problem we're fixing.
  4. sudo chmod 755 Cleanup\ At\ Startup

    At this point you'll be prompted for your computer's administrator password to make the change.

    755 translates to rwxr-xr-x, and what that means is that we want to let anyone access this folder. If we wanted to make it "world-writable" then we could use 777, which translates to rwxrwxrwx.

After this, the installer can properly access these temp locations and do everything that it needs to do. Re-run the installer and get back to work!

These instructions apply specifically to the Stand-alone ("Standard") installation.

Lastly, I should point out that this entry earns the coveted "Works on my machine!" award:

Works on my machine!

I can't guarantee that this will fix your problem, but hey, it worked for me. At the very least, making these changes won't hurt anything.

Remember: This is beta software! There will be some bugs. That's the price you pay for free, early access.

in CFBuilder | No Responses Yet Posted 2011-03-21 07:30

Easily Ignore CFBuilder Meta Files in a new Git Repo

When you create a new ColdFusion project in CFBuilder, you end up with 3 things in your project folder:

  • A .project file -- this is par for the course in Eclipse
  • A .settings folder
  • And a settings.xml file

During the pre-release process I voiced my opinion that this was too much meta and that they should find a way to cut back or combine where possible. That hasn't happened. In addition, I complained that the file name "settings.xml" is too generic and quite likely to be something that the average developer would want to create for their project. This, too, seems to have fallen on deaf ears.

Oh well. Maybe next time.

However, in the meantime, I've created a quick shortcut for my Mac to create a new git repository and ignore all of the CFB Project Meta files all in one step. On Snow Leopard, edit the .profile file in your account folder (/Users/[your username]/.profile) and add this line:

alias cfgit="git init;echo '.project' >> .gitignore;echo '.settings' >> .gitignore;echo 'settings.xml' >> .gitignore;echo '.gitignore' >> .gitignore;git status"

It all has to be on one line to work properly, but I'll break down each command individually here so that it's easier to read.

alias cfgit="..."

Here we're creating a bash command alias. This translates to, "When I type cfgit I want you to do [this] instead." Where [this] is what you put inside the quotation marks. You can put multiple commands here as long as you separate them with a semicolon.

echo '.project' >> .gitignore;
echo '.settings' >> .gitignore;
echo 'settings.xml' >> .gitignore;
echo '.gitignore' >> .gitignore;

Each of these appends a new line to the file .gitignore with the contents of the single-quotation marks; so in this case it's adding a new line for .project, .settings, settings.xml, and .gitignore (ignore itself). By using >> instead of >, you append to the file if it exists, or create it otherwise. If you're unaware, the .gitignore file tells the local git client which files in the folder are to be excluded from the repository.

Lastly, it runs git status to show the current status of the folder/repository; mostly just as a sanity check to make sure that everything that I want to have happened has.

in Apple | CFBuilder | Git | 4 Responses Posted 2010-07-06 12:46

Why (I Think) You Should Buy ColdFusion Builder

Every so often, despite what might seem like obvious reasons to some of us, we still see arguments against paying for the IDE that Adobe has provided for CFML development -- ColdFusion Builder. "Why should I pay for CFB when CFEclipse is free?!" Here, I'll make a case for the minuscule ($300!) price-tag that Adobe is charging for the awesome editor that is CFB.

There are a lot of features that CFB provides that no other CFML editor currently does; and some of them are kind of subtly named. They may not sound like much by name alone, but each is a powerful and useful feature in its own right. Lots of details after the jump. You may want to freshen your drink first.

in CFBuilder | 24 Responses Posted 2010-05-24 08:00