Sunday, 27 November 2011

How about solving a bigger problem

The Existing Great Pain

In China, writers can hardly survive. As one famous Chinese writer, Han Han wrote in his blog that: “Most writers in China can create one book in two-three years’ time. Normally, they can earn 10,000-20,000 Yuan(which is around 4,000-8,000 SGD) for each book. It’s like 800 Yuan/month(160 SGD/month) salary. They’ve got no social insurance and they have to pay taxes. Most Chinese writers have a very low income, except for some very popular ones. Many writers would have to write 10,000 words/ day on websites to make a living. They can earn 2 Fen(0.4 cents) for every 1,000 words downloaded. In Qidian.com alone, there was more than 150,000 writers writing online to make a living(Qidian, 2008).大部分作家两三年才写一本书一本书就赚一两万这些写作者们可能才年薪一万块啊朋友们月薪八百啊朋友没有社保啊朋友还得交税啊朋友比你更惨啊朋友除了几个顶级畅销书作家中国作家绝大部分都收入微薄很多网络作家更是一天要写一万字靠着千字两分钱的下载收入维生.Say a book cost 10 Yuan. A writer can get 1 yuan, publisher 1-2yuan, raw cost(paper, printing,etc) is 2-3 Yuan and the stores can earn 5 Yuan. 假设一本书卖10里面的构成是这样的作家赚1印刷成本2元多出版社赚1元多书店赚5.“ It’s really painful for Chinese writers to enjoy writing while their income is so low. The writers and publishing companies even have a much worse condition when big websites, like Baidu and Sina, provide a free platform for everyone to upload unauthorized copies to share. Han Han wrote his blog with great anger when his new book was despicably shared in Baidu. Those kind of websites who share books without writers’ permission exist wildly in China. That’s another reason why writers can hardly earn any income from ebooks.

It’s nice to know that the ebook market in China is getting better than several months’ ago. China mobile has opened a pretty successful ebook platform so that many publishers and ebook retailers can sell their books. However, since China mobile monopolizes the Chinese mobile ebook reading market, they are rising the percentage of shares with publishers. Initially, China mobile shares 30% of the profit, but later 50% or even more. The publishers and ebook retailers can hardly survive as they do not have the money and technical teams to develop their own platforms and sell their own books.

That’s why we come. We want to develop a ebook platform that helps publishers, writers and ebook retailers in China to live a better life. We also wish to encourage readers to be better aware of the importance of copy-right and originality.

Proposed Approach

We provide a platform for writers and publishers to publish and sell their ebooks. The ebook reader will be accessible from any device with HTML5 supported browsers. They can either choose to sell their ebooks or publish their articles in serials. We will prevent the ebooks from stealing.

Technicals to prevent ebooks from stealing
a. Encrypt the data before passing the book contents to the client.
b. If that's a paid book, readers cannot read the whole book unless they pay for it.
c. Books downloaded from app can only be read using our app(using HTML5 local storage)
d. Using CSS to prevent direct copying
e. Add more span tags to make it more difficult to copy the content.
f. Only the original creator(writer/publisher)can keep the formatted ebook copy after publishing their work(in epub or other format). Others can only share the content URL.etc.

We'll do the reverse process of our previous project, Yun Reading. That is to say: we allow the users to edit/paste their work on our platform(like a blogger). After they finished everything(add chapter name, upload cover,etc), the writers/publishers can choose to save it as an epub(txt,html,etc also can) for their own reference. We need some more pages, like editing page and redesign some pages like the book detail page, the store page and the library page.
The architecture and UI all need to be redesigned.

Competitors
Shengda, China mobile, baidu yuedu, which are all big players in China. Shengda has got a lot of Chinese reading sites, like Qidian.com and www.xxsy.net, etc. However, its business approach is not showing respects to writers. Shengda forces writers to publish the work only on its sites and use the book contents as its own properties by paying the writers 5 fen per 1000 words’ download. China mobile gives cheap ebook reading plans for readers who use their mobile services and it charges too much share from the ebook retailers. Baidu has got a bad reputation for free sharing without notifying the writers.

Commercialization


The business model will be similar to Google Music. We provide a free platform for readers and writers to publish their original work. They can set the price and sell the books. 100% of the profits will go to the writers/publishers. The contents will have to be original. There are several ways for us to verify. We will by default set their published book for free for 1 week(or longer). If no one reports and we also find out the writer is truly the original author, we'll set the books as verified and the writers/ publishers can then sell their books for money. Writers can choose to publish their work in serials, and they will be awarded by the ads venue they brought to the site and the popularity of their books.

We earn our money on the ads from public-licensed book and the ads in the priced books. The most venue will come from the new books that get just published but haven't been verified. These are where the ads venue mainly come from.

Users can send as a gift to others if they have finished the book and do not want to keep it.

Tuesday, 15 November 2011

About Value

Say, you gave birth to a kid who's very talented in music. However, you do not have the money( or else) to find a great musician to teach the kid. Just then, a local musician sees the talents of your kid. He is willing to teach the kid for free, on the condition that the kid will have to stay with the musician forever(of course you have to right to visit the kid any time). The musician is not a talented,  but at least he can teach.  Will you make the deal?

It's the case with our final project, Yun Reading. We're facing the problem with the future development of this app. Our money is dying out and our team mates will probably be too busy to continue with the monetization part next semester. We know our app is having a great potential, like a talented music kid. But we've got no time and money to make the talents shine. A ebook publishing company seems to be envision the value of this app in the future. The company want to acquire this app when its value is still unseen to others. 1500SGD/ person is offered. Shall we accept it now then?

1. Can we commit that we will make a lot of time and efforts to make the app a full product in the next 2 years?

Honestly, the main difficulties for the further development of our app lie in the contents and copy-right issues. For our tech team, it won't take too much time and efforts. The problem here is very difficult to solve by our own efforts. We've got to work with publishing companies. A lot of stuffs may involve. Hu Qiang is taking CS3217 next sem, Yingbo is busy with her two degrees, Aldrian is busy with Urop, I'm going for SEP...
It might be easier if we let the company operate the app and we only provide some tech supports. But our value is definitely underestimated.

2.How to create value?

Money<> value. I personally think if we only make this platform use by one company, it creates values to the company. But whether it creates values for the readers, it really depends on the company, whether it wants solely make money out of its customers or really create values to them.

When I sit in Central Library today, I opened my ipad and try to use our app. Yes, I like the app, except I would like to get some books I myself love to read, not books that are very popular in the market but not fit my taste. Reading is a personal thing. I think Hu Qiang's suggestion of make it a personal ebook library(like a dropbox for epubs) would be a nice idea. It may not bring instant money to the retailers, but it do create values to the readers. If I were the reader, I would like to have such one in my device.

Yes, creating value is more important than making money. That's learnt from CS3216.

