Category Archives: Technology

Possibly My Last Mac

A few weeks ago, my shiny new MacBook Air arrived at my home, and I opened it with anticipation. I was very happy with my previous white MacBook that I bought in 2008, and decided to take a step forward with Mac OS. At the same time, I jumped from Mac OS 10.5 to 10.8. I maxed out my CPU with an i7 processor, and apart from occasionally getting a little warm, I’m pretty satisfied with the hardware. However, it’s software and interface differences that really irk me:

  • There is now an inconsistency between various pieces of software, some allowing Cmd-D to not save a document, while some don’t. It is a keyboard shortcut that others in the Mac OS ecosystem have grown used to, as they were others who complained about it online too.
  • There are now superfluous interface changes making the calendar look like a paper calendar, and the address book look like an actual book. However, functionality has dropped.
  • When I select a day in Calendar, it is no longer highlighted. This might be more of a bug, albeit a simple thing.
  • In Contacts, I used to easily do a search for “+84″ to find all my contacts who have a Vietnam contact number. Sadly, the search feature doesn’t take into account the ‘+’ sign anymore.
  • Mail has become more sophisticated, IMHO. I hope the new features will prove useful over time.
  • Having to be identified when wanting to update core software, and with an increasing number of apps only being delivered through the App Store, it is really quite annoying.

Overall, I’m still satisfied with it, though it didn’t meet my expectations. Let’s continue to watch where this ship goes without Jobs at its helm.

If I had to choose again at that point in time with the additional information that I have now, I would still choose a MacBook Air. But it’s unlikely that I will request for a MacBook Air for my work machine.

An Interview Experience at Google

Last Thursday, I had the opportunity to go for a series of interviews at the Google Singapore office. Based on what I understand online, most positions involve at least a few rounds of interviews, usually conducted in one day. Mine had three rounds, and all of them were done over video conference.

As a company that hires for culture, there was only so much reading that I could do. I had applied to be a Field Technician at Beijing and knew that I would be tested more on my problem solving skills than on what I know. As such I decided to spend the night before the interview scanning through my RSS feeds to warm up the neurons in different parts of my brain. Ok, I don’t have any scientific basis for whether that actually fires up neurons in different parts of the brain, but since my RSS feeds covers a broad spectrum of topics from tech to current affairs, it should be a good range.

I started the morning of the interview day with breakfast at McDonalds near a subway station that my dad dropped me off at. This gave me plenty of time to be mentally prepared and get into the zone. Upon arriving at the lobby, I was directed by the receptionist to get myself registered at a computer terminal. The Google lobby was a little quiet, but I assume that was because it was around 11am and most people were probably in their offices. My host came along shortly and ushered me into one of many meeting rooms set up with video conferencing facilities.

The system was probably running a custom Linux distro, and my host set up the VC system which interfaced with Google Plus. This was my first experience of a Hangout, and it was quite a positive experience! While I couldn’t make out the video resolution, the audio and video was definitely smooth for all three interviews. The whole setup definitely had an engineering edge with custom software and commodity hardware (logitech webcam, Audio-Technica mics). I was thankful that none of my interviewers gave me any nasty questions, a la the blender question.

Here are some rough recalls of the questions I got. Definitely a lot more interesting than some other interviews I’ve had!

  • Given the scenario that Google has just acquired a small tech company of about 25 staff running a platform, e.g. Novell, on a network protocol, e.g. IPX, with a directory service, e.g. NDS that you are completely unfamiliar with, how would you get this team integrated with the rest of the company’s infrastructure while allowing them to stay on their platform?
  • Let’s say that Larry wants to make a company-wide live video broadcast in about a month on every employee’s computer (~20k). How would you set this up?
  • Imagine that you get an email from an employee from Thailand, in Thai, and upon putting the email through Google Translate, you understand that the user speaks no English, and that the message reads “wireless broken”. How would you support this user?
  • How would you respond to an employee who insists that he wants an upgrade to the new Macbook Air even though he just got a Macbook Pro and company policy states that each machine is to be used for x years?
  • How would you design a fire escape plan to ensure that everyone is out of a burning building?

Automatic Capitalization

I started off the afternoon familiarizing myself with the jQuery in preparation to code Textsmith. After that, I started to ponder what rules should be used to clean up English (to start off with) text. I thought I was smart to steer clear of the more complicated regions of language that I get myself tangled in at times, and to start with something seemingly simple. Automatic capitalization of text.

Little did I realize that that in itself is no mean feat. Once we get past the easily programmable rules such as:

  • The word I
  • The first letter of each sentence

