ColdFusion 10 Disaster

So I thought I’d spend my New Year’s Day messing around with some new CF10 features (namely sockets) on my development server with a 30-day-trial/developer edition to see if it’s something worth upgrading to this year, even though I’ve yet to find a single use relevant to any of my clients or any of the applications I’m creating (maybe I’ll find one right?).

Installation Hell!

I’m no IT admin, but I’m very adept with my way around Windows 2008 [R2] having used a Windows/IIS environment since Windows 2000 Server.  I’ve also never had a problem with a CF install… to the point where I was comfortable enough with CF that with CF9 I wasn’t afraid to tinker with settings.  Honestly, I don’t do anything special… I use a standalone instance of CF.

So when the “Cannot configure IIS connector” error popped up, it was no big deal to Google the error, open up the server roles and add the additional .NET services I was missing (I already had CGI installed for use with PHP… was just missing the others)… understandable.

I finished the installation with no problems.  I clicked the done button to launch the configuration wizard and got a 500 internal server error.

I did a bit of my own troubleshooting and quickly discovered the ColdFusion service didn’t start.  I also couldn’t manually start it.  No biggy… server reboot… the service started… same 500 error. Read more

Invalid Embedded YouTube Code… A Quick Fix!

Alright this is simple, and probably common sense to some, but I thought it was worth a quick entry for anyone scratching their heads.

YouTube spits out this bit if you want to share or embed a video:

<iframe width="420" height="315" src="http://www.youtube.com/embed/RqbWdo536as?rel=0" frameborder="0" allowfullscreen></iframe>

Both the frameborder and allowfullscreen attributes are what make this code invalid according to the W3C.

<iframe src="http://www.youtube.com/embed/RqbWdo536as?rel=0" style="border:none;width:420px;height:315px;"></iframe>

Although I don’t recommend using inline styles (I recommend the style be placed in your stylesheet), by removing the two invalid attributes and using a style in its place I now have W3C valid code… AND I have better control over the iframe as well.  The allowfullscreen attribute does nothing since the full-screen button is in the play bar.  Notice I also moved the size of the iframe into the style as well.  With many videos on a page and a single stylesheet this method will end up saving you a lot of work anyhow.

Why YouTube doesn’t do this by default though goes beyond me.

Diablo 3 – My Review

I’m not an avid gamer, but I do play to clear my mind from time-to-time… keeps me sane.  And I’m not a console gamer, I’m what you’d call a Blizzard fanboy… I ONLY play Blizzard games (since Warcraft II in 1995 TM).  I really just haven’t had the time or interest to pickup anything else, and Blizzard games have satisfied whatever gaming cravings I’ve ever had, from WC2, WC3, D2, Starcraft, SC2 and yes of course, world of warcraft.  So Diablo 3 came out I of course had to give it a go.  Here’s my review.

Read more

Typekit vs. Google Fonts

I think it’s been over five years since I blogged my last battle, ColdFusion vs. PHP.  Hopefully this post will be met with much less criticism.

It’s hard to be a developer and not be unaware of Typekit or Google Web Fonts.  Both services provide excellent alternatives to the standard fonts available and both services are now supported across all current browsers.  For those of us who attempted to build our own fonts for using @font-face on our own projects, these services are a dream come true as the process what tedious, cumbersome and didn’t always process the desired result.

First, lets do a quick comparison:

Typekit Google Web Fonts
Fonts 700+ 500+
Implementation JS JS, link, @import
Selection Quality Excellent OK
Finding Fonts Excellent Good
Cost Varies* FREE

Read more

Dreamweaver to CF Builder to Dreamweaver

So I’m a bit late to the party, but I had my reasons to not make the switch… namely my complete distaste for Eclipse (I’ve expressed this before).  I’m finding myself wanting more when I code cfscript, javascript and all that ajaxy stuff, so I finally forced myself to set aside my differences with Eclipse and approach CF Builder with an open and very clear mind.  I made the switch and started this article in October 2011 and just now wrapping it up after an in depth evaluation.

First, my work environment.

