25 October 2013

Hacking: For Importation and for Fraud

Joystiq article on the PlayStation Network Outage




Last month, I had bought a Sony PlayStation 3. With the PlayStation 3 having been released in 2006, buying a seven-year-old video game system might make it seem that I am late to the party. The popular PlayStation 3 is the successor to the even more popular PlayStation and PlayStation 2 consoles, released in 1995 and 2000 respectively. As popular as the PlayStation series of consoles is, however, it has resultantly become a target for being exploited. Exploiting video game consoles such as the PlayStation could range from relatively benign, such as modifying the console to play video games from another country, to thievish, such as modifying the same console to play a disc with pirated content.

During the years 2005 and 2006, video game consoles rapidly shifted towards online gaming. Coinciding with the release of the PlayStation 3, Sony allowed users of the new system to play with other people, download new video games, and access other features via the PlayStation Network. It was only a matter of time, however, for exploiters to move on and try their efforts with the PlayStation Network. This time, however, their actions would lead to a breach in privacy of millions of users and gain the attention of governments. On 17 April 2011, an unidentified group of hackers breached the PlayStation Network, causing the service to shut down three days later on the 20th. Despite the Network being shut down for safety, the hackers obtained a large amount of passwords for the user accounts, allowing hackers to access personal information stored in the accounts. The passwords were cited as being hashed instead of encrypted[1], meaning that passwords were only moderately secured, which is likely why such passwords were obtained in the first place.

Such an event can be concerning for anyone who relies on their bank accounts to keep their money secured. While I was not part of the PlayStation Network during the incident, I can still relate, since one of my accounts for an unrelated video game was hacked. Fortunately for me, the account was long since inactive and no longer had my father's credit card information on it, so no real-life problems ever came from that incident.

13 October 2013

Open Source: Will I Become a Late Adopter?

Logos of SourceForge, Android, Linux, MediaWiki, and GIMP


I am a mainstream-ist.  I run Windows on my computer.  On it, I have a lot of proprietary software.  Other than video games, I have products made by big-name companies, such as Microsoft’s Visual Studio for C# and C++ programming and Office for writing documents and creating spread sheets and slideshows.  This is in contrast to some other dedicated computer users, who use lesser-known operating systems such as Linux and tend to have a large library of free-licensed software.  Graphic artists may, for example, use the free GIMP software to edit pictures instead of the expensive, professional-grade Adobe Photoshop.

Since I mainly use Windows, I am sometimes at a slight disadvantage when I need to program at a low level such as C or Assembly, as most compilers for low-level programming tend to, from my experience, be optimized for Unix-like environments.

Open source as a computing concept is not limited to downloadable software, however, as MediaWiki, known for powering major websites such as Wikipedia, is an example of open-source web software, which anyone from just about any computer can access without any actual software needing to be installed.

Open source platforms have varying levels of success.  Linux, while liked by many hardcore computer enthusiasts, is still niche in the overall market for PC operating systems, whereas the operating system Android, used mainly for mobile phones, rivals iOS, Apple’s operating system for its mobile devices.  Even then, while Android has success in the mobile phone market, it fared poorly when it was used to make the Ouya[1], an open-source video game system.  There are many possible reasons for why open source platforms seldom become mainstream, such as a lack of official advertising or a lack of brand recognition.

Supporters of open source often cite how such projects can be constantly contributed towards and improved by both old and new programmers, potentially lenthening the lifecycle of the software.  The fact that the Internet allows projects of any size to be shared easily helps matters,  with websites such as SourceForge being a popular repository for open-source projects.


Finally, two years ago, one of my roommates, who was a senior software engineering major, said to me that he did not believe in software that one had to pay for.  Believing in a capitalistic society where everyone has the right to demand fair, but not necessarily equal, compensation for their labour and talent, I was not sure if I could wholeheartedly agree with my roommate.  After all, computer programming is a highly-sought talent, so why would some programmers choose not to monetize their skill?  For a large-scale software project to reach its full potential, it needs to be backed by a large amount of research, and research costs time and human resources.  Because of this, it remains to be seen how sustainable open-source development can be for those types of projects.

6 October 2013

AGILE: My First Experience Developing in a Group

Screenshot of Doodle


Agile is a form a software development where advances in developing software are done in small, manageable amounts.  When development is done in small iterations, it can be easier to make changes to the software and develop it in a certain direction as the developers, company, or clients see fit.  This is in contrast to traditional methods of software development, where the design of the software is planned for in advance, and deadlines are pre-determined, leaving little room for deviation.  Although traditional software allows a product to be delivered reliably on time, the product may also lack features that were initially not thought of until later in the development cycle.  While the quality of a traditionally-developed software product will likely still be adequate, its features may not be as fleshed out as if it were developed with Agile.

This leads us to Scrum, a form of Agile development that my classmates and I are using for a university class.  Up until this point, all of my software projects have been done alone recreationally—I have almost never developed software in a group, and I have never developed software to provide a specific purpose.  Because of this, my Agile software project has for the first time allowed me to see how professional software development works, and more specifically, how quickly plans during the development process can change.

In my class’s Scrum, we meet with a client who tells us what he wants for a website, and sometimes during a meeting, he will tell us new information that we developers were previously unaware of, which may requires our groups to redistribute tasks.  In addition, my Scrum group uses various websites such to decide on layouts, designs, and features for the website that we are developing on.  From what I have seen, software development processes can take on various forms, and it this trait that allows creative solutions to be achieved via software.