Saturday, December 14, 2013

Scientific Computing: Mapping the Human Genome


Computing technology is rapidly advancing and recent scientific discoveries could not have been accomplished without the help of this computational power.  Different from traditional scientific data collection, the field of Scientific Computing (or Computational Science) uses a mathematical approach ran on computers to understand a situation or environment.  Whether it is predicting this week's weather or mapping out the DNA structure of humans, Scientific Computing is giving us the tools to advance the knowledge of our existence. My favorite example of the use of Scientific Computing is that of the Human Genome Project.

DNA modelThe Human Genome Project was an international effort aimed at mapping and understanding all the genes of human beings. It was a three billion dollar project which took 13 years to complete and required massive amounts of computing power in order to accomplish its goal.  This project found there are about 20,500 human genes and offered the world the details about the structure, organization and function of these genes. Essentially it created a blueprint map of our selves.

The benefits this project provided to the world is astonishing. It was reported that for every $1 spent by the federal government a return of $141 was returned back to the U.S. economy. Medical advances in the diagnosis of cancer as well as many other genetic diseases have also benefited from the results of this project.

Saturday, December 7, 2013

Computer Graphics: Bitmap and Vector Imaging


In the world of Computer Graphics there are two major two-dimensional types: bitmap and vector images. The more common of the two is the bitmap image (also referred to a raster image). Bitmap images consist of many tiny dots of color called pixels. All of these pixels together form an image. Common bitmap images are icons on your desktop which are typically 32 by 32 pixels. On the left is an example of a paintbrush icon. It consists of 32 dots of color going in each direction. When enlarged, one can see the individual pixels. Bitmap images are resolution dependent. This means when resizing a bitmap image to be smaller, the resize command on your imaging software must throw away pixels to make the image smaller. When enlarging the image the software must create new pixels and estimate the color of the new pixels using a process called interpolation. Bitmap images are also restricted to be a rectangular shape.

Some common bitmap formats are:

  • BMP
  • GIF
  • JPEG or JPG
  • PNG
  • PSD (Adobe Photoshop)

The other major type of Computer imaging is Vector images. Vector images are made up of many scalable objects which are defined by mathematical equations. This is quite different than the bitmap's pixels in that these objects are lines, curves and shapes which can be modified without destroying the object itself instead of a defined dot of color. Vector images are resolution independent because they are scalable. Increasing or decreasing the size of a vector image will not affect the sharpness of the image. Another advantage of vector images is that they are not restricted to be a rectangular shape.

Vector images are usually made up of solid shapes of color or gradient instead of pixels and tend to have a cartoon-like appearance. For this reason a vector image is not a good choice for producing a photo-realistic image. On the other hand, vector graphics are continually becoming more advanced. There are tools which apply a bitmapped textures to vector objects giving them a photo-realistic appearance. Here is an article with additional information about converting between these two types of image formats as well as scanning and keeping transparency.

Common vector formats are:

  • AI (Adobe Illustrator)
  • CDR (CorelDRAW)
  • CMX (Corel Exchange)
  • DXF AutoCAD
  • WMF Windows Metafile

Saturday, November 30, 2013

Communications and Security: The Rogue Hotspot

Free Wi-Fi
Society is always on the go and wireless hotspots are popping up in nearly every busy area.  Local coffee shops, airports, busses, and even downtown free WiFi zones are being set up to satisfy society's desire to be connected to the internet.  These hotspots are usually free or require a small fee to use and are open to the public. You might think all is well, but there could be a danger lurking within these portals to cyberspace. One such danger is called a Rogue Hotspot.

Coffee Shop Wi-FiImagine you are at the airport and you want to check your e-mail before your flight departs so you connect to the local Wi-Fi zone.  This could be free or a paid service and you log on. You check your e-mail and post something on facebook while finishing your cup of coffee. Everything seems to be fine. What's really going on is that the hotspot you connected through was some person on a laptop nearby just posing to be a legitimate public Wi-Fi hotspot. While you were checking your email and poking on facebook, he/she was searching your computer for banking, credit card and other sensitive information.  If you were unfortunate enough to have given up your credit card because the hotspot had charged you to connect, the crook gets your fee and is selling your card to others. 

