Sunday, 17 July 2011

Course Conclusion

This is the final post of this course, so I'll keep it a short one and just list my thoughts of the course as a whole.

I found this course to be highly beneficial for me as we have touched on vast material which I could use not only for my final project but for my line of work as a software developer, except Second life, which honestly I thought they were 3-4 wasted weeks on a technology that never took off and seems to never will, and I still find no use for it in work or life.

Having gone through topic ranging from HTML, CSS, JavaScript, PHP, HTML5, XML and Cloud Computing give me a much needed start in interesting topics that I could use, and having a base on this topics would help me understand quicker anything new I could need to do.

I even found Topics such as Accessibility and Social Networking, which are not exactly in my line of work, to be interesting and still useful as they still have an importance in life.

Finally I found the interaction between classmates and tutor to be pleasing as most of us of different experiences could provide valuable information and tips of these topic and others.

Cloud Computing

Introduction
  
Cloud computing is when using multiple servers via a digital network, to increase additional processing and computing power to a website or web application, to offer a lot different services. This is done by having the website, service or web application share its servers with a lot of other servers with other websites of various size and memory, and when 1 website suddenly becomes popular the cloud would automatically allocate more processing power and memory to handle those extra requests the website is now receiving.

Here is a diagram of various applications and services being offered on a cloud which any device through a secure connection can access.




Aspects of Cloud Computing

Here are important aspects of cloud computing and advantages and disadvantages of each aspect:

Hosted Apps and Platforms: Applications will be installed on the cloud instead of locally on the user’s machine, so as long the browser supports the features needed every application would run on any machine. So apart from disc space other advantages are access from anywhere, especially in today’s world where everyone is using smart phones with fast internet connections, on the user’s part and upgrading is now facilitated on the server side since once an application is updated on the cloud, everyone will have a new version.

A disadvantage of hosted apps is that the user will now have less control on the application. For example a new version of the application has completely changed the user interface and the user doesn’t like it, he still has to upgrade since the user interface has been upgraded on the cloud. Also another disadvantage is the over reliance on the internet connection which sometimes is not good enough for the user’s need. Also there are cases which applications need to have an offline mode in case the internet connection is disconnected such as a point of sale system.

Security: Although one would think that having items locally would be more secure, this is a common misconception. Using clouds would offload most of the security to a company whose job is to make your data as secure as possible. Think of it like a bank is to people’s money. But a disadvantage to this would be that everything on the cloud is now easier for a hacker to access, since he knows where it is.

Control: Although one wouldn’t quickly think of, Cloud Computing providers will have capabilities to get all data back from cloud without any additional costs, and as fast as possible should the user decide to get out of the idea.
       
Thinner Clients: The Clients machine will have less responsibility in terms of Processing and Memory, but clients are still getting more and more powerful so it is not a direct advantage of Cloud Computing.
                                     
         
Scalability: Cloud computing will have us think in a scalable fashion which is not always needed for a small company, but would be very beneficial for a fast growing one.
       
Costs: In some cases licenses are needed for short periods of time, so the best thing to do is to pay per use, a service which most Cloud Computing providers offer, although with incurring costs there is always a chance of making mistakes and having to pay more then you need to. Another thing which could be viewed as either good or bad, depending on your personal opinion, is that with these systems it is much harder to get away with software piracy.
                      
Legal: a problem with cloud computing being such a modern way of doing thing is that laws are not good enough or clearly defined enough to cope with this idea. All the ambiguity in laws would create problems in regards of privacy and define rules of what is permitted on the cloud.
       

Conclusion 

Cloud computing has many advantages that could help a user, but it still has a lot of ways which it can improve. Also better laws to help define what can and can’t be done on cloud computing is a must to remove any ambiguity of the use of cloud computing

Saturday, 16 July 2011

Social Networks

Introduction

Social Networking, the global phenomenon that made the internet the place where everyone tells their friends and even people they don’t know, what are they doing every minute of their life. Yes it can be bad, but there are also positives in it. They are a great way to promote events, shops, bands, competitions etc…

The amount of people using social networking sites are increasing by the second, also the networking sites used are increasing and the popular ones reach a peak before they begin to die slowly when people move to the “next big thing”.

Social networks existed ever since the internet was available to the general public, and has greatly evolved throughout the ages. This week we’ll see the past, the present and the future of social networking.
The Beginning
The first ever forms of Social Networks where called Bulletin Board System (BBS in short). These online “meeting places” allowed users to communicate with a central system where they could post messages to other users, or in some cases download files and games (which would take ages with the internet connections in those times). These primitive systems were often run by hobbyists using their modem, but these systems would only allow 1 person at a time to connect to it meaning usually you’ll have a time limit of how long you can access it per day.
After the BBS, in 1994 GeoCities was launched (first named Beverly Hills Internet). At first the users of this site would select a “city” or “neighborhood” in which to place their web pages. In 1995 the company running the website decided to give users the ability to develop free homepages within those “cities” or “neighborhoods”. The cities and neighborhoods were used to give the user a sequentially assigned “street address” to be used to make the URL unique. In 1999 GeoCities had an online shop called GeoCities Marketplace which sold GeoCities-branded merchandise. Users would cash in “GeoPoints” in the store.
Another social network called theGlobe.com, which gone public in 1998(although created in 1995) gave users the freedom to personalize their online experiences by publishing their own content and interacting with others with similar interests
Sixdegrees.com was another social network site, having the capability of having users create their own profile and listing friends.
Sharing of online content and media was first made possible with the social network called Friendster, which was launched in 2002.

Recent Social Network methods
Modern networking sites such as Myspace, hi5, Linked-in (used more for business), and Facebook where all launched between 2003 and 2004. A slightly more recent social network called Twitter was launched in 2006. Also another aspect of social networking is in online games such as Second life and World of Warcraft, which users take control of an avatar to explore the application’s world while communicating with others.
Today, Facebook has around an astonishing 630million users. Twitter has around 200million and myspace ha fallen behind at 63million.
The Future
An interesting new social network which is now in its beta testing phase is Google+. Its main features include the ability to add people in circles to filter contacts into groups for sharing items to specific groups of people only, and hangouts which are video chats that for now can hold up to 10 people simultaneously. For now new users can only enter the network with an invite from somebody who’s already in it. But this hasn’t stopped 10 million people to sign up to it in the first 2 weeks. Google+ is planned to go public to everyone on the 30th of July 2011.

Thursday, 7 July 2011

Web Development for Mobile Phones

Introduction

Once, mobile phones were a luxury, today with 5.3 billion (77% of the world’s population) mobile subscribers in the world (as of October 2010) mobile phones are a necessity.  Starting off as huge rugged machines that could only make phone calls and maybe send a text message, today’s mobile devices have internet capabilities, an enormous amount of applications for every imaginable use, high definition displays and cameras, touch screens and ever increasing processing power and memory.




Evolution of Mobile Phones

Here is a detailing the evolution Mobile phones have had throughout the years. 
  • Basic Mobile Phones – Rugged and very big and heavy. Only able to call someone and send SMS. Screens only available in Black and White
  • Low-end Mobile Devices – Limited memory, no touch support, but some had a very basic camera, and very basic web support. Also some had a music player which could only play 1 format of “music”.
  • Mid-end Mobile Devices – same as above but with some HTML-browser support in the web department (although still very incompatible with a lot of websites), better camera and music player, more memory (but still pretty limited), better colours and have some basic games installed.
  • High-end Mobile Devices – Higher camera mega pixels, Bluetooth, decent web support, more advanced features, 3G support, much better memory (usage of  micro SD cards etc) and processing power
  • Smartphones – full browser and html support.  3G or 4G support, Wi-Fi support, music player, GPS, Bluetooth, touch screens. Again better cameras, memory and processing power.
  • Non-phone Devices (Tablets) - Wi-Fi support, browsers and other features (depending on brand)




Mobile Phone Statistics

Here are some statistics on Mobile phones which I found to be quite interesting:

  • In 2010 6.5 trillion messages have been sent.
  • Apple launched the Appstore in July 2008 with 500 apps, by June 2010 over 225,000 apps were available.
  • 10.9 billion apps where downloaded in 2010 (not only from the Apple Appstore)
  • Around 160,000 new Andriod smartphones are being sold each day.
  • In 2010 6.2billion dollars was spent on apps, and it is estimated that in 2013 almost 30 billion will be spent on apps
  • Around 3.3billion dollars will be spent on mobile advertising in 2011
  • Users browsing the net with mobile phones are set to top users using PCs in 2013.


Internet Browsing on the Mobile Phone

Since this course is about is called Client/Server Web System Development for a reason. I am going to list the  different types of mobile phone web browsing:

  • Focus Navigation - using the arrow keys to scroll the websites and navigate between links.
  • Cursor Navigation – Using a mouse cursor, this is moved by using arrow keys
  • Touch Navigation – Using the user’s finger or a stylus. The Stylus will be more presice since the tip of the stylus is much smaller.
  • Multitouch Navigation – users may select more than one item at the same time.



Geolocation

For this week’s lab session, we made our smart phones and laptops use Geolocation. Geolocation  identifies an object's geographic location, which can be a radar, a computer terminal connected to the Internet or a mobile phone. The mobile phone I’ll be using Geolocation on, is my HTC Wildfire.
Using javascript, the userlocated() function was used as shown below to get the position of the device that run it. The latitude and longitude where found by using position.coords.latitude and position.coords.longitute. These where stored in variables along with a time stamp, which were then printed on the screen when the function was run. If any error occurred while running this function the error message would be displayed.






First I tried to run this on my mobile phone but nothing happened. Then I ran the script on Google Chrome and the message box with “1” as the message was displayed. Then I decided to run the script on Opera and finally the script worked and showed three numbers, the latitude the longitude and the timestamp.


Another more complex example of Geolocation can be found on www.html5demos.com/geo where the location found is shown to you a map. As I ran through the source code to find out how this is done, I discovered that this example used the IP address of the device to find the location, so it was not as accurate as possible.