Using cloud services

After 10+ years of running my own email server, I finally broke down and moved my email domain to Google Apps. In the time I ran my own server, I went from qmail to postfix.

Part of reason was that I was getting tired of maintaining the server. Although, update the software is somewhat easy, it started to annoy me when an update would break the server software (the final straw when sasl server started failing, and I was unable send mail through the mail server).

The second reason was that I had been using gmail as a backup email address, and I started looking at the functionality that google offered, like integrated contact list, calendar and email.

Now, I tried setting up my own ldap server, but the problem was to get it to seamlesly work with all my devices and other software. Never got that to work properly. Probably never look too much into it. And I never looked at how to make my own calendar system.

Having moved my email domain over to Google Apps, I must say it’s been a pleasant experience. Not having to maintain the system myself, makes it possible to focus on other stuff. The calendar and contact list integration make it possible to maintain a master list of contacts and appointments, All in all, it’s been a pretty good experience. And since Google have an imap interface to the mailserver, I can always download my emails and start up my own server again if I want to without losing any mail.

I think the only thing I have been missing is the control over the server itself. I had few problems setting up DKIM and SPF. I still haven’t been able to set up DKIM in Google. (yes, I followed the instructions, Google just don’t want to pick it up for some reason). But for now, that’s a minor issue, and I probably going to continue with this for now…

gtd – in practice

I finally caved in and bought David Allen’s Getting Things Done. Although I’ve been using the system for a couple of years now, I didn’t feel like I’ve been using it effectively. Mostly this was because it was my understanding of the system based on the summaries I’ve read about it on the ‘net (wikipedia, google etc). I felt like I was missing something fundamental.

Instead of writing my own summary of the book, I recommend people just buy it and read it. Instead, I will be focusing on how I use it in practice using emacs + orgmode + mobileorg (for iPad). I recently organized a birthday party using gtd and I must say, it was very successful.

Collecting

One of the fundamental stages of gtd is collecting everything you need. One of my problem was that I tried to collect and process at the same time. The problem is, I then got stuck in a stage in-between collecting and processing, unable to move forward. What priority does this item go into? Is it in the right order? Don’t do this.

Instead, collect. That is, write down everything that’s on your mind, no matter how insignificant it is.

Mobileorg on the iPad (also available for android) was a godsent, although you could probably use a normal pen-and-paper too. The point is, have something to write your thoughts down at any time. I could be reading a book or just zooming out on the train, and suddenly I had this thought about something regarding the party. Just write it down. Doesn’t matter if I have written it down before, or it doesn’t make sense, or has nothing to do with any of your current projects. Just write it down. It’s the collecting phase.

Once I get home, sync the mobilorg app with my desktop system, and go to the next phase.

Process

In the process phase, I go through each of the items I have collected in the previous phase. Is it part of a project (say the birthday dinner)? File it under the project. Is it just something I need to know, file it under Reference. Is it just some random thought, trash it if not useful, file it if potentially useful.

Once everything is files away, I go through the projects I have going and organize it. Are there actionable items? What is the next step for the project? Do I need to retrieve more information from somewhere (creating a new action item).

Review

Unfortunately, this is one stage I’m still not very good at. I try to review my projects at least once a week to see if there are any progress, but I know I could get better at this.

Still, by using gtd, I feel I have much better control over my projects. By taking something like the birthday dinner and organize it like a project, I never felt like I was not in control at any point. I could always go back to my list to check out where I was and what I needed to do next. And even when things changed at the last moment, it still didn’t spin out of control.

Is gtd for everybody? Probably not. It works for me given the tools I have, and it does make my life a little less stressful. I do miss something like a mobileorg for the phone, but that’s a minor issue. In general, I highly recommend the book and system that everybody should at least try.

Favours and Debt

Does helping someone out, mean that someone is forever in your debt?

There is an age old question about whether you would do something wrong if nobody would find out. The other side of that coin is, would you still do the right thing if nobody found out?

