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