Make an impact


Computer Science

AI in the works

Guess what I ran into in today? AIExperiments with Google. AI has been the talk of the town for a while. While it has been doing a lot behind the scenes, developers have been providing more and more hands on applications to see how it works, what it “sees”. AIExperiments is just that. I’ve only played around with Quick, Draw!. But it really gives you a feel for how AI does what it does. Aaaannnnnd there goes my evening.

Another project that Google made public recently was an AI system that created its own encryption algorithm. Basically, it consisted of three systems. System A would try to get an encrypted message across to system B. System E would intercept the message and try to understand /decrypt it. A would need to modify its encryption algorithm until E could not understand what it was trying to say. Now given that the communication only involved a 16 bit message and that it took 15,000 messages for A to be able to send the message with E able to guess 50% of the message (which is as good as flipping the coin on what each bit could be), nevertheless, the applications of such a system could be tremendous. More @ Wired

And that was demonstrated by another project that they released shortly after. A system creating it’s own language. To translate text from Portuguese to Spanish, the AI was taught to use the Portuguese to English translation and then translate the English phrase to Spanish. Over time, the AI learned to translate Portuguese directly to Spanish without any intermediate English translation. Meaning, the system learned to represent the concepts it uses to translate between other languages. More on Research @ Google.

A core part of AI is feedback. If it makes a decision, it needs to know whether or not it was right. It can then use this feedback to improve on its next decision because it has a little more idea about what is “expected”. So while AIExperiements might be “experiments”, ideas like this can be used to crowd-source information that can be used by AI systems to better our everyday lives.

Also, while you’re at it, there some other cool experiments folks have built for Chrome, Android and Arts & Culture. And what’s more, you can contribute too if you can build something along those lines.

-Akshar Rawal


Google CS First

Google Computer Science First is a website dedicated towards teaching kids the basics of Computer Science using different real-life situation-al categories. Categories include Music and Sound, Art, Fashion, Story telling, Friends, Social Media, Sports and Game design. The courses have been designed to be very amateur friendly. Also, the program has been designed in the form of study groups. The learned can host a group in their area and the learners can join groups within their area. Check out the CS First website for yourself to learn more and join a group near you now.

-Akshar Rawal

Writing code…the NASA way

Every coder has a set of rules that they follow when they write code, even if they don’t know it. It’s kind of a signature or a fingerprint, but not as unique. Organizations, on the other hand, have to rely on people that are very likely to have their own unique style of coding. This does not translate well when dealing with rotating personnel that have to work with the code. So organizations usually have a set of guidelines that they expect the developers to follow when coding. Each organization can have it’s own set of rules.

NASA has a set of 10 rules that it requires it’s coders to follow. Now, some of them are just basic coding etiquette. But, it’s always good to re-iterate the basics. Here are the 10 rules that NASA coders try to adhere to when coding.

  1. Restrict all code to very simple control flow constructs. (No GoTos, etc.)
  2. All loops must have a fixed upper-bound.
  3. Do not use dynamic memory allocation after initialization.
  1. No function should be longer than what can be printed on a single sheet of paper in a standard reference format with one line per statement and one line per declaration.
  2. The assertion density of the code should average to a minimum of two assertions per function.
  3. Data objects must be declared at the smallest possible level of scope.
  4. The return value of non-void functions must be checked by each calling function, and the validity of parameters must be checked inside each function.
  5. The use of the preprocessor must be limited to the inclusion of header files and simple macro definitions.
  6. The use of pointers should be restricted.
  7. All code must be compiled, from the first day of development, with all compiler warnings enabled at the compiler’s most pedantic setting.

Head on over to pixel commander to look at the complete detailed rules along-with the rationales behind those rules.

Original post: lifehacker

-Akshar Rawal

Better writing attitude with IBM Watson Tone Analyzer

Have you ever noticed the change in your writing attitude based on your feelings? If not, you should look back at some of your writings. You should be able to notice a better way to express the same writing in a better, more sophisticated (less angry, for one) way. Once you analyze such, it’s embarrassing to know how you could have handled some of those situations so much better.

Angry writing is just one example. There’s so many situations where a prompt on your writing style could prove the difference between, well, promotion and demotion for one extreme. And IBM Watson is here to your rescue. Watson is a neural network that is developed to emulate human learning and apply it to industry problems. You can read all about it here.

