Sri Lanka on Google Maps
Tuesday, March 3rd, 2009The latest addition on Google Maps: Tiles for Sri Lanka, with the ability to search for any address.
The latest addition on Google Maps: Tiles for Sri Lanka, with the ability to search for any address.
That’s it - today is the day the internet broke! People started realising something was wrong with Google when almost every search result had the accompanying text “This site may harm your computer”. Clicking on any result led to a page warning the user that the page they wanted to visit was very likely a page which would try to do bad things to your computer. Thankfully, the glitch only lasted for 30-45 minutes, and things were back to normal again, with an explanation of what went wrong. And the world breathed a sigh of relief… or did they?
A few minutes ago, I got an e-mail alert from Hyperspin. Hyperspin monitor your servers, and e-mail you if something goes wrong. Apparently something had - it was failing to resolve my domain name! A few nslookups showed that this really was the case. Worse - none of my domains were being resolved. I try to access the eNom website, and find that even THEIR website isn’t working.
Ok, fine - so something’s wrong with eNom’s DNS servers - all 5 of their geographically-separated locations! None of them respond! A global failure of their DNS servers for more than a few minutes is really unthinkable. They say on their web-site:
eNom services set new standards for reliability, thanks in part to redundant name servers dispersed around world. Each server has multiple high-bandwidth Internet connections, back-up power, security, and access to three different major Internet backbones. This powerful system enables to handle millions of transactions with no interruption in service.
I thought I’d call their tech-support to see what they have to say. Of course, their number is listed on their web-site, and that’s completely unreachable right now. Thankfully, the web archive was helpful to locate and find an archived contact page from their site. So I call up the number listed, dutifully press “3″ for technical support and hear the message “Please enter your support PIN - this PIN is available within the ‘Info’ section of the ‘My Account’ page on our site”. AAARGH! Ok … don’t panic. A quick visit to Netcraft, and I’m in possession of the IP address they last switched to. http://69.64.157.35 does the trick, and I’m greeted with the familiar Enom home page. Login, get my phone-support PIN and call them again. I’m not that surprised that I get through to a support drone almost immediately - most of their customers are still battling their way throgh to their phone support PIN! Unfortunately, the support drone was of no help at all. He acknowledged that there was a problem, that their entire team of engineers was investigating what had gone wrong, but no, they don’t have an ETA as to when things will be sorted out.
It’s been over half an hour since I got the initial alert mail, and nothing has changed yet. Wonder how long this will take to fix.
Update:
1.5 hours later, it looks as if things are recovering. Most queries do get a valid response, although some of them do still time-out.
Of course, their Outage reporting site was also completely inaccessible. And now, even when you are able to access it, all it says is “Unscheduled Maintenance - Our site is currently undergoing an unscheduled maintenance to upgrade our systems in order to better serve you.”
Final update:
I just received a response to the ticket I filed with eNom. Turns out the entire thing was due to a DDoS attack.
Hello,Thank you for contacting us regarding the recent site resolution issues you were experiencing.
For a period of hours beginning a Noon PST on Saturday January 31, 2009, a eNom DNS servers were victim to a large Distributed Denial of Service (DDoS) attack. This attack affected hosted customers and other services, which rely on our DNS infrastructure. Our DNS regularly handles attack traffic during the normal course of business; however, this attack was particularly large and required additional effort by eNom Operations to counteract it. Services were largely restored by 3:30pm PST. By policy, eNom doesn’t detail the nature of attacks against our infrastructure.
Thank you for your understanding and patience.
Technical Support,
Facebook has a million and one applications. Among them are a number of IQ Test applications. Even to view someone else’s results, you have to install the app, with the corresponding permissions screen as shown below:

