tzlee.com/blog

Recycled garbage is useful material…

Archive for the ‘CS3216’ Category

Second last CS3216 blog, lah!

with 6 comments

OK, Prof. Ben is chasing me for a blog and since I’m sitting here (at work, at this hour) waiting on a colleague, I shall write a short entry. I realized I haven’t been blogging for a while and my 105% honest excuse is that my manager went to Sungei Gedong Chalet (a.k.a. Reservist) so I was busy as hell covering some of his work.

So here comes the second last blog entry. Aheem… (clears throat)

I’d love to thank my wife, mother, father, etc. and of course Prof. Ben for inviting me to attend this class out of nowhere. I truly enjoyed my time and learnt a lot of things. Actually, I joined the class with the aim to learn anything, or what Prof would call “random stuff“, not to develop Facebook apps. I’ve actually had enough of Facebook apps back in 2007 where I worked in a small company dealing with some very first Facebook applications being made out of Singapore, although building an app for others and building an app for yourself is a different thing altogether.

So what have I really learnt? I’ve learnt that my English sucks after four years of being bombarded by Singlish in the local workforce. I’m actually struggling to write a proper blog entry every time.

I’ve also learnt that I’ve lost touch with the geek world. I didn’t even know what Google Wave was. I’ve never heard of Prezi, and I’ve never heard of DropBox. There’s probably about 100 other things I’ve never heard of that I found out during these 13 weeks.

I’ve also found out that damn NUS students can talk and present! Sorry lah, but to the outside world NUS students are either like nerds or CMI. :P

I’ve also found out that a year 1 freshie can actually learn ActionScript 3 build a Flash game within 1 week.

So there are super things that people can do that you’ve never thought was possible. But, now I know the power to create lies within, and I finally kicked myself in the ass and learnt how to build stuff in Flash. So, yes, I picked up a new language. Programming language, not French.

I also face new challenges trying to get things done. I think it’s a little different everywhere. Back in Polytechnic, it was either nobody cares, or maybe I cared too much. Yufen once said doing project a with me gave her “满足感多多,成就感少少” (great sense of satisfaction, no sense of achievement. Did I translate right?) because I practically wrote most of the code and we’ll all get an ‘A’. :P

Then at work you could K people ‘cos they either deliver the goods or get fired. It was the root of all evil at work. $$$

Then in NUS it was also different – everybody cared too much, but was too busy. Like Prof. Ben said, this is not the typical NUS class. OK, I buy his explanation.

So anyway, CS3216 is a weird class, but I guess it’s weird in the right way.

Back to work…

Written by Justin Lee

April 20th, 2010 at 3:38 am

Posted in CS3216,Technology

Tagged with , ,

Advertising as a Monetization Idea

with 4 comments

I was chatting with a few folks who made the pitch last Friday and it seems a lot of people think selling ads is the only way to make money.

While Google probably made close to $100m in Singapore selling advertising alone, I still think citing pure advertising as a form of  monetization is an extremely bad idea.

Advertising is an extremely crowded space. Search engines are doing it, news portals are doing it, forums are doing it, social networks are doing it, so where do you stand in this crowd, especially if you’re a new startup?

Instead of looking to sell advertisements for money, think of how you can monetize your strengths such as selling a service or  selling data and statistics for market intelligence, or even being acquired by another company.

Think about it…

Written by Justin Lee

February 28th, 2010 at 2:47 pm

Posted in CS3216,Technology

Damn Busy

with 3 comments

Sorry folks if I haven’t been responding to your e-mails/wave/chat promptly and haven’t been doing my homework. I’m super tied down this week with work, plus my mum’s sick and I have to be at the Istana tomorrow. The weather isn’t really very helpful since I’ll be under the damn hot sun.

If any of you need to buzz me, the surest and fastest way is via SMS.

And for those who’ve mailed me on project groupings and/or discussions please hang on a bit and I will get back to you ASAP.

Written by Justin Lee

February 27th, 2010 at 2:14 am

