October 19, 2009

Web Developer position at the City of Portland

My team at the City of Portland is hiring another web guru. We're looking for someone more on the front end (graphic design / HTML / simple scripting / media creation) than back end programmer. We're getting ready to overhaul our online presence and this person will play an important role in this project.

See the job posting for more details or to apply. (And don't let the "Web 0.5" feel of the job posting web site scare you away…)

Posted at 1:27 PM

January 27, 2009

FireScope: Add HTML & CSS reference to Firebug

SitePoint has just released a Firefox add-on named FireScope. It's actually a plugin for the Firebug add-on. (Ya, I know—we've got plugins for plugins now… crazy world, isn't it?) FireScope integrates SitePoint's HTML and CSS reference web site with Firebug.

This reference material is accessible via two main interfaces:

  1. It adds a reference panel to Firebug where you can search for HTML elements/attributes and CSS properties.
  2. When right clicking on HTML/CSS elements in the DOM inspector you can get context-sensitive reference information on the selected item.

The reference information includes element descriptions, code samples, and browser compatibility information. The information is very well integrated with Firebug and the interface seems natural and intuitive.

I think SitePoint has done an excellent job on this add-on. FireScope is another must-have add-on for any web developer or designer!

Posted at 11:54 AM | Comments (1)

July 30, 2008

Take the A List Apart survey for people who make websites


I took it, and so should you!


Please take a moment and take A List Apart's 2008 survery. This annual survery of "people who make websites" is very informative and helpful for identifying trends in our industry. And best of all, they publish the results so you can take a look at them. 

Posted at 4:19 PM

May 15, 2008

Google Maps API for Flash

Google has announced that you can now use their Google Maps API inside Flash components. Previously Google Maps was only available through a JavaScript API. Judging from the demo included with the announcement, this API opens up the door to exciting new possibilities.

Official Google Maps API Blog: Introducing the Google Maps API for Flash

Posted at 8:33 AM

April 1, 2008

ColdFusion spellchecker plugin for TinyMCE 3.0

We use TinyMCE as a WYSIWYG editor for our CMS at work. Version 3.0 of TinyMCE was recently released in which most of the application has been rewritten. Because of this rewrite, any plugins written for version 2.x have to be updated to be compatible with version 3.

The main third-party plugin that we use is a spellchecker plugin for ColdFusion servers. Since the plugin hasn't been updated, I took it upon myself to port the PHP spellchecker plugin provided with TinyMCE 3.0 to ColdFusion.

My ColdFusion spellchecker plugin is a complete port of the PHP plugin and supports both the Google spellchecker and Pspell/Aspell engines.

[Download the TinyMCE 3.0 ColdFusion spellchecker plugin]

Posted at 10:33 AM | Comments (16)

February 21, 2008

Don’t break the web?

Since Microsoft’s announcement that Internet Explorer 8 would use something called “version targeting” everyone has been chiming in with their thoughts and opinions on the issue. Many people are for it and many are opposed to the idea. I find myself increasingly annoyed at this whole situation and at Microsoft’s recently proposed solution.

Microsoft’s main justification for version targeting is to avoid “breaking the web”. I find their altruistic concern over this matter more than a little ironic and very hypocritical.

If Microsoft was really that concerned with not breaking the web, then why aren’t they more concerned with not breaking the desktop? Anyone who’s upgraded to Windows Vista is familiar with the problem of incompatible applications and drivers that worked perfectly fine in Windows XP but for whatever reason don’t work right in Vista because of Vista’s “improvements”. In addition, in a few short weeks, Vista SP1 will be released to the masses and we’re already being warned about problems and incompatibilities with this upgrade. How many things that work fine in Vista right now won’t work after the SP1 upgrade?

Here’s another example: I’ve got Office 2007 installed on my Vista machine. But I can’t use Outlook 2007 to connect to my work’s old Exchange 5.5 Server because Outlook 2007 effectively “broke” backwards compatibility with this version of Exchange server. If Microsoft is so worried about not breaking the web, why are they so willing to break the desktop?

Anyone who’s worked with computers for a while accepts the fact that you can’t maintain backwards compatibility forever. At some point, you have to sacrifice backwards compatibility for improvements and innovation. As they say, you can’t have your cake and eat it too.

I would like to see Microsoft step up to the plate and accept full responsibility for this mess. The problem really isn’t “unenlightened” web developers or poorly written web authoring tools. Sure these factors have contributed to the problem, but the real heart of the problem is Microsoft’s crappy browser. Had IE had better standards support right from the beginning, there would be no such thing as unenlightened developers or bad authoring tools because these people were just follow Microsoft’s lead.

But for whatever reason, all I’m seeing is Microsoft trying to shift the blame off of themselves and offering yet another lame patch in an attempt to cover up the issue while mindlessly repeating their hypocritical mantra of “don’t break the web”. Microsoft, unfortunately you already broke the web a long time ago! It’s time that you accept this fact and start fixing it for good.

Posted at 12:55 PM

December 18, 2007

YikeSite is the perfect lighweight CMS

I'm creating a web site for my mother-in-law as a Christmas gift this year (who luckily doesn't read my blog…). She runs a childcare business in her home during the day and teaches dancing lessons to the community a couple of nights per week. She's told me a couple of times that she would really like a web site to advertise her services. So I finally decided to create one for her this Christmas.

