Monday, February 22, 2010

Pitching Session

Okay, first up, an admission: I went to the pitching session already knowing what I was going to do for the final project~ I'm not sure how many people / groups had a similar frame of mind, but I'm sure I wasn't the only one, which leads me to think that the pitching session could have come sooner, before most people would have made plans for the final.

Certain presentations stuck with me for various reasons. The introduction to the World Cities Summit was informative, but presented in such a strange manner it left me wondering why he was present at the pitching session. For the better part of his presentation, I was trying to figure out if he was attempting to convince us to build a SimCity adaptation for Facebook, or just... Being helpful and telling us all about this swell event. Turned out to be the former, which I feel should have been the focus of the presentation from the beginning instead. If it had, we'd probably have a clearer picture of his ideas and the direction in which such a project would head, whereas the speaker mainly concentrated on the event, leaving the marketing of the application idea till the very end. Perhaps the speaker did not even come with such an idea in mind, for he certainly gave that impression to me.

Project Nimbus came with two shirts proclaiming Data and Services respectively, which is, essentially, their product: Data as a service. Instead of innovators spending time "chasing or recreating content, screen scrapping sites, and Google-ing for random data sets", Project Nimbus aims to provide such content to them, leaving them free to, well, innovate~ Although I'm not in need of such a service now, I can see how other projects (and perhaps mine in the future) could conceivably benefit from it.

The Red Sports presenter, Leslie, was obviously passionate about his goal, to promote Singapore's youth sports scene. He had an idea and followed it through, and now his site provides regular sports updates from schools in Singapore. Together with a team of writers, the site resembles one of a newspaper. As I'm hardly a sports-centric person, what I took away was not the product they have managed to create, but the energy and passion of this person that has led him through many years to reach this point, which I find admirable.

Perhaps the presentation that left me the biggest impression was the only one by an undergraduate. I had already seen Module-Review.com before, having been referred to it by a coursemate. What I couldn't have guessed was the fact that it was created and is still being maintained singlehandedly by an undergraduate like us - Jace. I think the idea is a very solid one, as many students do wish to find out more about the module from students who took it in the past, before signing up for the same. Perhaps the database could be extended further to collate feedback about lecturers, especially if a lecturer is teaching a module for the first time and thus has no applicable comments from the previous batches. However, future maintenance may be a problem, since a site that is visited generally two periods a year would not gather a lot of advertising revenue. Jace will have to find some other way to support this site.

Well, that's generally what impacted me during the pitching session. My laptop has this sudden aversion to loading blogger for some strange reason, so I'll be back as soon as I find a PC, to embark on dissecting yet another Facebook application.

Tuesday, February 2, 2010

Friends for... sale?

Just yesterday, during the Facebook Application Seminar, I was introduced to a Facebook app I'd never seen: "Friends For Sale!" I'll have to confess that my initial impression of it was approximately 10% intrigue and 90% what the heck is this for? So in deference to that 10%, I listened on~
Buy people and make them your pets! You can make your pets poke, send gifts, or just show off for you. Make money as a shrewd pet investor or as a hot commodity! Friends for Sale is the bees knees!
Okay let's start with giving credit~ As the group pointed out, the name is probably the most succinct summary I've ever seen of a Facebook application. This app apparently lets you buy and sell your friends as pets, declare your wish to do so, and give gifts to them. While I feel the titular purpose of this app a little disturbing, there seems to be a sizable portion of Facebook users ready to disagree with me, so perhaps this meets some niche desire that I fail to fully empathize with ^^

The group then touched on the Seven Deadly Sins and Maslow's hierachy of needs. Where does Friends For Sale fit into? Probably Greed / Envy / Pride on the Sins, and Self-Esteem and Achievement on Maslow's list. While it might be pushing the definition to call playing such a Facebook game a sin, perhaps some people really do feel a greater sense of self-worth when they are deemed (or deem themselves) to have some form of superiority over others, especially if who they lord over are popular in their own right.

On a more technical note, I feel that the simplicity of the application worked well for them. With a lot of their features leveraging on Facebook's own capabilities, scalability would have been less of an issue during development. Also, starting the user off with some capabilities and value is a good idea, one that our app may have overlooked on our first iteration, as it ensures that the user can explore the game upon registration.

Having said all that, I still do not see the point of this application. What is there to entice me back regularly? Also, while I've not played much of other Facebook games either, I believe applications that offer an alternative life in some way (be it fishing, farming, or some other activity) would be more appealing than buying friends. How many friends are you going to buy to boost your ego anyway? And I would personally be really disturbed if someone "bought" me, even if it's only in a virtual world. Like, get away you control freak.

Alright then~ Time to go back and market penguins~ When you cannot fly, better make sure you're helluva good swimmer.

Saturday, January 30, 2010

Lessons from a deployment deadline

This is a really overdue post, but it's the first time in a while i'm properly awake in the day ^^ which brings me to the first lesson i've learnt:

  • Sleep is an essential part of life. All repayment of owed sleep often comes with exponential interest.
For the last week, my group of 4 people, Laurence, Carolyn, Eldwin and I, have been doing night shifts of varying lengths. I, for one, can't really do coding marathons over several nights, but I.. managed somewhat. I do believe, though, that there has been at least one night where I failed to respond despite being online... having fell asleep on my keyboard. The full aftermath, however, came in the days after submission. I can't recall sleeping through most of the day for a few days on end in recent years ^^ Now that the first submission is over, I realise it could have been partially averted by observing the next lesson i've learnt:
  • Read the manual. Especially the fine print.
Our application was, up till a really short while before submission, hosted on a virtual server within our school. I was not the one who submitted the request, but was told that the space would definitely be sufficient for a collection of text files. That claim turned out... partially wrong.

On the night of our submission, I uploaded one rather essential web script onto the server. After prompting for confirmation to overwrite, it deleted the file, and attempted the write the new one.

It failed. Horribly. And left us staring at a "Disk quota exceeded" message.

Suffice to say, we had a bit of a crisis. However, we couldn't, for the life of us, imagine *how* the total file size could have exceeded what i now knew as 1GB of space! But after a while of frantic digging, we found a rather large file on the server, named error_log. It was... 1.3GB. Apparently, we had forgotten to lower PHP error reporting, and a whole clump of warnings to the tune of "Variable not declared". Exasperated, we proceeded to delete the file, but the quota busted error still remained. We guessed this status was probably refreshed on a periodic basis, and couldn't really do much at that point. Luckily, we managed to find a saviour nearby, and with him came my next lesson~
  • Always have a backup plan. Especially so during the last moments
When we realised we couldn't save our server that night, we intended to shift to AWS, which we weren't on initially as we wanted to save the credits for the Final Assignment. While trying to figure out how to connect to it's SQL service (also part of the reason we weren't on AWS), Frank offered to host it on his server. So now the application is running on a third-party host, and we actually had something to show for the submission.

So, thanks to all the help we received in the last hours, we actually managed to submit the alpha version of our as-yet-unnamed application (officially, anyway). We now have a less buggy system, a really good design, and a humongous backlog of features yet to be implemented. So I'm off to sleep a bit more for now, and resume coding very soon~

Friday, January 22, 2010

On Choices and Names

Wednesday, 13th January. Our group has decided to go all out with our Facebook app, or die trying~ In other words, Penguin Award, here we come!

It might seem strange that we're striving for the award given to the most spectacular failure... but it's not just that which we're aiming towards. Among us 4, we've bounced our dream FB apps off each other, grabbed a few ideas off different points made by different people, and have come up with a dream app that all of us, individually and as a team, aim and want to see through. And i think therein lies two very important points. Firstly, a team works much much better when everyone wants it for their own personal and professional pride, and not just because it's their job or they were coaxed by someone else onto the team. Secondly, dream big. It doesn't matter if you fail initially and / or repeatedly.

Despite starting early, our assignment Aspirations weren't complete till just before 11 pm yesterday, the day of the mid-assignment submission for the Facebook assignment. Not that we were lazy, but simply because that wasn't our priority. This was, and still is, the first Flash app Eldwin and I have created from scratch, and we cracked our brains for quite some time over the format / syntax of Flash. Concurrently, Laurence and Carolyn were busy designing the logic and graphical interface of our app, both having to learn on the go as well. Consequently, the Aspirations were put on some figurative shelf for quite some time.


