Category: Tech, Code & AI

  • Why is everybody building an iPhone app?

    I’ve had many many self proclaimed wannabe entrepreneurs approaching me with “compelling” iPhone app ideas, and oh, it’s top secret – before they breathe a single word about it I’ll have to sign a 3,112 page NDA so in an event that somebody else has the same idea I can be brought to court and made to compensate billions.

    What is it with iPhone apps, really? Even SMRT released an app and had a press release for it. For what? Can’t they just post disruptions on Twitter and Facebook – which I think they already do? Why build an app? They think my grandmother has an iPhone? An app is not the solution. A proper announcement system and staff training is.

    The phone and mobile apps are just technologies and delivery mediums. Building a product around a technology is a wrong start. Technology should be built around a product instead. A lot of “app” pitches I’ve heard have no real value. Technology alone does not sell a single cent. It must solve a real world problem. Would you buy an app because it could, for example, switch on your microwave at home? Has remotely switching on a microwave been a need for housewives?

    If you’re reading this and thinking of building an app, please look at the product as a whole. If it’s just another one of those apps, I think you may be better off spending your time and money (app developers charge a really crazy sum BTW, just because it’s HOT) building a real product with a HTML5 site that will truly scale when the need arises… at a fraction of the price. If you are a business owner, don’t derail your core business by focusing on apps and whatever technology trend that comes along.

    Sometimes no technology is the best technology.

  • A Sunday at two Car Showrooms – BMW and Lexus

    I got a call from Performance Motor Limited (“PML”) about a private sale, so guys being guys, I agreed to go down. Of course, I brought the wife along so she can play “finance manager” and say NO in case I get tempted.

    So the private sale was like this – you must be on the invite list, and must have a car to trade-in and they offered an insane price for the trade-in. The trade-in price was easily >$30K above market prices, which brought the BMW 318i price down from $180,800 to $14x,xxx or a BMW 320i from $203,800 to $17x,xxx.

    The discounted price for a 318i is good considering that a Toyota Camry or Honda Accord are selling at the same price in the current market.

    But I was more interested in the 320i. That’s a crazy price for a car, I’m sure. But I was pleasantly surprised by what the latest model offered – all the electronic gadgets makes me pee my pants. It has 17″ rims, iDrive with built-in navigation, bluetooth telephone w/address book and voice activated dailing, in-vehicle information display such as service intervals and other mechanical status of brakes, engine, blah blah blah, timer for air-con recirculation so you don’t get into a baking hot car parked under the sun, and here’s the best part – INTERNET. Yes, bluetooth tethering with the iPhone.

    The 320i also has fold-down rear seats (the old one didn’t, or was an option) and the audio system has been marginally improved with more powerful bass (up to +/- 10 step adjustments instead of +/- 6 on the old models).

    I also test-drove the 318i which had the new electronic steering system and it was indeed much lighter and easier to park the car, but there’s a slight lack of “road” feel. I still like it though, cos the wife doesn’t like the heavy steering on the old model.

    It was very tempting at $17x,xxx. Damn bloody expensive, I know, but I really liked it – it’s a dream car. We spent a few good hours in the showroom, and the salesman started giving an additional 1-2K off. But the wife said NO. Sigh. No new high-tech ride for me.

    So being unconvinced that BMW was the best car around, I went pouty faced over to Lexus to test the new CT200h which they claim to be oozing with technology. It is lower in price too due to government discounts on green cars.

    What a disappointment. The interior looks sub-par (compared to the BMW) and the sales guy also sucked – he treated me like I couldn’t afford a Lexus. Yeah, maybe I can’t but the showroom looks pathetic – it’s was EMPTY.

    The base model at $154K didn’t have leather seats so I asked him how the fabric looked like. His reply was, “Huh? Cloth lor.” I was like WTF? Like show me some samples? He said they didn’t have any.

    Anyway, no leather? For a Lexus? Borneo Motors, I don’t know what you were thinking.

    The higher “Plus” model at $158K had leather seats. That was the only difference – top up $4K for factory fitted leather.

    So I decided to cut the crap talk and asked for a test drive. Here’s a summary of my experience:

    The seats were manually adjusted. For a $158K car, I wouldn’t expect that.

    The moment I pushed the START button, the car feels weird – it was silent except for the air-con blower. I got on the gas a bit – still silent.

    Then at approx 30km/h the petrol 1.7 litre inline 4 engine kicks in and you suddenly hear a low rumble and more power.

    My first foot on the brake in the carpark felt weird too – it wasn’t progressive and the braking effect was sudden as if somebody else was braking the car harder than you wanted for you. My feeling is that it’s caused by the car engaging a flywheel of sorts to charge the NiMH batteries.

    After getting up to speed, braking felt slightly better but still weird – it’s just not progressive. Adding to the weird braking behavior, you could hear the whine of the dynamo/generator which was a little annoying.

    I was still driving in “normal” mode all this while. Then I switched to the “sport” mode – oh what a difference. The CVT gearbox kicks me into a lower gear and now the car takes off on it’s 1.7 litre engine. But again, this felt weird. The change was too abrupt – from a tame hybrid it was suddenly TOO responsive and I had to change my footing.

    Then finally I tried the “eco” mode which was oh my god slow as a turtle. I couldn’t stay on it for more than 5 seconds, so I switched back to “normal”.

    It was a short test drive, but it wasn’t a good experience at all. As a driver, I felt weird. The car’s behavior was abrupt, unpredictable and unrefined. The wife sitting quietly at the back also said the ride was rough and the interior didn’t give her a “wow” feeling. The audio system was terrible – in fact worse than my Nissan Latio. On the level of sound insulation, the BMW wasn’t any different. So whoever that tells me a Lexus is silent, I’m going to beat you up.

    At $158K, I’d rather buy the BMW 318i which would be packed with slightly more features and a more refined drive. The $10K difference could pay for lots of fuel – at least 3 years’ worth.

    I think that these hybrids still need some time to get their act right. To achieve 24km/l it might be worth considering a Toyota Prius instead.

    I’d love to test a BMW ActiveHybrid if it comes here though. I have confidence in BMW’s engineering to build a more progressive and predictable hybrid.

    OK, enough for the day. Back to reality. No high tech cars for me! 🙁

  • Welcome back

    As promised, I will attempt to revive my blogging.

    As I type, I’m actually watching “The Social Network”. Damn geeky, I know. Not the best movie of all time for a Saturday night.

    Anyway just to start off the new year – lots of shit happened in Q1 2011. My “Ultimate” Driving Machine™ had a cracked radiator which meant it needs to be replaced. Not too expensive but still ouch.

    A friend got into an accident with a bus that tried to flee the accident scene. Thank god he’s not injured at all – the bus hit the passenger side and he was alone in the vehicle. He was lucky he had a witness.

    My high BMI neighbours upstairs are still as annoying as ever, even right now at 1.25AM and I have another 3.5 years to put up with them and you bet I will.

    By the way, if you’re wondering – Singapore has no decent law against domestic noise. There’s nothing the government can really do if you have an imbecile neighbour like mine. All you can hope is to curse them to rot in their filthy home and get eaten by fleas so they’ll mixmash well with the herbs and spices they pound daily in their bedroom. I’m not sure if even an impending election would change anything since Bukit Panjang is still split into two.

    Just six hours ago I heard I got voted to be in the EXCO of KH. I’m puzzled how I got voted even when it was a no-show; I was at CGH and it wasn’t a lie. I don’t think I can commit and I will not bullshit my way into a role I cannot put quality effort into. This is precisely what I am going to tell them during the next meeting: Career, Family, Hobby. Choose two. You don’t need to be a rocket scientist to answer that.

    I’m also trying to adopt a minimalistic approach to life. I’m trying to get rid of shit I don’t need and just keep the necessary stuff at home. I’ve always believed in buying things of quality versus price since high quality stuffs tend to last longer. Also you’re likely to only need ONE good, say, shoe than ten cheap shoes.

    That’s it for today. I need to watch my movie. Stay tuned for more updates.

  • Offline HTML Mobile Apps

    Picking up iOS is quite a bit of work plus you need to buy a Mac to get Xcode running.

    Yes I know you Hackintosh folks are going to start making some noise but let’s keep this legal.

    So I’ve decided to build quick apps using jQTouch.

    To get an App icon on your home screen, simply… add the page to your home screen! Duh. It’s like adding a bookmark. Try it – it works!

    But here’s the next problem – how do we get the apps to work without network connectivity?

    HTML5 introduced something called the offline cache manifest. Here’s how to use it…

    Step 1 – Create a file called yourfilename.manifest with the following content

    CACHE MAINFEST
    demos/main/ajax.html
    demos/main/ajax_post.php
    demos/main/index.html
    demos/main/jqt_startup.png
    demos/main/jqtouch.png
    jqtouch/jqtouch.min.css
    jqtouch/jqtouch.min.js
    jqtouch/jquery.1.3.2.min.js
    themes/jqt/img/back_button.png
    themes/jqt/img/back_button_clicked.png
    themes/jqt/img/button.png
    themes/jqt/img/button_clicked.png
    themes/jqt/img/chevron.png
    themes/jqt/img/chevron_circle.png
    themes/jqt/img/grayButton.png
    themes/jqt/img/loading.gif
    themes/jqt/img/on_off.png
    themes/jqt/img/rowhead.png
    themes/jqt/img/toggle.png
    themes/jqt/img/toggleOn.png
    themes/jqt/img/toolbar.png
    themes/jqt/img/whiteButton.png
    themes/jqt/theme.min.css
    some/other/file.name

    Step 2 – Make sure your web server reports the MIME type correctly by adding the following config to Apache. You might need to contact your hosting provider to get this done.

    AddType text/cache-manifest .manifest

    Step 3 – Add the following tag to your HTML page so the browser knows where to find the manifest.

    <html manifest="yourfilename.manifest">

    That’s it!

    Original reference material here.

  • IPv6 over GRE in RHEL/CentOS

    Note: This article is not about 6-to-4 tunneling. This is about carrying IPv4 and IPv6 at the same time (aka Dual Stack) over a GRE tunnel in RHEL/CentOS

    I was configuring an existing GRE tunnel on my Linux router when I found that the initscripts in CentOS 5.5 didn’t support IPv6 for the tunnel devices.

    The quick hack was to edit /etc/sysconfig/network-scripts/ifup-tunnel and look for this line:


    /sbin/ip link set dev "$DEVICE" up

    Add these lines just after the line above:


    # Added to accomodate IPv6 in tunnel
    /sbin/ip addr add "$IPV6ADDR" dev "$DEVICE"

    Then modify /etc/sysconfig/network-scripts/ifcfg-tun0 (or whatever your device name is) and add the following lines to run dual stack over GRE:


    IPV6ADDR=2001:abcd:1a2b:3c4d::2/64

    If you need to use the tunnel as an IPv6 default gateway, create /etc/sysconfig/network-scripts/route-tun0 and add an entry


    ::/0 via 2001:abcd:1a2b:3c4d::1/64

    Then just restart the interface and bingo IPv6 and IPv4 dual stack on a GRE tunnel.

  • Review of iOS 4 on iPhone 3G

    I’ve just updated my iPhone with the new iOS 4 firmware yesterday and here’s a short review.

    There has been lots of commotion about multi-tasking but I’m not the least concerned — not because I am not getting it on my iPhone 3G, but because I don’t see a need for it with the type of apps I use. Mail and Google Maps in the background doesn’t make sense. I might change my mind if there’s a good IM client someday.

    For now, the only useful features are shown below.