WordPress Upgraded to 2.7

News 24 January 2009 | 1 Comment

Not long ago, I updated the food blog to WordPress 2.7. Just this afternoon, I upgraded this blog to 2.7 as well. Usually I delay for a bit and skip a rev or two because it takes all of 10-30 minutes to upgrade with my obsessive re-backing up of backups, and I just don’t usually want to give up that amount of time to upgrades. But 2.7 made such amazing improvements of the administrative interface that I opted to go ahead and do it anyway.

I find myself writing more on the food blog because I love the QuickPress option of the Dashboard. It’s also vastly easier to navigate quickly from one portion of the tool to another. Speed and ease are king in the content entry world. I hope the same effect occurs on this blog as well. Celebrate.

How Painful to Transfer FeedBurner to Google?

News 21 January 2009 | 1 Comment

This morning I transferred my FeedBurner feeds from FeedBurner to Google. Recently, FeedBurner was purchased by Google and the team has been making many optimizations since then. Within the past week, FeedBurner account management pages have been prompting users to transfer (merge) their feeds over to a Google account. Since I already use Google Analytics and other Google webmaster tools, this was no big deal.

All right, how long will this take?

The whole process took about 5 minutes. Seriously. It was painless. I clicked the transfer link, it sensed that I was logged into Google, and prompted me to make a decision: merge FeedBurner with the currently logged in account, the Google account linked in my FeedBurner email account setting, or to create a new Google account to merge with. Then, it went grinding away for a minute or two. Finito!

That sounds easy. But seriously, there has to be some drawback.