3. Competitors.
I'm sure a lot of cross-platform ebook reader are coming out in the next two years. Some of them will be from big players. I would like to work with everyone instead of competing with others. I think competing is not the right way for success, collaboration is. But big players seldom know you, that's the reality. So we've got to establish it ASAP to China market to make it known to everyone. Hopefully people will come and get to know us. I heard Singtel launched the first Ebook Platform in Singapore today. Well, honestly, I think we are better, just that we are not complete yet. But we are not competing with them, we're focusing on the China market.

4. How about funding?

I know from Prof.Ben that there is a $50,000 grant. That's a lot of money. If we can get it, our plan of dropbox for ebooks will probably become reality. Currently, our plan is still under discussion. We'll probably explore the plan in two different strategies in PARALLEL. First way is to make a dropbox for epubs(probably the English version) and the second way is to sell ebooks(Chinese version). We can let the publishing company use the Chinese Version in China as they are only interested in selling their own books. But we can continue developing the english version and make it a dropbox for epubs. We reserve our right to use the English Version and they can use our Chinese version and sell ebooks in that platform. Don't know whether the plan will work or not, but we'll try.

We'll need a lot of help from friends in CS3216 if we're really taking the step out. Thank you in advance, great great people here in CS3216:-)

Sunday, 13 November 2011

Farewell-CS3216

As stated, CS3216 will become a history forever from tomorrow onwards. Wish the spirit still keeps going on.

Honestly, I like the course very much. Not only because I met and worked with so many astonishing people in the class, but also because the course changed my perceptions and probably my life.

Before writing the personal statement, I already prepared to die in the class. I knew the nasty course will be very challenging and bring me many sleepless nights. The reality turns out to be better than expected. Yes, it is challenging to me and I worked late at night, but not as bad as worked overnight.

It's a pity that Prof. Ben will never teach the course any longer. I'd like to recommend nasty courses to friends who really want to learn sth. Actually I've already recommended some of my friends to take CS3217. Hope they'll be brave enough to take the challenge. I find people who have attended that course are much stronger in programming skills and more deliberate in software principles. I'd like to train my hard code skill in a nasty way, but unfortunately I'm going for SEP and will not be able to attend CS3217. I believe for sure now that nasty courses make people strong.

Looking back to my first blog. I wrote something like "I'm sure I can learn a lot along the way, teamwork, time management, stress control,etc. But compared with the initiative I take and the courage I make to take the challenge, I think everything else is secondary. " 

I think it might be my risk-taking character that makes me one of CS3216ers. I'm really thankful that Prof. Ben gave the chance to be in the class. I really learnt a lot along the way. Though I didn't learn as fast as many of the peers in CS3216, I managed to the web programming skills one by one in the continuous projects. Before CS3216, I knew nothing about web programming. But now, I played a leading role in some school web programming projects(like a hypermarket software system project and a property search project). Though my PHP codes sometimes are still buggy and I'm still not very familiar with javascript DOM, I'm sure I can gradually make it better. It takes time, probably 10,000 hours to be a real expert.  I gradually get that idea that this course is about teaching us to create fish when there is no fish. Mobile and Cloud are the future and I think I'm in the right direction.

Teamwork.  I've got to say it's been great to work with so many different people here in the class. I met a pharmacist(Leon) who codes much better than I do, elite programmers who are very clear in logic and write bug-free codes, etc. Peer learning is sometimes more efficient than the lectures&tutorials. It's a pity that I didn't work with a designer for the three projects. Though I tried to work with a designer in the last project, she's already occupied. But I enjoy the days coding together with my team mates in COM1:-)

Time management. I don't think I'm better at time management than before. But I learn things faster, especially self-learning. I don't have to attend every lecture to fully understand the topics in class. I can better study and google on my own now than before.

Stress control. Well, I'm sort of person who will never push myself too hard. I'll find out some way to release my stress. For instance, after the final show case, I came back home and watched  ancient-costumed soup opera for the whole night...Maybe stress control should not appear in the first place...


Actually, the most important lesson I've learned in the class is to understand the REAL WORLD. It's very different from the pure academic environment here. It's complicated. We've got to do sth good to the world to make it a better place for everyone.


===================================================================
Something I need to reflect.

1. I've got to admit that I'm a lousy leader. I didn't allocate jobs very well. Though I know people's strength , I didn't make full use of the potential people can contribute. I myself did not work hard enough to motivate team mates. I cannot communicate. I cannot even sell! Though I strongly believe that our product is good and going to be great in the future and my team mates are of the greatest, I cannot get my message across to everyone. There will always be people doubting and criticizing. People's doubts make me think further, but also discourage me and make me more doubting about myself. Unfortunately, the negative impact seems to be stronger. I become even more self-doubting. My words and actions sometimes turn out different from my heart. I cannot make serious decisions. I remembered someone said in the class that one should know his/her own role--either a CEO or a CTO, but not both. Maybe I'm not suitable for a CEO yet.

2. Some of my values are distorted. For instance, I didn't know the importance of copy rights before classmates warned me during the presentation. Fortunately, I corrected it before getting into prison. CS3216 is for engineers to solve real problems rather than to make money. I didn't realize the importance of solving people's pains before releasing our final app to users. It's true that many people used our app and read book in our app. However, it's just not painful enough for people to use the app everyday. It creates values, but may not be influential.

3. Self-illusion. I am not understanding myself enough and I'm easily influenced by other people's thoughts. Calm down and listen to some Mozart's may help.

Farewell, CS3216.

Friday, 4 November 2011

Contents and users are the most important keys for the IT industry today

