Saturday, December 14, 2013

Scientific Computing: Bioinformatics

Bioinformatics is the use of computer science to maintain, analyse, store biological data, and to assist in solving biological problems. Applications of Bioinformatics include sequencing mapping of biomolecules, molecular modelling of biomolecules, prediction of functional gene product, and identification of nucleotides sequence of functional genes. The term "Bioinformatics" was invented by Paulien Hogeweg in 1979, and it was referred to as to study the processes of information technology into biological systems. [1]

Bioinformatics uses software tools, which include Java, C#, XML, Perl, C++, Python, R, SQL, CUDA, MATLAB, and other spreadsheet applications to store and organize biological data. Analyzing the data involves algorithms in artificial intelligence, image processing, data mining, and simulation. To put it in simple terms, studying Bioinformatics isn't a simple task and is a subject that requires more work and dedication to the field to produce results. However, this field of study can be applied to various research topics and has made an impact on human health, the environment, energy, agriculture, and biotechnology. [2]

There is a vast amount of data from genome sequencing projects which requires computer programs to interpret and analyze the data. In fact, the biggest issue that the Bioinformatics community faces is the intelligent and efficient storage of this vast amount of data. It is essential that the software tools used provide easy and reliable access to the data. The three central biological processes around which Bioinformatics tools must be developed are that DNA sequence determines protein sequence, protein sequence determines protein structure, and protein structure determines protein function.

For more information about the field of Bioinformatics, please click here or here.

Saturday, December 7, 2013

Computer Graphics: Making Its Way Onto the Big Screen



Buzz Lightyears ahead: Pixar's digital rendering techniques had much improved by 2000, when it released the critically acclaimed Toy Story
Pixar's Toy Story
Nowadays, we see many movies ranging from genres like Fantasy, Science Fiction, Action, Drama, and Children use computer graphics to entertain the audience with a visual stimulating sensation. We probably take computer graphics in movies for granted knowing that we have seen it develop into something visually stunning over the past two decades. Over the years, we have seen movie makers use computer graphics to make beautiful explosions, detailed unknown alien life forms, mesmerizing environments/landscapes, and enhanced animated movies intended for all audiences. Now we are starting to see movie makers use computer graphics to make altered versions of actual human beings, whether its purpose is to show a younger or older version of an actor or a specific version of the actor that would have been too costly or time-consuming to use make-up.

CGI version of a younger Arnold Schwarzenegger in "Terminator Salvation"
There was a time when computer graphics was just starting out in the movie industry. Movies like Star Wars (1977) and Future World (1976) made use of computer generated special effects, but it was the movie Tron (1982) that helped influence the use of graphics extensively. Although Tron wasn't as successful as other movies that used computer graphics back in the early days, it obviously influenced movie makers with the idea of using graphics for more than just a couple of scenes in the movie industry. Computer graphics have gone on to save time and money for some movie companies as they are able to reuse models or programs for sequels. Movie companies are no longer limited to the amount of resources available before computer graphics were introduced to help bring a director's idea to life (or on the big screen).

With technology evolving, the potential of how far computer graphics can be used in the movie industry is unknown at the moment, but we are seeing more movies using computer graphics to look more realistic and becoming difficult to distinguish what is real or computer generated.

Notable movies that are based on computer graphics include the Matrix Trilogy, Avatar (2009), and the brilliant Pixar Movies (Toy Story, The Incredibles, Finding Nemo, WALL-E, etc). 

Sunday, December 1, 2013

Communications and Security


With computers being a necessity for most people nowadays, there is an even bigger risk for people to lose their personal information that is stored on their computers due to viruses and hackers. Just like buying a house, you would need some type of protection to make sure intruders do not invade your personal space. Most people would say that if you were to buy a computer, you would also need to buy or download a computer security program to have your computer safe from virus attacks. Most new computers come with an anti-virus program installed, but there are probably better alternatives on the internet with some of them being free to download. We have all heard or read stories of people having their personal information stolen and used against them.

Computer security has advanced since the early days of the computer and there are many options to choose from. You must update your computer security programs to be sure that the latest viruses or malware being made do not harm your computer. Just because you have a good anti-virus program doesn't necessarily mean you are 100% safe. It is up to the computer user to maintain the security of the data stored on his or her computer. For example, you want to have strong user passwords for anything that stores your personal information, evaluate user rights to access the system, set up a WEP (Wired Equivalent Privacy) password for any wireless connections you have connected to the computer, and uninstall any unused software or software with known vulnerabilities. [1]

