Open sourcing AbsenceLetters

Not much to add.

I'm looking for freelance work, and many clients now want to check developers' github before commiting to a gig, there's no reason not to let them see my most recent piece of code.

On that note, maybe I should stop building platforms from scratch and start using open source projects. That way I'd be sure to contribute and maybe network some more. Note to self: stop being a hermit.

Project debrief: AbsenceLetters.com

I spent my free time this past week working on a rather strange project: AbsenceLetters.com, a site that lets you store messages to your loved ones, which get sent in case you vanish. The service determines whether or not you're still around by looking at your twitter feed and, if you go too long without tweeting, it sends you an email asking to manually report in. If this had gotten any traction, facebook, google+ and foursquare feeds would also have been integrated into the system to make it more reliable. SMS notifications would be used in addition to email warnings too.

It's only been two days since the launch, but the analytics panel makes for some grim reading already. Only 100 unique visitors and but a single signup - who didn't actually get around to add any contacts or write any letters. Traffic may still be too low to draw meaningful conclusions, but the writing is on the wall. Like mistrQ said on Hacker News:

I can appreciate why you think this is a problem that needs to be solved. But I can't help feel a bit wrong about it.
(...)
I think it's one of these things that is a 'good idea', but should never actually be followed through.
 
Well the software works, the domain name is paid for and an idle domain has no impact on my server's performance, so it'll stay up for the time being. But active development has been put on hold indefinitely.

However abysmal in terms of interest and adoption, however, this project was a huge win in terms of motivation. See, I have a chronic problem with shipping. The reasons are besides the point, fact is, I rarely get a project done on time. This was different. This thing was conceived, designed and shipped in less than a week. At the same time, I was doing a freelance gig which was also done a bit earlier than expected.

Looks like this year got off to an excellent start in terms of my ability to get shit done.
Now, to ride the wave...

Leaving nothing unsaid

5am.

Slowly, I woke up. There was an idea in my head. The room was dark, even though the shutters were open. Dawn wouldn't break for another hour. I crept out of bed, out of the warmth of Her presence, and tentatively stepped away. My idea needed to be made manifest quickly, lest it be forgotten. Treading lightly on the cold wooden floor, I made my way to the living room, sat on a couch by the window and picked up the laptop.

As dawn came, the preliminary work was done. It was nothing but a sketch made of computer code, but it was enough. My idea had taken root. As I went back to the bedroom, my thoughts traveled a year into the past. In that same house my grandmother still dwelt. In another city, one of my dearest friends still lived. How could we possibly have known.

Less than a week has passed since that chilly Saturday morning. Work has progressed swiftly. I just uploaded a little website, in fact, and created an account for myself in it. Every once in a while, a program will run on its server and send me an email. I'll click a link in it and nothing will happen. One day, though, I won't click on that link. I don't know when or why. Surely it'll be in the distant future. But it will come. And when it does, another little program will take the letters I've stored in its database and send them one by one.

And hopefully the people I love will find some comfort in them.

Steve Jobs didn't blog, tweet, check-in or Like

Not publically anyway. Still he was one of the most influential people of our time. This got me thinking.

I get why blogging and social networking can be so important. It's nice to have platforms on which to publish one's thoughts and from which to reconnect with long lost acquaintances. But, in the end, that's all it is: nice. It's not vital and, in the case of social networking, not at all necessary.

There's no one I currently care about whose phone number or email address isn't in my address book. No one. Me and those people keep in touch either by ringing each other up, sending each other emails, and hanging out IRL. Facebook and twitter add nothing to these relationships, save for their messaging features.

I'm feeling more and more that blogging and social networking is more about narcissism than actual communication. Getting the Like on facebook is thrilling. Getting retweeted is addictive. But what does it actually accomplish? Very little.

These past few weeks I've taken a leaf out of Job's book and scaled back my usage of facebook, twitter and the blog. Way back. Because private messages still get pushed to my phone, I find I'm not missing out on any real communication. And I get saved from my connections' shares and likes - an unholy mix of farmville, 9gag, youtube and The 99%'s propaganda.