I got a bit discouraged when I contacted the ebook retailer last night when he said technicians are not that important in the IT industry. He said contents and users are the most important keys for the IT industry today. Well, that's somewhat true, but that's just too discouraging for us technicians. The guy is actually my first entrepreneur friend and I find him quite trustful.  However, we had conflicts when we discussed whether to make it a platform for all or simply an app for his company. Honestly, I wish we can make it big by allowing many people involve in the content contribution, either by allowing all users to upload and share or allowing retailers to sells their books on our platform. As I know from Shucang's CEO, it's legal for a site to reformat, save and share. We can handle the conflicts if people claim for abuse(delete the database immediately). However, if we try to allow retailers to sell books on our platform, we've got to develop secure DRM system to protect their ebooks. It won't be easy. As Shucang has spent years to develop their own DRM system(http://www.epubsys.com/en/), I don't think we'll have that much time to develop it on our own. For HTML5 ebook readers, copy-right protection will even be harder. Let alone we unzipped the epub and reformatted the whole thing. Probably we'll make it uploadable for users so that we can avoid the issue, but that is breaking the eco-system. How can the authors/publishers survive?
...Too complicated, may not be the right topic to focus on at this stage?

Wednesday, 2 November 2011

Long Long Way to Go

Honestly, our group is doing pretty well in this project. Though we thought we are a bit slow at the pace, we managed to show most of the functions in this week's class. Thanks to all the testing people who have gave us many feedbacks and nice suggestions, our app now has a much clearer logic flow.We kept on changing and changing, from the UI, the javascript implementation to the logic flow. We're still changing according to the feedbacks. The offline reading implementation has been changed three times. Initially we planned to store the latest 10 books the user read to the local storage, that might be good for the user if they want to read the books offline. However,that may consume too much money for them if they are using paid services to download the data. That's also slower for the loading as some ebooks can be pretty big(like 1MB). Then we changed to only download the current book. That's not nice, either. What if the user want to read another book, or else the book is too big(like the Ming Dynasty historical book)? Later we choose to let the user to decide whether to download the book or not. That would be nice for the users. We also developed an algorithm to resize the images of the book covers. Initially, the book covers can be pretty big. The index.html site(book store) was about 1.5MB. That's too big. The social network JS also caused problems. It takes too long to fetch from their servers, the initial site takes 20 seconds to load! We then resized the book cover images on the client side and kept the social network JS in our own site, and changed the Jquery mobile and Jquery to their mini versions. The 1.5MB site becomes 300KB and it takes less then 1s to load in Singapore.
However, we initially used the newest Renren Javascript API to get the access token and  then get the uid from them, which is really fast. However, renren refused to approve our request for not using their standard login method(which is like a fbml xml thing). Now it takes 3-4 seconds to fully load the page, because of renren's standard login widget. It will be even slower if we did not put facebook all.js in our own site. We also find bugs like Jquery mobile tapping is not working on IOS 5, Javascript client cross-domain problem, etc.

UI is the least important thing for programmers, however, the most important thing for the users. Our UI designer Hu Qiang really has a pretty nice UI sense. The ebook is simple and intuitive. I like it. There are still some modifications needs to be done for font size adjustment, book cover adjustment, etc. Users are complaining that the number of texts/page is not well displayed in small devices. Yingbo is already crazy about adjusting the font size after manual adjusting it for a long time. It's not simply multiply some magical coefficients. There is limitation on the ebook format itself, too. Aldrian and I may continue working on it and embed the images inside the html texts(using base64) and maybe add more <p> tags for Yingbo to process.

I'm pretty pleased that our app is getting pretty popular. Today along, we've got 150 new visitors and 2000 page views from Singapore, China, US, and even some from Switzerland, Australia, Belgium, Finland, etc. That's pretty encouraging. We've already got over 500 unique visitors and over 7800 page views which is quite close to Prof.Ben's bottom line(10,000). Honestly, the problem we initially want to solve may not happen that often(synchronize reading history in different devices), For readers like me, it's not that painful as I normally didn't read books on my ipod touch or the browser. I would like to borrow a hard copy book or read on Kindle(which is not harmful for my eyes). But there is a trend that people will have an increasing need for this kind of functionalities as we are getting more devices, people would also like to share with their friends while reading. Mobile, Cloud and Social-- A ebook reader that combine these three things. Yes, I find it quite cool:)))


Comments on other groups. 
Well, I like many ideas presented in the class. For instance,the moral education site, which will really make a positive impact on the society, the public letter sending site, which is pretty cool. Some are executing very well, like the cute 3D animation gaming.The apps are mostly creating values, unlike many facebook apps which basically waste many people's time.  I really feel that we all deserve a good mark for the efforts we have put. I think the way of a forced distribution is unfair though I'm pretty confident my group's app is among the best.

Future planning. CS3216 is really different from other classes. I find that our app really has a good commercial potential. I'd like to put the site in China and examine how well the market can be before the site die. We shall at least make enough profits to pay for our own server, but it would take a pretty long time to reach that goal. I'm not that confident though the product is really really really good. We'll try to figure out some way to prevent the site from dying before we successfully monetize the app.

Need to focus on other courses as well. Thankfully, not many...Good night












Thursday, 27 October 2011

Need to Stop and Think for a While

My life is really buggy these days.  So buggy that I even cannot figure out what I am doing and where I am heading. I really need to stop and think for a while.

1. CS3216 is not about grades, but all that count are grades.That's a bit mysterious. Honestly, I do think my group is doing pretty good in the final project, except the time management is not well conducted. My group members are all very intelligent people. Hu Qiang has a very clear mind on what direction he should be heading(not only in terms of UI). Yingbo is fast in coding. Aldrian thinks really deep and  comprehensive. I am also doing pretty well in this project. In the first week, we've developed the ePub file handler(Aldrian), REST api(Me), reading page(Hu Qiang) and  the basic javascript functionalities(Yingbo). However, when I look at the final project requirements, it says the prototype needs to be as good as the previous assignments and that counts for 10% of the total mark! I'm very worried though. Thankfully, Prof. Ben gave us one extra week to polish it to a that standard. We worked out the book store/personal library(Hu Qiang), localstorage(Yingbo), Synchronization(Aldrian&Me)&Social integration(Me). All that left for us is debugging. We manage to fix most bugs, but unfortunately it's not that easy to be totally bug free. I thought we can finish the whole thing by last Saturday, but we too optimistically estimated the timing. As local database is never getting any updates, we changed the whole local database into local storage and did the synchronization for the local storage and the server. It unexpectedly takes the whole weekend. The most difficult part for our project is synchronization and logic flow. For the synchronization, thanks to Aldrian who is really an awesome programmer, we finished the sync function without bugs on Sunday night after Yingbo finished debugging the local storage. I personally feel ashamed not be able to submit a bug-free ebook reader to Prof. Ben when he has already given us a lenient extension. The problem that really bugs us is the logic flow. We shall first check whether there is a userID stored in our local storage.We'll also need to check the user's mode(online/offline) to determine whether to fetch from local storage or from the server. Bugs can come all along the way from the html, the javascriptAPI to the RESTful API in the server. When we show the demo on Tuesday, there are still many problems. One big bug turns out to be my fault. The facebook api unexpectedly returns a undefined uid value when the javascript API is called. I fixed it after dismissing but find another bug in my UPDATE httprequest, which supposed to fetch some values using GET method and some using PUT. The bugs are almost fixed now but there still got some problems with the logic. As our API is developed before the UI, a userID have to be passed to perform all the functions. We've got some disagreements on the guests login function which may cause a big problem if a fixed userID is used to perform all the functions as multiple users are changing the same reading history/bookmark/settings, etc.

Really got many things to write, like the IP address in our EC2 instance is not detectable in China. The cover page takes too much time to load and why we developed the upload function but choose not deploy it, etc.

Prof.Ben asked about reading epub via providing the ebook url. That's simple to develop, actually I have found the github code few weeks ago using purely javascript to first unzip the epub and then using iframe to display all the html contents. We have thought through at the beginning of our project. We can choose either to process the ebook data on the client side or process the data on the server. Both way is acceptable. However, we are not fully utilizing the processing power of the cloud if we are relying on the client side to process the data. Another concern is that we'll need to get the standard data to store the book infor directly to our database to allow other people to read and SYNCHRONIZE.

2. Am I suitable to become an entrepreneur? After working with many teams this semester, I gradually realize the importance of a good team is really a critical fact for one's success. For instance, I refused a week team and chose to work in a very strong team for a HyperMarket embedded system project. It turns out that the two teams are going to end up with a very different standard of final results. In a strong team, there will be  leading players who will ensure the quality of a job and control the process of the project. People will all be contributing. However, in a weak team, most people will take the soy source and only one or two team leaders will take the fully responsibility. Fortunately, my CS3216 group is awesome expect we are all tend to be individual thinkers/workers and even the strongest programmer is not sort of leadership type. Communication is important but really not easy. I am playing a leading role in a CS2102 project. Thanks to CS3216, I know clearly about what is expected and how to make the things work. Unfortunately, 3 out of the five team members are weak programmers( Though I'm pretty weak in CS3216, but I can consider to be a pretty strong programmer in CS2102). I am suspecting there will be too few brilliant workforce in the market to work for me if I decide to build my own company. However, after listening to the talk on Monday, I found that teams not seem to be that important though...wondering whether Prof.Ben brought some entrepreneurs which are just too lucky.  I intended to ask a question on the co-funders as well. As I observe, those who have worked for few years tend to build their individual businesses. While those we started their own businesses right after(or before) graduation tend to work with a co-founder. Google/Apple/Microsoft, etc, those great companies seem to follow the pattern of two initial founders, one  CEO and one CTO.  I seem to be more keen to be a CTO, but I personally knows my own technology background is not really that strong. I seem not a CEO type either, lack of good communication skills, convincing decision making skills, etc.Not really likely to become an entrepreneur, unless I can really find a good idea and make it happen then occupy the market ASAP. Hu Qiang and I shared the same birthday, maybe we'll work together someday, but before that we both need to be much more stronger.