Now, maybe I’m not supposed to have the IQ to understand, but why should an IQ Test application need access to “your profile information, your photos, your friends’ info and other content that it requires to work”? Ah - maybe all that information is used to adjust your IQ score… you know, if you’ve used L33T-speak on your profile, that’s a -20 adjustment right there. Are you in a Palin supporters group? -30 for you! Photos of kittens? +5. Photos of dogs? +10!
Naah, quite unlikely. In my opinion, what should happen if you press that “Allow” button is the message: “Your IQ Score: 0″!
It’s difficult to identify a single page or site on the Net as being yours. Sure, you may have your own blog or even a completely independent website, but with sites like Del.icio.us, Flickr, FriendFeed and your profiles on all these pages, you’re bound to have at least a half dozen other pages that are “yours”. So now that you’re on these services, what should you do? To get the most of them, you’ll of course need to find your buddies on these sites, and that’s where things get tough. How do you know that the John Smith on service XYZ is in fact the same John Smith that you play scrabble with? If John has linked from his web page to his user profile then it’s no problem, but what if he’s only got a link the other way around, from his user-profile page back to his web-site. You shouldn’t have to click through the dozens of profile pages to find his - let Google do the work for you through the Google Social API!
A few months ago, Google made available an API which you can use to query the social network inherent in the web, by following the “me” links or pointers from one network’s profille to another, as well as the “friend” pointers. By then giving the URL of my web site, I can find all my “other” pages on the Internet, as well as everyone else that I link to or am linked by.
Using this social graph of services, it’s easy for you to find what services you have in common with someone else to be able to link with them there. To make this easier I have a very trivial bookmarklet I can invoke when I’m on any site, which does a lookup via Google Social’s API. To use it, simply drag and drop the “Google Social API Lookup” link to your bookmarks toolbar. Click it when you’re on any blog or profile page, and you’ll do a Google Social lookup. Enjoy!
A lot of people know that I’ve been working with Selenium to automate UI tests. You can now see a few examples of how specifically we use Selenium at Google, via the publicly released Selenium-based tests used as part of the Maps API testing process.
When you’re developing a Web-based application, testing a Web UI can get quite time-consuming. Throw in the problem of having to support multiple browsers, and the complexity of AJAX, and things can get out of hand quite quickly. This is where having an automated set of UI tests can be a life-saver. Make these tests part of your CI process, and you’ll get feedback as soon as something is broken.
Often, people end up testing the UI as part of an end-to-end test. This isn’t necessarily the best way to be testing the UI, as you’re no longer able to pinpoint the location of problems to a particular layer. Is that problem you’re seeing a data-encoding issue of the HTTP request/response, the database, or the persistence API? It could be anywhere. So take advantage of that multi-tiered system design which you have. Test each layer in isolation, separate it from the other layers that it’s talking to by putting fake, mock or stub layers in place, and test that layer by pumping in events and calling methods. Check the calls appearing out of that layer to verify they’re what you expect, and you have a much more useful set of tests.
Here’s what Facebook would be like if it were to represent actions in the real world:
Would YOU let anyone do that? Enough with the poking and scrabble and superwall for heaven’s sake!
We’d already been advised to make sure to dress appropriately (in a suit), and been constantly reminded to bring our wallets. Here’s a picture documentary of what awaited us. In short, there was no more free food or drink, the pinball machines require you to put coins in (*gasp!*), and the Wii and XBox have disappeared. I think my favourite prank was the message on the printers:
The money collected today is being donated to charity.
Here’s a group shot of all those who participated:

The Google public April Fools jokes so far include Google Australia introduucing Google gDay, Gmail adding Custom Time, and Virgin and Google cooperating for Virgle. In other news, Google China’s Search is now powered by real humans and the YouTube homepage has been rickrolled (click on any featured video)! Google Book search introduces - scratch and sniff, and Google Calendar has the Wake Up Kit!
The Large Hadron Collider (LHC) is CERN’s flagship as it’s the largest and highest-energy particle accelerator. They’re having an open day next Sunday. One guess as to what I’ll be doing on Sunday.
Read more about it at the Slashdot post (Imagine a Beowulf cluster of ….., uuh, never mind), the XKCD comic, or more likely the corresponding Wikipedia entry. Should one even be surprised that a botanist is claiming that powering on the LHC will hurl the earth into a parallel universe! Well, I say “go for it”, I’ve always wanted to see what a parallel universe would be like! I can’t wait for the TED talk about the LHC to become available.
I’ve recently started exploring more and more of the TED talks, finding the range of topics discussed to be both unique and eye-opening. Some of my favourite talks include Hans Rosling’s talk on debunking third world myths, James Watson on the discovery of the structure of DNA and Ben Dunlap on the life of Sandor Teszler. I was never a big fan of podcasts until I found the TED talks available as podcasts via iTunes. For those of you interested, here’s a direct link to the iTunes TED Talks podcast.
After installing Nokia’s Multimedia Transfer application, I’ve created an iTunes smart playlist which contains the last 3 TED talks. Ensure that this smart playlist is within the N95 sync folder, and I always have the last 3 TED talks available on my phone for when I’m in a tram or bus. The screen on the N95 is not that large, but for watching most talks this is more than enough. Mmmm…. both the N95 8GB and N96 have larger screens…
A lot of people have asked me about my home network configuration and VoIP telephone setup, so I thought I'd illustrate it here:

In the illustration, all blue arrows represent SIP communication with the annotation on the arrow representing the link layer. The black arrows carry non IP voice traffic, potentially over GSM/UMTS or the fixed line PSTN.
At the center of everything is of course the VoIP server. In my case I'm running Asterisk on there, along with a Jabber server and a mail configuration making my mailboxes available over IMAP. A plugin installed in my OpenFire Jabber server is able to identify whether I'm on the phone or not and set my IM status accordingly. If I'm logged in to my Jabber account, I also get an IM message with extra details about incoming calls. Voicemails are stored in my IMAP mailbox and I get notified via SMS.
The top left part of the diagram illustrates the many SIP DIDs which I have registered against my server. You can often get free DIDs from providers such as SIPGate, IPKall, etc. People can thus call a local DID number and contact me, no matter where I might happen to be. There are two other possible routes for incoming calls - the Sipura 2000 and the MV370 - but we'll look at those in more detail later.
I also have multiple outgoing channels over which I can place calls into the PSTN, shown in the top right of the diagram. Then there's pure VoIP calls which are originating and terminating in the VoIP world in the right-middle of the diagram. These might be calls from VoIP networks such as Gizmo, other SIP calls, and ENUM routed calls. You can use ENUM (RFC 3761) to identify whether PSTN numbers you're trying to call might have a VoIP equivalent. If a mapped number exists, one can bypass the PSTN and route the call completely over VoIP.
Looking at the basic networking at home, I have a 25MBit Cable Modem connection to the outside world. This is connected to a WRT54GL running OpenWRT. Since the WiFi point is in the living room, I have a WET54G WiFi bridge in my study which I use to bridge the WiFi connection back to an Ethernet connection, made available through a Gigabit switch to the rest of the equipment in my study. I’ve got several VoIP devices interacting in interesting ways. First of all, all my computers are running softphone software such as X-Lite or SJPhone. Fine, softphones work, and they're available whenever you're at your computer, but sometimes you just need a real phone unit which is independent of your computer. That's where the Avaya 4620SW comes in - it's a very solid phone with a lot of functionality and it works fairly well against my Asterisk server except for the fact that the MWI indicator, as well as several other features of the phone, only work when connected against an Avaya SIP server. The Sipura SPA 2000 is a SIP ATA which lets one bridge SIP VoIP and the PSTN. Thus, incoming calls on PSTN are routed over VoIP to my server, and my server can also route calls over VoIP to the PSTN line on the Sipura. It also has an FXO port so that you can plug any standard telephone into the Sipura and have it connect to both the VoIP and PSTN lines. The PORTech MV370 is a similar device except that you place a GSM SIM in it and it bridges SIP VoIP with the GSM/UMTS network.
Finally, there's my mobile phone - a Nokia N95. The N95 has WiFi networking capabilities, and comes with a native SIP stack built-in. When I'm at home, my mobile is registered over WiFi as a standard extension to my SIP network. If I'm not at home but if there might be a WiFi network I can log on to, I can place and receive calls over my VoIP server. The N95 is my favourite phone so far. I used to be a very firm Siemens follower starting with the Siemens S25, but having used the N95 for close to a year I really have come to love this phone.
This equipment configuration lends itself to a number of interesting scenarios:
There's a lot of potential here, limited only by your imagination in how you hook everything up.
After my last two posts on the Sinhala iGoogle keyboard gadget and searching for Sinhala Unicode, I had a few questions on what Sinhala Unicode would look like, seeing that one needs to have a Sinhala Unicode font installed for it to render properly.
Each operating system seems to need a different number of steps to enable proper rendering.
Here’s the way my name should look:

And here’s my name, as rendered incorrectly in most configurations:

Both LKLUG and Akshar Unicode have problems rendering the text, even in configurations where other fonts are able to do so fine.

This font looks the most broken

This has a rustic, old-fashioned feel to it.

This font might have been alright had it not been that heavy.

Kaputa is a very clean, clear font without any unnecessary embelishments.

LKLUG is slightly broken, and has issues rendering some combinations. It also has a slightly old-fashioned feel to it.

Clean, and easy to read.

Potha is a very nice font, getting the strokes just right, looking elegant, modern and uncluttered.

So it comes as no surprise that Potha seems to have been cleaned up and included in Windows Vista by default, named Iskoola Potha. This font has the honour of being the best-looking Sinhalese Unicode font.

Sarasavi came in as the second best Sinhalese font. The strokes on this font were a bit too heavy, making it more difficult to read, with some of the strokes being exaggerated.