Friday, 7 October 2011

FP stage 1..

We're finally at the final project. The time just passed so quickly, it feels surreal. It feels like just last week when we made a decision to enter this class to achieve our dreams lol. 

Brainstorming for ideas was itself a huge obstacle. Until now we have not actually settled on a fixed direction. We're still figuring out which way to go. There were a number of ways, and some of em were really interesting. Initially, JH and i wanted to refine our BTDT idea. Then we got to Timeline. Then Events, and then, and then and then. I realized that, more important than coming up with a good idea, is to know how to sell the idea.

Until this monday's consultation, we were still going around in circles. The team seemed to have settled on Choices. The rationale behind the app is definitely remarkable. However, it seemed that we did not put enough consideration in its practicality. Big mistake there. So back into the jungle we go..

Through our app, we hope to bring back some of the traditional values that appears to be lost in the newer generations. Society has definitely changed a lot in the last couple of decades, mostly due to the tech advances and whatnot. We feel that people seem to be paying less attention to things like respecting the elderly or the need to be considerate to others etc. We think we have found a good problem statement. But how to go about solving it? Is it even possible, hmm. Well if it isn't as a whole, maybe we could break it into many processes to eventually achieve the goals. So, finally we have - Better Me (haha the name's not finalized :P). It would be the first step, and there are many changes to the original idea that we hope would overcome the practicality issues faced before.

Things I've managed to take away. 
Before, to me app development was just: identify a problem, write a good program. 
Now its: identify a good problem, prepare a good marketing proposal, think of ways to solve the problem, write a simple but interactive program.
Programming is still important, but it really makes up barely 20% of the package. It's beginning to piece together now, why this software engineering course does not have any technical lectures or tutorials, its so different from my other engineering courses. Perhaps i'd been a little slow, but i think I'm finally learning how to learn.

Monday, 26 September 2011

Blog, my real thoughts

I've just received the peer appraisals. Normally I wouldn't read stuff like that. I mean, way I see it, judging people is.. not very nice. You wouldn't know what the heck is going on in some one else's life unless you've walked in their shoes. But what prof mentioned is also right, the most important thing we should learn about is ourselves and this is the best opportunity to do so.

Actually, a big part of it was because I was afraid of what would be in there. I mean, I do have a vague idea of my weaknesses, and having someone else throw it at your face is not something I exactly look forward to. Well after reading them, I was really blown away. I definitely learnt alot from there. Thank you all that wrote in it, I'll definitely make an effort to work on the points I was lacking. As for the good points, I "tried" not to read it but something really interesting caught my eye and I couldn't escape it. That little part really did brighten up my day. Thank you (whomever) very much for that! Even though you prolly didn't mean it lol

This past week finally concluded our mobile app. I'm really excited about this and I totally enjoyed every moment of it. I would like to think that this app was really quite nicely done, and I'd really like to thank my team members from the bottom of my heart. Qing Wei came up with a prototype even before our second meeting and that really got us fired up. I used to think, you can't be an engineer and a designer at the same time. Not that well at least. Shaohuan definitely proved me wrong there. Lastly, biggest thanks to Leon. This guy is simply the unix god. I learnt so much from this guy.

At some point, I got really disappointed with this course. I thought this course would have lectures covering technical stuff, with tutorials each week to help pick up a skill. So at some point I got really bored and foul. I thought it was a mistake to have enrolled. Well, turns out I did make a mistake - I thought I wouldn't learn anything but really I am learning so so much. I just didn't expect it, because it wasn't directly from the prof. Learning from peers. There are so many significant advantages. You can argue with peers, win and convince them how wonderful your ideas and methods are (hardly in my case), or lose and be blown away by amazing methods they use, at the same time learning about the weaknesses of your own. It was especially the case for my team, where all four of us were considered programmers. 

This method of learning is definitely my first experience and I must say it is a.m.a.z.I.ng. Can't say I'm enjoying it but it's definitely worthwhile. Also, though it sounds like I'm trying to curry favor, I think only a brilliant person can come up with a brilliant method like such.

