Sunday 9 March 2014

Cloud Computing

I would just like to take a second to talk about Cloud Storage and the benefits it can have for both a business and a single user. Cloud Storage has revolutionised how we access and store our data and with a wide range of cloud storage providers it can be difficult choosing a provider that you will benefit from the most. 

What is Cloud Storage:

Cloud storage is essentially an online hardrive that you can store and process information from an external server that stores all of your individual files. Some cloud storage companies offer more features but all provide the most basic function of cloud storage, which is to store and backup you're files to an external source and then allowing you to access your files remotely, for a price of course.

Benefits of using Cloud Storage:

Although there are a few concerns with privacy and security when it comes to storing your files online the benefits of cloud storage far outweigh the small concerns of the disadvantages of cloud storage. The files you keep on your own hardrive are under as much threat as files located on a cloud server.

Online Backup:

The most obvious benefit of cloud storage is having a total backup of the files you store on your own computer. If like me you are paranoid of your laptop suddenly crashing and losing the files you have built up over time then the benefit of having another location to store your files is enough of a reason for you to consider signing up for cloud computing. With such a basic requirement for cloud storage such as backup Dropbox would be the ideal place to go, Dropbox has built up quiet the reputation of being a reliable and safe cloud provider. Dropbox offers a generous 2GB of free storage just for signing up just to get you started. This is a sufficient amount for a person using cloud storage for the first time, and one can upgrade if they require more storage for a reasonable $9.99 a month for a single user.

Heres the link for Dropbox to get you started:

Accessibility:

The only thing needed to access your cloud storage is a device and an internet connection, and with the internet being so widely spread and accessible you can access your documents virtually anywhere. Therefore you can go home and access your work files and work from home if needs be, that's only a small example of how accessible these files are to you and who you share them with. Most cloud storage providers have built applications for smart phones and tablets meaning files can be accessed and edited on the go and not just from the desktop at home or work. I personally like the function of uploading pictures I take with my phone directly to the cloud to stop my phone memory from being to bogged down, and yet I can still access these photos from anywhere.


 Collaboration Efficiency:

Cloud Storage makes it really easy to share file between colleagues or third party members, files and folders can be accessed by anyone anywhere provided the file or folder is public meaning open to anyone who wants to access the file can. Files and folders can be configured to allow specific people to have permission to view the files, this is useful in team projects as you can set the privacy permissions to that of your team and your team alone.

Cloud storage providers such as Google Drive also allow users to access and edit files simultaneously with other users that have access to files. Google Drive offers a lot more than just storage due to the added features of having an in house word, power-point and excel editor. This makes it so much easier for people to work together on the same files at the same time, Google Drive stores up to 30 saves of the one document and up to 50 people can edit the document at the same time. An added feature is the "Track Activity" feature which shows what changes were made, by who and when they were changed.

Here's a link to Google Drive:
https://drive.google.com - Try creating a document and allowing someone else to edit it at the same time as you its a very useful feature. Below is a video of the feature in action.


Business Continuity:

Protecting your date and systems is an important part of business continuity planning. Whether you experience a natural disaster, power failure or other crisis, having your data stored on the cloud ensures it is backed up and protected in a secure safe location. Being able to access your data again quickly allows you to conduct business as usual, minimising any downtime and loss of productivity.

Environmentally Friendly:

The cloud is in general more efficient than the typical IT infrastructure and It takes fewer resources to compute, thus saving energy. For example, when servers are not used, the infrastructure normally scales down, freeing up resources and consuming less power. At any moment, only the resources that are truly needed are consumed by the system.


Conclusion:

As I have stated cloud storage can be really beneficial even if only used for its basic function  of backing up files and being able to recover them. I urge you to give it a try at least as there are many cloud storage providers I will provide links to some of the more popular ones, they offer a few gigabytes of storage to get you started so what's there to lose? Thank-you for reading!

Google Drive:

Dropbox:

OneDrive (SkyDrive):



Tuesday 4 March 2014

Useful Sites Part II

Another edition to the useful sites section of my blog is dedicated to a site that is used worldwide. This site is used to help people with an interest in programming or web development hone their skills in a particular programming language. This is achieved by actually completing exercises and applying you're knowledge in different scenarios such as creating a simple tip calculator for a restaurant. The site i will be addressing is Codeacademy.

Codeacademy:


I cannot praise this site enough for what the creators have set out to achieve in the creation of this website. In my opinion learning to program and use a high level programming language is becoming even more fundamental as time goes on. I believe that eventually the learning of a programming language will be introduced in the educational system at a young age as maybe an optional subject to help promote children to learn how to code. 

As I attended a very small school in rural Ireland my choices were limited to Woodwork or Culinary Arts but if I was given the choice of a third (computer programming) I know what I would have chosen. When I attended secondary school in England there were mandatory subjects that were rotated every month such as culinary arts, textiles, art and computers and we learnt the basics of using HTML so I believe my theory isn't totally ludicrous. I believe I have digressed enough but the point I am making is more people are wanting to learn to program and it is sites such as Codeacademy that are providing the facilities for people to do so and I applaud them for that.

Codeacademy was founded in 2011 and is a non profit organisation and the site is completely free, therefore there are no trials and subscriptions unlike other sites.

There are six different languages available that are mainly applied to enhancing web development but what you choose to do with you're knowledge is entirely up to you. I mainly used the Python language to enhance my overall programming language knowledge, practising my skills by use of console applications.

Once you have selected the language you desire to learn, you are taken to the exercise page, this is where the learning begins starting of course with the basic syntax of each of the languages. The exercises are categorised into chapters of sorts such as the "Loops" chapter will cover do whiles, for loops and while loops, "Conditionals & Control Flows" cover if statements and comparators.



 Once the exercise has been chosen you are taken to the exercises you will be learning from, each with an instruction bar located to the left of the websites built in Text Editor. The text editor is where you will be entering your code and running the code to see the outcome. The instructions are easy to follow and with a hint function which will eventually solve the exercise with enough pushes it is very easy to follow along and complete the exercises.


This exercise was taken from the create a Tip Calculator exercise, instructions are on the left, you code in the text editor in the middle of the page, and the output of your program is projected in the window on the right its a simple layout but effective. On the bottom an indication pops up every time you run the code and once you receive the green  tick notification you can progress to the next part of the exercise.

As an extra incentive achievements and badges can be earned by programmers for completing exercises, and a percentage of how much of the course you have completed can also be seen, these are nice little features to notify a person on how much they have achieved during the course, and how much they still have left.



Overall i think this site is a very good starting point for people to learn how to program, I set out with the ambition to learn a little more about programming languages outside of what is taught in my course. I found the site fun and useful simultaneously but due to having my own projects and exercises to do for college I found myself taking a long break from using the site. I urge anyone reading this with an interest in learning to program to start with this site and start to learn the basics at least, soon you might even start to seek out more challenging exercises with your gained knowledge.

Here's the link to the site again and thank-you for reading:
http://www.codecademy.com/dashboard

Saturday 22 February 2014

In this section of my blog I would like to point out some useful sites for any person with an interest in programming or web development. You might already know of these websites due to the popularity each site has gained respectively but nonetheless  I would like to give my feedback on using these sites and where I thought the site was particularly useful.

Tutorials Point:


The first site I will address is "Tutorials Point", I find myself coming back to this site over and over again if ever I feel in need of refreshing my knowledge in a particular area like remembering how to use a Where Clause in MySql, or the syntax for declaring an Array in Java for instance. 

The site is very easy to navigate, due to the simplistic layout of the website. Following the usual formula of a tab bar of the main subjects such as Java, MySql and HTML located at the top of the page for easy navigation. The left hand column is used for dissecting the main topics of the subject you have selected, listed from the basics to the more advanced topics in the selected subject. The simplistic layout gives a lot of functionality to users well versed with using the site. I can at this stage locate the information I need in a couple of seconds judging by how advanced I think the information I need is.





















As you can see from the image above the left column of the page is housed by individual topics of the current subject making it really easy to navigate to a particular section you wish to view. The structure of the information should also be credited as the web-master has ordered the information like chapters in a book, starting with an Overview of the subject and later moving on to the more advanced aspects of that subject. 

This brings me on to the actual information on display for the users, I believe each topic is broken down and described in enough detail but also in a way that won't leave a person shell-shocked or confused by the material they have read. In my opinion this is because the site balances the heavy information with useful and easy to understand examples. I remember having trouble grasping the concept of Polymorphism after a lecture but after looking through the examples on Tutorials Point I was a lot more comfortable with the concept. Some of the more advanced examples can be copied and pasted in to a  virtual machine so you can get a feel of what the code actual does, and can further modify it yourself.



Above is an example on how to use a Where Clause in SQL the tutorial gives detailed information on what the function does, the syntax of using the function and proceeds to give a detailed working example of what a Where Clause does and what you should see after inputting the query. I can't stress how important it is to have a good working example of the type of theory you are trying to explain, it is much easier to learn from working examples and trying these examples yourself over just reading the information and I credit Tutorials Point for having a balance between the both. 

I urge anyone that wants to learn something new or sharpen their knowledge on programming, web development or database management to give this site a look.

Here's the link provided again to save you scrolling up again.


Saturday 15 February 2014

Android Development Getting Started

My first official blog in developing software will take the time to provide readers with the necessary software that will be used to create apps for Android development. Though I am more versed in Windows Phone development as I have only started development for Android a few weeks ago, I feel more people would prefer to start with Android devices. Android devices have become the most sold devices in the phone and tablet market even surpassing rivals Apple, there are a number of reasons behind this which I will go into at a later date but for the moment we will focus on how you can start creating you're own Android applications.

The software I have grown to use throughout the duration of this course is Eclipse, this is an open source piece of software so anyone can download, install and create their first application in just a few hours. Eclipse does not originally come with the necessary tools to create Android apps but there is an open source bundle which comes with an Android Emulator (more on this later) and the ability to create Android project. If you already have Eclipse installed you can download the necessary software for Android development but I found this to be awkward at times so I suggest deleting and downloading the bundle which includes Eclipse.

Just follow the link provided and click the download button:
http://developer.android.com/sdk/index.html?utm_source=weibolife






















Note: Pay close attention to the System Requirements, anything from windows XP to windows 8/8.1 should not be a problem.

The next step is to run and download the required API packages for the version of Android you want to develop for I recommend downloading the latest API 19 (KITKAT) as most Android devices incorporate this version in their system and it is beneficial for the apps you develop to be compatible on most devices.

Click the SDK Manager:

Once the SDK Manager appears you will be faced with numerous check-boxes and different API versions to download. Do not panic I will tell you exactly which ones to download.

The easiest thing to do is to click any check-box with "19" in the name including "19.0.1" the next image will show which check-boxes you need to install. There is however one more package to download the "Google USB Driver" package located near the bottom.





Note: The number of install packages will be greater than mine, due to the fact I have already installed the packages.

 Accept the licence and install:


Note: Installing these packages may take a while go and grab a coffee!

The next step we will create an emulator in Eclipse. An emulator is basically a digital representation of an Android device, this is how we will run our applications before we distribute the app. The emulator gives the developer a sense of how their app will look and feel on the intended Android device.

The first step will to run Eclipse, the location of Eclipse is in the folder marked Eclipse, this folder is located where we found the SDK Manager. Once in the folder click the Eclipse icon. 


Once Eclipse is up and running you will want to click the "Android Virtual Device Manager" located on the top tool-bar of Eclipse.


On the next screen click the "New" button and we can start to specify the type of Android emulator device we want to run on our PCs. The specifications I will be using are a 5.1 WGVA device running API 19.
Copy the specifications in the below image to create an emulator, the name does not matter but I like to keep the naming convention to the device I am currently using.


When you click the "OK" button the once empty "Android Virtual Device Manager" will be populated with the emulator we have created. The next step is to select and start the emulator.


Almost Done! The last window before the emulator starts running is to launch the emulator. The emulator at first takes a long time to kick in, but fortunately the more times you run the emulator the faster it becomes. This is all to do with the snapshot feature in the following window. This saves the state of the emulator in a big file to be called upon when the emulator is started again. Be patient at first but if you experience any problems with the emulator close the emulator and start it back up however this time to un-check the "Launch from snapshot" option and launch it again. Once again I urge you to be patient. 

Finally! The emulator should be up and running, play around with the emulator for a little bit and get a feel for it before we get on to actually developing apps for Android. The emulator will look like the following images. If you close the emulator and run it again, check the "Launch from snapshot" option and it should start up significantly quicker. Congratulations we are well on our way!




Introduction

My name is Daniel though I've never really been used to being called my full name, I much prefer the shortened version (Dan). I live in Galway (Ireland) and have done so for the past 8 years, though I am originally from Sheffield (England). I am currently studying Software Development in Galway-Mayo-Institute of Technology. The course is very challenging and teaches a varied set of skills in Programming, Web Development, Business and Communications, App Development, Systems Analysis, Database Management, Networking and that is only what I have covered so far as this is my second year of a four year course. 

The course is kept interesting by balancing material that has to be taught from books and lecturer notes with letting students use their creativity. Subjects such as  E-Business or Systems Analysis require students to attend lectures to learn material from final exams. However students flex their creative sides with subjects such as Web Development and App Development. Having this balance keeps things refreshing as App/Web development can become more of a hobby than an actual subject once you grow and are more confident in your skills as a developer.

The purpose of this blog is required as part of my Business Communications module to create an online presence, though I feel this could become much more than that over time and could even develop into a hobby much like the other aspects of my course. I will mainly document projects that I am currently working on, expressing my thought process, the difficulties I may face and ways of overcoming them, but also share views on a particular piece of software/hardware I may come across or interesting shifts that may occur in the industry, I will also like to help any would be software developers out there get their feet wet by creating a few easy to make apps for either Android of Windows Phone devices.