There are some simple steps you can do to help protect yourself from such threats. Make sure you are not set up to connect to non-preferred networks. For a PC in the advanced wireless settings under the network settings uncheck the "connect to non-preferred networks".  In a Mac go to the network pane in the System Preferences and check the "Ask to join new networks".  You can also purchase a reloadable or disposable Visa card to use in case you are charged a fee to use a hotspot. This way your credit card is not broadcasted if the transaction happens to be intercepted. It would be wise to just ask an employee what if the establishment offers Wi-Fi and what the name of it is. This article on the dangers of rogue hotspots mentions that the most common name for a fake hotspot is "Free Public Wi-Fi".  Also by avoiding any banking or online shopping while on a public Wi-Fi you prevent anyone from intercepting your personal information by simply not using it.


Sunday, November 24, 2013

Artificial Intelligence: S Voice Personal Assistant by Samsung

 Samsung Galaxy S4
 
Artificial Intelligence is "1: a branch of computer science dealing with the simulation of intelligent behavior in computers  2: the power of a machine to copy intelligent human behavior: as defined by Mariam Webster. The topic of Artificial Intelligence (AI) is one of the most elusive topics in both Computer Science and Science Fiction. AI can be seen in many things such as video games, toys, search engines and personal assistant applications. One of my favorite applications of Artificial Intelligence is in S Voice Personal Assistant application of the Samsung Galaxy S4.

S Voice is an application that comes with the Samsung Galaxy S4 which allows the user to use voice commands to do many tasks such as make a call, text message, e-mail, or even update a facebook status. The intelligent interface will respond to the commands and even talk back to you as if it was a real life personal assistant.  This feature comes in handy while driving a car due to the fact that driving while using a mobile phone is dangerous, it is illegal, and since April 2013 the cost of a ticket  in California is $159! Here is an example of me making a text message using S Voice by just talking to my phone. 

Me: "Hi Galaxy"
Me: "Text Eddie"
Galaxy: "What's your message?"
Me: "What are you up to?"
Galaxy: "Here is your message. Ready to send it?"
Me: "Yes"
Galaxy: "OK, I sent it"


It really is that easy. By just talking this application acts just like my own personal assistant. I had asked S Voice "What are you up to?" and she replied "Learning more about humans, like I do every day". So I replied, "I am bored", and she replied "Let's find a way to shake things up." If I said I was hungry S Voice would give me a list of places to eat nearby. I have noticed a bit of sassiness has been designed into the attitude of the S Voice. Not only has this artificially intelligent program made my day a little bit easier it has also made me laugh. There are many other things S Voice can do. Here is a list of other things.

As technology advances and we program computers to be more "intelligent", we move closer to a world where Science Fiction becomes our reality. Maybe someday we might just see some of the Science Fiction images come to life in the real world.


The BorgR2D2 and C3PO

Thursday, November 14, 2013

The History of Computer Science: The Internet and America Online

Abstract Internet Growth
 
Macintosh IIsiMy first computer was a Macintosh IIsi. It featured a whopping 20 MHz 6803 processor, 5MB of RAM, and an 80 MB hard drive. I mostly used it for word processing and to play a few games. Back then the internet was on the rise but the cost of owning a modem was around $500 and connected through the telephone (called a dial-up connection) much like how a fax machine does. Here is a list of a few modems available then. In 1995 CompuServe, America Online (AOL), and Prodigy began providing dial-up access. This is the year Sun Microsystems developed the internet programming language called Java. In the late 90's use of the internet was gaining popularity as the price of modems became affordable and numerous dial-up providers marketed to gain customers.