HaHaHaHa , Sleep!

Thursday, 13 October 2011

Some Thoughts

I didn't realize the real problems our app is going to face until Zit Seng shared his thoughts on Monday's lecture.

Loading time is critical. We won't meet a user's satisfaction if it takes too long (say more than 2seconds) to load. That's pretty disastrous for a HTML5 app as the app may include heavy framework js/CSS files. On one hand, we shall do as many computation as possible on the server side and cut down clients' JS files to reduce the loading time. On the other hand, we can hardly make it as we need these files to perform offline functions. This challenge will unfortunately happen in our new HTML5 app. Even people in China will be accessing it. What if it takes 10 seconds to load the page?!

I also felt worried when Zit Seng said that we shall avoid .htaccess and reduce http requests. Thanks to him, we can at least avoid some of the bad designs in our app. We previously thought to use more javascript to process the ebook reader. Later we decided to utilize the power of cloud to process the ebook data in the back end and do less work in the front end. Thanks to Aldrian, who is really thoughtful and bright to suggest a very scalable database design.


I feel pretty good on our app. Though it's still very rough, I find our team mates are getting more involved now. Hu Qiang has made a pretty nice design. Yingbo processed the json object on the client side. I'm doing pretty well with the database and API. Aldrian is also doing good at the book format processing and some high level designs. Compared with the previous two assignments, we seem to be more specified and dispersed in the job allocation. I find it good and time-saving.

Am updating IOS5 on my Itouch:) Need to do other projects tomorrow as well.

Stay Hungry, Stay Foolish--Steve Jobs

Tuesday, 4 October 2011

Final Project App We Are Going to Build

Prof. Ben keeps emphasizing that CS3216 is not about hard coding, but about solving problems and making a difference.

1. What is the app that we are going to build?

We are trying to build a HTML5 reader that works on different platforms including desktop/laptop browsers, tablets (ipad,etc) and smartphones (iphone /android). I initially came up with the idea of making a HTML5 ebook reader when Hu Qiang and I discussed with an ebook retailer who are currently making a native ipad reader. We think that more people will be able to explore the app if we make it a cross-platform one despite of their physical devices limitations. We also would like to take the advantage of HTML5 and the cloud to allow content synchronization and offline reading.Yingbo enjoys reading novels on her ipod touch and she finds the idea pretty interesting. Aldrian also thinks it's a good project, then we four decide to work together and make it happen:)

2. What is the exact problem that our app is trying to solve?

Depending on situations, readers have their own preferences on the reading devices. For instance, they may love to read on their phones when they are taking a bus. But when they are at home, they may like to read on their laptops or tablets. When the reading devices changes, they would like to continue reading on the new device the same page where they left last time. Readers are also sometimes lazy to download ebooks and then import to their devices. They would prefer a ebook reader that directly get the resource from the internet and view the book on the ebook reader. Another supply-demand problem: China is said to have a mobile ebook reading market of more than 0.8 BILLION RMB/quarter year and we are build this HTML5 to meet the huge demand...

3. Are there similar apps with a similar idea?

Previously, we thought Google ebook reader is the only HTML5 ebook reader that works on different platforms. It uses epub format for its most ebooks and disables the right click button javascript to prevent copying. Later we notice there are some more html5 ebook readers including MagicScroll and BookWorm. They all use epub as their ebook format. Epub ebook is like an archived zip file that packages the xml ebook contents and the corresponding css and format information,etc. Epub is integrating HTML5(to include some important tags), but most epub ebook are in the market are still xmls.

One very new HTML5 ebook reader is the Kindle Cloud Reader by Amazon which was launched a week ago. It's very elegant. Kindle Cloud Reader allows bookmark synchronization,  offline reading, too. They assigned different tags on the html passage tag<p> to do book marking.The ebooks are mostly in epub format, too. One big disadvantage for the Cloud Reader is that it only allow kindle users to access the contents. So far, only Chrome, Safari(desktop/ipad) are supported. Another disadvantage for Amazon is that they do not open up their services in China yet due to copyright and cloud service registration issues. Whereas, our app is mainly targeted in Chinese Ebook Readers which is said to be a 0.8 BILLION dollars' annual business(We're afraid not to implement monetization on that).

A good news for us is that there is no HTML5 ebook reader found in Chinese Market yet. We are the pioneers!

4. Job Allocation.

I know Aldrian and Yingbo are very good programmers. From my knowledge on them, Yingbo is good at javascript but do not have a very good UI sense. She would love to be very clear on the product she's going to build and execute on it. Aldrian is great on database and basically every technical problems. Hu Qiang is new to me and I'm not really sure what he can do. As he said he would love to do the UI, he just do the UI loh. I have done some API implementations and social network integration on the last assignment, but they don't seem to be that important for this project. As I'm the only guy used JQuery Mobile in the last assignment, I'll do some JQuery Mobile stuff and research on the EPUB format. I've designed the database schema already, Aldrian and I may change the role a bit on the job allocation listed in the proposal. For this project, UI might be the most critical part. Previously, we thought the partner company's  UI designers may help, but they don't seem that helpful after talking with them.

I personally love Kindle Cloud  Reader and think it's not hard to build a UI like it using JQuery Mobile. But we need different layout for different screen size devices, the UI may not be suitable for all. By the end of the day, we agreed to build a prototype with the similar UI as QQ reader first for the first version.

For text display, I think it would not be nice to take the HTML file out and render it on Canvas, but as my team mates  say we would be able to standardize all the text format and layout if we render all the text on our own way instead of directly use the HTML file in EPUB. Prof. Ben suggests that Canvas would be too slow to render and not so stable. I think I'll try on both and figure out what's the best way.

5. Very good suggestions.

Prof. Ben suggests that we can allow users to provide a url for the ebooks they find interesting. This not only provides other readers with the access to the books they love to read(not in our library yet), but also prevent copy-right problems. That's a very good suggestion. We may try it out. Kok Wee also finds it a good idea to synchronize among different devices, but the big competitors seem to be very challenging for us.

If you have any other suggestions, please feel free to comment on the blog. Thanks:)
Last but not the least, we'll attract more than 10,000 users for the project, fairly big number ha.

