Sunday, October 27, 2013

Hacking: Not Like the Movies

     In modern times, the term "hacking" is often used incorrectly. Some people will say that their account got "hacked" or that hacking is malicious and should never be done. These misconceptions are far from the truth, however, as hacking means much more. The term "hacker" is used to describe either someone who breaks into computer-related systems or someone who has expertise in computer security. This means that regardless of actual technical knowledge, anyone who does one of these two things can be called a hacker.
PasswordHacking
Image courtesy of Techbuzzes.com

     There are many types of people who enjoy hacking. Some people will download pre-made scripts that hack things, while others use hacking in order to locate security bugs in programs before a live release. Tools such as bots and scripts are available to hackers through various places on the internet, but whether they use it for good or malicious purposes is entirely up to the individuals. In the days when computers were still fairly new, hackers would upload viruses or send messages to other people to gain infamy and public awareness. They would have their own special signatures so that they could spread their alias around. Rarely were these viruses highly dangerous to the computer or the personal data of the person under attack, but in more recent times hackers have become motivated by profit instead of fame. People will be paid to install malicious programs that spam advertisements on someone's computer, or even dangerous malware that records passwords for important things such as bank accounts.
     Hacking is not always done by people for bad purposes. Security experts in companies that are also known as hackers will utilize the tools of hacking to find bugs and security flaws in their systems or programs, allowing the company to fix those weaknesses in their code. Thus, it can be used protectively as well. In order to protect yourself from hackers, you should not use default passwords, use "stronger passwords" (I may talk about this in a future blog), install anti-virus software, and update firewalls. If you are really worried, you should go to a hacking forum, such as zero-security, and see what new methods people are using and how to stop them. I hope this post was informative, and if anyone has any questions, feel free to ask!

Sunday, October 13, 2013

Open Source: A Double-Edged Sword

     I was browsing the web earlier this week and found a really great article about the benefits and drawbacks of both open source and closed source programs. You can find it HERE. (By the way, I highly advise people to not click on random links like this one unless it is from a trusted site. If you hover your mouse over the link and look at the bottom left-hand corner, you can see the url. Make sure that the link that you're about to click leads to a safe website.) The author provides a very unbiased opinion and concludes that a market with a mix of open and closed sourced programs is more beneficial than a market that consists solely of one or the other. Being a supporter of open software, I was surprised by these results and now have a more embracing view of closed source software. Today's blog will provide a brief overview of these two types of software.
OpenSourceInitiative
Image from the Open Source Initiative's site at OpenSource.org
     For those of you that don't know, when a program is open source it means that the source code is available for public viewing and (generally) open for usage/modification. The opposite of this would be a closed source program, where only the company that makes it has access to the source code. An example of a closed source application is Microsoft Word, where users pay for the right to use the application. An open source alternative to Word would be Open Office, which is free (like almost all open source programs). A prominent example of a closed source operating system is Windows, while an open source counterpart would be Linux. The difference between these two would be that some Linux distributions build off of others because the code is all open source, while none of Windows code is available for other operating systems, meaning that Linux can cover a wider variety of computer architectures than Windows while Windows is much more profitable and doesn't have to worry about other companies using their code for profit.

ClosedSource
Image taken from Ludios.org
     So, what are the benefits and drawbacks of being open source or closed source? For starters, in an open source program the company does not have to pay a massive cost of production and maintenance for a private application for their use, and can instead use an open source alternative and have the public fix the bugs for them. Having open source programs allows anyone to fix bugs in the code, but also means that there is no strict regulation of guidelines for writing the code. This means that the code can be written very poorly or nearly impossible to read, which might cost the company more to fix than the cost of producing a private program itself. On the other hand, having a closed source application means that companies can have stringent rules regarding code syntax, making it easier for them to know what the code is doing, although since there are less people working on the code, logic errors may be more difficult to find. Additionally, there is quality assurance in closed source code while open source is generally free and made by people who don't wish to make money, causing it to be of a generally lower quality than the closed source counterparts. On the other hand, open source programs generally have extremely fast updates for security flaws or problems with the code, since there are so many people using it and fixing it at once, while it takes a specifically trained small team to fix problems in closed source code.
     Since I don't want to overwhelm anyone with information, I will end this blog here. If anyone is interested in learning more about open source and closed source software, then leave me a comment and I will be more than happy to write another blog post on this topic again in the future! I highly recommend that the average consumer and smaller companies check out open source alternatives to programs before deciding to buy a closed source program like Microsoft Word, but I suggest that wealthy businesses stick to a closed source implementation of things. Thanks for reading this post, and be sure to comment with your thoughts below!

Sunday, October 6, 2013

Agile: How to Plan Effectively

Hello! Today's post will discuss a method of project management called Agile software development. One may ask, "Hey Steven, what exactly is agile?" Simply put, when you are a developer and you say that you are agile, you are saying that you are using adaptive planning techniques that break larger tasks into smaller ones that have short deadlines of anywhere between two weeks to one month. This means that if problems occur, the overall plan can quickly be tweaked accordingly. This isn't something small, big companies such as IBM are utilizing this kind of planning already. The advantages to using this method is that the client will stay updated with progress of the project, while still allowing the group to attempt to do the project their own way. In between each "sprint," or short two to four week period, the group and client will discuss the status of their work and then adjust the plan. This provides a middle-ground between achieving what the client wants while allowing the group to try new things. Agile planning is very easy to use, and anyone planning a project should try it at least once. I have included a sample of the preliminary plan that my group created for the project that I am currently working on below, just in case you wanted to have an example.
exampleSprint1Agile
Example of Agile Planning
exampleSprint3Agile
Another Example