Friday, December 13, 2013

Computational neuroscience


Human brain is one of the most complex structures with hundreds of billions of neurons and hundreds of trillions of synapses. By looking at these numbers we can say that studying how our brain functions is not an easy task. It is a mystery since our evolution. Scientists and neurobiologists have been trying to study and understand the brain functions for decades (Well, they are able to find many details but there is still more to discover.) This field of study, as you might have guessed by now is called Computational neuroscience.  
Computational neuroscience
 

Computational neuroscience is not a single man army (by which I mean, it is not a stand-alone field.) In fact, it is an interdisciplinary science that uses computer science (mathematics, physics and electric engineering) programs and models to construct biophysically detailed simulations of various parts of brain to study in detail and understand each part/section of brain. The study results and understanding from computational neuroscience can be used in other fields such as machine learning to create artificial neural networks (ANN’s.) These ANN’s can then be trained to perform functions that human brain can do such as identifying patterns, numbers, objects, face recognition, etc. Although it does not seem to be realistic to design and train an ANN which exactly mimics the human brain, but with more advancements in computational neuroscience we may see ANN’s that perform some major functions of brain like show emotions, react to various situations, etc.

References:

Thursday, December 5, 2013

Computer Graphics


Are you a big fan of (or at least interested in) video games or sci-fi movies? If yes, you will appreciate the role computer graphics play to make you get on the edge. Computer Graphics is nothing but creating images and integrating different images that would look realistic but are not actually real/possible to exist in the real world. Have you watched the movie Avatar? (It’s one of my favorites.) The planet Pandora in the movie is a beautiful work of computer graphics. We all know that there is no such planet called Pandora with flying/hanging rocks and any of its creatures, yet it seems so realistic in the movie (Don’t you think so?) Computer graphics have taken the sci-fi movies and video games to an entirely different level.
Avatar
 

Computer Graphic applications are not just limited to movies and video games. They are also used in many simulation models such as cloth modeling, Simulation games, Driving/Flight simulation and even in the field of medicine to perform some critical surgeries in virtual simulation prior to actual surgery.
In the coming years, with more advances in computer graphics, we may not even have real humans in the movies except for computer scientists who design and program all the visual/special effects using computer graphics. Let’s hope that is not the case (taking humans completely out of the frame is not too much fun to watch.)

Friday, November 29, 2013

Communications and Security: Cryptography

In my first post I introduced you to Cryptography. In this post let us dig a little deeper into the subject. To give you a quick recap, Cryptography is the science of making and breaking 'secret' codes. We use the internet every single day. We connect all our electronic devices to the internet, in most cases through a wireless medium and transmit a lot of data over the network. This data may contain sensitive information such as username and passwords, bank account details, personal information, etc. So, all the data that you transmit through a wireless network is visible to everyone? Unfortunately, yes. Now the question is how to protect our data. One obvious way to do so is to encrypt the data using strong cryptographic techniques. The basic idea behind cryptography is very simple. The sender encrypts the data and sends the cipher text to the receiver and the receiver decrypts the cipher text back to the plain text. All the cryptographic techniques can be broadly divided into two categories. They are:
Symmetric key Cryptography: Symmetric key cryptography is a technique in which the secret key is shared between the sender and receiver and the same key is used for both encryption and decryption.
Symmetric key Cryptography
Symmetric key Cryptography

Public key Cryptography: Public key Cryptography is a technique in which different keys are used for encryption and decryption. The sender and receiver have their own pair of public and private keys and a message encrypted with the public key of the key-pair can only be decrypted using the corresponding private key and vice-versa.
Public Key Cryptography
Public Key Cryptography

 Using any cryptographic technique will not protect your data from the bad guys out there. This is because even strong cryptographic techniques are vulnerable to attacks if they are used properly. So choose proper cryptographic techniques and keep your data safe and secure.

Sunday, November 24, 2013

Artificial Intelligence (AI):


Do you like to play chess? Until a couple of decades ago, only humans played chess. But guess what today there are machines which can play chess. One such chess-playing machine was Deep Blue. This machine is so intelligent that it even defeated the world chess champion Garry Kasparov. Can you believe that? 
Artificial Intelligence