Wednesday, 28 September 2011

Kind of Familiar with Sleeping Late

I was very excited to write sth last night after Monday's class. However, I was stuck with a bug in the previous assignment and thus lost the passion to write this blog.
Here I am today, to write some thoughts down before my passions gone.

About Project Management.

1. Idea First or Team first?
I agree with Yingbo that it really depends on the projects. If the timeline is as limited as CS3216, team definitely goes first. It's very dynamic to polish the ideas and make them work later. But for very large projects, ideas should not be easily changed, then teams would have to go next.
I experienced the team first approach in the first two projects. It works perfectly fine. In that approach, everyone actively contributes and there are no hierarchies or non-negotiable conflicts in the team. Though there may be unequal workload distributing problem due to merits of different people in the team, people will be dynamically switch their roles when they finish their jobs. Idea First would be good, too. But it world be too hard to come up with an architectural blueprint and foreseen the potential of the ideas. Worse still, people may not be that strongly believe in the ideas. I also kind of agree with the American friend that good team can  work things out even the initial idea is not working.

2. What if someone cannot finish his/her work on time when he/she committed that before?
As I have mentioned in the class, it's really his/her responsibility to finish that. But if he/she really cannot, he/she should inform his/her friends asap to seek more helps.

About Peer Evaluation

I was pleased as people gave me many positive comments. My friends also give me many suggestions which I feel very good and beneficial. Honestly, I myself knows many negative sides of myself. For instance, I would rather hurt someone in order to pick a strong team. I sometimes am very selfish. I didn't code that efficiently and nicely. I learnt pretty slow and even sometimes impose on other people when a mistake is made and Icannot fix it, etc... I appears pretty nice, but that might be the impression to others. That might not be what I really am. Like Leon told me, he appears very confident and smiles a lot, that's because you have to be confident to make other people confident. If a patience goes to ask for a drug, and you tell him/her in a very in confident manner, how will he/she feel?

About MS interview

I had a phone interview from Microsoft US for internship last week. My lousy English makes the interviewer pretty painful. I encountered one question from the interviewer: He is at level 15 of the building and he want to know what's the temperature outside the windows. There is no internet, etc for communication and no thermal device for temperature reading. How can he know the temperature outside?
I gave an answer by boiling water and recode the timestamp and then convert the timing to temperature. Not good lah, I think he may not understand me at all. ..Finally get rejected.
As Yingbo said long long time ago, what really important is passion and the talent to make the passion work. It's not really opportunities that determine how high a human being can reach, but the talent and passion to make it work. Not so many people can have both two elements. I think her thoughts are pretty persuasive. Too tired, need to sleep.

Good night!






 

Monday, 19 September 2011

Case Study 1

Fig1.Home page(create new help)
I think the team's goal of making it super easy for users to post helps is really good. However, this page involves too many checkboxes and privacy issues that on the contrary increase the complexity of posting a help. For instance, how can you calculate the reliable people? The criteria we assumed in our algorithm may not match the user's mind. Neither can we assume that all the friends have SMS and other information included in their profiles.   It's also very sensitive to post to all friends' walls. In our first assignment, we tried that and the whole news feed will be filled with the same content. That's very annoying. The checkboxes also have some overlaps. Say if one selected "all my friends"+"reliable friends", same people will be informed twice or even more times. That's even more annoying. Furthermore, the additional "needs quick help" option makes it even more complicated. The text input of estimated time seem useless to me for a quicker help.

Fig2. Overview page
I think it's good. It enhances users interactions and it is engaging. There is a budge reward for the contributions. One thing to point out is the button design. Can differentiate a bit on "refer to a friend" and "help him" and change the button colour(can use CSS gradient and use a milder colour).

Fig3. Shouldn't be duplicated Prof profile pics shown on the same table, should eliminate duplication.
Refer to a friend(only one friend, no option for choosing friends? May use some autocomplete plugins to allow users to select whom to refer to). It seems that everyone can click on the "help her" button without actually really help the person out. There should be some confirmation mechanism to allow the probablers to know whether these people really helped or not.

Awards: I think instead of award by the app, they should allow people who received help to award those helpers. That will be more interactive and engaging.

They may have problems figuring out how to award people, how to fit the needs for users to change pictures, etc.

Sunday, 18 September 2011

Random Stuffs

Long time no blogs.
Record some random stuffs here.

1.Monday, entrepreneurer's share.

VSee-- a successful online conference provider.
CEO:Milton--a computer scientist graduated from Stanford and UC Berkley.
Ideas: It's hard to promote your product, even it's a good one. I know from Milton that many great people have tried to do video conferencing but failed. The technology is really challenging but Vsee survived. I admires Milton a lot, for his perseverance. It's really hard to imagine that  one can hold this belief for so long(five years) when there is no sign of getting profits. I know it's not about making profits(at least for Milton), it's really about creating values and making a difference. But how can one survive in this REAL world without worrying about his/her essentials? By essentials, I mean the basic needs for food, living, etc. without relying on other people's help. Well, maybe those who are just too rich to worry about those stuffs or those who are too poor to think about it will find it not a problem.  But I am neither of those kinds of people.

I happened to be doing a video course sharing website with some of my friends. With the help of HTML5 video tag, the website is pretty easy to build. But one big problems arises--the expense. A typical 2 MB bandwidth site can only allow less than 10 people to watch the site simultaneously if they need a good watching experience. The expenses can be as large as tens of thousands per month if we are getting more videos. A even larger problem arises if we want to open this website to China's market. We need to pay an extra million RMB for getting a license to do video sharing business in China--as it is sentenced by the government that Video Sharing is a strictly constricted area because it may contain "bad" contents. Chances are getting worse when our original contents are easily copied by other people on the web(In HTML5, you can right click save video:( ). The cost is too big than we can imagine.Unfortunately, the product is not really good. We had to give up on the project even it may benefit a lot of people and really create values...

For Milton, I think it is really his strong belief that make him hold for so long. He believes that his company is making a great product( I think Vsee is really a great product, too) and the product creates values and really makes a big difference to the world. Maybe I will have a similar strong feeling when there is really something I have built that may impact the world . But not yet so far...