Posted in CS3216,Family,Work

The Business of Search and Advertising

with 4 comments

Phew. I’m finally back from graveyard work, showered and waiting for my hair to dry. I’ll blog while my memory’s fresh. If I go to sleep now, I’ll wake up with only half of what I was thinking the night before.

Chewy gave a very interesting talk at NUS today. It gave me new perspectives of the CPC/CPA advertising scene but I have my thoughts decided to blog them so everybody can discuss. I’ll be sending Chewy an e-mail so he can comment as well.

I totally agree that search is a place where money can be made. When Google went offline for two hours in the middle of last year, the Internet literally died together with them. Imagine the world without search today. (Food for thought.)

The local consumer industry’s probably not as competitive as in the US, but they certainly have found ways to suck your money without the need to spend more money on advertising. I mean, as a business, isn’t that fantastic? :P

I think Singapore’s a weird economy. Here’s why I think so:

We don’t really have much choices. When Chewy said that Singapore’s the richest country in Southeast Asia, well, maybe we are in terms of raw GDP per capita, but I’m not entirely sure if we’re equally rich when taking real costs of living into account. The way PPP is calculated just isn’t fair. I mean WTF is a Big Mac Index? It’s almost like a currency conversion against US$! PPP needs to take into account other living standards and not just a “basket of goods” plus a Big Mac — stuff like a house or a car for example. It’s not like in the US where I could choose to live far out and buy a house cheap, I don’t really have a choice! Punggol is as far as you can get! Half a million for a HDB flat? Forget it!

We’re materialistic. So when Chewy brought up the point about Taxi queues, I’m not surprised. It’s a matter of how people perceive the value of money. I’m sure there are times you think to yourself, “OK, I can afford to wait. I don’t need to spend $3. I’ll stand in line.” Singaporeans are a materialistic bunch of people who’d rather spend money on goods for showing off than for services that convenience them.

We’re suaku. I tune in to News Radio 93.8 when I drive and there’s this programme called Talk Back or something like that where people call in and debate some topic, like “do you think Taxis are expensive in Singapore?”. Sometimes it just drives me nuts listening to what people complain about here. I can only conclude that we’re very suaku.

That much about what I think is the state of Singapore’s consumers, I’ll move on to the part on advertising.

The current CPC/CPA advertising does indeed encourage competition, but this type of advertising (price war) is unhealthy for businesses. It turns consumers away from the real value of a product (or brand) and focuses on price instead. If the industry worked this way, there wouldn’t be Bread Talk or Apple and business would fight themselves to death and create more disparities of wealth.

If you looked at PC hardware in Sim Lim, the stores there basically compete on nothing but price. Same probably goes for shoes at Queenway. If they wanted to win the sales, they simply cut the price. Plain and simple? Not so. At the end of the day they basically do more work for less and customers don’t even remember the stores’ name. So now goes back to the question on my TV purchase. If Chewy asked me why I didn’t go to Sim Lim to buy my TV, my answer would be that I trusted Harvey Norman (or Best Denki/Challenger) more than the dodgy stores at Sim Lim. That’ was why I decided to take a walk at Harvey Norman (instead of Best Denki/Challenger) which was nearer to my home.

Any business who’s looking for long term growth needs to build its’ brand. And by branding it doesn’t mean a colorful logo or a fancy yodel. A brand is something people have an affiliation to and builds royalty over time. Unfortunately though, brand building has to start when a consumer is unaware, and that’s where the CPM advertising and Search Engine Optimization (SEO) guys come in to screw around with generic algorithmic search results.

Although I’d believe that that there’s potential for CPC/CPA to aid in building brands, this is still an area that’s untapped. CPC/CPA isn’t necessarily positive for brand building. Some people may perceive advertisers as scammy or desperate, for example.  I’m also sure that most people don’t plan and search online to buy everything. Some purchases are made on impulse, especially small value items like little earrings. Females 14 to 25 years of age should be familiar with such a buying pattern. :P

Written by Justin Lee

