Be Careful With Instagram Photo Maps

Yesterday Instagram was updated with several new features, including one called “Photo Maps”. It will (after your approval) show all your geotagged photos in a map, allowing you (and anyone who can see your profile) to explore your photos in a nice map that shows where each photo was taken. But you should be careful when enabling this feature, and here’s why:

Continue reading →


Hello there. It’s been a while.

I’ve been planning to start writing again for quite some time. But every time I thought about logging in to Wordpress and using that horrible editor it has, I simply decided to do it later. I even tried a few blogging clients, but they’re not for me.

Recently a lot of sites I read have been moving to static engines: Octopress is everywhere, Marco Arment published Second Crack. I’ve been slowly falling in love with Markdown and I have a lot of experience with PHP, so I decided to try Second Crack first. I started modifying a few things on it to fill my needs, but soon enough there were so many changes that it made more sense to just write my own engine, and that’s how Crema was born.

As soon as Crema reached a “working” state, I started to recreate this site’s template from scratch. It’s based on Cleanr, but I had to rewrite everything so it would work as I wanted (for example, the layout is now based on media queries, try resizing your browser window or opening the site in a mobile device and you’ll see). Then I decided to reboot the blog, since I didn’t write anything here in more than one year. I kept some old articles because they still get a fair amount of traffic and/or are still relevant, but for the most part I’m actually starting over.

So without further ado, here’s my new site. I really hope you enjoy it, and if you do please consider subscribing to the RSS feed!

My First Open Source Project

One of my New Year’s resolution for 2011 is to publish my first open source project, and that’s what I decided to do today. One of the projects I’m working on (a WordPress site) needed a sidebar widget that looked like a calendar, with each cell being a month showing how many posts were published on that month. Since I couldn’t find a plugin with that functionality, I decided to write my own. After I finished writing the plugin for the project, I realized that it was fairly simple to make it more generic and publish as a WP plugin.

Continue reading →

Using OAuth with Twitter in Cocoa/Objective-C

Lately OAuth is getting pretty popular. Several websites are adopting it as the preferred authentication mechanism for their APIs, and most of them as the only one. So what exactly is OAuth, and what does it do? According to the official website:

This is what OAuth does, it allows the you the User to grant access to your private resources on one site (which is called the Service Provider), to another site (called Consumer, not to be confused with you, the User). While OpenID is all about using a single identity to sign into many sites, OAuth is about giving access to your stuff without sharing your identity at all (or its secret parts).

Basically, OAuth is a way to authenticate to a webservice without having to store the user’s password, and in most cases without even having to ask the user for it. Twitter adopted OAuth for its API, and as of August 16th, it’ll be the only way to use the API. In this post I will explain how to use OAuth to authenticate with Twitter in Cocoa/Objective-C.

Continue reading →

Using (and sharing) a VPN connection on your Mac

Update (2011-05-07): I added a Troubleshooting section at the end of this article, grouping together several common problems (and solutions) people posted in the comments.

First of all, sorry for the lack of posts, I’ve been kinda busy lately. I finally updated my development machine to Snow Leopard (I was on Leopard 10.5.7) and I took the opportunity to sort and organize all my backups, documents and stuff. I’m still not really done with my backup procedures, but at least I’m covered in case of a crash (after the capacitors incident, I decided to take my backups more seriously).

Anyway, one of the things I always wanted (and finally had time) to do was to setup my own OpenVPN server. In case you don’t know, VPN stands for “Virtual Private Network”, and it’s a way to have your own secure network no matter where you are. Whenever you’re at a cafe or an hotel and want to make sure no one can take a peek on what you’re doing (yes, it’s pretty easy to do that) you need a VPN. Having a VPN server can also help you circumvent geoblocking, if that’s what you’re up to.

I decided to write this article to share the experience I had configuring my own VPN, specially when I wanted to share the connection with other devices in my network. If that’s what you want to do, read on and I’ll try to explain what I did and how I did it.

Continue reading →

The Day My Video Card Exploded

Ok, I may be exaggerating a bit. My video card didn’t literally explode. Here’s what happened:

Yesterday I was working when my computer froze. “Well, sometimes it happens”, I thought, so I tried rebooting it. It appeared to start normally, then nothing. Mac OS just froze at the login screen, and trying to boot Windows gave me a BSOD. I managed to boot OSX in safe mode and everything appeared to be working: my hard drives were OK, apps were running, no errors. So I turned off the computer and tried to turn it on again 10 minutes later. This is what I saw:

Well, maybe my monitor is out of tune.

“So it must be something with the video card”, I thought. I opened my computer case, popped the video card out, and started inspecting it. Soon enough I found the culprit:

Yep. Three beautifully blown up capacitors.

At first I panicked. This is my work computer, it had to be working again ASAP. I started searching online for a new video card, but since I live in a (kinda) small city, video cards are not only really expensive here, they’re also hard to find. But I had no option: I needed it working, so I was convinced to get a new video card first thing in the morning on the next day.

A couple of minutes later I tried to google “blown up capacitor” just to see what kind of results I’d get, and I noticed this is quite common. These capacitors are pretty bad quality and are prone to explode, specially in the video card I have (it’s a XFX Geforce 8600GT): the ones that blew up sit right in front of the cooler’s air escape, so the cooler is pretty much blowing hot air on them all the time (what a great design, huh?)

I found some people saying that they’re pretty easy (and cheap) to replace, so I decided to give it a try. What the heck, the card was already dead anyway. So I woke up this morning, went to a local electronics store and bought three capacitors to replace them. I tried to do it myself, but my soldering iron was not good enough for the job (I could fry the card), so I ended up going to one of these places where they fix TVs and stuff and asked them to replace the capacitors for me. After a few minutes they gave me my card back with the new capacitors:

Now we’re talking.

Guess what? I put the card back into the computer and everything is working again! I could not believe it: I did decide to try replacing the capacitors, but I was pretty much expecting nothing, already prepared to spend more than $250 in a new video card. So I ran a few tests and it all seemed to be ok. I worked all day on the computer and it’s perfect, as if nothing happened.

Total cost to repair the video card: about $3 for the capacitors, and about $2 for the guy who soldered them for me. And, of course, the satisfaction of knowing that what seemed like a stupid idea did actually work.

Now just try to imagine how many video cards that could be fixed with five bucks and a few minutes of work end up in the garbage…

The Inevitable Hello World

I know, it’s a cliché to start a software development blog with “Hello World”, but I couldn’t resist. Anyway, welcome to my blog. My name is Rodrigo Sieiro and I’m a software developer. If you want to know more about me and what this blog is about, check the About page. Go ahead, I’ll wait.

Back? Great. I created this blog (and by “created” I mean the subdomain and the template) in August 2009, but I never really started it until now. Usually I’m just too critical about myself and I always think that everything I write is not “good enough” to publish. But then I realized that I’ll never get to a point where I consider my posts to be “good enough” if I don’t start writing. So I decided to start posting anyway, hoping that I’ll get better with time.

My plan is to start with at least one post a week. If I manage to do that for a while, then I can start writing more. It has been almost a year since I started my company and I really regret not documenting all the ups and downs I’ve been through. Well, there’s nothing I can do about the past, but I can start writing right now. And that’s exactly what I’m doing!