One major element that puts human-race ahead of all other living or non-living things is 'intelligence'. But with advancements in AI, this line is becoming thinner day by day. Have you ever had an iPhone and gave voice commands to 'Siri' to locate your favorite restaurant or a nearby movie theater? How do you think Siri can understand what you said and respond to your commands? All thanks to artificial intelligence. Now-a-days AI machines have become so smart that they even know how to drive (do they also need to have a driver's license?)
All these Ai inventions and technologies seem to be very interesting and promising. But at the same time, I feel them as a threat to the very existence of humans (may be because I watch too many science fiction movies where machines created by humans take over their masters and rule the world.) I hope AI machines will not be the last invention made by humans as mentioned in James Barrat's new book “Our Final Invention.”



Image Courtesy:
 

Friday, November 15, 2013

History of Computer Science

In my opinion, we started to use computer science when we started to use numbers. Our fingers are the very first computational devices that we have used until the abacus was discovered (don't you think so!)
Talking of history, it would be unfair not to know who invented the first mechanical computer. Any guesses? Don't worry if you don't know. Charles Babbage invented the first mechanical computer and Ada Lovelace wrote the first algorithm intended for processing on a computer. Early computers were mainly used for mathematical calculations but soon it became clear that computers can do more than just math. Computer Science gained more prominence and made its way into academia. Computer Science program is offered in almost every school now. But have you ever wondered which school is the first to start a degree program in Computer Science? Check it out here.

Computer Science is a very fascinating and fast-growing field. I say it's fast-growing because, so many programming languages, techniques, technologies, paradigms, algorithms, etc., are discovered every day and what seems to be new and interesting today becomes old and boring tomorrow. Today, Computer Science is ubiquitous and it is hard to even imagine the world without it.

Friday, November 8, 2013

File sharing


file sharing
 
Anyone with a computer and internet connection are probably aware of file sharing. In this digital world, we share files every single day. File sharing itself is not a new technology, only the ways in which we share have been drastically improved. Do you remember how we used to share files before the advent of the Internet? Yes, we used to either share the hard copies or copy the files to removable media such as floppy disk, CD/DVD, USB stick etc. and share it. With the onset of the Internet, e-mail served as the popular medium to share files. But the major problem with e-mail is the size restrictions imposed by the service provider (I still remember my email account giving me an error while trying to attach my school play video to share it with my friends.) Thanks to P2P networking system and cloud storage technology, file size is no longer a limitation. Today, there are a lot of online services that made file sharing easy. All you need to do is just drag and drop the files you want to share, click a couple of buttons and you are done.

File sharing is made so easy with all the online tools and websites that people started to share anything and everything often ignoring copyright violations. So be careful while uploading any files. Ask yourself, “Am I violating any copyright law?”
 
 

Thursday, October 31, 2013

Data Structures

 
Algorithms +Data Structures = Programs
 
We often see that the concept of Data Structures is explained along with Algorithms. Have you ever wondered why? It is because, the underlying data structure of an algorithm plays an important role in determining the performance of the algorithm. So let us see what a data structure is and how it effects the performance of algorithms.
Data structure, as the name indicates is a particular way of storing and organizing data in a computer program. The definition looks good, but why do we use data structures? Suppose you are writing a computer program to store all the student information of your university. For that you have to store a lot information such as student name, ID, department, courses taken, grades, etc. Once you have all the information, you may want to know how many students enrolled in a particular course.  What is the average class standing in a particular course? What is the current GPA of a particular student? By just looking at the information you may not be able to answer such questions.  The data/information must be organized in such a way that one should be able to retrieve the data, perform some calculations on the data and find answers to their questions. This is where data structures come in.
Data structure should be designed/chosen in such a way that storing and retrieving of data is fast. Most computer programs deal with hundreds of thousands of data records. If you choose an improper data structure to store your data, retrieving a single record from thousands of records could take a lot of time and as you know, for a computer program, even a couple of seconds is a lot of time. So, choosing a wrong data structure makes your program slow (I told you! The choice of data structure affects the performance of an algorithm.)

Sunday, October 27, 2013

Hacking


We often hear about websites getting hacked and lots of confidential information getting compromised.  What is hacking? Hacking is a mechanism for detecting vulnerabilities of a system so as to build more robust systems. In my opinion, hacking is the best way to learn how a system works. But now-a-days hacking refers to exploiting the vulnerabilities of a system. How do hackers get hold of a system in the first place? Simple, they just wave their magical hacking wand and that’s it, the system is infected. Unfortunately, it does not work that way. To infect a system, hackers write a program and get it installed on the victim computer through e-mails, peer-to-peer networks or even regular websites. Once the system is infected, hackers can easily access the system and get the information they want.
Most of us think that hackers are very experienced and skilled programmers. You know what? That is not always the case. Investigators who monitor botnets say that the programs some hackers use are primitive and poorly programmed.

Also not all hackers use hacking to their advantage. This group of hackers who break the security for non-malicious reasons are known as white hat hackers. No wonder that white hat hackers are also known as ethical hackers. Many companies hire ethical hackers to test and find out the level of security of their systems. So, don’t learn to hack, hack to learn.

More on ethical hacking can be found here.

Saturday, October 12, 2013

Open Source

What is open source?
Open source is a methodology in which the end-product, source-material, blue-prints, documentation etc., are published and made available to the public, enabling anyone to copy, modify and redistribute without paying any fees.
Most of us think that open source means open source software (at least, I used to think so). But it does not necessarily have to be only software. Open source is used in many applications other than Computer software such as Electronics, Medicine, Robotics, Fashion and even Beverages (Don’t trust me? Check it out here.)

No one would want to use anything if it is no good. So, let us see some of the advantages of Open Source.
·         The fact that the Open Source resources can be downloaded and used at no cost is the primary advantage.
·         In terms of computer software since Open Source Software is available to anyone, more developers can view the code and review the code making the software more robust.
·         If you are an aspiring developer who wants to develop a new product, you can just use any existing Open Source Software (Operating System) suitable for your product and develop your applications on top of it without having to worry about developing the Operating System.
As every coin has two sides, Open Source has its disadvantages too. Since any one can develop and publish Open Source resources, today we have a large repository of Open Source resources. But not many of them have proper documentation and support needed by the users.
Ultimately, it is the decision of end-user whether or not to use Open Source.

Sunday, October 6, 2013

AGILE


When working on a software development project, the methodology we choose plays a major role in the speed and quality of the project. But surprisingly many developers do not know which development methodology they are using. You do not have to take my word for it. In the State of Agile development survey conducted in 2011, 8% of the respondents answered “Don’t know” to the question, “What agile methodology you use?” So, let us see what the different agile methodologies are.
The basic philosophy of all agile methodologies is the same, iterative and incremental development. But from implementation standpoint, each has its own tactics and practices. Here are a few of the main agile methodologies.

Scrum:
Scrum is one of the most popular agile methodologies. The Scrum team consists of Product Owner, Scrum Master and Development Team. The Product Owner is the representative of stakeholders. He/she works closely with the team and communicates the user stories and prioritizes the system functionality. The development team is a self-organizing, cross-functional team which delivers potentially shippable increments of software at the end of each sprint.

Kanban:
Kanban methodology emphasizes on continual delivery without over-burdening the developers. The main principle of Kanban is to limit the amount of Work In Progress (WIP), which helps balance the flow-based approach so that the development team do not commit to too much work at once.

Crystal:
Crystal is one of the most lightweight agile methodologies. The key principles of Crystal are teamwork, communication, simplicity, as well as reflection to frequently adjust and improve the process. There are many flavors of Crystal such as Crystal Clear, Crystal Yellow, Crystal Orange etc.

There are many other agile methodologies such as Lean Software Development, Extreme Programming, Feature-Driven development etc. So, Which agile methodology are you using?

 References:

 


 

Thursday, September 19, 2013

LinkedIn and Branding : The Business-networking site


LinkedIn is a great platform where you can create your professional identity. When I say ‘professional’, I do not mean only software developers (or should I say ‘techies’?). LinkedIn is a great platform for students too. Students can connect with different Universities around the world through LinkedIn University pages, lay a path for their professional careers. By now you must have noticed that I use the word ‘professional’ over and over again. I do so because LinkedIn is not a social networking site, instead it is a business-networking site.
LinkedIn
 

Unlike Facebook, Twitter and many other social networking sites, LinkedIn is not the place to share personal updates. LinkedIn is the place to build and develop professional relations/connections, showcase your achievements, success stories, areas of expertise. LinkedIn is basically presenting the ‘Professional YOU’ to the world. One important thing to do in LinkedIn is to keep your account active by regularly updating your profile/skill set. It is also important to maintain connection with active users. Here are some do's and don'ts when using LinkedIn.

Coming to security breaches in social media sites, LinkedIn is no exception. Do you know that a year ago more than 200,000 LinkedIn account passwords have been hacked? So, be smart when you set your LinkedIn password.

Thursday, September 12, 2013

QR code - The next generation barcode


Have you ever wondered what a QR code is? I did when I first heard of it. So, what is a QR code? I would say it is next generation barcode (hmm, interesting! isn’t it?). There are many interesting things to know about QR codes. QR codes are first designed for automotive industry, but today they are everywhere, in magazines, on business cards, on buses, on billboards, on train tickets, on gravestones (Yes, you read it right. Can you believe it!!)
With MasterCard rolling out the first trial of its QR mobile application which allows people to interact and initiate payments via QR codes, Google testing its login authentication via QR codes, the future of QR codes seems quite promising.

But hold on, don’t just go around and scan every QR code you see. Some QR codes may contain malicious websites in a new avenue to steal identities and commit fraud. Unlike spam e-mails or malicious websites, we cannot judge whether a QR code can be trusted or not by just looking at it. So when you scan a QR code and the website asks you to enter your personal information/credit card information or notice something phishy, quit the code immediately. Here are some of the tips by AVG anti-virus cautioning us about malicious QR codes.  
QR codes give us a lot of information but only when used with caution.  

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

Facebook HD Wallpaper
 
When some one says social networking, I instantly think of Facebook. I have been using Facebook for quite some time now and I always had the question “How secure is my data on a social networking site?” Well, no one can assure data security on such big platforms. The best we can do on our end is to protect our data with some privacy settings and strong passwords.

 Talking of data security, I remember an incident where one of my friends lost her mobile phone. You might be wondering what it has to do with social media and data security. It does have relation because, she used to access her Facebook account from her mobile phone. So who ever has her phone has access to her Facebook account? Unfortunately, Yes! This is an eye opener for me and from then on I’m careful while accessing social networking sites form my phone/tablet or public computer systems.

Recently the Facebook account of a Syrian telecom company, Syriatel has been hacked. You can fine the full story here . We hear a lot of such stories every day. Especially like, a company’s sensitive information getting leaked, false information about a company or its products getting published on their social networking site and so on. Such incidents directly affect the brand reputation of the company.
So the question is ‘How to avoid cyber-attacks and keep our data secure? Here is an interesting blog which might give us some insight on networking security awareness .

Make sure to check privacy settings of your social networking account.

Be Aware, Be secure!

Usha

Friday, August 30, 2013

Welcome to Cryptology


Hello Everyone,

I’m Usha Narra and welcome to my blog. Currently I’m a graduate student at San Jose State University. One of my college courses inspired me to write this blog. You might be wondering which course this is? Here’s a hint: It is the science of making and breaking “secret codes.” Did you just ask Cryptology/Cryptography’? You got it! In the fascinating world of the Internet, transmitting and sharing information is astounding. However the problem we are facing is the security of data and its transmission. Currently Cryptograph is a vital solution.

In our day-to-day life computer science is ubiquitous, from coffee machines to space shuttles. Ideas which were once thought as fantasy are now reality. A few lines of well-written code (well, not exactly a “few lines”) can do anything from making a great cup of coffee to keeping a space shuttle from exploding in space. Stay tuned, as my next posts will explore how computer science/programs direct the future of Cryptology and what more can be achieved in the field.

This is my first blog. And although I am nervous, I’m very excited to share my knowledge with you and enhance my knowledge from your thoughts and comments. So, please don’t hesitate to post your comments.

Happy Coding,
Usha