Friday, November 15, 2013

Data Structures

My room may look messy but I know where everything is.  I know this is the motto of every teenager in the world but it's kind of true.  I placed everything in a particular place so I know where to go get it.  Unfortunately computers don't tend to follow my organizational style.  It's probably a good thing that it doesn't.  Data Structures are simply the methods used by computers to temporarily store data to
be used.

We store data in real life in various ways depending on what the data is being used for.  People will use file boxes to save old bills or tax documents and shelves are used for books or dvd.  Depending on what it is you are storing you have to choose the best way to store that information.  Data Structures are simply the shelves and file boxes of a program in a computer.

There are three major types of data structures: primitive types, composite types and abstract data types.

The primitive type is very simple.  Information is stored as a single element such as a number, character or a boolean (true or false).  These primitive data types can only hold object at a time and if a new object is placed into the storage the previous object disappears forever.

The next type is the composite type.  The composite type is simply multiple primitive types place in one object usually but always called a struct.  The composite type lets the programmer add as many primitive types as the programmers want but just like in the primitive data structure it only holds a finite number of objects that were predetermined by the author.  And just like in primitive data types if one of the objects is over written the previous data is lost forever.

The last is abstract data types.  Abstract Data types use creative programming techniques to allow a flexible and possibly infinite number of primitive types to be stored.  The easiest of these is the Array.  An Array is just a list of objects numbered from 0 to the limit of the code.  Each object can be over written but doesn't need to be as the programmer can simply keep adding more information on to the end.

There are tons of different types of data structures that can be used and picking the right one is just a matter of what you need to use the information for.  A book or taxes it doesn't matter as long as you organize the correct way.  I should probably clean my room.


File Sharing

When the US military is over seas there are no laws regarding the illegal downloading and sharing of media.  I guess they figure that they will allow anything to go in this area in order to keep the troops entertained and out of trouble.  I returned from Japan with an external hard drive of over 400 movies all legally obtained.  When people hear the words "File Sharing" their minds immediately land on Napster and illegally copying music but that is only the most media frenzied type of file sharing.

The reality is that the transfer of information from one user to another is a challenge that has plagued us since early home computing.  Now we have a number of tools that make sharing information fast and easy.

Social Media.

This is a great way to share something small very quickly.  Twitter and Facebook allows the user to post a short statements, photos or links to anyone who cares to look at it.  We don't have to send emails or texts to share this information nor do we need to care if someone sees it.  This has made it very convenient to share small amounts of data.

Documents.

The next greatest challenge to file sharing has been documents.  Does everyone remember fax machines?  Well I for one am glad that tools like Google Docs exist.  Not only can I post a document for other to see, I am able to set some rules on how the files are viewed or edited.  The user can share it for viewing only, allow editing, or even allow collaboration so that multiple users can edit a document at once.  Once Google Docs started to bridge a gap we have had to deal with since computers made into homes, Apple and Microsoft have built there versions of cloud documentation.


Large files.

The previous two tools are very nice and cover most of the file transferring necessary for the general user but what about those small amount of large file transfer?  There have been a number of great tools to help transfer large images but the two that have made this convenient and easy are Dropbox and Google Drive.  With an easy to install tool the user can setup a folder on their computer and anything that goes in that folder is automatically sent to the cloud.  Once the file is on the cloud the user can do what they want with it after that.  Other users can connect and download the needed files.

Code.

My Favorite type of file to share is code and I love to do it on GitHub.  GitHub allows users to post code, copy code and collaborate on projects to easily build projects.  GitHub cuts out the confusion brought on by trying to email or transfer code and makes it easy to build powerful projects with people you may have never met.

Although much of file sharing is illegal transfer of music, the majority of it is the legal and productive form.  These many tools make our projects, work and home life much easier when connecting to other people.

History of Computer Science

My computer science history started with a Mac II. When my dad bought it for $5500 I was so excited about the possibilities.  I mean I heard about computer games and now I could see for myself.  And lo my dad just wanted to do this thing that is still foreign to me, I think its called word processing?  Since this sweet piece of rockin machinery I have a few other computers.  Today I own a laptop which cost me about $1000 and a desktop which was also about $1000 and there is not a thing these computer cannot do.  And I think they also do that thing, word processing?

Computing in its simplest form is simply logical evaluation like: if this then that.  For example, if its raining then I will take an umbrella.  The first computer that we know of is the Antikythera Mechanism.  It was used to chart the stars by making some simple mathematical decisions.

Computing really started to come in its own by the US Military in order to compute artillery attacks.  A giant room sized computer was built in order to plug in different variables like range, elevation and wind; the computer would then output the necessary settings to plug into artillery.

Once these advanced forms of calculation started to make more of a public appearance, large companies began to put a serious investment into technology.  Companies like IBM took advantage of the sudden interest in computing and put all their effort into corporate us technology.

One of the first operating systems to be widely used is the Unix system.  Unix allowed companies and a small number of individuals to build unique programs limited to anybodies imagination.  Today, Apple's operating system, OS X, is built from a very close version of the original Unix.  Linux is also a more advanced build of Unix.  Microsoft, although they decided to reinvent the wheel a bit by building their own computational foundation, still followed the same structure when creating Windows.
Computers have come a long way from tubes and stone and Computer Science is moving faster today than ever before.  I am more excited than ever to see the new changes that are making computing cooler and cooler.  I can't wait to see what happens next!

Hacking…what is it? What does it mean?


To Hack is defined by Merriam-Webster Dictionary as "to gain access to a computer illegally."  I am going to take it one step further and say that it is "to gain access to computer data illegally."  Something as simple as guessing someones Facebook password in order to get data that doesn't belong to you is also hacking.  The average computer user has a warped view of how hacking works.  With movies like The Matrix, Hackers and WarGames we have this idea that hacking has a cool visual interface and if you are capable of typing fast enough you can get any information from any computer you want.  There are three major types of hacking that are popular today: website hacking, corporate hacking and trojans.Corporate hacking is the next largest form of hacking.  Because of how profitable identity theft has become, hackers are looking for ways to collect more people information at a faster rate.  Several major companies as list by HotforSecurity include AT&T and even Google.  Hackers are collecting user data in order to open credit in the users name.

As a Computer Technician I get to see my fair share of fun people.  But my favorite has to be the this one lady that kept coming back once a week to get her computer completely wiped.  Each time I would ask her "what's going on today?"  And her reply would always be "My computer got hacked."



Website hacking.  Recently an organization that calls themselves Anonymous has been breaking into websites in order the bring them down, even if its just for a short time.  Anonymous was born from the governments attempt to start taxing and regulating the internet.  So far they have targeted large companies or government organizations that support this anti-free-internet point of view.


The last form of hacking is trojans.  Since most people have no idea how to actually break the security of a computer, trojans have become popular by the younger crowd to spy and mess with there friends or enemies.  A group of poorly guided programmers built some software that attaches to anything the user wants.  Someone can add this software to a song, photo or another app and send it to there victim.  When there victim opens the file the malicious software installs on the computer and allows the attacker to see everything the user is doing, read all key strokes entered and even take over the computer.


What the moral of this story?  Its basically this: Your computer is not being hacked once a week by a group of shady people you never met; but that doesn't mean you shouldn't be careful about what you download or what information you put in your computer.  Its not hack happy world out there but please take care of your self and your information.  After you do that, have fun!  The internet is a fun place.