So this week's lecture is about the 2 case studies. The first one was on the emphasis of GUI and apparently the first team supposedly did a 'bad' job, and we are supposed to criticize it. How 'kind'. I must say that I really admire the two people that presented. Chin Su Yuen and Kent Nguyen (it rhymes). Standing in front of public audience and opening themselves to criticism like that. I know I wouldn't be able to do that for sure. I don't like people rubbing in my sensitive patches but that's just me. I personally think that the GUI was not that bad?! Okay what..! My BTDT seems to pale in comparison.. Oops.
Then again I was never the designer type. All the while, I was looking more at the implementation and that is really really well done IMO. It really pains me when they said they decided to reduce from 20 over features to just 4 simple features, just to make it more 'design fit'. If I were a programmer on that team, I would be really heart broken. And the fact they could redo the app in 24 hours shows how amazing the developer team is. IMHO, design is something really objective. If too much stuff and features means bad, then what about IVLE? (I'm not saying IVLE was done badly)

Case study two. A business guy for a leader is something that I definitely won't agree on, even if I am the only programmer. It takes more than just talk and business sense to be a leader.  There's a reason why 2LT needs to go through 9months of hellish training to get commissioned. It's for a very good reason. And if a business guy leader were to come and tell me hey why didn't you get this or that done, I'd be really pissed lol. When something doesn't get done, help them, or if you can't, don't make it worse. That's the policy I follow.
Always solve the problem at hand first, then worry about other stuff later. One of the phrase I felt strongly against was where it said "serene and I were so....., the programmers just couldn't deliver" - or something like that. If I were that programmer and if I had been working my ass off to receive something like that, I would pop. The person who wrote that just showed me how selfish a person he is. Wow.

Well I feel that I'm getting more agitated on that topic so i'm gonna switch. My macs acting up again, damn it's only 3 months old. Argh.
There were some good points too I picked from the presentation. Team first or idea first? I hadn't ever thought that deep into that, but it's interesting. How it works both ways. But for me it's pretty much team first. It's like prof said, like marriage. Ideas can be developed much easier than bonds IMO.

Sunday, 18 September 2011

Get Help

Wow I didn't know such an app existed? I totally agree with the problem they envisioned. We may have hundred(s) of friends but we won't know who to look for when we need help. Neither do we know when a friend is in particular need of help on a certain issue. A friend in need is a friend indeed.

I thought the screenshots of the initial version looked pretty decent. It was quite a bunch to see, but I felt that there weren't any really unnecessary stuff. There were a lot of functionalities implemented which is pretty cool. As for user experience, I like how easy it is for a user to create a new project request. What could have been done perhaps was to separate the process into stages so that the input fields wouldn't be so cluttered. Otherwise, the design was okay, if not perhaps needed some improvement.

One of the functionalities was to let users choose the audience for the request. The implementation would have been difficult, and the developers must have took a great deal of time in getting it to perfection.
Its definitely needed and they have done a good job implementing it. However sometimes too much functionalities might not really mean a good thing. People like choices, but dislike choices. Especially when the choices are not self explanatory. Like: what is "Post to all my friends" and yet, "No! show only reliable people" ? probably a glitch lol.

I guess the way it works is that it sends a feed to your friends' walls when you push a request. That would be a problem because its hard to monitor walls sometimes and important information would easily slip us by when we do not pay attention at the particular moment. So i guess the developers decided to implement SMS feeds, but wouldn't that turn out too costly?

Perhaps a really minor issue would be the alignment of the input fields. I believe the improved version would have been much more appealing.

Overall, i feel the UI was the one that pulled the score down. Too much words, and the uneven sizes of words and icons makes it look rather unappealing. The idea behind the app was really great and could have brought in so much more social interaction. But even good ideas might not work out. It seems nowadays that its either of the 2: it snowballs and you can't stop it even if u want to, or it never gets enough popularity ever. 

Wednesday, 14 September 2011

Here and now

Oops its been like 3 weeks since my last blog. I totally forgot about this.

A lot has happened this last 3 weeks, FB app was finally over and we are onto mobile apps. From FB App, I realized how easy it was really to integrate an app with Facebook lol. So now for every new project I do, I tend to set up FB utilities first. Even if I don't use any information, allowing users to login and see their own info is already pretty awesome. At least to me it was lol, until I learnt how to do it. And Google analytics, its so easy why not.

I'd probably spend some time after the term to explore Twitter and Google+ APIs, since that seems to be the norm for all websites now. And maybe yahoo and bing analytics(if it exists).

Also, working on this app has given me an experience like no other. All through out school, I have never worked on a project like this, or worked on any project in this manner. A project that is actually to be launched and seen by the public. And the deadlines, whew. It was thrilling. In between, we had some good times and some bad times. Our group grew closer, i felt. Spending so many days and nights coding (sometimes through the night). We shared the pressures of the deadlines, and the fulfillment in the completion.

We did have some rough times as well. To my group members if you're reading this, I hope we can get over it as theres nothing personal to it.

Its been about 2weeks since we kicked off on mobile apps. The feeling is quite similar. I realized that creating a mobile application is really not so difficult. I used to download sample programs on objective-c to try and understand them while i was trying to explore on my own, but lol. I didn't realize that creating a mobile app can be as simple as using a webpage. So thats definitely a huge takeaway! Also, I've been experimenting on the free frameworks and I realized that most required functionalities can be implemented rather easily. The really important thing here is the idea and well, I hope our idea works out.

Another thing I've learnt so far is on REST API. I spent 3 whole days thinking about its implementation. Like how to create a clean URL. Implementing SQL queries is not difficult, but how do you make it RESTful? In particular, how does one create a clean URL interface for quering like graph api does it? I searched for days for the answer!!! And got nothing.
I was finally shone the light by Eldwin (thank you man). This, i wouldn't have learnt if not for this course.
Who would've thought it was a hidden url-redirect that maps a clean URL to a ?var dirty URL? I don't think i'd ever think of that lol.

A couple of days ago we also had a rather distinguished guest over. Milton Chen, CTO of VSee, came down and shared with us some of his experiences, as well as his video conferencing software. At first glance, he really didn't seem like much(sorry). And the app, well - its just another video conferring tool. Until he said it was running on 3G. That got me. I don't do video conferencing a lot, but I know how unsmooth it usually is, even with a good broadband. My team did VNC Viewer for FBSeminar, and to be absolutely honest, VNC Viewer was terrible. The delays make me never want to use it ever.
So when i saw VSee and how smooth it was, I realized the difference. This wasn't just ANOTHER video conferencing tool.

Also I've heard of CISCO telecasts and their amazing clarity, its as if the other person is right in front of you. I've also heard of their exorbitant rates. So I'm looking forward to when VSee brings their telecast technologies to NUS.

The stuff Milton shared, well i only managed to catch a few points. Particularly one that struck a chord was when he said we can't achieve everything. Go back and think of a few things that you always wanted to do, and think about not doing them. You'll be fine, was what he said. Hey, I agree with this. Not because I am a slacker (i really am) but because its true. I mean, Milton himself, a workaholic, is saying this. The underlying message is not to discourage, but really more like, i feel, to learn to give up certain things in life. It's absolutely necessary. Like they say, aim for the stars so you land on the clouds. You can't have everything in life. Of course, if you don't fight then you would have nothing (i know that, were you gonna say it? :) ).

Then the talk got a little... hmm, touchy? Relationships and stuff.. lol

Alright, better get back to working on app.

Tuesday, 30 August 2011

PeKay's Little Author

This presentation was actually the first time I had heard of this application. So in order to get familiarized, i decided to go ahead and try it myself. This app apparently originated from Japan, which i thought was really cool. It has some really cool features and the UI is really cute. Users can basically create little story books and share them across the board with other users of the application. Last I saw, the app has about 127 monthly users, which is not a lot but still significant. I was also amazed at the depth of implementation of the app. 

Initially I thought it would be a flash plugin, but actually it really is all HTML and javascript. That's pretty amazing to me, as the implementation is definitely not something trivial.

The presenting team did a wonderful job with the presentation. I found it really engaging and the layout of the slides were very attractive and really relates to the application. They also brought up a number of points which i agree with, one of which was the interactive UI of the application, particularly the drag and drop feature. This makes it really appealing for kids (thats what they usually like to do right?). In applications like this, I feel the UI can be considered more important than any functionality. There would hardly be a point in implementing many features if the targeted audience didn't know how to use em. And honestly, I have never really given much thoughts about UI until now so I guess I have a lot of catching up to do.

Another point that really got my attention during the presentation was that the app seems to behave like two different entities on Facebook and the iPad. I wasn't really sure what that meant as I don't have it on my iPad to try it out. My guess is that it is still under implementation and it's likely that users will then be able to view books created on their Facebook accounts on their iPads. This kind of situation, to me, is really confusing? lol. I feel that developers should have focussed on setting up the integration before launching or the effects might actually be detrimental. Just my 2c =/.

The group also pointed out the possibility of implementing more sophistication targeted at a wider age group. The purpose of the app seems to be for social networking and encouraging wider social interactions for children. Children can design personal story books to share with other children. For older users, perhaps the idea of sharing books could also be attractive. Currently, its possible to share photos, albums or events, so perhaps sharing a book should not be so surprising. In fact, it might even take social interaction to a whole new level. Imagine sharing your albums in the form of a book, dragging and dropping your pictures and putting text by the side. Books shared can also be about experience and expertise, anything. That would be cool to me. Though, I think youths in the age group of 13-18 would probably find DotA more engaging. 

So, my thoughts for this application - well it is targeted for kids, so it's really kinda hard for me to relate to it. I did manage to create one book though, and I found the process rather, hmm .. 'okay'. It wasn't that boring (which was what i expected, sorry). But I can see how an app like this would be appealing to children. Its pretty much human nature to want to share stuff, like to recommend a good experience, or to advice against bad ones. For children, this would be more apparent as they would have less tendency to wanna keep things secret? haha. Anyway, I'm guessing this is the direction that this particular app is heading. A medium thats dedicated for children to share.

But really, is this feasible? As pointed out in the presentation, the age limitation for users of Facebook seems to go against this very purpose. On top of that, very few kids around the intended age group would actually understand how to use the app properly. The UI is good, but is still not so trivial that a kid could use.

After really looking into this application, I have also come to realize that the market targeted at kids is actually quite remarkable. There are so many apps aimed at children (i mean in the case of the iPad) and some of them have really good responses. Parents nowadays might want to let their children become more tech savvy by exposing them to such applications on the iPad as early as possible. I've never seriously considered this area of the market, but now i know its definitely worth investing time in.

Just my 2c, and i sincerely apologize for any offense made.. ^^;




Friday, 26 August 2011

HTML5

So the buzz this week is about HTML5. The features that caught my interests in particular are:
1) <video>
2) <audio>
3) <canvas> maybe?

