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

Sunday, November 10, 2013

File Sharing





Source
     In the tech industry, you need to have a fast and efficient way to share your work with both your co-workers and your managers. This is because your work can only improve when you have your peers examine your programs and your managers need to know how far along you are in your work. There are a number of ways to share your files, whether it is through email, thumb drives, or through an online file storage service. But all of that can be very cumbersome, namely because you have to manually keep track of all the versions flying around. Luckily, there are a number of services on the web that can both keep track of the history of your files and let other easily access it.

     One of those services is called GitHub. So many people just use it solely as a place to store files, but there is so much more that you can do with that service. For example, for any code that you upload to the site, you can view the history of that file. With that you can view all the changes you made during a particular time period, and who made those changes. And on top of that, GitHub has their own editor that allows you to make changes to a file without even having to open up another IDE. There are so many services out there that are devoted to making your lives as computer programmers so much easier, all you have to do is look for them.

Monday, November 4, 2013

Data Structures: Backbone of The Information Age



Source
If you are even slightly familiar with the field of computer science, then you should be familiar with data structures. Data structure is a catch-all term for any sort of system that is designed to store multiple versions of the same data type in a specific way. These structures are extremely important to how our mode
rn world. Without them, we would have a much harder time sorting and accessing any information on the Internet in any meaningful manner. These structures can range from the simplistic, like an array or a linked list, to more complicated fare, like stacks, queue, maps, and trees. Each one of those structures has a different purpose, and some are better suited to one task than others. For example, I wouldn’t use a binary tree to act as the back end of a system that sends print jobs from multiple computers to a single printer. While it could theoretically be done, it would be a waste of time to code and be very inefficient; instead I would use a priority queue, which gives each print job a value that determines the order of printing. 

This semester, I am working with a group that is working on a real world application of a data structure. Our client already has a database running that stores over 3000 items, and she wants us to put a version of it online that has some sensitive information redacted. That online version is supposed to be updated whenever there is a change made in the primary database. Like all things online security is a very important concern. We have to make sure that only information about the items is available for viewing online, and that we try our hardest to ensure that there is no way for any unscrupulous fellows to access the primary database.  It will be very interesting to hear my fellow team members discuss how to implement this database.

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