Saturday, November 2, 2013

Data Structures: What Are They and Are They Really That Important?

Data is everywhere! It doesn’t take a genius to figure out that the data must be structured in some way. If it wasn’t…NO! Don’t even go there. If you are dealing with data, you better be dealing with the right data structures too. What are data structures?  Simply, “a data structure is a format for organizing and storing data” (Rouse) so that the data can be used efficiently.

There are many different types of data structures that you can use depending on the application.  The following are a few of the more popular ones with their advantages and disadvantages.

Array: This data structure is used to collect numerous elements in a specific order. The advantages include fast access if the position of the element is known and quick inserts. The disadvantages include slow searches and deletes.

Linked List: This is one of the most common data structures. Essentially, linked lists are kind of like arrays in the sense that you have an ordered set of data elements. What’s different? Well, each element has link to its successor and sometimes its predecessor. Use this data structure if you want quick inserts and deletes. One negative aspect of using this structure is slow searches.

Hash Table: This is my absolute favorite data structure! The hash table is used to implement an associative array (a structure that maps keys to their values. If you have a large quantity of data, then you can use this to search that data in O(1) time! The drawback is that the insertion and deletion times are somewhat larger than other data structures.


 There are so many more data structures: Stack, Queue, Binary Tree, Red-Black Tree, Heap, Graph and the list goes on. I recommend that you become familiar with all of them since knowing them will give you a good idea of what data structure is best for your application. Data structrue questions also come up A LOT in interview questions. In my opinion, one of the best books to learn and understand data structures is Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein. Another alternative book is Data Structures and Algorithm Analysis in Java by Mark A. Weiss.

In conclusion, I hope your answer to the second question in the tile is a big fat YES!


Other Works Cited
Cormen, Thomas H. Introduction to Algorithms. Cambridge, MA: MIT, 2009. Print.
Quora. "How Do I Strengthen My Knowledge Of Data Structures And Algorithms?" Forbes. Forbes Magazine, 03 July 2013. Web. 02 Nov. 2013. <http://www.forbes.com/sites/quora/2013/07/03/how-do-i-strengthen-my-knowledge-of-data-structures-and-algorithms/>.
Rouse, Margaret. "Data Structure." SearchSQLServer. N.p., Feb. 2006. Web. 02 Nov. 2013. <http://searchsqlserver.techtarget.com/definition/data-structure>.
 

Sunday, October 27, 2013

Hacking: Security Through Insecurity



Growing up, I have always thought that the term “hacker” had a negative connotation and associated the term with a cyber-criminal. Why? Mainly, it’s because of how the media gives most of its attentions to ‘black-hat’ hackers, people who hack with unethical intentions. Just imagine how shocked I was when I found out that hacking can actually be a good thing and that all hackers aren’t some sort of cyber criminals. Once I learned about the existence of ‘white-hat’ hackers, people who hack in order to improve security, I gained a new appreciation for hackers and learned about the importance of hacking.

What exactly is hacking? Hacking “is the practice of modifying the features of a system, in order to accomplish a goal outside of the creator’s original purpose” and although there are many types of hacking (phone hacking, brain hacking, etc), “computer hacking is the most popular form of hacking nowadays, especially in the field of computer security” (http://whatishacking.org/).

White-hat hackers or ethical hackers are invaluable because they are extremely good at spotting bugs and security holes. They can demonstrate the vulnerabilities in the security of large companies so that it can be fixed. With the rise of cyber-crime, ethical hacking is a great way fight against online threats. Cyber-security is a major issue and there is a growing demand for ethical hackers.

Black-hat hackers or crackers are people who hack with malicious intent without authorization. They “typically want to prove his or hacking abilities and will commit a range of cyber-crimes, such as identity theft, credit card fraud and piracy” (Bodhani.). Recently, Adobe was hacked and millions of customers’ data was stolen. Specifically, their IDs, password, and credit card information was obtained. Because of this attack, the company’s brand was tarnished and many of their customers were negatively affected. This just proves the importance of Cyber-security and the need for white-hat hackers to expose these holes in security to the company.

There are many more types of hackers like grey-hat, blue-hat, Elite hacker and etc. If you would like to learn more about the different types, you can read this informative article. If you want to hack, then stay away from the dark side as there are way too many consequences. 

Works Cited
Bodhani, Aasha. "Ethical Hacking: Bad in a Good Way." E & T Magazine. N.p., 17 Dec. 2012. Web. 27 Oct. 2013. <http://eandt.theiet.org/magazine/2012/12/bad-in-a-good-way.cfm>.

Sunday, October 13, 2013

Open Source: Why Open Source?



Have you ever heard the term “open source”? Yes? Great! No? Well, put simply, it refers to something that is publicly accessible and can be modified. Based on this definition, open source software is software whose source code is available to everyone for modification and enhancement.

What makes open source so amazing?
Open source software is reliable because it is peer reviewed since all the source code is available. People can view the source code to understand exactly what is happening. They can fix bugs and can contribute to open source software. Furthermore, open source enables anyone to examine software for security flaws by analyzing the code and making it more secure (OSS). The peer review process is essentially the driving force for reliable and secure open source software.

There is also a great deal of flexibility and freedom that comes with open source.  For instance, if you use proprietary software like Microsoft Windows and Office, then you will probably need to keep upgrading to the newer software. On the other hand, open source software allows you run the older versions. Open source software further provides flexibility through freedom in two main ways:
freedom from a single vendor and freedom to modify your software (Benefits of Using Open Source Software). Open source allows other people to keep the project alive by developing it further. Also, open source allows people to choose solutions suitable for their needs. Vendors can go out business or can stop developing a product.

Those are only a few reasons as to why open source is amazing. To view a few more reasons, you can read this article, 10 Reasons OpenSource is Good for Business. Personally, I absolutely love open source software. As a programmer, I find it extremely valuable for learning because I get the chance to look at the source code and learn from it.  Some of my favorite open source software include The Chromium Projects, Ubuntu, LibreOffice and many more. I hope to contribute to many open source projects in the future.

Works Cited
"Benefits of Using Open Source Software." Benefits of Using Open Source Software. N.p., n.d. Web. 13 Oct. 2013. <http://open-source.gbdirect.co.uk/migration/benefit.html>.
"Open Source for America." Open Source for America. N.p., n.d. Web. 12 Oct. 2013. <http://opensourceforamerica.org/learn-more/benefits-of-open-source-software/>.
"OSS Watch Provides Unbiased Advice and Guidance on the Use, Development, and Licensing of Free Software, Open Source Software, and Open Source Hardware."Benefits of Open Source Code. N.p., n.d. Web. 13 Oct. 2013. <http://oss-watch.ac.uk/resources/whoneedssource>.

Saturday, October 5, 2013

Agile: Why Being Agile is Important



I didn’t learn about agile until recently when I started working with 9 other people to develop a more functional website for the College of Science at SJSU. So, what is agile? Agile software development is simply a different way of managing IT development teams and projects.

If you have time and money, then feel free to develop software any way you like. Most of the time, it is the case that time or money (usually both) is limited. In this case, using agile development principles and practices can truly be beneficial in developing software in teams. There are numerous benefits to using agile and I would like to primarily focus on two of them: speed-to-market and flexibility/agility.

Speed-to-market
“Research suggests about 80% of all market leaders were first to market” (Kelly) and when you 5 Reasons Why Being Agile is More Important Than Being Perfect by Andy Beal.   
release quickly and regularly, you get the feedback from intended customers. This can then be used to identify any major flaws or feature requests so that you can tweak the project early on. To find out more about speed-to-market, you can read the article

Flexibility/Agility
With agile, the “timescale is fixed and requirements emerge and evolve as the product is developed” so it is important to have an actively involved stakeholder that can make “necessary trade-off decisions, trading existing scope” (Kelly) for a new one. This flexibility allows us to embrace change where the emphasis is on building the right product. One of the most important things to remember is that “Agile means higher risk of not meeting the initial scope of the project but much lower risk of not meeting the goals for the project” (Palmu).

Overall, agile software development is great to use in order to work in teams. I believe everyone should try Agile at least once to see if it’s a good fit for their team.

                                                               Works Cited
Palmu, Vesa. "Why Agile?" Wunderkraut. N.p., 16 Feb. 2012. Web. 5 Oct. 2013. <http://wunderkraut.com/blog/why-agile/2012-02-16>.
Waters, Kelly. Allaboutagile. N.p., 11 June 2007. Web. 5 Oct. 2013. <http://www.allaboutagile.com/10-good-reasons-to-do-agile-development/>.

Friday, September 20, 2013

LinkedIn and Branding: The Perfect Combination for Your Professional Brand


LinkedIn is a professional social network for individuals and companies. It is specifically designed for the business community where professionals can truly showcase their personal brand. It is the most popular site for professional social networking with 238 million users and 40% of these users check LinkedIn every day, so if you do not have one, you should make one.

So, what makes LinkedIn the perfect place to establish your professional brand?
First of all, it is absolutely free! This is one of the best places to get in contact with recruiters and other professionals for anything related to business. You can get a job through LinkedIn or get recommendations and endorsements for your skills and expertise.

There are many ways to promote your brand through LinkedIn. One of the most important ways is the summary section which is similar to the “elevator speech”. This is the place for you to tell your story and use the rest of your LinkedIn profile to support that story. Furthermore, the summary section truly enables those that view your profile to establish a connection with your personal brand. For example, if you are a student looking for an internship, then state this in the summary and move your reader to action (get readers to contact you).


Another great place on LinkedIn to promote your professional brand is headline. You can use your current job title or anything you like that will attract other people to read through your profile. The headline is one of the most important branding tool because it can be used to get the right people to look at your profile.

Other ways to promote your brand on LinkedIn include the volunteer section, interest section, experience and etc. It can essentially be any section on LinkedIn if you use it right. Although these sections are just as important, I believe that the summary and the headline section deserve most of the credit for promoting your professional brand.


Other References
Ryan, Liz. "Put a Human Voice in Your LinkedIn Headline." LinkedIn. N.p., 14 June 2013. Web. 20 Sept. 2013. .
Sundberg, Jorgen. "Do Yourself a Favor and Spruce Up Your LinkedIn Summary!" The Undercover Recruiter. N.p., n.d. Web. 20 Sept. 2013.

Friday, September 13, 2013

QR codes: The Benefits and the Limitations

We see QR (Quick Response) codes everywhere. We find them at the mall, at school, on a billboard, on a bus and many more places. They look like barcodes on steroids and give people an easy way to obtain information by scanning them with a smartphone. QR codes are awesome and extremely useful, but they do have their limitations.

The Benefits
QR codes have changed the way that people access information with their smartphone. One of the major benefits of using QR codes is that they are fast. Instead of typing a painstakingly long web address on a small keyboard, you can simply use a QR code scanner to direct you to web address in a matter of seconds.

They are also extremely versatile in the sense that they can be used to redirect people to a web dress, a phone number, a coupon, an image or anything really. People can even obtain Wi-Fi access through them or add an event to a calendar! There is a multitude of ways that people can effectively and efficiently use QR codes and for a more detailed list, you can click this link.

The Limitations
The obvious limitation of QR codes is security. Because QR codes are not human readable, they could lead you anywhere! Of course, you can get a QR scanner to display the URL before you go the webpage, but what good is it if you do not recognize the URL or it is shortened? Would you still go there and risk the threat of getting malware on your phone? No way. To view some of the security solutions, you can refer to the article "QR Codes and Security Solutions". 

The other limitation is that QR codes are not always used correctly. Meunier expresses in his article, QR Codes Work (When Done Well), that “The problem is not QR codes, but rather the many ways in which marketers have overdone them in tragically uncreative ways, and not thought about the ways in which this new tool helps us engage our audience in ways they haven’t experienced before”. Why put a QR code on a billboard, a moving bus, or an ad on television that lasts mere seconds? It does not make any sense and is extremely ineffective. If used correctly, QR codes can very useful.


Other References
"7 Things You Should Know About QR Codes." Educause. N.p., 13 Feb. 2009. Web. 13 Sept. 2013.

Narayanan, Sankara. "QR Codes and Security Solutions." International Journal of Computer Science and Telecommunications 3.7 (2012): 69-72. Web. 13 Sept. 2013.

Friday, September 6, 2013

Social Networking and Security…or Lack of When Promoting Your Brand

The explosion of social networking has revolutionized the way we communicate. 56% of people use social networks and this number only seems to be going up. In this day and age, online presence is extremely prominent so it makes sense for not only people, but also businesses to use social networking as a tool for communication.

Social networking is one of the most efficient and cost-effective ways in order to promote your brand. It is extremely easy to create a facebook page or get a twitter account for your business to easily promote your business. Small or local businesses can get away with not using social networking but it is absolutely crucial for larger businesses to have an online presence in order to promote their brand and communicate with other people. It is one the best ways to create a connections between your brand and other people. Also, it is a great way to get other people to talk about your business and provide feedback. It's great to use tools like Google Alerts or Hoot Suite to track what other people are saying about your company on the web.

            When promoting your brand, it is important to remain consistent in all aspects of your business. First, it is crucial that the business has the same name across all platforms. The website http://namechk.com/ allows you to check if your desired username or url is available on multiple social media platforms.Not only is the name important, but so is the consistency in the voice and the image of the brand. Many companies now have a presence on multiple social networks like Facebook, Twitter, LinkedIn, Google+ and many more. It is important for people to feel like all these different social networks provide the same brand experience. 

           Social networking is a great tool but with it also comes numerous security risks. Hackers can inject malicious code into a business social networking site. Not only that, but hackers can also obtain access to your account and post as your company like the time when Burger King's twitter account was hacked. Employers also pose as a great security risk because if they make a work-related comment on their social media account, then it can affect the company's image. Lack of a social media account can also create a security risk because it invites imposters to represent your company. Although there are security risks to using social networking to promote your brand, the positive aspects greatly outweigh the negative.