Tuesday 4 September 2012

Dropbox - Legends are lessons



Introduction
Dropbox is one of the most popular and simple online file sharing platforms as well as the leading cloud storage company in market with 25 million users up-till now. From the presentation conducted by Group 9, there are many interesting points in the seminar.  
  
Dropbox and its competitors
The most important aspects of Dropbox is the simple, intuitive front-end application and the ability to easily sync files as users only need to put files to the cloud folder once and it will appear everywhere. That simple-but-amazing ability saves end users from having to switch between different cloud storage platforms for different tasks or for different types of data. Moreover, the professional version of Dropbox provides much more advanced administrative tools and supports. However, it doesn't support multi-user collaboration on a single file compared to one of its competitors, Google Drive. Beside Google Drive, there are still lots of similar and outstanding online storage and synchronization service providers such as Apple's iDrive, Microsoft's Skydrive, Box, VMware, Microsoft and many others. As other competitors are all trying to come up with better services and platforms,  Dropbox should retain its original goal of data freedom together with easy, simple and cross-platform synchronization to be able to sustain its leading position.
Business model and the rising concern of free users
Currently Dropbox is still using a freemium business model, where users are offered a free account with a set storage size and paid subscriptions for accounts with more capacity. However, as the number of free users increases gradually, Dropox’s prospects and potentials in the future depends largely on whether free users will pay money to gain more storage space online or just create other free accounts. As a result, the “Enterprise version of Dropbox” appears as an attempt to rectify the problems. Although there is still controversial discussion regarding what is so-called the “Enterprise version of Dropbox”, it could be a potential business model to increase revenue, and by collaborating and integrating with other popular applications and products such as Facebook, Instagram or Microsoft Office, it could stand out from its competitors by becoming one of the most pervasive service provider in the market.

Lacking of version control
Since most Dropbox’s users utilize it to collaborate their daily works, it is strongly and reasonably recommended for Dropbox to have an implemented layer of version control. Moreover, having collaborative editing tools similar to what Git does should also be integrated to help users manage the documents in systematic ways. Although it is technically possible to add that extra layer, it can be a huge drawback of usability considering the conceptual complexities behind. As a considerable number of users choose Dropbox because of its simplicity in sharing files, adding a different layer to the application may potentially undermine such elegance, thus affect users' perception and increase the chance of losing that group of customers. Before coming up with an acceptable mechanism, implementing new version-control layer should not be Dropbox's top priority. In the meanwhile, Dropbox shoud try to improve its existing version-control functionalities. 

Security issue 
Not every company store their confidential data using cloud storage services mainly because of the security issues. Those data are usually stored in local storages so that they can have full access control. While Dropbox does have encryption to protect the entire data user uploaded to its server, they are in control of the encryption keys that they can actually view the contents if they have to. Moreover, files are not encrypted and thus potentially, the public servers can see everything.  I am currently working on a research project to enhance the  about Attribute Based Encryption, it provides us a solution to the mentioned problem. Furthermore, there are only simple access control. A team or a company usually need more advanced administrative tools to management the activities, access rights and storages for each user.

Conclusion
Dropbox needs to continuously improve services quality in order to remains in its leading postions.

 
 

Wednesday 22 August 2012

CS3216 - My first step in the "painful" journey


First lecture and Team formation

The first week has passed by so fast. Without doubt, CS3216 began with an awesome lecture. I had chance to know all the classmates, lectures, tutors and to get feedback as well as advice from seniors. First week was also the starting point of the "painful" journey. The 34-pages assignment 1 gave me a mixed feelings as expected. Soon after that, my team is formed with Dennis, Murali, Inian and me. We finally decided our project to be the Facebook standalone application that is able to control all household appliances including turning on/off and dimming lights, fans, and other electrical devices.

Project started as it should be

Our project is started and the main focus is not software though. Despite that, I will be the one who is taking care of the Facebook API and its documentation. I also have to admit that 34 pages of  'Assignment 1' are very helpful although it makes me feel a little bit scared at the beginning. Now, I can create a Facebook application  using Facebook PHP SDK, get user information via Graph API and FQL. However, there are still a lot of things need to understand and explore (exploit also : p). Moreover, this is my first time using AWS, Git, PHP and so many other tools. It is so helpful and amazing to learn so much stuffs in the workshop right at the end of the first week. I'm sure this is the module that will take lots of my time throughout the entire semester and I am definitely happy about that.

CS3216 - My expectations


I have heard about the famous CS3216 very long time ago since I was freshman. It is one of the coolest renovation modules in School of Computing together with CS3217. Therefore, my expectations to this extraordinary module are quite high.

 Goal 1. Improve programming skills

To be honest, I'm very passionate in computer network as well as system security. Therefore, programming and software engineering is not my strengths and my focuses after all (although I survived CS1101S by Prof Ben 2 years ago) . Having a chance to polish up my programming skill is very appreciated to me. This is also my first time study such a heavy modules that comprise all continuous assessment components during semester (without final exam).

As a matter of facts, since this module involves so many projects in such a short period of times, it will certainly help me improve my web-based programming skill. Moreover, through two assignments, I will have opportunities to learn and work with different platforms. As a bottom line, I believe that the knowledge gained from this module will certainly help me learn other future platforms easily as  learning how to learn is much more useful after all.

Goal 2. Making something better and cooler

I hope to write better quality software by the end of the semester as the module focuses on “production-quality software”. Moreover, the importance of writing clean, scale-able and “production-quality” code has always been stressed upon since when I studied CS2103 module last year.

I will also have a chance to to do what I want, not just fixed assignments with specified requirements and functions in other usual modules at NUS. It sounds very exciting when I can get my hands dirty with Facebook, mobile, cloud platforms and spend times to develop "crazy" ideas.

Last but not least, as the "evil" Prof. Ben is also taking part in the teaching together with Dr. Colin, I can expect the module to be very tough :D but very satisfied though.

Goal 3. Collaboration and multidisciplinary skill

As we are not allowed to form a team with particular partner twice throughout the assignments,this promises to be an exciting experience, but also a big challenge as  I have never worked on programming projects with entirely new people. I will have to adapt to different teammates and diverse team dynamics. However, it is a good lesson because sooner or later we will absolutely have to work with different teammates in different projects. Therefore, I better to gain this experience in school before going out.

Moreover, working with teammates coming from a different background  is also the wonderful aspect of CS3216. I believe that the team composed of diversified members can make the amazing applications and each team member will definitely use his/her own experiences and skills to enhance others skills and knowledge at the end of the day.