December 2009 Archives

Catalyst, MySQL, SQLite, H::FH, UTF-8 and more

I tried to update an online website with some changes. Generally, I run a production and a testing environment. Recently, however, I moved the code from using SQLite to MySQL and did not create a testing DB, so changes that require changing the text on the site are done in production. Not good? I know!

So the website is built in Catalyst. Originally used SQLite and then migrated to MySQL (which had to be done manually). It uses HTML::FormHandler to display the forms, wi…

Perlbal in less than 5 minutes

Perlbal is something I always wanted to learn. A recent DDOS made sure I learned it in an hour or so. Apparently the regular stuff take about 4-5 minutes with it. This post will try to make it shorter.

Suppose you have three servers:
Web1 - webserver number 1 -
Web2 - webserver number 2 -
GW - your gateway server, which you want to use as a reverse proxy for Web1 and Web2.

What you basically need is 2 things:
- Perlbal configured for Web1 and Web2.
- Web1 and Web2's Apache (which is what I'm us…

Testing for Fun and Profit


Yesterday I presented him the idea of tests and showed him Test::More. Yo…

Presenting Module::Starter 1.54

Module::Starter 1.54 was recently released. I felt like blogging a bit about it.

Module::Starter is one of my favorite projects in the Perl community and on CPAN. I use it whenever I want to start a new module or program. It's very simple (read: beginner-friendly), modest and provides what I don't feel like doing myself. It has boilerplate files, text and tests and keeps updating those with habits that are considered "best practice", such as ="…

Please stop ignoring tickets

It's a lot of fun to contribute to other people's code (especially code you're using) and it's very fulfilling. Some people say it's a downer when your code isn't accepted, and I can understand that. However, the serious downer is when your code gets ignored.

When I go over a module, I go over the ticket list. When I see a ticket from over a year and it's still "new", it disappoints me and when I contribute to a project and it takes six months to get a reply, it disappoints me.

I know there are also different types of patches. Some of them complex and take time to test, check,…

Security by Obscurity, DLC style


Rapidshare deletes illegal files, so instead of sharing Rapidshare links, sites nowadays apparently started sharing .dlc files (or so I've heard). DLC is an encrypted container format. It is very very stupid. I'll elaborate.

Let's break it down:

  • Only one server decrypts - single point of failure.

  • Disregarding the necessity for internet, this binds you to specific programs that have the keys hardcoded in them to be able to access the server.

  • The protocol is secret, the key is secret, the programs are cl…

Tests Are Divine

One of the first posts on my old journal (which I still don't know if I want to copy the entries here) was entitled Tests are Heavenly. In that post I wrote about how I started adopting TDD for administration purposes.

Recently I've been getting CPANTS reports (<3 CPANTS!) on my WWW::FMyLife module. At first I thought my tests were off. Yesterday I finally got down to take a c…

About Sawyer X

user-pic Gots to do the bloggingz