Hiding behind SPF

After playing for some time with DNS Stuff, I decided to configure SPF for mamchenkov.net domain.  I don’t have a lot of expectations, but I hope that it’ll help to fight all that SPAM that we have on the web.  As a side effect, hopefully emails to Hotmail and Yahoo! will start working again.  I don’t have a lot of those myself, but a few people who email from my server complain once in a while.

If you are interested, my SPF string looks like this: IN TXT "v=spf1 a ~all".  It was extremely easy to create using this wizard.

This is the first in a row of changes for my mail server setup.  Planned works will cover better anti-SPAM and separation of users and mailboxes into domains (right now everyone can use any hosted domain).

Let me know if you have any suggestions for improvements, or if you have noticed any problems.

April Fool’s Day on one plate or the danger of trackbacks

With every passing year more and more websites participate in April Fool’s Day by publishing fake news, announcements, products, and press releases. There’s lots of fun on the Web on any given day, but twice so on the 1st of April. There are so many of these jokes floating around, that some people even collect them into long lists with embedded ads.

While reading through one of these lists, I came across this joke about WordPress and TextPattern merger. That was a funny one. But it wasn’t the joke that got me thinking, but rather the blog entry in itself. If you scroll down that entry, you’ll see all pingbacks and trackbacks from other sites than linked to it. Not everyone understood that it was a joke. Some people took it serioiusly. And now they look like fools (isn’t it how you’re supposed to look on 1st of April anyway?). Some of them had even deleted posts that provided the pingback, but from the pingback excerpt on WordPress site you can actually see if the joke was understood or not. Morale: if you made a fool out of yourself, and proved so with pingback/trackback – don’t make it worse by deleting the content. Internet forgets nothing.

Gladly, I didn’t spend enough time on the Web yesterday to leave the trail of my stupidity. But I did so last few years, and will definitely do so in the years to come. Somehow, April Fool’s Day always gets me by surprise.

What about you? Have you been fooled? Have you fooled anyone? What’s the best prank you’ve ever pulled?

Daily del.icio.us bookmarks

Shared bookmarks for del.icio.us user tvset on 2006-03-31

MySQL misunderstanding

I’m writing this down to warn you and to burn it into my memory.

For one of my projects I am using MySQL with InnoDB tables.  Which are great, by the way.  So I have this really huge table – about 8 GBytes with few million rows – that I want to empty.  Without much thinking I start DELETE FROM mytable.  And I wait.  And wait.  And wait.  Then I go for a coffee.  I come back and wait.  Then I wait for some more.

Eventually, in about one hour, I got bored.  So, I terminate the query.  That was without much thinking too.  Can you guess why?

Right.  MySQL uses transactions for InnoDB tables.  Interrupted query triggered a rollback operation.  So, not only I just spent an hour waiting for the stuff to get deleted, but it won’t be deleted afterall.

That made me angry.  So, I decided that I should restart MySQL service.  I thought that killing MySQL process will make it forget about the whole rollback thing.  It didn’t work.

In fact, it made the situation even worth.  MySQL service refused to start until the rollback would finish.  Or maybe it was repairing table, I am not sure.  But it seemed more like a rollback.  So for the next thirty minutes, it was fixing stuff, while none of other projects could connect to the database.  Other projects were mostly websites that I host on my home server.  Very nice.

Of course, while it was working, I was searching for the solution on the Web, mostly in MySQL manuals and forums.  I came across a couple of other requests that were exactly like mine, but there were no answers.  I then went to #mysql channel on IRC, where the guys told me that they feel sorry for me (how kind), but there was no solution, except to wait.  Dang!

After the service came up, I simply removed the table (DROP TABLE mytable) and re-created it empty (CREATE TABLE mytable (...)).   I also found another way of emptying the table, which is TRUNCATE TABLE mytable, although it would behave exactly the same as DELETE FROM TABLE mytable on my version of MySQL (4.something).

Down, down, down.

My appologies for yet another downtime (approximately 12 hours).   Things were beyond my control yet again, due to a hardware failure.  I suspect that the 200 GByte hard disk that I’ve purchased recently isn’t doing a very good job.  It does have plenty of space and responds pretty fast, but something triggers server crashes with filesystem inconsistencies, that require full manual file system check.

The bad news though are that I am currently out of budget for hardware.  There is no way that I will go and buy another disk, unless of course, this one will die permanently.  Another alternative, of course, would be to do a one-time charge for all those people who’s sites and files I am hosting.  I don’t think this is a good alternative, so we’ll keep it in the sleeves for now.

Anyway, now everything is up and looks good.  Let me know if you’re missing anything.