Google Groups spam

drunken blowup doll

^ makes more sense than this shit >

Over the past week or so I’ve been receiving spam emails via a Google group that I was somehow subscribed to. I don’t know how many of you out there use Google Groups avidly, but I am not one of those people. I see their value and I’ve used them on occasion for technical assistance on previous matters, but that was the extent of it. My inbox already has enough clutter. I was trying to figure out how I could be receiving emails from a group I had never knowingly subscribed to and that’s when I stumbled upon this gem.

I’m not into this group stuff…

First and foremost, this post is also a prime example of bad user experience. I had to search all over Google Groups in order to change these settings. By default Google group owners can add any user they please to their group. This is the equivalent of being added to a mailing list without opting into it. A giant red flag in my book. There is a simple way to disable this but finding it is another story. Instead of giving you step-by-step instructions on how to arrive at your membership management page, here is a link to it instead. Why did I do this? Because I can’t even figure out how I arrived at this page to begin with. That’s right. I can’t even figure out how I got to this membership management page. Fortunately I saved the link.

Once you’re at this page make your settings look like this:

The first one is optional but I made sure to set it. Whenever I resort to a Google group, I find it myself. I already receive friend requests from practically every social network on the face of the internetz. Do I really need them from Google groups now? The second option is the treasure we’ve been searching for. This is something that should be set by default, otherwise any person with a group can add you without your consent or approval. Come on, Google. You know better than this! To be fair, Google outlines their reason for allowing direct adding by default on this page:

Google Groups allows group owners to directly add members as a convenient way of transferring groups from other services. We don’t intend for this to be used to build lists for unsolicited email; we don’t like spam, and using the “Add Members” feature in this way violates both the spirit of Google Groups and our official Terms of Service. If you think a group owner is abusing this feature, please let us know about it by clicking the abuse report link at the bottom of the subscription email you received from the group.

Hopefully they are on top of spam reports and assess them in a timely fashion. As a courtesy to the 10,000+ people receiving spam from the aforementioned group, I sent out an email to the members that outlined how to both report the group to Google and how to prevent this from happening to them again.

The User Experience Fog

Crazy

Jeremy Keith demonstrates what could be a disgruntled end user face.

Being a web developer and an avid spokesperson (for lack of a better term) for such things as accessibility and usability, I tend to browse the web and look at what other developers and designers around the world are creating. The amount of beautiful websites on the web today is stunning and I’m happy to see it come along this far. I’ve watched people like Jeffrey Zeldman and Eric Meyer pioneer it to where it is now and the journey thus far has been an experience (see how I threw that in there?). I’ve also found that a lot of times the term “beauty is only skin deep” applies heavily, kind of like makeup before showtime arrives.

Where to draw the line

The huge influx in use and introduction of object-based Javascript libraries such as Scriptaculous, MooTools and my personal favorite, jQuery, has catapulted usability and the “wow” factor greatly. Even the least savvy of designers can accomplish some impressive things with each library. I’ve also seen it do nothing but hinder websites to the point that they’re just plain unusable. Where do you draw the line? When does the shine really become too much?

A prime example of bad usability is when a website solely relies on a Javascript library just to navigate the page. I’ve noticed that a lot of designers are trying to use creative ways to navigate their pages. This is all fun and nice but there are actually a few reasons to avoid this at all costs:

  1. Javascript can be disabled. Some savvy users browse website weary of what scripts may run in the background and potentially cause harm or hang. Unless your website degrades gracefully and can still offer easy navigation without the absolute need for Javascript, then you’ve got a huge problem on your hands.
  2. A lot of these methods us an id for each content section div, thus all of your content is essentially on one page. This can greatly harm search engine placement. Search engines will only see your website as being one page when in reality you want search engines to index multiple pages from your website. This also greatly adds to usability because then the end user can go to exactly the page they want and not have to shuffle through some fancy navigation that slides, fades, serves you tea, sharpens your pencil, etc.
  3. Older versions of Internet Explorer have trouble interpreting Javascript. IE6 is prone to throw “object undefined” errors with libraries like jQuery. I put this last on the list because support for IE6 should realistically be dropped completely in favor of versions 7 and 8.