In order to avoid security breaches to your computer, you must be alert and realize what needs to be done on your part and not just rely or expect a software program to protect you from incoming attacks.

Sunday, November 24, 2013

Artificial Intelligence



We've seen artificial intelligence change over the decades and it is quickly being used for many projects regarding robotics and the like. There are even cases where computers are now able to perform a couple of tasks better than a human such as playing chess or playing a game of Jeopardy. As artificial intelligence develops, we are starting to see a trend of human tasks being replaced by a robot or software. Debating whether this trend will provide much needed support or lead to future consequences is yet to be seen.

The rapid advances of artificial intelligence are seen mostly in robots. We now have portable vacuum cleaners that move around the house for its daily routine, picking up any mess to be seen or felt. Other examples include military projects in which robots or other devices will be used to replace humans in hazardous situations such as defusing bombs. Another example of the rapid advances of artificial intelligence is Amnon Shashua, an Israeli computer scientist, who has modified his Audi A7 to be able to drive from Jerusalem to Tel Aviv without having to touch the steering wheel by adding a camera and artificial-intelligence software. [2]

With these advances in artificial intelligence, there is no telling how close we are to living in a world where robots will one day become a necessity for every human and whether or not this will be beneficial for the future.




Sunday, November 17, 2013

History of Computer Science: Programming languages

Every Computer Science student begins their programming skills by learning their first programming language, which may be Java, C, or any other language. Most students today start off their programming skills with the popular languages such as Java, C, C++, or Python due to it being more readable and structured. But what about the languages that helped inspire these languages? In the 1950’s saw the rise of many second generation (Assembly language) and third generation of programming languages (Fortran, COBOL, Lisp). These languages are considered the oldest, but are still used today.

The idea of second generation languages were to have native machine instructions written in a way that it would be readable for humans by using symbols for instructions and memory addresses. It was called assembly language because people would run the text through a utility called an “assembler” that would translate the nearly-human-readable code into machine instructions.

The purpose for the third generation of programming languages was to solve machine-specific problems and make programs more understandable. “The third generation languages made it possible for businesses to create huge, complex applications that would remain in service for decades such as supercomputing applications, AI development, or business software." NASA, credit cards, and ATMs still use these languages till this day.

Soon later, the idea of structured programming was thought of and the languages that we know and use were invented. For a brief history of programming languages, I offer you a visual chart that can be found at http://www.veracode.com/blog/2013/04/the-history-of-programming-languages-infographic/.


Saturday, November 9, 2013

File Sharing


File sharing is the practice of distributing or providing access to digitally stored information, such as computer programs, multi-media (audio, video), documents, or electronic books. With the internet becoming a useful tool for group work, many people are starting to use file sharing programs like Dropbox, Google Docs, SkyDrive, or any other file sharing program to communicate and share project ideas/work. As the idea of collaborating online as a group sound convenient, there should be some form of etiquette for those that are new to the whole idea or to simply avoid being a jerk to others and prevent any miscommunication between the group members.
Naming folders after projects instead of people should be useful since you want others to keep track of what each folder contains rather than see who made the folder.
It is common courtesy to ask your project members if it is okay to delete any files just in case someone may need the information. Do not add more frustration to the project by deleting something that could be crucial for another team member to use in order for them to complete their task.
Don’t change file names or rearrange files because doing so could become detrimental for those that are using it. Even though you may be doing a favor for them, it may bring upon more confusion and upset those that didn’t know the change since they might have had a procedure or structure that worked well for them. An example of this would be that you wouldn’t want your roommate or some other person to fix your room and have your things placed in unfamiliar territory. If you still have that that urge to fix the arrangement of the folders, then politely ask or offer some assistance or suggestions and see if the group agrees.

The best thing is to have a group discussion about how the folders and files be organized. Miscommunication is a nuisance and can waste the groups' time. Having too many folders isn’t necessarily a bad thing as long as they make sense and don't contain repetitive files. If you go by these guidelines, your group may communicate effectively and there shouldn't be less discrepancies among each group member.

Saturday, November 2, 2013

Data Structures: A Vital Part of Being a Programmer

        

        As a young programmer who started learning about programming a year ago, I haven’t really spent a lot of time mastering my knowledge on data structures. I have learned the basics such as arrays, array lists, hash maps, tree maps, stacks, queues, binary trees, simple sorting algorithms, and linked lists. With this knowledge, I realize that finishing a particular project or problem involving data structures can be done in various ways. This is where creativity and figuring out which data structure is more efficient to use will separate you from everyone else. For example, I am currently working on a calendar project for my Java object-oriented design class and realize that there are many ways to approach the project. Some students may use an array list or a hash map to sort out the events that need to be included in the calendar.