I have a live co-located server that hosts my final product.  I then have a separate development server in my home office which I use to create all my masterpieces.  I have a laptop which I’ve never really been comfortable coding with, but do use it from time to time.  And then there’s my crown jewel… my dual monitor workstation which I’m on nearly all day every day (would like to eventually add a third monitor).  The only reason I mention the dual monitors is that it’s imperative to my development… Dreamweaver CF Builder, Fireworks, Navicat & FlashFXP (all the development stuff) on the left and my browser is on the right (of course I test in every browser… no built-in rendering or troubleshooting tools needed for me), which I refresh as I go making sure I’m getting my desired outcome across all platforms.  And as I just mentioned, I use Navicat for all my SQL management (both Dreamweaver’s and Eclipse’s built-in SQL stuff is just laughable [and unnecessary]) and then FlashFXP for my FTP client (built-in FTP clients work fine… they just scare me.  I test over the local network and want to make sure I’m only uploading the final product, not risking overwriting anything important.).

Read more

Blizzard API and ColdFusion

Five years ago Ben Nadel blogged about manipulating Warcraft data from the armory as an XML file.

Today, the armory is nothing but a memory (permanently offline in August 2011) and has been replaced with the Blizzard Community Platform API.  This is actually a great thing… getting and manipulating your data is even easier!

The Blizzard Community Platform API uses RESTful services, so it’s really as easy as playing with some URLs:

<!--- Get Blizzard's RESTful data --->
<cfset serviceURL = "http://us.battle.net/api/wow/guild/Realm/Guild%20Name?fields=members" />
<!--- Returns the Blizzard data --->
<cfhttp method="get" url="#serviceURL#" resolveurl="yes" />
<!--- Because guilds typically consist of members with special characters in their names and setting charset="utf8" in cfhttp doesn't fix the problem --->
<cfset utf8Response = cfhttp.fileContent.toString("UTF8")>
<!--- Converts the Blizzard data into a structure --->
<cfset guildData = DeserializeJSON(utf8Response)>

What this does is return an awesome structure like so:

Read more

First Impression of ColdFusion Zeus/10

So the public beta of ColdFusion 10 is out… and man am I stoked!  Every version of ColdFusion for me has been nothing short of revolutionary, and after waiting for nearly two years I couldn’t wait to take it for a test drive.  So after little sleep and tinkering for 24 hours, here’s a first impression.

Zeus comes packed with a myriad of updates.

I immediately noticed Tomcat.  Maybe it is faster (I can’t really measure that too well over my local network on my development server which really has no measurable traffic), but everything just seems zippier and more responsive.  I don’t know whether that’s Tomcat or new, hot ColdFusion goodness, but I really appreciate that.

My favorite part by far is the exceptional detail and enhancements to security.  I rely on ColdFusion to be on top of its game with security so I don’t have to.  But because it is in fact security, I personally feel ALL of these security features should have been released in increments over the past two years with ColdFusion 9.  I’m a little irritated at Adobe with the decision to market security as a feature set instead of keeping all it’s products secure all the time (you know, like everyone else… norton, mcafee, php, java… just to name a few), but I’ll play along and say job well done because there’s great stuff here.

Read more

QR Codes

I saw Ray tweet today about a QR code and even though I’m no resident expert, I’ve dealt with them quite a bit lately in most of my print advertising and wanted to point out a few things.

What is a QR Code?
Simply, it’s a barcode (like barcodes on food at the grocery store or other stuff you buy) that YOU can customize. This code can then be scanned by smart phones and other devices to quickly translate that information without having to manually type it in.  It’s my understanding QR codes are already being used everywhere outside of the States and the U.S. has been slow to adopt the technology.  Regardless, QR codes have become quite popular over the past couple years and will continue to grow in use… if you aren’t seeing them everywhere now, you soon will.

*A more in depth definition from Wikipedia

What are QR Codes used for?
To put typical use into in perspective, I was at Taco Bell yesterday and there’s a poster on the wall with a QR code, which I scanned with my phone, that linked me directly to a survey on the restaurant on the web.  I took the survey while I was standing and waiting for my delicious (and now VERY overpriced) chicken and nacho cheese chalupa meal with a soft taco.

Pretty awesome!

Typically, you’ll see QR codes in print.  I’ve been using QR Codes extensively on brochures, business cards, ads in program books and so on.

And typically within a QR code is a URL or link to a website.  But a QR code is a multipurpose container that can hold a wealth of information including text, phone numbers and text messages (typically not a combination of information though).

So is a QR code practical on a website?
Well kinda… it all depends on what’s in the QR code.  Yes, the codes will easily scan onto a phone from the screen, so that’s not a problem.  But any sort of link inside the QR Code would probably be counter-productive.