It seems to me that the highest ideal is do the right thing, even if nobody knows it you, even if someone else gets the credit. Because it’s the act itself that is important, not the effect on you. Of course this is an ideal. I must admit, if I do something nice to someone I have strong feelings for, either family or friends or more, and I don’t get acknowledged for it, it hurts. But, I also know it should not matter. What was important was that it was done, not that I get the credit for it. And maybe, my feelings for the person is stronger than their feeling for me. But that’s just means I need to re-evaluate the friendship, not the act itself.

What really bothers me is people who do something good and then expect the recipient to be in their debt forever. Now, if someone do me a favour, I do feel indebted to them, and will try to pay them back somehow. But that’s my choice, my sense of balance. I do not feel it’s appropriate to push my values on other people. I don’t think I should feel entitled to payback. If it was, I should have made it clear when I did the favour, that it came with a condition of debt. But I think most people would feel that is wrong. If you want to do the right thing, just do it or don’t. But don’t then go and have expectations on other people. Chances are, you are going to be disappointed.

It’s bothers me. That you give someone money, and expect it back (just call it a loan if you wanted it back). Or do a favour and expect payback or honours or acknowledgement. It doesn’t feel right. It taints the original act.

People should just do what’s right without expectations. It would make for a better world.

But that’s just my philosophy. What do I know?

My first Stand-Up

I did my first stand-up yesterday.

It was everything and nothing like I expected. It was scary, exciting, thrilling. Coming off the stage was an amazing high, like I could do anything I wanted. Ready to conquer the world.

I never been very comfortable speaking in front of crowds. It’s one thing to speak in a classroom or a meeting, where you are sitting comfortable among your peer when you speak. It’s another to be front and centre and then having to speak. And it’s even worse when you have to try to be funny. This was so far away from my comfort zone, the comfort zone was a dot on the horizon.

The whole event felt like a blur, like a out-of-body event, and I could see myself performing, speaking the lines, but not really being aware of my surroundings. And then, getting the first laugh, and then the second and then the applause. It felt great, wonderful. It felt like I could do something if I just put my mind to it.

It’s now almost 24 hours since I performed, and I still feel hyper about it. I want to try again, improve, fix what I did wrong, find new material, do better.

I guess I would just summarize it as, it was fun :-)

gtd

About two years ago (tempus fugit) I decided to keep a journal using emacs. Mostly because it ended up being easier to use emacs and I wanted a system which was text based and easily transported. At the same time, I ran across an organization system called Getting Things Done (GTD for short), and I started using it somewhat. I’m writing somewhat, because I’m not so sure I’ve been using it correctly. Mostly because what I know about it, I figured out from second-hand (and sometimes third-hand) sources.

I’ve finally broken down and bought David Allen’s book (the author of the system)

My problem is of course, that I have currently way to many balls in the air, both professionally and personally, and I’m thinking I’m starting to drop some of them. Not good. Need a better system to keep track of everything I’m doing and also make sure things are done.

It’s going to be interesting

Outliers

I recently finished Outliers by Malcolm Gladwell. It’s actually the second book I’ve read from him, the first one being The Tipping Point which was also thought-provoking and really interesting.

In Outliers, Gladwell is looking at how some people become successful, and what inhibits success. Starting with Canadian hockey players, going through people like Bill Joy and Bill Gates, and ending up with his own personal history, Gladwell creates a compelling case for his theory that success has just as much an environmental cause as it has a personal cause. Take for instance Canadian hockey players. At first glance, the Canadian system will pick up the best players and select them for additional training. So, the best players in the Canadian league have been groomed from the pool of their age group. But it turns out, most great players are born in the beginning of the year. Why? Because people born in January are put in the same group as those born in December. The January kids will therefore be much bigger and stronger than the December kids. And since they will appear better, they will be selected for special training.