How important is data structures for a programmer?       

        Well let’s put it this way, every programmer is required to learn data structures as it is a fundamental part of being a computer scientist. Big companies like Microsoft or Amazon require interviewees, especially those who just graduated from college, to be well-informed in data structures. 

But why interview on data structures?

        We can assume that a recent graduate may not have the working experience to demonstrate that he or she can program in a working environment. Testing interviewees on data structures is an excellent way to tell if the person is able to succeed with the company and be able to see what the person’s critical thinking skills are like when it comes to solving a particular problem. Since data structures are conceptually the same for other programming languages, it is easier to compare two programmers’ knowledge by asking them questions that tests the basics of programming than comparing whether this programmer knows this amount of information more than the other. 

Data structures are a vital part of being a programmer and without having a deeper knowledge of them may result in finding a job in the programming career field a bit more difficult.

Sunday, October 27, 2013

Civic Hacking

Source

Nowadays when we hear the word “hacking”, the first thing that the general public will think about is a computer programmer that is gaining unauthorized access to a system for malicious purposes such as stealing personal information or sending out viruses to infect other computers. Not all hackers are people who want to steal your identity or give your computer a virus. There are those who hacked into a system with the intention of improving one’s security system. They would leave notes to administrators about the security hole that they need to fix. Another definition of hacking would be simply put, the process of fixing a problem. When hacking comes up on the media, we generally hear bad news, but what about if hacking were to be seen in a positive way?

            I am talking about the “Civic Hacking Movement,” where defined on the Code for America blog states that civic hacking is “people working together quickly and creatively to make their cities better for everyone.” The great part of this movement is that you don’t necessarily need to have any technical expertise or be a computer programmer. Civic hacking is a collective effort of ordinary citizens and/or programmers who want to make things better for them and their community. There have been civic hackathons held in Chicago, Philadelphia, and San Francisco, which helped bring together developers, designers, artists, urban planners, and interested citizens. These specific hackathons allow the participants to use open data sets made available by their governments to design useful web or mobile applications that can be used to improve businesses, local government agencies, and other citizens.

            A great example would be Philadelphia’s Philly311 app , the mobile 311 service that was a result from a civic hacking movement. The Philly311 app helped improve the efficiency of their existing 311 call center and provide a channel to easily communicate with City Hall. The app includes options such as submitting a service request, search for nearby requests by other citizens, contact city administration, and receive updates on city news and announcements. The app has so far been successful with over 12,000 requests submitted and it was the 33rd most downloaded app in the country during Superstorm Sandy back in November 2012.

            The idea of having ordinary citizens collaborate with coders and software engineers to help the community is an interesting idea and can possibly offer many solutions to improve the community. With the civic hacking movement spreading through other cities, it seems like it is here to stay and can possibly be the solution that connects the people and government in an efficient way through technology.

Sunday, October 13, 2013

Open Source Software: Made Public for Others to View and Share


What is open source and what does it mean?
Open source is a term that refers to something, whether it is computer software or products, that can be modified or enhanced by anyone since its design or source code is made viewable for the public. I must say that I am fairly new to the term, but didn’t realize that I was already using many open source programs such as Mozilla’s Firefox internet browser or WordPress.

With open source software, anyone can view the program’s source code, copy it, learn from it, share it, or even change the code. In fact, in order for software to be considered open source by the software development industry, they must follow certain criteria which are:
  • The program must be freely distributed.
  • Source code must be included.
  • Anyone must be allowed to modify the source code.
  • Modified versions can be redistributed.
  • The license must not require the exclusion of other software or interfere with the operation of other software.

The popularity of open source software is due to the fact that many people can examine the program’s code to make sure that it does what the program is intended to do or change it to do something else (kind of like what Wikipedia used to be before they actually checked what was being changed). Having the source code publicly accessible opens up to creativity and can be a beneficial tool to become better programmers by looking at the code and understanding what the code does. Wait a minute, if the source code is made available to the public, doesn’t that mean that the software isn’t secure. Well, that could be an issue, but in actuality, some people find open source software to be more secure and stable than closed software because anyone can spot and fix the errors without having to wait for future updates. This is one of the reasons why some people prefer using Linux instead of Microsoft’s Windows operating system.

