Story
Once I was at an ATM machine, of course to get some money for a gift to a friend of mine. I keyed in the amount & was waiting for money. The machine took a while, printed the receipt, gave out the card. Yes that’s all. I got no money but a receipt saying that the machine gave this amount of money & that amount of money left in the account. I lost my tongue except to murmur Faaaark!. I pushed my card back in checked the balance in account & the machine was very happy to say that I’ve just lost this amount of money.
The gift I was planning to by was intended to be a wedding gift & my friend was/is not the kind which is gonna marry again ;). I went to the bank, talked to the pretty girl & my story didn’t amaze her in any mean. Hmmm…That’s something to think about.

Thoughts
Facing that inconvenience, my mind kept thinking of the very thing a lot, I mean about the technical stuff. Why the machine don’t handle that very little but so very important event? What’s the system run on an ATM machine? is it an embedded system? does it run GNU/Linux? :) hell a lot to think.

chit-chat
After few days I went on a long tour with two of my geek friends & the topic ATM took priority at a time. And my friends provided me with these info. There are ATM machines which runs Microsoft Windows XP :D (in Sri Lanka) & earlier days it was OS2, according to Such. Kunchana has seen windows XP booting on an ATM after a power down. [Wikipedia confirms Such and Kunchana :)]

Assumptions/Solutions
In thinking deep about ATM machines I made some assumptions in my mind.

1) The machine keeps track of the money using some kind of a hardware mechanism or someone adds money & update records on the machine. So that the machine keeps track of the amount remaining. If this is the case it’s only a matter of a software modification to compare the remaining amount and requested amount to stay away from hassles.

2) Since there was no evidence to backup above assumption, I happen to think that ATMs don’t keep track of the amount of money they have. So in order to avoid problem I faced, the machines have to have a mechanism to keep track of remaining amount of money and of course compare the remaining and requested amounts.

appendage (17/12/09) :
This was quite an old writeup I never had chance to post till now. This is totally black boxed thinking without looking up Internet for more details how an ATM works. The incident I mentioned happened at Commercial Bank Nugegoda. I got the money back in my account in few days (The bank fixed it manually, I guess). I’ve heard few other cases like this but never again happened to me. And also Things should be changed and these problems should be ironed out by now. Anyway Off to Look up “How ATM works” :D

PS: And the friend who got married was geekaholic :D . The incident occurred  someday around 20/06/08, the wedding day.

For the second time in just two months I heard of Microsoft lifting others code, this week. No I’m not gonna bash microsoft, there are two sides in both stories.

Case 1:
Microsoft lifts GPL licensed code for their Windows 7 USB/DVD download tool.

This one was first reported by Rafael at  withinwindows.com. As Rafael guessed at first, Microsoft announced that the software was done by a third party developer. And they pulled the software making a pledge to return it under GPL. Even though it took some time, MS finally released the software under GPL.

Case 2:
Microsoft China’s Microblogging tool Juku lifts code from Plurk.

Just five days from seettling with GPL violation, Plurk blog reported that Microsoft China’s microblogging tool Juku, has code lifted from their popular Microblogging tool. The terrible thing was that both UI and code base looked very similar (See Plurk blog post). Like MS did last time, they announced that Juku was done by a third party developer and of course they pulled the service. Indefinitely.

So that’s it. In two months, two code lift cases. The latter one was even uglier (Or is it otherwise?). I think Microsoft should start to worry about how genuine their products are :P, especially when they outsource to third parties. Since it’s a huge company, I don’t think they would have an easy escape next time.

PS: My intention was not to say borrowing code is a bad thing. There’s no problem if Microsoft borrow codes from Open source projects and obey the license.

The other day I came across this blog post “That Dirty (Sri Lankan) Mind“. The first thing I got in mind: “Seriously, WTF?”.

I’m not quite sure whether google place suggestions according to the relevance. But seems like it is.

Today I found these two screenshots, google suggestions for sara and rajap on my friend @laktek’s Tweet. And felt like looking for more.

So I looked for ‘how to’. See the results for yourself.

Seriously? How to get Pregnant? Oh c’mon Sri Lankans.
I don’t know why I felt like checking out Google.in for same thing. (Maybe I was looking for a way outta this shame ;) ).