Some interesting shares by Milton:
Be bored for 5 minutes per day. Getting bored makes people more creative. Haha, I'm a bit bored tonight.
Ask 3 things you have learnt every day. It's a bit stressful, but the true thing is that we really have got a lot of stuffs to learn.
Reading famous people's biographies. It seems very true that most successful people read other people's biographies and benefit from them a lot. Well, shall try to read more unless I'm one of those supermen who get other people to read their biographies...
Adverse thinking. We can try to change some small tiny things everyday to make our minds more active. Well, I seem already know this trick from another book.
Good suggestions are never tricky, they need to be practised.

2. Win8
I watched the win8 Keynotes the first day it launches on Tuesday night and downloaded the Developer Preview the very second day it releases. The UI is pretty good. One amazing thing is that MS has made it so much easier for the developers on the app development, especially for web programmers. But one really bad thing is that MS has evilly made the metro style web app associated with IE and you have no way to associate it with other browsers. Unfortunately, my Win8 crushed the very second day I installed it, probably because it has got a SmartScreen antivirus check on the OS layer and my thumb drive has brought some strong virus to the PC... Have to shift it back to Win7, sign.

3. Assignment 2.
Did the RestFul Api thing. It seems to me a http request+moc url ,not very special if the authentication is not involved. Our project is using a facebook login to authenticate users, that seems conflict with the authentication aspiration as OAuth will not be involved in the process when users data is not stored in our database. Have to think about other ways, but facebook api seems to be the best authentication option we have got so far. I shall move on to work on the UI, it might be pretty challenging for a non-designer.  My team mates are astonishing people. Kenny is very proficient with CSS and other client side stuffs. Leon is a purely Linux user with a deep understanding of programming, though he's a pharmacist. Qing Wei is very careful- thinking guy who will get a task into a very detailed level. I enjoy working with them, except I myself have some difficulties digesting their ideas. Thus I wrote a Google docs document after every meeting. That helps a lot as I get better knowledge of their thoughts and I generate my own thoughts, too.

4. The pitch session.

Ideas I find interesting.
a. The promotion card. To reduce your wallet size by moving unnecessary cards to a mobile phone app. It will not only benefit the retailers who pays money to make these cards, but also benefit the users who carry promotion card but only use it for 1-2 times/day. In a hardware perspective, it is not secure to put different card infor into one single card. A phone app would be good, but prevent it from cheating is not easy.  A QR code may help, but the stores may have to equip a reader in order to read these data in a secure way. Another way is through the Internet or Bluetooth--to minimize the hardware constraints of the retailers. This can be done, but hard to be nicely done.

b. The management system for private doctors/pharmacists/etc. There is definitely a big market over there. Pretty interested, but this project may not be suitable for me as the pharmacists terms are just too complicated for me to understand.

c. The Card Game. This can be done on local-networks(as Prof. Ben mentioned about the Majiang Game), but I've got no idea on our it can be done yet. Maybe some IOS guys know something about the it.

d. Taxi booking. Leon says that many people are doing it, but just no successors yet. Maybe it depends a lot on the Taxi companies, they cannot ensure that everyone will get satisfied with the service as customers may not get their requests approved as there might be too many people requesting for the same cab.

e. HDB game. The first idea comes to my mind is to adopting Unity-a cross platform game engine. We may need 1-2 designers to draw 3D models, one for javascripts and one for game logic design/DB sth... Those steps are pretty hard(game design) and very time consuming(3d modelling). May not make any difference to the world.

f. My own thoughts.

1.All About Sales

As Milton has mentioned on Monday, sales people brought a great great value to a company. It would be very profitable if we create a site that offers great sales people to sale products for a retailer. I came up with a business plan: We make a SalesPerson website that allows retailers to offer a deal on the website, if the deal was successfully made by a sales person(a user registered on our website), the retailer need to share 20% of the total income to our website and the website can share 80% of the income to the sales person who actually makes the deal happen. That is to say, the sales person is actually like a part-time employee of our website and we make profit out of every successfully deal the sales person has helped other retailers.  Even if the sales person buys the deal himself/herself, he is like paying 16%(1-20%*20%) less than the usual price for a certain deal. This website then benefits 3 groups of people: the retailers(they may not be able to sale some items by themselves), the sales people(they can get money on the deals they help made and they can receive discount if they buy the deals themselves), the website(we make money by the successful deals these sales people contribute). That would be so great,why not have a try!


2. I'd like to build a module review website in China. I've got some knowledges on RestFul Api, and I believe module review can be pretty beneficial for the students and may have a very big market over there. I may do it this winter holiday. By the way, for the final project, are we allowed to work in for module review site introduced on last Friday's session individually?

3. Inspired by Prof. Ben. A lot of great things can happen on the Win8 Platform,e.g., RSS readers, Location based services, etc. Anyone wants to try on that?! I'm pretty familiar with C#, and tell you a truth, the Win8 Visual Studio IDE is really great. You can write pure javascript/html/php/css/sql like the way you usually do. The only trade off is that that would be a native metro style app on Win8 System and the browser is IE. Pls contact me if you are interested.

Tuesday, 6 September 2011

Ideas Worth Recording

Today we had our pitching session in LT19. Prof. Ben invited many speakers from the industry to share with us their ideas. Some of the ideas are really interesting and worth recording.

Personally, I like the idea of Cliquefund, a new investment idea that focus on impacts rather than profits. It sounds like a non-profit charity funding, also like an angle with no technology support. I think the idea would be beneficial for the people or companies who receive the fund, most likely startup companies, but may not be fair for the investors. This idea will definitely make a good social impact, but I'm really doubt whether this idea will actually become reality as the monetary really depends on the investors, whether they are money-oriented or not. This idea reminds me of a facebook app named Causes, which makes small portion of money out of the funding people raised for a social problem. There are nice people around. Hopefully some investors are that nice, too. How Cliquefund makes the investment, that really determine whether the company's destiny.

Another idea I found interesting is the automated external defibrillator(AED). I didn't realize that this kind of company can be a very good example for location based services until today's pitching session.HTML5 geolocation can actually have a great implementation in such a way!

The third idea is about module review. I think there can be a pretty big market in universities in China for module reviewing.

Some other projects are nice, too. Household.sg is cool. Some projects are not that clearly stated. Not that interested in some "too-local" projects.

Wednesday, 31 August 2011

Followers>>Leaders

Well, it is indeed a tragic fact that there are many more followers than leaders in the world. I realize this when we launched our first Facebook app last night. Initially, we thought that most people would love to try something new, but the fact is that more people intend to watch others first, then decide whether they want to join.

When we first added the news feeds, we fully considered about people's privacy concern. i,e., we only post news feeds on the initial gossip creator's wall and never show the feeds on other related persons' walls. That's a way to eliminate duplication of the same message displaying on one's news feeds. However, the initial gossip creator may not be a big node in the social network. It's the people being gossiped that really make the difference!