AOL cdAt that time I had jumped on the bandwagon and subscribed monthly to AOL for around $30 or $40 a month. Soon installation CDs offering free hours or a free month of internet access to new subscribers began showing up everywhere. How can anyone forget those AOL CDs? If you were in the United States in the 90's the AOL cd image should be bring back some memories. They were literally everywhere. AOL's former CMO told TechCrunch that they had spent more than $300 million on those installation CDs and “at one point, 50% of the CD’s produced worldwide had an AOL logo on it.” AOL In a 2007 USA Today report of the 25 things that changed the Internet, AOL ranked 4th and had turned people on to Web portals, chat rooms, and instant messaging. In 1996 approximately 45 million people were using the internet. 44% of U.S. households owned a computer and 14 million of them were online.

As technology progressed, the emergence of broadband connections such as DSL and Cable connections took over offering faster speeds. Internet usage was becoming global and in 2002 it was reported that 544.2 million users were on the internet. Now a connection to the internet has become more readily available. Cell phones, Free Wi-Fi, mobile hotspots and fast DSL and Cable connections at home make connecting to the internet almost a necessity. The Internet World Stats reported that in 2012 almost 2.5 billion people worldwide are connected to the internet.

Sunday, November 10, 2013

File Sharing: The History of Music, Music Clouds and Peer-to-Peer File Sharing

