Posted on Aug 27, 2008

What does l10n, i18n or m4 mean ?

I have never understood what l10n stands for, nor i18n, nor m4 for that matter. But reading a good online book about autotools, there are a couple of words explaining that in fact m4 stands for Macro, which is m+4 chars. l10n is localization written as  “l+strlen(ocalizatio)+n”. Fun. Since I was on vacations while I read this, I had time to write a bash script to do this automatically while enhancing my bash skills. Here is the script:

#!/bin/bash

STRING=$1
STRLEN=${#STRING}

A=${STRING:1:$STRLEN-2}
echo ${STRING:0:1}${#A}${STRING:$STRLEN-1:$STRLEN-1}

Try running internationalization on it.

Posted on Aug 4, 2008

Howto Tracks GTD on Ubuntu Hardy

As I (re)evaluate my GTD workflow, I’ve been testing a couple of applications that may help me increase my productivity while becoming a distraction or burden to manage. The next one on my list is Tracks. I decided to put forward a quick howto because it might not be that trivial for some users to git this running with Ruby on Rails.

So tracks going on your Ubunty Hardy you just need to install a few packages, most importantly ruby, ruby gems and sqlite 3 support. Then you just need to enable the sqlite3 gem for Ruby on Rails. Copy paste commands below:

sudo apt-get install rake rubygems libsqlite3-ruby
sudo gem install sqlite3-ruby

Then just follow the instructions on the tracks website. But, if your are lazy as me you can just copy paste the information below, which is a nice quick cheat sheet:

Get tracks, unzip into a folder. Go into that folder and edit the configuration file, making it look like the example shown here for sqlite3:

gedit config/database.yml
development:
adapter: sqlite3
database: db/tracks-dev.db

test:
adapter: sqlite3
database: ":memory:"

production:
adapter: sqlite3
database: db/tracks-main.db

Change a variable in config/environment.rb by putting whatever in it:

gedit config/environment.rb
SALT = "MakeThisYourRandomPhraseToGenerateSalt"

Build it:

rake db:migrate RAILS_ENV=production

Run it:

./script/server -e production

And that’s it, you should just be able to point your browser at http://localhost:3000 and give it a try. I personally don’t think that Tracks is my cup of tee, but it’s worth a shot.

One a side note, this is probably my last post before my summer break, so I’ll be back in a couple of weeks, I hope.

Posted on Jul 26, 2008

OpenID back online

Read the title. Test posts are always welcome. Nothing else to see, move along.

Posted on Jul 26, 2008

A usable dark theme for Ubuntu

After reading this entry on planet gnome, I thought to myself: “Another try at fail”. I like dark themes. Dark themes are soothing on the eyes, and at least for me, tend to make a much better work environment because they annoy less. Hey, my blog theme is dark, I like it.

Dark Theme

After using apt-get to install the ubuntustudio-theme package, I was amazed at the first theme that bring dark windows with light background not compromising usability for a dark theme. Don’t take my word for it, here’s a screenshot:

So far, every dark theme I encounter before is a try at fail mostly because they are not usable. Attention is brought to lines, row or text, like Gtk TreeViews in evolution by using a bold font on a dark background, or a little icon that glows just a little bit more than the rest. This is hardly usable, since you fail to get the visual hints needed to quickly parse through an inbox for example. The same goes for the desktop calendar. Try a dark theme and find your events on it and let me know.

This one doesn’t fail like the rest. I’m not saying it’s a perfect theme, I’m not sure about the window borders (too thick), or about the icons, or even the bright blue highlight colors (but it’s customizable). I’m gonna stick with it, play with it some more, and be happy for a while.

Posted on Jul 22, 2008

The sounds of procrastination

You know your life has taken a wrong turn when you spend more than 15 minutes listening to white noise.

Posted on Jul 20, 2008

Taking Epiphany for a second (default) spin

Since I upgraded to Ubuntu hardy, I’ve been trying to give Firefox 3 a fighting chance, mostly because of all the hype around it, along with a couple of bumps with Epiphany.

With Epiphany using the gecko backend, it was hard adding exceptions for every website using self-signed certificates, or broken certificates, including my own, due to the interaction which was covered in Firefox but no in Epiphany. I even started my own Certificate Authority (it’s just a bash script). All of this made me give Firefox a try for a while..

But, after a while, I have come to dislike all the things that made switch to Epiphany in the first place. It’s slugish, it eats all my memory, and makes me squirm in pain…

On the other hand, Epiphany feels lightning fast, snappy and doesn’t eat all my RAM. Meanwhile, with the updates in Ubuntu Hardy 8.04.1 adding SSL exceptions is not a broken process that equals fail. It shouldn’t be easy though, but it should be doable.

Does anyone have any hard facts if the page rendering is faster on Epiphany than on Firefox ? Or is that just a “feeling” people get ?

I can only wait to check out Epiphany with webkit! In the meantime, I’ll take it as it is, and make it my default once again.

Posted on Jul 17, 2008

Setting up camp

The move is nearing completeness. My blog has been up and running for the last couple of days, and I’ve been taking the time to test a couple of features on my provider. The move was a seamless handover, because I was able to setup all of my services before the move, up to a point which was only necessary to change nameservers. The largest chunk of time was actually setting up a couple of ssl configurations, which wasn’t in the original moving plan.

I’ve also managed to use my provider’s one click install for wordpress, but I had to manually update to 2.6, which works great over SSL in the admin interface (always nice to have).

On the down side, I had forgotten the nightmare that is operating a website through ftp and web interfaces. FTP takes forever to actually transfer files, how ironic.

Overall, the transfer was a breeze, and I didn’t see any relevant downtime. Did you ?

Posted on Jul 9, 2008

Moving time

I’m updating my hosting solution, so down time shouldn’t be a surprise while records, services and blog tools get moved. Also, if sending email results in no response, please retry, since the moving may impact mail and availability (mine that is).

Posted on Jun 18, 2008

GTD with Tomboy Notes on Linux

Those familiar with the GTD philosophy,  know that your GTD system should be a simple as possible, enabling you to actually get things done while not procrastinating with GTD tools. A system too complex or too fun is just counter productive.

After trying a couple of methods and improving on my system over six months, I can recommend a system that works for me. A while back I was using text files with the mindset of doing lists, lists and more lists. This is still true. I need to capture all my open loops, thoughts, tasks and projects into lists that I am sure I will review, where review is the key word.

But I realized that text files are not that flexible for certain things, which require some extra markup. I need something I can quickly click to access my GTD Lists. And I need a List that presents me with stuff I can do next (the next actions list). This should all be clickable and fairly dynamic, like a wiki or something similar.

Enter Tomboy Notes. Tomboy allows you to keep a set of notes only a click away. The notes enable linking and formating, and while simple, build a solid foundation for a GTD system.

Life Contexts

To get going with GTD and Tomboy Notes, I use what I call Life Contexts where different projects live, usually Personal and Work contexts. Each of these is a different Tomboy note. I do this because I generally won’t be looking at personal things at work, or work things at home. This is something that annoys me in most GTD applications, since I tend to try and keep these worlds separate, and one context just gets in the way of the other when they appear together. Most applications use location contexts, which i tried for a while, but found out that about 70% of my tasks (personal and work) are “@computer”, making the workflow suck more than less.

The Notes

My system uses one note per life contexts and two special contexts making up for 4 Tomboy notes:

  • Work ToDo List
  • Personal ToDo List
  • Short List
  • Inbox

Each Life Context Note, Work and Personal, holds projects linked to that context. There should be as many notes as contexts you need have so that the right tasks pop up at the right time.

The two remaining notes are for reviewing purposes and to increase your trust in the systems.

Projects

Projects appear within there context and should be visually separate from other projects, with a set of common fields. You should keep track of why your doing things (Desired Outcome) and what is the status of it (Current status). Work Todo List The visual separation is pretty important to me, because it enables me to quickly distinguish between projects and tasks, enhancing the review process.

Below is a sample note for your copying and pasting. Look at the image above for the formating.

===========================================================================
Improve GTD Work Flow

Desired Outcome: Get my life in order with GTD
Current Status: Draft of blog entry complete
Next Actions:

- Publish a blog entry
    - Brainstorm the content
    - Write the text
- Organize open loops on physical inbox
==========================================================================

I create projects based on things I have on my mind that require more than a few actions. The extra fields is to help me keep the eye on the ball, and employ the GTD methodology. For further insight, buy the book. When reviewing I always look at the desired outcome, and so should you, regardless of the system you use. Focus is crucial to avoid procrastination.

Personal ToDo List Items that are very short I keep on a special project which is “Minor Tasks”, both in personal and work contexts. This holds minor projects or errands that will never hold more than a couple of actions. A rule of thumb is if it only has one status (done or not done) and the outcome is the task itself with no grand plan behind it, then it’s probably a minor task.

Sometimes, when projects get too big, I temporarily keep track then in a separate notes, since I don’t want it cluttering the review process, which is the master piece of the system. But, in time this approach gets hard to manage because it makes you explicitly click the note to review project status.This increases the resistance to actually get anything done and leads to failure.

The project oriented view depending on life context makes it easy to create actions, to parse the current status of projects and quickly review them. I can quickly access my work stuff and look at it by clicking the corresponding tomboy note.

Putting it all together with the Short List

The Short List The “Short List” is a subset of things to do Next, organized by context. It’s nothing more than a subset of Next Actions (read the book). I use special formatting on the short list entries to keep track of what project they belong to, enabling a quick decision on what to do next. So they end up looking like “Project@Task”, to satisfy my GTD needs.

The special steps are to use the Tomboy linking capabilities and create a few items that help. Both Titles “Work ToDo List” and “Personal ToDo List” take me to the respective life context notes. So keep entries to your contexts on the Short List. And on each note (context) I put a little link at the top that takes me to the short list ([short list]), so I can quickly access it and check what to do next. Look at the list figures above to get the idea.

As I get things done I strikeout the concluded task, and later on, when I review the current status of each project, I remove those tasks. But I always remove tasks from the short list when done, review and update the shortlist so that it’s always clean,updated and as much to the point as possible.

The Inbox Note

Last but not least, there is the Inbox. This is not a real inbox, but rather a temporary placeholder for things you will need to review. Things on this list might end up in the Minor projects, as a new project or even in the trash can. This just assures you that you will make act on the item you put there, but don’t necessarily have the time to it right now. You can also link to this note from the Short List and make entries there to assure you that you will review it.

Trust

All of the suggestions and hints are to help you Trust Your System. By ensuring that you have all the projects reviewed and updated, and a place to check what to do next, you assure yourself that you have all the open loops covered and tied down, resulting in stress free productivity. Isn’t it great ?

Posted on Jun 17, 2008

RadeonHD (git) on Ubuntu Hardy with DRI (3d) support

Here is a quick recipe to getting the latest and greatest radeonhd open source driver for the R5XX/R600 driver series, but this time with dri support. Ubuntu Hardy already has a radeonhd package, but as expected is not updated from the git repo, and does not include the dri extensions. This is an update on previous posts for gutsy and feisty.

Install compile tools and git:

sudo apt-get install build-essential autoconf automake libtool pkg-config git-core

Install driver dependencies, now with dri deps also:

sudo apt-get install libdrm-dev x11proto-gl-dev mesa-common-dev xutils-dev \
x11proto-xf86dri-dev x11proto-fonts-dev x11proto-randr-dev x11proto-video-dev \
x11proto-xext-dev x11proto-render-dev xserver-xorg-dev

Checkout the source code:

git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-radeonhd/

Last but not least, compile and install

cd xf86-video-radeonhd/
autogen.sh --prefix=/usr --enable-dri
make
sudo make install

And you’re all set. Don’t forget to change the driver to radeonhd on your /etc/xorg.conf.
I’ll try to follow this up with the -ati counterpart… For now, go test. Feedback welcome.