A Web Standard No One Talks About by Brent @ 11:19 am on 29.05.08

Day in and day out, I am here, at my computer, furiously building websites. I work for a small company and I am a one man team. I try extremely hard to maintain high standards for my work (ie, the W3C). This takes quite a bit of extra effort, but I feel (and our clients feel) that it is worth it.

In my work, I deal with a variety of clients and a variety of project managers. Each has their own way to doing things, which is to be expected. But the change I propose to the world (cause I am sure that’s how many people read stupideverything) is a change in one standard: content delivery.

Every project has a few essential documents:

  • Proposal and Budget
  • Site Map
  • Site Content
  • and perhaps a wireframe document

Each of these really makes my job easier. But here is where I want to switch things up: STOP USING MICROSOFT PRODUCTS.

We have designers on Macs, account people on PCs, clients on Macs and PCs, developers on Linux, Mac, PC. Everyone has Blackberries, Windows Mobile phones, iPhone, Treo’s, etc. We are all sharing and editing these documents. Deveoplers, especially are opening these documents constantly, copying and pasting content from the copywritters, checking the for revised versions of the site map to update the navigation. The documents get used, they are tools.

I propose the documents essential to the developers (site map and content documents) need to be in PLAIN TEXT. You don’t need to format these documents. We don’t need fonts or typefaces defined in this document, the designers have prepared style guides, and developers are writting standards-based CSS to interpret the content. Adding margins and tabs and crazy bullet lists to the your Word 97 document are really making it hard for us developers to dump the content into the site quickly.

The main problem with using a MS product for these essential documents is versioning of the Office software itself. There are so many versions of MS Office out there, and for multiple platforms. It is nearly impossible to get all of the stakeholders in the website on the same platform, using the same version of Office. So all of those nifty sharing features and revision features go right out the window. Our small business clients are not upgrading their version of office each time there is a release.

A secondary problem with using MS products, and sort of a personal pet peeve, is that in order for me to get some small detail of the site, like the title of a section of content, I have to fire up MS Office. I am already running a tonne of browers for testing, text editors for writing the code. I probably have Photoshop or Illustrator running and for sure I have some mp3s playing. Opening Office just to get the wording of a title is not convientent in the least.

Another problem, although probably another topic entirely, is the blatant abuse of MS Excel. This is not good software for creating a site map or wireframe documents. Just because it looks like a sheet of graph paper when you open it, doesn’t mean that’s how you should treat it. Excel is not a database, it is not a text editor and it is not a design program.

I propose we use PLAIN TEXT DOCUMENTS. That’s right, ASCII. It renders the same on every machine, it is very fast to open, and its small file size makes it easy to store and email to people on mobile devices. No one every says “Dang, I can’t open this .txt file! I don’t have the right version of Notepad!” or “Man, Notepad just crashed my machine! I hadn’t saved anything!” or “Notepad is taking forver to open.”

Now, MS Office has it’s place for sure. When writting large documents or anything you intend to print or where you want to have a writter style a document, MS Word is great.

This should be your guiding principle:
Any project where the final deliverable is NOT something with the extenions .doc, .xls or .ppt, DO NOT use MS Office.

Let’s do everyone a favour and open Notepad/TextEdit/vim right now.




Upgraded Expectations by Brett @ 11:35 pm on 25.05.08

For the last decade, I have been having a problem with how I use Linux. Of course, it was a problem with Windows and Macs too, so I didn’t feel I had the right to bitch. Now, things have changed.

Computers are very useful tools. Most of us customize our machines - we have particular applications we like: backgrounds, disk layouts, encryption schemes, and so on. It takes awhile to turn a “vanilla” installation into something you feel is your own.

Not long after you setup your masterpiece, you’ll have to upgrade it. It doesn’t matter what OS you’re running. You’ll balance the new tools and enhancements vs. the time it takes to upgrade your machine until the time comes when it’s finally worth it to upgrade. This process is annoying and time consuming, and for the last few years I’ve been avoiding it for some good reasons:

  • On my work machine, it takes forever to setup a development environment. It’s hard to justify spending a few days doing this when you’re very busy.
  • On my personal machines, I generally have a lot of data to backup and re-organize. Not to mention some customizations that just take a long time to re-implement.

There are obvious reasons why this problem hasn’t been solved. It’s difficult to replace the core of a system when a user has done all sorts of neat tweaks and changes. Some versions of some programs might not be supported anymore. And a great many programs all work together and depend on each other. It’s a daunting task to figure out the upgrade paths.