February 23rd, 2010 at 7:16 am

No Real Use for Google Wave?

with 3 comments

I can’t seem to think of a very practical use for Google Wave. IMHO it’s a technology that’s neither here nor there. It’s not a very effective replacement for e-mail either as it’s not a scalable model. It’s not exactly a great collaborative tool as well though I agree maybe it has good use for taking meeting minutes and random notes. It’s certainly not a good file sharing or document editing tool.

I’ve been thinking quite a bit on what I can really do with Wave. It’s frustrating actually :P

On a side note, it’s surprising how the ancient DNS and SMTP protocols we take for granted scaled so well. IETF and IEEE are a bunch of geniuses.

Written by Justin Lee

February 8th, 2010 at 3:00 am

Posted in CS3216,Technology

Tagged with , , ,

Causes App Critique

with 4 comments

Before I joined the CS3216 class, I promised Prof. Ben I will do his homework, so I decided I should really do it. Here’s my critique. To save him the agony, I have decided not to write a thesis and keep it short. :P

Anyway…

So what is Causes?

Technical description. It’s an application in Facebook that allows a user to make a difference by donating to a cause.

Non-technical description. It’s something in Facebook that allows people to make a difference by donating to a cause.

Hokay, enough of rubbish. So Causes aims to solve some problems, and in my opinion it is well positioned to solve what is known as the Social & Economic Injustice.

Socially and economically, we have created great disparities of wealth. A minority of the world’s population (17%) consume most of the world’s resources (80%), leaving almost 5 billion people to live on the remaining 20%. As a result, billions of people are living without the very basic necessities of life – food, water, housing and sanitation.

If the top 20% of the world’s population is 1.2 billion, then I am quite confident that Facebook users are amongst the top 5% (~300 million).

The problem with traditional forms of donation

The problem with traditional forms of donation are that they lack public visibility and transparency on a global scale. NPOs depend highly on volunteers to do all sorts of things like donation drives to keep them alive. There aren’t many self-sustainable foundations like Bill and Melinda Gates around. And if you haven’t forgotten the NKF saga where the infamous quote on peanuts came about, it’s obvious that we don’t really know where the money goes.

Basic Concepts

  • The Power to Make a Difference as a Social Media. This app basically demonstrates the power of social media and that it should not be underestimated. As of this writing, the Hope for Haiti Now cause has raised US$42,930 (S$60,617).
  • The Power to Make a Difference as an Individual. Unlike traditional donations (I’m referring to the tin-can school boys and girls at MRT stations), this app allows you ample time to search for a cause that you think really matters (than somebody preaching some unknown cause to you), read all about it before you donate. The best part is that it shows you the total amount (transparency) and others who have donated (confidence).
  • Transparency. This app seems to have done a good job by naming the beneficary organization (usually registered in the US) and by reflecting the total amount donated. However, the same old problem still exists – we don’t know where the money goes.

Technical Concepts

  • Main Navigation. Simplicity is the key. The adaptation of the Facebook UI is great, making it look clean. If you haven’t realized, clicking on Best Of brings you out of Facebook to www.causes.com which completely copied Facebook’s top bar.
  • Front Page. It seems like the front page of the Causes app has a similar concept to BOOMZcart. It recommends you potential causes and also shows the causes that your friends are participating in, but there’s some issues I observed.
    • The recommendations don’t seem to match any of my profile interests. Is it a targeted recommendation, or a random recommendation?
    • I see four causes, but they’re all the same person. It should show four unique friends instead.
  • Individual Cause Page. In my opinion this has been very well executed by mimicking Facebook’s user profile page. It provides user interaction (via Home tab), sufficient details (via About and Impact tabs), network information (via Members tab).
  • Browse Causes. Under the Find Causes navigation menu. It’s broken (returns empty page).

Food for Thought

  • Show me the money. Beneficiary organizations should provide detailed breakdown of where the donation money went. I’m not sure if this information is easy to obtain as I’m not a US citizen.
  • Real People, Real Responses. What if somebody from the Haiti earthquake came in and said, “Thank you for your donations. My family survived the ordeal.” I would hope this to happen.