Video. Awesome (because i don't know flash and am too lazy to learn about it). Its intuitive. just point it to a certain video file in your server and that should be all thats needed.

Audio. Same as above.

Canvas. This one was interesting. The potential of such a tool is too great to imagine.  For one that i can think of is fancy shaped divs. How i think it could be done :
1) Draw a large canvas area
2) Draw the shapes and use javascript to reference them as objects or DOM objects.
3) Allocate the div certain event listeners.

Imagine having a non-flash world map element divided into continents and being able to program those continents for various effects! (thoughts for a project that i am working on)

Other things that came with HTML5 are supposedly newer JS functions and CSS3. I don't know yet but I usually search for a functionality that i need on the internet or on jQuery. So far I've been able to get most of em easily, i don't know if they were JS from HTML5 or not. Or perhaps it referred to the new functions made to handle the canvas elements, which is a pretty huge framework from what i saw while exploring the tutorial. As for CSS3, I've actually been using them since some time back. and i didn't even realize that it was CSS3, lol.

Now for some doubts. From what i have understood so far, there are various ways to program stuff on iOS. Some are Xcode (which i have but am noob at), objective-C (no experience), or HTML5. So, that means within the core, an iOS is able to render HTML5? Will JS/CSS will be in as well?
Does it mean that Safari App actually uses the innate HTML parsing, but simply with the ability to point to other URLs? Really looking forward to some trial runs soon.

