One Year Review …

Posted on May 20th, 2007 in Search Engines by Russ

.. of my Best Selling Book website, Elibratto.com.

The domain cost about eight dollars. The hosting is free ( thanks to a friend). I spent about six hours writing the code and two hours on the layout; eight hours. Some clients have paid me $25/hour, and that’s the minimum a previous employer told me to accept.

So I’ve spent about $210 on this site. Let’s see how much it’s earned me…

Google Adsense for Elibratto.com? $ 0.00.
Amazon Affiliate for Elibratto.com? $ 0.00.

Currently it has a page rank of 3, and at least one first page result; for ‘memoirs-best sellers’”.

Domain renewal time is coming up; another $10. (just round figures).

Do I leave it up, and let it sit there, or do I let it die, or do I spend some more time either working on SEOing the pages or adding new things, ( more of a time investment ), or do I try a different domain name ?

I suspect a different domain name (one with actual “books” in the title ) might be better. A ten-dollar investment isn’t so bad, but another two or three hundred dollars worth of programming might be a bad idea.

What do you think?

Snort Alerts via RSS

Posted on May 19th, 2007 in system admin by Russ

IMified is getting the means to watch an RSS feed, and I myself rely on lots of RSS feeds throughout my day. I wanted to cobble together a Snort->RSS feed tool, and couldn’t find one. So I wrote a perl script- but my perl-fu isn’t what I’d like it to be. Feel free to comment on this terrible script. It does, however, validate and work.

Fed up with Cialis and Viagra…

Posted on May 18th, 2007 in system administration by Russ

I did something rash.
I created a /etc/procmailrc file:

:0
* ^Subject:.*(Viagra|Cialis)
/tmp/viagra.spam

and then a /etc/logrotate.d/spamstorage file:

/tmp/viagra.spam {
daily
rotate 7
compress
notifempty
missingok
size=100k
}

IMified

Posted on May 17th, 2007 in Webmastering by Russ

I want to like IMified. I think it’s a terrific idea; a way to combine AJAX and IMs; that’s what it is, really, a structured way to proces REST requests through your IM client.

Unfortunately, even with the plugins, it’s not very helpful to me. The most helpful ones would either be the network tools (ping, traceroute, etc) or the Basecamp tool- but unfortunately both of those require that I “push” the data to them. And honestly, I’d just as soon open a terminal window and use traceroute there. Or just go log into my basecamp account.

What would really help would be a rss feed tool, or some way for a service to send me an alert; I can totally see a place for Nagios to alert me via IM when a machine is down, and if it’s easier than the nagios plugin to configure, that’d be awesome.

IMified; keep an eye on it.

Encryption

Posted on May 16th, 2007 in system admin by Russ

I used to work for a self-proclaimed genius. One thing he drilled into my head, however, was that “one random pass is good enough,” because you couldn’t really get more random. And as a corellary, he only believed that we needed to encrypt things once; you take a document, or a password, or whatever, and encrypt it, and it’s essentially unbreakable.

I’ve been taught differently now. Basically it’s true that undoing encryption hasn’t gotten much easier, but it might be difficult to survive a dictionary attack where they use the same encryption on your password that you used; the goal is not to find out what your password is, but rather to get past the password. So this author recommends encrypting the password ten times. What that would do is essentially multiply-by-ten the time it would take to build the password list. ( They also recommend several other steps; I recommend you read their article). And it also multiplies by ten the number of keys the cracker has to try; one for each level of encryption.

Top Five Essential Practices When Developing Software

Posted on May 16th, 2007 in Webmastering by Russ

Basil Vandegriend has written about five crucial practices when you’re developing software. Let’s take a look at what he has to say.

  1. Automated Tests
  2. Version Control
  3. Refactoring
  4. Repeatable Build and Deploy
  5. Communication

Obviously he’s coming from an Agile mindset. Agile methodologies are essentially to rewrite the specs in terms of “tests” and write those tests as scripts, break the code up into small pieces to match the tests, code quickly, and code in order to successfully pass those tests. And then go back over the code and refactor, tighten and clean up. Pretty straightforward.

That’s why he has the two items “Automated Tests” and “Refactoring;” they’re pretty much straight from the Agile handbook. And if you’re coding quickly, it’s important to run your tests frequently. And if you’re running your tests frequently, you might as well automate them. That way you can just happily burble along, coding up your test-hurdle-jumping scripts and just watch your email for the broken alerts. In fact, I think “Repeatable Build and Deploy” is right there along the automated tests- building and deploying should be as straightforward as typing “make” or “svn export (url);” the fewer different buttons you have to push, the more likely you are to push those buttons.

Don’t get me wrong; I totally agree with him about “automated tests,” “refactoring,” and “repeatable build and deploy.” However, his background and mindset pushes these items into his top five list. I agree for “automated tests,” and for “build and deploy” but I’m not so sure about “refactoring.” Because I tend to plan more in advance and try to figure out the functions and classes I will be needing, I don’t think refactoring is as high on my list.

“Version control” is an excellent suggestion; I really like subversion. I tend to forget stuff, so if I can figure out from the logs what I checked in on a particular day and what the log was (as well as any file changes), then I can figure out where I’m going a lot easier. Especially if you, like me, tend to work on projects and then drop them off, and then work on them after a while. And it makes “rolling back” a change very simple, in those rare (heh) cases where the client changes their mind.

Basil closes with his strongest topic; communication. I think this is hands down the most important essential practice when developing; whether it’s communication with the client or communication with other team members. If you don’t communicate with your clients, you won’t be needing those unit tests or the rapid deployment. If you don’t communicate with your teammembers, you won’t be able to pass your tests regularly. Communication really is the glue that holds the project together.

I think Basil did a good job with these five practices. While I don’t think I could come up with a better list, I’m not sure about his ordering, which, honestly, could be a solid oratory practice.