P.S. Sorry I wrote this post in a rush and it looks abit random with broken sentences and such. Hope you can understand what I’m writing :P

Written by Justin Lee

February 4th, 2010 at 9:56 am

Not Being a Good Student

with 2 comments

I’m not really graded, so this means I can be a bit pai kia and not blog on a specific app that was presented. Unfortunately, I’m not 14 years old.

To be honest, I didn’t do anything for the Facebook Application Seminar project, that’s why I decided to do some community service and take photos instead. The project discussions were done over the weekend and I was packed with all the random things to do, like visiting the in-laws, visiting my parents, attending KHCO‘s 35th Anniversary dinner and of course spending time with my wife who’s almost about to twist my ears off for reaching home past midnight this morning. What’s with women and being alone at home? :P

Dr. Ben Leong wrapping up the class.

I’m very impressed by all the presentations yesterday. To be honest, they are way better than about 90% of the business presentations I’ve seen. BTW, what’s that tool that some teams were using? It’s like a huge template that’s sliding around. It’s not PowerPoint – it looks web based. Somebody please enlighten me.

Basically as many have observed, the most popular apps might not be the prettiest or the easiest. There’s many factors around which an app can be successful. It is important that CS3216 students see beyond their academic scope and realize that the world is not so simple. Jonathan’s presentation made this point even more obvious.

Jonathan Low on scams.

Unfortunately for the most of us who believe in doing good, doing business is not really the same. It’s quite a tough balance of being God and Satan. Why? I think because humans are selfish in one way or another – it’s our natural survival instinct!

Just to cite an example. Google is well known for it’s motto “Don’t be Evil“. However AdWords survived quite a while with click fraud until they got sued. It’s not entirely their fault – they didn’t do it deliberately – but they knew it was happening and was making them money, so they didn’t really stop the fraudsters; not at least until they got their ass under fire.

Cedric on prediction markets.

The second part that got me thinking was the presentation on Prediction Markets. Facebook has over 300 million users. Although this is not larger than the population of China or India, it is certainly a substantial population where a good sampling of information can be obtained. If there’s a great app to build, it would be one that analyzes social behavior for market intelligence. Food for thought.

Written by Justin Lee

February 2nd, 2010 at 9:34 am

Posted in CS3216,Technology

Little Code, But Still Complicated

with one comment

It seems like our app isn’t one that demands a lot of coding but is still quite complicated for a short development time span of two weeks.

FYI, we are building an e-commerce app in Facebook with a different concept from Marketplace.

Why do I say it’s complicated? Because it involves a lot of thinking and discussions to get the flow right. We have tiny bits of code here and there, each doing small little tasks. They don’t have much complicated code with maybe a few interesting SQL queries, but they are starting to add up to the overall complexity of the project.

The other challenge is merging the 101 different technologies here. SQL, FQL, FBML, AJAX, PHP, REST, JSON… PIE, AYE, BKE, KPE, KJE, ECP… ayiah.

Looks like we’re going to be spending more sleepless nights. Might have to forgo some features and the database tuning and indexing for now!

Written by Justin Lee

January 26th, 2010 at 5:51 pm

Posted in CS3216,Technology

A Word On Amazon Web Services

without comments

Today’s lecture was given by folks from Microsoft and Amazon. The Microsoft part was on the Imagine Cup 2010, a global student competition. I’m out of bounds already, so I won’t talk about that. :P

The most part was on Amazon Web Services (AWS). It’s pretty interesting how they had created a variety of products from technology and be able to monetize it, but I think the concept of utility computing is still at its infancy, or maybe early teens. The huge complexity here is the billing. Amazon bills for memory, CPU, disk, I/O bandwidth, etc. That’s a pretty exhaustive way to suck your money! I’d much prefer a billing scheme more like my mobile phone where I pay a flat rate a month and get billed some extras. While the aggressive billing ensures low contention on AWS, it is not economically viable for small companies to jump on it yet.