Finally, as a close heres some food for thought: Who initiated the development for HTML5?

APPLE (:


Friday, 19 August 2011

Back to SChool

Finally back. Already the third day in fact, but been too caught up in catching up. I mean, like wow.

Missing the first 2 weeks of curriculum didn't seem much to me. I thought it'd be mostly intro lectures like it had always been for the past 4 sems of experience. But no. It didn't occur to me that this time, the first 2 weeks can be considered the most important?  Because its this time that u try to form groups, which will be with you throughout the entire course line -- AND ultimately determine your fate. Twas kinda late that i realized that.

Having said that, I am really thankful of my group mates who were kind enough to take me in. I mean, even I know how bad it would look when you don't even show up for 2 lectures or can't attend group meetings. I'm not proud of it, but please believe me that it was not the outcome that i had wished for. Im really really thankful for the understanding shown to me by these good people. I know it hadn't been easy on them, and I will make it up to them.

Its finally the weekend, and the pace is slowed down a little. Finally less admin issues and requirements (except for 2 minus this one blogs which I'm behind for). Project group assignments, tutorials and tutorings are done too. So whats next? hopefully rest? haha. FBAssignment =/

Well this assignment experience has been, pardon my poor ability in expression, like a roller coaster ride. When things work out or when your animations turn out like the way u want them to, morale goes sky high. You keep coding for the next 3 hours. But when things don't turn out the way you want em to, div box aint showing the correct format, queries returning rubbish, morale goes ground zero. You spend the next 5 hours figuring out whats wrong. And so on. The result? A tired, but satisfied coder. lol

Then theres disagreements. Put in a nice way that is. Sometimes things aren't so nice though. We argue, i think every group does. and that sucks. I want things done my way, you want them yours, well.....so how?
It can be hard to appease everyone. I just hope that at the end of the day, they realize its nothing personal. I still like them as friends.

Coded from 12pm yesterday till 10am today. The original intention was to code through the night and attend the seminar, but guess the mind is just too weak. Actually, the body was weaker lol.

Enough rambling for now, gonna get some z's. Continuing the discussion online later at night.

To be continued (: