Latest Publications

Off to Hyderabad, India

I won’t be blogging for the next few days. Just in case anyone is wondering what happened to my daily blog posts, I’ve gone to Hyderabad, India on a business trip for a conference till Sunday. Hopefully I can sneak in a blog post or two during my trip there, but I’m doubtful. Anyway, see you guys soon!

HackerspaceSG: Events of Week 3 (Jan 18 – Jan 24)

The new year is over and the first 2 weeks at HackerspaceSG has been pretty slow. But never fear, we’ve got more events coming up in the next few weeks as we slowly ramp up our awareness and get more groups meeting at HackerspaceSG.

Singapore Linux Meetup Group
Mon, Jan 18 6:30 pm Mon, Jan 18 9:30 pm

First up of the week is the Singapore Linux Meetup Group. They having their regular meetings at HackerspaceSG from now on every 3rd wednesday of the month. For this month, they have a presentation on Blender, a free open source 3D content creation suite, by Mr Victor Yap from the Blender User Group. The Blender User Group of Singapore would give a general overview of 3D technology with relation to how Blender is use to create 3D images. Works of local artists will be showcased and discussion about open movies that the Blender foundation has been engaging in the past and
present. RSVP here if you wish, but not required.

Hackerspace Hack Time
Tue, Jan 19 6:00 pm Wed, Jan 19 12:00 am

Our regular scheduled reserved time for our members to get anything done is yet again moved to Tuesday to make way for the Singapore Linux Meetup Group. We currently have the following projects being worked on – Security Access System, Sucktionator, Water Rocket, Stop Motion Animation, and many other miscellaneous projects currently worked on by our members. So come join in and hack on any of your projects!

Singapore Singers & Songwriters Meetup
Fri, Jan 22 7:00 pm Fri, Jan 22 10:00 pm

We have the Singapore Singers & Songwriters Meetup group here at HackerspaceSG! How cool is that? It is a gathering of musicians to share their music and network with like-minded passionate people. Those who are singers and songwriters out there, come and join us! You can RSVP here or just turn up.

Singapore Humanism Meetup (RSVP required)
Sat, Jan 23 2:00 pm Sat, Jan 23 5:00 pm

All HackerspaceSG Members needs to RSVP to sg.humanism.meetup@gmail.com. Mainstream values, mainstream culture, mainstream population. In the past few years, the word “mainstream” has been bandied about in our mass media, on a wide range of issues such as “family values”, “global warming” and “death penalty”. But what are they referring to, exactly? Do they refer to the values or opinions held by the majority of our population? Or those few who are most vocal and persuasive? How do we know if these values are right or rational? Whose mainstream is it, anyway? Although consensus may be hard to reach, come to this month’s SHM and have a fun-filled afternoon discussing in small groups a range of issues from varying perspectives.

Meetup etiquette : Participants come from different backgrounds and with different age and experience. Still, every individual deserves dignity and respect and therefore I urge participants to observe strictly our meeting etiquette.

Nexus One Unboxing After-Live UStream

Yesterday, Daniel Tsuo and I did a live ustreaming video on the Nexus One Unboxing. There were as many as 15 people joining us live asking us questions about the Nexus One. We had a great time and special thanks to Honcheng for letting us have a first look at Nexus One.

For those who missed it, don’t worry, there are videos available! Check them out!

Google Nexus One Part 1

Google Nexus One part 2

Google Nexus One Part 3

Google Nexus One Part 4

Sorry about the remaining parts when we switched over to my HTC Hero phone to ustream. Apparently it didn’t get saved. But the quality isn’t that great anyway, so nothing much lost. I hope you enjoyed our video and just ask us at Tech65.org or myself about anything you want to know about the Nexus One.

Review: Sony Vaio X

DSC07633

I got the Sony Vaio X a few weeks ago to review, and I think it’s one of the best notebook/netbook I’ve ever laid my hands on to except for a few problems that some people might not find it a problem.

Specifications

This baby has an Intel Atom 1.8 GHz processor which is a nice bump from the usual 1.6 GHz processor from most netbooks. With this small speed bump, together with the 64 GB SSD makes the Sony Vaio X feel very responsive. Together with this performance, it is amazingly thin and light at around 1.4 cm thick and 650 grams. There’s 1 sd memory card slot and 1 memory stick slot in front. On the left, there’s the power DC in, kensington lock, 2 USB port and 1 3.5 mm headphone jack. However, there is no microphone jack available. On the right, there’s the power indicator light, 1 VGA output and a custom ethernet connector simply because the notebook is so thin.

Sleep to Wake Time

I simply can’t believe how fast it takes from sleep to wake is for this. It takes less than 5 secs to get this baby woken up. Check out this video.

Dislikes

I have only 1 dislike about this amazing laptop, besides how expensive it is. The keyboard is difficult to type on for me, especially with the close range between the bottom row keys and the ridge.

DSC07639

Likes

I love how thin, light, portable and fast this laptop is. The first time I held it, I literally expected it to be heavier and it got lifted higher when I held it. It was a pleasant surprise. Even though it is running a 1.86 GHz Atom processor, the performance is hardly ever a problem with my normal usage. Together with the extended battery, this is the ultimate laptop that’s worth the price if you have the money.

IMAG0222

Differences in models

Here are the specifications of this wonderful piece of engineering feat. I’m only going to show the interesting differences of each of the models offered.

Sony Vaio X VPCX113KG/B Sony Vaio X VPCX115LG/N Sony Vaio X VPCX118LG/B
Price SGD$1,999 SGD$2,199 SGD$2,499
Processor Intel® Atom™ Processor Z540 (1.86 GHz, HT Technology supported) Intel® Atom™ Processor Z550 (2.00 GHz, HT Technology supported)
OS Windows® 7 Home Premium (32-bit) Windows® 7 Professional (32-bit)
SSD 64 GB (PATA) 128 GB (SATA)
WWAN NONE Wireless WAN (HSDPA/HSUPA, UMTS, EDGE, GPRS)
Weight 655g 745g 780g
Battery 3.5 hrs (Actual usage estimated 2 to 2.5 hrs) 7.5 hrs (Actual usage estimated 4.5 to 5 hrs)

Notes
  • Does not support 64-bit.
  • Has Intel Virtualization Technology (VT) available.
  • Maximum ram is 2gigs. (already maxed out on all models)
  • Extended battery (8200mAh) costs SGD$429 + 550g.
  • 3G WWAN is located under the battery.
Summary

The Sony Vaio X is a notebook/netbook that is very confused, yet not quite. It’s faster than most netbooks, extremely light, and because of the SSD and 2 gig RAM standard, it purrs like a little kitten. However, the downsides are the price and the keyboard and mouse. If you have some extra money to spend, and do not mind the keyboard and mouse, buy this little kitten and you’ll love it forever.

  • For the road warrior who finds his current light notebook still too heavy.
  • Not for someone looking for a netbook.
More Photos

How can Android Succeed?

The Nexus One is an Android phone that has max-ed out whatever hardware capabilities available out there to become the “super” phone. The problem now lies with the software side, where various manufacturers like HTC and Motorola can start competing to differentiate themselves. Since the hardware is already awesome, what else is there but the flaws of the software that is keeping a lot of people from moving to Android, or in particular the Nexus One. Here are some points why the Nexus One is a phone you might consider.

  1. Best hardware specifications you can currently get in the market.
  2. Multi-tasking.
  3. Great graphics capabilities and acceleration.
  4. Open platform for customizing and hacking.

I had an interesting discussion with DK over the weekend whether if he will switch over to the Android platform now that Nexus One is out. Being a current user of the iPhone 3G and many other phones, his answer was more along the lines of “But…”. I thought some of his points were valid and it is something that Google needs to address quickly.

  1. More efforts to grow the Android Market.
  2. Efforts to make paid apps available to more places (specifically Singapore).
  3. Integrate RFID or some other niche technology (temperature?) into the phone.
  4. A “killer” app available on Android phones.

I think the above points to just one single problem – Software. Android is one of the most promising mobile OS out there and it needs more developers on it. The hardware pretty much blows the competition away. Oh, and one more thing. If Android can also get the normal phone functionalities (e.g. actually able to call, put on hold, conference call, etc.) working properly like our good old Symbian phones, I say there’s really no point to continue sasying that Android is a platform with “potential”, but living up to its name as a platform that is running “the superphone”.

Nexus One 3G Setup for Singapore

For those who bought the Nexus One and have some 3G problems, here are the steps to set up your connections.

For SingTel customers, the Nexus One should auto-connect to their 3G network.  For Starhub and M1 customers, they will need to enter in their APN settings to connect to their 3G network.  This can be done by any user in less than a minute:

  1. Go to Settings > Wireless & Networks > Mobile Networks > Access Point Names.
  2. Hit Menu button, create new APN.
  3. Enter new APN settings.  See below for the details.
  4. Hit Menu button, save settings.
  5. Select the new APN name, then hit the home button.  Your 3G connection will shortly appear in the top bar.

Since I’m a StarHub customer, here are the more detailed settings I got from StarHub.

For StarHub customers:

Name: StarHub GPRS (or anything you want)
APN: shwap (or shwapint)
Proxy: 10.12.1.2
Port: 8080
Username: [Leave it blank]
Password: [Leave it blank]
Server: [Leave it blank]
MMSC: [Leave it blank]
MMS proxy: [Leave it blank]
MMS port: [Leave it blank]
MMC: 525
MNC: 05
APN type: [Leave it blank] (or default)

For StarHub MMS configurations:

Name: StarHub MMS
APN: shmms
Proxy: [Leave it blank]
Port: [Leave it blank]
Username: [Leave it blank]
Password: [Leave it blank]
Server: [Leave it blank]
MMSC: http://mms.starhubgee.com.sg:8002/
MMS proxy: 10.12.1.80
MMS port: 9201
MMC: 525
MNC: 05
APN type: MMS

For M1 customers:

Name: M1 Internet
APN: sunsurf
Username: 65
Password: user123

And in case it is not working for SingTel customers:

Name: SingTel Internet
APN: internet
Username: 65IDEAS (or blank)
Password: IDEAS (or blank)

I hope that helps people having problems with their 3G on their Nexus One.

Compiling Android Source on Mac OS X 10.6 Snow Leopard

After various attempts, I’ve finally figured out how to compile the android source code on Mac OS X 10.6 Snow Leopard. It works on both 64-bit and 32-bit kernels. Here are the steps.

1. Install XCode, Macports, repo, etc.

I assume everyone knows how to do this. Follow the instructions from the Android source page. Just remember to create a new partition that is a case-sensitive partition if you’re using a non case-sensitive primary partition. I’ll start off after you’ve gotten the source from git.

2. Get the following patches.

Notice that I didn’t use “repo download” to get those patches. I realized that repo sometimes “undo” the patches when you download another patch. All bash commands start at the root of your Android source directory.

Patch 12074 - Change Ic4caeff0: Enable building on java 1.6 without conflicts.

This patch will allow you to use Java 1.6 that comes with Snow Leopard instead of Java 1.5.

cd build
git pull git://android.git.kernel.org/platform/build refs/changes/74/12074/3

Patch 11845 – Change I155a531a: Add x86-64 checking for Darwin

This patch will add x86-64 checking for Darwin.

cd system/core
git pull git://android.git.kernel.org/platform/system/core refs/changes/45/11845/3

Patch 11846 – Change Id241a12d: Force gcc-4.0 for qemu build on Mac OS X

This patch allows qemu to build.

cd external/qemu
git pull git://android.git.kernel.org/platform/external/qemu refs/changes/46/11846/3

Patch 12597 – Change I0a8c2440: Use intptr_t for args expecting pointers

This patch allows libacc to compile.

cd system/core
git pull git://android.git.kernel.org/platform/system/core refs/changes/97/12597/1

3. Build and watch it fly.

make

I haven’t quite tested the image files and binaries but it seems to me like it works pretty well. Now to get my hands dirty and start messing around with the actual code.

Oh and remember, every time you do a repo sync, you might have to reapply some of the patches. I’m not too sure why. If there’s anyone who understands git well enough, please explain.

Code You Should Not Be Writing – Part 6

I want to bring in the new year with this code that doesn’t seem all very harmful, but could be written in a more elegant way. I just hope this will educate people on some of the new functional additions to C#.

public List<int> GetListOfIntegers()
{
    List<int> list = new List<int>();
    for(int i = 0; i < 24; i++)
    {
        list.Add(i);
    }
    return list;
}

At its very core essence, this is simply creating a list of numbers from 0 to 23. However, try to find out the various possibilities of mistakes one can make with this code. I’ll leave it as an exercise of the reader to figure out all the possibilities of mistakes in this code. (side note: In fact, there was an error made in the original code. Yes, it looks simple, yet error-prone.)

Here’s a simpler and elegant way to do something like the above.

public List<int> GetListOfIntegers()
{
    Enumerable.Range(0, 24).ToList();
}

One of the interesting things with Enumerable.Range is it returns an IEnumerable. This effectively generates the numbers lazily. However in this example, in order not to change the signature of the method, ToList() is called to generate the numbers instantly, instead of lazily.

With ranges, you can create various interesting sets of numbers with Linq in a more functional way. I hope this week’s “Code You Should Not Be Writing” helps someone out there.

Change your Windows 7 ISO to any Edition

If you don’t already know, all editions of Windows 7 discs ships with the same content. The only difference is determined by a configuration file which decides which edition your Windows 7 disc or ISO is. Knowing that, there is a tool out there to change your edition to any edition, or make it a universal ISO.

The Windows 7 ISO Image Edition Switcher is a set of small binary patches (and a tool to apply these patches) that will convert an official Windows 7 ISO disc image into an official Windows 7 ISO disc image of another edition.

The ei.cfg Removal Utility is a simple tool that will remove the ei.cfg from any Windows 7 ISO disc image, thereby converting the image into a “universal disc” that will prompt the user to select an edition during setup.

For those system admins, this will be great for you. For those who tend to lose their disc or ISOs, you can now grab a friend’s copy and change the disc to the edition you want. But remember, this does not mean your CD key will work for any edition.

Source: win7utils – Windows 7 ISO Disc Image Utilities

Diagramming and Collaboration Online Tool

When I saw this tool, I thought to myself, “This is what Visio is like on the web, except better.” Cacoo is a an online diagramming tool much like what Visio offers to you, except it has better looking stencils. With the added benefit of being online, it allows you to collaborate between multiple people in real time!

Not only can it just draw simple diagrams like flowcharts, network diagrams, office layout diagrams, UML diagrams, but what I like is the freehand wireframe stencils! Check out my horrible looking UI I drew from the stencils in just a few minutes.

Test Freehand Diagram

Awesome isn’t it? Or maybe something more advanced.

Watch their video tour below.

Cacoo – Real-time Collaborative Diagramming & Design from Nulab Inc. on Vimeo.

What’s more, basic features are free! Try it out now at Cacoo.com.