Even the name for the App wasn't decided till really late. In a world where all you see of a product before you use it is its name and a short description, these are the first attention grabbers for new users. We wanted something with a catchy ring to it, while referring to our content in some way. Our placeholder name, Codename Gentoo, is our internal reference to it, on account of Gentoo being a family of penguins ^^. An interesting name I found while page hopping was Booooooom, which I initially thought was weird since it was hard to remember its exact length, till I saw its logo.



Okay, that's quite cool~ ^^ It'd be quite hard for someone with their logo to forget them. It even reminds users of the services they provide, as the company is actually a design company.

Names and logos are, especially in Facebook, what many users will see first. They need to be related to your app for their first impressions to be accurate. They need to be catchy enough for them to want to know more. And above all, they need to be simple enough to be remembered.

I wonder what our app will be called in a few weeks time~

Friday, January 15, 2010

On Expressions and Impressions

Facebook App groups are due today~ Over the past few days, we've all seen our coursemates pitching themselves in order to get themselves groups, in various different ways. Some were successful, some... not so. What went right / wrong? Why did some people take longer to find their groups?

Impressions count for a lot, regardless of how accurate they are. According to a course held by consultants from McKinsey, impressions can be, and are, made within the first 10 seconds of meeting someone new. What were these 10 seconds? How many of us have actually greeted our new coursemates, let alone sat down and talked to all of them? For most, the contact we've made has been limited to CS3216 Superheroes, Show & Tell, and the recruiting / recruit-me emails that we've seen and / or sent. Of these three, I think the greatest impressions would be left by emails. An email, in fact any written word, has to convey its intended meaning without the aid of gestures, pitch, volume, and body language. It is therefore important to realise how one's words might and will be interpreted. Some emails that I've seen come across as willing to learn and experience new ideas, new people, and new working styles, whereas some came off as arrogant and narcissistic. The actual details vary, but the arrogant-sounding ones generally seem to imply the sender's intellectual and / or social superiority... and whether intentional or not, that's probably not a good foot to start on.


That being said, I think prof's restriction for all our project groups to be distinct is a good one, for it forces us to know other students and work with them, circumventing our original impressions of these people and discovering their true talents within. Hopefully our initial impressions of them would be wrong, and they turn out to be really fun and supportive people to work with~

Saturday, January 9, 2010

CS3216: What, why and how?

School's starting on Monday! And with it, our first CS3216 Lecture, and Show & Tell~ But... what SHOULD I expect from CS3216 anyway? Frankly, I have no idea~ ^^

CS3216 is a cross-faculty module where people from all walks of life work together to develop new computer software applications to be deployed in different platforms, like Facebook, Gears, and Wave. Interestingly, that's where most definitions stop. Something about CS3216 defies precise definition... Perhaps it's the diversity of talent in the module, or the individual motivation that drives these people, and the chance to work with people having very different world views, that causes most (if not all) of the seniors to promote the module to their juniors

I applied for CS3216 with the primary intention to learn. Learning new programming languages and methods, learning design and learning animation, these were important, but could have been done on my own. What I feel cannot be so easily learnt elsewhere in school is the collaboration and cohesiveness between a team, especially a team who has just met, and working to push ourselves and our product to the limits of our capabilities, while under a strict deadline. These are lessons you cannot get from any book, any classroom, any lecture theatre. These have to be experienced with your own hands and eyes.

As I was beginning this post, I was listening to Lea Michelle's cover of the song Taking Chances (originally by Platinum Weird, also covered by Céline Dion). The lyrics for its chorus rather accurately capture my how I feel towards my second semester in NUS, and also towards CS3216... Take a chance, and jump off the edge, never knowing if there's solid ground below.

But what do you say to taking chances,
What do you say to jumping off the edge?
Never knowing if there's solid ground below
Or hand to hold, or hell to pay,
What do you say,
What do you say?

Here's to a good semester ahead~ ^^

Friday, January 1, 2010

Blog Created!

Yup, the title says it all~ After a long debate about my address I decided to just stick with this... Sounds alright I suppose ^^

Well... This blog partly exists for NUS' CS3216, sometimes called Facebook@NUS~ So if, by some chance, random people stumble on random posts they don't really understand, fret not ^^ They come from a different world~

So, that's it for my "first" post! (look below / in the archives for a backdated one...) Happy New Year, and please feed the hamster!