About Me: I am currently a Computer Science major at San Jose State University.

Sunday, October 27, 2013

Hacking: Two Sides to Every Coin



Don't trust anyone wearing a ski-mask. Source
If you have spent any amount of time on the Internet, then you have most certainly heard of the term hacking. I am willing to bet that whenever you hear about hacking, there is a very negative connotation about that word.  To many, hacking means using a computer to force your way into somewhere you are not supposed to have access to, and steal passwords, accounts, personal information, and sometimes proprietary secrets belonging to a company. I’ve had my fair share of run-ins with hackers before. About 10 years ago, I had an account on a video game service called Steam. Steam is a platform that lets you buy and download video games. One day I tried to start up the program, only to find my account information was not working. Back then my experience with computers and the Internet was very limited, so I did not know how to retrieve my account, so I ended up creating a new account. Luckily, I spent maybe a hundred dollars on games tied to that account, so it was not that much of a setback. 


What a fancy hat. Source
Now while many of us are familiar with the bad kind of hackers, known as black-hat hackers, there are other hackers, called whit-hat hackers, who use their talents to help people. Some of these people are just good Samaritans, trying to break into places with no intent on stealing anything and then letting the owners know. Others are paid consultants that are hired to find vulnerabilities in software and websites so that the developers can fix these security holes. The perfect example of the former is one that I briefly talked about one of my earlier posts, when a Palestinian computer scientist, named Khalil, discovered a vulnerability in Facebook that enabled people to post stuff on other people’s walls without having to be their friend(1). When he became stymied by Facebook’s IT department, he took the matter into his own hands and posted on Mark Zuckerberg’s Facebook page to show off the vulnerability. After that, Facebook’s security team was able to patch up the exploit, but due to the unorthodox way of showing the exploit, Khalil was not compensated for finding the bug. I, for one, am glad that there are people like Khalil out there who find these types of exploits and do the right thing.

  1. http://rt.com/news/facebook-post-exploit-hacker-zuckerberg-621/

Sunday, October 13, 2013

Open Source: Open for Everyone



https://www.apertus.org/sites/default/files/bart_os.gifI for one love open source for many different reasons. For the uninitiated, programs that are open source have their source code (the core of the program that defines how it functions) freely available online for anyone to access. This lets anyone download and change that program to their heart’s content, and then share their changes online. Eventually, more and more people would build upon that modified program, and the end result would be a vastly improved product that everyone contributed to. There are a number of reasons why people would choose open source over other paid programs. Some either can’t or won’t put up the money to purchase a license for the premium software, and others are thrilled at the prospect taking a program and customizing and making it their own.

When I think of open source programs, one of the most useful in my opinion would have to be Open Office. Open Office is the open source version of Microsoft Office. It has many of the functions that Office has, like a document editor, a spreadsheet maker, a presentation maker, and a number of other useful features. I have two computers, and since I do not want to pay for MS Office on both, I decided to install Open Office on my laptop. It works very well, and I can always search for different plugins in order to get any missing functionalities.and if you decide to go down the MS Office route, that will set you back something to the tune of $139.991, which on a student's budget is not a small sum.In my opinion, if you can avoid spending money and get a product just as good (as long as you are not pirating it), go for the free route.  


  1. http://www.microsoftstore.com/store/msusa/en_US/pdp/productID.259179500

Sunday, October 6, 2013

Agile: Collaboration at its Finest


http://www.noupe.com/wp-content/uploads/2010/04/Waterfall2.jpg
Just like a real one, it flows in one direction and is hard to go back.

When you find yourself working in a group with a product deadline off in the distance, there are many ways to work together as a team to produce a shippable product. There are some strategies based on the Waterfall model, which focuses on incremental stages of development. Each stage of development is executed in sequence. Generally, each stage has its own theme, like a planning, researching, testing, or development stage. While it sounds like an orderly and efficient way of executing a project, there are many who believe it to be quite inefficient. For example: you are half way through the development phase of a service that assists the client in baking cookies, but now the client suddenly changes his mind and wants to cook pies instead. Being halfway through the project with this sudden paradigm shift will invalidate much of the work that was accomplished during the previous stage relating to cookie baking. This results in the waste of numerous dollars and man-hours. As a result, this sequential strategy became less popular, and a new model known as Agile began to gain prominence.