And I'm quite liking the experience.

Starting from scratch

Powering through the Getting Started guide for Rails involves writing a blog app and at some point you have to write a dummy blog post. I found myself writing something a bit deeper than that:

Starting from scratch

Well, not from scratch exactly. I'm not really going to forget all these past ten years taught me about web design and development. What this is, really, is more of a soft reboot. While php puts food on the table, I'm learning ruby via rails.

PHP and the practices it fosters are still stuck in the 90s. Time to evolve. I'm not saying ruby is necessarily a better language, what it is is surrounded by much better practices and tools.

So, in the end, it's less about the language and more about the mindset.

How to install rails on OSX Lion

Fire up a Terminal windows and type:

sudo gem install rails

That's it.

Of course, if you're anything like me, you'll probably wonder why nothing happens. Maybe even ctrl+c / restart a couple times. Well, thing is, the installation can take an inordinate amount of time. That's just normal. If you want to make double sure your mac is actually working, just append -V to the previous command, like so:

sudo gem install rails -V

That'll print out an almighty list of everything gem install is doing, so you'll never have to wonder whether it hanged or not.
While your computer is installing what seems like the Trans Siberian Railway, grab the fattest book in your shelf and go out for a coffee*. Personally, I'm reading War and Peace. Cheers.

* You could also totally continue working on whatever it was you were working on before, but that's nowhere near as cool as lounging in a coffee shop while educating yourself and musing about what you're going to do with Ruby on Rails later.

You keep my startup dream alive

Even though freelancing gigs take up most of my time, I like to take an hour or two here and there to work on Threddie, mostly on nights and weekends.

Threddie was launched just over a year ago and it's the closest thing I've ever had to a successful business: was featured in a lot of blogs, got great reviews, gained a lot of users and some of those even went as far as becoming paying customers.

The first six months were pretty frantic, between the launch, the re-launch and the (mis)adventures with a couple local angel investors. Threddie evolved, but in so doing it kind of lost its focus. And so did I. For two whole months, I wrote not a single line of code for my little app. Users came, became customers, left. Then my transition from salaryman to freelancer became my only worry and Threddie was left on autopilot.

Still, every so often, my paypal would ring. People kept using Threddie. People kept paying for it. Every so often, I'd be reminded that someone out there was finding my app useful. Someone who cared enough to give me insightful feedback. So last May I got a moleskine just for taking notes on what would become Threddie v3. I wrote and I drew. And then I coded.

It's September now.
V3 is still nowhere near finished. I'm a freelancer with not a lot of time to spare on side projects. But still my paypal rings. Still someone lights up my monitoring page. That's who I'm coding for. Thank you. You keep my startup dream alive.

How to setup a subdomain on a different server (GoDaddy DNS)

Godaddy_dns_1

So right now I have a website that needs to run its main domain and a bunch of subdomains on one server, and a couple of subdomains on a different server. No biggie, right? I just need to update the DNS.

Trouble is, I'm not the greatest DNS expert who has ever lived. And GoDaddy seems to have changed its interface since the guides I've read were written, making things more confusing. There was a lot of head banging on walls tonight, but I finally nailed it.

So here's how to setup a subdomain on a different server using GoDaddy's DNS Manager:

  1. Set up the subdomain on the server, using whatever procedure your stack requires. On Apache you need to create or edit a VirtualHost entry. Google it if you don't know what I'm on about.
  2. Log on to GoDaddy and hit the Domain Manager. You'll see a panel with six main areas (Domain Information, Domain Enhancements, Related Products, Nameservers, DNS Manager and TLD Specific). We want to hit the "launch" button under DNS Manager, which will bring up a page full of DNS arcana.
  3. All you need to do is add an "A record" for the subdomain you're trying to host elsewhere. Other guides tell you to enter "subdomainname.yourdomain.tld" as the host, but GoDaddy will delete the domain portion and make things confusing. Just enter your subdomain name there and nothing else. Then enter the different server's IP address and save everything.
  4. Sit tight for an hour of so.
  5. Try to access your subdomain on a browser. It should be going through. If it isn't, don't panic, just wait a little longer. Whatever you do, don't start messing around with the DNS settings. Propagation takes time. Every panicked change you make adds an hour or more to the time it takes for the operation to complete.
