Filed under WebDev

Manifest – Two Months Later

It’s been two months since I released my first Wordpress theme, Manifest. And in those two months the response has far exceeded my expectations. Since it’s release, Manifest has been listed on various Wordpress theme blogs and used on countless personal blogs. It’s also enjoyed over 1100 downloads. Which still boggles my mind.

I’d like to say Thank You to everyone who’s commented, downloaded and enjoyed Manifest. I really do appreciate the support.

That being said, I’m considering making some updates to Manifest based on how I’ve seen it being used in the wild. While I have my own list, I’d like to hear from you as to what you would like to see (if anything) in an updated version.

Manifest & IE6

One of the key features of my recently released Wordpress theme, Manifest, is that IE6 is unsupported. This hasn’t been an issue with the vast majority of people using the theme, but there have been a couple of comments and emails asking about IE6 support. I figured I’d clear the air on the subject.

I wanted the process of making my first publicly available theme to be fun. I also wanted to use it as opportunity to use some of the CSS3 (and even CSS2) features that I don’t normally get to use. IE6 was a roadblock to both objectives. There’s been some chatter recently in the web design community about when and how IE6 support should be phased out. Some elect for a more progressive approach, while others elect to drop support entirely. For Manifest, I went with the latter.

If you view a Manifest based site in IE6, you’ll be presented with an unstyled (but completely functional) site with polite message at the top informing your users that they should upgrade their browsers to something more current.

Here’s some common questions/comments when it comes IE6 support.

  • A large percentage of my users still use IE6 : Manifest may not be the theme for you. The alternative would be to encourage your users to upgrade to a more modern and secure browser.
  • Many people work in offices that still run IE6 : Encourage your employer to upgrade to a more secure browser. Using a browser that’s less susceptible to viruses and hacking is good for your employer. Oh, and get back to work! What are you doing browsing the internets on office time?!
  • Will support for IE6 be added to Manifest? : No.

It’s not that IE6 support can’t be added. A good percentage of my day is spent getting complex web applications and ecommerce sites working in IE6. But it’s not a very fulfilling portion of my day. I’m not going to go into detail as to why IE6 is the bane of every web developer, there are plenty of other resources available that go into that. Here are a few:

Pronto

Pronto

Today marks the release of Pronto - All is Golden. Pronto is the side project of Wilco keyboardist Mikael Jorgensen. Don’t let the Wilco association give you preconceived notions of the sound of the record. It’s less of the Wilco alt-country sound and more of a grass roots Americana sound. I’ve heard some refer to it as AM Radio rock. I’m not exactly sure what that is (I hear the older folks used to listen to it), but what I do know is that it sounds damn good and you should pick yourself up a copy at the the Contraphonic web store, iTunes or Amazon.

In addition to the new album, today also marks the launch of the new Pronto site. I assisted in the XHTML/CSS development and Wordpress implementation. Visit today to find out the latest band news, tour dates and sign up for their newsletter. They’re also on that hip new thing called Twitter, so you can follow them there as well.

Full Disclosure: The exceptional drummer of Pronto, Mr. Greg O’Keeffe, is not only a friend of mine, but also my employer. While that may insinuate some bias in my opinion of the album, it doesn’t. I’d just as openly let him know that it sucks if I thought it did… right after my yearly review.

Safari 4 Beta – Initial Impressions

Yesterday Apple released the public beta for Safari 4, their latest and greatest web browser. I’ve always been a Safari fan. It’s always seemed faster then the other browsers and has lead the way in implementing new standards and experimental features. And Safari 4 builds on that, while taking a couple missteps. Let’s take a look at some of the pros and cons.