Successful people has something he calls an accumulative advantage. An early advantage that they get compared to their peers, will increase as they get older as the advantages accumulate. Part of this is the 10 000 magic hours, which states that to become an expert in something, you have to had spent 10 000 hours practice it. An early advantage give the person a chance to be placed in an advanced placement group where they can continue cultivate subject in question. In the end, the successful person has been able to do the same thing more times than their peers.

Environment and heritage can also inhibit success. Gladwell look at the example of South Korean airline. Since Asian culture has a very strict hierarchy, where underlings do not speak up against their superiors, this create a problem for planes if the first pilot is wrong. The second pilot will not be able to correct mistakes done by the first pilot without the first pilot’s acknowledgement. Very difficult if there plane is in trouble. South Korean Airline fixed this problem by introducing English as their primary language on-board, thereby creating a new environment where all the crew were at equal social level. This fixed their hierarchy problem.

Gladwell used the example of the South Korean Airline and the KIPP Academy in New York as a way to work against a person’s environment. That is, by creating a new environment with new rules, you give a person a chance to succeed despite their upbringing. But the most important lesson from the book, I think, is that no person can succeed by themselves. There has to be certain environmental circumstances in place that gives the person a chance to succeed.

I really liked this book. This, and Gladwell’s other book Tipping Point, really makes me think about how I myself perceive the world.

One thing I’m uncertain about is, given someone the knowledge inherit in these books, can they change their own circumstances?

One of my friends wrote in her blog wondering why someone would do something they knew would make them unhappy. That is, knowing what you do is destructive, why do you persistent in doing it? I believe some people just lack the insight to actually change. To do the leap into the unknown, so to speak. Reading Gladwell’s book, I wonder if there is more.

Can a person change if they have insight enough to know what they are doing is self-destructive?

I like to believe so. I like to believe that if someone sees that their behaviour is destructive (for themselves or to others), that they can change. That we, as humans being, can make a conscious decision to change, grow, to better ourselves. That we aren’t stuck in these roles we grew up in. That knowledge is power, and in acknowledging our short-comings, makes it possible to go beyond our own limitations.

But I’m no longer so certain…

Writer’s Block

Another weekend, another blog post not written.

I’ve been trying to finish these reviews of two books I recently finished (Working Effectively with Legacy Code and Outliers). In my mind I’ve written the most brilliant analysis ever, it’s just I can’t write them down. Really frustrating. Keep writing all these notes, but there are no thread, no idea, just jumbled thoughts… Kinda feel like my life at the moment, come to think of it.

To PT or not to PT

There are two interconnected problems with keep up with exercise routines once the initial enthusiasm disappears.
1) motivation
2) seeing results
Once your initial enthusiasm for starting exercising, it’s hard to keep motivated to continue exercising, especially when you don’t see any results. One of the reasons you don’t see results, at least when you get over the initial hump, is that you don’t really know how to push yourself. That has always been my problem. I exercised on and off (that is, maybe once or twice a week) ever since I destroyed by knee and had to rehabilitate it. The problem was, I really didn’t feel the result of the exercises, but on the other hand, I didn’t know how to push myself or how far I could go.

And that’s the question, I think. How far can I safely push myself? How do I vary the exercises enough to so that I do get pushed. Now, if this was a programming problem, I would know how to deal with it. It’s my profession. I’m naturally curious about dealing with those kinds of questions. Exercising and sports aren’t really my profession. I don’t know and I’m not curious enough to find out how to push myself in that direction.

When I recently started exercising more in earnest, the question of PT came up. Should I get one? Before I could answer that, I had to ask myself, what does a PT do?

Motivation – having someone to motivate you to go to the gym is good. And it’s certainly easier if you have made an appointment with someone to get to the gym. Then again, internal motivation is probably the best. And at least, since I’m starting again, the initial enthusiasm for working out is certainly helping with the motivation.
Push you to the your limit safely – now this is something I need. Mostly because I have worked out in a gym before, and haven’t seen results. I just don’t know how to push myself.

