Saturday, September 29, 2012

Mobile App - DONE!

Third assignment is down (check http://coffee.yrmichael.com/!) 

Reflections for the assignment:

I didn't really do any coding this time round (which is embarrassing) but I think because of this, I have a better understanding of... things. I think I like to work with a clear idea of how this application is going to be, but this time round, I didn't manage to have a clear picture of the app at all. In fact, I had no idea what the full feature list was going to be, till Div coded it. >.> (On his defense, I think he didn't want to promise anything until he was going to deliver it.)

In any case, it's also a matter of style? Me and Yujing are the type that will check every single detail with each other when coding but I don't think Div and Michael are the type to do so. So I think I was a bit annoying to them at first, when I gchatted them very often. I think it's really hard to adjust my mode of operation (or modus operandi) so in the end, I gchatted with people outside my group. A lot.

Actually, there's a whole timeline of events that led to me giving up on coding, but I think it was Wednesday that triggered it. At 4am, Div and Michael decided to give up our original (complicated) plan and build something much simpler, and by the time Michael showed me the stuff at 11am, I figured out two things:
1) I won't be able to help much under such a short time and,
2) Div and Michael are incredibly fast at coding, and they understand each other very well. 

The second point is important. Also, I really, really trust Div and Michael to come up with a working product...

So I did the report. There were a few questions that I didn't really know how to answer, but at that time, I didn't want to ask questions and disturb the two coders, so it became more of a "Div, read this and see whether it's okay" thing, which seems to work better. After a while, report-writing was quite fun. I was with a friend while writing, and we'll ask and answer each other's questions when writing our reports. ("Does this sentence sound okay?". "HMMM..." etc.) I also had to look around and understand about microblogging (my friend taught me this one!) as well as authentication schemes (had to research a lot for this one!) In a way, I ended up learning a lot via research. 

In any case, my project group-mates were good! We got work done, and a pretty solid product. It's really usable and neat on the mobile phone, and I think my group-mates really put a lot of thought into the usability of the product.

On the other hand, this isn't what I consider an ideal group to work in, mainly because I'm not pulling my own weight. Also, Div is a Baa Baa Black Sheep (BBBS). I think while I have learnt some technical stuff, I learnt a lot more about group dynamics, and why Prof has always considered our CS3217 group to be really good. Also, I feel that there was quite a bit of miscommunication sometimes. Mmm, I also probably need to level up my coding skills quite a bit.

Time to start speeding up for final project in any case! Whee~!

Sunday, September 23, 2012

Most Exciting Day

I just had the most exciting time of my life.

I accidentally switched off my laptop while the battery was taken out, and it died. Like, terribly. It started up but I couldn't get into my login screen because it just couldn't load that part. Imagine my horror! 

D:

In any case, after trying to use their tools, I ended up with something that I could log in, but without any fonts. Haha, so I had all my desktop icons without any words below them. When I opened up directories, all I could see were the folders/file icons but absolutely no words to indicate what they were. At the address bar, instead of the usual " > Computer > Local Disk (C:) > Windows > System32", all I saw was " > > > > ". Honestly!

Thank goodness I found my way to running cmd.exe as administrator (had to find out where the file was located, so that I could right-click it to run as admin, and even so, I only recognised that command because of its icon) and do a "sfc /scannow"

And that took a very long time. But it recovered mostly everything. Had to reinstall/reconfigure node + git. Had to break a lock in mongodb also. (Ummm, anyone knows how to break it correctly? I umm... just deleted it.)

But everything's back to normal, I think. 

