Translate

Sunday, November 3, 2013

Data Structures: Efficiency is Key!

                Data structures are one of the most integral parts of computer software. These days our computer processors can go through billions of calculations per second but searching, accessing, inserting, and deleting data can take a large chunk of the processing power. This is where data structures save the day, as long as they are built and implemented properly. Data structures gather the data storing and organizing it for efficiency. There are many different types of data structures and many different application uses for them. Arrays, lists, binary trees, heaps, b-trees, and hashes are all ways to manage data for an application. Data structures are also used to create efficient algorithms. In combination, data structures and the resulting algorithms save a great deal of processing power that can be used on more important tasks.


                The big O notation is used to analyze the efficiency of all the tasks that go along with data structures such as searching, inserting, deleting, and the amount of space they use. Most commonly the notation is used to describe the average and worst case scenarios. This is analogous to looking for noodles in a grocery store. The aisles are nicely divided by food categories so you go look in the pasta aisles and voila there it is the first item in the row. But it may be the case that you are at a brand new grocery store and the noodles you are looking for are at the end of the aisle so now you have to walk an extra 30 feet. Now to the actual notation. Common big O notations include O(1), O(n), O(n2), O(n log n) where O() is the big O and the time function is inside the parentheses. Each data structure has their own efficiency for each action. 

Saturday, October 26, 2013

Hacking: How Encryption Keeps Your Data Secure

With billions of people and devices connected to the internet there is an enormous amount of data being sent over the network, saved on the computers, and stored in the databases. The network and the devices allow us to conveniently take such actions with our data. Majority of this data that we have is background noise that doesn’t have much use to others but we also have sensitive data. Even if the data isn't sensitive most of us feel much more comfortable knowing the data we share is not being looked at by a third-party. Life would be easy for all of us if our data was only visible to us and any parties we have given permission to. Unfortunately all technological devices and the network are susceptible to hacking. There is security implemented at every layer of technology because every layer has ways of leaking data which allows hackers to get unauthorized access to your data. There are evildoers out in the world who want to hack you, even the U.S. government is trying to hack you (and succeeding)!


One of the major layers protection, specifically for sensitive information, is data encryption. People have tried and found ways to encrypt data for thousands of years, possibly even longer if only we could decipher the hieroglyphs… Data encryption begins with a cipher used to hide the message, or plaintext. Most early examples of ciphers come from times of war used to hide the information about an army’s strategy. Such examples are the Spartan Scytale, Caesar Cipher, and the Enigma machine. Unfortunately these ciphers were easily breakable. With the power of today’s computers cipher algorithms need to be strong so that the best possible attack is by brute force. 

A common encryption method today is using AES in CBC mode giving the data confidentiality and integrity. Confidentiality prevents unauthorized reading of your data whereas integrity prevents unauthorized writing of your data. In the case of the aforementioned encryption method, AES works by dividing your plaintext data into 128 bit blocks and encrypting each block with a key after CBC obscures the plaintext block by XORing it with the previously encrypted block. The plaintext gets XOR’d otherwise two blocks with the exact same plaintext will have equal encryption output and that gives valuable information to the attacker. Since the first block does not have a previously encrypted block to XOR with a special initialization value is used. This encryption cleverly applies XOR and special functions to completely obscure the plaintext. The attacker can only use brute force and the shortest possible key for AES is 128 bits which would take a long time to break.

*Currently taking a course on information security so most of my knowledge on cryptology is from Information Security: Principles and Practice by Mark Stamp.


Sunday, October 13, 2013

Open Source: Open World

State of Linux Distros
What is open source? Open source is software made freely available to everyone in the world! The source code can be modified and distributed by anyone under the same terms as the license of the original software. Usually open source software is developed not by a company but as a collaborative project amongst the public. It’s amazing that people across the world put in their time and effort for free software to be enjoyed by everyone. There is open source software equivalent to nearly all the proprietary software, i.e. LibreOffice and OpenOffice = Microsoft Office, Thunderbird = Microsoft Outlook. Other open source software I would recommend: Wireshark, HandBrake, GIMP, phpMyAdmin, Dev-C++, Notepad++, and more with descriptions. Using open source software has saved people about $60 billion. The problem with open source is that most of them are not for a regular user, you need to have decent understanding of computers. Proprietary software has a business behind them and has money to advertise but open source software tends to be hidden and you have to know which ones are safe.


 I enjoy downloading all types of software, except viruses, and play around with them. Open source makes that much easier since I don’t have to pay. My favorite open source software are the Linux distributions. The Linux distros are nearly all open source and all the software that comes with the Linux operating systems are open source. You can hit two birds with one stone. The Linux distros are set up for different types of uses. General distros include Ubuntu and Linux Mint, multimedia centric distros include Arch Linux and ArtistX, and there are advanced distros like BackTrack. Linux is even being pushed out on mobile phones. Take a look at more options: Linux Distros. They all have interesting open source software built into them for all types of uses. I just recently installed BackTrack on my computer to mess around with it since it’s made specifically for information security. A bit complicated currently but soon I’ll get it figured out.

Sunday, October 6, 2013

Agile: Software Development Done Smart

When it comes to working on projects there are a few different ways to approach them. One way to approach a project is to create a plan at the beginning and use that for the entire project. In this option there is really only one route to follow as the whole product is put together at once. An increasing option for a project is to use agile development. Agile development is more flexible as the progress is in intervals and the customer can see parts of the project come to life. This way the customer receives working software continuously and frequently. The Agile Manifesto.


How does one get started with agile development? The key to agile is the customer and developer communication. Each agile development interval is called a sprint which usually lasts two to four weeks. The sprint start with a scrum where the customer gives a relatively simple description, a “user story,” of what they want and then the developers figure out how to solve the customer’s problem. A list of what the customer wants is created and then the order in which they are implemented and what sprint they are going to be worked on are decided. During the scrum a leader is chosen as well to communicate with the customer and divide the work amongst the team members. In the following scrum meetings team members share what they worked on, will work on, and identify any blocks to progress. At the end of the spring a working, not necessarily final, product is shown to the customer and the customer can decide on any changes that need to be implemented. An interesting way to estimate the effort of a “user story” is to use a method called planning poker where the developers pick a numbered card depending on the amount of work they think is required. Then everyone shows their cards at once and discusses why they picked their number. You can test out and get a better idea of planning poker at www.planningpoker.com.

Friday, September 20, 2013

LinkedIn and Branding: Brand Your Career


LinkedIn InfographicLinkedIn has redefined social networking by creating a business related networking site to map your professional life. With around 225 million user accounts LinkedIn connects you to a large professional network to boost your career. In this day and age paper resumes are becoming obsolete if not already as LinkedIn has replaced them with their electronic resumes. The entire site is your resume and because it is all online in an easily accessible format recruiters can find you with a click. This simplified interaction between the job seeker and the recruiter makes LinkedIn the future. Recruiters have all the tools they need on LinkedIn, they can easily search for the right candidates and get access to their resumes. They can search by profession, industry, and geography and used the associated graphs to pick out the candidates. No longer to businesses have to store peoples’ resumes and they are constantly updated.

           To attract connections and recruiters you need to keep your LinkedIn actively updated. First of all, you need to set up your profile with all the professional information. Add your picture, summary, experience, skills, education, and other information. Also edit your public profile link so that it easily remembered not a bunch on numbers (preferably your name or a permutation of your name). Another important way to keep your profile active is to follow companies and groups that you are interested in. This further helps you get connected with related professionals and improves your chances of getting recruited. Posting on these groups and related news topics is a good way to spread your name as well.

More info: http://imonlinkedinnowwhat.com/

Friday, September 13, 2013

QR Codes: A Wealth of Data on a Square