Prior to the launch of any website, running rigorous usability tests with a set of random people has always been good practice. Handing it off to someone with no prior knowledge of the website’s existence and letting them figure it out for themselves. It’s kind of like giving a chimp a Rubix Cube and seeing how long it takes him/her (and how easily it is for them) to solve it. If it takes forever and they become confused and/or frustrated, then you should definitely be revisiting your creation before launch.

The user experience is like a ball of clay sometimes. Despite your numerous usability tests, even some users will be confused or hung up somewhere along the line. I’ve experienced this first hand and having a client that is very open to the feedback of their clientele makes the improvement process a whole lot easier. The same can be said about marketing. It can be hit or miss. You abandon the things that just don’t work, improve the ones that show promise and leave the things that are spot on.

Accessibility: A web for everyone

Accessibility is another factor that has both suffered and thrived since the earlier days of web design, due to the widespread education provided by pioneers in the industry (the aforementioned ones above that is). Accessibility should be a huge factor when creating a front end user interface for a large audience, and there should never be a reason to avoid making accessibility a target goal (especially when the practices to get there are so easily integrated into your everyday workflow). You should accommodate everyone.

The easiest way that I can relate this to everyday life is like this: Let’s say that you’re an engineer, drawing up blueprints for skyscrapers and various other buildings. Your job is strictly guided by codes that apply to everything—electricity, water, fire exits, extinguisher systems, etc. Another requirement for every building is wheelchair ramps and entries that are wide enough for a wheelchair to fit through. The building has to be accessible to everyone. The same applies to the web. Simply disregarding accessibility for any reason is essentially banning a certain group of users from viewing your website properly.

A fellow web developer friend of mine has had a cochlear implant device most of his life due to the fact that he is deaf. Like myself, he’s an avid movie, television and technology lover, but he has a justified beef with television and movie production companies: closed captioning is not enforced. It’s very lax and extremely inconsistent. Some movies offer it while others have absolutely no CC option whatsoever. It’s something that you think would be a requirement for all Blu-Ray and DVD releases. Apparently this is not the case, thus he’s unable to enjoy certain films and shows. This is a prime example of accessibility in everyday life.

The UX Household

My view of the user experience has always been simple. I consider the user experience to be a house that serves as a home to a set of roommates. Each roommate contributes something different to the household:

  • User Experience
    • Usability – The head of household. Usability is the ease at which a user can become acclimated to a website, to put it simply. All elements that come after usability are essentially contributors to the usability of a website.
    • Accessibility - Accessibility is the roommate that goes out of its way to make every guest feel at home. Accessibility is the practice of making your website easily accessible to people with disabilities. This includes (but is obviously not limited to) people that use screen readers.
    • Content – This is the guy that always has information to share and is easy to get along with (as long as the rest of the roommates don’t piss him off or something). Hindering the ease at which the user can gather the page content or somehow breaking usability, thus hindering your user’s ability to read the content, can cause huge issues. Ultimately your “house” can become chaotic, sort of like those reality TV shows. “Content” is fairly self-explanatory and at first glance can seem like a broad term. Your content is the meat and potatoes of what your website conveys. Keeping your page content concise and clear is usually your best bet. Most users are more apt to read bullet points and look at images before they’ll read paragraphs.
    • Functionality – This roommate keeps the content guy grounded and often times brings out the best in good ol’ content. Functionality is basically the fluidity with which your website’s special features interact with various browsers, resolutions, etc. and how well they hold up. Your user shouldn’t be solely relied upon to have extra features or add-ons in their browser or browsing environment just to make your website’s featuers work properly. An example of bad functionality is when you create effects in jQuery that break, shift or just plain fail when the user provokes something such as a browser window resize or a font size adjustment. The same applies to all aspects of the website. Shifting divs can be an issue if you haven’t properly cleared elements and the viewfinder encounters a resize or a resolution that the website was never tested on.

Searchability: How easily can you be found?

