18 Aug 2016

KHMD Ignite 2016


“Every brand needs advertising. Even Apple creates advertisements.”

While the above statement wasn’t really spoken out loud by any KHMDite, it was, in essence, the sentiment that fostered Ignite. Ignite was an event held by KHMD on 9th and 10th August to inspire high-school students to join the community. 



But why would someone not interested in technology bother to join? Because technology caters to a myriad range of activities, from manga to music, sculpting to sketching, penning to photography… and what not. Because coding, hacking or making isn’t just reserved for the technologically inclined. It’s for everyone- ANYONE interested in making life simpler. Everyone has the capability to be producers of technology than just consumers.

It was this very thought that was carried across at Ignite. The 45-minute long event began, on both days, with an exciting trailer created by Rohan, Gagan, Suraj and Kishan for KHMD. The ‘cool’ effects used in it opened the spectators’ eyes to the wide usage of technology. 

    


First things first 


Aman then talked about the birth and purpose of KHMD. The birth? Simply put, when a group of tech-heads got together to become creators.  The purpose? To unite many others under a common interest, passion and love for technology. He spoke about how there exists an innate creativity and imagination in every person- and he or she just needs the freedom and support to create something useful and inspiring. Apart from talking about making and designing, he cleared misconceptions that many in the audience had about hacking. Hacking, he said, was for anyone with an interest to change something for the better. It's completely legal, he insisted.  Not the first time he's had to do that, though. 


NOT an FBI briefing session: Aman explaining what our hackers do
                               





"Did someone say pizza?" 

But was this event all talk or just showcasing videos? Certainly not. Next up was Suraj, who, using the MIT app inventor, developed a ‘Pizza App’. Through this app, users connected to the Internet could place their order for their preferred type of pizza and drink, and it would immediately be recorded in the database on the other end. This demonstration left the audience thinking about the varied possibilities (of technology, not food). 

The interface (some sly event promotion on the side is fine, right?) of the Pizza App

He also took the audience through  the code-  which, unlike expected, was not a long string of abbreviations and syntax, but an easy-to-follow, logical sequence of actions that did not require  mugging up said abbreviations and the differences between arbitrarily-used punctuation marks in coding.

Behind the screens (See what I did there?): The app's code


Some design magic 

Next up was Ish’s talk on design. He started off by explaining its importance, and spoke about how devices or experiences that cater to all the senses are usually the most desirable. Then he played a screen video of himself creating a sculpture of Frankenstein using ZBrush. He also gave many tips to the audience about design- for example, how overuse of a certain brilliant-design makes the creation unappealing (using Frankenstein’s scars as an example). This extremely realistic creation was a hit with the audience!

The minute details play pivotal roles. Ish explains how he recreated Frankenstein's scars. 

The result: Did Victor Frankenstein's creation look this good, though? 

                          
  To round it off, we had a preview of the new KHMD website, a video of eminent professionals talking about coding, and an enthralling music track by Kumarans EDM. This successful event certainly inspired many students to come forth and join KHMD, to learn, think, create and do, and above all-
Hack. Make. Design.


26 May 2016

Basic Cryptography

          


Does increased security provide comfort to paranoid people? Or does security provide some very basic protections that we are naive to believe that we don't need? During this time when the internet provides essential communication between millions of people and is being increasingly used as a tool for commerce, security becomes tremendously important issue to deal with.There are many aspects to security and many applications, ranging from secure commerce and payments to private communications and protecting passwords. One essential aspect for secure communication is cryptography.

Cryptography is the practice and study of techniques for secure communication in the presence of third parties. More generally, it is about constructing and analysing that overcome the influence of third parties.In layman's terms it is a science of coding and decoding of messages so as to keep these messages secure and not let it fall in the hand of unauthorised people. Also cryptography is used to store data and retrieve it back safely.

CLASSIC CRYPTOGRAPHY




The main classical cipher(an algorithm for performing encryption or decryption) types are transposition ciphers, which rearrange the order letters in a message and substitution ciphers,which symmetrically replace letters with other letters.
Example: "Hello world" becomes "ehlol owrdl" in a trivially simple rearrangement scheme.

MODERN CRYPTOGRAPHY 

The development of digital computers and electronics after the WWII made possible much more complex ciphers. Furthermore, computers allowed for the encryption of any kind of data representable in any binary format, unlike classic ciphers which only encrypted written language texts.


         German Lorenz cipher machine used in WWII to encrypt very high level staff messages

These days a fine example of cryptography is credit card with smart card capabilities. Smart cards combine low cost and portability with the power to compute cryptographic algorithms.



The padlock icon from a web browser, meant to indicate a page has been sent in encrypted-protected form. However, seeing an icon results when code is intended to render it.



A very simple example which all of us use in our daily life is the email.
We live in a modern world. We must deliver emails either for business, to friends, companies, famous people who's address we have. It doesn't matter. We send emails all the time. People deliver 210 billion emails daily! When you deliver an email, it has to get through the internet. A lot of people like to steal data from others, sometimes only for fun but danger comes when it is for something else. The internet is a BIG world. Emails are protected using data encryption. PGP(Pretty Good Privacy) is one method of protecting the email. This is both the name of a computer program and the protocol itself. So what exactly is the PGP protocol? It is a method to secure emails, a standard in cryptographically secure emails.




Hence by using of encryption techniques a fair unit of confidentiality, authentication, integrity, access control and availability of data is maintained.








23 May 2016

AR and VR: The Future is Here

http://www.theverge.com/2015/1/21/7868251/microsoft
-hololens-hologram-hands-on-experience

Introduction


Initially, early man was left in this world to fend for himself. In the mission of survival, many changes and innovations were brought about. Over the years the factors which lead to change kept on changing but the rate of innovation only accelerated. In the 20th century people could only dream about having a TV, Radio, Calculator, etc.. in their pocket. This was made a reality in the beginning of the 21th century with the introduction of smartphones. Smartphones have changed our lives in many aspects. It is estimated that a major innovation is brought about within every 20 years. This leads us to an important question: What is the next big thing?

Smartphones have changed the way we communicate and get information. Many people believe that the next big thing will change what we perceive as reality. It should be able to let us go into a digital world where we can not only get spontaneous information but also experience various situations. Seeing potential in this world, many people started working on it. Their result: Virtual Reality(VR) and Augmented reality(AR).

Virtual Reality(VR)

Virtual reality refers to immersive multimedia which can expose the user to the virtual world and make him/her believe that that is the real environment.
It is made interactive by engaging all the senses of the user. So you could basically be the real-life Marvel hero, Tony Stark.

Picture this, a world with rockets, books, icecreams or even a choco land. Mouth watering isn't it? Well you could experience it right now. Just get yourself a google cardboard for ₹650 and you’ll be on your way.

http://www.popsci.com/google-cardboard
VR Headsets give us an experience of virtual reality. A lot of them are available in the market. As a beginner, you could get yourself a google cardboard for a very cheap price. For better performance you can consider Oculus rift, HTC Vive and Samsung Gear VR.

Uses of VR

https://www.kickstarter.com/projects/1523379957/
oculus-rift-step-into-the-game/posts/872324
Virtual reality lets you experience various things before we actually do it in the real world. Imagine playing a first person shooting game like call of duty directly on the battle ground. Imagine paying a visit to Paris while sitting at home. Imagine experiencing various emergency situations before they actually happen in reality. Intriguing isn’t it? Well, VR has turned all these dreams into a reality.

Virtual Reality takes you away from the real world and lets you interact with the virtual world. A few other people thought differently. They started working on what we call today, Augmented Reality(AR).

Augmented Reality(AR)

Augmented reality refers to the integration of digital information with the environment that we live in. It can be used to satisfy the ever growing thirst for information that we as humans have.
http://www.pcmag.com/article2/0,2817,2416488,00.asp

http://www.newstatesman.com/sci-tech/2015/06/how-
microsofts-breakthrough-portable-
holographic-technology-could-make-science
Google glass and Microsoft Hololens are the best examples for augmented reality. Google glass provides a lot of information on the go. The Microsoft Hololens works a bit differently, It combines the elements of VR and AR. It displays the elements of the virtual world in our environment.
For more information on Microsoft Hololens, check out, http://kumaranhmd.blogspot.in/2015/02/the-microsoft-hololens.html

Future of AR


AR has a lot of potential as it can mobilise information easily to masses.
It can be used to make interactive user manuals with real time instructions, improve sightseeing by displaying information on just viewing the object, provide navigation by overlaying routes on the user’s plane of sight, play immersive games and help consumers to visualise products as a part of their environment.

Conclusion

