Recent Articles


If you are like me and don't know the first thing about cameras then you are probably falling for the same marketing scheme. Well not scheme really but, well I used to fall for it. When I was in college, I had a computer hardware engineering class and the instructor was very annoying about the things he believed. He talked about how most CMOS image sensors were crap and that's why you can buy a 16 megapixel camera and still have poor quality images.

The start menu and the curious case of Windows 10

I use 3 versions of Windows today. I have Windows XP that runs on a VM on my Ubuntu desktop machine. I also use Dual Booting on this machine, so in parallel I have Windows 7. On the latest laptop I purchased, I use Windows 8. These are all major versions of the operating system and on each I perform specific tasks with ease.

How your files are deleted and recovered

Have you ever wondered what happened when you delete a file? Yes it goes to the recycle bin. But what happens when you delete it from the recycle bin? It gets deleted from your computer. Sometimes you delete a file by mistake and you scour the web for file recovery applications to bring it back. And they do a good job in recovering your file. So what really happened when you deleted it?

Timewarner slows down youtube and censor all information about it

I switched from AT&T to Timewarner for my Internet connection at home. Yes, AT&T is very slow in my area and any upgrade is terribly expensive. This whole week, I was browsing YouTube and it was painfully slow. I know that YouTube is not slow, it's Timewarner that is throttling. This is not news. But! I know that google has a page that tells you how it's not their fault, it's the ISP. Well, you can't access this page on Timewarner.

Creating a simple search algorithm with PHP and MySQL

Search is an important feature on a website. When my few readers want to look for a particular passage on my blog, they use the search box. It used to be powered by Google Search, but I have since then changed it to my own home-brewed version not because I can do better but because it was an interesting challenge.

Vigilance 2.0, the best antivirus in the market

In 2006, I bought a new motherboard. With this motherboard, came a CD with a fresh copy of Symantec's Norton Antivirus. I re-installed windows XP on it, because back in those days, you actually got a physical copy of the OS. The reason for changing my motherboard was because my processor was outdated and in order to get a brand new one I would have to have a motherboard that supports it.

Detecting Internet Explorer version with JavaScript

Parsing the browser User Agent is very unreliable. Not only users can easily manipulate it but the string can be very inconsistent. There were times where I needed to write specific code for Internet Explorer but I don't like writing in line JavaScript or loading a separate script just for that. I wish browser makers could agree on making unique GUID that can easily be looked up on a table to determine the browser. So Instead, I make use of IE conditional comments to set values that will only be present in Internet Explorer.

In the spirit of USB

Do you know what USB stands for? Universal serial bus. I don't know the story why it was invented but it did make my life easier. No more I had to worry about the number of PCI slots that where available. All my devices could be plugged in my computer instantly.

JavaScript Tips and Tricks

Calling a function out of scope

With the advent of jQuery, coding in JavaScript became accessible to almost everybody. But with it came some very fundamental errors that could have been avoided if the person read the very basic of java script. Users define…

Get computed style

Sometimes you want to get the width of an element, and the obvious way of getting it does not work.; // (empty string) Yeah, I know it should be this easy but it is not. Instead we have to get the comp…

Accessing URL parameters in JavaScript

I have worked with PHP extensively and it is very convenient to have all the URL parameters automatically assigned to the global array $_GET. Here is an example: $_GET['foo']; // bar I wish …

Calling a function that has no name

You can make use of recursion easily in JavaScript. Let's try it with factorials: function factorial(num){ if (num < 0) { return -1; } else if (num == 0) { return 1; } return (num * fa…

Making fast cross-domain requests when the browser is leaving

There are times you want to make a very quick web request and don't care about the response looks like. It is possible to make requests using Ajax, but we still get a response. One trick you will see many people are using is…