More recently, Watson has been used to identify the writing attitude of an article. Now we’ve seen a number of semantic and syntactic analyzers that estimate the emotion of your writing. Some are good, some not that much. But, this takes it to a totally new level. Watson’s tone analyzer analyses the emotional and social tone of the text. It is also configured to provide better alternatives in terms of emotion. Better emails all around, eh?

More importantly, I also believe, that this would improve the quality of emails even without the help of Watson. Based on how human learning evolves. humans should learn to improve their writing style, to avoid those angry emails in the first place. It’d be like the coin in a glass jar technique. So let’s see how that goes.

You can read more about the Tone Analyzer over at gizmodo.

-Akshar Rawal

For the Github rookies…just like me

Have you used github yet? You don’t have to be a coder/developer to use it. It is an absolutely amazing useful tool that can be used to collaborate on digital media. This could include code, writing, blog?, and with your creativity, almost anything that requires collaboration. It flaunts a distributed structure that makes it just better than its competition. Distributed in the sense that it has both a local version of your work and a server version. This allows for a lot of flexibility in operation. If all of this isn’t enough, you can blame others (rightfully of course) if things go wrong! Huh! Huh! Now do you want to use it?

Well for the ones already using it, but are bemused by the commands and the never ending merge conflicts, check out this gamefied interactive tutorial on using github. It is the BEST THING EVER.

-Akshar Rawal

Code for the charismatic and charisma for the coders

Charisma is an important part of making a first impression. And nothing beats it down more than interrupting someone while they are talking. Often the interruption is unintentional. You would think that the person is done talking while they may just be taking a break in their sentence. Well you can use the two-second rule when making conversation. Wait two seconds before talking, after the other person has stopped. Not only does this prevent unintended interruptions, but it also creates a suspense, increasing the other person’s interest in the conversation (kinda like how stand up comedians take a pause after giving the punch). Furthermore, this also shows that you are listening intently and shows genuine interest in what the other person has to say. This helps you to be perceived as a “good-listener”. And who doesn’t want to be a good listener, right? Of course, there’s a number of other factors to consider when making a first impressions, but every drop helps. Check out the complete article here on lifehacker.

All us coders need to stand together and help each other be more “social”. “They” just don’t get it, what it is like to be a coder, what it means to be a coder, do they? Bloomberg has published this interactive article about “What is code” with Paul Ford. You can check it out @ Paul Ford: What is Code? | Bloomberg.

You can also checkout this video that explains how code works. This’ll show ’em! Now you’ll know where to point “them” to give them an idea about what “we” do.

– “Not everything works with just nuts and bolts”.

-Akshar Rawal

Code that can fix code

How cool would it be if some code could actually fix broken code! Researchers have actually developed code at MIT that can actually borrow code from other sources and fix a broken code. You know what’s even more cool? The code can be of any other language. It would be kind of a cross platform fix. This could lead to code that would not have been thought of due to platform issues.

Well turns out, that’s not all of it. The broader idea behind this was to allow users to NOT write code that someone else has already written. So you won’t have to copy and paste all that code from stack overflow or whatever is your go to code source. You can read more about it here on Gizmodo.

-Akshar Rawal

Day dreaming de-CODED

Have you google-ed how day dreaming works yet? If not, do so! “Google” has built an artificial neural network system that could very well decode the process.

Scientists at Google have been working on neural networks that are used to decode images. The algorithms operate on layers of networks that have a particular function. These layers decode images item-by-item and can then be used to identify items in the picture. This method is widely used in image recognition.

But more recently, they had another idea. Scientists used the data obtained by each layer of the network to build on images provided to the network. So for example, if one layer is responsible for identifying shapes, that layer would store the different shapes it has seen over a course of its training. Then when a trial image is supplied, that layer, will try to trace out shapes based on the image encoded data.

The results, are just AMAZING. It is what you would see in a dream. Think of the dreams you’ve had. The curious weird buildings and landscapes you see, the weird looking man-animals. Then go look at this post. It shows some of the results. Now isn’t that what you see in your dreams?

More importantly, the code is now available publicly. So, if you are a developer and wanna check it your, this is your chance.

-Akshar Rawal

Blog at

Up ↑