On Friday, I wanted to upgrade my work machine from Ubuntu 7.10 to 8.04. There are some tweaks and fixes I wanted to try. This would normally involve the following:

  • Backup everything I care about.
  • Wipe the machine, install the new OS with the partition scheme I want.
  • Install all the apps I had and restore data from backup. Re-import everything, and make life happy again.

That’s a pain. With Ubuntu, in the “Software Updates” screen, there was a button to upgrade to 8.04. I backed up my personal settings, and gave it a shot. After the program had downloaded all the files it needed; it installed them, resolved dependencies, and told me about things that changed. Any files that it needed to upgrade that I had changed, it let me choose what to do. And then it restarted.

It came up, perfectly. I can hear a few people applauding the success. Maybe one or two people shouting out in excitement.

That’s not too bad, though. I mean, I didn’t really have anything too crazy on that machine.

Yesterday, I tried the laptop. This machine was completely customized. With startup scripts that automatically decrypt partitions, custom applications, and all sorts of fun things. Not only that, it was sitting at Ubuntu 6.10.

I went from 6.10 to 7.04. Then from 7.04 to 7.10. And, finally, from 7.10 to 8.04. It was absolutely flawless.

After each upgrade, I could see all the new tools and functionality. During each upgrade, I could use the laptop and continue to play around - until it was time to reboot.

Today, I jumped on my server - I wanted to test out some web development fun. Everything was ridiculously out of date, and I couldn’t install the software. I needed to upgrade the OS, but it was running FC4. This means I’d need to spend some serious time to upgrade it. It was annoying. My expectations had been reset. What used to be normal, was now a pain in the ass.

I used to think the only real way to accomplish steady OS upgrades was to treat the OS as an image, with an exposed API for applications. Much like a firmware image. After thinking about this solution from Ubuntu, I now realise how wrong that was. This is a much more flexible and elegant solution. It thinks forward to solve a problem you have to deal with no matter what - how every application on a machine works together - which versions play well with others, and how to migrate them all.

This is a huge time saver. It’s a daunting task that’s been completely trivialized by Ubuntu. Congrats to the Ubuntu team for this major success - I can only hope the rest of the major OSes follow with such a well done implementation.




How to make great coffee by Brett @ 10:02 pm on 19.05.08

Coffee.

Already, I can picture some people wrinkling their faces in disgust, and others leaning forward in anticipation. This has to be done, though. I am convinced that there is a massive coffee conspiracy going on, preying on the ignorant consumers of coffee.

Until a few months ago, I was a very casual coffee drinker. I’m not a fan of the legendary Tim Horton’s brew (I’m sure some people audibly gasped at that,) nor am I particularly attached to Starbucks. I’ve only had a few cups of truly excellent coffee, and always in pretty random places: A Vietnamese restaurant in Ottawa, a little cafe in London, a market booth in Vancouver, a coffee roasting shop at the back of a bike store in Whitehorse. The goal, of course, is to have fantastic coffee all the time.

When I have a good cup of coffee, I don’t drink it for the caffeine: it just tastes fantastic. It’s the promise of these few and far between cups of liquid gold that keep me from giving up on the drink as a whole. A bad cup of coffee is like drinking hot, sour acid.

Let’s talk about coffee for a minute. Coffee isn’t that complicated. There’s a coffee plant. This plant has berries. When the berries are ripe, you pick them, and take out the seeds (most berries have 2 seeds.) These seeds are then fermented to get the coating off the seed, and then dried. Check out the wikipedia article for more information. What you’re left with are green beans.

The old, ignorant Brett would occasionally buy a pound of roasted coffee at a time, and grind it before use. It wasn’t stellar coffee, but it was pretty good. I didn’t write home about this coffee. A pound isn’t very much, but costs a fortune; something in the range of 15$. To me that’s just ridiculously expensive, but I had no alternative.

Generally, you can keep roasted beans for a week or two before they start to lose their flavour. I don’t drink enough coffee to make it through a full pound in 2 weeks - so I was spending that much money for coffee that I know wasn’t at it’s prime. What do you do? Throw away the coffee you already bought, even though it isn’t very good? Or use what you have, although since it’s not as good, you don’t really want the coffee at all?

Complicating all this is how dark the coffee roast is. Sometimes, you’ll want a nice dark roast. Or, sometimes you might want a lighter roast for more of a caffeine kick. It depends on what you like. When you buy from the store, each company has a different rating - depending on a type of bean, you might want a different roast. But you can’t really experiment with how much the beans are roasted - you just buy them from the store and hope it’s what you like.

That’s why I was an indifferent coffee drinker. And then an event happened which transformed the old Brett into the Brett you literally see before you. Har har.

Chuck offered to make me a cup of coffee from beans he roasted himself. It was fantastic. He mistakenly offered me as many cups as I’d like; I’m pretty sure I had some 20 cups of coffee that first week. The coffee was roasted only a few days before consumption. Smelling the beans alone is a treat. In fact, after the first week, I felt bad for drinking so much of Chucks coffee; for about 2 weeks, I just kept smelling the ground coffee instead of brewing a cup. I did it, knowing full well how ridiculous it was to walk over to Chuck’s desk, just to open up his jar of ground coffee and smell it.

It wasn’t long before I decided that I was going to get into this whole “roast your own beans” business. The coffee was just too good to pass up on, and it wasn’t fair to continually drink Chuck’s coffee. I am very happy that I decided to get into this, as it’s made my coffee drinking experience much more enjoyable.

I assumed this process was both elaborate and expensive, and that Chuck was being extremely generous. While it’s true that Chuck is generous, it turns out that roasting the coffee beans yourself isn’t costly. In fact, it’s ridiculously cheaper than buying the beans already roasted. If you drink coffee regularly, then it’s the most cost effective solution. That it’s the best coffee you’ll ever drink is just a nice plus. This is an easy example of how doing something yourself can save you money and yield better results.

Maybe price isn’t your only concern. I would completely agree that it’s not worth the effort if the coffee is as good or worse than what you have already. A couple of points to consider:

  • Green coffee beans will last for years with no degradation in quality.
  • Green beans cost about 2-5$ per pound. You can buy them in bulk. 30 pounds for 100$ of Fair Trade, Organic Columbian is a pretty decent deal.
  • The cool factor is quite a bit higher when you can say you roast your own beans.
  • If you roast your beans, you choose how dark/light you want them to be. It’s very easy to experiment with the roasting to figure out what you like best. Some people mix roasts together.
  • Freshly roasted coffee tastes significantly better. If you’re going to have coffee, then you might as well have excellent coffee.
  • Darker roasted coffee actually has a lower caffeine content than lighter roasted beans. Being a computer geek, sometimes I’ll push the boundaries on how much sleep I should be getting. Caffeine helps, and if I need a bit of a boost, I can change how much I get from my coffee.
  • You can get decaffeinated green beans, if you just like the taste. (That just means that there is considerably less caffeine - not that there’s none.)
  • Roasting takes between 5 and 10 minutes. This isn’t something that takes a lot of your time.
  • You can roast as little or as much as you want at a time. You no longer have to worry about when you have to drink the beans by.
  • You can bring this coffee to work. Just get a bodum, or a drip filter, or whatever. Roast and grind enough for a week at a time, and put it in a mason jar.
  • It promotes a healthy ego, knowing you’re drinking such better coffee than those other idiots who are paying more.

I’ve glossed over something. To roast your own coffee, you need a roaster. This device is just a glorified hot-air popcorn machine. It’s going to run you about 150$. I highly recommend this one. Is it worth it? Oh, my stars, yes. If you’re saving 10$ a pound on coffee, it really only takes you some 15 pounds to pay for the roaster. Then you’re saving a considerable amount of money. You’ll also want a grinder. While expensive burr grinders are apparently pretty sweet, I have an ancient thing handed down to me from my parents which I’ve had for years, and it works fine. I’ve used a stone mortar and pestle and it worked, too. Hell, I’m sure a sledge hammer would work.

Once you have the roaster, you just need some beans. I grab mine from the Green Beanery. It’s an non-profit company, based in Toronto. Their earnings go to charities to support sustainable development. Can’t go wrong with that, I say. I highly recommend the Columbian, Fair Trade, Organic beans. They taste just fantastic.

When you’re paying around 3$ a pound for absolutely fantastic coffee, all of a sudden you can just start giving it away to friends, family, and even complete strangers. You become a Robin Hood of Coffee. Spread the joy.




And now for something completely different by Brett @ 10:00 pm on 01.05.08