The whole open source software idea is fascinating and I'm hoping that more software programs become open source one day. For more information on open source software or how I learned all these awesome information, click here, here, and why not here.


Sunday, October 6, 2013

Agile and Planning Poker


Back in 2001, a small group of software developers discussed a more successful and innovative approach to managing software development projects. The result was called the Agile Manifesto. What makes agile so different from the traditional approaches to managing software development projects? Well there were four main values that the group agreed upon which were Individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. These four main values can be summed up as “while there is value in the items on the right, we value the items on the left more.” For the twelve principles that are based on the Agile Manifesto, check out this website.


Agile can be a great tool for anyone that wants their project to succeed. There is one tool that I have used that has an interesting concept in building team communication, which is called Planning Poker. Now you may be thinking that just because I said poker, that this agile tool is all fun and games, but in actuality it is not the type of poker you may be thinking about. Planning poker is basically presenting a story or objective in achieving the main goal of the project. With each objective, every group member is presented with cards with a number value. Each numbered card represents an estimate of how much work the member thinks would be involved in the achieving that objective. Each estimate is kept private from each participant until everyone has chosen a card. The cards are then shown and if there are any differences between card values, then the group discusses on why they think it would take this amount of work to accomplish the objective. It is not until each group member has selected the same card value that the group can precede with the next story or the objective. You repeat the process until the group has agreed on how much work will be done to complete the project.

I find this tool to be effective and has the potential to build team chemistry. Each member can disagree or agree by providing information or solutions as to why this project will be completed by that estimated amount of work. There are other methods such as Scrum, but using planning poker can be the first step in getting any work done and making sure that everyone stays on the same page. Also, the best thing about Planning poker is that it is absolutely free. So why not try it today.

Friday, September 20, 2013

LinkedIn and Branding: Get to Know Yourself....In a Professional Manner

Source
       Have you been looking for a social network site dedicated to professionalism and careers? Unless you have been living under a rock or in an uninhabited island with Tom Hanks and his buddy Wilson, you may know the website, LinkedIn. LinkedIn has emerged as one of the top networking websites today with about more than 175 million members from all over the world. If LinkedIn were to be a person, it would be like Facebook’s older brother except it dresses up and does not tag its fellow viewers with that “Look at me being silly” moment picture.

I see LinkedIn as a mobile resume, where you get to express to the public your strengths and goals as a way of marketing yourself. There is so much you can do other than just finishing your profile and hoping you get noticed by your ideal employers. You can join or start groups, follow news that are related to your career goals, and stay connected to people that have similar interests as you. I admit when I first made my LinkedIn account, I did not really bother to fill up my profile or have a profile picture. If anything it looked like a ghost profile with nothing important or impressive to display. It might as well have scared some potential employers in thinking I was not the right man for the job with the lack of information shown on my profile. I am changing that attitude and trying to sell myself for potential internships in the near future.

Unlike Facebook, you should not put down everything that you would not mind leaving public for everyone to see. Having a picture of you and your friends pillow jousting might sound appealing to other people, but can be deemed unprofessional and immature to companies and businesses if you decide to put that as your profile picture. Be wary about what you put down as your interests as well. As much as you love watching the hit TV show, “Breaking Bad” or going online shopping on Sunday afternoons, LinkedIn is perhaps not the place to display such hobbies. Instead, put down interests that are related to your skills as a professional or help appeal to other businesses that you stand out from the rest of the candidates. Also have a decent profile picture with a simple background in the back. No need to dress up like James Bond or the Queen of England, but at least something that you would wear at a real interview. Also remember to smile in your profile picture. If you look like a grouch, there is a good chance that unless you display skills that only a few have shown, no company would hire you because they think you would offer negative feedback to the company and/or its employees.

            The one crucial thing about maintaining a LinkedIn profile is to keep updating it with any new information or skills earned. It is one thing if you are a young computer scientist that learned the basics of Java programming and another thing when in five years later you have learned only the basics of Java programming. Another thing is to stay connected with other people in the same career field. The more people you stay connected with, the better the chances are that you get noticed or they help you get noticed. Remember LinkedIn is suppose to help you get a job, not be detrimental unless you truly do not put the time and effort in selling yourself as a brand. Be professional, be active, and stay in front of the competition. 


Friday, September 13, 2013

QR Codes: Identity and Security