Audio Cassette Tape
Technics 1200 record playerA long time ago before the era of computers and information storage people were limited in how or where they could listen to music. They could either play it themselves or listen to someone else sing or play it in front of them.  A few centuries later the invention of the radio emerged and people were able to listen to whatever was being broadcast to them (provided they had a radio receiver and were in range of the transmitter). Fast forward a few decades and new technologies for recording music came about like the Phonograph Cylinder (1877), magnetic tape (1930's), Vinyl Record (1948),  compact cassette (1963), and Compact Disc (1982). These types of media allowed people to listen to music as they please although all of them had various limitations with the media type and machines which played them. New digital media formats emerged and more portable media players were developed. This created a desire for music lovers to collect music and build a vast digital library. File sharing has become a primary means of getting music. Now with increasing technology and the rise of the Internet we have cloud music services which promise to give unprecedented access to music. This type of file sharing uses interfaces which allow people to access music across a wide variety of devices, including computers, MP3 Players, smartphones and video game consoles.  People can collect a nearly unlimited amount of music and enjoy it in more places than ever before.  These services use the file sharing technology of Cloud Computing to deliver music. They utilize computer servers connected to the internet to let you access information.

There are two types of cloud storage music services.  One of them is similar to the radio. This version takes listening to the radio on a new level.  Services like Spotify allow people to search and add or delete songs to a music library allowing the user to create their own personal radio station. 

Music Cloud ApplicationsThe other type of music file sharing cloud gives the user much more freedom.  These services like the Amazon Cloud Player and Google Music store your music remotely and acts like an external hard drive for your music. Alternatively, you might be able to download the actual file to a device which will allow you to play the music anywhere regardless of being connected to the internet.  These services usually have a limit to the number of songs one can keep in their library and the fact that most of the music must be bought brings about the popular use of peer-to-peer file sharing applications in order to build extensive music libraries.

There are many application services to download music which usually involves file sharing amongst peers. Applications like Blubster, BearShare, BitTorrent and many others allow files to be shared between the individual users of the service.  This includes videos, documents and any other type of digital media as well as music files.  Although this type of file transfer is usually free, there are issues of downloading a virus and whether or not the sharing of these files is legal and not breaking any Copyright laws. 

Data Structures: The Array The Stack and The Queue


In the world of Computer Science there exist many types of storing data.  A popular type of storing data is in the form of an array.  In programming an array is defined as a series of objects all of which are of the same size and type. Arrays can be simply described as a list of objects.  Imagine a deck of cards and each card was a data object with attributes like the number or value of the card, the suit, and pictures on the face and back of the card. The complete deck can be looked at as an array of cards. In turn the whole deck of cards can be referred to as an object in itself. Arrays are one of the first data structures a programmer learns and manipulation and access of data is what programming is all about. Two specialized versions of an array which have unique abilities are the Stack and Queue.

Stack Data StructureA Stack is a group of objects formed by stacking one object on top of another and implements the last-in-first-out (LIFO) principle. The operations of a Stack are push and pop. The push operation is used to add items to the stack which puts the item on the top. The pop operation is used to remove an item which removed the item at the top.  A commonly seen example of a Stack is the "undo" function in text editors. When the text has changed, the change is pushed on a stack.  When the user wants to "undo" the latest change in text the change is easily accessed by popping it off the stack.

Queue line of peopleA Queue (like the Stack) is a group of objects but uses the first-in-first-out (FIFO) principle.  The operations of a Queue are enqueue and decueue.  The enqueue operation is used to add an object to the Queue array by placing the object in the back of any other objects already in the Queue.  The dequeue operation is used to remove or retrieve an object. The first object is returned and removed with the dequeue operation.  A common use of a Queue is a waiting list when registering for classes. When a class is full a waiting list is created making a list of people wanting to be in the class in case someone already registered in the class decides to remove themselves from it.  This would make an available spot open for enrollment and the waiting list provides a fair opportunity for the first person to try to add the class when it became full.

For more information about Stacks and Queues see David Galles "Data Structure Visualizations" at The University of San Francisco here.

Hacking: Black Hats and White Hats


Hacking COmmunity

When most people think of the word “hacker” they think of someone who is a malicious computer user up to no good.  Beware the hacker who is trying to steal your personal information, spread computer viruses, or even start a war by infiltrating military computer systems.  While there is no denying there are hackers with bad intentions, the truth is that they make up only a small percentage of the hacker community.  Not all computer hackers focus on the exploitation of others.  In fact, many hackers who once used their talents to break into systems now put their skills to use by creating better software or strengthening security.  In a way, the Internet is a battleground between different kinds of hackers. The bad guys, or black hats, who try to infiltrate systems and spread viruses, and the good guys, or white hats, who focus on security and develop powerful virus protection software.

Here are a couple of well-known computer hackers.
            Steve Wozniak
Steve Wozniak

Before he co-founded Apple Computers, Steve Wozniak and Steve Jobs built something called a blue box. This was an electronic device that allowed users to make free long distance calls by emulating the in-band signaling mechanism.  Wozniak and Jobs sold these devices to their fellow classmates.



 
David Smith          

David SmithDavid Smith is known for being the author of the infamous e-mail virus, Melissa.  The Melissa virus was based on a macro in a Microsoft Word document. Once activated the virus would replicate and e-mail itself to the top 50 people in the recipient’s address book.  Smith claimed the virus was never intended to cause any harm, but the increase in e-mail traffic forced some companies to discontinue e-mail programs until the virus was contained.

Sunday, October 13, 2013

Open Source: Linux

Linux Desktop
The design behind Open Source software is quite simple. When programmers can read, change and distribute code easily, the code will mature. This all happens at a speeds far faster then if it was privately driven at conventional companies. Because the code is free, more people will be testing it than the closed software developer can. Open Source is free and anyone can improve it.

Many of you may think you are not familiar with any Open Source programs but think again. You are using Linux when you look at Google, Facebook or Amazon. In an interview with the creator of the Linux operating system, Linus Torvalds, states that for the past 10 years Linux has been striving to be more portable so it can run on anything from cellphones to supercomputers.  Do you own or know someone that owns an Android cell phone? Well it uses Linux.

There is much debate on Linux being the future of gaming. the Linux platform is said to be faster and more stable than any of the other platforms, but due to its lack of games, it just hasn't made it. Already some of the big labels in the gaming community like Steam have many games running on Linux, but as for the personal computer, Linux just isn't popular. 

Raspberry Pi
There is also a credit card sized computer out on the market called Raspberry Pi. This system is Linux based and only costs $25!  Although you won't be able to play Diablo III on it, it will do common computing tasks such as spreadsheets and word processing. It could get people involved in computers who otherwise wouldn't be. It can get people in the mindset of using computers to do everyday tasks like controlling your water heater.



This cheap little computer can be a milestone to a Jetsons future!!

The Jetsons flying car

Sunday, October 6, 2013

Agile: Better Than the Waterfall Method of Software Development?

keyboard with code
There has been much hype about using the Agile Methodology of Software Development over the traditional Waterfall method but both have its advantages and disadvantages. Agile method proposes an incremental and iterative approach to software design. The process is broken into individual models or sprints which the designers work on. It was essentially developed in response to the limitations of Waterfall, as a way to give designers more freedom. Let's evaluate the benefits and limitations of each process.

What is so good about Agile and does it have any drawbacks?  Well, Agile offers an incredibly flexible design process.  Customer feedback is considered at every sprint. This could prove to be useful if the project requirements are a bit unclear and involves the customer in what product is being delivered as it is being created. Agile would be a great approach to developing experimental software which might need to respond to change in requirements in a timely manner. However, not all projects need to be flexible and the outcome of Agile development can be hard to predict because of its flexible planning.

The Waterfall approach develops software from start to finish. before any development is done a solid plan and vision is needed.  Because the Waterfall method requires extensive planning upfront, software is launched fairly quickly. Estimated timetables and budgets can also be delivered to the customer. On the other hand, this method is rigid and inflexible.  Any changes in the design can devistate the project. Testing occurs late in the development cycle and if a major problem is found it could be difficult to fix.

So which method is better?  Depending on what your project is each method has its benefits.  The latest trend has been toward using the Agile model.  Some say that Agile cannot be used for large projects with a 3-4 year cycle. In a study called the CHAOS Manifesto 2012 by the Standish Group, Agile projects were 3 times more successful than Waterfall projects. The Standish Group defines project success as on time, on budget, and with all planned features. They do not report how many projects are in their database but say that the results are from projects conducted from 2002 through 2010.

Friday, September 20, 2013

LinkedIn and Branding: The Significance of Professional Networking

 
The Key to Success
Keeping a current LinkedIn profile and using it to sell yourself is key to a successful professional digital footprint. Looking for a job or just wanting professional connections in this digital age? LinkedIn is an excellent professional social networking site which offers an environment you can use to reach out and expand your connections. 

Launched on May 5th, 2003, it was reported that LinkedIn has become the world's largest professional network.  There
are currently 230 million LinkedIn users in 200 countries and territories.  The network has 3 million business pages and 1.5 million groups. This increasing popularity can be a key to your success.

Users can build a contact list to develop relations and gain recommendations which could lead to getting an employer's attention.  A company is more likely to hire someone who has been recommended and/or has a positive relationship with one of its employees.  You could also have secondary and tertiary connections with your immediate contacts. Users can also join interest groups (the majority of them being employment related) to gather information about what is going on in their field of interest.  LinkedIn also provides Job listings. A user can research a company and find out stasticics like the ratio to male and female employees and a list of present or former employees.  Companies can include a "Apply with LinkedIn" botton on their listings page.

Friday, September 13, 2013

QR Codes: using them to promote your business.

Have you noticed those scrambled checker board looking things popping up everywhere?  They look like a complex bar code or something.  Well that is exactly what they are!  Those complex matrices are called QR Codes or Quick Response Codes.  Since its introduction in 1994, the QR Code has gained popularity for its diverse uses in industries such as the automotive, health care, and transportation. The Cleveland Museum of Art placed QR Codes next to exhibits to direct visitors to online video tours or linking them with more in-depth information through their smart phones.  That matrix looking thing in the upper right side of this page is a QR Code for this blog. 

One of the newest and most innovated uses of QR Codes are in the marketing and advertising MyToys.de built QR codes using Lego bricks to drive customers to their online store.  Users were then able to buy the bricks used to make the QR code.  While it is a very creative use of QR codes, the execution wasn’t perfect as it linked to a desktop site.  It was still a huge success, as 49% of visitors to MyToy.de came via the QR codes while the campaign was live, and twice as many brick boxes were sold for the Lego models included in the QR adverts. 

Heintz Ketchup



In 2011 Heinz put QR codes on ketchup bottles in US restaurants to promote its industries.  You can use a QR Code to direct someone to your web page, "like" your Facebook page, or take them to an online offer or coupon.  A German retailer
new environmentally friendly packaging.  It linked to a mobile site where users could win prizes by answering a green knowledge trivia question.  Heinz reported that more than 1m consumers scanned the codes.




There are many tools to help construct a QR Code and customize it to your liking.  Web Applications like Unitag and Maestro will create a QR Code that can be your phone number, URL, or a Google map to your business. You can even color your QR Code and have a logo embedded in it.  I created my QR Code you see in the upper right of my blog page at a site called goqr.me and manipulated it using Adobe Photoshop. With a little creativity QR Codes can help get the word out and improve your business.

McDonald's QR Code


This is a McDonald's QR Code that takes you to the Meal Builder section of their web site where you can look at the menu.




Thursday, September 12, 2013

Social Networking Security or Lack of When Promoting Your Brand

Social Media NametagSocial media advertising has become a major asset in brand promotion.  Just a few years ago social media was regarded as a hub for high school and college students.  Now it is a major influence on how people of all ages around the world get and share information. Social media channels such as Facebook, YouTube and Twitter are drawing millions of people a day who want to check messages from friends, share their views on and issue, read the news, and comment on a product.  The spread of information has transformed to be on much more of a personal level due to the ability to interact with what is being said.  Promoting your brand through social media is almost a must do in order to have a successful business.


So what are you waiting for?  If you haven't already, with a little research and thought you can use this cost effective way to promote your business. Who is your target audience? Which media sites do you want to focus on and when?  Have you established your "Brand" or handle on these social media sites? Here is a Beginner's Guide to Social Media Branding you can use to start building your brand's reputation. There is a plethora of tools such as hootsuite which you can use to help reach your target audience and keep track of what your customers are saying about you.


Padlock with Key
With personal data comes personal risk. Whether you are using social media for personal use or for promoting your business, security is an important issue. A few mishaps of having your account hacked into can have a major impact on your customers and reputation.  In Febuary of 2013 Burger King's twitter account was hacked into and its logo was replaced with a McDonald's logo. Announcements that Burger King had been bought out by one of its competitors began to appear. There were also other posts that were unprintable! This New York Times article talks about the Twitter hackings and brand security.

There are simple steps and tools you can use to protect your security.  This Guide to Facebook Security has many useful tips to keep your Facebook account secure. There are also many toolkits and browser add-ons which can be used to strengthen your security.

Friday, August 30, 2013

Welcome!

Welcome!
Hello Friends and welcome to my technical blog. My name is David Reinke and I am studying Computer Science at San Jose State University. I would like to extend an invitation to my instructor and fellow students to follow this blog.  I am a former Environmental Studies/Biology major at UC Santa Cruz, so most of my scientific background is in the natural sciences; however, I discovered that this was not the right path for me.  I became interested in computer science after completing an internship in which I performed software testing for database storage solutions for IBM.  I became intrigued by the way computers worked, and as I did some self-studying trying to find answers to problems, my interest in computer science grew.  When I returned to college to finish my degree, I decided to switch to the Computer Science major.  The knowledge I have gained and future learning opportunities will help me face many challenges.  I continue to have a great interest in software testing, which is always a challenge in itself.  Searching software for bugs and bad code is a vital part of the software creation process, and the challenges it provides appeals to the analytical side of me.