I wanted it to be as quick and easy as possible to create and ideally it would use a simple content management system so that she could edit the site as necessary. Lately, a whole bunch of easy to use online web site creators have been emerging. I decided that this was the perfect opportunity to use one of these new tools to create her web site. I looked at Weebly, YikeSite, DoodleKit, Synthasite, Jimdo, Google Pages, and SiteKreator. They all pretty much follow the same general idea: sign up for an account, use their online tools to create and edit pages, choose a theme or design for your site, and then it gets hosted on a subdomain of their site.

In the end, I chose to use YikeSite because I found it to be the most flexible and easy to use. Their free plan offers an unlimited number of pages and 5 MB of storage for graphics and documents, etc. Although they don't currently have as large of a selection of themes as the other sites do, they do have an awesome templating system. It's way more flexible than any of the other sites (at least among the free accounts) and basically allows you to create your own theme very easily, as long as you know basic HTML and CSS. In addition, their page creation and maintenance tools are quite possibly the easiest to use of the bunch.

Using their templating system, or "theme API" as they call it, I was able to easily create a customized theme for the site. Creating pages and editing content is so easy that I have confidence that my mother-in-law, who is not very computer savvy, will have no trouble maintaining her site. I was very impressed with the flexibility that YikeSite offers, especially given the fact that I'm only using their free plan.

For anyone who knows basic HTML and CSS and has to create a simple web site for someone, I would recommend taking a look at YikeSite. Although I'm still tweaking a few things, if you're curious to see how it turned out, you can take a peek at Hannele LaFrance's web site.

Posted at 7:39 AM

October 26, 2007

Mozilla Prism to compete with Adobe AIR in the race to the desktop

Mozilla recently announced Prism, a new product to compete with Adobe AIR in the race to integrate web applications into the desktop. Granted, Prism is currently not much more than a glorified shortcut, although AIR offers some more advanced "integration" capabilities such as desktop alerts, etc… But I expect the Prism team will work hard to close the gap soon.

It will be interesting to see what happens as the line between the desktop and the web continues to blur.

Posted at 2:51 PM

April 12, 2007

‘Don’t Make Me Think’ Workshop is coming to Portland

I’ve just finished reading Don’t Make Me Think by Steve Krug. If you’re not familiar with the book, it’s basically become the de facto standard book on web site usability. It’s an excellent book that I’d highly recommend.

Anyway, I was looking at his web site yesterday and happened to notice that on May 11th, 2007, he’s doing a usability workshop here in Portland, Oregon. If you’re a web designer or developer in the area this would be a good opportunity for some usability training and a chance to discuss any questions particular to your web site with a usability expert.

Advanced Common Sense - Usability Workshops

Posted at 2:07 PM

March 14, 2007

"Can you create a web site for me?"

So, you're a web designer or developer… No doubt upon learning this, you've had more than one friend or family member ask, "Can you create a web site for me?" Of course you could create a web site for them… but you're a busy person and would rather do something else with your free time. So how do you politely decline the job while maintaining your friendship? This used to be a difficult question—but not any longer. Now there's Weebly.