Hope this helps. Cheers.

Freelancers, libraries, time trackers and horny peacocks.

Being a freelancer and solo founder rocks. I have no boss, call my own shots and set my own schedule.

But it also sucks. I hate being alone all day, stuck at home with no one to talk to but people on the interwebs. This is of course a very well known problem with freelancerdom, felt by those on all walks of freelancing life. It's seen its fair share of discussion elsewhere, but it's one thing to read about it and quite another to experience its harsh reality.
I have, of course, had a previous experience as a freelancer of sorts, back when I lived in Oporto. But here in Lisbon it's different. I don't have quite the same network of friends and clients with whom to get my socializin' on, so for most of the day it's just me, my mac and my cats. So when my girlfriend gets home she's like "how was your day" and I'm like "meh".
I've known since I first laid hands on a laptop that my best possible work environment if a coffee shop. I've spent the last three years actively trying to find out why. Which is harder than it seems, because I tend to get so carried away with all this being myself that I forget to do any significant observations on my own behaviour. I guess this is why time, exercise and expense trackers are so popular. It takes an objective third party for a human being to be able to accurately measure his or her own behaviour. So I got a time tracker.
All this fascinating research led to the observation of a few patterns;
  • The amount of actual work I do per sitting is two to three times greater when I'm not at home versus when I am.
  • Even at home, I tend to do more work and less fooling around when there's no mouse. Having a mouse to rest my hand on seems to encourage random browsing and clicking.
  • Remove the laptop's power cord and suddenly I do even less procrastinating. Something about that power meter going down really gets my code flowing.
  • Sit on the floor, an uncomfortable bench or just work standing up and I'm focused like some sort of hacking laser.
  • Noise plays a big part in my productivity. Ambient music is great as long as there's no discernible lyrics. Strangers talking among themselves is fine. Throw someone I know into the room and suddenly I'm hung on their every word.
  • Complete loneliness leads to random procrastinating. Having people in the area makes me feel some sort of obligation to be doing something useful and serious with my time.
I guess these patterns explain why I do so well in cafes.
But woking at a coffee shop all day has its drawbacks too. First, it can get expensive. Second, snacking all day long is unhealthy. Third, avoiding problems #1 and #2 by snacking less can get you booted (or at least given the evil eye).
That's where public libraries come in.
Yes, libraries. Filled with books, those adorable artifacts from the dark ages, but also sweet wi-fi goodness. And a very faint ambient noise. And people whose presence makes you feel part of a living, breathing world, but who never bother you. And, in many of Lisbon's excellent public libraries, you can also take a breather from time to time, walk up to the interior garden and watch the amusing wildlife doing their animal stuff.
I'm in one such library right now. I don't have to order another cup of coffee every hour, I haven't spent a cent, I'm getting work done like a maniac and, when I'm in need of some distraction, there are fucking peacocks outside.
Public libraries rule.

(download)

Time tracking

I have GOT to start paying more attention to projects' fine details before issuing budgets.
I'm on the second project in a row which I have severely undervalued in terms of time, complexity and cost.

Being an independent developer, this is about the worst sin I can possibly commit. Deadlines get blown, clients get restless and my reputation suffers.

As a first step towards mitigating this problem, I started using a time tracking tool last week (toggl.com). I'm hoping it can help me analyse the way my time gets spent and maybe develop a better sense of exactly how much (real) time it takes me to do things. The results so far are intriguing: though I'm extremely productive strictly speaking, I seem to have a problem actually sitting down and coding.

About

Indie web developer, solo founder, badass.

TwitterFacebook