To be honest I never cared much for QR codes until today. I had seen them on many posters, websites, billboards, airports, shops, etc. but I thought of them as nothing more than a barcode that linked to business websites. I was terribly wrong. QR codes can be used is so many ways! Scanning a QR code can not only link to URLs, they can be used to send emails, initiate phone calls, connect to a Wi-Fi network, process orders, link to a calendar, and more. To make things even better, they are easy to create and easy to use. All you need is a QR code generating sites such as Unitag where you can easily create and design QR codes for your needs. To use QR codes is just as easy, all you need is a phone camera to scan the code. Unfortunately QR codes have security holes which you must look out for. QR codes can be tampered with so that they link you to a malicious site or even worse they can be used to get access to your sensitive data and steal your passwords or other identification information. Be careful when wanting to scan a QR code, watch out for any evidence of tampering and only scan from trusted sources.

Designed QR CodeSimple QR code

What makes QR codes more fascinating is its algorithm. QR codes came about in 1994 in the automotive industry. Created by Denso Wave, they were made to replace barcodes that could hold little information due to being one-dimensional. As always, adding a dimension makes everything better. QR codes are two-dimensional since it can hold information horizontally and vertically. This allows QR codes to not only hold more information but also reduce the size of the printing space. Compared to a regular barcode, a QR code can hold up to a hundred times more data and take up one-tenth of the space. All of this leads to fast readability and high storage capacity which makes QR codes so powerful. The last powerful feature of the QR code is the error correction algorithm. Not only does this allow damaged QR codes to be read but this is what allows you to design the code the way you want it to look: logos, pictures, colors, patterns.

Friday, September 6, 2013

Securing You and Your Brand on Facebook

Social networking is huge right now and will only get bigger in the future. Websites such as Facebook, Google+, LinkedIn, Twitter, Vine, etc. have tens or hundreds of millions of users each, if not over a billion. The reason for so many users on social networking sites is information. People want information on all their friends and pages they follow and businesses want information on the people. Facebook has an enormous amount of information because of their billion users. What is all this information about? Each user on Facebook, whether a person or a business, is promoting their "brand" to the world. "Branding" is an important part of social networking for people and increasingly important for businesses. But nothing is worse than losing the "brand" one has built. Security is very important on social network sites because there is large amounts of information scammers and hackers want access to.

Businesses wanting to promote their brand have access to tools that gather information from Facebook that will improve their product. Tools are available (both paid and free) from Google, Hootsuite, UberVu, and SocialMention that can send alerts and create detailed graphs based on keywords to get information on the audience. It's even possible to set-up a Facebook page so that it targets a specific audience and a demographic area. This allows businesses to better relate and communicate with their consumers which in return will improve their brand. There is quite a bit of work required to manage their digital footprint though. Anything posted online will be viewed by many people so posts to be true statements. Writing the wrong post can harm the company brand.

A business will also have to take care of their Facebook page in terms of security. On the surface, Facebook is a social networking site but their main business comes as an information sharing site. Not only is Facebook making money by selling information about the users for ad revenue but also criminal organizations want access to this information by scamming or hacking users. It is safe to assume that data stored on the Facebook servers is safe from hackers because encryption software is hard to break unless there is a secret backdoor for the NSA. The way around encryption is by getting access of the user accounts in the first place which bypasses any need to break encryption. As this is much easier, scamming users of their accounts is the main method of attack. The main line of defense is using a strong password and signing out of Facebook once done. Scammers use links to fake sites that will trick users into entering their log in information. They can also install malware and scripts that will gather account information and use the account to scam other users. Specific information on securing your Facebook account can be found at this link.

List of important tips from the previous link:
  • Change your password regularly.
  • Make sure the URL is correct and don't log into Facebook more than once.
  • Log out of Facebook if not using a personal computer.
  • Keep your browser and anti-virus software up-to-date.
  • Don't paste script code into the address bar.
  • Don't click on weird links.
  • Beware of links from friends.