Experiment: Deleting a post from the Internet
Once you post something on the Internet, it is hard to get rid of it. As an experiment, I deleted one of my past posts, and I tried to remove all traces of it.
I selected my post about Technical Interview tips, because it is mildly popular, but never did very well. It was on reddit for only a couple of hours. Yet it regularly received a lot of hits from Google looking for interview tips for RIM. In my opinion the writing needed work, so I deleted it. Forever.
First, I removed it from my blog. I have a checkbox that says whether a post is shown or not. Unchecking it removes it from the main page, and whenever people try to see it, they get the main article listing instead.
My post still appeared in Google, and you could read it by clicking on the cached link. To remove it from the Google cache, I had to make the page return a HTTP 404 error. I tried using the .htaccess file:
Unfortunately this had no effect on my web server. Apparently .htaccess doesn't apply to php scripts. I had to physically change my blog software to return a 404 HTTP status if that entry is retrieved:
Clicking delete didn't work as advertised. You can still get to the post, but it is marked as [deleted]. This is a real problem on Reddit's part, because people might post something under the mistaken belief that they can remove it later. The button should be descriptive of what it will actually do. Software shouldn't lie.
The best way to hide your embarrassing past is to bury them with new things. For example, if you search for my name you won't find my Lion King fan-fiction anywhere in the first few pages of results.
RSS Reader caches
That wasn't good enough, because the article was still available in RSS readers. When Google reader retrieves my blog entries, it simply merges the updated ones with its own database. The atom specification does not define any way to delete posts, but it does allow updates. I had to put the post back, but remove its contents. Then, when the RSS reader did the merge, it would update its database to contain the empty post.
Google Cache
redirect gone /~smhanov/blog/?id=43
if ( $_GET['id'] == '43' ) {
header("HTTP/1.0 404 Not Found");
exit;
}
Reddit
Comments about the post appeared on reddit. Since I was the original submitter to reddit, I have the option to delete it:

Conclusion
The main text of the article is nowhere to be found. The problem is any comments or blog reactions will still be there, although they will have broken links. The experiment is a partial success.
I think it's worth remembering that it's very hard, if not impossible, to entirely remove something you've posted to the Internet; think carefully before publishing things you might later regret :)
Installing the Latest Debian on an Ancient Laptop
The challenge: Install Linux on a really old laptop. The catch: It has only 32 MB of RAM, no network ports, no CD-ROM, and the floppy drive makes creaking noises. Is it possible? Yes. Is it easy? No. Is is useful? Maybe...
Why don't web browsers do this?
Why don't web pages start as fast as this computer from 1984?
Why Perforce is more scalable than Git
Branching on Perforce is kind of like performing open heart surgery. But here's why git can't hope to compete with it.Comment spam defeated at last
For years when running this blog, I would have to log in each day and delete a dozen comments due to spam. This was a chore, and I tried many ways to stem the tide.20 lines of code that will beat A/B testing every time
A/B testing is used far too often, for something that performs so badly. It is defective by design: Segment users into two groups. Show the A group the old, tried and true stuff. Show the B group the new whiz-bang design with the bigger buttons and slightly different copy. After a while, take a look at the stats and figure out which group presses the button more often. Sounds good, right? The problem is staring you in the face. It is the same dilemma faced by researchers administering drug studies. During drug trials, you can only give half the patients the life saving treatment. The others get sugar water. If the treatment works, group B lost out. This sacrifice is made to get good data. But it doesn't have to be this way.
How to detect if an object has been garbage collected in Javascript
If you are writing an application in Javascript, soon you will have to worry about memory leaks. But it is difficult to even know if a memory leak exists. This handy method can help.Finding awesome developers in programming interviews
In a job interview, I once asked a very experienced embedded software developer to write a program that reverses a string and prints it on the screen. He struggled with this basic task. This man was awesome. Give him a bucket of spare parts, and he could build a robot and program it to navigate around the room. He had worked on satellites that are now in actual orbit. He could have coded circles around me. But the one thing that he had never, ever needed to do was: display something on the screen.Yes, You Absolutely Might Possibly Need an EIN to Sell Software to the US
After many months, your software sale is complete! You've got a purchase order, sent the invoice, delivered the software. You're already handling some support issues from users at BigCorp. Then BANG! Martha from Procurement emails back, as a favour, just to let you know that BigCorp has not received your W8 form with a valid tax id, and therefore will be withholding 30% of the purchase price of your multi-thousand dollar product for taxes.
