Sunday, October 27, 2013

Hacking vs. Cracking

Before I started learning Computer Science, I had always thought that hacking is a bad and illegal thing. However, as I began to learn about Computer Security, I realized that many people are actually confused between hacking and cracking. These are two completely different forms of Internet privacy and copyright. Let me explain why they are different.

Hacking is done by hackers who try to understand computer architecture, system and network to gain knowledge in order to improve better system and encryption. Hackers sometimes break into systems and networks illegally, but they, most of the time, do not cause any harm. 

Cracking is done by crackers who try to break copyright protection on software products, and to break into systems to change or steal important data. Usually, crackers are very good at coding and writing programs that crack software protections. Cracking can cause a huge loss for companies that produce software products. 


Software Protection


For example, Adobe Creative Cloud (ACC) is the cloud-based software that helps users store everything on cloud. It would probably make a lot of money for Adobe System Inc. However, according to TechSpot, it was revealed early in June, 2013 that ACC has been cracked already. Do you think how much it will cost Adobe to fix this problem of cracking? I think it will cost millions of dollars.



Software Cracked

In my point of view, hacking is not really bad as long as we learn it to improve our understanding of systems and networks and to enhance our knowledge of Computer Security. In contrast, cracking is bad because it always harms software companies that probably spend a lot of time to make useful software products for users around the world. Therefore, we need good programmers to prevent software from being cracked.  

Sunday, October 13, 2013

Linux: The Future of Gaming

       I've been always impressed by the importance and power of open source and how it's been changing the world for the past few decades. Open source always offers free license and access to its source codes; therefore, it has a huge number of users and developers around the world. It's been getting bigger and better since everyone contributes a little bit to its growth. A lot of people have started building up their own companies based on Linux as the foundation, especially companies developing games.

       As a gamer, I found it really surprising that one of my favorite game companies, Valve, has been a Linux consumer for quite long. Valve launched their first Linux game server back in 1999. Linux, nowadays, plays as the majority of game servers; and more than 1 million of Linux game servers are out there around the world. It's also used internally for the source codes, animations, models, assets, and etc. Free open source code is one of the key features that makes Linux become dominant in the software industry.

       Gabe Newell, Valve co-founder, believes that Linux is really the future of gaming. It is typically used in the gaming industry even though Linux gamers have not got a lot of attention. Several years ago, no one was sure about the direction that PC industry would be going; however, Valve founders saw a new platform, Linux, standing out  among other platforms such as XBox and PlayStation. Linux emerged as a perfect layer with full control over pricing and other features. It led to a new trend of open systems. 

       Going back to the era of all the consoles that came from that time, gaming was like almost closed. If you got a high quality graphical game, your computers wouldn't be able to handle it because of the memory and graphics card technology back then. However, PC graphics eventually reduced that shortage of technology, and the Internet took over the place of private gaming networks.

       Now it is the era of digital distribution, online gaming, and social gaming. These changes in the industry of gaming really started from the innovative open systems which will have greater advantages over regular systems. When given source codes, the heart of any software, even the users of open systems can have big contributions to things that a company produces. For instance, the Android community creates contents ten times bigger than those that any Android company's developers do.
       Therefore, in my point of view, if open source is the direction that gaming industry is heading to, Linux would be the best choice for both developers and gamers. However, it did, do and will continue requiring a lot of efforts from the users and all the companies that are interested in this field.


Sunday, October 6, 2013

Agile: A Great Tool For Project Development and Management

       In the past, I sometimes came across projects and development teams on software that follow agile development methodologies, usually Scrum. Agile is a set of software development methods which is built up on incremental and iterative development. Agile provides its users the capability to freely adapt and make changes to any project based on Agile. I didn't realize these significant characteristics of Agile until I got to explore it during one of my projects this semester; especially, it's extremely used in CS 100W.

     In order to apply Agile correctly and wisely, people should always stay away from the following mistakes:
     1) Lack of understanding of agile development methodologies. 
     2) Lack of logical system thinking.
     3) Make the implementation complicated.    

     Agile really adds new features to the traditional approach to software development process, which always assumes that final products' requirements and customers' demands won't ever change. However, in reality, customers' demands and requirements change quite often, and Agile provides a better way to adapt and make changes to the process of project development flexibly. 

     Also, Agile allows development teams to be able to give deliverable products to their clients at the end of each sprint. Everyone in the teams can respond to changes even when projects progress and customers' demands increase. This is one of the factors that makes Agile powerful. Finally, Agile is one of the best tools for project development and management that any business would need to use.