Why these people get gossiped? Because they attract followers' eyeballs, they are different from these followers! Unless these people love to gossip, otherwise, our app would have got no users. But usually these people are not gossipers, we have to change our strategy.

With the termination of the old facebook api, some useful methods are no longer available. We cannot get the mutual friends of the login user and another person who's not our app user. Neither can we get the full friends list of a person if our app is not authorized by him/her. But we can post news feeds on the related friends' wall. To make the news feeds less annoying, we only display the message on one of the related friends' walls.

Gossips should be designed for the followers to discuss about those leaders, not for the leaders to make the world more chaotic.

Tuesday, 30 August 2011

IPAD/FB Seminar- Thoughts on Pulse News

Monday's presentation was full of interesting sparks. Of all the eleven teams, only one chose to present FB app, which is Sims Social. The others all chose to present ipad apps. That's not so surprising as Ipad(Tablets) is the most recent platform and there are a lot of blank spaces for us to fill in. The ten ipad apps shared in the seminar covers various fields like e-payment, news-media, education. What surprised me most is that many of us find education a very promising area for mobile app development...As ipads are being utilized as an educational tools in various educational levels, education is really going to be a great pie. Wait, I need to finish comments for my assigned app first. Pulse News, a news media app with good social features.

News media are getting more social and mobile and probably "cloudy" in the recently years. Organizing news media contents can be a promising area since there are always interesting things happening around and people just have the great pain to organize large amount of information from various sources.

Like many news media apps, the technology behind Pulse News is not really that profound. It is just a RSS reader with more customization and social features. Compared with many news media apps like Flipboard, the UI is not really that awesome. However, it's good, in a way that users know how to use it the first time they try this app.But unfortunately, other news media apps also have got a very good user experience.

What is really bad about it is, as mentioned by Vaarnan, the search contents cannot be customized. It implements Google to search the relevant contents, which is not really that customized for users. Filters and more customized algorithm should be implemented in this app.

Vaarnan has also introduced a great feature about Pulse News-Users will not be redirected to a web browser for an external URL. The Pulse News has made a very good integration for information retrieval from external links. That's really really great.

Some original thoughts:
One idea comes to my mind. As the Mac OS Lion and the coming windows 8 is adding gestures and touch features on the desktop system, a news media app in other platforms (like the desktop app in these new systems and web browsers) with social features and touch experience can probably be very popular.

Another thought:  How to compete with other apps with a better UI and UX? Compared with Flipboard, Pulse News is really not that outstanding. As is mentioned by Deepan, Flipboard team consists of many great programmers and they believe valuation without monetization. How can other news media app survive if there is such a great competitor? Probably no other way but to differentiate oneself in a way that fits the target group and fully customize the group' needs.

Tuesday, 23 August 2011

Take the Soy Sauce(打酱油)

When it came to the end of today's lecture, many classmates started to choose their teammates for the mobile-cloud project. I felt a bit lost when I realized that I still didn't form my new group yet. The IOS guys should be very popular and they should have already been booked ahead. As the programmers normally tend to form groups with technical guys, there might not be enough programmers left in the end. It would be good to form a group as soon as possible. Unfortunately, I didn't take the good timing for grouping. I am still not over with the FB app yet. However, many groups have already formed. I do feel a sense of insecure. Who will I be working with? The cruel thing is the that stronger people will tend to choose to work with strong team members. What if there are not enough programmers in the team? That's almost impossible to get things done.The fortunate thing is that the people in the class are really astonishing. But I'm also not that confident on my programming skills. I do feel I was taking the soy source in the Facebook app group as I really didn't contribute a lot to the team. Hopefully I'll finish strong but the deed is that I am still pretty weak. Jiayou la!

Sunday, 21 August 2011

People Rock

Really awesome to work with my FB app teammates. They are really great great great people! Fast learner, elite programmer, dedicated executor , warm-hearted contributor. The app is around the corner, we are going to publish it in a few days. Though there're still many problems remaining to be solved, I really feel some sense of achievement. My teammates really rock. Even with no web programming base at the beginning, we picked them one by one at a very short time. Even though I am the slowest learner in the team, I also have self studied HTML&CSS(Wrox HTML5 24 hour  trainer), PHP(O' Reilly Head First PHP&MySQL), Facebook Graph API(plus many previous FB Apis), a little bit of JavaScript,MySQL,J_Query, J_Son from W3schools,Google and many online resources. Our app consists of four pages, two of them are very important pages. I help develop one of the important pages. It should not be hard, but really takes me quite a lot of time for me to make something. It takes some time to understand how data are transmitted among the client side and the server side. There are a lot of things to concern about. For instance,it is generally good to use PHP for data transmission from the server, but since PHP can only run in a server, keeping on posting&getting from the server and the client will make too many function calls and consume too much time. It would be good to use JavaScript to help fetching the data from cookies to make less function calls with the server, but that is less secure.  We've got to make trade offs. It might be intuitive to use HTML form to post data to PHP, but it may not be a good idea if the data needs to be handled several times and the UI designer needs to make some J_Query animation functions with blocks of these data. Ajax is also a quite big challenge. I am not very sure about these terms, but I really learned a lot along the way. My teammates are really clever. The database is developed within one day by Mingzhe and Yingbo has written a lot of PHP functions but rewrote them using JavaScript. Xiangyun has made a great contribution to the team and he is really an elite in any aspects, no matter it is UI , web programming or hardware programming. It's great to work with these great people, I really appreciate and honor them. Comparing with them, I am much normal and ordinary. Though we all didn't have a strong web programming experience, they really learned much faster than me. Though I have edited some great features in my page,like autocomplete, datetime picker using J_Query, the codes are mostly modified from various sources. I didn't code as that much. So far, I am still not very familiar with JavaScript and many other languages, Try to catch up lah, haha~~ I have encountered many challenges as well. For instance, I want to get the friend list of one of my friends however facebook didn't allow me to access these data. As I know from the developer site, FB only allows access token for users to access his/her friends information, but doesn't allow apps to do so. The Graph API does not support useful functionality appeared in some old facebook apis as well. I seem that can only know the mutual friends between two ids using a previous api method if I do not have either of the two people's authorization. Don't know why, but facebook is deprecating most of its old apis...

Next week, more on UI and creative stuffs. May invite some UI designers to help make some pictures and get some feedbacks from the users once it starts officially testing and operating. Good Night.

Wednesday, 17 August 2011

Something is Wrong

I've got to reflect on the things happened yesterday. I'm pretty worried about the FB app when Prof mentioned in the class that our team has got no designers or web programmers. So are Yingbo and the other two members. One senior in the class suggested that people with the foreseen picture in mind and most passionate becomes the leader. Yingbo came up with the idea and she knew most of the app we are going to build, she undoubtedly became the leader. Since we both lives in RVR, I was assigned the job of developing the pages together with her.After discussing for a short while, we immediately developed a page in the first evening.

I'm pretty free yesterday except one lecture in the afternoon and one make-up lecture in the evening. I should have developed 2-3 pages in the morning, but I didn't.  I was wasting some time on project team grouping in another hypermarket project. Though I spent half an hour studying the syntax of PHP from W3, the fact is that I did not make a single page. Yingbo and I agreed to meet each other in RVR@ 8pm. However, the hypermarket project team had a meeting after the lecture, I didn't come back until 9pm. The FB seminar group also decided to make the 3 app choices@10pm but things turned out that we went nowhere discussing online.  I just wasted one hour chatting online with the seminar members while Yingbo was trying very hard on the app page. That's so bad about me. Really need to apologize to Yingbo. This should be the first-priority thing, but I just keep on doing other stuffs! I'm free on Wednesday, hopefully I will really make a change today.

UI seems to be a core selling point for apps in evolving platforms like Facebook. Xiangyun showed us a flash page he developed before and that looked really cool. Pity thing is that we cannot set another page layer on top of the flash page. We have to bid on him for the UI design. The DB schema has already been built last weekend and Mingzhe is working on it.

Sunday, 14 August 2011

Getting Started

This is the first week we take CS3216, anxious but excited.

The first lecture was encouraging. It's full of interesting shares from Prof. Leong, the seniors and the classmates. I was not confident at the beginning, but these talented people in the room just make me feel good. They are nice and passionate:-)

In the show-and-tell, people shared their fabulous talents in various ways. There are designers, guitar soloist,nerdy engineers,dancers...I was really astonished by many great works they have done. I can even recall most of their great works now, an electromechanics robotics hands with sensor controls, handicraft-buildings made from hundreds of matches, a fancy video with automatic Microsoft voice, an original guitar solo song for his girl, a wheeled robot with complex control algorithms, a serious Q/A website for sex,an ipad app,a web app, a WOW video, poster design leaflets... So many interesting stuffs! I myself played a short guitar song, "Don't Panic" by Coldplay,which expressed my wishes to these new friends.

"Oh, we're sinking like stones,
All that we fought for,
All those places we've gone,
All of us are done for.

We live in a beautiful world,
Yeah we do, yeah we do,
We live in a beautiful world,

Oh, we're sinking like stones,
All that we fought for,
All those places we've gone,
All of us are done for.

We live in a beautiful world,
Yeah we do, yeah we do,
We live in a beautiful world.
Oh, all that I know,
There's nothing here to run from,
And there, everybody here's got somebody to lean on. "

Above are all the non-technical part lah. We've got a lot to do even in the first week. The facebook assignment is due soon and we've formed our groups immediately after the first lecture. In Saturday's workshop, we've learned Unix commands, AWS(Amazon Web Service) configurations, PHP&MySQL. An AWS server instance has already been settled. We are expected to master PHP&MySQL within one week and make our very first facebook application in less than two week's time. Our group members are all new to these stuffs. Fortunately, we are really passionate and having our second group meeting tomorrow.

Below are some useful Unix commands for MySQL root password resetting shared by ELDWIN in the class forum. I attach it here for my own reference as well as for people on the web who may encounter the same problem.


Unable to find the default root password. Follow these steps to reset the root password to 'password' and login to create your user.


cd /home
/etc/init.d/mysqld start --user=mysql
kill `cat /var/run/mysqld/mysqld.pid`
cat > file
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';<Enter>
FLUSH PRIVILEGES;<Enter>
<Ctrl+D>
mysqld_safe --init-file=/home/file &

rm file


Login
mysql -u root -p
Enter password: password


Create User and login
mysql -u root -p
Enter password: password
mysql>CREATE USER 'david'@'localhost' IDENTIFIED BY 'password';
mysql>quit
mysql -u david -p
Enter password: password
Change root pass to something strong
mysqladmin -u root -p password newestpassword
Enter password: password

Friday, 12 August 2011

Part-Time in a Start-Up?

These few days, I was spending some time doing random stuffs in a start-up company inside the campus. The company was initiated two years ago by a year3 Electrical Engineering student and his Prof. Their service is mainly focused on Human-Machine Interaction solutions. The founder is currently doing his Masters in NUS and has already settled up two company branches in China. In my view, he is pretty successful. He has settled up his own company at such young age and he is really making a difference to the world.

Though the founder earned only 500 dollars/month when he first graduated from NUS to open up his own company, he is doing quite well now. As I know, the Singapore branch has so far made a wireless projector controller, a Tai Chi cross-platform app that can run on Ipad,PC,Web,etc(implemented using a game engine called Unity), an automatic temperature reader.They have sold 10 of their project controllers to a Korean company for 80 dollars each. The Tai Chi game is sold to a government healthcare center(a hospital maybe)and the temperature reader is sold to a kindergarten. Some people may claim that it's because Singapore government organizations have got nowhere else to spend their extra budgets. But we must not deny the fact the the founder and his prof really put a lot of efforts in the start-up and the company is really doing quite well.

I've fortunately got the chance to talk with the founder. He is nice and smart. He learns and executes things fast. He loves to learn and knows many cross-disciplinary fields,like sensors, game development,computer graphics and web programming. As a programmer, I appreciate his envision of implementing Unity as the main game development platform since it is compatible with various mobile OSes, desktop OSes and Web browsers.One more great character of him is that he cares about others. At the beginning, I find him pretty hierarchical like most Chinese bosses. But as we work along, I start to know that he actually cares and values his employees.Unlike the co-founder Prof who is famous for the bad manner,he is much nicer in many ways. I planned to work for him this semester and gain some experience in his company.

But I've got to be honest, CS3216 is more important to me in the sense that I can really build my own projects and these projects may probably influence the future. His company is up-to-date, too. However, it seems that that's not where my future really lies. Social, Cloud, Mobile-these are the three itchy themes that the world will be driving, at least for the next ten years. Unity may be a good platform as it involves in mobile platforms, and may also have something to with Cloud. Unfortunately, I don't really have a very strong passion about gaming because I personally don't value gaming that much. As one old Chinese saying goes,"玩物丧志", People loses their determinations when playing games. I feel sorry that I may not be able to work for him during this semester though he has made many sacrifices for allowing me to freely arrange my working schedules.Shall I quit now?

Another thing bothers me a lot is the money. If I were to be paid, then I have the responsibility to work for the company, even on things I don't like. That would be fine if my schedule is not full of sleepless 3216 projects. However, the reality is I cannot afford to take more than 10 hours/week away from CS3216 and other courses. I've finally got a plan--I work voluntarily for the start-up with no constraints on the timing and I don't ask for any pay. However for the benefit of the company and myself, I would like to voluntarily help the company out by helping them make products when I have time to help. I'm asking the founder for permission tomorrow. ..

Thursday, 11 August 2011

"The Road Not Taken"--One of My Favorite Poem

Robert Frost (1874–1963).  Mountain Interval.  1920.
                          The Road Not Taken

TWO roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;
Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same,       
And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads on to way,
I doubted if I should ever come back.     
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference.