Sunday, December 15, 2013

AI: Real or Hollywood Hooey?

What is Artificial intelligence, or AI? It is the ability for machines to be programmed to learn. Instead of trying to code or program something for every single scenario the machine itself would code as it goes. As in, as it was exposed to more scenarios and environments the machine would use this as input and learn what would be the appropriate response or output. Funnily enough Artificial intelligence is portrayed in media such as movies as something that would cause mankind harm. Current technology would not be able to create AI that would harm on movie levels.

Another interesting topic that usually paired with AI is robots. We currently do have robots that we can program to do certain tasks and that we can control remotely but true AI is yet to significant levels. The future of AI is promising as having a machine that not only can have limited functionality with regular programming can be changed to a robot with the ability to learn how to solve the problems itself. Such a concept is popular as it would be a new technology that would bake live easier. Such a cause is the reason we develop technology. Perhaps AI and robots would be able to exist in the future.

Sunday, November 17, 2013

The History of Computer Science: The Old to the New

Where did computer science start? When did we start programing? One of the earliest machines that was designed was the Charles Babbage. This machine used mechanical energy to perform calculations. The input was designed to handle punch cards. Regardless of what machine it was there were several components that were necessary to compute. The input was needed or else there would be nothing to compute, the processing units that would make the calculations, the memory that holds values and the control unit which directs all information, and lastly the output, without which there would be no point in making the calculations without seeing the results. Later on more and more advances in technology allowed for more, faster, and more efficiently. Mechanical energy changed into electrical energy. Buttons replaced punch cards, followed by later innovations such as the key board and mouse and touch screens. The devices became smaller and faster with the invention of the microchip. Calculations that were once done by using punch card machines that could take up a room can now be done in a device which can fit in one's hand.
File:Babbage Difference Engine.jpg
Babbage's Difference Engine
 http://en.wikipedia.org/wiki/Charles_Babbage

File Sharing: Useful, Controvertial, and Possibly Unsafe.

File sharing is the ability to make data which was on your computer, tablet, or cellphone available to others. File sharing is a very useful tool that would allow one to share information online for easy access without requiring direct physical transfer device such as a flash drive or a transfer cable. This is a highly convenient and efficient way of giving and getting data. File sharing however, does have its controversies and risks. The sharing of files has drawn the attention of copyright holders. File sharing allows people to attain data which is supposed to be paid for, for free. The term for this is called internet piracy, as they are taking intellectual property without paying for it. One example of an action taken was when megauploads.com, a popular file sharing site was taken off the net. However the impact of such action may have been minimal, as this did stop piracy in other file sharing sites. As for risks there is no certain way to determine whether or not a file on the internet has malicious software. Preventative measures for this could include having an anti-virus software installed that has internet screening capability or making sure the source that the file is safe.

Data Structures: Arrays and Arraylists


Data Structures are a way of organizing information in a certain form so that it can be stored and accessed. Each type has its own strengths and weaknesses. For example the array is a data structure that is initiated with a certain amount of holding spots for data or with certain elements already placed into the amount of slots. This data structure makes it easy to access and fill its slots buy using loops. Each slot is both filled and accessed by indexes. It should be noted that the indexes start at zero instead of one. The downside to arrays is that they are if additional slots were needed it would not be able to expand. A new array would need to be made in order to add new slots. Luckily enough there is a different data structure that is similar but allows the addition of new slot. How it avoids the problem of having limited slots is that it expands its maximum capacity as you add data into the slots. Choosing which data structure to use depends on several factors. One of them is the time it takes to do a certain action. For instance, this one makes it easy to add and access information while making it take more time to delete items while another would have easy insertion and removal but, take more time when accessing data and so on and so forth. 
Arrays

Monday, November 11, 2013

Hacking: destructive or creative?

Hacking is the altering of a program that changes its functionality to something different than what the developer intended it to be. As one could imagine this could both be used as a tool that is beneficial and harmful, both creative and destructive. Most of today's media portray its in a negative light and for good reason. People's private information are on the line and crucial information of their lives are subject to exposure to those who have agendas that are less than admirable. Information such as names, addresses, phone numbers, emails, and credit card numbers. Such information in the hand of the right,(or in this case wrong) hands can cause outstanding financial harm or damage someones reputation. However, that is not the only use of hacking. Hacking can be used to alter programs in a creative way to enhance the user experience. For instance, in the video game market there is a very popular type of hacking called a mod. Just like hacking a mod can used for maleficent purposes such as cheating or it could be used as a way to show the program in a new sort of light or allow users to have more fun than they would without the mod. Regardless hacking is a controversial topic that deserves to be a crucial consideration in this age of digital information.




Gary's mod

Tuesday, October 15, 2013

Open Source Software: Its Free!


 Large Orange VLC media player Traffic Cone Logo

Open source software is most likely the result of the programming community reacting to the greed of businesses and corporations. Instead of paying, in some cases in ridiculous prices, for software such as Microsoft Office consumers would be able to download Open Office by Apache for free. VLC player is another open source software for playing videos of many different kinds as opposed to paying for a media player that can use those types of files.

This leads to a battle of sorts against the Open source and Closed source software companies. On one side, one can infer that the paid businesses can buy up the most talented programmers to make their software while the open source software developers have a larger mass of programmers to check for bug and mistakes in the software.

Often it is the case that open source software is an acceptable replacement to paid software. However, it is not without its faults. Out of personal experience there are still many places, such as schools and offices, that still use paid software. Open Office did allow one to save its file as a word document but ,there were some issues in formatting in the sense that the word doc. file was altered. While open source software may be a better option than paying it still has a ways to go in the current world.

Agile and Scrum

According to Ken Schwaber and Jeff Sutherland of Scrum.org, Scrum is a way to make and maintain complex products. Agile and scrum are both . The scrum/agile framework consists of a team that has clear and identical goals and objectives. In order to maintain order of what features are being worked on group communication is crucial. As one could imagine, this level of communication can be daunting to maintain with all group members.

A time measurement of Scrum is called a sprint where the goals and scope of the sprint are determined in a group meeting as to ensure that all members have clarity of what the group is trying to do. Sprints are no more than a month in length and a new sprint starts as the previous one ends as to keep the flow of the project going. The project is finish only when the group has reached what they consider to be done which is determined at the beginning of the project.

Once to product is finished the development does not stop there. Scrum is more of a cycle because product can always be improved in some way or another. Features can be added, removed or even modified to improve the product for customer needs.