Myles Braithwaite

Installing Evernote on Ubuntu 9.04

Evernote is a note taking service that has clients for Windows, Mac OS X, iPhone, and some other systems I don't use. Which is great but I doesn't support Linux.

The installation process is really simple just install Wine and download Evernote 3.1 for Windows (not the beta). Next just type in wine ~/Downloads/Evernote_3.1.0.1225.exe and follow the normal installation process.

Evernote in Ubuntu <span class=9.04 data-downloadable="true" >

Evernote is really cool, but as you can see from the screen shot above, it doesn't look so good. But I am impressed though that Wine added the Tray icon to my Gnome notification area.

This was my presentation at the October's GTALUG meeting. You can view it on Slide Share and as a PDF.

So you want a personal website?

So you want a personal website?

What do you want to do with your website?

What do you want to do with your website?

This is the first question you want to ask yourself, What do I want to do with my website? What is the main subject.

Single Purpose Web Sites

Single Purpose Web Sites

One purpose idea.
The idea behind a single purpose website is one idea.

Take as an example the only purpose for this website is to show the current day of the week.

Here is another example

Requirements for a Single Purpose website.

Their is minimal requirements to run a Single Purpose Website. You will need basic knowledge of HTML (or any WYSIWYG application like and almost any free web host.

Journal (or Blog)
Content that is updated on a regular bases

A Journal or Blog is has content that is updated on a regular bases. is an example of this.

The famous is an example of content that is updated on a daily bases.

Example of Blog software.

Their are many Open Source blogging software avaliable on the web.

  • WordPress is kind of the industry standard blogging software. The also have a hosted version on
  • Movable Type is probably my favorite, it generates static HTML files for the blog posts. But the administration interface it a blotted Perl and PHP thing that uses a lot of processing power.
  • PyBlosxom is a Python based blogging software that uses CGI.
Requirments for most blogging software

To run most blogging software you will require a dynamic language and a database (jekyll only requires it on your workstation). One nice thing is that most blogging software have large communities for support and extensions and are well documented.


Be ware of blogging software that allows for large customisations, like WordPress each plugin could double the amount of queries run on your database.

Articles or Documents
Articles or Documents

These can be Technical documents, white papers, agenda items, meeting notes, etc. One thing to keep in mind when looking for a sutable software is that searching is extremly important.

Design Explorations by 37signals
  • MediaWiki is a wiki software used by Wikipedia.
  • DokuWiki is a flat file wiki software.
Non-wiki based Document Systems.

If you are looking for something non-wiki-based take a look at Plone and Alfresco.

Should I host my website…?

Now that you found a suitable software you should figure out where to host your website.

Home Server
Bell Sucks
Rogers Sucks
<span class=ISP in Canada Suck data-downloadable="true" >
Free Dynamic <span class=DNS Providers data-downloadable="true" >
Shared Web Hosting

NearlyFreeSpeech is awsome.

Google Chrome Frame

This week two Mozilla Foundation executives, Chairperson Mitchell Baker and Mike Shaver Vice President Engineering criticised Google for their Chrome Frame, an Internet Explorer add-on that allows the use of the Google Chrome's layout engine instead of using Microsoft's Trident layout engine.

Mike Shaver is criticising Chrome Frame for loss of security controls and features.

Running Chrome Frame within IE makes many of the browser applications features non-functional, or less effective. These include private browsing mode or their other security controls, features like accelerators or add-ons that operate on the content area, or even accessibility support.

And Mitchell Baker is criticising Chrome Frame for the loss of control from the users perceptive.

What rendering engine do you end up using? That depends on the website now, not on you. And if you end up at a website that makes use of the Chrome Frame, the treatment of your passwords, security settings, personalization all the other things one sets in a browser is suddenly unknown. Will sites you tag or bookmark while browsing with one rendering engine show up in the other? Because the various parts of the browser are no longer connected, actions that have one result in the browser you think youre using wont have the same result in the Chrome browser-within-a-browser.

I agree that the issue of security of Chrome Frame is a big one. But from the perspective of a web developer this is the greatest thing that Google has released in a long time. One issue that I run into writing web applications is cross-browser support because most business management web software (CRMs, ERPs, Accounting, etc.) have be design to work with IE 6 (and don't work with a modern web browser) it is difficult to tell someone you will have to open Mozilla Firefox or Google Chrome to visit the web page. So I have to spend almost half my time writing IE support.

One way around this issue is the Firefox add-on IE Tab (which allows the user to render a web page using the Trident layout engine instead of the Mozilla's Gecko layout engine). This plugin had a major design flaw it was targeted to the Power User which meant it was extremely hard to train non-technical people to use the plugin.

Google Chrome Frame has taken the need for the user to switch the Layout Engine and has put that power into the hands of web developers (which I admit is a bad thing). All I have to do is add a simple meta tag to the <head> of the base template:

<meta http-equiv="X-UA-Compatible" content="chrome=1">

I don't think Google Chrome Frame is an elegant or technically sound solution but it is a step in the right direction and hopefully it just might make Microsoft and more importantly business management web software think that maybe they should start support the modern web.

Last night PyGTA was a Exceptional Conditions round table, like most PyGTA meetings it went philosophical side of programming.

My personal philosophy, in web development, is to log exceptions, not found pages, and performance to almost extreme levels. Then weekly I take the logs and analyzes them with a script which puts them into a database, which groups the results. If an error happens more than five times in the given week the script creates a ticket in the issue tracker for me to work on later. I log all not found pages by real people (not search engine bots) to try and understand why they navigated to that page. The performance log is how long the system took to generate the page and SQL queries and time it took to execute them.

Mike took some good notes so if you are interested you should definitely check it out.

Asgard CMS

When I first started developing this website I always wanted to release the source code. Over the months only a select few (the ones who emailed me and asked) have received any code. I have started to release the project slowly at Gitorious under the team Asgard Project. I also bought the domain (nothing to see yet) for documentation.

My hope is that someone will find it useful.

Why do we need SEO?

Today I received the following email:

From: Petr ******* - File Extensions Resource <****.*******>
Date: July 15, 2009 3:38:49 PM GMT-04:00
Subject: Site suggestion - File extension library

can you please add a link to our website at your page as a useful computer file extensions resource?

Our site URL:
Large file extension list and file types resource site.

Detailed site description: A huge file extension list including easy-to-understand descriptions and associated applications. Quickly search by extension, view common and most popular file extensions, and click to extension categories including audio and music files, multimedia, graphic and image file types and others.

I look forward to hearing from you soon.

Thanks a lot


I took a look at the email headers and found this X-Mailer: LinkAssistant ( A quick web lookup brought up an application called LinkAssistant and one of the features is:

Quickly address all partners in personalized emails.
Professional SEOs know how to approach owners of high-PR websites, ask them for a link and have huge chances to get it. You're even smarter with LinkAssistant. You will quickly find hundreds of relevant high-quality websites, instantly send out piles of personal link requests and convince site owners to link to you.

I am not a fan of SEO but this is just crossing a line. A lot of people more intelligent than me have weigh in one this topic but I am going to reiterate one idea: If you write good content Google will index your site and give you a high page ranking.

90% of SEO is simple rules for building clean HTML. The other 10% is that SEOs are really just life coaches who need to transform their clients into something awesome that people actually care about. What you really need to optimize for is being awesome. And that's a bit harder than pulling some SEO out of your magic bag of tricks.

A Django Intranet

29th April 2011 I have started working on a CRM application called Frigga

At work I started developing a intranet, nothing to complicated just an address book, microblog, timesheet, and forum. I knew from the beginning of development I wanted to release the final project open source. But it was developed in the monolithic approach (one project for multiple ideas) so instead I am releasing one sentence ideas:

  • django-blogs: A multi-person blog similar to MovableType.
  • django-bugle: A microblog. (This isn't my originally code I forked it off Simon Willson's Bugle Project and made it a more portable application).
  • django-calendar: This is a fork of my Asgard Calendar.
  • django-contacts: An address book application we are using to keep track of employee contact information.
  • django-forums: A Django Forum application.
  • django-issues: An issue tracker.
  • django-projects: An internal project tracker.
  • django-timecard: A timesheet without projects or issues.
  • django-timesheet: A timesheet for projects, tasks, and issues.
  • django-voting: An Apache Style voting application.

I still have to release django-voting, django-projects, django-forums, django-calendar, django-bugle, and django-blogs which will probably be some time next week and I also want to do a Pinax style release at the end of the month.

Adam Savage’s Colossal Failures

Ryugyong Hotel in Sojang-dong

I don't know, I'm making this up as I go.

Sorry for the second Adam Savage related post, but I thought this one was interesting. Early working as a consultant I found myself saying yes to a project just for a paycheck (or to show my parents why I didn't need to stay in college) even though I really couldn't do what the client is asking for; but I would get the project done.

One time I got a really simple project from a new client, the project was so simple and I had so much school work the project got pushed to two night before it was due (which was the same day as an exam). They were using a custom web framework with no documentation or even comments in the source code and I couldn't finish on time. Around 6:45 am i left for school with the project unfinished. I got to school around 7:00 am took my exam finished by 10:00 am and went to the library to write an email to the project manager and tell him I couldn't finish and I was sorry. While instead of doing the write thing I went home and fell asleep and didn't wake up till 9:00 pm. Where in my email inbox was an email from my project manager which wasn't really good, but I dissevered every word in that email.

Since then I stop taking project I didn't have the time to finish. But this situation taught me two really important thing about myself: one I will always fail horribly at some point and two I will always learn from the horrible failures.

Failure is always an option.