My first impressions of the latest version of VMware Fusion 2 are great. Its really the simplicity of things where Fusion 2 shines. Cut and paste no longer requires that I switch keys between CMD and CTRL on the mac. Making working with my VM much more seamless (at least this is my experience with Windows XP Pro). Not sure if that works on all operating systems. The suspend / restore functionality is much much faster now too. That saves a lot of time when you need it. I’m sure if I had plenty of memory to spare this wouldn’t be that big of a deal but, since I am on a Core Duo box and I can only run 2GB then it makes a big difference not having to wait so long to free up some memory. Fusion also supports multiple monitors, built in camera and bluetooth now on my Macbook Pro.

Here are a few issues I have run into, spaces support seems a bit buggy when running in Unity mode. It would also be nice if that when you run things in Unity that the icons that you can cmd-tab to would somehow have a mark that they are your VM and not any of your regular mac apps. Hopefully they will work out these bugs in the beta phase.

I’ve only been using it for about a day and a half so as I run into new features I’ll be sure to post them.

Not sure how this app slipped through the cracks: Thinking Rock If you are a fan of the book Getting things done (or you are just like me: a disorganized person with a lot of tasks on your plate). You may want to check this app out. Also, I highly recommend OmniFocus for those looking for a great Mac solution. It isn’t free but, if you have ever used any of Omni’s software you’ll know that their attention to detail is impeccable.

The cool thing about Thinking Rock is that it is cross platform and open source. You may want to check out the OmniFocus video if you are unfamiliar with the GTD methodologies. You can get that video here. while that does apply to OmniFocus the techniques of gathering information apply to any task management application.

Willing to do what?

May 15th, 2008

If you work for a company where you deliver solutions to other businesses you may dread the final delivery (or iterative delivery of your project). Because as software developers and solution providers we have learned by now that anytime we deliver a product it isn’t going to meet everyone’s expectations. Especially if you work in an environment where decisions have to be made concerning the cutting out of features for the sake of the timeline.

While it may be hard to do it, as developers who care about the product and the end user we need to be willing to ask them this question when we deliver the gold version: Please get back to me with anything you think is missing and/or could be done better. Even if the product is not going to be upgraded, has made it through QA and is going into a strict “bug fix only mode” we need to show the user/business that we actually give a crap about what we just built for them.

It will increase your success because you aren’t coming off as the high and mighty developer who cares not for your peon users. Here is another pro to doing this: It will make you a better developer. To start thinking critically of your own work and see that you don’t always know what is best will improve what you do overall because you are willing to listen to reason when it comes to delivering something good for everyone and not just a product that you yourself can use. It goes back to this, when you test software you inevitably know how to test it. Now I don’t mean this in a good way. I mean you know how to make it function. You don’t enter arabic characters into a text-box because you know your database doesn’t support double-byte characters. However, your QA person or customer might, and your app should handle it gracefully, thus making a more friendly application that is easier to use and gets you into a mode of thinking about the user and not just focused on your task of “making it work”.

Give it a shot, you may even learn to like a critical analysis of your work as you make stronger applications focused on meeting the needs of your users and not just the business requirements of your current project.

Pretty cool, stumbled upon this today. Seems that google has added photos to their maps via panoramio (their data provider I believe). Check it out (be sure to click “explore this area”)

:update: : you can also get wikipedia info on various sights… updated the link tag to auto check it. (if you don’t see it click on “more” then click “wikipedia” and “photos”.

Side note… looks like you can’t embed these yet.

Ok, maybe you have looked it up sometime but, recently I needed some Ipsum text and found this site

I didn’t now that the typical Ipsum text has been used since the 1500s is from “The Extremes of Good and Evil” by Cicero, written in 45 BC.

So, take a gander at the site above (I know I could have stolen the copy for you and prevented a click but, hey I’m not that type of guy).

Just thought I’d point out that there is some odd behavior in XMLSearch() results. See the example below:


<cfxml variable="test">
<test>
    <node>
        <nodes>
        <nodeline>node1</nodeline>
        </nodes>
        <nodes>
        <nodeline>node2</nodeline>
        </nodes>
        <nodes>
        <nodeline>node3</nodeline>
        </nodes>
    </node>
</test>
</cfxml>

<cfset results = XMLSearch(test, "//nodes")/>

<cfset results1 = results[1]/> 

<cfdump var="#results1#"> 

Now if you run this you will see a dump that shows the root node as nodes but, if you try to reference the results as: results1.nodes.nodeline you will get an error. You have to reference the array as the root result. So the path to the nodelines becomes result.nodeline.

Hope that saves someone out there some headaches. I think that XMLSearch needs some major modification but, that may break backward compatibility so I guess Adobe is kinda locked in to how it works currently. For example, XMLSearch has some powerful features built in via XPath. However the way that ColdFusion returns the results is a bit bizzare. Well maybe not bizzare but, definately too verbose. So if you ask ColdFusion to return just the text assigned to the nodelines in the above example, it will return a full xml doc instead of just an array of values. So you end up parsing the data again. It would be really nice to just get an array of results back instead of an array of xml docs back. But, I digress.

If you want to learn XPath, just check out the docs here

If you aren’t aware, yes you can cache the results of stored procs in ColdFusion 8 using cachedwithin. However, be aware that ColdFusion only caches the first result set so If you are returning multiple result sets you are only going to get the first result set. So if you happen to be thinking ahead while you are coding and start out by setting the cachedwithin parameter you will never see multiple result sets.

To give credit where credit is due, my co-worker, Matt Hintze discovered this yesterday when we were trying to figure out why we weren’t getting multiple result sets back from a proc that we knew returned multiple sets every time it ran.

Hopefully this will be addressed by Adobe as caching multiple result sets would be the expected behavior inside a proc.

I don't know how I missed this one but, apparently spotlight (or maybe just Leopard) has a help function that will now find menu items and not just items in the actual help documentation. At first I thought this was just a feature that was built into iWork as that was where I first discovered it but, low and behold, I quickly switched over to Safari and it works there too.

The easiest way to explain this is fire up Safari, hit help on the menu (or shift-cmd-?) and start typing (ie: bookmark) what you will see is two sets of results one "Menu items" and another "Help Topics". Now arrow down through the "Menu Items" and you'll see this cool floating arrow show you exactly where these items are in the menu. Want to do something cool with this? Type in something that is in your browsing history and it will automatically take you to the title of that item in your history. Very cool.

Check out the video on this if you aren't privy to owning a Mac or a Mac with Leopard on it.

Gmail interuption

April 16th, 2008

Apparently google is upgrading gmail across the country at the moment. I guess 4:00pm EST is as good a time as any. The good news is that google apps for your domain (gmail) in particular looks to have received colored labels. Woot!

Well this info is probably old but, my server was having issues. So now you can read about if you missed it somehow.

Terminal Tricks part II

March 27th, 2008

Useful stuff when you are using the terminal

man [anycommand]

Can't believe I left that off... one of the most useful commands for figuring out what a command does, read the "man" (manual) page. Now that is easy to say but, you may need some help navigating it so to help with that use these commands:

q

Quit man

f

Go forward a page

b

Go backward a page

/string

Search for 'string'

Need even more help? you can always:

man man

Forget to sudo a command? just:

sudo !!

Need to reference something in your home directory?

prefix your path with ~/

Want to search for look for a specific line of text inside a file?

cat /the/file/path || grep 'what you are looking for'

ex: cat /etc/apache2/httpd.conf || grep 'http'

Grep (used above) can be used on any command as shown above you can "pipe" the output of one command to another. So you could use ls, cat, tail etc and search the output of that command with grep.

Need to watch some log file output?

tail -f /the/log/file.log

Want to create a shortcut to a command? You need to edit your .bash.profile. Open up your home directory and if the file doesn't exist create it. (make sure it is ".bash_profile" - notice the prefixing period). Now create your alias: (this particular alias lets you see colored output on the ls command.

alias ls='ls -GF'

Need to change ownership of a file? use chown

chown user:group /path/to/file.txt

Thats it for now, hope it helps you out.

New OS X Diff / Compare Tool

March 17th, 2008

For those of you who just long for a PC when you need to Diff some files or a directory because you miss Beyond Compare. Maybe this will bring you some comfort It has a lot (if not all) of the same great features in Beyond Compare. Even lets you script it and use it inside other apps.

Give it a try.

I noticed that there was a bug in the code. If you had a function ie: <cfset Request.something = “something”> and you put your cursor on the “Request” it would send you to the docs for <cfset> I fixed it so that it correctly sends you to whatever your cursor is on. Here is the text file for the bundle and instructions on installing it.

You don’t need to get the CFTextmate Bundle for this to work in Textmate. Hopefully the command will be included in the next release.

How to add this command to Textmate:

  1. Copy the contents of this text file
  2. Load textmate and then select bunde > bundle editor > show bundle editor (ctrl option cmd B)
  3. Create a new command (you can just click on your bundle name and add it there) settings for the new command: Save: Nothing, command(s): Paste code here, Input: None, Output: Show as HTML, Key Equivilent (I chose option, cmd L), scope selector: text, html, cfm
  4. Open Bundles > Bundle Editor > Reload Bundles

If you want to start CF from the command line instead of using the launcher just do this:

sudo /Applications/JRun4/bin/jrun -autorestart -nohup -start cfusion

No idea why that was so hard to find (really it wasn’t just had to dig though some shell scripts in the bin directory) Just figured I’d post it for those that would rather see std out in the terminal. I have trouble with the Coldfusion Launcher as well. Half the time it hangs on firing up the server.

After looking over the shoulder of one of my peers after he downloaded the latest Coldfusion 8 support for Homesite (yes, I said Homesite), I saw him use the good old F1 on a tag/method to the help docs. Homesite! The product that refuses to die. Adobe is still supporting it so there must be a bunch of CF developers out there still refusing to give it up. Well I’m not switching back to windows for Homesite (I really didn’t use it then either).

After he installed the code support for CF 8 he simply placed his cursor over a tag and hit F1 and bang the help docs come up. It started to bug me that this wasn’t in Textmate and I thought it would be useful. After all its in Homesite! So I worked on this command for Textmate which does the same thing except it uses the CF 8 Livedocs as the source. It supports all the current tags and functions. So head on over to the CF Textmate Google group and grab a copy. Hopefully it will be in the next release of CFTextmate.

Below is the link and the instructions are included in the jump (4th message down). While your at it why don’t you jump in and contribute to the CFTextmate bundle?

Coldfusion 8 Help Docs for Textmate

Also, I hear everyone is looking for a new CF IDE from Adobe. I’m perfectly happy with Textmate, I’d rather them concentrate on adding features to CF than building an IDE. Just seems like a waste.

Enjoy the addition to Textmate!

Looks like Google finally fixed email address completion in Safari in their "New Version" of Gmail. Now I don't have to switch back and forth when I forget an email address. Yay!