The pace of technological evolution is high and it will only increase in the future. AR and VR are just one of the many technological innovations out there. But one thing is for certain, they are here to stay. We might one day live in a desired virtual world where all of us can live virtually anywhere in complete freedom. It also has the potential to make every object, surface and environment a portal to the digital world, full of information. That day is not far away. So let the virtual era begin!


https://www.youtube.com/watch?v=09vxKN1zLNI
























ASCII : Alphabets in Computers



 ASCII : Alphabets in Computers


The storage of numbers is relatively easy to understand as, computers are very simple at the basic level. Computers use Base - 2, meaning they count in powers of two. This also means that computers have only Humans on the other hand count in Base - 10, meaning we  two digits, namely 0 & 1. Humans count in the powers of 10, so we have 10 digits (0-9). For example,


32 = 3 x 10^1  +2 x 10^0 ("^" means raised to the power of)

For computers,


32 = 1 x 2^5 + 0 x 2^ 4 + 0 x 2^3 + 0 x 2^2 + 0 x 2^1 + 0 x 2^0

Each 2^x represents a "bit". Think of each bit as a slot. In this slot a zero or one can be placed. The bits are also represented as powers of two in their order. For example : the fourth bit is 0 or 1 into 2^4. Nowadays, computers have either 32 bits or 64 bits meaning the maximum value that can be stored is 2,147,483,647. Note : we can DISPLAY numbers greater than this. But on a 32 bit computer, this is the maximum value you can STORE.

Sekedar ingin menyelaraskan pemikiran agar bisa didapatkan pengertian ...
So, if every possible configuration of the bits (slots) is used up to represent unique numbers, where is the place for letters? Computers need to be able to process letters for being useful to us, otherwise, the are just expensive calculators.

Here is where ASCII comes in. ASCII stands for  American Standard Code for Information Interchange. ASCII helps us to store and display letters on our screens.


In the ASCII encoding (fancy term for saying configuration of letters), a letter is given a unique numerical value. When the computer receives this value, it processes it as a letter. The value of "a" is given a value of 97. Note : "a" is different from "A" as they are considered as different characters.