Pros

  • Speed. Safari 4 is significantly faster than any currently shipping browser and it’s very noticeable upon use. I say shipping because the current nightly builds of Firefox appear to be on par in terms of performance.
  • Coverflow History. I’ve usually found browser history to pretty much useless unless you know the exact time your were looking at a particular site. Being able to scan through your history as a series screenshots is awesome and makes using the browser history much more usable.
  • Topsites. While not particularly ground breaking (this was introduced with Google Chrome, topsites is a nice to have feature that will display your most visited sites as your homepage and notify you if they’ve changed.
  • New Web Developer Tools. I haven’t had the time to fully try out the new web developer tools, but from my quick poking around I can tell they’re vastly improved over the previous version. Time will tell if they give Firebug any kind of run for it’s money.
  • New Web Technology Support. I’m itching to try out some of the new standards (non-standards) support for upcoming web technologies they’ve added.

Cons

  • Tabs at the top. Placing the tabs at the top of the window is an interesting choice, but I feel it’s done purely because google did it with Chrome. I don’t have so much an issue with the tabs at the top as much as I do with how they’re implemented. Now that the tabs are at the top in the window title bar, you can’t just drag anywhere on the tab to move it around. Doing that moves the window. You need to click and drag on the designated area on the far right of the tab to move it. You can also no longer double click anywhere on the tab bar to create a new tab, you need to click the designated button to do so. And visually having the tabs break up the title bar is a little jarring, especially when you have other windows layered on top of them as in the following image.

Finder Tabs

Overall I’m pretty impressed with the new Safari beta. And it is just that, a beta. I have noticed a couple bugs here and there, but no show stoppers. Like I said, my only real complaint is the new tabs, I’m just not digging them. Luckily there are a couple of hidden Safari preferences, one of which that allows you to revert back to the old tab style.

On twitter (my new favorite gauge of public opinion) I’ve noticed that the general reaction to the tabs has either been met with absolute dislike or the “going to try and get used to it” attitude. Along with a smattering of people who really like it. It will be interesting to see how Apple responds in further betas or in the final product.

New Site Design

It’s been a while since my last major redesign, so I figured now was as good a time as any to launch this one. I’ve ditched the single column stream of news format for a more traditional approach. With this design I was aiming to get a bit more organized in how I’m presenting content on the site. Two sections in particular that I wanted to break out were my photography and projects I’ve worked on. Each of these now have there own separate sections on the site.

I’m not going to go too much into detail with what’s changed visually or technically. I’ll just invite you to check it out and let me know what you think. I’m still cleaning up a bit of the code and will probably be making tweaks over the coming weeks, but overall I’m pretty happy with this one.

One thing I will mention though is that I’ve completely dropped support for IE6. So the 36 of you out there who are still using it to visit this site will get a completely unstyled experience. It’s time to upgrade people.

Email Newsletter Makover Followup

As a followup to my original Email Newsletter Makeover post, I wanted to share the latest Mini email newsletter I received this morning. It’s an improvement in that I can actually read the header and footer text and they are more effectively used img alt tags. But there’s still a lot of room for improvement. For example, why is all the main text your writing in order to sell your product embedded in an image?

Below are screenshots showing the email with images off (default) and images on.

Email Newsletter Makeover

Email newsletters are popular form of communication when it comes to companies marketing their products. The most popular being HTML based email newsletters. These are the newsletters with the pretty pictures and text that look like a web page. Well, sometimes they look that way if the developer of the newsletter took the proper email degradation precautions. Often though HTML email newsletters resemble some random blocks of colors with random links thrown in. But it doesn’t need to be that way.

Lets take an email I recently received as an example.

At first sight this resembles a typical spam email. Usually a spam email that made it through my spam filter that’s trying to sell me something I don’t need, which I would just mark as spam. But looking closer I see it’s from MINI. I signed up to receive information from this company, but due to it’s poor presentation I would have just assumed it was spam and trashed it. But why does it look like this?

The common default for most email applications is to not display images that are contained within an email. This is an anti-spam measure. Spam often tracks the success and validity of the email it was sent to through the display of the images contained within the message. In order to view an HTML based email properly the user either needs to change this default behavior in the applications preferences (not a good idea) or by clicking the “display images” button that your email program will usually display. But as you can see from the following screenshot, even pressing the “display images” link only gets us half the way there. We’re still missing the text that’s displayed above and below the images because it’s black text on a black background. And the text that’s missing is important. It explains how to unsubscribe from receiving these newsletters should I want to. And ironically it also explains that if I’m having trouble viewing the email, I can click a link to view it properly. So much for that.

So how can this be fixed? I’ve gave myself one hour to create a fixed version of this email from scratch to demonstrate.

First I removed the black background that spanned the entire email. This allowed the header and footer text of the message to be shown, since it wasn’t visible due to the text color also being black. Instead of changing the text color to white, I choose to remove the black background so there is more focus on the message and less on the header and footer of the email.

Next I added alt text to all the images being used in the email. When using images that contain text within the image, use the alt tag. The image alt tag will display the text contained within the image if the image is not displayed. Also keep in mind that the default display color of the text will be black, so if you choose to you use a black background such as in this email, you’ll need to apply a color style to the image to change the color of the alt text so it’s readable.

With those small changes, the email that the recipient would receive would look like the following.

But this can be improved even further.

I’m a big advocate of using pure HTML text and not using images to layout your text. Images are often used to ensure a particular font is used. But I believe the cost in lost usability and accessibility is too high for ensuring your particular font is displayed (the one exception being logo branding). So I’ve created a second version of the email removing the image based fonts for pure HTML based text.

As you can see in the following screenshot, even without the images being displayed the visual style being sought by the company still comes through.

When we choose to display images, here is our final email.

As I mentioned previously, these changes took less than an hour. But they moved the visual presentation and accessibility of the email miles ahead of it’s previous incarnation.

Is Your Username Taken?

My friend and colleague Jon Sykes recently launched his latest side-project usernamecheck.com. It’s a service for checking a slew of social networks to see if the username you regularly use is taken or not. Actually, you may have heard of it since it’s been getting a ton of press lately. It’s been mentioned by swissmiss, Lifehacker and CNET. Turns out a lot of people like keeping tabs on their brand and identity when it comes to social networks. Companies like Coca-Cola could appreciate something like this.

Mr. Sykes has recruited me to help out with the UI and design of the site. So look for updates to usernamecheck.com in the coming weeks (or days).

Microsoft CSS Vendor Extensions

In Microsoft’s march toward full CSS 2.1 compliance with IE8, they’ve announced IE8 will be supporting the vendor prefix for proprietary and partially implemented CSS properties. But in true Microsoft fashion they prefer to be one step behind with the omission of -ms-border-radius. (via simplebits)

The Magical CSS Table Cell

Back in the dark ages of web markup, the most reliable way to layout anything was by using a table. One of the best utilization’s of the table-based layout was laying out a form. We’ve come a long way in breaking away from laying out forms in tables. There are plenty of techniques for doing this that have already been discussed, so I’m not going to rehash that. Some would even argue that tables are still the most reliable to layout forms.

There’s one aspect of table based layouts that has eluded the non-table based layouts. The magic of the table cell. Or more specifically, the magic of multiple table cells working in unison. If the width of one table cell expands, all the others in the column follow along. This is especially useful when it comes to laying out forms. When laying out a form with tables, one cell is defined as the form label and the adjacent cell is the actual form element. This is repeated down the table columns for additional form elements. Instead of having to explicitly define a width for the label cell, the form label widths can be defined by width of the cell with the longest text label. This helps keep the form elements and form labels properly aligned without having to define an explicit width for each individual form label.

When it comes to non-table based layouts, each element is independent of the other. If the text size in one form label is longer than the others, the other labels don’t care. They stay right where they are with their own defined width. To get the form labels and elements properly aligned, you need to explicitly define the width of all your labels. Which can be a totally acceptable solution if you know what the content of every form will be and how long the average form label will be. But when it comes to dynamic systems that may have a single form layout framework used for all forms throughout the system, you may never know what text is thrown into the form labels or how large the form may be. Leaving you’re explicitly defined form structure in a highly dynamic system to become inconsistent at times.

Two forms with explicitly defined widths with varying length text labels

So why go with the non-table based solution? Flexibility. The flexibility you have with your form layouts far outweigh this one issue. Want you’re labels to the left of your form element instead of the top? Or maybe on the right instead of the left? It’s a matter of just changing the CSS declarations related to the label. To do that with a table based structure, you need to restructure the table. And within dynamic systems that may have that form distributed through several files, you could be in for a lot of hurt in updating that table.

Which brings us back to the special magic of the table cell. For a long time it’s been defined in the CSS 2.1 specification that the “display” property could not only define the layout of an element as block or inline, you could also define it as table, table-row, table-cell and various other table properties. These table based display properties allow you to define other elements, such as divs, to take on the structural properties of these table elements. But support for these property values has been spotty or non-existent in most of the major browsers. But this will be changing with the upcoming crop of new browsers.

In trying to come up with optimal form layout markup for one of our clients at the Hive, I wanted to find a solution for the form label issue described above. The following is some sample markup of a simple form.

 <div class="myForm">
    <div class="row">
      <label for="text1">Label</label>
      <input type="text" name="text1" />
    </div>
    <div class="row">
      <label for="text3">Here's a super long label</label>
      <input type="text" name="text3" />
    </div>
    <div class="row">
      <label for="text2">Another label</label>
      <input type="text" name="text2" />
    </div>
  </div>

The goal is for all the labels to be align flush right against the form elements, have both the form elements and labels aligned vertically, and have the overall form aligned to the left of the containing element. But I don’t want to assign a width to the label because due to the dynamic nature of the form, I won’t know what the length of the label text will be or how many elements may makeup the form on a given page. For example, if I define the label width as 200px and there’s only two form elements with the labels of First and Last, the form won’t be aligned flush left of the containing element due to the large label width and short text strings within it.

This is where the table based display properties come in handy. I’m able to layout my form using semantic markup, but I’m then able to define that semantic markup to use some of the layout qualities of a table. I’ve essentially defined a sudo table by declaring these table based values in the display properties of various CSS element declarations.

.myForm{
  display: table;
}
.row{
  display: table-row;
}
label{
  display: table-cell;
  text-align: right;
  padding: 0 5px 10px 0;
}

This works in Safari 3.1, Opera 9, Firefox 3 (RC 1) and the IE8 beta. The IE8 beta is a little flaky, but it’s an early beta and there’s still more work to do on the CSS front for IE. Firefox 2 support is partial and IE6/7 support is non-existent. So use of this technique will depend on which browsers you choose to support.

Is this a solution to be used every time you create a form? No, of course not. This may even be an edge case for most people as their forms may be pretty straight forward. But there often times I find myself with the need to have the actual text of the label define width of the form labels. As with all design decisions, it really depends on the context within which your using your form and the problem you’re trying to solve.

You can view example of this technique here

CSS (in)Efficiency

Shaun Inman has an interesting blog post proposing CSS parent selectors. Something a lot of people (including me) have been begging for. The proposal on the surface looks good and sound, but when you dig into the comments, apparently it’s a lot more complicated. Take particular note of the responses from Dave Hyatt, he’s the lead developer on Webkit. You find out why it’s not something that will be implemented, and surprisingly (at least to me), how CSS selectors in general can get expensive in terms of performance. Especially for large scale web apps.

I was always with the understanding that CSS selectors were the most optimal route for CSS definitions, since your getting very specific about the element you want to style and not adding a ton of IDs and classes to your HTML. Apparently when it comes to performance the opposite is true. While it seems this performance hit isn’t noticeable on smaller scale sites, it can become a performance bottleneck on larger scale web-apps. The problem is I don’t know what the degree of the performance hit is and how complicated your site needs to be for it to be noticeable. I’m also not clear on if this is a browser specific issue. Browsers that are referenced include Safari and Firefox, but does IE or Opera suffer from this as well?

If this issue gets any more prominence, I’m sure some performance tests strictly dealing with CSS will start to emerge. As of right now, it’s something take note and of and keep on eye on.

Update: One of my partners in crime at Media-Hive, Mr. Jon Sykes, has posted a 3 part series on testing the above issue. Testing CSS Performance, Testing CSS Performance pt.2, and More CSS Performance Testing.

Email Standards Project

HTML formated emails are considered the spawn of the devil by some. And by others it’s considered the next evolutionary step in email. Whichever side you sit on, both agree the HTML formated emails aren’t going anywhere and will only become more popular.

From a developers point of view, creating an HTML formatted email can be about as fun as root canal. Why? Because as opposed to browsers, which there are only 2-3 core browsers (calm down fringe browser people), there are 10-15 core email clients. The level HTML and CSS support varies greater then the level of support the browsers had in the dark days of the browser wars. To encourage browser makers to comply to the basic set of web standards support, the Web Standards Project was created. This was (and still is) a group that lobbied browser makers to support web standards. Proving that it was not only for the benefit for web developer, but also for end users and the browser makers themselves. They have been extremely successful their efforts.

The Email Standards Project aims to do the same for HTML/CSS standards support within email clients. They’ve just launched their official site which contains info on why this matters, what you can do, and a list of popular email clients and their current level of standards support. They’ve even created an Email Standards Acid Test for testing the level of support of each email client.

I encourage anyone who has to create HTML formated emails or anyone who relies on them as promotional tools for their business to visit the Email Standards Project and show your support.

Safari 2 In Leopard

Safari 2 In Leopard

Interesting… If you use one of these custom Safari 2 builds in Leopard michelf.com/projects/multi-safari/ , you get the older Web Clips icon. It’s non-functioning though.

DIANE von FURSTENBERG

Our latest project at Media-Hive has just launched; the website for Diane von Furstenberg. Our role, more specifically for the Hive, was the eStore portion of the website. The eStore is built upon ATG’s Commerce onDemand platform (of which we are an implementation partner). Our task was to implement a new design, created by Sweden Unlimited (who also created the marketing side of the website) into the Commerce onDemand platform. We were integral in creating the base Commerce onDemand HTML/CSS framework so it was a natural fit for us to implement the new DVF design into the platform. My personal role was the HTML/CSS integration of the new design as well as the Scene7 integration which allows for product image zooming and alternate view display.

DvF

A Little Touch Up

This past week I’ve been on vacation spending quality time with the family. In the downtime between the quality time, I’ve been able to work on finishing up the small redesign I’ve been working on. Nothing too drastic, but it’s something I’m much happier with. And it’s also a design I’ll be refining as time goes on.

In addition to the new look and feel, I’ve also redone the underlying markup. Posts are now marked up in the hAtom microformat and other microformats such as hCards are sprinkled throughout. At the top of the page is my latest Twitter post which could contain any random thought that passes through my head.

I’m sure there may be small visual bugs here and there (or something I’ve just forgotten), but if you experience and issues or see anything glaringly wrong, let me know.

Are you POSH?

Creating semantic HTML has been a way of life for most modern web developers for past 4-5 years. At least it has been for me. With all the benefits that come along with coding your HTML this way, you would think it was an easy sell. Convincing other web developers that upgrading their techniques and skill set to this more modern way of markup. And convincing companies it was in their best interest to code (or re-code) their sites this way. But it wasn’t. Lack of time, money, resources, understanding… pick your poison.

These days more people “get it”. They understand the this is the way forward. And they see the benefits when this modern way of creating semantic HTML is put into action. But not everyone does, so there still some education to be done. You still need to give the the modern semantic HTML speech you’ve given a hundred times. And for those who are in the semantic HTML club, you’re still referring it to “modern semantic HTML that follows web standards” (or a variation thereof) when talking to you buddies.

Now there’s a new term that seems to be blazing a trail through various web development blogs to describe this modern way of coding. POSH. Plain Old Semantic Markup. It’s looking to make a brand name out of what we do everyday. Basically what AJAX did for the XMLHttpRequest object and all that it makes possible. You say “AJAX” and people know what you’re talking about without you having to explain further. Unless of course, they don’t know.

Personally, I like the idea of having a brand name for what we do. Look what AJAX did for “asynchronous server request that doesn’t require a browser refresh”.

So what about the term “POSH”? Is this the best we can do? I can’t think of the term “POSH” without thinking of the Spice Girls. Not sure what that says about me, but lets not go there right now. On the other hand, no one could talk about AJAX without thinking about the abrasive cleaning agent, but that seems to have passed. Time will tell to see if this sticks or not. If it does, I may just stick to “semantic HTML”. Like the cool kids who still refer to AJAX as “XHR”.

HTML5 Proposal to the W3C

The same day I decide to leave HTML Working Group due to the flood of emails and general lack of organization and direction; Apple, Mozilla, & Opera also decided enough is enough. They’ve filed a formal proposal for the current W3C HTML Working Group to adopt the work the WHATWG has already put into HTML5. This will act a starting point for further discussions of the HTML5 specification. We’ll see what the co-chairs have to say about this and if it’s accepted.

HTML unWorking Group

I was initially excited about being a part of the HTML Working Group. I felt subscribing to the mailing list would offer an opportunity to contribute to the development of the HTML5 recommendation, or at the very least provide some insight into the process. So far, I have gained a bit of insight into the process. It’s that there really isn’t one.

The amount of email that the list generates is completely unmanageable. A weekend can generate about 150 emails. And most of those emails are quite lengthy. There’s currently no real structure of what discussions should take place or how they should be handled. Actually, so far one quarter of the discussions have been about that fact. People trying to come up with a process. If you count all the discussions about how to handle the previous WHATWG efforts and how the new discussions will interplay with those, then it’s probably more like one third. I would have figured most of this would have been ironed out before setting up the new working group, but it hasn’t. The rest of the discussions are people pitching what they would and would not like to see in HTML5 and the ensuing arguments debate. Which is how it should be, but right now everything is posted very “willy-nilly”.

I’m sure most of these issues will resolve themselves in due time and real work will begin to get done (there’s some very smart people on this list). But unless you make the HTML WG your primary effort and don’t have a day job or a family, I’m not sure how anyone could actively participate. So I’ve unsubscribed from the mailing list. I’ll probably still keep tabs through the blog and the mailing lists online archives, but unsubscribing will remove the unnecessary “select unread, mark as read” workflow I currently have with dealing with the list.

Dear Google

The font size of the calendar module on the personalized homepage is very small. And just got smaller with introduction of your theme options for the personalized homepage (which I like, so thanks for that). The font-size declarations in the classes “eventChip”, “eventCell” and declared inline in the div with an ID of “createEventLinks27” are causing this unnecessary eye strain. Removing these declarations will make the font readable again (and the module useful again).

I am submitting this message in triplicate to ensure it reaches the proper personal. Also attached is a screenshot of the issue.

Small Font

Thank you for your time.

Update: Looks like Google has fixed the issue by updating the font sizes units from percentage to ems. Good show.

HTML Working Group(ie)

As an update to my previous post about the W3C HTML Working Group, I myself have joined. I’m coming at this from the perspective of an end user in what the working group will produce, the recommendation spec for HTML5. Not as someone who will implement the recommendations into the actual browsers, but as someone who lives day in and day out writing modern HTML markup. Since much of my work is centered around creating modern web applications and web applications is one of the main things to be addressed in HTML5, I’d be keen to add my 2 cents where appropriate.

I encourage anyone who feels that they may have something to contribute or has any strong opinions on where the language should or shouldn’t go, to sign up. It’s open to the public, so should something get decided you don’t agree with, you’ll have no one to blame but yourself. At the very least you’ll get a front row seat to the creation HTML5.