http://upload.wikimedia.org/wikipedia/commons/5/50/Agile_Project_Management_by_Planbox.png
short, sweet, and to the point.
The Agile model was first introduced in early 2001, when a number of software developers met and discussed ways to improve productivity. It was there they published the Manifesto for Agile Software Development. Agile differs from Waterfall in one key area: instead of having a long line of different phases, the Agile method breaks up the development cycle into numerous short work periods called sprints, with the intention of delivering smaller, finished portions of the project  to the client. The Agile method is described in much more detail here. During each sprint, there are daily meetings called scrums.  During these 10-20 minute meetings, the development team, the client, and a facilitator called the scrum master gather and discuss the team’s progress on the project. The scrum master helps direct the flow of the meeting and acts as an intermediary between the team and the client. During each meeting the team reports to the client three things: what they have finished, what they are working on, and anything that is blocking their progress. These meetings allow the client and the team to continually improve the product and quickly react to any blocks that the team experiences, along with any shifts in the requirements put forward by the client. This more natural development cycle both saves time and money by catching problems early instead of halfway through the development.  For the project I am currently involved in, we are using what I would call Agile lite. Since we are all students, it is very difficult to meet every day with the client, so instead we are having Scrum meetings every other week for an hour a day. While it does not fit the mold of Agile perfectly, I can definitely see how this method is superior to the Waterfall method in every way.
 

Friday, September 20, 2013

LinkedIn and Branding: don’t get left behind!


Are you currently in college pursuing a degree? Do you want to start putting your name out there and make yourself noticed in an increasingly crowded job market? Well one of the best ways to do that is to join a professional social media website like LinkedIn1. This website is a place that lets both businesses and job seekers like you connect in a meaningful way. In addition, you can also use LinkedIn to search for people you know, and then make connections with them. Who knows? They may get offered a job that they think you are more qualified for and then send it your way.

Now you may be wondering, “Why should I bother with LinkedIn? Surely there are other ways of looking for a job in my field.” Well I am going to tell you why you should care. First off, 37 percent of job recruiters are increasingly using the internet to find quality talent to employ2. As to why you should use LinkedIn, many different website rankings list LinkedIn in their top ten most popular websites3. From this fact alone, you can see that LinkedIn is not a place you should disregard.

Now that the importance of LinkedIn has been stressed, now it is time to make a profile. It is quite simple to create on, but it is much more difficult to make a good one. The first step is to provide a nice picture of you. It should be very formal with good lighting and a neutral background. Then you need to fill in as much information about yourself as you can. At the very top there is a summery area where you can provide a short bio about yourself. You should be concise and to the point about yourself. In addition, state your strongest points here along with your ambitions. There are many fields that focus on different topics, like your expertise and education background. When describing your level of expertise, use words like expert, knowledgeable, proficient, and familiar with to describe your level of understanding of each skill. This helps avoid any possible misunderstandings when a recruiter looks at your profile. Once those are filled out, make sure you add to any other fields with pertinent information.

Now that your profile is nice and professional, you are done right? Wrong! You cannot be passive with a service like this. You need to actively seek connections with people you know. Ask them to endorse your skills and write recommendations about you. Then start following companies that are in your field to see if and when job openings are announced. The most important thing is to not wait for opportunity to come knocking, instead go out and make your own opportunities.

Friday, September 13, 2013

QR codes: Don't be intimidated by them!



Scan Me!

I am going to level with you guys, up until last week, I dismissed those boxy assortment of pixels known as QR codes as being quite superfluous. I never really bothered with trying to scan and read them mainly because I felt that it seemed like just another fad that would fade away. But now after I experimented with them to see what they can do, I can say that these new codes are much more versatile than any old fashioned bar codes can ever be. While old fashioned bar codes can only encode up to 20 digits, a QR code can be used to encode over 7000 digits or 4000 letters, and with that much storage space one can use these codes to save many different types of data.  With a QR code, a business owner can simply store a text message that will be printed when they scan it, it can be an email address to contact the owner for any questions or comments, if you want a more immediate response you can encode a phone number, or if your business has a website, you can have your code represent your website’s URL. All of these possible uses hardly cover everything one can use a QR code for.

For those who are new to using QR codes, there is a very low barrier to entry. All you need are four things:

1.       A smartphone with some sort of camera(iPhone, Android, Blackberry, Windows Phone)
2.       Software in the form of an app that can decode a QR code and read it( I personally recommend ShopSavvy inc.’s QR code reader available on iPhone, Android and Windows Phone)1
3.       An internet connection in case the QR code is a URL or an email.
4.       This one is optional, but if you wish to start making your own QR codes, there are many free services out there that generate codes. http://goqr.me/#text is a free, streamlined service that I have used to generate the codes on this blog.

When you have these simple tools anyone can take advantage of the easy transfer of information that QR codes provide. This ease of code generation unfortunately leads to a very troubling problem: there some immoral denizens of the internet that could potentially create QR codes that lead to websites that download viruses onto your device. They can accomplish this by finding a QR code that is already posted somewhere and stick their own fake code on top of it. They key to avoiding these types of scams is to find a QR code reader that displays the URL before taking you to the website to ensure that the URL goes to a trusted location( the reader I mentioned does this). Also when you scan a code, try to avoid URLs that are shortened. While many of these are just harmless links, those scammers can use the smaller URLs from sites like bitly.com to further obscure their websites. All in all, QR codes are extremely versatile tools for those who want to provide easy ways of providing information.
Don't worry, this just points to my blog! be careful with these codes.