The ASCII code is 7-bit which means that 7-bit number (number from ...



You must be wondering, if every possible binary value is represented as a number, and each letter is represented by a number, how does a computer know weather we mean "a" or just 97?

Actually, your computer doesn't .

In reality, your computer is just hardware. What makes it really run is your operating system or software. The Operating System is the main piece of software. Windows, OSX and Linux are all operating systems. Now if you open your web-browser like Chrome or IE (Why do you still use this?) you are running another piece of software on top of your operating system.

Think of it as a cake  : Your hardware is the base, your operating system is like frosting and applications are like the cherry on top.



new.edu | BA410: Management Information SystemsSo, when you press the KEY on your keyboard, your operating system identifies it either as a number or a letter, while your HARDWARE processes it as a number/alphabet. In this way computers can identify numbers and letters uniquely and helps you type. 

When you open notepad, you can be sure that whatever you want to write actually happens.

-Raghav M

The Beginning of Digital Data: Compact Discs(CD)

CD discs are now on the brink of being removed from the digital world. The Macbook Pro, released by Apple,  doesn't even have a CD slot. The new pen drives and hard drives are taking the place of the Compact Discs.

Compact Discs are important from a beginners point of view as they were one of the first means of storing large amounts of digital data. Until then data was stored in an analog way. Digital data is usually represented in bits. On and off signals are generally used to relay messages. Analog data, however, is transmitted by using changes in amplitude, frequency or an other property in proportion to that of a variable.

CDs initially could store 650 Mb of data, a far cry from today's terabyte storing hard drives. Nevertheless in their time CDs were very important. A CD works with a very important concept called Optic Laser Technology. A CD is initially a flat disc. A machine in a factory uses a "write laser" to carve out certain patterns on the CD discs. The patterns are in the form of "pits" and "lands".

How Data is written on CD

These "pits" and "lands" themselves do not represent "1" and "0" but rather a change from pit to land or land to pit is read as one, but no change is read as zero. The write laser as mentioned above is quite powerful and is used to write or "burn" information onto the CD's polycarbonate layer in the form of pits and burns.

Laser and photocell inside a CD player

Reading the CD is also a similar process. Another laser known as the "read laser" moves across the CD in a spiral fashion. The CD reader also includes a photo cell or a diode which detects light by changing its resistance based on the light received(for more information on photocells: http://www.instructables.com/id/Photocell-tutorial/). As the laser moves on the disc different readings emerge. When the laser encounters a land the light is reflected normally and the photocell receives the light and sends a signal to the microcontroller transmitting the binary digit "1". If a pit is encountered the light is scattered and no data is light is received by the photocell and hence it transmits the binary digit "0". Like this a series of  "1" and "0" are transmitted. This is later used by the computer.

Image result for cd

CDs at first to a layman might seem as an ordinary electric component, but the brains,ingenuity, and precision must be applauded. Though CDs will cease to exist in another few years the spark they have created in the realm of storing massive digital data is worth recognising. 

26 Apr 2016

Raspberry Pi VS Arduino Uno : The Showdown

Arduino VS Raspberry Pi : The Showdown

In the modern world, almost everyone who is into embedded programming with electronics have either an Arduino Uno or a Raspberry Pi. Many people believe that both of them do the same thing and that it is only the price that sets them apart.






It is only when we look into the details that we can find some differences between the two. Let's get straight into it. 


Under the hood

Let's look at some of the specs of the Arduino Uno and the Raspberry Pi B+ as they are the most common once used.



Except that the Raspberry Pi does not have analog pins. It looks as if Raspberry Pi has already won. But there are some differences that make the Arduino a good competitor. Read on to find out !


The Basic Differences

The Arduino is a micro controller which means that when it boots up, it just runs the code that is assigned to it, it has no Operating System. It is a part of a computer. But the Raspberry Pi is a full fledged computer. This may seem advantageous to the Pi in all ways, but it is not so.

Since the Raspberry Pi is a full fledged computer which runs on Linux distributions, it gives you more power and flexibility. But most advantages come with a disadvantage. In this case the disadvantage is complexity. 



 Since the Arduino has no Operating System, it runs the code assigned to it with no background processes to handle thus it is better in terms of reading real time input from sensors , etc.. But the Raspberry Pi might take a while as it runs on an OS and needs to process that extra bit more.

One major difference is that in order to program or use a Raspberry Pi you WILL need an SD card with the required OS ,  keyboard, mouse and and a HD display compatible with HDMI ports The Arduino requires a serial cable and a computer running Windows  XP or later .

Apart from these major differences, there are some other minor differences as well.


Input/ Output Pins 

The Raspberry Pi has a " 3.3 V " Logic where as an Arduino has a "5V" one.
This can be good or bad as some components have a 5V output where as some have 3.3 V. 




The Arduino having a 5V logic can handle 3.3V as well as 5V.But this is not true vice versa.




Do note that the  Raspberry Pi does not have a good history on  handling a  5V output for even a second ! That does put down the Raspberry Pi quiet a bit considering MOST DIY elements these days are powered by 5V.

DC Input

The Arduino and the Raspberry Pi can run on the usual 5V DC input (a.k.a from a USB phone charger.) The Raspberry Pi cannot handle anything above 5V. The Arduino Uno on the other hand is can handle anything from 5V to 20 V as it has an on board regulator.

Unlike Arduino the Raspberry Pi as a computer needs a steady supply of very good quality of 5V. If not there would be some lockups and problems.

Also, the Arduino can run straight of a 9 V battery as it saves the code from the previous session.

Analog Pins

Unlike the Raspberry Pi, the Arduino can directly read analog voltage as it already has an ADC( analog to digtal converter) on board which the Raspberry Pi does not have.

 This does mean that you have to take that extra step on converting it in the Raspberry Pi which might cause some hiccups during the process .

Audio/Video

The Raspberry PI is capable of playing back video files at FULL HD and audio files at a good quality while the Arduino is incapable of doing that.Although the Arduino can make tones using a Piezo element , it cannot play Audio straight off without a sound card / sound shield .

The Arduino also cannot play video as it does not have the video card/ Audio card. This is reasonably acceptable as the Arduino is only a Micro- Controller and is not built for Video/Audio output.

The Raspberry Pi can also RECORD video if you have a compatible webcam. Where as the Arduino Uno denies the opportunity .


Wireless Capabilities 


The Raspberry Pi is capable of connecting to the Wi Fi just by hooking it up to the attachment.
Where as the Arduino needs its more expensive Wi Fi shield . This might be a disadvantage .

The Rasperry Pi also can connect to bluetooth with the help of the bluetooth module. The same goes to the Arduino Uno .

Choosing the Right One

Choosing the right board heavily depends on your project that you will be doing. Here is the compiled list of some of the projects.

If you are doing with something which involves reading input from sensors, then Arduino would be your best bet as it has a good compatibility with most sensors whether it is Analog or digital.


If you are making a project that has a graphical user interface, then the Raspberry Pi would be the one for you as it can handle Video and Audio output whereas the Arduino cannot.

If you are a beginner to electronics, DIY , etc ... ,  then the Arduino would be you best bet as there is a big community out there which could help you to get up and running.

To Sum Up

Both these boards are really good when compared to each other but these both do different things.The choice is left upon the type of project that you will be working on.

These differences have  covered  all of what you need until you get fairly advanced. If you are that advanced person you can also combine them both to make a deadly combination ! For now
happy hacking !

_______________________________________________________________

If you want me to make any changes or if you want to do it , feel free to do so.

Sources = Images : Google Images . Specs : http://www.arduino.cchttps://www.raspberrypi.org/

9 Dec 2015

LMLE : How I created a compilation of "Invisible Man" notes

LMLE stands for "Linux Makes Life Easy". If you don't understand any of the commands used, please google them.

So today I was going through some websites looking for notes for "The Invisible Man" that I have to study as a part of out 12th standard syllabus. I found a good resource here http://thebestnotes.com/booknotes/Invisible_Man_Wells/The_Invisible_Man_Study_Guide01.html but realized that it had tons of different HTML pages each having distracting ads and stuff. I wanted a neat solution to read this stuff quickly without too much clicking.

Since I had 3 pre-boards left and I'd have to go through these notes at least 3 more times, I though it would be worth investing some time and get it formatted. But obviously, copy pasting 30+ times wasn't an option for me. I needed something much quicker.

So, Here goes.

I booted up Linux (sadly Windows is still my working OS), and opened up the terminal. I remembered Arjun telling me about wget a few weeks back, so I decided to give it a shot.

This is what I tried first

wget http://thebestnotes.com/booknotes/Invisible_Man_Wells/The_Invisible_Man_Study_Guide01.html"

Plain and simple, but it gave me only an offline version of the website itself. Then I tried this

wget -r

It gave me the same thing but inside a folder and it wasn't any use. Being the noob I still am, I tried man wget and tried figuring it out. But I didn't really have the time. So I consulted a programmers best friend - Stack Overflow!

I found this neat combination of options that helped me download all the files into one html file all at once.

wget -r -l1 -H -t1 -nd -N -np -A.html -erobots=off -O file.txt http://thebestnotes.com/booknotes/Invisible_Man_Wells/The_Invisible_Man_Study_Guide01.html

But guess what? It was no use because an extra "0" in "01,02,03" in the naming of the html links on the page ruined the ordering of the content in the output file.

So I just used the messy version of the previous command - download all html files separately and then parse them

wget -r -l1 -H -t1 -nd -N -np -A.html -erobots=off http://thebestnotes.com/booknotes/Invisible_Man_Wells/The_Invisible_Man_Study_Guide01.html

So now I had all the content locally. But they were all individual html files. I researched a little bit and found that there was a 3rd party utility available called "html2text" that did exactly what I wanted.

sudo apt-get install html2text

Boom. Installed. Just like that. Is it that easy on Windows? Definitely not. 

Only one step left.

html2text -utf8 -nobs -style pretty The_Invisible_Man_Study_Guide01.html > file.txt

But this gave me the output only for one file. So I just wrote a small script to automate it for all the files.

for x in 0{1,2,3,4,5,6,7,8,9} 10 11 12 13 14 15 16 17
      do
  html2text -utf8 -nobs -style pretty The_Invisible_Man_Study_Guide$x.html >> file.txt       done

After all this, I had perfectly readable content but the problem of some unnecessary text still remained. So I manually opened up the file and within 2 minutes, removed all the unnecessary stuff and it was finally perfectly formatted to my liking. (file.txt was the final output file.)

When I opened it up using gedit, the scrolling flicker was hurting my eyes, so I used a terminal based alternative.
To read it now, All I have to say is 

vi file.txt

If I'm looking for a particular section, I just use grep and read only that part. 
Works pretty well, worth spending half an hour.

Any questions? Leave a comment.