Weebly makes creating a website as simple as drag and drop. You can select from various elements such as paragraphs, images, columns, Google Maps, RSS feed widgets, etc., which you drag onto your page. Once the items are on the page you can double click on them to edit them. (And, by the way, this ain't no Frontpage. Weebly creates surprisingly standards compliant web sites.) When you're done, you can customize the appearance by applying a predefined skin and then publish your web site. You have the option of publishing to yoursubdomain.weebly.com, using your own domain name, or downloading a zip file of your web site. Weebly is easy enough that even non technical users could use it to create web sites. So the next time some one asks, "Can you build me a web site?" just send them to Weebly.

Posted at 8:48 PM

March 13, 2007

IE Developer Toolbar Beta 3 install hangs

I haven’t been able to successfully install beta 3 of the Internet Explorer developer toolbar on my work PC. At about 98% complete, the setup program reports “Internet Explorer Developer Toolbar is being installed. Please wait…” The msiexec.exe process always hangs and maxes out my CPU at this point.

I haven’t been able to figure out what’s causing this. Has anyone else experienced this problem and figured out a resolution? Any help would be appreciated! Here is my system info:

Microsoft Windows XP Professional 5.1.2600 Service Pack 2 Build 2600
Internet Explorer 6.0.2900.2180

I would revert back to beta 2 (which worked perfectly fine for me) if I could find the install file… I can’t find anywhere to download beta 2—it seems to have been replaced with beta 3.

P.S. Don’t bother suggesting that I use Firefox instead with its associated web developer toolbar—I already use it extensively for most of my development. But I do use the IE web developer toolbar when troubleshooting IE specific issues.

Posted at 12:00 PM

November 4, 2006


WebSnapr is a cool website that makes it easy to create a thumbnail image of any web site.

You generate a thumbnail by simply using a special Websnapr URL that contains the URL of the web site you want to create a thumbnail of. They make it a piece of cake to add thumbnail previews to external links on your website. Hover over the Websnapr link at the beginning of this entry for an example.

Posted at 1:55 PM

May 4, 2006

Clearing a cached query in ColdFusion

The ColdFusion cookbook has a couple of recipes for dealing with cached database queries. In theory it's relatively simple. You can instruct ColdFusion to cache a query for a specified amount of time using the cachedWithin attribute of the <cfquery> tag. You can clear a cached query by calling the same query again, but setting the cachedWithin attribute to a past time. But I recently discovered an interesting issue regarding clearing cached queries…

It turns out that not only must the SQL query and <cfquery> attributes be identical (with the exception of the cachedWithin attribute), but both queries must also have identical whitespace formatting. In other words, the following will not work:

<cfquery name="myQry" datasource="myDS"
select *
from users
order by last_name
<cfquery name="myQry" datasource="myDS"
select *
from users
order by last_name
Because the 'clearing' query is indented more than the original query the cached query will not be cleared. So this is one time when whitespace really does matter.

Posted at 2:21 PM

February 8, 2006

Enabling web services over SSL in ColdFusion

I recently ran into a problem while trying to access a web service from within ColdFusion on our new testing server. It took me a while to get it working because the ColdFusion error messages weren’t very descriptive or helpful in pointing me to the cause of the problem. While searching for a solution, I came across a lot of unanswered forum posts from others who appeared to be experiencing the same problem so I thought I’d share my problem and the solution I finally found.

The Problem

The <cfinvoke> tag that I was using to call the web service was returning this error message:
“Could not generate stub objects for web service invocation.”
I tried to use the administrative console to add the web service, and it returned this error message:
“Error creating web service. Please ensure that you have entered a correct Web Service name or URL.”
As I mentioned earlier, neither error message provided me with much insight as I know that there was nothing wrong with the web service itself (or the URL) because it was working fine from our development server. I discovered that I could not manually access the WSDL URL from within a browser due to a firewall restriction. After getting the firewall issue resolved I was still was getting the same error messages. So I began doing Google searches on the error messages. I discovered that these error messages seemed somewhat common, but I couldn’t find any solutions that seemed to apply in my case.

The Solution

Finally I found a link that hinted that ColdFusion could not access any secure URLs (beginning with HTTPS) unless it contained the server’s SSL certificate (or the certificate’s issuer’s certificate) in its certificate store. Bingo! My web service was indeed located at a secure URL and the server’s SSL certificate was issued by an unknown certificate authority. After inserting the certificate authority’s certificate into the key store and restarting ColdFusion, everything magically worked. So how do you import a certificate into the key store? Well, instead of going through the effort to explain that here, I’m just going to point you to a few of the links that helped me figure it out: ColdFusion MX: Configuring Secure SSL Connection with LDAP Directory Server Enabling SSL SSL and the trusted keystore in Java


There is a custom administrator extension named CertMan that allows you to view, add, and delete SSL certificates from within the ColdFusion administrator. This GUI is way more user friendly than using the command line.

Posted at 10:53 AM | Comments (11)

January 13, 2006

Content management with web standards in mind

Vine Type is a web content management system designed with web standards in mind.

Vine Type is software that lets you create and manage an internet website. Vine Type gives you the ability to add, delete, and edit any number of web pages – without the overhead and hassle of database or scripting language installation.

Go to vinetype.com | digg story

Posted at 4:28 PM

October 22, 2005

DHTML JavaScript Calendar

I’m currently working on a web application at work that needed to allow the user to input the start and end date of an event. A couple of text input boxes would work, but they would require additional instructions informing the user how to properly format the date—not a very user friendly approach. So the obvious alternative then, was to provide the user with some sort of calendar widget from which they could easily select the dates. But as you know, there is no HTML calendar form widget and I didn’t have time to write a custom widget…

I’ve been reading DHTML Utopia: Modern Web Design Using JavaScript & DOM and happened to have just recently read about a free, standards compliant JavaScript calendar so I decided to check it out and see if it would fit the bill.

I won’t go into a lot of detail other than to just say that I was very impressed with this calendar widget. It is easily configurable and can either pop-up a calendar in another window when the user clicks a link or a button, or it can be a “flat” calendar that always shows on the page. The calendar can be easily “skinned” through CSS style sheets to match the look and feel of your web site. It also allows multiple date selections and date/time selections.

This calendar turned out to be perfect for my application and did exactly what I was looking for! Thank you, Dynarch, for providing such a high quality component available to web developers for free.

Posted at 8:05 PM

October 8, 2005

PortlandMaps Advanced Search

One of my first projects as a web developer for the City of Portland was recently launched. The project was to redesign the advanced search page of the PortlandMaps web site.

This search tool allows you to search the city’s property data according to various criteria such as address, property ID, sale date, and market value. It was an exciting project for me as I was able to integrate a variety of technologies to create a really useful and interesting web application.

The search results are integrated with Google Maps and Google Earth. When you perform a search, not only do you get a table showing data about the matching properties, but a Google Map is also populated with markers showing the location of the matching properties. Each marker contains additional information about the specific property, along with a link to a detailed page with more information about the property. Should you prefer Google Earth instead of Google Maps, it is also possible to export the results into this program, again with detailed markers placed at the location of each search result.

The integration with Google Maps and Google Earth provide the user with a very engaging and interactive experience. Due credit should be given to Google for providing such easily extensible mapping applications. This is a perfect example of how “Web 2.0” technologies allow individual components to be integrated together to create rich web applications.

Posted at 3:55 PM | TrackBack


I’ve been a big fan of Dean Edward’s IE7 standards compliance patch for Internet Explorer ever since I discovered it about six months ago. Recently I discovered another invaluable tool written by this same genius. It’s called cssQuery and it provides increased flexibility for accessing elements in JavaScript. Think of it as getElementsByTagName on steroids—LOTS of steroids! I can’t wait to try it out on one of my future projects.

Posted at 2:16 PM

March 24, 2005

Make IE standards compliant

As most web designers and developers know, Internet Explorer pales in comparison to other internet browsers like Firefox, Opera, and Safari when it comes to support for web standards like CSS. But thanks to a man named Dean Edwards, there is an easy solution now that solves a lot of the problems with Internet Exploder.

Most web designers and developers are faced with a dilemma: either code your web pages using only the parts of the CSS standard that Internet Exploder supports, or use browser detection to provide an alternate version (that IE supports) to Internet Explorer users. Neither “solution” is very attractive.

Indeed the situation looks grim with no hope for the (immediate) future. This was going to be a thorn in our side until either Microsoft decided to update their browser and add support for the missing pieces, or until enough people quit using IE, thereby eliminating the need for developers to support it.

Then along came a brilliant genius named Dean Edwards with his IE7 project. Dean has written a set of JavaScript functions that make IE behave like it should and add support for many of the CSS standards that it has been lacking. All web designers and developers have to do is download the scripts to the web server and then add a single reference to them in the HEAD section of each page’s HTML code.

And then Internet Exploder magically recognizes new CSS properties and selectors and behaves like a true standards compliant browser!

Yesterday I implemented the IE7 fix on this web site and was astonished at how easy it was to do and how effective it worked. I was able to remove all of the CSS hacks I’d created for IE to make it display the site correctly. It also enabled my portfolio page to look and function like it does in all other browsers. (Previously I had to provide an alternate layout and functionality to compensate for IE’s lack of CSS support.)

I would strongly recommend IE7 to any designer or developer frustrated with IE’s lack of support for CSS. Thanks, Dean, for providing such an excellent solution to a problem Microsoft has been avoiding for years now.

Posted at 1:52 PM