Building simplicidade.org: notes, projects, and occasional rants

Notes

last update:

My usual projects involve event-driven asynchronous servers, and as a general guideline I try to make them as a set of loosely coupled components, running on the same process space. To tie them together, I create a set of extension hooks on each component. Those hooks can be used for notification, or for delegation of responsibilities. For example, in a XMPP component, the Roster controller usually has two hooks, new_buddy, and accept_as_budy.

Walk like an iron man

Matt Trout and friends came up with an idea of a small game to start people blogging about Perl. The rules are simple: blog once per week;every week.The definition of week is a bit lax, allowing you have at most 10 days between posts. Mine will appear under the Perl category, and if you want to follow just those, you can subscribe to the Perl category feed.

Merging two unrelated repositories

I keep a repository for operations-style stuff. Server configurations, Puppet recipes, old CFEngine stuff, the works. But for some idiotic reason long lost in time, my DNS setup was in a totally unrelated repository. This didn't make that much sense. Even more stupid: other stuff, unrelated to DNS, was also stored in there. So I had: a oss/ repo with the good and clean stuff to configure all the servers I manage;a dns/ repo with all the DNS configuration stuff, and a bunch of other unrelated configurations.

Moving

The server where this site was hosted is dying a slow death. I'm moving my personal stuff to a slice in the next few days, so expect some disturbance. One of the road-blocks after email is DNS. My .com, .org and .net domains are hosted at Joker, and so far I'm happy with the service. But I also have other domains in the .pt, .im, .as, and .tv top level domains, and for those, Joker is not a solution.

Slow

I'm having disk problems with the server that hosts this blog and my mail. The I/O wait time is always above 50%, and sometimes it gets to 100%. All this without I/O, at least according to iostat. I'm moving stuff around, starting with email, but things are a bit slow, and will be for the next day or so. If you really need to contact me, use the alternative methods at the top of the sidebar on my blog homepage.

Slow

I'm having disk problems with the server that hosts this blog and my mail. The I/O wait time is always above 50%, and sometimes it gets to 100%. All this without I/O, at least according to iostat. I'm moving stuff around, starting with email, but things are a bit slow, and will be for the next day or so. If you really need to contact me, use the alternative methods at the top of the sidebar on my blog homepage.

Internet archeology

This last Saturday, I was at Barcamp PT and started to talk with Nuno Moreno about games, specially online quest-style games. I remembered an old game, the Heineken Challenge, that was very popular at least here in Portugal. I'm not sure when it was online but it seems 1996 is the correct year. The problem is that 1996 is like 1BG (1 year Before Google), so I can only find about the new Heineken set of lame flash games.

Updated contacts

I've updated the small contact box at the top of the right sidebar. With a single click you can now contact me with: XMPP;email;voice call (both PTSN and Skype address).The PTSN number is actually a SIP-based VoIP number. I'm now using the amazing telephone SIP client for Mac OS X. Kudos to Celso for a nice how-to to use with my current provider.

ssh client as SOCKS server

This is probably basic stuff for some of you but it was a surprise for me. Your ssh command line client can work as a SOCKS server. Its actually very simple to use: ssh -D 5566 remote.server The -D 5566 will make ssh start a SOCKS (v4 and v5 supported) server at port 5566. You can now set your SOCKS server for your preferred apps as 127.0.0.1:5566. The connections will be made by the remote.

Forking is easy, but...

Some days ago, I forked qpsmtp repository on Github/ to fix a small RFC compliance bug. It was a simple fix, and Ask pulled it the next day. I was left with my fork of qpsmtpd without any practical reason for it. Github makes it easy to fork, but not that easy to know if I can remove my fork. It would be nice to have a way safely cleanup my forks.