Another aspect that I think could be factored in as a “roommate” is searchability. The ease at which your website can be found can greatly help or hurt the user experience. There are many factors that can contribute to the rise and fall of your website when it comes to being found at all:

  • meta tags: description, keywords… – Although most search engines are doing away with a lot of them, having a description meta tag is crucial. Without it, search engines rely on the next best thing to grab: your page content. Some people will tell you that the keywords meta tag is dead but that is not completely the case. There are some search engines out there that still utilize it, so keeping it won’t hurt you. It’s good to be safe than sorry.
  • Heading tags: h1, h2, h3 – Search engines “crawl” websites and follow by the structure of elements provided to them. Having properly ordered heading tags and using the <p> tag to enclose page copy, is good practice and should be utilized.
  • Relevant page content – This tends to be a trial and error aspect of searchability. Keeping your content relevant and concise to what the website is about is important, but make sure not to be redundant. Example: if Google sees a keyword within your page copy that is used numerous times through the same paragraph, your website can be penalized.
  • Fresh page content – The frequency at which your content is updated can make or break you. If Google or any other search engine scans your website over a period of 6 months to a year (roughly) and sees that your content has not changed, your rank will suffer. Keeping your page content up to date will help greatly. If you find it practical, having an active blog can help. I stress “active” here because having a blog is one thing but having a blog that is never updated will hurt you more than it will help you. An inactive blog page is another page for search engines to penalize you for.

Think about it. Unless all of your website traffic is miraculously direct traffic only, your website is going to suffer a huge deal. If people can’t even find your website, then all of the aforementioned aspects of the user experience are out the window. You have to get the guest in the door before you can do anything else.

Wrapping it all up

The user experience can be a very broad term but there are many aspects that make up the “household”. If all of the roommates can’t live in harmony, the entire house will suffer. There should never be an excuse to ignore any UX element, unless the client just doesn’t have the budget or the website is strictly for internal use and is only available to a select audience.

I hope that you’ve gotten this far and that you found my insight informative. I am in no way the ultimate spokesman for user experience studies but I like to think that I have a detailed grasp on the matter. I would love to hear your thoughts! Please take a moment to leave a comment below. Thanks.

Tables vs. CSS? This debate still exists?!

Holy cow. I feel like I just hopped into the Delorean and went back in time with Marty McFly. Welcome to the year 2000, kids! Today we’re going to discuss the ginormous amount of shortcomings that using tables for layout poses.

I came across this article via @paulrobertlloyd.

K.I.S.S. means keep it simple stupid and that means tables because tables are simple. And they also work!

Have fun trying to update a tables-based website! Also, have fun with your 10 million lines of HTML, as opposed to my 300 or so. Why is this discussion even going on? Everyone has come to the conclusion that designing with divs is far easier. Aside from the fact that TABLES ARE FOR TABULAR DATA, not layout. They were NEVER designed for page layout. In fact, the web wasn’t even expected to be where it’s at today. I hate how this article tries to teach readers a bunch of shit they discarded ages ago. Hey, that’s cool. If you want to use tables for layout, that’s your prerogative. I’m gonna stick with my realistically simple div-based layout. Thanks anyway.

Tables, at the time, were the only known solution for layout. They were a band-aid. A boat in uncharted waters. And like most things, the div method was discovered, fine-tuned and put into the game because it’s easier. The same applies to CSS. CSS offers global control to a website and gives the designer a better platform to make future website updates on.

It’s one thing to use the regular CSS style to replace the same fonts that will be used all over the place. But it’s another when you take little bits and pieces of code out of the page and bury it some huge .css file and then try to figure out and try to remember where they all came from and what each piece of code did 2 months from no.

What a cop out. “I can’t remember the names I used on my div containers!” Are you actually serious? This entire article screams a bunch of words in my head. The biggest one is “LAZY”. I can go back to a layout I did 3 years ago and only spend about a minute remembering the structure I used. You know why? Because it usually involves about 5 to 6 containers, all named accordingly to what they are. They also require far less markup than your shitty tabular layout. Get out of Dreamweaver Preview mode for once in your life. Go ahead, give it a try. I know the Matrix is a scary world but some day you have to jump in and take the reigns. Just like the thousands of people that did the same and are making beautiful websites because of it.

Let’s take the website that posted this article into consideration. They use inline styles. INLINE STYLES. What happens when it comes time to update the website? Are you going to do a find and replace and pray that it doesn’t bork your entire website? Better make a backup first. Actually, it looks like it was designed back in 1995 so I doubt they ever update their website, other than fill it with articles that are completely irrelevant to today. To top it off, the website is driven on .NET.