Ever gone shopping through a grocery mart or electronic store and happen to find along the lines a picture of this?

        Now you may be wondering what this picture does and why a little note next to its side is telling you to “scan me for more details”.  This is what we call a “quick response” code or QR code. This nifty code is a two dimensional bar-code invented by the Japanese corporation Denso Wave and is being popularized internationally, especially in the United States. QR codes can be found on billboards, posters, products, and business cards. QR codes are different than your typical bar-code that you find on price tags because with the use of a mobile device and a QR code scanner/reader, scanning the QR code can direct your mobile device to a website telling you more information about the product, reviews about the product, promotions, discounts, or a video. One other unique thing about QR codes is that they can be scanned from any angle, which should be good news for anyone that does not want to stand up, kneel down, or pretend to be Spider-man crawling on the ceiling trying to scan a QR code. Go ahead and give it a try by scanning my QR code on this blog page.

        Now that you are informed about the general idea of a QR code, it is now time to tell you about the risks of scanning them. Most of the time, scanning a QR code is harmless, but as this idea becomes popular, so does the potential for hackers or people to set up malicious QR codes that would direct your mobile device to websites that could obtain your personal information. The difficult part is that you are unaware whether a QR code is safe or not just by looking at it because its appearance can be customized and there are so far no obvious signs that a QR code is malicious or not without scanning them first. The best solution for this problem is to never scan a QR code, but what is the fun with that. The alternative solution is to find a QR code scanner that informs which website the code is redirecting you or can verify the website’s reputation before it proceeds to the actual website. For more information about protecting yourself against malicious QR codes, visit this mcAfee website.


So go out there, scan those bar-codes cautiously, and get the answers that your curiosity is looking for. 

Friday, September 6, 2013

Social Networking and security. . .or lack of when promoting your brand.

social media globe
Social Media taking over the world

Social media has taken over the world, or at least the internet, and is vastly improving to become a useful tool for businesses and its customers. Everywhere you go, you will most likely see at least one person looking at Facebook either on their phone, laptop, tablet, or any other electronic device that can be connected to the internet. What’s not to like about the social media website? You can communicate online with friends and family, be friends with other people, share articles or videos with them, and post that you have beaten your friends’ highest score on a certain gaming application. There are other benefits to Facebook other than for personal needs. Businesses can connect with their clients, set up meetings, or market their products/events to the public to attract more customers or build a greater fan base. We now see many businesses expanding their brand online due to the demand of customers shopping online for convenience and to stay current in the business world.

Social networking can help improve any business that is looking to expand or adapt to the technological change that its customers may be using. Businesses should be cautious though as there are dangers in using social media such as private information being exposed that could lead to expensive lawsuits and damage their credibility, not checking all the security settings, using a simple password, or having employees freely speak about the company without any regards to future consequences. As long as businesses are cautious about what they post and how they secure their site, there should be no danger in building a reputation through online use. As these social media sites become more popular, the risk of losing personal/important information raises as well. It is always better to be aware of the dangers that may occur and be prepared if the worst happens.

Social Media can only protect you as long as the user does their part. Research what information should be public, private, or not be added to the business’ profile page. Be prepared that once your business goes online, every action or post by employees, intentional or unintentional, will affect the business too. Remember to separate personal posts and information that do not relate to your business. Always check and update security settings and keep in touch with your clients as they are the reason why social media will benefit you.

Thursday, August 29, 2013

Welcome to Anacleto Duplito's Blog

As a University student who started learning about programming about a year ago, I have found programming to be fun and exciting. I am honing my programming skills by visiting websites such as CodeAcademy.com and CodingBat.com. I have experience with Java and Data Structures from my computer science courses that I have taken at San Jose State University. I am learning C and Java Object-Oriented Design along with HTML and Python.

I am a huge video game console gamer and learning about programming offers a different view every time I play a game. Before I became a programmer, I used to take for granted on how a video game operated or how a computer worked. Now I can navigate a computer and have a deeper understanding on how data is processed. From a visual perspective, if you told a computer to do a simple task such as making a peanut butter and jelly sandwich or asked it to throw out the trash, it can be quite complicated if you do not give precise step-by-step procedures on how to perform the task. As you know technology is constantly evolving and becoming a useful and necessary tool in people's everyday lives especially in the business world. It is clear there will be many challenges in the future from preventing cyber-attacks and individual hackers exploiting other people's personal information. As a young computer scientist, the skills and abilities to be an effective programmer means that I am going to take part in helping technology expand and become easier for people to understand and use in their everyday lives.