(Haha, there was this time also that I was really panicking because I thought command prompt wasn't working because I did "ls" and nothing was showing! Until my brother came in and told me "windows doesn't have ls". =.=)

Anyway, regardless of what they tell you about not leaving the battery in your laptop, just leave the battery in. Or you could well, gain a good experience in spending 5 hours trying to recover your laptop. 

It was really fun though. :D

Thursday, September 20, 2012

Fifth and Sixth Week

Fifth week was filled with meetings, debating on what app to do. In the end, we settled on a todo list, which is a pretty good idea. It's simple, but it's hard to do simple things, right?

Following that, this week has been filled with plenty of reading of documentation. I am very clueless about Node.js + the rest of the stuff that my team is using, so I'm really trying very hard to catch up. Hopefully, I can contribute work :S Michael also attempted to explain things to me, and after eyeballing hush, I sort of understand what's going on (what calls on what). Understanding it is one thing, but being able to code in it is another. Hopefully, I can contribute to the project. (If not, I'm going to buy coffee and what not for them.) Speaking of coffee, I am also really liking coffee-script, although it's hard to learn stuff while reading coffee-script - all the examples given online are in .js. The entire framework and all the libraries that my team is using is also really magical somewhat so haha, not easy to learn? But yes, I shall eyeball, and practice writing more code. 

Meanwhile, I seem to be having more luck with Maths recently. My midterm last week didn't go that badly (umm, marks aren't out though), and I'm starting to get really interested in geometry. 



This was part of my assignment answers for MA3229 (Geometric modelling). Mmm, I recently discovered components (e.g. slider bar, text area, plot area), so I used it in my assignment. (The number of points that interpolate the curve changes when you slide the bar.) In any case, I started wondering how come Maths Professors don't do it more often, like using all these tools to help their students visualise what they are learning. In any case, I'm starting to feel that I could be on my road to my FYP, since my FYP needs to combine both Maths and CS. I really need to conceptualise it better however.

But in the meantime, I really need to check my students' work and finish up a Maths assignment.  Good night everyone, and sweet dreams!

P.S. I really need to exercise the other side of my brain to come up with ideas for CS3216.
P.P.S. My skills in identifying hot games has also improved, although for now, it's a lot less useful than being able to identify who will get off the train first whenever I want a seat in a crowded train. Mmm, maybe I should have advertised that as my talent in the talent show at the beginning of the course.
P.P.P.S. There is some backstory to my group. I think that in CS3217, I really wanted to partner up with a lot of other people whom I hadn't worked before with (e.g. Eldwin, Div etc.). So at least in CS3216, I finally got the opportunity to work with Div, who was the first person I approached for the team. 

Friday, September 7, 2012

Third and Fourth Week + Facebook/iPad Seminar

If you're here to see my critique, it's downstairs in another post...

In any case, we have survived through the first CS3216 Assignment! I'll probably blog more about what our application does later. In the meantime, I'll blog about my third and fourth week. Third week was spent coding throughout the weekend as well. :S Jon Lew also talked, but I felt that his presentation could have been a bit longer. And I realised how hard it is to structure the talks for 3216 because each and every talk would have been very useful if we had learnt it at the start? Haha, I guess the learning curve for CS3216 is really steep. On the other hand, it's good that I knew some of the stuff (Twitter bootstrap!) + I did play around with Facebook API during the summer. 

Anyway, we did our Facebook/iPad seminar on....



I had very good team-mates for this assignment. We had two people who could really talk (Omer + Jim). and Trung did the slides really nicely. I talked also, but I'm really amazed at how my groupmates managed to articulate their thoughts so clearly. I am in awe of them :D (And I am happy that I didn't screw up as much as I thought I would.)

To be honest, I don't think we spent a lot of time on the seminar. Originally, we wanted to write .js script for the presentation, but we didn't have time. (Heck, I started on the slides at 4pm on Sunday.) On the other hand, we did meet up before that to consolidate our thoughts on the application so I guess our points were quite well-discussed among our team-mates. 

Prior to this, I've never really thought about how apps make money (i.e. what business model are they adapting etc.), but through the discussions with my group-mates and research, I've really gained an insight into it. The seminar also really helped, and I can understand why people spend so much time thinking about the business model of the applications etc. For a coder, I feel like I just build what I want, but to really release an application, we really have to think of how to market it.

I didn't really like the Pecha Kucha style, but I speak fast enough (not Ben Leong speed though). The problem I feel is to slow down and extract out the main points. There's no point in speaking too fast if your listeners can't digest what you are saying. I certainly didn't manage to listen to a few speakers who spoke too fast, just to cover their points. Maybe a good style would be to speak slow enough, and use fewer words to express what you feel (i.e. only say the main points and don't digress). That, I find, is the beauty of Pecha Kucha. 

Also, I had other apps that I really wanted to talk about for the seminar. Three applications that I thought about presenting for the seminar, or Free Advertisement For These Applications:

1) Cubie


I discovered this application only after we had to submit our three choices. It's like WhatsApp, but cuter, and available on both the Android and Apple App Store. You can also draw stuff on it. It would have been interesting to do the seminar on what is essentially, a WhatsApp clone (I mean, if products are good, people will try to copy them, right?), but I discovered this application too late to even suggest it. 

2) Puzzle and Dragons


I've been playing this game since the start of summer holidays, so that's more than three months. Basically, you train up your dragons and go into dungeons to fight other monsters. Those monsters may end up dropping eggs, which hatches into your own monsters. To fight in the dungeons, you have to play this sliding puzzle game, where you drag the orbs to form three or more in a row. The corresponding colour of the orbs indicates which monster of yours will attack. (I.e. if you make a three-in-a-row for the blue orbs, only your blue monsters will attack.) They make money by tempting you to buy "magic stones" (in-game currency) which you can use to expand your monster box, or attempt to get rarer creatures.

This game is really exciting because they have new dungeons every week, and I'm really tempted to spend money on it. Unfortunately, it's entirely in Japanese. (Yes, you can check out the engrish on its App Store for confirmation). We thought that it would have been unfair to choose this application for the seminar, as it was in Japanese and that could have limited people's comments on it because they can't really download the application and try it out. (You'll need a Japanese App Store account!) But I really liked how they took the Dungeon-Crawling + Pokemon Collecting idea along with some form of Bejewelled Puzzle concepts together to form this application. Nothing really new in that sense, but somehow, it's combined nicely such that the game becomes really fun. (And kekeke, they're releasing an Android version of it soon!) 

To be honest, I feel that this game can become really popular. I've got a fair few stares on the NUS shuttle bus whenever I play this game. Future Angry Birds? Perhaps.

3) Swordigo


This is a really good game that I finished over the summer, but once you complete it, you don't really go back to it. I heard it's like Zelda, but I can't confirm because I've never played Zelda. But the battles are real-time and you go around hacking and slashing at monsters and ... pots. There are tons of hidden treasures, so you must really think to figure out how to get to those treasures. I really found this game very innovative. It's a free application on the iPad, so do try it out!

Although these applications were good, I'm really happy at our choice (The Guardian), because it was really a good choice to talk about. I was also out of my comfort zone (because I'm used to talking about games more than serious applications like The Guardian), so I guess the choice of The Guardian on Facebook really broadened my horizons. In all, the Facebook/iPad Seminar was quite a good assignment, even though I did kind of doubt its value at the start of the course. 

Tuesday, September 4, 2012

Facebook/iPad Seminar - BranchOut Application Critique

I was actually rushing out this critique on my way home, but when I reached home, the momentum to finish this blog entry just died down. At that moment in time, my sister was walking by me and started asking, "do you know about matrices?" As it turns out, her friend, who is a Biology major, was doing some Mathematics problems, and she was looking to my sister (incidentally a Physics major) for help. I peeped at the questions and with the help of Google and my Maths understanding skills, my sister and I managed to help my sister's friend. As it turns out, connections are really important, aren't they?



That brings me to the application that I am reviewing, which is BranchOut. 




From what I heard yesterday, BranchOut is a Facebook application that makes use of the reach of Facebook (apparently 850 million people) in order to connect jobs to people. Companies can make use of the strong network on Facebook, while job seekers can make use of their own (and their friends') connections to find jobs. This makes it sort of like LinkedIn. However, BranchOut profits a lot from the strong user base in Facebook, as every user on Facebook is very well-connected with a lot of other users. For Facebook, most people end up friend-ing everyone that they know (or even people that they might not know), but LinkedIn is more "professional", so the connections are not as many as Facebook. In a way, if BranchOut manages to successfully use Facebook's network, it can become even more popular (and hence, more useful) than LinkedIn. Armed with Facebook JS SDK (just keep sharing, appearing on people's ticker etc.), as well as the sheer number of hours people spend on Facebook, I believe that it is possible that BranchOut can become more popular than LinkedIn. 

However, as was mentioned, Branchout mixes the professional and personal side of life, which is a bad point if you do really silly stuff with your friends. In addition, some of your profile information can be queried on BranchOut, so any information that you unknowingly leave behind can be pretty lethal to your own employment. This may cause the application to lose out on a large set of users who manage to recognise this fact. However, in a way, it could be useful also. Companies do not necessary look for people based on their skills' only; they also look out for people with certain personality traits, and if you manage to demonstrate those traits somehow in your profile, it could actually benefit you. To be honest, it's a double-edged sword, but in this case, I personally feel that it would probably harm you more than do good for you.

The third important point of the presentation is that Branchout needs to grow its user-base first. BranchOut was developed using funding, so it's important that it is able to sustain itself. BranchOut earns money through premium subscriptions, services for job recruiters and job postings. In order to break off from their funding and sustain themselves, they definitely need to branch out (pardon the pun) even more to people and companies. I'm not sure how sustainable the growth of BranchOut is, but if it is not able to a) branch out and b) keep the existing users active within BranchOut, I don't think the application would survive. Moreover, it seems like BranchOut is intended for users of all collars, but it is highly doubtful that professionals will use BranchOut rather than LinkedIn. The rest of the users (who are not professionals) don't seem to be the type that will pay for such an application also. Hence, I feel that BranchOut's current revenue model may not work out.

I'm always interested about potential competitors, and while researching about BranchOut, I found this Facebook application called Talent.me, and it seems to be similar to BranchOut, but it has the ability to post your resume, which BranchOut lacks. I think it would be interesting to see how BranchOut and Talent.me work out in the end.

In addition, BranchOut also serves to connect people to internships, which is more vital to me at this moment, since I won't be graduating yet. As such, I wonder if it might be better if BranchOut tries to serve this niche market better, especially since Facebook has a large user base of university students (since it did start out with university students.)

To conclude, I feel that BranchOut is an interesting idea and it makes great use of Facebook's extensive network. Unfortunately, without the use of proper control over what is exposed on BranchOut (BranchOut doesn't allow for custom resumes), it seems that BranchOut may lose the edge over LinkedIn. It's a good idea, but I feel that the implementation doesn't seem to be well-thought-out.