There was a fair bit of discussion about pricing. Surely the sales folk looked uneasy and was all ready to stand up and defend himself, but let me add a few words in their defense – real bandwidth is expensive. A 1 Gbps “dedicated” link costs upstream providers like SingTel IX and StarHub IX an average of S$10,000 per month. We may find AWS slower here because of the latency we get transiting our Tier 2 providers (SingNet Broadband, StarHub MaxOnline) taking the cheapest (and thus longer) routing paths. We all think BGP is a distance algorithm, but in reality it can be easily manipulated using a technique called AS-prepend and policy-based routing.

If you want to read about bandwidth, I wrote an old blog entry here.

Most of our servers here load up slow in the US for this matter, so if you have a business that wants to reach millions around the world, you will probably not want to host it in Singapore, and when you start thinking of deploying overseas, manpower (or your time and air ticket) alone would make you think about switching to AWS instead.

P.S. My angmor is getting from bad to worse. I didn’t realize I was writting terrible Engerish until I read some very old documents I wrote back during school days. This is what the working society does to you! Argh!@#!@

Written by Justin Lee

January 26th, 2010 at 12:23 pm

Good Old Games

with 2 comments

I was at the arcade in Bugis for a short while after dinner. I’m not exactly an arcade guy because the noise level at most arcades are on par with an idling Boeing 747, but I was there just to look around and made a few observations.

The most popular games today are the musical ones – guitar, drum, DJ, dance. Some other popular ones are the car racing games like Initial D. Finally there’s a crowd at the corner with old-style arcade games like Street Fighter where you sit down with a joystick and 3 buttons. I call this crowd the one-token warriors, i.e. one token lasts them an entire day.

Games come and go, some of them are hypes and go away after a while, some really sucked and didn’t even work out, but some good old classics remain. I asked myself, why?

On top of that, I had two other questions. What was the game companies’ revenue model? Was it one-off, i.e. the sale of the arcade machine, or was it continuous, e.g. profit sharing. I have no answer for this yet.

So to figure out an answer to my first question, I narrowed down some classic car racing games that I am familiar with.

Daytona (the original) is really the best of its’ time. It was around since the mid 1990s – that makes the game more than 10 years old to date. This is quite obvious because it still uses the old fishbowl-shaped CRT tubes.

Daytona 2 is the newer version released in 1998, but wasn’t very popular and slowly disappeared from some most arcades. There’s a version of the machine with motion simulation as well, making the game a little more fun – I think it’s still around in Cineleisure.

Sega Rally was launched probably around the same time as Daytona but wasn’t very popular. The hardware is the same as the Daytona, but the game play is very different.

So I asked myself, what makes Daytona so popular that it still exists in almost every arcade today?

I think it’s simplicity in game play and moderate realism. Here’s where I think the other two games failed.

Sega Rally was difficult to control and didn’t have the feeling of thrill – it was too realistic, too diffcult and felt slow.

Daytona 2 had too many vehicles to choose from. While this sounds like a feature from a marketing perspective, this makes the learning curve steeper, requiring more experimentation from gamers to get it right, and of course more tokens which means the game became too expensive. On top of that, it had the speed realism of Sega Rally and also felt slow. The graphics in the background was also excessively distracting, often causing players to miss a turn.

Daytona (the original) had only one car, two transmission modes and three stages. The car was easy to control and the graphics were clean and probably fantastic at its time an age. Sounds like a magical number sequence, doesn’t it? 1, 2, 3.

I draw another observation from my visit to the arcade and the three games above – people love games that challenge their hand-eye co-ordination. Actually, that’s probably what most games really do. Thus it is true that if the game felt slow, it isn’t fun to play. Think about it – Counter Strike, Quake, Daytona, the ancient Snakes game in Nokia phones, the new music games in the arcade… they are all the same in this aspect.

What do you think?

Written by Justin Lee

January 25th, 2010 at 1:18 pm