Practical uses on a website might include contact information that can be easily stored in your phone so you don’t have to type it all in, although as a designer I would add the code to my website as a convenience to my users, not replace my contact information altogether.

How can I make my own QR code?
My favorite tool is here, although there are plenty others out there.

So how do I scan these codes?
Android has a free app in the market called QR Droid which I use frequently and it works great!  I don’t know what’s out there for the iPhone, Blackberry and Windows phone users, but I’m quite confident there are QR code apps available for those smartphones as well.

Now if only I could get my fortunes to be a QR code on my napkin so I didn’t have to actually open and break the fortune cookie to get it….

Fireworks!

I’ve always had a passion for using Fireworks since version 2. The first time I used Fireworks I could barely code a website… I used the Fireworks export tool to do everything for me (I totally flipped when I figured out how easily I could create rollover dropdown menus). In fact I’ve been using Fireworks so long now I still miss the oldskool font editor, although it’s something I’ve learned to live without.

Normally, I use Fireworks for all my web mockups… in fact I use it daily.

Then came along the day a few years ago when I wanted to learn how to create vector icons and I immediately turned to Illustrator. Meh… any vector icons I needed to create can just as easily be made in Fireworks… I just love the control and ease of use with my pen tool and those sprites.

This past year I designed a bunch of print material for various projects (several event flyers, event tickets and even a book of ads), so I turned to Photoshop (after strongly looking at Illustrator and InDesign). Nope… it’s Fireworks again to the rescue. I got the information I needed from the printer for DPI, size and bleed and I was easily able to export into the PDF format the printer needed.

I think it’s awesome I can do all this along with resizing and/or renaming images for my galleries with the batch tool, take screenshots of windows, use any Photoshop filter and even do skinning for Flex and Air.

I’m sure it has a lot to do with the comfort level I have with Fireworks, but it never ceases to amaze me the sheer versatility and flexibility the program has to offer. I personally don’t think Fireworks gets nearly enough praise for all it can do.

CF HTML5 Validation Gotcha

I spent some time scratching my head over this one and thought I’d share.

<cfset userAgent = trim(listGetAt(CGI.HTTP_USER_AGENT, 2, ';'))> <!--- This only works for IE --->
<cfset outtaDate = 'MSIE 8.0, MSIE 7.0b, MSIE 7.0, MSIE 6.1, MSIE 6.01, MSIE 6.0b, MSIE 6.0'> <!--- List all the versions of IE that are out of date --->
<cfif ListFindNoCase(outtaDate, userAgent, ',') NEQ 0> <!--- We're not gonna bump em from the site, but we will display a warning to those visitors using the older versions of IE --->
<div class="outtaDate">You are using an out of date version of Internet Explorer and this site <b>WILL NOT</b> display correctly. If you are using Windows Vista or Windows 7, please use Windows Update and upgrade to Internet Explorer 9 or newer. If you are using Windows XP and earlier which cannot upgrade to Internet Explorer 9, please download the latest version of <a href="http://www.mozilla.org" target="_blank">Firefox</a>, <a href="http://www.google.com/chrome" target="_blank">Chrome</a>, <a href="http://www.opera.com" target="_blank">Opera</a> or <a href="http://www.apple.com/safari/" target="_blank">Safari</a> to see this site correctly.</div>
</cfif>

I’m using this code to identify older versions of IE that don’t support CSS3 and/or HTML5. Maybe I should be identifying browsers a better way, but the problem here lies within the listGetAt on line 1.

This code will trip up the W3C Markup Validation Service marking your code invalid with one of ColdFusion’s styles from an error… ColdFusion’s pumping out an error to the service… even though the running site won’t pump out an error at all.

Here is ColdFusion’s exception error to the W3C service:

In function ListGetAt(list, index [, delimiters]), the value of index, 2, is not a valid as the first argument (this list has 1 elements).&nbsp;Valid indexes are in the range 1 through the number of elements in the list.

I’m sure this isn’t a big deal since most people aren’t identifying browsers with their code or even coding in HTML5 for that matter, let alone valid HTML5 to use the W3C service (hopefully it’s more than I think).

Either way, I don’t know why the validator service is getting that error, having tested the code on virtually every browser without any problems (old and current alike). And I can’t really tell whether the problem is with CF or the W3C’s tool, but it’s not having any sort of effect on the live code, which is always a good thing.