So, I collected all the advice I could get, listened to them, did the opposite and got myself a PT.

And I’ve been extremely happy with it. It’s not just helping with the motivation. When I worked out before, I would sweat and feel the burn, but I didn’t feel I pushed myself. An hour with the PT, and I can feel I have worked out.

Having a PT, it’s like having a someone help you break down your own self-perceived limits and go places you thought you never could reach.

And it’s an incredibly liberating feeling.

Reviewing old code

I’ve been reviewing some of my old codes that I wrote about two years ago. Partly for fun, partly because I wanted to take a look at writing the MTA I’ve been thinking about for the last couple of years. Like creative writers, or any creative works, I guess, you always have a nagging feeling that your work is never done. You just run out of time. Well, the thing about personal project is, you never run out of time.

Looking at the code, I can only come to one conclusion: It’s utterly crap. Sure, it’s well formatted and it’s tested (somewhat), but below the surface is really bad spaghetti code. It’s interesting for the little reason that I had written that code four years of professional work. I thought I was better at the time. Granted, I think I have grown as a coder, but I didn’t realize that much.

I just went through C++ version of the cdb code, and all the stuff I hate in code is there. Multiple levels of for-if-loops statements. Unclear code paths. And most importantly, mixing multiple classes in the same file.

Maybe it’s the Java developer in me speaking now, but the idea of one class pr file was a really brilliant idea (OK, admittedly it’s not really one class pr file per se since you have inner classes in Java). Given a public class, you know exactly where the definition of that class is. Not a given in C++. And I’m not really unit testing. I’m system testing the code, and not even covering all the code paths. The code is hard to read because I’m mixing comments and code, with callee functions all over the place. No real story, or clear path through the code. Looking at the code, it feels like it’s written by a recent graduate from college…

Horrible, just horrible…

It was interesting to see how far I’ve gotten in the last two years. It’s going to be interesting to see where I’m going in the next two (especially if I ever get around to learning Scala or any of the other functional languages)

Upgrading server

I spent the Christmas holiday upgrading the fjellstad.org server. My old server, ishtar, had a failing hard disk, and I got the choice between replacing the hard disk or just upgrading the server. Since the cost (in terms of monthly fees and work to get everything up and running) was about the same, I decided to upgrade the whole server. So, welcome to athene.

Some of the decisions I had to make was the use of MTA and how I would organize the website.

MTA: qmail vs postfix

I used qmail on my old ishtar server, and it has served me well. The problem is, it’s no longer maintained, and to keep it up-to-date (at least in terms of technology like SPF etc), meant patching. And since I had to do several patches, and some of them didn’t really work together, it would mean hours of working through the patches. Not fun.

OTOH, installing postfix meant I had to learn a whole new software. It would, however, give me some of the extra functionality I’ve been wanting. In the end, I decided to install postfix

It’s been an interesting experience so far. I took my awhile to wrap my head around how everything fits together, and I’m not 100% clear on everything yet, but it seems to be working fine. I love the plugin architecture (I’m sorry, but patching software just to add some new functionality seems wrong on so many levels). I miss the dot-qmail functionality. I miss the fact that I can generate new email addresses by adding a dot-qmail file. Seems you can do something similar by creating a maildrop rule, but it’s not as elegant.

But all in all, I’m pretty content with the choice.

Website

On ishtar, I had decided to maintain the site outside of WordPress. Partly for vanity, partly for control. On athene, I’ve decided to let WordPress manage the whole site. Not sure I’m happy with the choice yet. Still working on adding the pages that wasn’t part of WordPress into the Pages setting. Still not sure how do my CV in a WordPress Pages. Hopefully, I can just upload my own CSS, but I’m not sure. Need to look at that. Either that, or I can just maintain the CV outside WordPress… Need to look at that further

In any case, now that I got my mailserver and website up and running, I have to try to get the git repository up and set up the automatic maintenance scripts. Should be fun