Sunday, October 27, 2013

Hacking: iOS Jailbreaking

Jailbreaking is the legal process of bypassing restrictions on Apple devices (iPhone, iPad, iPod Touch) running the iOS system. If you want to know how it exactly works, an explanation on how the evasi0n jailbreak works is shown here
Essentially, what happens is a modified set of kernel patches is installed. The kernel is the supervisor of the OS and allows you to run unsigned code.  When you jailbreak, you’re able to use unauthorized software and download tweaks.  However, there is a reason why Apple made the iOS to be a closed environment! Let’s go over some pros/cons. 

Pros
  • New apps. Apps like Cydia allow you to install apps that are not in the Itunes App Store.
  • Customization.  Winterboard allows you to change your icons and wallpaper, customize sounds, etc.
  • Secure Shell Client (SSH).  You can manage all of your iPhone’s files. 


Cons
  • No security and limited antivirus protection. You never know if the unauthorized app you are downloading contains malware.
  • Instable; can brick your phone and render it useless.
  • No warranty. 


If you decide to jailbreak your phone, do it at your own risk! If you are careful in what you download, you can maximize the true potential of your device.  I have jailbroken my iphone (iOS 6) and have downloaded some useful apps myself.  TheiOS 7 jailbreak is not released yet so sit tight.  If you do happen to jailbreak your phone, check out these.
  1. Nitrous: significantly speeds up web browsing on mobile device
  2. BiteSMS: quicker way to compose/reply to messages.
  3. MapsOpener: forces map links to open in Google Maps instead of stock Apple Maps app.  


For me, jailbreaking my iphone has allowed me to take advantage of unauthorized but useful apps.  I highly recommend anybody to jailbreak to make the best use of the device.  Just remember to be careful!

Sunday, October 13, 2013

Open Source: Free Tools

Everything comes with a price. Except free open source software! Open source refers to something that can be modified because its design is publicly accessed.  Therefore, open source software is software whose source code is available for modification by anyone. You may have heard of Firefox, Thunderbird, Open Office, BitTorent, VLC Media Player, Audacity, etc.  These are all FREE tools that everyone should take advantage of! Here is my favorite open source software list:

1) Open Office: This is a great alternative to Microsoft Office that handles most of Microsoft Office's productivity tasks from document production to creating full multi-media presentations.


2) VLC Media Player: very simple and powerful media player since it can play most codecs  (MPEG-2, DivX, H.254, MKV, WebM, WMW, MP3..)., plays everything (files, discs, webcams...) and runs on all platforms (Windows, Linux, Mac OS X...).


3) Audacity: a multiplatform audio edittor that can import and export in numerous formats (WAV, FLAC, AU...). It is useful for anyone that needs to manipulate audio.


Of course there's benefits of being a consumer of these tools but what about on the developing side?

Public collaboration.  Most open source projects, like Wordpress,  are created by a large number of programmers, all working together to create a software package.  Also, because it's open source, source code is available to ALL developers that want to contribute.

Go take advantage of these free tools!


Sunday, October 6, 2013

Agile: Understanding Agile Methodology



      When I first heard of agile in my CS100W class, I was thinking of the actual definition: Characterized by quickness, lightness, and ease of movement.  I continued to learn that the term "agile" in class refers to a software development method! You may have heard of other software development methods such as Waterfall, Spiral, Iterative and Incremental, etc. These are all methods that work as a framework which controls project development and maintenance.  Agile Methodology is an alternative to traditional project management, based on iterative and incremental development. Requirements and solutions through cooperation between self-organizing, cross-functional teams.

Here are some underlying principles of Agile Methodology:


1) Complex projects are broken into smaller, attainable goals.


2) Simplicity


3) Face to face communication (the best kind of communication!)

4) Close, daily cooperation between business people and developers


5) Regular adaption to changing circumstances


A framework that uses agile methodology is Scrum.  Projects are broken down into smaller pieces that are managed and completed in short intervals called sprints.  These sprints, which are often two to four weeks, involve short term goals that are part of the main goal.  Following the process above, customers receive the "Release" often and are able to evaluate it so that modifications can be made.


Agile is a very powerful tool that can be used efficiently in any project. Although it may not be the best option, it provides a productive approach for teams and product development.