See? We are not screwed. Yet. Apparently India screws up suggestions for us (It’s good to have a great neighbor :P ).

I checked the Google trends for “How to get pregnant” to be sure.

So it’s time to remove some bras.

Google Sri Lanka suggestions for “removing”

Google india Suggestions for “removing”

And now let’s see who really don’t know how to remove a bra.

Now that’s a big relief :D. Eff you Goog. We know how to remove bras, eyes wide shut :P

The privacy is again in hot zone of topics in communities I follow. The reason is @ericschmidt, Google CEO Eric Schmidt.

The register reports, “If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place,” under the heading “Google chief: Only miscreants worry about net privacy”. That’s how journalists do it. Let’s have a better perspective on the subject.

“Judgment matters… If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place… If you really need that kind of privacy, the reality is that search engines – including Google – do retain this information for some time and it’s important, for example, that we are all subject in the United States to the Patriot Act and it is possible that all that information could be made available to the authorities.”

Quoted from Eric Schmidt on CNBC video found here (some interesting stuff about Schmidt too ;) ).

Doesn’t really sound as bad as The Register report, but still it’s bad.


Google has to obey the laws, I agree, and the laws are not perfect. Anyway laws and regulations is not the only reason they track and log certain information. It’s a part of their business model.

Google offers simply awesome services and I find it really difficult to stay away from all that awesomeness thinking of privacy issues that doesn’t seem to be hrmful for the time being. Hope it’s the case for you too.

It’s not only Google that we should be alarmed of. Recently Yahoo said something similar to “Our Spy Capabilities Would ‘Shock’, Consumers“. Is that sound frightening?

So I think it’s the time to at least stay concious about these issues, if not to stay away. I would rather ask Google than a friend, of a private and sensitive question, thinking my secret is also gone with the closed search page. But it’s not the case anymore. Unfortunately.

Note: Find some interesting ideas about privacy, on secutiry guru Bruce Schneiers blog

My tweet you just read says the long story short. In case you didn’t come across, Google made DNS a buzzing topic again with Google Public DNS. So I felt like trying a dns cache again. The logic is “If a better DNS server makes things better, DNS cache makes it even better.”

This is more of a note to self than a HOWTO. If your use case atches with mine, feel free to use this.

My use case: I use an HSDPA, mobile broadband connection on Ubuntu 9.04 Jaunty Jackalope.

Install pdnsd with,

$sudo apt-get install pdnsd

Now launch the text editor you hate and add following to /etc/pdnsd.conf

(By default all the parts are commented so just adding this was fine enough for me)


server {
ip=208.67.222.222 , 8.8.8.8;
timeout=5;
interval=30;
uptest=ping;
ping_timeout=50;
purge_cache=off;
}

global {
 perm_cache=5120;
 cache_dir="/var/cache/pdnsd";
 min_ttl=15m;       // Retain cached entries at least 15 minutes.
 max_ttl=1w;        // One week.
 timeout=10;        // Global timeout option (10 seconds).
}

I copied this piece from here and edited ;). Added the global field because defaults were not cool enough for me. And in ip field I’ve put respectively OpenDNS and Google DNS addresses. You can just add one address there. ‘man pdnsd.conf’ will teach you more about the content in the file.

Once you are done editing the configuration file restart pdnsd with

$sudo /etc/init.d/pdnsd restart

Now you should tell the network manager to look for pdnsd for it’s DNS needs.

Right click network manager icon and then follow Edit Connections > Mobile Broadband and choose to edit your preferred network connection.

In Editing <Your Network Connection> dialog box,
[1] Choose IPv4 Settings tab
[2] Choose Automatic Addresses (ppp) Only in Methods Dropdown box.
[3] Set DNS Servers field to 127.0.0.1 (which refers to pdnsd in our case)

And obviously, Apply Changes :P .

If everything went fine, you are now ready to enjoy DNS cache goodness with pdnsd.

You can check how good is it with dig command.

ex:
$dig yahoo.com

run this command twice and compare Query time field.

Note: If you followed all the steps but still it doesn’t work, try restarting pdnsd. If you get following error refer this page

/etc/resolv.conf must be a symlink

Update: Added the global settings for config file.