I don’t see any drawbacks if you already have a Google account. I had a concern that I was going to lose subscribers in the process, because there is a new feed address (http://feeds2.feedburner.com/MyAccountName, where the old one started with http://feeds… – addition of the 2). However, the FAQ assures us that subscribers will not be lost, as Google instantiated a redirect of the old address to the new. And, this redirect supposedly lasts forever.

FeedBurner site visitor stats have been eliminated. However, Google Analytics is far more robust, and likely people with Google accounts already have Google Analytics in place. A reminder to those using FeedBurner site stats that your visitor tracking scripts should now be removed.

Another repercussion: users implementing email subscription forms must update the form code per instructions on the Email Subscriptions page. If you’re just using a link like in my sidebar, that link must also be updated.

Meh, this sounds lame. How do I get out?

If you don’t want to go with the Google/FeedBurner merger, you have until February 28, 2009 to enable a 30-day redirection option. You are to start using your own feed rather than FeedBurner. This option, for the first 15 days, serves as a redirect to your feed, and for the last 15 days shows users an empty feed that “reads ‘This feed is no longer active. A new feed is located at’ followed by the URL of your original feed.”

Okay, it’s not worth all that effort. I’ll just keep FeedBurner. What should I do again?

Well, after you do the transfer, update your feeds to point to http://feeds2.feedburner.com/MyAccountName. Remove your FeedBurner site analytics. Add Google analytics if you don’t already have it. Update email subscription forms and links. Pretty easy, right? Five minutes, ten tops.

Lost RSS Subscribers? What up?

This happened to me 3 days ago (January 17), and I just today (January 20) transferred my feeds to Google. The loss of subscribers were all Google Reader/Feedfetcher subscribers. Are the lost subscribers due to the transfer? I doubt it. I bet Google is doing something is in the pipes that is affecting their reporting of Google Reader subscribers. Otherwise, I wouldn’t have noticed the issue until today. Just a thought.

I hope this helps you and eases any trepidation you may have or have had before switching to Google feeds. I wrote this up in answer of some of the questions I had regarding the transfer, and hope you benefit. All of my data was regarding my two blogs, Neatly Sliced and the Yum blog, so mileage may vary on users with many many FeedBurner accounts to transfer.

CSS Property Order Convention

CSS 15 January 2009 | 7 Comments

I’ve posted previous tips for CSS conventions, such as using semantic id and class names and keeping your selectors lower case. What about within our styles, between those curly braces? What convention can we apply to our properties?

According to W3Schools, “CSS syntax is made up of three parts: a selector, a property and a value”, such as #selector{ property: value;}. Now there are a ton of CSS properties, so we really ought to adopt a convention for writing these out to keep ourselves and our coworkers from tearing out our hair.

I propose we begin alphabetically ordering our CSS properties (if we’re not already, of course). Now, I’m not saying to be dogmatic about alphabetizing (ahem, everyone, each font property must be alphabetically listed! I don’t want to see font-weight before font-size!) but just in general, group for example the font properties together and list then in alphabetical order in relation to the other properties.

Why would this be useful? Well an obvious reason is that you can quickly find what you are looking for, but another (and more important) reason lies in that it will reduce overriding errors.

Below is the style for a menu that I pulled from a third party:
.menu a, .menu a:visited {
display: block;
font-size: 12px;
font-weight: bold;
text-decoration: none;
color: #fff;
height: 30px;
border-color: #fff;
border-style: solid;
border-width: 0px;
background: #ccc;
padding: 10px;
line-height: 30px;
I needed to paste in font-size and color, so I pasted those two over the existing font-size and above the font-weight that already existed:
.menu a, .menu a:visited {
color: #fff8f1; /* ADDITION */
font-size: 11px; /* ADDITION */
font-weight: bold;
border-style: solid;
padding: 10px;

Since this was not my CSS, I did not notice at first that the color property was already declared later in that very selector. The result in this instance would be my #fff8f1 would be overridden with #fff because the latter rule (selector or property) takes precedence.

While I was alphabetizing this selector, I noticed the other color and of course deleted it. In addition to preventing override errors, alphabetizing the properties also just gives the selector a feeling of order and organization.
.menu a, .menu a:visited {
border-style: solid;
color: #fff8f1;
font-size: 11px;
font-weight: bold;
padding: 10px;

Advice of a different order: Andy over at Aloe Studios suggests ordering properties in a way to mirror the property’s effect on the box model. It confuses my simple non-design developer brain, but perhaps designer-heavy CSS developers find it more semantic for their heads. If it works for you, do it!

Like what you’ve read? Browse the CSS category for more CSS goodness, and be sure to subscribe to the RSS feed. It’s free!

Tagged in

Properly Utilize XSLT Parameters with ColdFusion

ColdFusion 19 December 2008 | 4 Comments

Often a CMS will store its content in a database as structured XML. The easiest way to display this data is often through a short XSLT, which ColdFusion can render a transform using the XmlTransform() function, introduced to ColdFusion in ColdFusion MX.

XSLT Parameter Usage

ColdFusion MX 7 introduced the ability to include parameters to the transform. Parameters allow you to pass in values to be rendered by the XSLT that are not included in the original XML. Following is an example of how an external parameter might be used with the following XML and XSLT:

My Title



Injecting a Parameter

According to the documentation at the Adobe Knowledge Base, parameters are “a structure containing XSL template parameter name-value pairs to use in transforming the document. The XSL transform defined in the xslString parameter uses these parameter values in processing the XML.

Usually when I create structures in ColdFusion, I use the familiar dot shorthand notation:


Using this method, my code would consistently fail to pass in any of the parameters. Careful reading of the ColdFusion 7 comments for the XmlTransform function reveals to us that we must use associative array notation for parameters to work properly. It’s as easy as switching the assignation of keys in the structure from dot notation above, to the associative array notation below:


Structure Notation Reasoning

Why is this the case? Why should it make a difference? Quite likely, as the commentor noted in the documentation, it is due to the syntax of ColdFusion. XML and XSLT allows for the “-” character to be included in variable names. Instead of baseWebUrl, I could have named the parameter base-web-url. Using ColdFusion and dot object notation would have resulted in <cfset parameters.base-web-url = application.webBase />, which obviously would result in an attempted mathematically equation and a ColdFusion error.

So, just remember, don’t use dot notation! Use associative array notation, or if you wish, the StructInsert() function to add your structure keys.

I hope this saves you at least half of the hair-tearing-out that I endured.

A Panel Apart

CSS 7 December 2008 | 0 Comments

An Event Apart 2008, Day 2, 5:00pm – 6:00pm

Read the previous talk in this series, Designing the Next Generation of Web Apps by Jeff Veen, or view An Event Apart’s Table of Contents

A Panel Apart

Eric MeyerJeffrey Zeldman & Special Guests (Jeff Veen and Cameron Moll)

  • Take ownership of browser standards? Everyone is like, uh, what? 
  • W3C has nothing going on right now: Eric Meyer and Jeff Veen
  • Eric: JS is the only way that we’re going to get advanced CSS3 standards
  • JZ: being a part of the w3c is kinda weird, because it’s so time consuming, you would need a company to pay you to work at the w3c, but then you wouldn’t be into design anymore because you’ve spent so much time with w3c. Then, you’ll be discouraged because there is so much overhead involved in being a part of it, hatemail, mailing lists, it’s like going to the DMV. (not verbatim, in my own words)
  • What defines an image from being content apart from presentation?
    • EM: if I would need alt text for it, then it’s content, otherwise presentation because decorative. “If I need alt text so that Google can pick it up, then it needs to be content”
    • JZ: like Cameron Moll’s site, the flourishes would be presentational content
  • Do you have any advice about designing for phones?
    • CM: Ask the boss about the need for this. What is the need? Don’t go build some mobile web piece because it’s the next big craze, but what will people need? People with blackberries aren’t going to want to be browsing like an iphone user will. 
    • JZ: Does it need to be exactly the same as the site? Does it need to be like NYTimes design that makes it easy to browse and look at articles? Do you want it like Flickr where you just need to see recent activity, see a few basic things? Most the cool things with Flickr happen with Ajax that a real web browser is required, so you don’t want the same behavior. Thus, there is a simpler UI. Let’s make the phone have maybe a different experience, maybe there’s a call to action on the phone, and take away the rest of the website. A call of action could be more important than making it look pretty on the phone.
    • JV: got off the blue line and couldn’t remember how far the Sheraton, and they didn’t even have the address on the home page. Silliness. This is a perfect time to make a phone version.
  • How do you deal with not having a copywriter?
    • JZ: Happy Cog does content development and IA at the same time, they sneak in copy, unless the client understands that on his own. Good writing makes good interface, they make it part of the IA so they can have clean, good, happy copy. Happy cogs 😀
      • Know yourself, your strengths, who the users are, and what KIND of language/reading level/existence of humor/etc. Client may realize that THEY CAN’T write that and so they’ll want a writer then. They put it IN their budget.
    • CM: He would just slip those things in wherever possible, and it usually went live that way. Now in house, they have an entire translation department.

This completes the An Event Apart 2008 notes series. View the Table of Contents to ensure you have completed your reading.

CheckBoxList outputs a table by default

ASP.NET 4 December 2008 | 3 Comments

Building an ASP.NET site, I needed to use a server-side CheckBoxList control. Much to my irritation, the server control output each <input type="checkbox" /> in a tr of a table containing the entire list. I thought, how awful!

Fortunately, I found a way for the server control to quickly output each input in spans rather than table rows: CheckBoxListId.RepeatLayout = RepeatLayout.Flow

The default value is RepeatLayout.Table. Now my checkboxes are cooler.

Designing the Next Generation of Web Apps

Random 18 November 2008 | 0 Comments

An Event Apart 2008, Day 2, 3:45pm – 4:45pm

Read the previous talk in this series, The Arts & Crafts of Web Design – or What Would William Do? by Curt Cloninger, or view An Event Apart’s Table of Contents

Designing the Next Generation of Web Apps

Jeff Veen

  • He’s going through the history of computers, how he liked Pong when he was six, and how it progressed.
  • Jeff left Google about 5 months ago (today is October 14, 2008). 
  • “When I’m feeling dumb, it’s usually not my fault. It’s usually someone not communicating something, [etc.]”
  • Cholera – John Snow used design and the sanitation maps to show that a pump was causing the cholera, not the air. Took the map, drew all the deaths at each address, then used design by taking out everything that wasn’t proving his point.
  • This is visual design oriented, not technical design. That’s why my notes here are sparse.
  • Inspiration comes from all different places. If having difficulty, stop looking for a bit.
  • Use the visual to help make statistics more real – The MegaPenny Project. (screens)
  • Try to find the story in the data, and how to be a good data visualization designer?
    • assign different visual cues to each dimension of the data. Maybe black marks next to each address, bullet points like an Indiana Jones global flight, whathaveyou.
    • Remove everything that isn’t telling the story. Journalists already follow this.
  • Learn to give up control, and that helps you on your way to be a good interactive designer. In can show up in any context, and that’s ok.
    • CSS Zen Garden is a perfect example of giving up design.
    • Jeremy Keith makes it clear that you can choose your style. My content can show up anywhere.
    • An aggregator, so you don’t see any of the design. Relinquish control. 
    • A braille browser. Letting go.
  • Tons of data visualization analysis and examples. No links given out. New York Times Casualties of War. I wish he gave out links.
  • Storytelling -> discovery. Allow them to discover their own stories.
  • A huge percentage of Google’s audience was coming from outside the USA.
  • 1) Start with the user 2) Know yourself, then an option #3, Then understand the user
  • User research is important, but those two are so key. Put research into the context of what you know.
  • “Everything I’ve built has come from the frustration that it didn’t yet exist.” – Matt Mullenweg, founder of WordPress
  • Everywhere you look, inspiration can come from…. (he ends with screenshot of Pong from the beginning)

Skip to An Event Apart’s Table of Contents