I remember setting up a dedicated .NET IIS server. Yeah, I remember how much I fucking HATED every moment of it. Setting up every folder as an application, shoveling through weird errors, pulling all of my hair out. But that’s beside the point. We all know that Microsoft makes EVERYTHING needlessly inefficient and difficult because they feel like they have to hold their ground and use something proprietary. We also know that they never follow any sort of standard, except for their own. This article even covers that. ie, Publisher (absolute crap), Frontpage (complete garbage), Internet Explorer (do I even have to say it?), Silverlight (Flash clone).

The ratio of people who use CSS/div layouts, vs. Table layouts is far unbalanced, unless you’re stuck in 1995, and/or uneducated, and/or just plain lazy, and/or just plain stubborn. I know a few designers that still use tabular layouts. They’re also the same people that use inline styles, NO meta tags, Photoshop’s automatically generated HTML and no alt tags for images.

Let’s be realistic here. The table layout method will never again gain any sort of momentum. It’s done and gone. If people want to continue using it, that’s fine. The only people that will complain are the professionals like myself, who have successfully put the div/CSS method into play for years with flying colors.

IE8 Set to Screw Web Developers Once Again

Through the Twitter grapevine, I heard a buzz about something that angered me to no end. Now, before I write this blog, please know that I just completed a rigorous 11.5 hour day of writing code. So if this comes off pretty aggressive, that’s why (aside from the fact that I fucking hate Internet Explorer with a passion).

The dev team for IE8 decided that they were going to once again make things needlessly more difficult for web developers and web standards evangelists. Quoted below from isolani.co.uk:

A year ago Microsoft announced (through A List Apart) that standards compliant websites would be forced to opt into a standards rendering mode in IE8. The uproar from the web standards community was loud and clear: the default should always be render in standards compliancy mode. Microsoft backed down.

So it is with considerably surprise and anger to read that Microsoft have quietly gone back to their original position. The gist of it is if you want to be sure your site renders in standards compliant mode in IE, you have to explicitly opt into it. Otherwise you risk being blacklisted and thrown into IE7 Compatibility mode.

So basically if you want your website to render in IE8 and not get blacklisted, you have to use a new meta tag that the IE8 dev team will inform us of. Otherwise your website will be blacklisted and stuck in IE7 compatibility mode. So when the time comes, not only will we have to test our websites in IE8, but we will most likely have to test in IE7 AND IE7 Compatibility Mode as well.

Read the full article here.

The thing that kills me about this whole thing wasn’t even in the aforementioned article. In another article on isolani.co.uk, they point out a couple quotes from IE Platform Architect Chris Wilson:

The answer is that developers of many sites had worked around many of the shortcomings or outright errors in IE6, and now expected IE7 to work just like IE6. Web developers expected us, for example, to maintain our model for how content overflows its box, even in “standards mode,” even though it didn’t follow the specification – because they’d already made their content work with our model.

Unbelievable. For years, Microsoft put out a sub-par web browser and now Web Developers like myself are the ones to blame? No. Just…no. We’ve compensated for their shortcomings and deprecated software for years on end and now it’s our fault.

We realized that “Don’t Break the Web” should really be translated to “Don’t change what developers expect IE to do for current pages that are already deployed.”

Now we’re all expected to add a meta tag to our web pages so that IE8 will oh so generously not throw our websites into IE7 Compatibility mode, and will so graciously render them for IE8 instead. Web standards evangelists like Eric Meyer and Jeffrey Zeldman have been spearheading the evolution of the web for years and now we’re all expected to take a step backwards to compensate for horrible, cruft-infested programming and they have the audacity to blame web developers as a collective for the shortcomings.

Give me a fucking break. Make a web browser that isn’t a steaming pile of shit for once. Even now, IE7 has issues.

Let’s take the Mozilla team for example. When there was empty promise of the expected IE killer, Netscape 5, the Mozilla team started from scratch and built what has evolved into the Firefox we know and love today. They started from the ground up and built a web browser that has promoted web standards right out of the gate. Instead of following a similar model, the IE dev team has decided to pile more shit onto the steaming heap that is Internet Explorer and continue to apply bandaids to the holes in the dam.

Earth to Microsoft, Internet Explorer is a worthless piece of garbage. Make something new and stop wasting our time.