things get pretty messy. We run into proper nouns, which are a nightmare. If we delve into this realm, is it possible to continue to keep Textsmith lightweight and purely Javascript based? Let’s assume not for starters. My first thought was to dip into Wikipedia, and perform text analysis on that. This is what I thought of:

  1. For each article, take the title of the article
  2. If it is a single word, look for all instances of the word in that article where it is not used at the beginning of a sentence. If it is capitalized, it is a proper noun.
  3. If it is a phrase, it is a proper noun if the phrased is used in the exact same caps throughout the article. An example of a multi-word proper noun on Wikipedia is New York University while a non-proper noun would be data mining.
  4. We may possibly analyze related articles, but I didn’t think about what method of identifying related documents to use.

However there are still problems to be addressed:

  • What about odd words like jQuery?
  • While Wikipedia would provide fairly good coverage, it is definitely not an exhaustive representation of the text available online. The algorithm above would not be able to parse unstructured text too.

Assuming we establish a sufficiently comprehensive database of proper nouns, including names of people, products, etc., the next question is how can we efficiently and correctly identify proper nouns in a body of text? We start to run into problems such as:

  • Context awareness. The word dell is both a common noun and a proper noun, depending on the context. There is some nice (unpublished?) work done by Google as demonstrated on this Google Wave video.
  • There are approximately 3,892,495 articles on Wikipedia as of this writing. How many proper nouns would there be in here, and how many more are we missing?

Thankfully there is a project OpenCalais that works on semantically tagging text. It is free to use via an API but not completely open, which is a little of a bummer from a philosophical point of view.

I didn’t realize that just thinking about capitalization could make my brain hurt so much. There was some other nifty stuff that I read up on the topics of text analysis and how people are deriving information from unstructured text. There’s this interesting project by the AP called Overview that looks like it’s doing a pretty decent job of giving the user a high level overview of a large (hundreds of thousands) corpus of documents, it actually feels tempting to me to deviate from the original goal of Textsmith.

So where do we go from here?

There is an overwhelming amount of hard problems in the world. I’m not saying that to put undue pressure on myself, or to use it as an excuse to give up. I think problems matter differently to different people, and that is a contributing factor to the diversity that we get to enjoy. If everyone was an electrical engineer, or everyone was a writer, the world would be a lot poorer.

For myself, I’m probably going to stick to the lightweight Javascript powered version of Textsmith, and any gnarly science will go into another project. What are your thoughts on what language cleaning/processing should Textsmith do?

Traceroute from Starhub 3G

Traceroute from my laptop using my phone as a 3G router on the Starhub mobile network. A few too many hops, don’t you think?
$ traceroute kef
traceroute to kef (106.187.43.133), 64 hops max, 40 byte packets
1 192.168.43.1 (192.168.43.1) 3.896 ms 2.715 ms 2.036 ms
2 10.208.2.84 (10.208.2.84) 49.258 ms 65.181 ms 82.768 ms
3 10.208.8.2 (10.208.8.2) 59.948 ms 53.263 ms 59.700 ms
4 10.208.8.90 (10.208.8.90) 60.001 ms 52.663 ms 61.582 ms
5 10.208.8.104 (10.208.8.104) 59.451 ms 56.034 ms 59.654 ms
6 10.208.8.138 (10.208.8.138) 59.887 ms 64.902 ms 114.044 ms
7 10.219.3.120 (10.219.3.120) 98.258 ms 51.076 ms 59.962 ms
8 * * *
9 203.116.251.226 (203.116.251.226) 126.892 ms 93.875 ms 99.586 ms
10 61.8.235.41 (61.8.235.41) 71.043 ms 76.005 ms 81.270 ms
11 203.117.190.85 (203.117.190.85) 91.075 ms 91.325 ms 57.604 ms
12 anutsi10.starhub.net.sg (203.118.3.162) 109.199 ms 90.446 ms 137.621 ms
13 203.181.102.193 (203.181.102.193) 141.191 ms 157.753 ms 149.250 ms
14 otejbb204.kddnet.ad.jp (118.155.197.130) 145.116 ms 145.219 ms 135.581 ms
15 cm-fcu203.kddnet.ad.jp (124.215.194.180) 144.386 ms 145.880 ms 145.979 ms
16 124.215.199.122 (124.215.199.122) 234.994 ms 143.375 ms 157.861 ms
17 kef (106.187.43.133) 163.984 ms 155.401 ms 151.273 ms

Cool Products!

I was just having a look at http://store.apple.com/sg/browse/holiday and came across some absolutely cool products I thought I’d share!

First on the list is the Blue Microphones Yeti USB Microphone. What mad me click on it was the price tag, which upon understanding that it records in stereo and offers the choice of different pickup patterns sounds reasonable.

Second is the iRig Mic which isn’t that novel all in itself but its application with an iPhone definitely broadens the horizon.

Third is the AmpliTube iRig. Software audio effects are nothing new, but again having them on a mobile device sure changes perspectives. Check out the picture with the iPad.

Lastly, WiFi body scale by Withings. It’s not so much the WiFi or the network connectivity that surprises me. Probably more so seeing this product listed on a consumer website. People are definitely paying more and more attention to health data. As Peter Drucker said, if you can’t measure it, you can’t manage it. Take note that according to a review all information is transmitted in cleartext, so network admins might want to siphon the relevant data into your own formats.

Have a blessed holiday season!

Transfer of domain from Godaddy to name.com

After years of hesitation, I’ve decided to bite the bullet and transfer eccentri.cc from Godaddy to name.com. In a way it’s a little nostalgic to do that as I used to be a big fan of Godaddy, till they started doing some things that gave me a sleazy impression of them. Well or at least of the founder. During the most of the process Godaddy has been pretty helpful actually so I’ll give them some points for that. This is just an outline of the process for me, which took approximately 10 hours in all to complete. Decided to start the domain transfer last night with no idea that it could take a few days on average. I think this time delay mechanism is to prevent people from stealing domains too easily.

  1. Went to https://manage.name.com/domain-transfer to get started, only to find out that I needed an auth code (ok I knew this was involved somehow) from Godaddy.
  2. Logged in to Godaddy, but the only intuitive option was for the auth code to be emailed to me. I clicked on the link a few times and never got any email. Not sure whether it was a technical fault or otherwise. Ended up using the download option from http://help.godaddy.com/article/1685 to download the auth code in a csv file. Unlocked the domain at the same time.
  3. Thankfully I had re-registered starserve.info prior to this as my domain admin contact would have been unreachable otherwise.
  4. Put the auth code into (1) and waited.
  5. Noticed advice on (1) that the domain should have sufficient validity to complete the transfer, and started to panic as my domain was expiring in 4 days. Contacted name.com to find out that the ball is in Godaddy’s court.
  6. In the meantime I made a record of all my DNS records
  7. Received an email from name.com to the domain administrative contact email to verify that I wanted to transfer the domain. Clicked the link to go ahead with that.
  8. Received an email from Godaddy informing me that I could either accept the transfer immediately or do nothing, in which case the transfer would automatically continue in 3 days time. Of course I didn’t want to wait, so I decided to give Godaddy a call to see what I could do to expedite the process.
  9. Ended up going through Godaddy’s domain manager to accept the transfer immediately.
  10. Domain showed up in name.com shortly with a few more emails from Godaddy.
  11. Set up new DNS records immediately.

Overall the process was fairly smooth and I’m glad I finally did it and now have all my domains under one roof :)

Burning iso directly off the web

Taken from http://www.knoppix.net/wiki/Downloading_FAQ.
mkfifo KNOPPIX.fifo # mkfifo create a fifo-file
screen ftp mirror ....# screen creates multiple shells in one terminal (handy!) ftp connect to your mirror
get KNOPPIX-3.10-EN.iso KNOPPIX.fifo #command to copy inside your ftp-session
C-a C-c # screen will make a new shell
cdrecord dev=(your burner) speed=4 KNOPPIX.fifo # ftp starts to get data when cdrecord starts to read from fifo
wait; exit; rm KNOPPIX.fifo; exit

(Attention, use “cdrecord -scanbus” before cdrecord to find the correct device of your cd-writer. If you own SCSI hds, you could lose all data of one hd when you use cdrecord with a wrong dev=(controller,id,partiton) !)

Alternatively:

This works well and is much simpler: wget -O - URL_OF_IMAGE | cdrecord -v speed=4 -eject -

First Thoughts of Blackberry Bold 9700

Just got a Blackberry Bold 9700 this week and have been trying it out. Honest first impressions? I’m not too impressed. Maybe it’s partly because I don’t have the Blackberry service, so I’ll find out more when I meet my other friend who’s also a Blackberry user later. To me, the Chinese functionality is definitely inadequate and inferior compared to my Nokia 8500 XpressMusic. Firstly, the preloaded dictionary is very limited, whereas my Nokia included phrases like “不好意思” which makes it a huge time saver. Also, with the Blackberry, I need to type the complete pinyin for the first word before any of the phrase recognition kicks into action. So to get “不好”, I would need to type “buh” before it shows up. However with my Nokia, I could just key in “bhys” and “不好意思” would show up immediately.

Yes, there are shortcuts but they have to be set up manually :(

Overall, an average grade. Of course I haven’t played around much with the apps yet.

Oh, and another negative experience is the poor synchronization with Macs. Ever since I started trying to sync my Blackberry with my Mac using Blackberry Desktop Manager, it’s really screwed up some of my data and isn’t as graceful as iSync.

Unless my friend gives me strong reasons, I think I will be going back to Nokia (or maybe consider Android).